Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 | /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{ /***/ "(app-pages-browser)/./app/mocks/handlers.ts": /*!*******************************!*\ !*** ./app/mocks/handlers.ts ***! \*******************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handlers: () => (/* binding */ handlers)\n/* harmony export */ });\n/* harmony import */ var _statusHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./statusHandlers */ \"(app-pages-browser)/./app/mocks/statusHandlers.ts\");\n/* harmony import */ var _taskHandlers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./taskHandlers */ \"(app-pages-browser)/./app/mocks/taskHandlers.ts\");\n/* harmony import */ var _labelHandlers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./labelHandlers */ \"(app-pages-browser)/./app/mocks/labelHandlers.ts\");\n/* harmony import */ var _priorityHandlers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./priorityHandlers */ \"(app-pages-browser)/./app/mocks/priorityHandlers.ts\");\n\n\n\n\nconst handlers = [\n ..._taskHandlers__WEBPACK_IMPORTED_MODULE_1__.taskHandlers,\n ..._statusHandlers__WEBPACK_IMPORTED_MODULE_0__.statusHandlers,\n ..._labelHandlers__WEBPACK_IMPORTED_MODULE_2__.labelHandlers,\n ..._priorityHandlers__WEBPACK_IMPORTED_MODULE_3__.priorityHandlers\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy9oYW5kbGVycy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNKO0FBQ0U7QUFDTTtBQUU5QyxNQUFNSSxXQUFXO09BQ2pCSCx1REFBWUE7T0FDWkQsMkRBQWNBO09BQ2RFLHlEQUFhQTtPQUNiQywrREFBZ0JBO0NBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2FwcC9tb2Nrcy9oYW5kbGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0dXNIYW5kbGVycyB9IGZyb20gJy4vc3RhdHVzSGFuZGxlcnMnXG5pbXBvcnQgeyB0YXNrSGFuZGxlcnMgfSBmcm9tICcuL3Rhc2tIYW5kbGVycydcbmltcG9ydCB7IGxhYmVsSGFuZGxlcnMgfSBmcm9tICcuL2xhYmVsSGFuZGxlcnMnXG5pbXBvcnQgeyBwcmlvcml0eUhhbmRsZXJzIH0gZnJvbSAnLi9wcmlvcml0eUhhbmRsZXJzJ1xuXG5leHBvcnQgY29uc3QgaGFuZGxlcnMgPSBbXG4gICAgLi4udGFza0hhbmRsZXJzLFxuICAgIC4uLnN0YXR1c0hhbmRsZXJzLFxuICAgIC4uLmxhYmVsSGFuZGxlcnMsXG4gICAgLi4ucHJpb3JpdHlIYW5kbGVyc1xuXSJdLCJuYW1lcyI6WyJzdGF0dXNIYW5kbGVycyIsInRhc2tIYW5kbGVycyIsImxhYmVsSGFuZGxlcnMiLCJwcmlvcml0eUhhbmRsZXJzIiwiaGFuZGxlcnMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/handlers.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/mocks/labelHandlers.ts": /*!************************************!*\ !*** ./app/mocks/labelHandlers.ts ***! \************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ labelHandlers: () => (/* binding */ labelHandlers)\n/* harmony export */ });\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/http.mjs\");\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs\");\n\nconst labelHandlers = [\n msw__WEBPACK_IMPORTED_MODULE_0__.http.get(\"\".concat(\"http://localhost:8080\", \"/api/labels\"), ()=>{\n return msw__WEBPACK_IMPORTED_MODULE_1__.HttpResponse.json([\n {\n \"_id\": \"6758497311466283e44f1158\",\n \"value\": \"bug\",\n \"label\": \"Bug\"\n },\n {\n \"_id\": \"6758497311466283e44f1133\",\n \"value\": \"feature\",\n \"label\": \"Feature\"\n },\n {\n \"_id\": \"6758497311466283e44f1134\",\n \"value\": \"tech-debt\",\n \"label\": \"Tech-Debt\"\n },\n {\n \"_id\": \"6758497311466283e44f1135\",\n \"value\": \"epic\",\n \"label\": \"Epic\"\n },\n {\n \"_id\": \"6758497311466283e44f1136\",\n \"value\": \"documentation\",\n \"label\": \"Documentation\"\n }\n ]);\n })\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy9sYWJlbEhhbmRsZXJzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUVqQyxNQUFNRSxnQkFBZ0I7SUFDekJGLHFDQUFJQSxDQUFDRyxHQUFHLENBQUMsR0FBOEMsT0FBM0NDLHVCQUEwQyxFQUFDLGdCQUFjO1FBQ2pFLE9BQU9ILDZDQUFZQSxDQUFDTSxJQUFJLENBQUM7WUFDckI7Z0JBQ0ksT0FBTztnQkFDUCxTQUFTO2dCQUNULFNBQVM7WUFDYjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO1lBQ2I7WUFDQTtnQkFDSSxPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsU0FBUztZQUNiO1lBQ0E7Z0JBQ0ksT0FBTztnQkFDUCxTQUFTO2dCQUNULFNBQVM7WUFDYjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO1lBQ2I7U0FDSDtJQUNMO0NBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvYXBwL21vY2tzL2xhYmVsSGFuZGxlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHR0cCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnbXN3J1xuXG5leHBvcnQgY29uc3QgbGFiZWxIYW5kbGVycyA9IFtcbiAgICBodHRwLmdldChgJHtwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkx9L2FwaS9sYWJlbHNgLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2UuanNvbihbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzU4NDk3MzExNDY2MjgzZTQ0ZjExNThcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFwiYnVnXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkJ1Z1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NTg0OTczMTE0NjYyODNlNDRmMTEzM1wiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJmZWF0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkZlYXR1cmVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzU4NDk3MzExNDY2MjgzZTQ0ZjExMzRcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFwidGVjaC1kZWJ0XCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbFwiOiBcIlRlY2gtRGVidFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NTg0OTczMTE0NjYyODNlNDRmMTEzNVwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJlcGljXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkVwaWNcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzU4NDk3MzExNDY2MjgzZTQ0ZjExMzZcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFwiZG9jdW1lbnRhdGlvblwiLFxuICAgICAgICAgICAgICAgIFwibGFiZWxcIjogXCJEb2N1bWVudGF0aW9uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgIH0pLFxuXSJdLCJuYW1lcyI6WyJodHRwIiwiSHR0cFJlc3BvbnNlIiwibGFiZWxIYW5kbGVycyIsImdldCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkwiLCJqc29uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/labelHandlers.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/mocks/priorityHandlers.ts": /*!***************************************!*\ !*** ./app/mocks/priorityHandlers.ts ***! \***************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ priorityHandlers: () => (/* binding */ priorityHandlers)\n/* harmony export */ });\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/http.mjs\");\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs\");\n\nconst priorityHandlers = [\n msw__WEBPACK_IMPORTED_MODULE_0__.http.get(\"\".concat(\"http://localhost:8080\", \"/api/priorities\"), ()=>{\n return msw__WEBPACK_IMPORTED_MODULE_1__.HttpResponse.json([\n {\n label: \"Low\",\n value: \"low\",\n icon: 'arrow-down'\n },\n {\n label: \"Medium\",\n value: \"medium\",\n icon: 'arrow-right'\n },\n {\n label: \"High\",\n value: \"high\",\n icon: 'arrow-up'\n }\n ]);\n })\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy9wcmlvcml0eUhhbmRsZXJzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUVqQyxNQUFNRSxtQkFBbUI7SUFDNUJGLHFDQUFJQSxDQUFDRyxHQUFHLENBQUMsR0FBOEMsT0FBM0NDLHVCQUEwQyxFQUFDLG9CQUFrQjtRQUNyRSxPQUFPSCw2Q0FBWUEsQ0FBQ00sSUFBSSxDQUFDO1lBQ3JCO2dCQUNJQyxPQUFPO2dCQUNQQyxPQUFPO2dCQUNQQyxNQUFNO1lBQ1Y7WUFDQTtnQkFDSUYsT0FBTztnQkFDUEMsT0FBTztnQkFDUEMsTUFBTTtZQUNWO1lBQ0E7Z0JBQ0lGLE9BQU87Z0JBQ1BDLE9BQU87Z0JBQ1BDLE1BQU07WUFDVjtTQUNIO0lBQ0w7Q0FDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvbW9ja3MvcHJpb3JpdHlIYW5kbGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodHRwLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdtc3cnXG5cbmV4cG9ydCBjb25zdCBwcmlvcml0eUhhbmRsZXJzID0gW1xuICAgIGh0dHAuZ2V0KGAke3Byb2Nlc3MuZW52Lk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTH0vYXBpL3ByaW9yaXRpZXNgLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2UuanNvbihbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiTG93XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwibG93XCIsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2Fycm93LWRvd24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJNZWRpdW1cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJtZWRpdW1cIixcbiAgICAgICAgICAgICAgICBpY29uOiAnYXJyb3ctcmlnaHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJIaWdoXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiaGlnaFwiLFxuICAgICAgICAgICAgICAgIGljb246ICdhcnJvdy11cCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgIH0pLFxuXSJdLCJuYW1lcyI6WyJodHRwIiwiSHR0cFJlc3BvbnNlIiwicHJpb3JpdHlIYW5kbGVycyIsImdldCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkwiLCJqc29uIiwibGFiZWwiLCJ2YWx1ZSIsImljb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/priorityHandlers.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/mocks/setupMocks.ts": /*!*********************************!*\ !*** ./app/mocks/setupMocks.ts ***! \*********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setUpMocks: () => (/* binding */ setUpMocks)\n/* harmony export */ });\n/* harmony import */ var _handlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handlers */ \"(app-pages-browser)/./app/mocks/handlers.ts\");\n\nconst setUpMocks = async ()=>{\n if (true) {\n const { setupWorker } = await __webpack_require__.e(/*! import() */ \"_app-pages-browser_node_modules_msw_lib_browser_index_mjs\").then(__webpack_require__.bind(__webpack_require__, /*! msw/browser */ \"(app-pages-browser)/./node_modules/msw/lib/browser/index.mjs\"));\n const worker = setupWorker(..._handlers__WEBPACK_IMPORTED_MODULE_0__.handlers);\n await worker.start({\n onUnhandledRequest: 'bypass'\n });\n return worker;\n }\n};\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy9zZXR1cE1vY2tzLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXNDO0FBRS9CLE1BQU1DLGFBQWE7SUFDdEIsSUFBSSxJQUE2QixFQUFFO1FBQy9CLE1BQU0sRUFBRUMsV0FBVyxFQUFFLEdBQUcsTUFBTSx5T0FBcUI7UUFDbkQsTUFBTUMsU0FBU0QsZUFBZUYsK0NBQVFBO1FBQ3RDLE1BQU1HLE9BQU9DLEtBQUssQ0FBQztZQUFFQyxvQkFBb0I7UUFBUztRQUNsRCxPQUFPRjtJQUNYO0FBQ0osRUFBRSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvbW9ja3Mvc2V0dXBNb2Nrcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYW5kbGVycyB9IGZyb20gJy4vaGFuZGxlcnMnO1xuXG5leHBvcnQgY29uc3Qgc2V0VXBNb2NrcyA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgeyBzZXR1cFdvcmtlciB9ID0gYXdhaXQgaW1wb3J0KCdtc3cvYnJvd3NlcicpO1xuICAgICAgICBjb25zdCB3b3JrZXIgPSBzZXR1cFdvcmtlciguLi5oYW5kbGVycyk7XG4gICAgICAgIGF3YWl0IHdvcmtlci5zdGFydCh7IG9uVW5oYW5kbGVkUmVxdWVzdDogJ2J5cGFzcycgfSk7XG4gICAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgfVxufTsiXSwibmFtZXMiOlsiaGFuZGxlcnMiLCJzZXRVcE1vY2tzIiwic2V0dXBXb3JrZXIiLCJ3b3JrZXIiLCJzdGFydCIsIm9uVW5oYW5kbGVkUmVxdWVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/setupMocks.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/mocks/statusHandlers.ts": /*!*************************************!*\ !*** ./app/mocks/statusHandlers.ts ***! \*************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ statusHandlers: () => (/* binding */ statusHandlers)\n/* harmony export */ });\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/http.mjs\");\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs\");\n\nconst statusHandlers = [\n msw__WEBPACK_IMPORTED_MODULE_0__.http.get(\"\".concat(\"http://localhost:8080\", \"/api/status\"), ()=>{\n return msw__WEBPACK_IMPORTED_MODULE_1__.HttpResponse.json([\n {\n \"_id\": \"67574211b5599f1ebce83868\",\n \"value\": \"todo\",\n \"label\": \"Todo\",\n \"icon\": \"help-circle\"\n },\n {\n \"_id\": \"67574211b5599f1ebce33868\",\n \"value\": \"in-progress\",\n \"label\": \"In progress\",\n \"icon\": \"timer\"\n },\n {\n \"_id\": \"67574211b5599f1ebce22868\",\n \"value\": \"done\",\n \"label\": \"Done\",\n \"icon\": \"done\"\n },\n {\n \"_id\": \"67574211b5599f1ebce44868\",\n \"value\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"icon\": \"cancelled\"\n },\n {\n \"_id\": \"675743bc6331e0a65f26442a\",\n \"value\": \"backlog\",\n \"label\": \"Backlog\",\n \"icon\": \"help-circle\"\n }\n ]);\n })\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy9zdGF0dXNIYW5kbGVycy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFFakMsTUFBTUUsaUJBQWlCO0lBQzFCRixxQ0FBSUEsQ0FBQ0csR0FBRyxDQUFDLEdBQThDLE9BQTNDQyx1QkFBMEMsRUFBQyxnQkFBYztRQUNqRSxPQUFPSCw2Q0FBWUEsQ0FBQ00sSUFBSSxDQUFDO1lBQ3JCO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO2dCQUNULFFBQVE7WUFDWjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO2dCQUNULFFBQVE7WUFDWjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO2dCQUNULFFBQVE7WUFDWjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO2dCQUNULFFBQVE7WUFDWjtZQUNBO2dCQUNJLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxTQUFTO2dCQUNULFFBQVE7WUFDWjtTQUNIO0lBQ0w7Q0FDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvbW9ja3Mvc3RhdHVzSGFuZGxlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHR0cCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnbXN3J1xuXG5leHBvcnQgY29uc3Qgc3RhdHVzSGFuZGxlcnMgPSBbXG4gICAgaHR0cC5nZXQoYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvc3RhdHVzYCwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlLmpzb24oW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc1NzQyMTFiNTU5OWYxZWJjZTgzODY4XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBcInRvZG9cIixcbiAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiVG9kb1wiLFxuICAgICAgICAgICAgICAgIFwiaWNvblwiOiBcImhlbHAtY2lyY2xlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc1NzQyMTFiNTU5OWYxZWJjZTMzODY4XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBcImluLXByb2dyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkluIHByb2dyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJpY29uXCI6IFwidGltZXJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzU3NDIxMWI1NTk5ZjFlYmNlMjI4NjhcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFwiZG9uZVwiLFxuICAgICAgICAgICAgICAgIFwibGFiZWxcIjogXCJEb25lXCIsXG4gICAgICAgICAgICAgICAgXCJpY29uXCI6IFwiZG9uZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NTc0MjExYjU1OTlmMWViY2U0NDg2OFwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJjYW5jZWxsZWRcIixcbiAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiQ2FuY2VsbGVkXCIsXG4gICAgICAgICAgICAgICAgXCJpY29uXCI6IFwiY2FuY2VsbGVkXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc1NzQzYmM2MzMxZTBhNjVmMjY0NDJhXCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBcImJhY2tsb2dcIixcbiAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiQmFja2xvZ1wiLFxuICAgICAgICAgICAgICAgIFwiaWNvblwiOiBcImhlbHAtY2lyY2xlXCIsXG4gICAgICAgICAgICB9XG4gICAgICAgIF0pXG4gICAgfSksXG5dIl0sIm5hbWVzIjpbImh0dHAiLCJIdHRwUmVzcG9uc2UiLCJzdGF0dXNIYW5kbGVycyIsImdldCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkwiLCJqc29uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/statusHandlers.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/mocks/taskHandlers.ts": /*!***********************************!*\ !*** ./app/mocks/taskHandlers.ts ***! \***********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ taskHandlers: () => (/* binding */ taskHandlers),\n/* harmony export */ tasks: () => (/* binding */ tasks)\n/* harmony export */ });\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/http.mjs\");\n/* harmony import */ var msw__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! msw */ \"(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\nconst tasks = [\n {\n \"_id\": \"67574211b5599f1ebce84868\",\n \"title\": \"Do something with the tests\",\n \"status\": \"done\",\n \"label\": \"epic\",\n \"priority\": \"high\"\n },\n {\n \"_id\": \"675743bc6331e0a65f16a42a\",\n \"title\": \"Run backend in streams\",\n \"status\": \"done\",\n \"label\": \"epic\",\n \"priority\": \"high\"\n },\n {\n \"_id\": \"6760816d7f14e013cb7a9656\",\n \"title\": \"Render pipelines without a trace\",\n \"status\": \"backlog\",\n \"label\": \"feature\",\n \"priority\": \"low\"\n }\n];\nconst taskHandlers = [\n msw__WEBPACK_IMPORTED_MODULE_1__.http.get(\"\".concat(\"http://localhost:8080\", \"/api/tasks\"), ()=>{\n return msw__WEBPACK_IMPORTED_MODULE_2__.HttpResponse.json(tasks);\n }),\n msw__WEBPACK_IMPORTED_MODULE_1__.http.post(\"\".concat(\"http://localhost:8080\", \"/api/tasks/add\"), async (param)=>{\n let { request } = param;\n const taskData = await request.json();\n return msw__WEBPACK_IMPORTED_MODULE_2__.HttpResponse.json({\n message: \"Task added successfully\",\n task: {\n ...taskData,\n _id: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_0__.generateMockObjectId)()\n }\n });\n }),\n msw__WEBPACK_IMPORTED_MODULE_1__.http.put(\"\".concat(\"http://localhost:8080\", \"/api/tasks/:id\"), async (param)=>{\n let { request, params } = param;\n const { id } = params;\n const taskData = await request.json();\n return msw__WEBPACK_IMPORTED_MODULE_2__.HttpResponse.json({\n message: \"Task modified successfully\",\n task: {\n ...taskData,\n _id: id\n }\n });\n }),\n msw__WEBPACK_IMPORTED_MODULE_1__.http.delete(\"\".concat(\"http://localhost:8080\", \"/api/tasks/:id\"), async (param)=>{\n let {} = param;\n return new msw__WEBPACK_IMPORTED_MODULE_2__.HttpResponse(null, {\n status: 204,\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n })\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9tb2Nrcy90YXNrSGFuZGxlcnMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBd0M7QUFFVztBQWE1QyxNQUFNRyxRQUFRO0lBQ2pCO1FBQ0ksT0FBTztRQUNQLFNBQVM7UUFDVCxVQUFVO1FBQ1YsU0FBUztRQUNULFlBQVk7SUFDaEI7SUFDQTtRQUNJLE9BQU87UUFDUCxTQUFTO1FBQ1QsVUFBVTtRQUNWLFNBQVM7UUFDVCxZQUFZO0lBQ2hCO0lBQ0E7UUFDSSxPQUFPO1FBQ1AsU0FBUztRQUNULFVBQVU7UUFDVixTQUFTO1FBQ1QsWUFBWTtJQUNoQjtDQUNIO0FBR00sTUFBTUMsZUFBZTtJQUN4QkoscUNBQUlBLENBQUNLLEdBQUcsQ0FBQyxHQUE4QyxPQUEzQ0MsdUJBQTBDLEVBQUMsZUFBYTtRQUNoRSxPQUFPTCw2Q0FBWUEsQ0FBQ1EsSUFBSSxDQUFDTjtJQUM3QjtJQUNBSCxxQ0FBSUEsQ0FBQ1UsSUFBSSxDQUFnRCxHQUE4QyxPQUEzQ0osdUJBQTBDLEVBQUMsbUJBQWlCO1lBQU8sRUFBRUssT0FBTyxFQUFFO1FBQ3RJLE1BQU1DLFdBQVcsTUFBTUQsUUFBUUYsSUFBSTtRQUNuQyxPQUFPUiw2Q0FBWUEsQ0FBQ1EsSUFBSSxDQUFDO1lBQ3JCSSxTQUFTO1lBQ1RDLE1BQU07Z0JBQUUsR0FBR0YsUUFBUTtnQkFBRUcsS0FBS2IsZ0VBQW9CQTtZQUFHO1FBQ3JEO0lBQ0o7SUFDQUYscUNBQUlBLENBQUNnQixHQUFHLENBQXNFLEdBQThDLE9BQTNDVix1QkFBMEMsRUFBQyxtQkFBaUI7WUFBTyxFQUFFSyxPQUFPLEVBQUVNLE1BQU0sRUFBRTtRQUNuSyxNQUFNLEVBQUVDLEVBQUUsRUFBRSxHQUFHRDtRQUNmLE1BQU1MLFdBQVcsTUFBTUQsUUFBUUYsSUFBSTtRQUNuQyxPQUFPUiw2Q0FBWUEsQ0FBQ1EsSUFBSSxDQUFDO1lBQ3JCSSxTQUFTO1lBQ1RDLE1BQU07Z0JBQUUsR0FBR0YsUUFBUTtnQkFBRUcsS0FBS0c7WUFBRztRQUNqQztJQUNKO0lBQ0FsQixxQ0FBSUEsQ0FBQ21CLE1BQU0sQ0FBK0MsR0FBOEMsT0FBM0NiLHVCQUEwQyxFQUFDLG1CQUFpQjtZQUFPLEVBQUc7UUFDL0gsT0FBTyxJQUFJTCw2Q0FBWUEsQ0FBQyxNQUFNO1lBQzFCbUIsUUFBUTtZQUNSQyxTQUFTO2dCQUNMLGdCQUFnQjtZQUNwQjtRQUNKO0lBQ0o7Q0FDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvbW9ja3MvdGFza0hhbmRsZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh0dHAsIEh0dHBSZXNwb25zZSB9IGZyb20gJ21zdydcbmltcG9ydCB7IFRhc2ssIFRhc2tTdWNjZXNzUmVzcG9uc2VTY2hlbWEgfSBmcm9tICcuLi90eXBlcy9hcGkvQXBpJztcbmltcG9ydCB7IGdlbmVyYXRlTW9ja09iamVjdElkIH0gZnJvbSAnQC9saWIvdXRpbHMnO1xuXG4vL3JlcXVlc3QgYm9kaWVzXG50eXBlIFRhc2tHZW5lcmFsUGF5bG9hZEJvZHkgPSBQaWNrPFRhc2ssICd0aXRsZScgfCAnc3RhdHVzJyB8ICdsYWJlbCcgfCAncHJpb3JpdHknPjtcbnR5cGUgQWRkVGFza1JlcXVlc3RCb2R5ID0gVGFza0dlbmVyYWxQYXlsb2FkQm9keVxudHlwZSBVcGRhdGVUYXNrUmVxdWVzdEJvZHkgPSBUYXNrO1xudHlwZSBEZWxldGVUYXNrU3VjY2Vzc1Jlc3BvbnNlID0gbnVsbDtcblxuLy9wYXJhbXNcbmludGVyZmFjZSBUYXNrUmVxdWVzdFBhcmFtcyB7XG4gICAgaWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgdGFza3MgPSBbXG4gICAge1xuICAgICAgICBcIl9pZFwiOiBcIjY3NTc0MjExYjU1OTlmMWViY2U4NDg2OFwiLFxuICAgICAgICBcInRpdGxlXCI6IFwiRG8gc29tZXRoaW5nIHdpdGggdGhlIHRlc3RzXCIsXG4gICAgICAgIFwic3RhdHVzXCI6IFwiZG9uZVwiLFxuICAgICAgICBcImxhYmVsXCI6IFwiZXBpY1wiLFxuICAgICAgICBcInByaW9yaXR5XCI6IFwiaGlnaFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBcIl9pZFwiOiBcIjY3NTc0M2JjNjMzMWUwYTY1ZjE2YTQyYVwiLFxuICAgICAgICBcInRpdGxlXCI6IFwiUnVuIGJhY2tlbmQgaW4gc3RyZWFtc1wiLFxuICAgICAgICBcInN0YXR1c1wiOiBcImRvbmVcIixcbiAgICAgICAgXCJsYWJlbFwiOiBcImVwaWNcIixcbiAgICAgICAgXCJwcmlvcml0eVwiOiBcImhpZ2hcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgXCJfaWRcIjogXCI2NzYwODE2ZDdmMTRlMDEzY2I3YTk2NTZcIixcbiAgICAgICAgXCJ0aXRsZVwiOiBcIlJlbmRlciBwaXBlbGluZXMgd2l0aG91dCBhIHRyYWNlXCIsXG4gICAgICAgIFwic3RhdHVzXCI6IFwiYmFja2xvZ1wiLFxuICAgICAgICBcImxhYmVsXCI6IFwiZmVhdHVyZVwiLFxuICAgICAgICBcInByaW9yaXR5XCI6IFwibG93XCIsXG4gICAgfSxcbl1cblxuXG5leHBvcnQgY29uc3QgdGFza0hhbmRsZXJzID0gW1xuICAgIGh0dHAuZ2V0KGAke3Byb2Nlc3MuZW52Lk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTH0vYXBpL3Rhc2tzYCwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlLmpzb24odGFza3MpXG4gICAgfSksXG4gICAgaHR0cC5wb3N0PEFkZFRhc2tSZXF1ZXN0Qm9keSwgVGFza1N1Y2Nlc3NSZXNwb25zZVNjaGVtYT4oYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvdGFza3MvYWRkYCwgYXN5bmMgKHsgcmVxdWVzdCB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhc2tEYXRhID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZS5qc29uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiVGFzayBhZGRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgIHRhc2s6IHsgLi4udGFza0RhdGEsIF9pZDogZ2VuZXJhdGVNb2NrT2JqZWN0SWQoKSB9XG4gICAgICAgIH0pXG4gICAgfSksXG4gICAgaHR0cC5wdXQ8VGFza1JlcXVlc3RQYXJhbXMsIFVwZGF0ZVRhc2tSZXF1ZXN0Qm9keSwgVGFza1N1Y2Nlc3NSZXNwb25zZVNjaGVtYT4oYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvdGFza3MvOmlkYCwgYXN5bmMgKHsgcmVxdWVzdCwgcGFyYW1zIH0pID0+IHtcbiAgICAgICAgY29uc3QgeyBpZCB9ID0gcGFyYW1zXG4gICAgICAgIGNvbnN0IHRhc2tEYXRhID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZS5qc29uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiVGFzayBtb2RpZmllZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgIHRhc2s6IHsgLi4udGFza0RhdGEsIF9pZDogaWQgfVxuICAgICAgICB9KVxuICAgIH0pLFxuICAgIGh0dHAuZGVsZXRlPFRhc2tSZXF1ZXN0UGFyYW1zLCBEZWxldGVUYXNrU3VjY2Vzc1Jlc3BvbnNlPihgJHtwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkx9L2FwaS90YXNrcy86aWRgLCBhc3luYyAoeyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgSHR0cFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIHN0YXR1czogMjA0LFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgfSlcbl1cbiJdLCJuYW1lcyI6WyJodHRwIiwiSHR0cFJlc3BvbnNlIiwiZ2VuZXJhdGVNb2NrT2JqZWN0SWQiLCJ0YXNrcyIsInRhc2tIYW5kbGVycyIsImdldCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkwiLCJqc29uIiwicG9zdCIsInJlcXVlc3QiLCJ0YXNrRGF0YSIsIm1lc3NhZ2UiLCJ0YXNrIiwiX2lkIiwicHV0IiwicGFyYW1zIiwiaWQiLCJkZWxldGUiLCJzdGF0dXMiLCJoZWFkZXJzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/mocks/taskHandlers.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/page.tsx": /*!**********************!*\ !*** ./app/page.tsx ***! \**********************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IndexPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_frontbuild_TaskDashboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/frontbuild/TaskDashboard */ \"(app-pages-browser)/./components/frontbuild/TaskDashboard/index.tsx\");\n/* harmony import */ var _app_mocks_setupMocks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app/mocks/setupMocks */ \"(app-pages-browser)/./app/mocks/setupMocks.ts\");\n/* harmony import */ var _components_frontbuild_Loading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/frontbuild/Loading */ \"(app-pages-browser)/./components/frontbuild/Loading/index.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction IndexPage() {\n _s();\n const [isMswReady, setIsMswReady] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"IndexPage.useEffect\": ()=>{\n const initializeMocking = {\n \"IndexPage.useEffect.initializeMocking\": async ()=>{\n if (true) {\n await (0,_app_mocks_setupMocks__WEBPACK_IMPORTED_MODULE_3__.setUpMocks)();\n }\n setIsMswReady(true);\n }\n }[\"IndexPage.useEffect.initializeMocking\"];\n initializeMocking();\n }\n }[\"IndexPage.useEffect\"], []);\n if (!isMswReady) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center items-center h-screen\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_Loading__WEBPACK_IMPORTED_MODULE_4__.Loading, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/app/page.tsx\",\n lineNumber: 21,\n columnNumber: 71\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/app/page.tsx\",\n lineNumber: 21,\n columnNumber: 12\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_TaskDashboard__WEBPACK_IMPORTED_MODULE_2__.TaskDashboard, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/app/page.tsx\",\n lineNumber: 24,\n columnNumber: 10\n }, this);\n}\n_s(IndexPage, \"CEcYLzQI2S8uuW1vB1F8WWe3GFo=\");\n_c = IndexPage;\nvar _c;\n$RefreshReg$(_c, \"IndexPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDbUQ7QUFDb0I7QUFDbkI7QUFDTTtBQUUzQyxTQUFTTTs7SUFDdEIsTUFBTSxDQUFDQyxZQUFZQyxjQUFjLEdBQUdOLCtDQUFRQSxDQUFVO0lBRXRERCxnREFBU0E7K0JBQUM7WUFDUixNQUFNUTt5REFBb0I7b0JBQ3hCLElBQUlDLElBQTZDLEVBQUU7d0JBQ2pELE1BQU1OLGlFQUFVQTtvQkFDbEI7b0JBQ0FJLGNBQWM7Z0JBQ2hCOztZQUNBQztRQUNGOzhCQUFHLEVBQUU7SUFFTCxJQUFJLENBQUNGLFlBQVk7UUFDZixxQkFBTyw4REFBQ007WUFBSUMsV0FBVTtzQkFBNEMsNEVBQUNULG1FQUFPQTs7Ozs7Ozs7OztJQUM1RTtJQUVBLHFCQUFPLDhEQUFDRiwrRUFBYUE7Ozs7O0FBQ3ZCO0dBbEJ3Qkc7S0FBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvYXBwL3BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRhc2tEYXNoYm9hcmQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zyb250YnVpbGQvVGFza0Rhc2hib2FyZCc7XG5pbXBvcnQgeyBzZXRVcE1vY2tzIH0gZnJvbSAnQC9hcHAvbW9ja3Mvc2V0dXBNb2Nrcyc7XG5pbXBvcnQgeyBMb2FkaW5nIH0gZnJvbSAnQC9jb21wb25lbnRzL2Zyb250YnVpbGQvTG9hZGluZyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEluZGV4UGFnZSgpIHtcbiAgY29uc3QgW2lzTXN3UmVhZHksIHNldElzTXN3UmVhZHldID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbGl6ZU1vY2tpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRU5BQkxFX01TVyA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgYXdhaXQgc2V0VXBNb2NrcygpO1xuICAgICAgfVxuICAgICAgc2V0SXNNc3dSZWFkeSh0cnVlKTtcbiAgICB9O1xuICAgIGluaXRpYWxpemVNb2NraW5nKCk7XG4gIH0sIFtdKTtcblxuICBpZiAoIWlzTXN3UmVhZHkpIHtcbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9J2ZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtc2NyZWVuJz48TG9hZGluZyAvPjwvZGl2PjtcbiAgfVxuXG4gIHJldHVybiA8VGFza0Rhc2hib2FyZCAvPjtcbn0iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlRhc2tEYXNoYm9hcmQiLCJzZXRVcE1vY2tzIiwiTG9hZGluZyIsIkluZGV4UGFnZSIsImlzTXN3UmVhZHkiLCJzZXRJc01zd1JlYWR5IiwiaW5pdGlhbGl6ZU1vY2tpbmciLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QVUJMSUNfRU5BQkxFX01TVyIsImRpdiIsImNsYXNzTmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/page.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./app/schemas/index.tsx": /*!*******************************!*\ !*** ./app/schemas/index.tsx ***! \*******************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ taskSchema: () => (/* binding */ taskSchema)\n/* harmony export */ });\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zod */ \"(app-pages-browser)/./node_modules/zod/lib/index.mjs\");\n/* harmony import */ var _app_types_api_Api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/types/api/Api */ \"(app-pages-browser)/./app/types/api/Api.ts\");\n\n\nconst taskSchema = zod__WEBPACK_IMPORTED_MODULE_1__.z.object({\n _id: zod__WEBPACK_IMPORTED_MODULE_1__.z.string().optional(),\n title: zod__WEBPACK_IMPORTED_MODULE_1__.z.string().nonempty({\n message: \"Title is required\"\n }),\n status: zod__WEBPACK_IMPORTED_MODULE_1__.z.nativeEnum(_app_types_api_Api__WEBPACK_IMPORTED_MODULE_0__.StatusOptions, {\n message: \"Invalid status\"\n }),\n label: zod__WEBPACK_IMPORTED_MODULE_1__.z.nativeEnum(_app_types_api_Api__WEBPACK_IMPORTED_MODULE_0__.LabelOptions, {\n message: \"Invalid label\"\n }),\n priority: zod__WEBPACK_IMPORTED_MODULE_1__.z.nativeEnum(_app_types_api_Api__WEBPACK_IMPORTED_MODULE_0__.PriorityOptions, {\n message: \"Invalid priority\"\n })\n});\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zY2hlbWFzL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0I7QUFDOEU7QUFFL0YsTUFBTUksYUFBbUNKLGtDQUFDQSxDQUFDSyxNQUFNLENBQUM7SUFDdkRDLEtBQUtOLGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdDLFFBQVE7SUFDeEJDLE9BQU9ULGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdHLFFBQVEsQ0FBQztRQUFFQyxTQUFTO0lBQW9CO0lBQzFEQyxRQUFRWixrQ0FBQ0EsQ0FBQ2EsVUFBVSxDQUFDViw2REFBYUEsRUFBRTtRQUFFUSxTQUFTO0lBQWlCO0lBQ2hFRyxPQUFPZCxrQ0FBQ0EsQ0FBQ2EsVUFBVSxDQUFDWiw0REFBWUEsRUFBRTtRQUFFVSxTQUFTO0lBQWdCO0lBQzdESSxVQUFVZixrQ0FBQ0EsQ0FBQ2EsVUFBVSxDQUFDWCwrREFBZUEsRUFBRTtRQUFFUyxTQUFTO0lBQW1CO0FBQ3hFLEdBQUciLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvYXBwL3NjaGVtYXMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBMYWJlbE9wdGlvbnMsIFByaW9yaXR5T3B0aW9ucywgU3RhdHVzT3B0aW9ucywgVGFzayBhcyBUYXNrTW9kZWwgfSBmcm9tIFwiQC9hcHAvdHlwZXMvYXBpL0FwaVwiO1xuXG5leHBvcnQgY29uc3QgdGFza1NjaGVtYTogei5ab2RUeXBlPFRhc2tNb2RlbD4gPSB6Lm9iamVjdCh7XG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0aXRsZTogei5zdHJpbmcoKS5ub25lbXB0eSh7IG1lc3NhZ2U6IFwiVGl0bGUgaXMgcmVxdWlyZWRcIiB9KSxcbiAgc3RhdHVzOiB6Lm5hdGl2ZUVudW0oU3RhdHVzT3B0aW9ucywgeyBtZXNzYWdlOiBcIkludmFsaWQgc3RhdHVzXCIgfSksXG4gIGxhYmVsOiB6Lm5hdGl2ZUVudW0oTGFiZWxPcHRpb25zLCB7IG1lc3NhZ2U6IFwiSW52YWxpZCBsYWJlbFwiIH0pLFxuICBwcmlvcml0eTogei5uYXRpdmVFbnVtKFByaW9yaXR5T3B0aW9ucywgeyBtZXNzYWdlOiBcIkludmFsaWQgcHJpb3JpdHlcIiB9KSxcbn0pO1xuXG5leHBvcnQgdHlwZSBUYXNrID0gei5pbmZlcjx0eXBlb2YgdGFza1NjaGVtYT47Il0sIm5hbWVzIjpbInoiLCJMYWJlbE9wdGlvbnMiLCJQcmlvcml0eU9wdGlvbnMiLCJTdGF0dXNPcHRpb25zIiwidGFza1NjaGVtYSIsIm9iamVjdCIsIl9pZCIsInN0cmluZyIsIm9wdGlvbmFsIiwidGl0bGUiLCJub25lbXB0eSIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJuYXRpdmVFbnVtIiwibGFiZWwiLCJwcmlvcml0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/schemas/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./app/types/api/Api.ts": /*!******************************!*\ !*** ./app/types/api/Api.ts ***! \******************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Api: () => (/* binding */ Api),\n/* harmony export */ ContentType: () => (/* binding */ ContentType),\n/* harmony export */ HttpClient: () => (/* binding */ HttpClient),\n/* harmony export */ LabelOptions: () => (/* binding */ LabelOptions),\n/* harmony export */ PriorityOptions: () => (/* binding */ PriorityOptions),\n/* harmony export */ StatusOptions: () => (/* binding */ StatusOptions)\n/* harmony export */ });\n/* eslint-disable */ /* tslint:disable */ /*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */ var StatusOptions = /*#__PURE__*/ function(StatusOptions) {\n StatusOptions[\"Todo\"] = \"todo\";\n StatusOptions[\"InProgress\"] = \"in-progress\";\n StatusOptions[\"Done\"] = \"done\";\n StatusOptions[\"Cancelled\"] = \"cancelled\";\n StatusOptions[\"Backlog\"] = \"backlog\";\n return StatusOptions;\n}({});\nvar PriorityOptions = /*#__PURE__*/ function(PriorityOptions) {\n PriorityOptions[\"Low\"] = \"low\";\n PriorityOptions[\"High\"] = \"high\";\n PriorityOptions[\"Medium\"] = \"medium\";\n return PriorityOptions;\n}({});\nvar LabelOptions = /*#__PURE__*/ function(LabelOptions) {\n LabelOptions[\"Bug\"] = \"bug\";\n LabelOptions[\"Feature\"] = \"feature\";\n LabelOptions[\"TechDebt\"] = \"tech-debt\";\n LabelOptions[\"Epic\"] = \"epic\";\n LabelOptions[\"Documentation\"] = \"documentation\";\n return LabelOptions;\n}({});\nvar ContentType = /*#__PURE__*/ function(ContentType) {\n ContentType[\"Json\"] = \"application/json\";\n ContentType[\"FormData\"] = \"multipart/form-data\";\n ContentType[\"UrlEncoded\"] = \"application/x-www-form-urlencoded\";\n ContentType[\"Text\"] = \"text/plain\";\n return ContentType;\n}({});\nclass HttpClient {\n encodeQueryParam(key, value) {\n const encodedKey = encodeURIComponent(key);\n return \"\".concat(encodedKey, \"=\").concat(encodeURIComponent(typeof value === \"number\" ? value : \"\".concat(value)));\n }\n addQueryParam(query, key) {\n return this.encodeQueryParam(key, query[key]);\n }\n addArrayQueryParam(query, key) {\n const value = query[key];\n return value.map((v)=>this.encodeQueryParam(key, v)).join(\"&\");\n }\n toQueryString(rawQuery) {\n const query = rawQuery || {};\n const keys = Object.keys(query).filter((key)=>\"undefined\" !== typeof query[key]);\n return keys.map((key)=>Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key)).join(\"&\");\n }\n addQueryParams(rawQuery) {\n const queryString = this.toQueryString(rawQuery);\n return queryString ? \"?\".concat(queryString) : \"\";\n }\n mergeRequestParams(params1, params2) {\n return {\n ...this.baseApiParams,\n ...params1,\n ...params2 || {},\n headers: {\n ...this.baseApiParams.headers || {},\n ...params1.headers || {},\n ...params2 && params2.headers || {}\n }\n };\n }\n constructor(apiConfig = {}){\n this.baseUrl = \"http://localhost:8080\";\n this.securityData = null;\n this.abortControllers = new Map();\n this.customFetch = function() {\n for(var _len = arguments.length, fetchParams = new Array(_len), _key = 0; _key < _len; _key++){\n fetchParams[_key] = arguments[_key];\n }\n return fetch(...fetchParams);\n };\n this.baseApiParams = {\n credentials: \"same-origin\",\n headers: {},\n redirect: \"follow\",\n referrerPolicy: \"no-referrer\"\n };\n this.setSecurityData = (data)=>{\n this.securityData = data;\n };\n this.contentFormatters = {\n [\"application/json\"]: (input)=>input !== null && (typeof input === \"object\" || typeof input === \"string\") ? JSON.stringify(input) : input,\n [\"text/plain\"]: (input)=>input !== null && typeof input !== \"string\" ? JSON.stringify(input) : input,\n [\"multipart/form-data\"]: (input)=>Object.keys(input || {}).reduce((formData, key)=>{\n const property = input[key];\n formData.append(key, property instanceof Blob ? property : typeof property === \"object\" && property !== null ? JSON.stringify(property) : \"\".concat(property));\n return formData;\n }, new FormData()),\n [\"application/x-www-form-urlencoded\"]: (input)=>this.toQueryString(input)\n };\n this.createAbortSignal = (cancelToken)=>{\n if (this.abortControllers.has(cancelToken)) {\n const abortController = this.abortControllers.get(cancelToken);\n if (abortController) {\n return abortController.signal;\n }\n return void 0;\n }\n const abortController = new AbortController();\n this.abortControllers.set(cancelToken, abortController);\n return abortController.signal;\n };\n this.abortRequest = (cancelToken)=>{\n const abortController = this.abortControllers.get(cancelToken);\n if (abortController) {\n abortController.abort();\n this.abortControllers.delete(cancelToken);\n }\n };\n this.request = async (param)=>{\n let { body, secure, path, type, query, format, baseUrl, cancelToken, ...params } = param;\n const secureParams = (typeof secure === \"boolean\" ? secure : this.baseApiParams.secure) && this.securityWorker && await this.securityWorker(this.securityData) || {};\n const requestParams = this.mergeRequestParams(params, secureParams);\n const queryString = query && this.toQueryString(query);\n const payloadFormatter = this.contentFormatters[type || \"application/json\"];\n const responseFormat = format || requestParams.format;\n return this.customFetch(\"\".concat(baseUrl || this.baseUrl || \"\").concat(path).concat(queryString ? \"?\".concat(queryString) : \"\"), {\n ...requestParams,\n headers: {\n ...requestParams.headers || {},\n ...type && type !== \"multipart/form-data\" ? {\n \"Content-Type\": type\n } : {}\n },\n signal: (cancelToken ? this.createAbortSignal(cancelToken) : requestParams.signal) || null,\n body: typeof body === \"undefined\" || body === null ? null : payloadFormatter(body)\n }).then(async (response)=>{\n const r = response.clone();\n r.data = null;\n r.error = null;\n const data = !responseFormat ? r : await response[responseFormat]().then((data)=>{\n if (r.ok) {\n r.data = data;\n } else {\n r.error = data;\n }\n return r;\n }).catch((e)=>{\n r.error = e;\n return r;\n });\n if (cancelToken) {\n this.abortControllers.delete(cancelToken);\n }\n if (!response.ok) throw data;\n return data;\n });\n };\n Object.assign(this, apiConfig);\n }\n}\n/**\n * @title FrontBuild API Documentacion\n * @version 1.0.0\n * @baseUrl http://localhost:8080\n *\n * FrontBuild backend api for creating task and other funcionalidades generated with swagger-jsdoc\n */ class Api extends HttpClient {\n constructor(...args){\n var _this;\n super(...args), _this = this, this.swaggerJson = {\n /**\n * No description\n *\n * @name SwaggerJsonList\n * @request GET:/swagger.json\n */ swaggerJsonList: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/swagger.json\",\n method: \"GET\",\n ...params\n });\n }\n }, this.api = {\n /**\n * No description\n *\n * @name TasksList\n * @request GET:/api/tasks/\n */ tasksList: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/tasks/\",\n method: \"GET\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name TasksAddCreate\n * @request POST:/api/tasks/add\n */ tasksAddCreate: function(data) {\n let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n return _this.request({\n path: \"/api/tasks/add\",\n method: \"POST\",\n body: data,\n type: \"application/json\",\n format: \"json\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name TasksUpdate\n * @request PUT:/api/tasks/{id}\n */ tasksUpdate: function(id) {\n let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n return _this.request({\n path: \"/api/tasks/\".concat(id),\n method: \"PUT\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name TasksDelete\n * @request DELETE:/api/tasks/{id}\n */ tasksDelete: function(id) {\n let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n return _this.request({\n path: \"/api/tasks/\".concat(id),\n method: \"DELETE\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name LabelsList\n * @request GET:/api/labels/\n */ labelsList: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/labels/\",\n method: \"GET\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name LabelsAddCreate\n * @request POST:/api/labels/add\n */ labelsAddCreate: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/labels/add\",\n method: \"POST\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name LabelsDeleteDelete\n * @request DELETE:/api/labels/delete\n */ labelsDeleteDelete: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/labels/delete\",\n method: \"DELETE\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name StatusList\n * @request GET:/api/status/\n */ statusList: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/status/\",\n method: \"GET\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name StatusAddCreate\n * @request POST:/api/status/add\n */ statusAddCreate: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/status/add\",\n method: \"POST\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name StatusDeleteDelete\n * @request DELETE:/api/status/delete\n */ statusDeleteDelete: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/status/delete\",\n method: \"DELETE\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name PrioritiesList\n * @request GET:/api/priorities/\n */ prioritiesList: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/priorities/\",\n method: \"GET\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name PrioritiesAddCreate\n * @request POST:/api/priorities/add\n */ prioritiesAddCreate: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/priorities/add\",\n method: \"POST\",\n ...params\n });\n },\n /**\n * No description\n *\n * @name PrioritiesDeleteDelete\n * @request DELETE:/api/priorities/delete\n */ prioritiesDeleteDelete: function() {\n let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return _this.request({\n path: \"/api/priorities/delete\",\n method: \"DELETE\",\n ...params\n });\n }\n };\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC90eXBlcy9hcGkvQXBpLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGtCQUFrQixHQUNsQixrQkFBa0IsR0FDbEI7Ozs7Ozs7Q0FPQyxHQXVHTSwyQ0FBS0E7Ozs7OztXQUFBQTtNQU1YO0FBRU0sNkNBQUtDOzs7O1dBQUFBO01BSVg7QUFFTSwwQ0FBS0M7Ozs7OztXQUFBQTtNQU1YO0FBd0NNLHlDQUFLQzs7Ozs7V0FBQUE7TUFLWDtBQUVNLE1BQU1DO0lBc0JEQyxpQkFBaUJDLEdBQVcsRUFBRUMsS0FBVSxFQUFFO1FBQ2xELE1BQU1DLGFBQWFDLG1CQUFtQkg7UUFDdEMsT0FBTyxHQUFpQkcsT0FBZEQsWUFBVyxLQUFzRSxPQUFuRUMsbUJBQW1CLE9BQU9GLFVBQVUsV0FBV0EsUUFBUSxHQUFTLE9BQU5BO0lBQ3BGO0lBRVVHLGNBQWNDLEtBQXNCLEVBQUVMLEdBQVcsRUFBRTtRQUMzRCxPQUFPLElBQUksQ0FBQ0QsZ0JBQWdCLENBQUNDLEtBQUtLLEtBQUssQ0FBQ0wsSUFBSTtJQUM5QztJQUVVTSxtQkFBbUJELEtBQXNCLEVBQUVMLEdBQVcsRUFBRTtRQUNoRSxNQUFNQyxRQUFRSSxLQUFLLENBQUNMLElBQUk7UUFDeEIsT0FBT0MsTUFBTU0sR0FBRyxDQUFDLENBQUNDLElBQVcsSUFBSSxDQUFDVCxnQkFBZ0IsQ0FBQ0MsS0FBS1EsSUFBSUMsSUFBSSxDQUFDO0lBQ25FO0lBRVVDLGNBQWNDLFFBQTBCLEVBQVU7UUFDMUQsTUFBTU4sUUFBUU0sWUFBWSxDQUFDO1FBQzNCLE1BQU1DLE9BQU9DLE9BQU9ELElBQUksQ0FBQ1AsT0FBT1MsTUFBTSxDQUFDLENBQUNkLE1BQVEsZ0JBQWdCLE9BQU9LLEtBQUssQ0FBQ0wsSUFBSTtRQUNqRixPQUFPWSxLQUNKTCxHQUFHLENBQUMsQ0FBQ1AsTUFBU2UsTUFBTUMsT0FBTyxDQUFDWCxLQUFLLENBQUNMLElBQUksSUFBSSxJQUFJLENBQUNNLGtCQUFrQixDQUFD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QkFBb0I7b0JBQUM5QiwwRUFBd0IsQ0FBQzt1QkFDNUMsTUFBS04sT0FBTyxDQUFZO29CQUN0QkcsTUFBTztvQkFDUHFCLFFBQVE7b0JBQ1IsR0FBR2xCLE1BQU07Z0JBQ1g7O1lBRUY7Ozs7O0tBS0MsR0FDRCtCLGdCQUFnQjtvQkFBQy9CLDBFQUF3QixDQUFDO3VCQUN4QyxNQUFLTixPQUFPLENBQVk7b0JBQ3RCRyxNQUFPO29CQUNQcUIsUUFBUTtvQkFDUixHQUFHbEIsTUFBTTtnQkFDWDs7WUFFRjs7Ozs7S0FLQyxHQUNEZ0MscUJBQXFCO29CQUFDaEMsMEVBQXdCLENBQUM7dUJBQzdDLE1BQUtOLE9BQU8sQ0FBWTtvQkFDdEJHLE1BQU87b0JBQ1BxQixRQUFRO29CQUNSLEdBQUdsQixNQUFNO2dCQUNYOztZQUVGOzs7OztLQUtDLEdBQ0RpQyx3QkFBd0I7b0JBQUNqQywwRUFBd0IsQ0FBQzt1QkFDaEQsTUFBS04sT0FBTyxDQUFZO29CQUN0QkcsTUFBTztvQkFDUHFCLFFBQVE7b0JBQ1IsR0FBR2xCLE1BQU07Z0JBQ1g7O1FBQ0o7O0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvYXBwL3R5cGVzL2FwaS9BcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAjIyBUSElTIEZJTEUgV0FTIEdFTkVSQVRFRCBWSUEgU1dBR0dFUi1UWVBFU0NSSVBULUFQSSAgICAgICAgIyNcbiAqICMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjI1xuICogIyMgQVVUSE9SOiBhY2Fjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjXG4gKiAjIyBTT1VSQ0U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hY2Fjb2RlL3N3YWdnZXItdHlwZXNjcmlwdC1hcGkgIyNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhbEVycm9yUmVzcG9uc2Uge1xuICAvKiogQGV4YW1wbGUgXCJBbiBlcnJvciBoYXMgb2N1cnJlZFwiICovXG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFzayB7XG4gIC8qKiBAZXhhbXBsZSBcImFzZGphc2RqMTIzMTIzXCIgKi9cbiAgX2lkPzogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJDcmVhdGUgUmVkdXggU3RvcmVcIiAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJ0b2RvXCIgKi9cbiAgc3RhdHVzOiBzdHJpbmc7XG4gIC8qKiBAZXhhbXBsZSBcImVwaWNcIiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJoaWdoXCIgKi9cbiAgcHJpb3JpdHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXNrU3VjY2Vzc1Jlc3BvbnNlU2NoZW1hIHtcbiAgLyoqIEBleGFtcGxlIFwiVGFzayBhZGRlZCBzdWNjZXNzZnVsbHlcIiAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHRhc2s6IHtcbiAgICAvKiogQGV4YW1wbGUgXCJhc2RqYXNkajEyMzEyM1wiICovXG4gICAgX2lkOiBzdHJpbmc7XG4gICAgLyoqIEBleGFtcGxlIFwiQ3JlYXRlIFJlZHV4IFN0b3JlXCIgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBAZXhhbXBsZSBcInRvZG9cIiAqL1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIC8qKiBAZXhhbXBsZSBcImVwaWNcIiAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIEBleGFtcGxlIFwiaGlnaFwiICovXG4gICAgcHJpb3JpdHk6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYWJlbCB7XG4gIC8qKiBAZXhhbXBsZSBcImRrc2wxbTJzc1wiICovXG4gIF9pZD86IHN0cmluZztcbiAgLyoqIEBleGFtcGxlIFwiZXBpY1wiICovXG4gIHZhbHVlOiBzdHJpbmc7XG4gIC8qKiBAZXhhbXBsZSBcIkVwaWNcIiAqL1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsU3VjY2Vzc1Jlc3BvbnNlIHtcbiAgLyoqIEBleGFtcGxlIFwiTGFiZWwgYWRkZWQgc3VjY2Vzc2Z1bGx5XCIgKi9cbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbGFiZWw/OiB7XG4gICAgLyoqIEBleGFtcGxlIFwic2RrYXNrZDIyMjJcIiAqL1xuICAgIF9pZD86IHN0cmluZztcbiAgICAvKiogQGV4YW1wbGUgXCJlcGljXCIgKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIC8qKiBAZXhhbXBsZSBcIkVwaWNcIiAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzIHtcbiAgLyoqIEBleGFtcGxlIFwic2pzZGxhMjIyXCIgKi9cbiAgX2lkPzogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJpbi1wcm9ncmVzc1wiICovXG4gIHZhbHVlOiBzdHJpbmc7XG4gIC8qKiBAZXhhbXBsZSBcIkluLXByb2dyZXNzXCIgKi9cbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0dXNTdWNjZXNzUmVzcG9uc2Uge1xuICAvKiogQGV4YW1wbGUgXCJTdGF0dXMgYWRkZWQgc3VjY2Vzc2Z1bGx5XCIgKi9cbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbGFiZWw/OiB7XG4gICAgLyoqIEBleGFtcGxlIFwic2pzZGxhMjIyXCIgKi9cbiAgICBfaWQ/OiBzdHJpbmc7XG4gICAgLyoqIEBleGFtcGxlIFwiaW4tcHJvZ3Jlc3NcIiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgLyoqIEBleGFtcGxlIFwiSW4tcHJvZ3Jlc3NcIiAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpb3JpdHkge1xuICAvKiogQGV4YW1wbGUgXCJrc2xhazIxMnNzXCIgKi9cbiAgX2lkPzogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJtZWRpdW1cIiAqL1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKiogQGV4YW1wbGUgXCJNZWRpdW1cIiAqL1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaW9yaXR5U3VjY2Vzc1Jlc3BvbnNlIHtcbiAgLyoqIEBleGFtcGxlIFwiUHJpb3JpdHkgYWRkZWQgc3VjY2Vzc2Z1bGx5XCIgKi9cbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbGFiZWw/OiB7XG4gICAgLyoqIEBleGFtcGxlIFwia3NsYWsyMTJzc1wiICovXG4gICAgX2lkPzogc3RyaW5nO1xuICAgIC8qKiBAZXhhbXBsZSBcIm1lZGl1bVwiICovXG4gICAgdmFsdWU6IHN0cmluZztcbiAgICAvKiogQGV4YW1wbGUgXCJNZWRpdW1cIiAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBlbnVtIFN0YXR1c09wdGlvbnMge1xuICBUb2RvID0gXCJ0b2RvXCIsXG4gIEluUHJvZ3Jlc3MgPSBcImluLXByb2dyZXNzXCIsXG4gIERvbmUgPSBcImRvbmVcIixcbiAgQ2FuY2VsbGVkID0gXCJjYW5jZWxsZWRcIixcbiAgQmFja2xvZyA9IFwiYmFja2xvZ1wiLFxufVxuXG5leHBvcnQgZW51bSBQcmlvcml0eU9wdGlvbnMge1xuICBMb3cgPSBcImxvd1wiLFxuICBIaWdoID0gXCJoaWdoXCIsXG4gIE1lZGl1bSA9IFwibWVkaXVtXCIsXG59XG5cbmV4cG9ydCBlbnVtIExhYmVsT3B0aW9ucyB7XG4gIEJ1ZyA9IFwiYnVnXCIsXG4gIEZlYXR1cmUgPSBcImZlYXR1cmVcIixcbiAgVGVjaERlYnQgPSBcInRlY2gtZGVidFwiLFxuICBFcGljID0gXCJlcGljXCIsXG4gIERvY3VtZW50YXRpb24gPSBcImRvY3VtZW50YXRpb25cIixcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlQYXJhbXNUeXBlID0gUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYW55PjtcbmV4cG9ydCB0eXBlIFJlc3BvbnNlRm9ybWF0ID0ga2V5b2YgT21pdDxCb2R5LCBcImJvZHlcIiB8IFwiYm9keVVzZWRcIj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbFJlcXVlc3RQYXJhbXMgZXh0ZW5kcyBPbWl0PFJlcXVlc3RJbml0LCBcImJvZHlcIj4ge1xuICAvKiogc2V0IHBhcmFtZXRlciB0byBgdHJ1ZWAgZm9yIGNhbGwgYHNlY3VyaXR5V29ya2VyYCBmb3IgdGhpcyByZXF1ZXN0ICovXG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIC8qKiByZXF1ZXN0IHBhdGggKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogY29udGVudCB0eXBlIG9mIHJlcXVlc3QgYm9keSAqL1xuICB0eXBlPzogQ29udGVudFR5cGU7XG4gIC8qKiBxdWVyeSBwYXJhbXMgKi9cbiAgcXVlcnk/OiBRdWVyeVBhcmFtc1R5cGU7XG4gIC8qKiBmb3JtYXQgb2YgcmVzcG9uc2UgKGkuZS4gcmVzcG9uc2UuanNvbigpIC0+IGZvcm1hdDogXCJqc29uXCIpICovXG4gIGZvcm1hdD86IFJlc3BvbnNlRm9ybWF0O1xuICAvKiogcmVxdWVzdCBib2R5ICovXG4gIGJvZHk/OiB1bmtub3duO1xuICAvKiogYmFzZSB1cmwgKi9cbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqIHJlcXVlc3QgY2FuY2VsbGF0aW9uIHRva2VuICovXG4gIGNhbmNlbFRva2VuPzogQ2FuY2VsVG9rZW47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSBPbWl0PEZ1bGxSZXF1ZXN0UGFyYW1zLCBcImJvZHlcIiB8IFwibWV0aG9kXCIgfCBcInF1ZXJ5XCIgfCBcInBhdGhcIj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpQ29uZmlnPFNlY3VyaXR5RGF0YVR5cGUgPSB1bmtub3duPiB7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGJhc2VBcGlQYXJhbXM/OiBPbWl0PFJlcXVlc3RQYXJhbXMsIFwiYmFzZVVybFwiIHwgXCJjYW5jZWxUb2tlblwiIHwgXCJzaWduYWxcIj47XG4gIHNlY3VyaXR5V29ya2VyPzogKHNlY3VyaXR5RGF0YTogU2VjdXJpdHlEYXRhVHlwZSB8IG51bGwpID0+IFByb21pc2U8UmVxdWVzdFBhcmFtcyB8IHZvaWQ+IHwgUmVxdWVzdFBhcmFtcyB8IHZvaWQ7XG4gIGN1c3RvbUZldGNoPzogdHlwZW9mIGZldGNoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXNwb25zZTxEIGV4dGVuZHMgdW5rbm93biwgRSBleHRlbmRzIHVua25vd24gPSB1bmtub3duPiBleHRlbmRzIFJlc3BvbnNlIHtcbiAgZGF0YTogRDtcbiAgZXJyb3I6IEU7XG59XG5cbnR5cGUgQ2FuY2VsVG9rZW4gPSBTeW1ib2wgfCBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBlbnVtIENvbnRlbnRUeXBlIHtcbiAgSnNvbiA9IFwiYXBwbGljYXRpb24vanNvblwiLFxuICBGb3JtRGF0YSA9IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLFxuICBVcmxFbmNvZGVkID0gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgVGV4dCA9IFwidGV4dC9wbGFpblwiLFxufVxuXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudDxTZWN1cml0eURhdGFUeXBlID0gdW5rbm93bj4ge1xuICBwdWJsaWMgYmFzZVVybDogc3RyaW5nID0gXCJodHRwOi8vbG9jYWxob3N0OjgwODBcIjtcbiAgcHJpdmF0ZSBzZWN1cml0eURhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZWN1cml0eVdvcmtlcj86IEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlPltcInNlY3VyaXR5V29ya2VyXCJdO1xuICBwcml2YXRlIGFib3J0Q29udHJvbGxlcnMgPSBuZXcgTWFwPENhbmNlbFRva2VuLCBBYm9ydENvbnRyb2xsZXI+KCk7XG4gIHByaXZhdGUgY3VzdG9tRmV0Y2ggPSAoLi4uZmV0Y2hQYXJhbXM6IFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoPikgPT4gZmV0Y2goLi4uZmV0Y2hQYXJhbXMpO1xuXG4gIHByaXZhdGUgYmFzZUFwaVBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHtcbiAgICBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiLFxuICAgIGhlYWRlcnM6IHt9LFxuICAgIHJlZGlyZWN0OiBcImZvbGxvd1wiLFxuICAgIHJlZmVycmVyUG9saWN5OiBcIm5vLXJlZmVycmVyXCIsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoYXBpQ29uZmlnOiBBcGlDb25maWc8U2VjdXJpdHlEYXRhVHlwZT4gPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgYXBpQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWN1cml0eURhdGEgPSAoZGF0YTogU2VjdXJpdHlEYXRhVHlwZSB8IG51bGwpID0+IHtcbiAgICB0aGlzLnNlY3VyaXR5RGF0YSA9IGRhdGE7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGVuY29kZVF1ZXJ5UGFyYW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBlbmNvZGVkS2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gICAgcmV0dXJuIGAke2VuY29kZWRLZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiA/IHZhbHVlIDogYCR7dmFsdWV9YCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtKHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHF1ZXJ5W2tleV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZEFycmF5UXVlcnlQYXJhbShxdWVyeTogUXVlcnlQYXJhbXNUeXBlLCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICByZXR1cm4gdmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHYpKS5qb2luKFwiJlwiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b1F1ZXJ5U3RyaW5nKHJhd1F1ZXJ5PzogUXVlcnlQYXJhbXNUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBxdWVyeSA9IHJhd1F1ZXJ5IHx8IHt9O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhxdWVyeSkuZmlsdGVyKChrZXkpID0+IFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBxdWVyeVtrZXldKTtcbiAgICByZXR1cm4ga2V5c1xuICAgICAgLm1hcCgoa2V5KSA9PiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSA/IHRoaXMuYWRkQXJyYXlRdWVyeVBhcmFtKHF1ZXJ5LCBrZXkpIDogdGhpcy5hZGRRdWVyeVBhcmFtKHF1ZXJ5LCBrZXkpKSlcbiAgICAgIC5qb2luKFwiJlwiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtcyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLnRvUXVlcnlTdHJpbmcocmF3UXVlcnkpO1xuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgY29udGVudEZvcm1hdHRlcnM6IFJlY29yZDxDb250ZW50VHlwZSwgKGlucHV0OiBhbnkpID0+IGFueT4gPSB7XG4gICAgW0NvbnRlbnRUeXBlLkpzb25dOiAoaW5wdXQ6IGFueSkgPT5cbiAgICAgIGlucHV0ICE9PSBudWxsICYmICh0eXBlb2YgaW5wdXQgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiKSA/IEpTT04uc3RyaW5naWZ5KGlucHV0KSA6IGlucHV0LFxuICAgIFtDb250ZW50VHlwZS5UZXh0XTogKGlucHV0OiBhbnkpID0+IChpbnB1dCAhPT0gbnVsbCAmJiB0eXBlb2YgaW5wdXQgIT09IFwic3RyaW5nXCIgPyBKU09OLnN0cmluZ2lmeShpbnB1dCkgOiBpbnB1dCksXG4gICAgW0NvbnRlbnRUeXBlLkZvcm1EYXRhXTogKGlucHV0OiBhbnkpID0+XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dCB8fCB7fSkucmVkdWNlKChmb3JtRGF0YSwga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gaW5wdXRba2V5XTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBwcm9wZXJ0eSBpbnN0YW5jZW9mIEJsb2JcbiAgICAgICAgICAgID8gcHJvcGVydHlcbiAgICAgICAgICAgIDogdHlwZW9mIHByb3BlcnR5ID09PSBcIm9iamVjdFwiICYmIHByb3BlcnR5ICE9PSBudWxsXG4gICAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocHJvcGVydHkpXG4gICAgICAgICAgICAgIDogYCR7cHJvcGVydHl9YCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhO1xuICAgICAgfSwgbmV3IEZvcm1EYXRhKCkpLFxuICAgIFtDb250ZW50VHlwZS5VcmxFbmNvZGVkXTogKGlucHV0OiBhbnkpID0+IHRoaXMudG9RdWVyeVN0cmluZyhpbnB1dCksXG4gIH07XG5cbiAgcHJvdGVjdGVkIG1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMxOiBSZXF1ZXN0UGFyYW1zLCBwYXJhbXMyPzogUmVxdWVzdFBhcmFtcyk6IFJlcXVlc3RQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmJhc2VBcGlQYXJhbXMsXG4gICAgICAuLi5wYXJhbXMxLFxuICAgICAgLi4uKHBhcmFtczIgfHwge30pLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi4odGhpcy5iYXNlQXBpUGFyYW1zLmhlYWRlcnMgfHwge30pLFxuICAgICAgICAuLi4ocGFyYW1zMS5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKChwYXJhbXMyICYmIHBhcmFtczIuaGVhZGVycykgfHwge30pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUFib3J0U2lnbmFsID0gKGNhbmNlbFRva2VuOiBDYW5jZWxUb2tlbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAodGhpcy5hYm9ydENvbnRyb2xsZXJzLmhhcyhjYW5jZWxUb2tlbikpIHtcbiAgICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IHRoaXMuYWJvcnRDb250cm9sbGVycy5nZXQoY2FuY2VsVG9rZW4pO1xuICAgICAgaWYgKGFib3J0Q29udHJvbGxlcikge1xuICAgICAgICByZXR1cm4gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5zZXQoY2FuY2VsVG9rZW4sIGFib3J0Q29udHJvbGxlcik7XG4gICAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gIH07XG5cbiAgcHVibGljIGFib3J0UmVxdWVzdCA9IChjYW5jZWxUb2tlbjogQ2FuY2VsVG9rZW4pID0+IHtcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSB0aGlzLmFib3J0Q29udHJvbGxlcnMuZ2V0KGNhbmNlbFRva2VuKTtcblxuICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXJzLmRlbGV0ZShjYW5jZWxUb2tlbik7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyByZXF1ZXN0ID0gYXN5bmMgPFQgPSBhbnksIEUgPSBhbnk+KHtcbiAgICBib2R5LFxuICAgIHNlY3VyZSxcbiAgICBwYXRoLFxuICAgIHR5cGUsXG4gICAgcXVlcnksXG4gICAgZm9ybWF0LFxuICAgIGJhc2VVcmwsXG4gICAgY2FuY2VsVG9rZW4sXG4gICAgLi4ucGFyYW1zXG4gIH06IEZ1bGxSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxIdHRwUmVzcG9uc2U8VCwgRT4+ID0+IHtcbiAgICBjb25zdCBzZWN1cmVQYXJhbXMgPVxuICAgICAgKCh0eXBlb2Ygc2VjdXJlID09PSBcImJvb2xlYW5cIiA/IHNlY3VyZSA6IHRoaXMuYmFzZUFwaVBhcmFtcy5zZWN1cmUpICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlXb3JrZXIgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2VjdXJpdHlXb3JrZXIodGhpcy5zZWN1cml0eURhdGEpKSkgfHxcbiAgICAgIHt9O1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLm1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMsIHNlY3VyZVBhcmFtcyk7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeSAmJiB0aGlzLnRvUXVlcnlTdHJpbmcocXVlcnkpO1xuICAgIGNvbnN0IHBheWxvYWRGb3JtYXR0ZXIgPSB0aGlzLmNvbnRlbnRGb3JtYXR0ZXJzW3R5cGUgfHwgQ29udGVudFR5cGUuSnNvbl07XG4gICAgY29uc3QgcmVzcG9uc2VGb3JtYXQgPSBmb3JtYXQgfHwgcmVxdWVzdFBhcmFtcy5mb3JtYXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21GZXRjaChgJHtiYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCBcIlwifSR7cGF0aH0ke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiBcIlwifWAsIHtcbiAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLihyZXF1ZXN0UGFyYW1zLmhlYWRlcnMgfHwge30pLFxuICAgICAgICAuLi4odHlwZSAmJiB0eXBlICE9PSBDb250ZW50VHlwZS5Gb3JtRGF0YSA/IHsgXCJDb250ZW50LVR5cGVcIjogdHlwZSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbDogKGNhbmNlbFRva2VuID8gdGhpcy5jcmVhdGVBYm9ydFNpZ25hbChjYW5jZWxUb2tlbikgOiByZXF1ZXN0UGFyYW1zLnNpZ25hbCkgfHwgbnVsbCxcbiAgICAgIGJvZHk6IHR5cGVvZiBib2R5ID09PSBcInVuZGVmaW5lZFwiIHx8IGJvZHkgPT09IG51bGwgPyBudWxsIDogcGF5bG9hZEZvcm1hdHRlcihib2R5KSxcbiAgICB9KS50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgY29uc3QgciA9IHJlc3BvbnNlLmNsb25lKCkgYXMgSHR0cFJlc3BvbnNlPFQsIEU+O1xuICAgICAgci5kYXRhID0gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gICAgICByLmVycm9yID0gbnVsbCBhcyB1bmtub3duIGFzIEU7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSAhcmVzcG9uc2VGb3JtYXRcbiAgICAgICAgPyByXG4gICAgICAgIDogYXdhaXQgcmVzcG9uc2VbcmVzcG9uc2VGb3JtYXRdKClcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyLm9rKSB7XG4gICAgICAgICAgICAgICAgci5kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByLmVycm9yID0gZGF0YTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgci5lcnJvciA9IGU7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChjYW5jZWxUb2tlbikge1xuICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlcnMuZGVsZXRlKGNhbmNlbFRva2VuKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgZGF0YTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIEB0aXRsZSBGcm9udEJ1aWxkIEFQSSBEb2N1bWVudGFjaW9uXG4gKiBAdmVyc2lvbiAxLjAuMFxuICogQGJhc2VVcmwgaHR0cDovL2xvY2FsaG9zdDo4MDgwXG4gKlxuICogRnJvbnRCdWlsZCBiYWNrZW5kIGFwaSBmb3IgY3JlYXRpbmcgdGFzayBhbmQgb3RoZXIgZnVuY2lvbmFsaWRhZGVzIGdlbmVyYXRlZCB3aXRoIHN3YWdnZXItanNkb2NcbiAqL1xuZXhwb3J0IGNsYXNzIEFwaTxTZWN1cml0eURhdGFUeXBlIGV4dGVuZHMgdW5rbm93bj4gZXh0ZW5kcyBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGU+IHtcbiAgc3dhZ2dlckpzb24gPSB7XG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEBuYW1lIFN3YWdnZXJKc29uTGlzdFxuICAgICAqIEByZXF1ZXN0IEdFVDovc3dhZ2dlci5qc29uXG4gICAgICovXG4gICAgc3dhZ2dlckpzb25MaXN0OiAocGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLnJlcXVlc3Q8dm9pZCwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvc3dhZ2dlci5qc29uYCxcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcbiAgfTtcbiAgYXBpID0ge1xuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBUYXNrc0xpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2FwaS90YXNrcy9cbiAgICAgKi9cbiAgICB0YXNrc0xpc3Q6IChwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvdGFza3MvYCxcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBUYXNrc0FkZENyZWF0ZVxuICAgICAqIEByZXF1ZXN0IFBPU1Q6L2FwaS90YXNrcy9hZGRcbiAgICAgKi9cbiAgICB0YXNrc0FkZENyZWF0ZTogKGRhdGE6IFRhc2ssIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PFRhc2tTdWNjZXNzUmVzcG9uc2VTY2hlbWEsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2FwaS90YXNrcy9hZGRgLFxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICB0eXBlOiBDb250ZW50VHlwZS5Kc29uLFxuICAgICAgICBmb3JtYXQ6IFwianNvblwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBUYXNrc1VwZGF0ZVxuICAgICAqIEByZXF1ZXN0IFBVVDovYXBpL3Rhc2tzL3tpZH1cbiAgICAgKi9cbiAgICB0YXNrc1VwZGF0ZTogKGlkOiBzdHJpbmcsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgICBwYXRoOiBgL2FwaS90YXNrcy8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogXCJQVVRcIixcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgVGFza3NEZWxldGVcbiAgICAgKiBAcmVxdWVzdCBERUxFVEU6L2FwaS90YXNrcy97aWR9XG4gICAgICovXG4gICAgdGFza3NEZWxldGU6IChpZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvdGFza3MvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEBuYW1lIExhYmVsc0xpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2FwaS9sYWJlbHMvXG4gICAgICovXG4gICAgbGFiZWxzTGlzdDogKHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgICBwYXRoOiBgL2FwaS9sYWJlbHMvYCxcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBMYWJlbHNBZGRDcmVhdGVcbiAgICAgKiBAcmVxdWVzdCBQT1NUOi9hcGkvbGFiZWxzL2FkZFxuICAgICAqL1xuICAgIGxhYmVsc0FkZENyZWF0ZTogKHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgICBwYXRoOiBgL2FwaS9sYWJlbHMvYWRkYCxcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgTGFiZWxzRGVsZXRlRGVsZXRlXG4gICAgICogQHJlcXVlc3QgREVMRVRFOi9hcGkvbGFiZWxzL2RlbGV0ZVxuICAgICAqL1xuICAgIGxhYmVsc0RlbGV0ZURlbGV0ZTogKHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgICBwYXRoOiBgL2FwaS9sYWJlbHMvZGVsZXRlYCxcbiAgICAgICAgbWV0aG9kOiBcIkRFTEVURVwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBTdGF0dXNMaXN0XG4gICAgICogQHJlcXVlc3QgR0VUOi9hcGkvc3RhdHVzL1xuICAgICAqL1xuICAgIHN0YXR1c0xpc3Q6IChwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvc3RhdHVzL2AsXG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgU3RhdHVzQWRkQ3JlYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovYXBpL3N0YXR1cy9hZGRcbiAgICAgKi9cbiAgICBzdGF0dXNBZGRDcmVhdGU6IChwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvc3RhdHVzL2FkZGAsXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEBuYW1lIFN0YXR1c0RlbGV0ZURlbGV0ZVxuICAgICAqIEByZXF1ZXN0IERFTEVURTovYXBpL3N0YXR1cy9kZWxldGVcbiAgICAgKi9cbiAgICBzdGF0dXNEZWxldGVEZWxldGU6IChwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvc3RhdHVzL2RlbGV0ZWAsXG4gICAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgUHJpb3JpdGllc0xpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2FwaS9wcmlvcml0aWVzL1xuICAgICAqL1xuICAgIHByaW9yaXRpZXNMaXN0OiAocGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLnJlcXVlc3Q8YW55LCB2b2lkPih7XG4gICAgICAgIHBhdGg6IGAvYXBpL3ByaW9yaXRpZXMvYCxcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBQcmlvcml0aWVzQWRkQ3JlYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovYXBpL3ByaW9yaXRpZXMvYWRkXG4gICAgICovXG4gICAgcHJpb3JpdGllc0FkZENyZWF0ZTogKHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgICBwYXRoOiBgL2FwaS9wcmlvcml0aWVzL2FkZGAsXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEBuYW1lIFByaW9yaXRpZXNEZWxldGVEZWxldGVcbiAgICAgKiBAcmVxdWVzdCBERUxFVEU6L2FwaS9wcmlvcml0aWVzL2RlbGV0ZVxuICAgICAqL1xuICAgIHByaW9yaXRpZXNEZWxldGVEZWxldGU6IChwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdDxhbnksIHZvaWQ+KHtcbiAgICAgICAgcGF0aDogYC9hcGkvcHJpb3JpdGllcy9kZWxldGVgLFxuICAgICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xufVxuIl0sIm5hbWVzIjpbIlN0YXR1c09wdGlvbnMiLCJQcmlvcml0eU9wdGlvbnMiLCJMYWJlbE9wdGlvbnMiLCJDb250ZW50VHlwZSIsIkh0dHBDbGllbnQiLCJlbmNvZGVRdWVyeVBhcmFtIiwia2V5IiwidmFsdWUiLCJlbmNvZGVkS2V5IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYWRkUXVlcnlQYXJhbSIsInF1ZXJ5IiwiYWRkQXJyYXlRdWVyeVBhcmFtIiwibWFwIiwidiIsImpvaW4iLCJ0b1F1ZXJ5U3RyaW5nIiwicmF3UXVlcnkiLCJrZXlzIiwiT2JqZWN0IiwiZmlsdGVyIiwiQXJyYXkiLCJpc0FycmF5IiwiYWRkUXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsIm1lcmdlUmVxdWVzdFBhcmFtcyIsInBhcmFtczEiLCJwYXJhbXMyIiwiYmFzZUFwaVBhcmFtcyIsImhlYWRlcnMiLCJjb25zdHJ1Y3RvciIsImFwaUNvbmZpZyIsImJhc2VVcmwiLCJzZWN1cml0eURhdGEiLCJhYm9ydENvbnRyb2xsZXJzIiwiTWFwIiwiY3VzdG9tRmV0Y2giLCJmZXRjaFBhcmFtcyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJyZWRpcmVjdCIsInJlZmVycmVyUG9saWN5Iiwic2V0U2VjdXJpdHlEYXRhIiwiZGF0YSIsImNvbnRlbnRGb3JtYXR0ZXJzIiwiaW5wdXQiLCJKU09OIiwic3RyaW5naWZ5IiwicmVkdWNlIiwiZm9ybURhdGEiLCJwcm9wZXJ0eSIsImFwcGVuZCIsIkJsb2IiLCJGb3JtRGF0YSIsImNyZWF0ZUFib3J0U2lnbmFsIiwiY2FuY2VsVG9rZW4iLCJoYXMiLCJhYm9ydENvbnRyb2xsZXIiLCJnZXQiLCJzaWduYWwiLCJBYm9ydENvbnRyb2xsZXIiLCJzZXQiLCJhYm9ydFJlcXVlc3QiLCJhYm9ydCIsImRlbGV0ZSIsInJlcXVlc3QiLCJib2R5Iiwic2VjdXJlIiwicGF0aCIsInR5cGUiLCJmb3JtYXQiLCJwYXJhbXMiLCJzZWN1cmVQYXJhbXMiLCJzZWN1cml0eVdvcmtlciIsInJlcXVlc3RQYXJhbXMiLCJwYXlsb2FkRm9ybWF0dGVyIiwicmVzcG9uc2VGb3JtYXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJyIiwiY2xvbmUiLCJlcnJvciIsIm9rIiwiY2F0Y2giLCJlIiwiYXNzaWduIiwiQXBpIiwic3dhZ2dlckpzb24iLCJzd2FnZ2VySnNvbkxpc3QiLCJtZXRob2QiLCJhcGkiLCJ0YXNrc0xpc3QiLCJ0YXNrc0FkZENyZWF0ZSIsInRhc2tzVXBkYXRlIiwiaWQiLCJ0YXNrc0RlbGV0ZSIsImxhYmVsc0xpc3QiLCJsYWJlbHNBZGRDcmVhdGUiLCJsYWJlbHNEZWxldGVEZWxldGUiLCJzdGF0dXNMaXN0Iiwic3RhdHVzQWRkQ3JlYXRlIiwic3RhdHVzRGVsZXRlRGVsZXRlIiwicHJpb3JpdGllc0xpc3QiLCJwcmlvcml0aWVzQWRkQ3JlYXRlIiwicHJpb3JpdGllc0RlbGV0ZURlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/types/api/Api.ts\n")); /***/ }), /***/ "(app-pages-browser)/./app/types/index.ts": /*!****************************!*\ !*** ./app/types/index.ts ***! \****************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ priorityIconMap: () => (/* binding */ priorityIconMap),\n/* harmony export */ statusIconMap: () => (/* binding */ statusIconMap)\n/* harmony export */ });\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-up.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-down.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/timer.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-off.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowRight,ArrowUp,CheckCircle,Circle,CircleOff,HelpCircle,Timer!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js\");\n\nconst priorityIconMap = {\n 'high': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n 'medium': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n 'low': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n};\nconst statusIconMap = {\n 'in-progress': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n 'todo': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n 'done': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n 'cancelled': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n 'backlog': _barrel_optimize_names_ArrowDown_ArrowRight_ArrowUp_CheckCircle_Circle_CircleOff_HelpCircle_Timer_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n};\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC90eXBlcy9pbmRleC50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBU3FCO0FBRWQsTUFBTVEsa0JBQWtCO0lBQzNCLFFBQVFOLHNKQUFPQTtJQUNmLFVBQVVELHNKQUFVQTtJQUNwQixPQUFPRCxzSkFBU0E7QUFDcEIsRUFBQztBQUtNLE1BQU1TLGdCQUFnQjtJQUN6QixlQUFlRixzSkFBS0E7SUFDcEIsUUFBUUgsc0pBQU1BO0lBQ2QsUUFBUUQsc0pBQVdBO0lBQ25CLGFBQWFFLHNKQUFTQTtJQUN0QixXQUFXQyxzSkFBVUE7QUFDekIsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvdHlwZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcnJvd0Rvd24sXG4gICAgQXJyb3dSaWdodCxcbiAgICBBcnJvd1VwLFxuICAgIENoZWNrQ2lyY2xlLFxuICAgIENpcmNsZSxcbiAgICBDaXJjbGVPZmYsXG4gICAgSGVscENpcmNsZSxcbiAgICBUaW1lcixcbn0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmV4cG9ydCBjb25zdCBwcmlvcml0eUljb25NYXAgPSB7XG4gICAgJ2hpZ2gnOiBBcnJvd1VwLFxuICAgICdtZWRpdW0nOiBBcnJvd1JpZ2h0LFxuICAgICdsb3cnOiBBcnJvd0Rvd25cbn1cblxuZXhwb3J0IHR5cGUgUHJpb3JpdHkgPSBrZXlvZiB0eXBlb2YgcHJpb3JpdHlJY29uTWFwO1xuZXhwb3J0IHR5cGUgUHJpb3JpdHlJY29uID0gdHlwZW9mIHByaW9yaXR5SWNvbk1hcFtQcmlvcml0eV1cblxuZXhwb3J0IGNvbnN0IHN0YXR1c0ljb25NYXAgPSB7XG4gICAgJ2luLXByb2dyZXNzJzogVGltZXIsXG4gICAgJ3RvZG8nOiBDaXJjbGUsXG4gICAgJ2RvbmUnOiBDaGVja0NpcmNsZSxcbiAgICAnY2FuY2VsbGVkJzogQ2lyY2xlT2ZmLFxuICAgICdiYWNrbG9nJzogSGVscENpcmNsZVxufVxuXG5leHBvcnQgdHlwZSBTdGF0dXMgPSBrZXlvZiB0eXBlb2Ygc3RhdHVzSWNvbk1hcDtcbmV4cG9ydCB0eXBlIFN0YXR1c0ljb24gPSB0eXBlb2Ygc3RhdHVzSWNvbk1hcFtTdGF0dXNdO1xuIl0sIm5hbWVzIjpbIkFycm93RG93biIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQ2hlY2tDaXJjbGUiLCJDaXJjbGUiLCJDaXJjbGVPZmYiLCJIZWxwQ2lyY2xlIiwiVGltZXIiLCJwcmlvcml0eUljb25NYXAiLCJzdGF0dXNJY29uTWFwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/types/index.ts\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/ConfirmationDialog/index.tsx": /*!************************************************************!*\ !*** ./components/frontbuild/ConfirmationDialog/index.tsx ***! \************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConfirmationDialog: () => (/* binding */ ConfirmationDialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/alert-dialog */ \"(app-pages-browser)/./components/ui/alert-dialog.tsx\");\n\n\nconst ConfirmationDialog = (param)=>{\n let { open, onOpenChange, onAccept } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialog, {\n open: open,\n onOpenChange: onOpenChange,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogTitle, {\n children: \"Are you absolutely sure?\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 25,\n columnNumber: 21\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogDescription, {\n children: \"This action cannot be undone. This will permanently delete the task from our servers.\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 26,\n columnNumber: 21\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 24,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogFooter, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogCancel, {\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 31,\n columnNumber: 21\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.AlertDialogAction, {\n onClick: onAccept,\n children: \"Continue\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 32,\n columnNumber: 21\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 30,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ConfirmationDialog/index.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, undefined);\n};\n_c = ConfirmationDialog;\nvar _c;\n$RefreshReg$(_c, \"ConfirmationDialog\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Db25maXJtYXRpb25EaWFsb2cvaW5kZXgudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTcUM7QUFTOUIsTUFBTVEscUJBQWlEO1FBQUMsRUFBRUMsSUFBSSxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRTtJQUUzRixxQkFDSSw4REFBQ1gsb0VBQVdBO1FBQUNTLE1BQU1BO1FBQU1DLGNBQWNBO2tCQUNuQyw0RUFBQ1AsMkVBQWtCQTs7OEJBQ2YsOERBQUNHLDBFQUFpQkE7O3NDQUNkLDhEQUFDQyx5RUFBZ0JBO3NDQUFDOzs7Ozs7c0NBQ2xCLDhEQUFDSCwrRUFBc0JBO3NDQUFDOzs7Ozs7Ozs7Ozs7OEJBSTVCLDhEQUFDQywwRUFBaUJBOztzQ0FDZCw4REFBQ0gsMEVBQWlCQTtzQ0FBQzs7Ozs7O3NDQUNuQiw4REFBQ0QsMEVBQWlCQTs0QkFBQ1csU0FBU0Q7c0NBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSzFELEVBQUM7S0FsQllIIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Db25maXJtYXRpb25EaWFsb2cvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWxlcnREaWFsb2csXG4gICAgQWxlcnREaWFsb2dBY3Rpb24sXG4gICAgQWxlcnREaWFsb2dDYW5jZWwsXG4gICAgQWxlcnREaWFsb2dDb250ZW50LFxuICAgIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gICAgQWxlcnREaWFsb2dGb290ZXIsXG4gICAgQWxlcnREaWFsb2dIZWFkZXIsXG4gICAgQWxlcnREaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9hbGVydC1kaWFsb2dcIlxuXG5pbnRlcmZhY2UgQWxlcnREaWFsb2dQcm9wcyB7XG4gICAgb3BlbjogYm9vbGVhblxuICAgIG9uT3BlbkNoYW5nZTogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbiAgICBvbkFjY2VwdDogKCkgPT4gdm9pZFxufVxuXG5cbmV4cG9ydCBjb25zdCBDb25maXJtYXRpb25EaWFsb2c6IFJlYWN0LkZDPEFsZXJ0RGlhbG9nUHJvcHM+ID0gKHsgb3Blbiwgb25PcGVuQ2hhbmdlLCBvbkFjY2VwdCB9KSA9PiB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QWxlcnREaWFsb2cgb3Blbj17b3Blbn0gb25PcGVuQ2hhbmdlPXtvbk9wZW5DaGFuZ2V9PlxuICAgICAgICAgICAgPEFsZXJ0RGlhbG9nQ29udGVudD5cbiAgICAgICAgICAgICAgICA8QWxlcnREaWFsb2dIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxBbGVydERpYWxvZ1RpdGxlPkFyZSB5b3UgYWJzb2x1dGVseSBzdXJlPzwvQWxlcnREaWFsb2dUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLiBUaGlzIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHRoZSB0YXNrIGZyb20gb3VyIHNlcnZlcnMuXG4gICAgICAgICAgICAgICAgICAgIDwvQWxlcnREaWFsb2dEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICA8L0FsZXJ0RGlhbG9nSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxBbGVydERpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0RGlhbG9nQ2FuY2VsPkNhbmNlbDwvQWxlcnREaWFsb2dDYW5jZWw+XG4gICAgICAgICAgICAgICAgICAgIDxBbGVydERpYWxvZ0FjdGlvbiBvbkNsaWNrPXtvbkFjY2VwdH0+Q29udGludWU8L0FsZXJ0RGlhbG9nQWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvQWxlcnREaWFsb2dGb290ZXI+XG4gICAgICAgICAgICA8L0FsZXJ0RGlhbG9nQ29udGVudD5cbiAgICAgICAgPC9BbGVydERpYWxvZz5cbiAgICApXG59XG4iXSwibmFtZXMiOlsiQWxlcnREaWFsb2ciLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQWxlcnREaWFsb2dEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nRm9vdGVyIiwiQWxlcnREaWFsb2dIZWFkZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiQ29uZmlybWF0aW9uRGlhbG9nIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIm9uQWNjZXB0Iiwib25DbGljayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/ConfirmationDialog/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/Columns.tsx": /*!*****************************************************!*\ !*** ./components/frontbuild/DataTable/Columns.tsx ***! \*****************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ columns: () => (/* binding */ columns)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _components_ui_badge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/badge */ \"(app-pages-browser)/./components/ui/badge.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _DataTableColumnHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataTableColumnHeader */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTableColumnHeader.tsx\");\n/* harmony import */ var _DataTableRowActions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataTableRowActions */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTableRowActions.tsx\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _barrel_optimize_names_Binary_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Binary!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/binary.js\");\n/* __next_internal_client_entry_do_not_use__ columns auto */ \n\n\n\n\n\n\nconst columns = [\n {\n id: \"select\",\n header: (param)=>{\n let { table } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: table.getIsAllPageRowsSelected() || table.getIsSomePageRowsSelected() && \"indeterminate\",\n onCheckedChange: (value)=>table.toggleAllPageRowsSelected(!!value),\n \"aria-label\": \"Select all\",\n className: \"translate-y-[2px]\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, undefined);\n },\n cell: (param)=>{\n let { row } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: row.getIsSelected(),\n onCheckedChange: (value)=>row.toggleSelected(!!value),\n \"aria-label\": \"Select row\",\n className: \"translate-y-[2px]\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, undefined);\n },\n enableSorting: false,\n enableHiding: false\n },\n //todo generate task_id\n // {\n // accessorKey: \"_id\",\n // header: ({ column }) => (\n // <DataTableColumnHeader column={column} title=\"Task\" />\n // ),\n // cell: ({ row }) => {\n // console.log(row)\n // return <div className=\"w-[95px]\">{row.getValue(\"_id\")}</div>\n // },\n // enableSorting: false,\n // enableHiding: false,\n // },\n {\n accessorKey: \"title\",\n header: (param)=>{\n let { column } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableColumnHeader__WEBPACK_IMPORTED_MODULE_3__.DataTableColumnHeader, {\n column: column,\n title: \"Title\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 53,\n columnNumber: 7\n }, undefined);\n },\n cell: (param)=>{\n let { row } = param;\n const badgeVariant = row.original.label;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_badge__WEBPACK_IMPORTED_MODULE_1__.Badge, {\n variant: badgeVariant,\n children: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.capitalizeFirstLetter)(row.original.label)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 60,\n columnNumber: 12\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"max-w-[500px] truncate text-xs sm:text-sm\",\n children: row.getValue(\"title\")\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 61,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, undefined);\n }\n },\n {\n accessorKey: \"status\",\n header: (param)=>{\n let { column } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableColumnHeader__WEBPACK_IMPORTED_MODULE_3__.DataTableColumnHeader, {\n column: column,\n title: \"Status\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 71,\n columnNumber: 7\n }, undefined);\n },\n cell: (param)=>{\n let { row } = param;\n const rowStatus = row.original.status;\n const Icon = rowStatus ? (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.getStatusIcon)(rowStatus) : _barrel_optimize_names_Binary_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex w-[100px] items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"mr-2 h-4 w-4 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 81,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs sm:text-sm\",\n children: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.capitalizeFirstLetter)(row.original.status)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 82,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 80,\n columnNumber: 9\n }, undefined);\n },\n filterFn: (row, id, value)=>{\n return value.includes(row.getValue(id));\n }\n },\n {\n accessorKey: \"priority\",\n header: (param)=>{\n let { column } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableColumnHeader__WEBPACK_IMPORTED_MODULE_3__.DataTableColumnHeader, {\n column: column,\n title: \"Priority\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 93,\n columnNumber: 7\n }, undefined);\n },\n cell: (param)=>{\n let { row } = param;\n const rowPriority = row.original.priority;\n const Icon = rowPriority ? (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.getPriorityIcon)(rowPriority) : _barrel_optimize_names_Binary_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"mr-2 h-4 w-4 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 101,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs sm:text-sm\",\n children: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.capitalizeFirstLetter)(row.original.priority)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 100,\n columnNumber: 9\n }, undefined);\n },\n filterFn: (row, id, value)=>{\n return value.includes(row.getValue(id));\n }\n },\n {\n id: \"actions\",\n cell: (param)=>{\n let { row } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableRowActions__WEBPACK_IMPORTED_MODULE_4__.DataTableRowActions, {\n row: row\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/Columns.tsx\",\n lineNumber: 112,\n columnNumber: 24\n }, undefined);\n }\n }\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvQ29sdW1ucy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRTJEO0FBQ1I7QUFFWTtBQUNKO0FBQ3dCO0FBQzlDO0FBRzlCLE1BQU1RLFVBQTZCO0lBQ3hDO1FBQ0VDLElBQUk7UUFDSkMsUUFBUTtnQkFBQyxFQUFFQyxLQUFLLEVBQUU7aUNBQ2hCLDhEQUFDViw2REFBUUE7Z0JBQ1BXLFNBQ0VELE1BQU1FLHdCQUF3QixNQUM3QkYsTUFBTUcseUJBQXlCLE1BQU07Z0JBRXhDQyxpQkFBaUIsQ0FBQ0MsUUFBVUwsTUFBTU0seUJBQXlCLENBQUMsQ0FBQyxDQUFDRDtnQkFDOURFLGNBQVc7Z0JBQ1hDLFdBQVU7Ozs7Ozs7UUFHZEMsTUFBTTtnQkFBQyxFQUFFQyxHQUFHLEVBQUU7aUNBQ1osOERBQUNwQiw2REFBUUE7Z0JBQ1BXLFNBQVNTLElBQUlDLGFBQWE7Z0JBQzFCUCxpQkFBaUIsQ0FBQ0MsUUFBVUssSUFBSUUsY0FBYyxDQUFDLENBQUMsQ0FBQ1A7Z0JBQ2pERSxjQUFXO2dCQUNYQyxXQUFVOzs7Ozs7O1FBR2RLLGVBQWU7UUFDZkMsY0FBYztJQUNoQjtJQUNBLHVCQUF1QjtJQUN2QixJQUFJO0lBQ0osd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5Qiw2REFBNkQ7SUFDN0QsT0FBTztJQUNQLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsbUVBQW1FO0lBQ25FLE9BQU87SUFDUCwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLEtBQUs7SUFDTDtRQUNFQyxhQUFhO1FBQ2JoQixRQUFRO2dCQUFDLEVBQUVpQixNQUFNLEVBQUU7aUNBQ2pCLDhEQUFDekIseUVBQXFCQTtnQkFBQ3lCLFFBQVFBO2dCQUFRQyxPQUFNOzs7Ozs7O1FBRS9DUixNQUFNO2dCQUFDLEVBQUVDLEdBQUcsRUFBRTtZQUNaLE1BQU1RLGVBQTZCUixJQUFJUyxRQUFRLENBQUNDLEtBQUs7WUFFckQscUJBQ0UsOERBQUNDO2dCQUFJYixXQUFVOztrQ0FDWiw4REFBQ25CLHVEQUFLQTt3QkFBQ2lDLFNBQVNKO2tDQUFlekIsaUVBQXFCQSxDQUFDaUIsSUFBSVMsUUFBUSxDQUFDQyxLQUFLOzs7Ozs7a0NBQ3hFLDhEQUFDRzt3QkFBS2YsV0FBVTtrQ0FDYkUsSUFBSWMsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7UUFJdEI7SUFDRjtJQUNBO1FBQ0VULGFBQWE7UUFDYmhCLFFBQVE7Z0JBQUMsRUFBRWlCLE1BQU0sRUFBRTtpQ0FDakIsOERBQUN6Qix5RUFBcUJBO2dCQUFDeUIsUUFBUUE7Z0JBQVFDLE9BQU07Ozs7Ozs7UUFFL0NSLE1BQU07Z0JBQUMsRUFBRUMsR0FBRyxFQUFFO1lBRVosTUFBTWUsWUFBWWYsSUFBSVMsUUFBUSxDQUFDTyxNQUFNO1lBRXJDLE1BQU1DLE9BQU9GLFlBQVk5Qix5REFBYUEsQ0FBQzhCLGFBQWE3QixrRkFBTUE7WUFFMUQscUJBQ0UsOERBQUN5QjtnQkFBSWIsV0FBVTs7a0NBQ2IsOERBQUNtQjt3QkFBS25CLFdBQVU7Ozs7OztrQ0FDaEIsOERBQUNlO3dCQUFLZixXQUFVO2tDQUFzQmYsaUVBQXFCQSxDQUFDaUIsSUFBSVMsUUFBUSxDQUFDTyxNQUFNOzs7Ozs7Ozs7Ozs7UUFHckY7UUFDQUUsVUFBVSxDQUFDbEIsS0FBS1osSUFBSU87WUFDbEIsT0FBT0EsTUFBTXdCLFFBQVEsQ0FBQ25CLElBQUljLFFBQVEsQ0FBQzFCO1FBQ3JDO0lBQ0Y7SUFDQTtRQUNFaUIsYUFBYTtRQUNiaEIsUUFBUTtnQkFBQyxFQUFFaUIsTUFBTSxFQUFFO2lDQUNqQiw4REFBQ3pCLHlFQUFxQkE7Z0JBQUN5QixRQUFRQTtnQkFBUUMsT0FBTTs7Ozs7OztRQUUvQ1IsTUFBTTtnQkFBQyxFQUFFQyxHQUFHLEVBQUU7WUFDWixNQUFNb0IsY0FBY3BCLElBQUlTLFFBQVEsQ0FBQ1ksUUFBUTtZQUN6QyxNQUFNSixPQUFPRyxjQUFjcEMsMkRBQWVBLENBQUNvQyxlQUFlbEMsa0ZBQU1BO1lBRWhFLHFCQUNFLDhEQUFDeUI7Z0JBQUliLFdBQVU7O2tDQUNiLDhEQUFDbUI7d0JBQUtuQixXQUFVOzs7Ozs7a0NBQ2hCLDhEQUFDZTt3QkFBS2YsV0FBVTtrQ0FBc0JmLGlFQUFxQkEsQ0FBQ2lCLElBQUlTLFFBQVEsQ0FBQ1ksUUFBUTs7Ozs7Ozs7Ozs7O1FBR3ZGO1FBQ0FILFVBQVUsQ0FBQ2xCLEtBQUtaLElBQUlPO1lBQ2xCLE9BQU9BLE1BQU13QixRQUFRLENBQUNuQixJQUFJYyxRQUFRLENBQUMxQjtRQUNyQztJQUNGO0lBQ0E7UUFDRUEsSUFBSTtRQUNKVyxNQUFNO2dCQUFDLEVBQUVDLEdBQUcsRUFBRTtpQ0FBSyw4REFBQ2xCLHFFQUFtQkE7Z0JBQUNrQixLQUFLQTs7Ozs7OztJQUMvQztDQUNEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvQ29sdW1ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3QtdGFibGVcIlxuaW1wb3J0IHsgQmFkZ2UsIEJhZGdlVmFyaWFudCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYmFkZ2VcIlxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2NoZWNrYm94XCJcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiQC9hcHAvc2NoZW1hc1wiXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5IZWFkZXIgfSBmcm9tIFwiLi9EYXRhVGFibGVDb2x1bW5IZWFkZXJcIlxuaW1wb3J0IHsgRGF0YVRhYmxlUm93QWN0aW9ucyB9IGZyb20gXCIuL0RhdGFUYWJsZVJvd0FjdGlvbnNcIlxuaW1wb3J0IHsgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyLCBnZXRQcmlvcml0eUljb24sIGdldFN0YXR1c0ljb24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgQmluYXJ5IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQgeyBQcmlvcml0eSwgU3RhdHVzIH0gZnJvbSBcIkAvYXBwL3R5cGVzXCJcblxuZXhwb3J0IGNvbnN0IGNvbHVtbnM6IENvbHVtbkRlZjxUYXNrPltdID0gW1xuICB7XG4gICAgaWQ6IFwic2VsZWN0XCIsXG4gICAgaGVhZGVyOiAoeyB0YWJsZSB9KSA9PiAoXG4gICAgICA8Q2hlY2tib3hcbiAgICAgICAgY2hlY2tlZD17XG4gICAgICAgICAgdGFibGUuZ2V0SXNBbGxQYWdlUm93c1NlbGVjdGVkKCkgfHxcbiAgICAgICAgICAodGFibGUuZ2V0SXNTb21lUGFnZVJvd3NTZWxlY3RlZCgpICYmIFwiaW5kZXRlcm1pbmF0ZVwiKVxuICAgICAgICB9XG4gICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KHZhbHVlKSA9PiB0YWJsZS50b2dnbGVBbGxQYWdlUm93c1NlbGVjdGVkKCEhdmFsdWUpfVxuICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGFsbFwiXG4gICAgICAgIGNsYXNzTmFtZT1cInRyYW5zbGF0ZS15LVsycHhdXCJcbiAgICAgIC8+XG4gICAgKSxcbiAgICBjZWxsOiAoeyByb3cgfSkgPT4gKFxuICAgICAgPENoZWNrYm94XG4gICAgICAgIGNoZWNrZWQ9e3Jvdy5nZXRJc1NlbGVjdGVkKCl9XG4gICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KHZhbHVlKSA9PiByb3cudG9nZ2xlU2VsZWN0ZWQoISF2YWx1ZSl9XG4gICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3Qgcm93XCJcbiAgICAgICAgY2xhc3NOYW1lPVwidHJhbnNsYXRlLXktWzJweF1cIlxuICAgICAgLz5cbiAgICApLFxuICAgIGVuYWJsZVNvcnRpbmc6IGZhbHNlLFxuICAgIGVuYWJsZUhpZGluZzogZmFsc2UsXG4gIH0sXG4gIC8vdG9kbyBnZW5lcmF0ZSB0YXNrX2lkXG4gIC8vIHtcbiAgLy8gICBhY2Nlc3NvcktleTogXCJfaWRcIixcbiAgLy8gICBoZWFkZXI6ICh7IGNvbHVtbiB9KSA9PiAoXG4gIC8vICAgICA8RGF0YVRhYmxlQ29sdW1uSGVhZGVyIGNvbHVtbj17Y29sdW1ufSB0aXRsZT1cIlRhc2tcIiAvPlxuICAvLyAgICksXG4gIC8vICAgY2VsbDogKHsgcm93IH0pID0+IHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKHJvdylcbiAgLy8gICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInctWzk1cHhdXCI+e3Jvdy5nZXRWYWx1ZShcIl9pZFwiKX08L2Rpdj5cbiAgLy8gICB9LFxuICAvLyAgIGVuYWJsZVNvcnRpbmc6IGZhbHNlLFxuICAvLyAgIGVuYWJsZUhpZGluZzogZmFsc2UsXG4gIC8vIH0sXG4gIHtcbiAgICBhY2Nlc3NvcktleTogXCJ0aXRsZVwiLFxuICAgIGhlYWRlcjogKHsgY29sdW1uIH0pID0+IChcbiAgICAgIDxEYXRhVGFibGVDb2x1bW5IZWFkZXIgY29sdW1uPXtjb2x1bW59IHRpdGxlPVwiVGl0bGVcIiAvPlxuICAgICksXG4gICAgY2VsbDogKHsgcm93IH0pID0+IHtcbiAgICAgIGNvbnN0IGJhZGdlVmFyaWFudDogQmFkZ2VWYXJpYW50ID0gcm93Lm9yaWdpbmFsLmxhYmVsIGFzIEJhZGdlVmFyaWFudFxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggc3BhY2UteC0yXCI+XG4gICAgICAgICAgezxCYWRnZSB2YXJpYW50PXtiYWRnZVZhcmlhbnR9PntjYXBpdGFsaXplRmlyc3RMZXR0ZXIocm93Lm9yaWdpbmFsLmxhYmVsKX08L0JhZGdlPn1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtYXgtdy1bNTAwcHhdIHRydW5jYXRlIHRleHQteHMgc206dGV4dC1zbVwiPlxuICAgICAgICAgICAge3Jvdy5nZXRWYWx1ZShcInRpdGxlXCIpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFjY2Vzc29yS2V5OiBcInN0YXR1c1wiLFxuICAgIGhlYWRlcjogKHsgY29sdW1uIH0pID0+IChcbiAgICAgIDxEYXRhVGFibGVDb2x1bW5IZWFkZXIgY29sdW1uPXtjb2x1bW59IHRpdGxlPVwiU3RhdHVzXCIgLz5cbiAgICApLFxuICAgIGNlbGw6ICh7IHJvdyB9KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJvd1N0YXR1cyA9IHJvdy5vcmlnaW5hbC5zdGF0dXMgYXMgU3RhdHVzXG5cbiAgICAgIGNvbnN0IEljb24gPSByb3dTdGF0dXMgPyBnZXRTdGF0dXNJY29uKHJvd1N0YXR1cykgOiBCaW5hcnk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCB3LVsxMDBweF0gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwibXItMiBoLTQgdy00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyBzbTp0ZXh0LXNtXCI+e2NhcGl0YWxpemVGaXJzdExldHRlcihyb3cub3JpZ2luYWwuc3RhdHVzKX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgIH0sXG4gICAgZmlsdGVyRm46IChyb3csIGlkLCB2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlLmluY2x1ZGVzKHJvdy5nZXRWYWx1ZShpZCkpXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFjY2Vzc29yS2V5OiBcInByaW9yaXR5XCIsXG4gICAgaGVhZGVyOiAoeyBjb2x1bW4gfSkgPT4gKFxuICAgICAgPERhdGFUYWJsZUNvbHVtbkhlYWRlciBjb2x1bW49e2NvbHVtbn0gdGl0bGU9XCJQcmlvcml0eVwiIC8+XG4gICAgKSxcbiAgICBjZWxsOiAoeyByb3cgfSkgPT4ge1xuICAgICAgY29uc3Qgcm93UHJpb3JpdHkgPSByb3cub3JpZ2luYWwucHJpb3JpdHkgYXMgUHJpb3JpdHlcbiAgICAgIGNvbnN0IEljb24gPSByb3dQcmlvcml0eSA/IGdldFByaW9yaXR5SWNvbihyb3dQcmlvcml0eSkgOiBCaW5hcnk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJtci0yIGgtNCB3LTQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHNtOnRleHQtc21cIj57Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHJvdy5vcmlnaW5hbC5wcmlvcml0eSl9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIClcbiAgICB9LFxuICAgIGZpbHRlckZuOiAocm93LCBpZCwgdmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhyb3cuZ2V0VmFsdWUoaWQpKVxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogXCJhY3Rpb25zXCIsXG4gICAgY2VsbDogKHsgcm93IH0pID0+IDxEYXRhVGFibGVSb3dBY3Rpb25zIHJvdz17cm93fSAvPixcbiAgfSxcbl0iXSwibmFtZXMiOlsiQmFkZ2UiLCJDaGVja2JveCIsIkRhdGFUYWJsZUNvbHVtbkhlYWRlciIsIkRhdGFUYWJsZVJvd0FjdGlvbnMiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJnZXRQcmlvcml0eUljb24iLCJnZXRTdGF0dXNJY29uIiwiQmluYXJ5IiwiY29sdW1ucyIsImlkIiwiaGVhZGVyIiwidGFibGUiLCJjaGVja2VkIiwiZ2V0SXNBbGxQYWdlUm93c1NlbGVjdGVkIiwiZ2V0SXNTb21lUGFnZVJvd3NTZWxlY3RlZCIsIm9uQ2hlY2tlZENoYW5nZSIsInZhbHVlIiwidG9nZ2xlQWxsUGFnZVJvd3NTZWxlY3RlZCIsImFyaWEtbGFiZWwiLCJjbGFzc05hbWUiLCJjZWxsIiwicm93IiwiZ2V0SXNTZWxlY3RlZCIsInRvZ2dsZVNlbGVjdGVkIiwiZW5hYmxlU29ydGluZyIsImVuYWJsZUhpZGluZyIsImFjY2Vzc29yS2V5IiwiY29sdW1uIiwidGl0bGUiLCJiYWRnZVZhcmlhbnQiLCJvcmlnaW5hbCIsImxhYmVsIiwiZGl2IiwidmFyaWFudCIsInNwYW4iLCJnZXRWYWx1ZSIsInJvd1N0YXR1cyIsInN0YXR1cyIsIkljb24iLCJmaWx0ZXJGbiIsImluY2x1ZGVzIiwicm93UHJpb3JpdHkiLCJwcmlvcml0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/Columns.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTableColumnHeader.tsx": /*!*******************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTableColumnHeader.tsx ***! \*******************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTableColumnHeader: () => (/* binding */ DataTableColumnHeader)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowUp,ChevronsUpDown,EyeOff!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-down.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowUp,ChevronsUpDown,EyeOff!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-up.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowUp,ChevronsUpDown,EyeOff!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowDown,ArrowUp,ChevronsUpDown,EyeOff!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n\n\n\n\n\nfunction DataTableColumnHeader(param) {\n let { column, title, className } = param;\n if (!column.getCanSort()) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(className),\n children: title\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 26,\n columnNumber: 16\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"flex items-center space-x-2\", className),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"-ml-3 h-8 data-[state=open]:bg-accent\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: title\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 38,\n columnNumber: 25\n }, this),\n column.getIsSorted() === \"desc\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 40,\n columnNumber: 29\n }, this) : column.getIsSorted() === \"asc\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 42,\n columnNumber: 29\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 44,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 33,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 32,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuContent, {\n align: \"start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: ()=>column.toggleSorting(false),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-3.5 w-3.5 text-muted-foreground/70\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 50,\n columnNumber: 25\n }, this),\n \"Asc\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 49,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: ()=>column.toggleSorting(true),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-3.5 w-3.5 text-muted-foreground/70\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 54,\n columnNumber: 25\n }, this),\n \"Desc\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 53,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 57,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: ()=>column.toggleVisibility(false),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowDown_ArrowUp_ChevronsUpDown_EyeOff_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-3.5 w-3.5 text-muted-foreground/70\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 59,\n columnNumber: 25\n }, this),\n \"Hide\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 58,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 48,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 31,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableColumnHeader.tsx\",\n lineNumber: 30,\n columnNumber: 9\n }, this);\n}\n_c = DataTableColumnHeader;\nvar _c;\n$RefreshReg$(_c, \"DataTableColumnHeader\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlQ29sdW1uSGVhZGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQ3lFO0FBRXpDO0FBQ2U7QUFPVDtBQVEvQixTQUFTVyxzQkFBcUMsS0FJVDtRQUpTLEVBQ2pEQyxNQUFNLEVBQ05DLEtBQUssRUFDTEMsU0FBUyxFQUMrQixHQUpTO0lBS2pELElBQUksQ0FBQ0YsT0FBT0csVUFBVSxJQUFJO1FBQ3RCLHFCQUFPLDhEQUFDQztZQUFJRixXQUFXViw4Q0FBRUEsQ0FBQ1U7c0JBQWFEOzs7Ozs7SUFDM0M7SUFFQSxxQkFDSSw4REFBQ0c7UUFBSUYsV0FBV1YsOENBQUVBLENBQUMsK0JBQStCVTtrQkFDOUMsNEVBQUNSLHNFQUFZQTs7OEJBQ1QsOERBQUNJLDZFQUFtQkE7b0JBQUNPLE9BQU87OEJBQ3hCLDRFQUFDWix5REFBTUE7d0JBQ0hhLFNBQVE7d0JBQ1JDLE1BQUs7d0JBQ0xMLFdBQVU7OzBDQUVWLDhEQUFDTTswQ0FBTVA7Ozs7Ozs0QkFDTkQsT0FBT1MsV0FBVyxPQUFPLHVCQUN0Qiw4REFBQ3JCLG1IQUFTQTs7Ozt1Q0FDVlksT0FBT1MsV0FBVyxPQUFPLHNCQUN6Qiw4REFBQ3BCLG1IQUFPQTs7OztxREFFUiw4REFBQ0MsbUhBQWNBOzs7Ozs7Ozs7Ozs7Ozs7OzhCQUkzQiw4REFBQ0ssNkVBQW1CQTtvQkFBQ2UsT0FBTTs7c0NBQ3ZCLDhEQUFDZCwwRUFBZ0JBOzRCQUFDZSxTQUFTLElBQU1YLE9BQU9ZLGFBQWEsQ0FBQzs7OENBQ2xELDhEQUFDdkIsbUhBQU9BO29DQUFDYSxXQUFVOzs7Ozs7Z0NBQXlDOzs7Ozs7O3NDQUdoRSw4REFBQ04sMEVBQWdCQTs0QkFBQ2UsU0FBUyxJQUFNWCxPQUFPWSxhQUFhLENBQUM7OzhDQUNsRCw4REFBQ3hCLG1IQUFTQTtvQ0FBQ2MsV0FBVTs7Ozs7O2dDQUF5Qzs7Ozs7OztzQ0FHbEUsOERBQUNMLCtFQUFxQkE7Ozs7O3NDQUN0Qiw4REFBQ0QsMEVBQWdCQTs0QkFBQ2UsU0FBUyxJQUFNWCxPQUFPYSxnQkFBZ0IsQ0FBQzs7OENBQ3JELDhEQUFDdEIsbUhBQU1BO29DQUFDVyxXQUFVOzs7Ozs7Z0NBQXlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPbkY7S0E5Q2dCSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL2Zyb250YnVpbGQvRGF0YVRhYmxlL0RhdGFUYWJsZUNvbHVtbkhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC10YWJsZVwiXG5pbXBvcnQgeyBBcnJvd0Rvd24sIEFycm93VXAsIENoZXZyb25zVXBEb3duLCBFeWVPZmYgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9idXR0b25cIlxuaW1wb3J0IHtcbiAgICBEcm9wZG93bk1lbnUsXG4gICAgRHJvcGRvd25NZW51Q29udGVudCxcbiAgICBEcm9wZG93bk1lbnVJdGVtLFxuICAgIERyb3Bkb3duTWVudVNlcGFyYXRvcixcbiAgICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2Ryb3Bkb3duLW1lbnVcIlxuXG5pbnRlcmZhY2UgRGF0YVRhYmxlQ29sdW1uSGVhZGVyUHJvcHM8VERhdGEsIFRWYWx1ZT5cbiAgICBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiB7XG4gICAgY29sdW1uOiBDb2x1bW48VERhdGEsIFRWYWx1ZT5cbiAgICB0aXRsZTogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRhVGFibGVDb2x1bW5IZWFkZXI8VERhdGEsIFRWYWx1ZT4oe1xuICAgIGNvbHVtbixcbiAgICB0aXRsZSxcbiAgICBjbGFzc05hbWUsXG59OiBEYXRhVGFibGVDb2x1bW5IZWFkZXJQcm9wczxURGF0YSwgVFZhbHVlPikge1xuICAgIGlmICghY29sdW1uLmdldENhblNvcnQoKSkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZSl9Pnt0aXRsZX08L2Rpdj5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oXCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTJcIiwgY2xhc3NOYW1lKX0+XG4gICAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiLW1sLTMgaC04IGRhdGEtW3N0YXRlPW9wZW5dOmJnLWFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt0aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1uLmdldElzU29ydGVkKCkgPT09IFwiZGVzY1wiID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd0Rvd24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBjb2x1bW4uZ2V0SXNTb3J0ZWQoKSA9PT0gXCJhc2NcIiA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbnNVcERvd24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51Q29udGVudCBhbGlnbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIG9uQ2xpY2s9eygpID0+IGNvbHVtbi50b2dnbGVTb3J0aW5nKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCBjbGFzc05hbWU9XCJoLTMuNSB3LTMuNSB0ZXh0LW11dGVkLWZvcmVncm91bmQvNzBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQXNjXG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gY29sdW1uLnRvZ2dsZVNvcnRpbmcodHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFycm93RG93biBjbGFzc05hbWU9XCJoLTMuNSB3LTMuNSB0ZXh0LW11dGVkLWZvcmVncm91bmQvNzBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzY1xuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gY29sdW1uLnRvZ2dsZVZpc2liaWxpdHkoZmFsc2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPZmYgY2xhc3NOYW1lPVwiaC0zLjUgdy0zLjUgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEhpZGVcbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51Q29udGVudD5cbiAgICAgICAgICAgIDwvRHJvcGRvd25NZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICApXG59Il0sIm5hbWVzIjpbIkFycm93RG93biIsIkFycm93VXAiLCJDaGV2cm9uc1VwRG93biIsIkV5ZU9mZiIsImNuIiwiQnV0dG9uIiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJEcm9wZG93bk1lbnVTZXBhcmF0b3IiLCJEcm9wZG93bk1lbnVUcmlnZ2VyIiwiRGF0YVRhYmxlQ29sdW1uSGVhZGVyIiwiY29sdW1uIiwidGl0bGUiLCJjbGFzc05hbWUiLCJnZXRDYW5Tb3J0IiwiZGl2IiwiYXNDaGlsZCIsInZhcmlhbnQiLCJzaXplIiwic3BhbiIsImdldElzU29ydGVkIiwiYWxpZ24iLCJvbkNsaWNrIiwidG9nZ2xlU29ydGluZyIsInRvZ2dsZVZpc2liaWxpdHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTableColumnHeader.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTableFacetedFilter.tsx": /*!********************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTableFacetedFilter.tsx ***! \********************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTableFacetedFilter: () => (/* binding */ DataTableFacetedFilter)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Check_PlusCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Check,PlusCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-plus.js\");\n/* harmony import */ var _barrel_optimize_names_Check_PlusCircle_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Check,PlusCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_badge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/badge */ \"(app-pages-browser)/./components/ui/badge.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_command__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/command */ \"(app-pages-browser)/./components/ui/command.tsx\");\n/* harmony import */ var _components_ui_popover__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/popover */ \"(app-pages-browser)/./components/ui/popover.tsx\");\n/* harmony import */ var _components_ui_separator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/separator */ \"(app-pages-browser)/./components/ui/separator.tsx\");\n\n\n\n\n\n\n\n\n\nconst getIconByKey = (key, filterValue)=>{\n if (key === \"status\") {\n return (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.getStatusIcon)(filterValue);\n } else if (key === \"priority\") {\n return (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.getPriorityIcon)(filterValue);\n }\n};\nfunction DataTableFacetedFilter(param) {\n let { filterType, column, title, options } = param;\n const facets = column === null || column === void 0 ? void 0 : column.getFacetedUniqueValues();\n const selectedValues = new Set(column === null || column === void 0 ? void 0 : column.getFilterValue());\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_popover__WEBPACK_IMPORTED_MODULE_6__.Popover, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_popover__WEBPACK_IMPORTED_MODULE_6__.PopoverTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n variant: \"outline\",\n size: \"sm\",\n className: \"h-8 mt-3 sm:mt-0 w-full sm:w-auto border-dashed\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_PlusCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 61,\n columnNumber: 21\n }, this),\n title,\n (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.size) > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_separator__WEBPACK_IMPORTED_MODULE_7__.Separator, {\n orientation: \"vertical\",\n className: \"mx-2 h-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 65,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_badge__WEBPACK_IMPORTED_MODULE_3__.Badge, {\n variant: \"secondary\",\n className: \"rounded-sm px-1 font-normal lg:hidden\",\n children: selectedValues.size\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 66,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden space-x-1 lg:flex\",\n children: selectedValues.size > 2 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_badge__WEBPACK_IMPORTED_MODULE_3__.Badge, {\n variant: \"secondary\",\n className: \"rounded-sm px-1 font-normal\",\n children: [\n selectedValues.size,\n \" selected\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 74,\n columnNumber: 37\n }, this) : options.filter((option)=>selectedValues.has(option.value)).map((option)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_badge__WEBPACK_IMPORTED_MODULE_3__.Badge, {\n variant: \"secondary\",\n className: \"rounded-sm px-1 font-normal\",\n children: option.label\n }, option.value, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 84,\n columnNumber: 45\n }, this))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 72,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 60,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 59,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_popover__WEBPACK_IMPORTED_MODULE_6__.PopoverContent, {\n className: \"w-[200px] p-0\",\n align: \"start\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.Command, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandInput, {\n placeholder: title\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 100,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandList, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandEmpty, {\n children: \"No results found.\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 102,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandGroup, {\n children: options.map((option)=>{\n const isSelected = selectedValues.has(option.value);\n const Icon = getIconByKey(filterType, option.value);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandItem, {\n onSelect: ()=>{\n if (isSelected) {\n selectedValues.delete(option.value);\n } else {\n selectedValues.add(option.value);\n }\n const filterValues = Array.from(selectedValues);\n column === null || column === void 0 ? void 0 : column.setFilterValue(filterValues.length ? filterValues : undefined);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary\", isSelected ? \"bg-primary text-primary-foreground\" : \"opacity-50 [&_svg]:invisible\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_PlusCircle_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 130,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 122,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 132,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: option.label\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 133,\n columnNumber: 41\n }, this),\n (facets === null || facets === void 0 ? void 0 : facets.get(option.value)) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs\",\n children: facets.get(option.value)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 135,\n columnNumber: 45\n }, this)\n ]\n }, option.value, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 108,\n columnNumber: 37\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 103,\n columnNumber: 25\n }, this),\n selectedValues.size > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 145,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandGroup, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_command__WEBPACK_IMPORTED_MODULE_5__.CommandItem, {\n onSelect: ()=>column === null || column === void 0 ? void 0 : column.setFilterValue(undefined),\n className: \"justify-center text-center\",\n children: \"Clear filters\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 147,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 146,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 101,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 99,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 98,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableFacetedFilter.tsx\",\n lineNumber: 58,\n columnNumber: 9\n }, this);\n}\n_c = DataTableFacetedFilter;\nvar _c;\n$RefreshReg$(_c, \"DataTableFacetedFilter\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlRmFjZXRlZEZpbHRlci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUE4QjtBQUVrQjtBQUNnQjtBQUNuQjtBQUNFO0FBU2Y7QUFLQTtBQUNxQjtBQWlCckQsTUFBTW1CLGVBQWUsQ0FBQ0MsS0FBYUM7SUFDL0IsSUFBSUQsUUFBUSxVQUFVO1FBQ2xCLE9BQU9mLHlEQUFhQSxDQUFDZ0I7SUFDekIsT0FBTyxJQUFJRCxRQUFRLFlBQVk7UUFDM0IsT0FBT2hCLDJEQUFlQSxDQUFDaUI7SUFDM0I7QUFDSjtBQUlPLFNBQVNDLHVCQUFzQyxLQUtUO1FBTFMsRUFDbERDLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxLQUFLLEVBQ0xDLE9BQU8sRUFDa0MsR0FMUztJQU1sRCxNQUFNQyxTQUFTSCxtQkFBQUEsNkJBQUFBLE9BQVFJLHNCQUFzQjtJQUM3QyxNQUFNQyxpQkFBaUIsSUFBSUMsSUFBSU4sbUJBQUFBLDZCQUFBQSxPQUFRTyxjQUFjO0lBRXJELHFCQUNJLDhEQUFDaEIsMkRBQU9BOzswQkFDSiw4REFBQ0Usa0VBQWNBO2dCQUFDZSxPQUFPOzBCQUNuQiw0RUFBQ3pCLHlEQUFNQTtvQkFBQzBCLFNBQVE7b0JBQVVDLE1BQUs7b0JBQUtDLFdBQVU7O3NDQUMxQyw4REFBQ2pDLDRGQUFVQTs7Ozs7d0JBQ1Z1Qjt3QkFDQUksQ0FBQUEsMkJBQUFBLHFDQUFBQSxlQUFnQkssSUFBSSxJQUFHLG1CQUNwQjs7OENBQ0ksOERBQUNoQiwrREFBU0E7b0NBQUNrQixhQUFZO29DQUFXRCxXQUFVOzs7Ozs7OENBQzVDLDhEQUFDN0IsdURBQUtBO29DQUNGMkIsU0FBUTtvQ0FDUkUsV0FBVTs4Q0FFVE4sZUFBZUssSUFBSTs7Ozs7OzhDQUV4Qiw4REFBQ0c7b0NBQUlGLFdBQVU7OENBQ1ZOLGVBQWVLLElBQUksR0FBRyxrQkFDbkIsOERBQUM1Qix1REFBS0E7d0NBQ0YyQixTQUFRO3dDQUNSRSxXQUFVOzs0Q0FFVE4sZUFBZUssSUFBSTs0Q0FBQzs7Ozs7OytDQUd6QlIsUUFDS1ksTUFBTSxDQUFDLENBQUNDLFNBQVdWLGVBQWVXLEdBQUcsQ0FBQ0QsT0FBT0UsS0FBSyxHQUNsREMsR0FBRyxDQUFDLENBQUNILHVCQUNGLDhEQUFDakMsdURBQUtBOzRDQUNGMkIsU0FBUTs0Q0FFUkUsV0FBVTtzREFFVEksT0FBT0ksS0FBSzsyQ0FIUkosT0FBT0UsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBWXJELDhEQUFDekIsa0VBQWNBO2dCQUFDbUIsV0FBVTtnQkFBZ0JTLE9BQU07MEJBQzVDLDRFQUFDcEMsMkRBQU9BOztzQ0FDSiw4REFBQ0csZ0VBQVlBOzRCQUFDa0MsYUFBYXBCOzs7Ozs7c0NBQzNCLDhEQUFDWiwrREFBV0E7OzhDQUNSLDhEQUFDSixnRUFBWUE7OENBQUM7Ozs7Ozs4Q0FDZCw4REFBQ0MsZ0VBQVlBOzhDQUNSZ0IsUUFBUWdCLEdBQUcsQ0FBQyxDQUFDSDt3Q0FDVixNQUFNTyxhQUFhakIsZUFBZVcsR0FBRyxDQUFDRCxPQUFPRSxLQUFLO3dDQUNsRCxNQUFNTSxPQUFPNUIsYUFBYUksWUFBWWdCLE9BQU9FLEtBQUs7d0NBQ2xELHFCQUNJLDhEQUFDN0IsK0RBQVdBOzRDQUVSb0MsVUFBVTtnREFDTixJQUFJRixZQUFZO29EQUNaakIsZUFBZW9CLE1BQU0sQ0FBQ1YsT0FBT0UsS0FBSztnREFDdEMsT0FBTztvREFDSFosZUFBZXFCLEdBQUcsQ0FBQ1gsT0FBT0UsS0FBSztnREFDbkM7Z0RBQ0EsTUFBTVUsZUFBZUMsTUFBTUMsSUFBSSxDQUFDeEI7Z0RBQ2hDTCxtQkFBQUEsNkJBQUFBLE9BQVE4QixjQUFjLENBQ2xCSCxhQUFhSSxNQUFNLEdBQUdKLGVBQWVLOzRDQUU3Qzs7OERBRUEsOERBQUNuQjtvREFDR0YsV0FBV2hDLDhDQUFFQSxDQUNULGtGQUNBMkMsYUFDTSx1Q0FDQTs4REFHViw0RUFBQzdDLDRGQUFLQTs7Ozs7Ozs7Ozs4REFFViw4REFBQzhDOzs7Ozs4REFDRCw4REFBQ1U7OERBQU1sQixPQUFPSSxLQUFLOzs7Ozs7Z0RBQ2xCaEIsQ0FBQUEsbUJBQUFBLDZCQUFBQSxPQUFRK0IsR0FBRyxDQUFDbkIsT0FBT0UsS0FBSyxvQkFDckIsOERBQUNnQjtvREFBS3RCLFdBQVU7OERBQ1hSLE9BQU8rQixHQUFHLENBQUNuQixPQUFPRSxLQUFLOzs7Ozs7OzJDQTNCM0JGLE9BQU9FLEtBQUs7Ozs7O29DQWdDN0I7Ozs7OztnQ0FFSFosZUFBZUssSUFBSSxHQUFHLG1CQUNuQjs7c0RBQ0ksOERBQUNwQixvRUFBZ0JBOzs7OztzREFDakIsOERBQUNKLGdFQUFZQTtzREFDVCw0RUFBQ0UsK0RBQVdBO2dEQUNSb0MsVUFBVSxJQUFNeEIsbUJBQUFBLDZCQUFBQSxPQUFROEIsY0FBYyxDQUFDRTtnREFDdkNyQixXQUFVOzBEQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXckM7S0FqSGdCYiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL2Zyb250YnVpbGQvRGF0YVRhYmxlL0RhdGFUYWJsZUZhY2V0ZWRGaWx0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXRhYmxlXCJcbmltcG9ydCB7IENoZWNrLCBQbHVzQ2lyY2xlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQgeyBjbiwgZ2V0UHJpb3JpdHlJY29uLCBnZXRTdGF0dXNJY29uIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9iYWRnZVwiXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQge1xuICAgIENvbW1hbmQsXG4gICAgQ29tbWFuZEVtcHR5LFxuICAgIENvbW1hbmRHcm91cCxcbiAgICBDb21tYW5kSW5wdXQsXG4gICAgQ29tbWFuZEl0ZW0sXG4gICAgQ29tbWFuZExpc3QsXG4gICAgQ29tbWFuZFNlcGFyYXRvcixcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9jb21tYW5kXCJcbmltcG9ydCB7XG4gICAgUG9wb3ZlcixcbiAgICBQb3BvdmVyQ29udGVudCxcbiAgICBQb3BvdmVyVHJpZ2dlcixcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9wb3BvdmVyXCJcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvc2VwYXJhdG9yXCJcbmltcG9ydCB7IFByaW9yaXR5LCBTdGF0dXMgfSBmcm9tIFwiQC9hcHAvdHlwZXNcIlxuXG50eXBlIEZpbHRlclR5cGUgPSBcInN0YXR1c1wiIHwgXCJwcmlvcml0eVwiXG5cbmludGVyZmFjZSBEYXRhVGFibGVGYWNldGVkRmlsdGVyUHJvcHM8VERhdGEsIFRWYWx1ZT4ge1xuICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGVcbiAgICBjb2x1bW4/OiBDb2x1bW48VERhdGEsIFRWYWx1ZT5cbiAgICB0aXRsZT86IHN0cmluZ1xuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbGFiZWw6IHN0cmluZ1xuICAgICAgICB2YWx1ZTogc3RyaW5nXG4gICAgICAgIGljb24/OiBzdHJpbmdcbiAgICB9W11cbn1cblxuXG5jb25zdCBnZXRJY29uQnlLZXkgPSAoa2V5OiBzdHJpbmcsIGZpbHRlclZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoa2V5ID09PSBcInN0YXR1c1wiKSB7XG4gICAgICAgIHJldHVybiBnZXRTdGF0dXNJY29uKGZpbHRlclZhbHVlIGFzIFN0YXR1cylcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJwcmlvcml0eVwiKSB7XG4gICAgICAgIHJldHVybiBnZXRQcmlvcml0eUljb24oZmlsdGVyVmFsdWUgYXMgUHJpb3JpdHkpXG4gICAgfVxufVxuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIERhdGFUYWJsZUZhY2V0ZWRGaWx0ZXI8VERhdGEsIFRWYWx1ZT4oe1xuICAgIGZpbHRlclR5cGUsXG4gICAgY29sdW1uLFxuICAgIHRpdGxlLFxuICAgIG9wdGlvbnMsXG59OiBEYXRhVGFibGVGYWNldGVkRmlsdGVyUHJvcHM8VERhdGEsIFRWYWx1ZT4pIHtcbiAgICBjb25zdCBmYWNldHMgPSBjb2x1bW4/LmdldEZhY2V0ZWRVbmlxdWVWYWx1ZXMoKVxuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gbmV3IFNldChjb2x1bW4/LmdldEZpbHRlclZhbHVlKCkgYXMgc3RyaW5nW10pXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8UG9wb3Zlcj5cbiAgICAgICAgICAgIDxQb3BvdmVyVHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVcIiBzaXplPVwic21cIiBjbGFzc05hbWU9XCJoLTggbXQtMyBzbTptdC0wIHctZnVsbCBzbTp3LWF1dG8gYm9yZGVyLWRhc2hlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c0NpcmNsZSAvPlxuICAgICAgICAgICAgICAgICAgICB7dGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcz8uc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VwYXJhdG9yIG9yaWVudGF0aW9uPVwidmVydGljYWxcIiBjbGFzc05hbWU9XCJteC0yIGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLXNtIHB4LTEgZm9udC1ub3JtYWwgbGc6aGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcy5zaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gc3BhY2UteC0xIGxnOmZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkVmFsdWVzLnNpemUgPiAyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicm91bmRlZC1zbSBweC0xIGZvbnQtbm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMuc2l6ZX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBzZWxlY3RlZFZhbHVlcy5oYXMob3B0aW9uLnZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChvcHRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicm91bmRlZC1zbSBweC0xIGZvbnQtbm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1BvcG92ZXJUcmlnZ2VyPlxuICAgICAgICAgICAgPFBvcG92ZXJDb250ZW50IGNsYXNzTmFtZT1cInctWzIwMHB4XSBwLTBcIiBhbGlnbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPENvbW1hbmQ+XG4gICAgICAgICAgICAgICAgICAgIDxDb21tYW5kSW5wdXQgcGxhY2Vob2xkZXI9e3RpdGxlfSAvPlxuICAgICAgICAgICAgICAgICAgICA8Q29tbWFuZExpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29tbWFuZEVtcHR5Pk5vIHJlc3VsdHMgZm91bmQuPC9Db21tYW5kRW1wdHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29tbWFuZEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlcy5oYXMob3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJY29uID0gZ2V0SWNvbkJ5S2V5KGZpbHRlclR5cGUsIG9wdGlvbi52YWx1ZSkgYXMgUmVhY3QuRkNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb21tYW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcy5kZWxldGUob3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXMuYWRkKG9wdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSBBcnJheS5mcm9tKHNlbGVjdGVkVmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4/LnNldEZpbHRlclZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVzLmxlbmd0aCA/IGZpbHRlclZhbHVlcyA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1yLTIgZmxleCBoLTQgdy00IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXNtIGJvcmRlciBib3JkZXItcHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwib3BhY2l0eS01MCBbJl9zdmddOmludmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2sgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntvcHRpb24ubGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmYWNldHM/LmdldChvcHRpb24udmFsdWUpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtYXV0byBmbGV4IGgtNCB3LTQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZvbnQtbW9ubyB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmFjZXRzLmdldChvcHRpb24udmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29tbWFuZEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29tbWFuZEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkVmFsdWVzLnNpemUgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29tbWFuZFNlcGFyYXRvciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29tbWFuZEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbW1hbmRJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IGNvbHVtbj8uc2V0RmlsdGVyVmFsdWUodW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqdXN0aWZ5LWNlbnRlciB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIgZmlsdGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db21tYW5kSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db21tYW5kR3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L0NvbW1hbmRMaXN0PlxuICAgICAgICAgICAgICAgIDwvQ29tbWFuZD5cbiAgICAgICAgICAgIDwvUG9wb3ZlckNvbnRlbnQ+XG4gICAgICAgIDwvUG9wb3Zlcj5cbiAgICApXG59Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ2hlY2siLCJQbHVzQ2lyY2xlIiwiY24iLCJnZXRQcmlvcml0eUljb24iLCJnZXRTdGF0dXNJY29uIiwiQmFkZ2UiLCJCdXR0b24iLCJDb21tYW5kIiwiQ29tbWFuZEVtcHR5IiwiQ29tbWFuZEdyb3VwIiwiQ29tbWFuZElucHV0IiwiQ29tbWFuZEl0ZW0iLCJDb21tYW5kTGlzdCIsIkNvbW1hbmRTZXBhcmF0b3IiLCJQb3BvdmVyIiwiUG9wb3ZlckNvbnRlbnQiLCJQb3BvdmVyVHJpZ2dlciIsIlNlcGFyYXRvciIsImdldEljb25CeUtleSIsImtleSIsImZpbHRlclZhbHVlIiwiRGF0YVRhYmxlRmFjZXRlZEZpbHRlciIsImZpbHRlclR5cGUiLCJjb2x1bW4iLCJ0aXRsZSIsIm9wdGlvbnMiLCJmYWNldHMiLCJnZXRGYWNldGVkVW5pcXVlVmFsdWVzIiwic2VsZWN0ZWRWYWx1ZXMiLCJTZXQiLCJnZXRGaWx0ZXJWYWx1ZSIsImFzQ2hpbGQiLCJ2YXJpYW50Iiwic2l6ZSIsImNsYXNzTmFtZSIsIm9yaWVudGF0aW9uIiwiZGl2IiwiZmlsdGVyIiwib3B0aW9uIiwiaGFzIiwidmFsdWUiLCJtYXAiLCJsYWJlbCIsImFsaWduIiwicGxhY2Vob2xkZXIiLCJpc1NlbGVjdGVkIiwiSWNvbiIsIm9uU2VsZWN0IiwiZGVsZXRlIiwiYWRkIiwiZmlsdGVyVmFsdWVzIiwiQXJyYXkiLCJmcm9tIiwic2V0RmlsdGVyVmFsdWUiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzcGFuIiwiZ2V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTableFacetedFilter.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTablePagination.tsx": /*!*****************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTablePagination.tsx ***! \*****************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTablePagination: () => (/* binding */ DataTablePagination)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,ChevronRight,ChevronsLeft,ChevronsRight!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-left.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,ChevronRight,ChevronsLeft,ChevronsRight!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,ChevronRight,ChevronsLeft,ChevronsRight!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,ChevronRight,ChevronsLeft,ChevronsRight!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-right.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/select */ \"(app-pages-browser)/./components/ui/select.tsx\");\n\n\n\n\nfunction DataTablePagination(param) {\n let { table } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between px-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 text-xs text-muted-foreground sm:text-sm\",\n children: [\n table.getFilteredSelectedRowModel().rows.length,\n \" of\",\n \" \",\n table.getFilteredRowModel().rows.length,\n \" row(s) selected.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-6 lg:space-x-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-medium sm:text-sm\",\n children: \"Rows per page\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 33,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_2__.Select, {\n value: \"\".concat(table.getState().pagination.pageSize),\n onValueChange: (value)=>{\n table.setPageSize(Number(value));\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_2__.SelectTrigger, {\n className: \"h-8 w-[70px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_2__.SelectValue, {\n placeholder: table.getState().pagination.pageSize\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 41,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 40,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_2__.SelectContent, {\n side: \"top\",\n children: [\n 10,\n 20,\n 30,\n 40,\n 50\n ].map((pageSize)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_2__.SelectItem, {\n value: \"\".concat(pageSize),\n children: pageSize\n }, pageSize, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 45,\n columnNumber: 33\n }, this))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 43,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 34,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 32,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex w-[100px] items-center justify-center text-xs sm:text-sm font-medium\",\n children: [\n \"Page \",\n table.getState().pagination.pageIndex + 1,\n \" of\",\n \" \",\n table.getPageCount()\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 52,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n className: \"hidden h-8 w-8 p-0 lg:flex\",\n onClick: ()=>table.setPageIndex(0),\n disabled: !table.getCanPreviousPage(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Go to first page\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 63,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 64,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 57,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n className: \"h-8 w-8 p-0\",\n onClick: ()=>table.previousPage(),\n disabled: !table.getCanPreviousPage(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Go to previous page\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 72,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 73,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 66,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n className: \"h-8 w-8 p-0\",\n onClick: ()=>table.nextPage(),\n disabled: !table.getCanNextPage(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Go to next page\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 81,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 82,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 75,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n className: \"hidden h-8 w-8 p-0 lg:flex\",\n onClick: ()=>table.setPageIndex(table.getPageCount() - 1),\n disabled: !table.getCanNextPage(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Go to last page\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 90,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_ChevronRight_ChevronsLeft_ChevronsRight_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 91,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 84,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 56,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 31,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTablePagination.tsx\",\n lineNumber: 26,\n columnNumber: 9\n }, this);\n}\n_c = DataTablePagination;\nvar _c;\n$RefreshReg$(_c, \"DataTablePagination\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlUGFnaW5hdGlvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBTXFCO0FBRTBCO0FBT2hCO0FBTXhCLFNBQVNVLG9CQUEyQixLQUVUO1FBRlMsRUFDdkNDLEtBQUssRUFDeUIsR0FGUztJQUd2QyxxQkFDSSw4REFBQ0M7UUFBSUMsV0FBVTs7MEJBQ1gsOERBQUNEO2dCQUFJQyxXQUFVOztvQkFDVkYsTUFBTUcsMkJBQTJCLEdBQUdDLElBQUksQ0FBQ0MsTUFBTTtvQkFBQztvQkFBSTtvQkFDcERMLE1BQU1NLG1CQUFtQixHQUFHRixJQUFJLENBQUNDLE1BQU07b0JBQUM7Ozs7Ozs7MEJBRTdDLDhEQUFDSjtnQkFBSUMsV0FBVTs7a0NBQ1gsOERBQUNEO3dCQUFJQyxXQUFVOzswQ0FDWCw4REFBQ0s7Z0NBQUVMLFdBQVU7MENBQWlDOzs7Ozs7MENBQzlDLDhEQUFDUix5REFBTUE7Z0NBQ0hjLE9BQU8sR0FBd0MsT0FBckNSLE1BQU1TLFFBQVEsR0FBR0MsVUFBVSxDQUFDQyxRQUFRO2dDQUM5Q0MsZUFBZSxDQUFDSjtvQ0FDWlIsTUFBTWEsV0FBVyxDQUFDQyxPQUFPTjtnQ0FDN0I7O2tEQUVBLDhEQUFDWCxnRUFBYUE7d0NBQUNLLFdBQVU7a0RBQ3JCLDRFQUFDSiw4REFBV0E7NENBQUNpQixhQUFhZixNQUFNUyxRQUFRLEdBQUdDLFVBQVUsQ0FBQ0MsUUFBUTs7Ozs7Ozs7Ozs7a0RBRWxFLDhEQUFDaEIsZ0VBQWFBO3dDQUFDcUIsTUFBSztrREFDZjs0Q0FBQzs0Q0FBSTs0Q0FBSTs0Q0FBSTs0Q0FBSTt5Q0FBRyxDQUFDQyxHQUFHLENBQUMsQ0FBQ04seUJBQ3ZCLDhEQUFDZiw2REFBVUE7Z0RBQWdCWSxPQUFPLEdBQVksT0FBVEc7MERBQ2hDQTsrQ0FEWUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBT2pDLDhEQUFDVjt3QkFBSUMsV0FBVTs7NEJBQTRFOzRCQUNqRkYsTUFBTVMsUUFBUSxHQUFHQyxVQUFVLENBQUNRLFNBQVMsR0FBRzs0QkFBRTs0QkFBSTs0QkFDbkRsQixNQUFNbUIsWUFBWTs7Ozs7OztrQ0FFdkIsOERBQUNsQjt3QkFBSUMsV0FBVTs7MENBQ1gsOERBQUNULHlEQUFNQTtnQ0FDSDJCLFNBQVE7Z0NBQ1JsQixXQUFVO2dDQUNWbUIsU0FBUyxJQUFNckIsTUFBTXNCLFlBQVksQ0FBQztnQ0FDbENDLFVBQVUsQ0FBQ3ZCLE1BQU13QixrQkFBa0I7O2tEQUVuQyw4REFBQ0M7d0NBQUt2QixXQUFVO2tEQUFVOzs7Ozs7a0RBQzFCLDhEQUFDWCwrSEFBWUE7Ozs7Ozs7Ozs7OzBDQUVqQiw4REFBQ0UseURBQU1BO2dDQUNIMkIsU0FBUTtnQ0FDUmxCLFdBQVU7Z0NBQ1ZtQixTQUFTLElBQU1yQixNQUFNMEIsWUFBWTtnQ0FDakNILFVBQVUsQ0FBQ3ZCLE1BQU13QixrQkFBa0I7O2tEQUVuQyw4REFBQ0M7d0NBQUt2QixXQUFVO2tEQUFVOzs7Ozs7a0RBQzFCLDhEQUFDYiwrSEFBV0E7Ozs7Ozs7Ozs7OzBDQUVoQiw4REFBQ0kseURBQU1BO2dDQUNIMkIsU0FBUTtnQ0FDUmxCLFdBQVU7Z0NBQ1ZtQixTQUFTLElBQU1yQixNQUFNMkIsUUFBUTtnQ0FDN0JKLFVBQVUsQ0FBQ3ZCLE1BQU00QixjQUFjOztrREFFL0IsOERBQUNIO3dDQUFLdkIsV0FBVTtrREFBVTs7Ozs7O2tEQUMxQiw4REFBQ1osK0hBQVlBOzs7Ozs7Ozs7OzswQ0FFakIsOERBQUNHLHlEQUFNQTtnQ0FDSDJCLFNBQVE7Z0NBQ1JsQixXQUFVO2dDQUNWbUIsU0FBUyxJQUFNckIsTUFBTXNCLFlBQVksQ0FBQ3RCLE1BQU1tQixZQUFZLEtBQUs7Z0NBQ3pESSxVQUFVLENBQUN2QixNQUFNNEIsY0FBYzs7a0RBRS9CLDhEQUFDSDt3Q0FBS3ZCLFdBQVU7a0RBQVU7Ozs7OztrREFDMUIsOERBQUNWLCtIQUFhQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNdEM7S0EzRWdCTyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL2Zyb250YnVpbGQvRGF0YVRhYmxlL0RhdGFUYWJsZVBhZ2luYXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC10YWJsZVwiXG5pbXBvcnQge1xuICAgIENoZXZyb25MZWZ0LFxuICAgIENoZXZyb25SaWdodCxcbiAgICBDaGV2cm9uc0xlZnQsXG4gICAgQ2hldnJvbnNSaWdodCxcbn0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYnV0dG9uXCJcbmltcG9ydCB7XG4gICAgU2VsZWN0LFxuICAgIFNlbGVjdENvbnRlbnQsXG4gICAgU2VsZWN0SXRlbSxcbiAgICBTZWxlY3RUcmlnZ2VyLFxuICAgIFNlbGVjdFZhbHVlLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3NlbGVjdFwiXG5cbmludGVyZmFjZSBEYXRhVGFibGVQYWdpbmF0aW9uUHJvcHM8VERhdGE+IHtcbiAgICB0YWJsZTogVGFibGU8VERhdGE+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRhVGFibGVQYWdpbmF0aW9uPFREYXRhPih7XG4gICAgdGFibGUsXG59OiBEYXRhVGFibGVQYWdpbmF0aW9uUHJvcHM8VERhdGE+KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgc206dGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgIHt0YWJsZS5nZXRGaWx0ZXJlZFNlbGVjdGVkUm93TW9kZWwoKS5yb3dzLmxlbmd0aH0gb2Z7XCIgXCJ9XG4gICAgICAgICAgICAgICAge3RhYmxlLmdldEZpbHRlcmVkUm93TW9kZWwoKS5yb3dzLmxlbmd0aH0gcm93KHMpIHNlbGVjdGVkLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNiBsZzpzcGFjZS14LThcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbWVkaXVtIHNtOnRleHQtc21cIj5Sb3dzIHBlciBwYWdlPC9wPlxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YCR7dGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uLnBhZ2VTaXplfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRQYWdlU2l6ZShOdW1iZXIodmFsdWUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFRyaWdnZXIgY2xhc3NOYW1lPVwiaC04IHctWzcwcHhdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFZhbHVlIHBsYWNlaG9sZGVyPXt0YWJsZS5nZXRTdGF0ZSgpLnBhZ2luYXRpb24ucGFnZVNpemV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0Q29udGVudCBzaWRlPVwidG9wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1sxMCwgMjAsIDMwLCA0MCwgNTBdLm1hcCgocGFnZVNpemUpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0ga2V5PXtwYWdlU2l6ZX0gdmFsdWU9e2Ake3BhZ2VTaXplfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhZ2VTaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCB3LVsxMDBweF0gaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQteHMgc206dGV4dC1zbSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgICAgICBQYWdlIHt0YWJsZS5nZXRTdGF0ZSgpLnBhZ2luYXRpb24ucGFnZUluZGV4ICsgMX0gb2Z7XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgIHt0YWJsZS5nZXRQYWdlQ291bnQoKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW4gaC04IHctOCBwLTAgbGc6ZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgoMCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IXRhYmxlLmdldENhblByZXZpb3VzUGFnZSgpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+R28gdG8gZmlyc3QgcGFnZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uc0xlZnQgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtOCB3LTggcC0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRhYmxlLnByZXZpb3VzUGFnZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF0YWJsZS5nZXRDYW5QcmV2aW91c1BhZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkdvIHRvIHByZXZpb3VzIHBhZ2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkxlZnQgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtOCB3LTggcC0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRhYmxlLm5leHRQYWdlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IXRhYmxlLmdldENhbk5leHRQYWdlKCl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5HbyB0byBuZXh0IHBhZ2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW4gaC04IHctOCBwLTAgbGc6ZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgodGFibGUuZ2V0UGFnZUNvdW50KCkgLSAxKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdGFibGUuZ2V0Q2FuTmV4dFBhZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkdvIHRvIGxhc3QgcGFnZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uc1JpZ2h0IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn0iXSwibmFtZXMiOlsiQ2hldnJvbkxlZnQiLCJDaGV2cm9uUmlnaHQiLCJDaGV2cm9uc0xlZnQiLCJDaGV2cm9uc1JpZ2h0IiwiQnV0dG9uIiwiU2VsZWN0IiwiU2VsZWN0Q29udGVudCIsIlNlbGVjdEl0ZW0iLCJTZWxlY3RUcmlnZ2VyIiwiU2VsZWN0VmFsdWUiLCJEYXRhVGFibGVQYWdpbmF0aW9uIiwidGFibGUiLCJkaXYiLCJjbGFzc05hbWUiLCJnZXRGaWx0ZXJlZFNlbGVjdGVkUm93TW9kZWwiLCJyb3dzIiwibGVuZ3RoIiwiZ2V0RmlsdGVyZWRSb3dNb2RlbCIsInAiLCJ2YWx1ZSIsImdldFN0YXRlIiwicGFnaW5hdGlvbiIsInBhZ2VTaXplIiwib25WYWx1ZUNoYW5nZSIsInNldFBhZ2VTaXplIiwiTnVtYmVyIiwicGxhY2Vob2xkZXIiLCJzaWRlIiwibWFwIiwicGFnZUluZGV4IiwiZ2V0UGFnZUNvdW50IiwidmFyaWFudCIsIm9uQ2xpY2siLCJzZXRQYWdlSW5kZXgiLCJkaXNhYmxlZCIsImdldENhblByZXZpb3VzUGFnZSIsInNwYW4iLCJwcmV2aW91c1BhZ2UiLCJuZXh0UGFnZSIsImdldENhbk5leHRQYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTablePagination.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTableRowActions.tsx": /*!*****************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTableRowActions.tsx ***! \*****************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTableRowActions: () => (/* binding */ DataTableRowActions)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _barrel_optimize_names_MoreHorizontal_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=MoreHorizontal!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/ellipsis.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var _app_schemas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app/schemas */ \"(app-pages-browser)/./app/schemas/index.tsx\");\n/* harmony import */ var _components_frontbuild_TaskDialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/frontbuild/TaskDialog */ \"(app-pages-browser)/./components/frontbuild/TaskDialog/index.tsx\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _components_frontbuild_ConfirmationDialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/frontbuild/ConfirmationDialog */ \"(app-pages-browser)/./components/frontbuild/ConfirmationDialog/index.tsx\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! axios */ \"(app-pages-browser)/./node_modules/axios/lib/axios.js\");\n/* harmony import */ var sonner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! sonner */ \"(app-pages-browser)/./node_modules/sonner/dist/index.mjs\");\n/* harmony import */ var _lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/lib/features/tasks/tasksSlice */ \"(app-pages-browser)/./lib/features/tasks/tasksSlice.ts\");\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-redux */ \"(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\");\n/* harmony import */ var _lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/lib/features/app/appSlice */ \"(app-pages-browser)/./lib/features/app/appSlice.ts\");\n/* harmony import */ var _lib_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/lib/hooks */ \"(app-pages-browser)/./lib/hooks.ts\");\n/* __next_internal_client_entry_do_not_use__ DataTableRowActions auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction DataTableRowActions(param) {\n let { row } = param;\n _s();\n const task = _app_schemas__WEBPACK_IMPORTED_MODULE_3__.taskSchema.parse(row.original);\n const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_11__.useDispatch)();\n const [isDialogOpen, setIsDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false);\n const [isConfirmationDialogOpen, setConfirmationDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false);\n const labels = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_9__.selectLabels);\n const onDeleteTask = async ()=>{\n try {\n await axios__WEBPACK_IMPORTED_MODULE_12__[\"default\"].delete(\"\".concat(\"http://localhost:8080\", \"/api/tasks/\").concat(task._id));\n setConfirmationDialogOpen(false);\n dispatch((0,_lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_8__.removeTask)(task._id));\n (0,sonner__WEBPACK_IMPORTED_MODULE_7__.toast)('Task deleted');\n } catch (error) {\n setConfirmationDialogOpen(false);\n (0,sonner__WEBPACK_IMPORTED_MODULE_7__.toast)('Error on deleting task');\n console.error(error);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"ghost\",\n className: \"flex h-8 w-8 p-0 data-[state=open]:bg-muted\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_MoreHorizontal_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 66,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Open menu\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 67,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 62,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 61,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuContent, {\n align: \"end\",\n className: \"w-[160px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuItem, {\n onClick: ()=>setIsDialogOpen(true),\n children: \"Edit Task\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 71,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuItem, {\n children: \"Make a copy\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 74,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuItem, {\n children: \"Favorite\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 75,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 76,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSub, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSubTrigger, {\n children: \"Labels\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 78,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSubContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuRadioGroup, {\n value: task.label,\n children: labels === null || labels === void 0 ? void 0 : labels.map((label)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuRadioItem, {\n value: label.value,\n children: label.label\n }, label.value, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 82,\n columnNumber: 37\n }, this))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 80,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 79,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 77,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 89,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuItem, {\n onClick: ()=>setConfirmationDialogOpen(true),\n children: [\n \"Delete\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuShortcut, {\n children: \"⌘⌫\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 92,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 90,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 70,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_TaskDialog__WEBPACK_IMPORTED_MODULE_4__.TaskDialog, {\n task: task,\n mode: \"edit\",\n open: isDialogOpen,\n onOpenChange: setIsDialogOpen\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_ConfirmationDialog__WEBPACK_IMPORTED_MODULE_6__.ConfirmationDialog, {\n open: isConfirmationDialogOpen,\n onOpenChange: setConfirmationDialogOpen,\n onAccept: onDeleteTask\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableRowActions.tsx\",\n lineNumber: 97,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true);\n}\n_s(DataTableRowActions, \"mfLt0PURCxJw6peIRwNqcB7dcXY=\", false, function() {\n return [\n react_redux__WEBPACK_IMPORTED_MODULE_11__.useDispatch,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector\n ];\n});\n_c = DataTableRowActions;\nvar _c;\n$RefreshReg$(_c, \"DataTableRowActions\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlUm93QWN0aW9ucy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzZDO0FBRUU7QUFhVDtBQUVJO0FBQ3FCO0FBQy9CO0FBQytDO0FBQ3REO0FBQ0s7QUFDOEI7QUFDbkI7QUFDaUI7QUFDZDtBQU1yQyxTQUFTdUIsb0JBQTJCLEtBRVQ7UUFGUyxFQUN2Q0MsR0FBRyxFQUMyQixHQUZTOztJQUd2QyxNQUFNQyxPQUFPWixvREFBVUEsQ0FBQ2EsS0FBSyxDQUFDRixJQUFJRyxRQUFRO0lBQzFDLE1BQU1DLFdBQVdSLHlEQUFXQTtJQUM1QixNQUFNLENBQUNTLGNBQWNDLGdCQUFnQixHQUFHZiwrQ0FBUUEsQ0FBVTtJQUMxRCxNQUFNLENBQUNnQiwwQkFBMEJDLDBCQUEwQixHQUFHakIsK0NBQVFBLENBQVU7SUFDaEYsTUFBTWtCLFNBQVNYLDJEQUFjQSxDQUFDRCxvRUFBWUE7SUFFMUMsTUFBTWEsZUFBZTtRQUNqQixJQUFJO1lBQ0EsTUFBTWpCLDhDQUFLQSxDQUFDa0IsTUFBTSxDQUFDLEdBQTJEVixPQUF4RFcsdUJBQTBDLEVBQUMsZUFBc0IsT0FBVFgsS0FBS2MsR0FBRztZQUN0RlAsMEJBQTBCO1lBQzFCSixTQUFTVCwwRUFBVUEsQ0FBQ00sS0FBS2MsR0FBRztZQUM1QnJCLDZDQUFLQSxDQUFDO1FBQ1YsRUFBRSxPQUFPc0IsT0FBTztZQUNaUiwwQkFBMEI7WUFDMUJkLDZDQUFLQSxDQUFDO1lBQ051QixRQUFRRCxLQUFLLENBQUNBO1FBQ2xCO0lBQ0o7SUFFQSxxQkFDSTs7MEJBQ0ksOERBQUN0QyxzRUFBWUE7O2tDQUNULDhEQUFDVSw2RUFBbUJBO3dCQUFDOEIsT0FBTztrQ0FDeEIsNEVBQUN6Qyx5REFBTUE7NEJBQ0gwQyxTQUFROzRCQUNSQyxXQUFVOzs4Q0FFViw4REFBQzVDLDJGQUFjQTs7Ozs7OENBQ2YsOERBQUM2QztvQ0FBS0QsV0FBVTs4Q0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBR2xDLDhEQUFDekMsNkVBQW1CQTt3QkFBQzJDLE9BQU07d0JBQU1GLFdBQVU7OzBDQUN2Qyw4REFBQ3hDLDBFQUFnQkE7Z0NBQUMyQyxTQUFTLElBQU1qQixnQkFBZ0I7MENBQU87Ozs7OzswQ0FHeEQsOERBQUMxQiwwRUFBZ0JBOzBDQUFDOzs7Ozs7MENBQ2xCLDhEQUFDQSwwRUFBZ0JBOzBDQUFDOzs7Ozs7MENBQ2xCLDhEQUFDRywrRUFBcUJBOzs7OzswQ0FDdEIsOERBQUNFLHlFQUFlQTs7a0RBQ1osOERBQUNFLGdGQUFzQkE7a0RBQUM7Ozs7OztrREFDeEIsOERBQUNELGdGQUFzQkE7a0RBQ25CLDRFQUFDTCxnRkFBc0JBOzRDQUFDMkMsT0FBT3ZCLEtBQUt3QixLQUFLO3NEQUNwQ2hCLG1CQUFBQSw2QkFBQUEsT0FBUWlCLEdBQUcsQ0FBQyxDQUFDRCxzQkFDViw4REFBQzNDLCtFQUFxQkE7b0RBQW1CMEMsT0FBT0MsTUFBTUQsS0FBSzs4REFDdERDLE1BQU1BLEtBQUs7bURBRFlBLE1BQU1ELEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FPdkQsOERBQUN6QywrRUFBcUJBOzs7OzswQ0FDdEIsOERBQUNILDBFQUFnQkE7Z0NBQUMyQyxTQUFTLElBQU1mLDBCQUEwQjs7b0NBQU87a0RBRTlELDhEQUFDeEIsOEVBQW9CQTtrREFBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUlsQyw4REFBQ00seUVBQVVBO2dCQUFDVyxNQUFNQTtnQkFBTTBCLE1BQU07Z0JBQVFDLE1BQU12QjtnQkFBY3dCLGNBQWN2Qjs7Ozs7OzBCQUN4RSw4REFBQ2QseUZBQWtCQTtnQkFBQ29DLE1BQU1yQjtnQkFBMEJzQixjQUFjckI7Z0JBQTJCc0IsVUFBVXBCOzs7Ozs7OztBQUduSDtHQWhFZ0JYOztRQUlLSCxxREFBV0E7UUFHYkUsdURBQWNBOzs7S0FQakJDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlUm93QWN0aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgUm93IH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC10YWJsZVwiXG5pbXBvcnQgeyBNb3JlSG9yaXpvbnRhbCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQge1xuICAgIERyb3Bkb3duTWVudSxcbiAgICBEcm9wZG93bk1lbnVDb250ZW50LFxuICAgIERyb3Bkb3duTWVudUl0ZW0sXG4gICAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbiAgICBEcm9wZG93bk1lbnVSYWRpb0l0ZW0sXG4gICAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICAgIERyb3Bkb3duTWVudVNob3J0Y3V0LFxuICAgIERyb3Bkb3duTWVudVN1YixcbiAgICBEcm9wZG93bk1lbnVTdWJDb250ZW50LFxuICAgIERyb3Bkb3duTWVudVN1YlRyaWdnZXIsXG4gICAgRHJvcGRvd25NZW51VHJpZ2dlcixcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51XCJcblxuaW1wb3J0IHsgdGFza1NjaGVtYSB9IGZyb20gXCJAL2FwcC9zY2hlbWFzXCJcbmltcG9ydCB7IFRhc2tEaWFsb2cgfSBmcm9tIFwiQC9jb21wb25lbnRzL2Zyb250YnVpbGQvVGFza0RpYWxvZ1wiXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2cgfSBmcm9tIFwiQC9jb21wb25lbnRzL2Zyb250YnVpbGQvQ29uZmlybWF0aW9uRGlhbG9nXCJcbmltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIlxuaW1wb3J0IHsgdG9hc3QgfSBmcm9tIFwic29ubmVyXCJcbmltcG9ydCB7IHJlbW92ZVRhc2sgfSBmcm9tIFwiQC9saWIvZmVhdHVyZXMvdGFza3MvdGFza3NTbGljZVwiXG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gXCJyZWFjdC1yZWR1eFwiXG5pbXBvcnQgeyBzZWxlY3RMYWJlbHMgfSBmcm9tIFwiQC9saWIvZmVhdHVyZXMvYXBwL2FwcFNsaWNlXCJcbmltcG9ydCB7IHVzZUFwcFNlbGVjdG9yIH0gZnJvbSBcIkAvbGliL2hvb2tzXCJcblxuaW50ZXJmYWNlIERhdGFUYWJsZVJvd0FjdGlvbnNQcm9wczxURGF0YT4ge1xuICAgIHJvdzogUm93PFREYXRhPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0YVRhYmxlUm93QWN0aW9uczxURGF0YT4oe1xuICAgIHJvdyxcbn06IERhdGFUYWJsZVJvd0FjdGlvbnNQcm9wczxURGF0YT4pIHtcbiAgICBjb25zdCB0YXNrID0gdGFza1NjaGVtYS5wYXJzZShyb3cub3JpZ2luYWwpXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpXG4gICAgY29uc3QgW2lzRGlhbG9nT3Blbiwgc2V0SXNEaWFsb2dPcGVuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICAgIGNvbnN0IFtpc0NvbmZpcm1hdGlvbkRpYWxvZ09wZW4sIHNldENvbmZpcm1hdGlvbkRpYWxvZ09wZW5dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gICAgY29uc3QgbGFiZWxzID0gdXNlQXBwU2VsZWN0b3Ioc2VsZWN0TGFiZWxzKTtcbiAgICBcbiAgICBjb25zdCBvbkRlbGV0ZVRhc2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBheGlvcy5kZWxldGUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvdGFza3MvJHt0YXNrLl9pZH1gKTtcbiAgICAgICAgICAgIHNldENvbmZpcm1hdGlvbkRpYWxvZ09wZW4oZmFsc2UpXG4gICAgICAgICAgICBkaXNwYXRjaChyZW1vdmVUYXNrKHRhc2suX2lkISkpXG4gICAgICAgICAgICB0b2FzdCgnVGFzayBkZWxldGVkJylcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNldENvbmZpcm1hdGlvbkRpYWxvZ09wZW4oZmFsc2UpO1xuICAgICAgICAgICAgdG9hc3QoJ0Vycm9yIG9uIGRlbGV0aW5nIHRhc2snKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGgtOCB3LTggcC0wIGRhdGEtW3N0YXRlPW9wZW5dOmJnLW11dGVkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE1vcmVIb3Jpem9udGFsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBtZW51PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudVRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUNvbnRlbnQgYWxpZ249XCJlbmRcIiBjbGFzc05hbWU9XCJ3LVsxNjBweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gc2V0SXNEaWFsb2dPcGVuKHRydWUpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQgVGFza1xuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtPk1ha2UgYSBjb3B5PC9Ecm9wZG93bk1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51SXRlbT5GYXZvcml0ZTwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudVNlcGFyYXRvciAvPlxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51U3ViPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudVN1YlRyaWdnZXI+TGFiZWxzPC9Ecm9wZG93bk1lbnVTdWJUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudVN1YkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudVJhZGlvR3JvdXAgdmFsdWU9e3Rhc2subGFiZWx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxzPy5tYXAoKGxhYmVsKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51UmFkaW9JdGVtIGtleT17bGFiZWwudmFsdWV9IHZhbHVlPXtsYWJlbC52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVSYWRpb0l0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51UmFkaW9Hcm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51U3ViQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVTdWI+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gc2V0Q29uZmlybWF0aW9uRGlhbG9nT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTaG9ydGN1dD7ijJjijKs8L0Ryb3Bkb3duTWVudVNob3J0Y3V0PlxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnU+XG4gICAgICAgICAgICA8VGFza0RpYWxvZyB0YXNrPXt0YXNrfSBtb2RlPXtcImVkaXRcIn0gb3Blbj17aXNEaWFsb2dPcGVufSBvbk9wZW5DaGFuZ2U9e3NldElzRGlhbG9nT3Blbn0gLz5cbiAgICAgICAgICAgIDxDb25maXJtYXRpb25EaWFsb2cgb3Blbj17aXNDb25maXJtYXRpb25EaWFsb2dPcGVufSBvbk9wZW5DaGFuZ2U9e3NldENvbmZpcm1hdGlvbkRpYWxvZ09wZW59IG9uQWNjZXB0PXtvbkRlbGV0ZVRhc2t9IC8+XG4gICAgICAgIDwvPlxuICAgIClcbn0iXSwibmFtZXMiOlsiTW9yZUhvcml6b250YWwiLCJCdXR0b24iLCJEcm9wZG93bk1lbnUiLCJEcm9wZG93bk1lbnVDb250ZW50IiwiRHJvcGRvd25NZW51SXRlbSIsIkRyb3Bkb3duTWVudVJhZGlvR3JvdXAiLCJEcm9wZG93bk1lbnVSYWRpb0l0ZW0iLCJEcm9wZG93bk1lbnVTZXBhcmF0b3IiLCJEcm9wZG93bk1lbnVTaG9ydGN1dCIsIkRyb3Bkb3duTWVudVN1YiIsIkRyb3Bkb3duTWVudVN1YkNvbnRlbnQiLCJEcm9wZG93bk1lbnVTdWJUcmlnZ2VyIiwiRHJvcGRvd25NZW51VHJpZ2dlciIsInRhc2tTY2hlbWEiLCJUYXNrRGlhbG9nIiwidXNlU3RhdGUiLCJDb25maXJtYXRpb25EaWFsb2ciLCJheGlvcyIsInRvYXN0IiwicmVtb3ZlVGFzayIsInVzZURpc3BhdGNoIiwic2VsZWN0TGFiZWxzIiwidXNlQXBwU2VsZWN0b3IiLCJEYXRhVGFibGVSb3dBY3Rpb25zIiwicm93IiwidGFzayIsInBhcnNlIiwib3JpZ2luYWwiLCJkaXNwYXRjaCIsImlzRGlhbG9nT3BlbiIsInNldElzRGlhbG9nT3BlbiIsImlzQ29uZmlybWF0aW9uRGlhbG9nT3BlbiIsInNldENvbmZpcm1hdGlvbkRpYWxvZ09wZW4iLCJsYWJlbHMiLCJvbkRlbGV0ZVRhc2siLCJkZWxldGUiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMIiwiX2lkIiwiZXJyb3IiLCJjb25zb2xlIiwiYXNDaGlsZCIsInZhcmlhbnQiLCJjbGFzc05hbWUiLCJzcGFuIiwiYWxpZ24iLCJvbkNsaWNrIiwidmFsdWUiLCJsYWJlbCIsIm1hcCIsIm1vZGUiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwib25BY2NlcHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTableRowActions.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTableToolbar.tsx": /*!**************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTableToolbar.tsx ***! \**************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTableToolbar: () => (/* binding */ DataTableToolbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _barrel_optimize_names_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _DataTableViewOptions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataTableViewOptions */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTableViewOptions.tsx\");\n/* harmony import */ var _DataTableFacetedFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataTableFacetedFilter */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTableFacetedFilter.tsx\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _components_frontbuild_TaskDialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/frontbuild/TaskDialog */ \"(app-pages-browser)/./components/frontbuild/TaskDialog/index.tsx\");\n/* harmony import */ var _lib_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/hooks */ \"(app-pages-browser)/./lib/hooks.ts\");\n/* harmony import */ var _lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/lib/features/app/appSlice */ \"(app-pages-browser)/./lib/features/app/appSlice.ts\");\n/* __next_internal_client_entry_do_not_use__ DataTableToolbar auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\nfunction DataTableToolbar(param) {\n let { table } = param;\n var _table_getColumn;\n _s();\n const isFiltered = table.getState().columnFilters.length > 0;\n const [isDialogOpen, setIsDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false);\n const priorities = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_7__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_8__.selectPriorities);\n const statuses = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_7__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_8__.selectStatuses);\n var _table_getColumn_getFilterValue;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col flex-1 items-center sm:flex-row space-x-1 sm:space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_2__.Input, {\n placeholder: \"Filter tasks...\",\n value: (_table_getColumn_getFilterValue = (_table_getColumn = table.getColumn(\"title\")) === null || _table_getColumn === void 0 ? void 0 : _table_getColumn.getFilterValue()) !== null && _table_getColumn_getFilterValue !== void 0 ? _table_getColumn_getFilterValue : \"\",\n onChange: (event)=>{\n var _table_getColumn;\n return (_table_getColumn = table.getColumn(\"title\")) === null || _table_getColumn === void 0 ? void 0 : _table_getColumn.setFilterValue(event.target.value);\n },\n className: \"h-8 w-[100%] sm:w-[150px] lg:w-[250px]\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 30,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex w-full justify-between sm:justify-start space-x-2\",\n children: [\n table.getColumn(\"status\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableFacetedFilter__WEBPACK_IMPORTED_MODULE_4__.DataTableFacetedFilter, {\n column: table.getColumn(\"status\"),\n title: \"Status\",\n options: statuses,\n filterType: \"status\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 40,\n columnNumber: 25\n }, this),\n table.getColumn(\"priority\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableFacetedFilter__WEBPACK_IMPORTED_MODULE_4__.DataTableFacetedFilter, {\n column: table.getColumn(\"priority\"),\n title: \"Priority\",\n filterType: \"priority\",\n options: priorities\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 48,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 38,\n columnNumber: 17\n }, this),\n isFiltered && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"ghost\",\n onClick: ()=>table.resetColumnFilters(),\n className: \"h-8 px-2 lg:px-3\",\n children: [\n \"Reset\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 63,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 57,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n size: 'sm',\n \"data-testid\": 'add-task-button',\n className: \"w-full sm:w-auto mt-2 sm:mt-0\",\n onClick: ()=>setIsDialogOpen(true),\n children: \"Add Task\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 66,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableViewOptions__WEBPACK_IMPORTED_MODULE_3__.DataTableViewOptions, {\n table: table\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 67,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 29,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_TaskDialog__WEBPACK_IMPORTED_MODULE_6__.TaskDialog, {\n mode: \"add\",\n open: isDialogOpen,\n onOpenChange: setIsDialogOpen,\n task: {\n _id: '',\n title: '',\n label: '',\n priority: '',\n status: ''\n }\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 69,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableToolbar.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this);\n}\n_s(DataTableToolbar, \"2dwjt4CwxVNCHwH9rRS8gR7XnEQ=\", false, function() {\n return [\n _lib_hooks__WEBPACK_IMPORTED_MODULE_7__.useAppSelector,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_7__.useAppSelector\n ];\n});\n_c = DataTableToolbar;\nvar _c;\n$RefreshReg$(_c, \"DataTableToolbar\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlVG9vbGJhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHZ0M7QUFFZTtBQUNGO0FBQ2dCO0FBQ0k7QUFDakM7QUFDK0I7QUFDbkI7QUFDa0M7QUFNdkUsU0FBU1UsaUJBQXdCLEtBRVQ7UUFGUyxFQUNwQ0MsS0FBSyxFQUNzQixHQUZTO1FBYVpBOztJQVZ4QixNQUFNQyxhQUFhRCxNQUFNRSxRQUFRLEdBQUdDLGFBQWEsQ0FBQ0MsTUFBTSxHQUFHO0lBQzNELE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdaLCtDQUFRQSxDQUFVO0lBQzFELE1BQU1hLGFBQWFYLDBEQUFjQSxDQUFDQyx3RUFBZ0JBO0lBQ2xELE1BQU1XLFdBQVdaLDBEQUFjQSxDQUFDRSxzRUFBY0E7UUFPdEJFO0lBTHhCLHFCQUNJLDhEQUFDUzs7MEJBQ0csOERBQUNBO2dCQUFJQyxXQUFVOztrQ0FDWCw4REFBQ25CLHVEQUFLQTt3QkFDRm9CLGFBQVk7d0JBQ1pDLE9BQU8sQ0FBQ1osbUNBQUFBLG1CQUFBQSxNQUFNYSxTQUFTLENBQUMsc0JBQWhCYix1Q0FBQUEsaUJBQTBCYyxjQUFjLGdCQUF4Q2QsNkNBQUFBLGtDQUF5RDt3QkFDakVlLFVBQVUsQ0FBQ0M7Z0NBQ1BoQjtvQ0FBQUEsbUJBQUFBLE1BQU1hLFNBQVMsQ0FBQyxzQkFBaEJiLHVDQUFBQSxpQkFBMEJpQixjQUFjLENBQUNELE1BQU1FLE1BQU0sQ0FBQ04sS0FBSzs7d0JBRS9ERixXQUFVOzs7Ozs7a0NBRWQsOERBQUNEO3dCQUFJQyxXQUFVOzs0QkFDVlYsTUFBTWEsU0FBUyxDQUFDLDJCQUNiLDhEQUFDcEIsMkVBQXNCQTtnQ0FDbkIwQixRQUFRbkIsTUFBTWEsU0FBUyxDQUFDO2dDQUN4Qk8sT0FBTTtnQ0FDTkMsU0FBU2I7Z0NBQ1RjLFlBQVc7Ozs7Ozs0QkFHbEJ0QixNQUFNYSxTQUFTLENBQUMsNkJBQ2IsOERBQUNwQiwyRUFBc0JBO2dDQUNuQjBCLFFBQVFuQixNQUFNYSxTQUFTLENBQUM7Z0NBQ3hCTyxPQUFNO2dDQUNORSxZQUFXO2dDQUNYRCxTQUFTZDs7Ozs7Ozs7Ozs7O29CQUlwQk4sNEJBQ0csOERBQUNYLHlEQUFNQTt3QkFDSGlDLFNBQVE7d0JBQ1JDLFNBQVMsSUFBTXhCLE1BQU15QixrQkFBa0I7d0JBQ3ZDZixXQUFVOzs0QkFDYjswQ0FFRyw4REFBQ3JCLDZFQUFDQTs7Ozs7Ozs7Ozs7a0NBR1YsOERBQUNDLHlEQUFNQTt3QkFBQ29DLE1BQU07d0JBQU1DLGVBQWE7d0JBQW1CakIsV0FBVTt3QkFBZ0NjLFNBQVMsSUFBTWxCLGdCQUFnQjtrQ0FBTzs7Ozs7O2tDQUNwSSw4REFBQ2QsdUVBQW9CQTt3QkFBQ1EsT0FBT0E7Ozs7Ozs7Ozs7OzswQkFFakMsOERBQUNMLHlFQUFVQTtnQkFBQ2lDLE1BQU07Z0JBQU9DLE1BQU14QjtnQkFBY3lCLGNBQWN4QjtnQkFBaUJ5QixNQUFNO29CQUFFQyxLQUFLO29CQUFJWixPQUFPO29CQUFJYSxPQUFPO29CQUFJQyxVQUFVO29CQUFJQyxRQUFRO2dCQUFHOzs7Ozs7Ozs7Ozs7QUFHeEo7R0FyRGdCcEM7O1FBS09ILHNEQUFjQTtRQUNoQkEsc0RBQWNBOzs7S0FObkJHIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlVG9vbGJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXRhYmxlXCJcbmltcG9ydCB7IFggfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcblxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9idXR0b25cIlxuaW1wb3J0IHsgSW5wdXQgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2lucHV0XCJcbmltcG9ydCB7IERhdGFUYWJsZVZpZXdPcHRpb25zIH0gZnJvbSBcIi4vRGF0YVRhYmxlVmlld09wdGlvbnNcIlxuaW1wb3J0IHsgRGF0YVRhYmxlRmFjZXRlZEZpbHRlciB9IGZyb20gXCIuL0RhdGFUYWJsZUZhY2V0ZWRGaWx0ZXJcIlxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgVGFza0RpYWxvZyB9IGZyb20gXCJAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRGlhbG9nXCJcbmltcG9ydCB7IHVzZUFwcFNlbGVjdG9yIH0gZnJvbSBcIkAvbGliL2hvb2tzXCJcbmltcG9ydCB7IHNlbGVjdFByaW9yaXRpZXMsIHNlbGVjdFN0YXR1c2VzIH0gZnJvbSBcIkAvbGliL2ZlYXR1cmVzL2FwcC9hcHBTbGljZVwiXG5cbmludGVyZmFjZSBEYXRhVGFibGVUb29sYmFyUHJvcHM8VERhdGE+IHtcbiAgICB0YWJsZTogVGFibGU8VERhdGE+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRhVGFibGVUb29sYmFyPFREYXRhPih7XG4gICAgdGFibGUsXG59OiBEYXRhVGFibGVUb29sYmFyUHJvcHM8VERhdGE+KSB7XG4gICAgY29uc3QgaXNGaWx0ZXJlZCA9IHRhYmxlLmdldFN0YXRlKCkuY29sdW1uRmlsdGVycy5sZW5ndGggPiAwXG4gICAgY29uc3QgW2lzRGlhbG9nT3Blbiwgc2V0SXNEaWFsb2dPcGVuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICAgIGNvbnN0IHByaW9yaXRpZXMgPSB1c2VBcHBTZWxlY3RvcihzZWxlY3RQcmlvcml0aWVzKTtcbiAgICBjb25zdCBzdGF0dXNlcyA9IHVzZUFwcFNlbGVjdG9yKHNlbGVjdFN0YXR1c2VzKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZmxleC0xIGl0ZW1zLWNlbnRlciBzbTpmbGV4LXJvdyBzcGFjZS14LTEgc206c3BhY2UteC0yXCI+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHRhc2tzLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyh0YWJsZS5nZXRDb2x1bW4oXCJ0aXRsZVwiKT8uZ2V0RmlsdGVyVmFsdWUoKSBhcyBzdHJpbmcpID8/IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5nZXRDb2x1bW4oXCJ0aXRsZVwiKT8uc2V0RmlsdGVyVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtOCB3LVsxMDAlXSBzbTp3LVsxNTBweF0gbGc6dy1bMjUwcHhdXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuIHNtOmp1c3RpZnktc3RhcnQgc3BhY2UteC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHt0YWJsZS5nZXRDb2x1bW4oXCJzdGF0dXNcIikgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPERhdGFUYWJsZUZhY2V0ZWRGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW49e3RhYmxlLmdldENvbHVtbihcInN0YXR1c1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17c3RhdHVzZXMhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3RhYmxlLmdldENvbHVtbihcInByaW9yaXR5XCIpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEYXRhVGFibGVGYWNldGVkRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uPXt0YWJsZS5nZXRDb2x1bW4oXCJwcmlvcml0eVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlPVwicHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3ByaW9yaXRpZXMhfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7aXNGaWx0ZXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0YWJsZS5yZXNldENvbHVtbkZpbHRlcnMoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtOCBweC0yIGxnOnB4LTNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICAgICAgICAgICAgPFggLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9eydzbSd9IGRhdGEtdGVzdGlkPXsnYWRkLXRhc2stYnV0dG9uJ30gY2xhc3NOYW1lPVwidy1mdWxsIHNtOnctYXV0byBtdC0yIHNtOm10LTBcIiBvbkNsaWNrPXsoKSA9PiBzZXRJc0RpYWxvZ09wZW4odHJ1ZSl9PkFkZCBUYXNrPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPERhdGFUYWJsZVZpZXdPcHRpb25zIHRhYmxlPXt0YWJsZX0gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFRhc2tEaWFsb2cgbW9kZT17XCJhZGRcIn0gb3Blbj17aXNEaWFsb2dPcGVufSBvbk9wZW5DaGFuZ2U9e3NldElzRGlhbG9nT3Blbn0gdGFzaz17eyBfaWQ6ICcnLCB0aXRsZTogJycsIGxhYmVsOiAnJywgcHJpb3JpdHk6ICcnLCBzdGF0dXM6ICcnIH19IC8+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn0iXSwibmFtZXMiOlsiWCIsIkJ1dHRvbiIsIklucHV0IiwiRGF0YVRhYmxlVmlld09wdGlvbnMiLCJEYXRhVGFibGVGYWNldGVkRmlsdGVyIiwidXNlU3RhdGUiLCJUYXNrRGlhbG9nIiwidXNlQXBwU2VsZWN0b3IiLCJzZWxlY3RQcmlvcml0aWVzIiwic2VsZWN0U3RhdHVzZXMiLCJEYXRhVGFibGVUb29sYmFyIiwidGFibGUiLCJpc0ZpbHRlcmVkIiwiZ2V0U3RhdGUiLCJjb2x1bW5GaWx0ZXJzIiwibGVuZ3RoIiwiaXNEaWFsb2dPcGVuIiwic2V0SXNEaWFsb2dPcGVuIiwicHJpb3JpdGllcyIsInN0YXR1c2VzIiwiZGl2IiwiY2xhc3NOYW1lIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsImdldENvbHVtbiIsImdldEZpbHRlclZhbHVlIiwib25DaGFuZ2UiLCJldmVudCIsInNldEZpbHRlclZhbHVlIiwidGFyZ2V0IiwiY29sdW1uIiwidGl0bGUiLCJvcHRpb25zIiwiZmlsdGVyVHlwZSIsInZhcmlhbnQiLCJvbkNsaWNrIiwicmVzZXRDb2x1bW5GaWx0ZXJzIiwic2l6ZSIsImRhdGEtdGVzdGlkIiwibW9kZSIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0YXNrIiwiX2lkIiwibGFiZWwiLCJwcmlvcml0eSIsInN0YXR1cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTableToolbar.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/DataTableViewOptions.tsx": /*!******************************************************************!*\ !*** ./components/frontbuild/DataTable/DataTableViewOptions.tsx ***! \******************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTableViewOptions: () => (/* binding */ DataTableViewOptions)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Settings2_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Settings2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/settings-2.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* __next_internal_client_entry_do_not_use__ DataTableViewOptions auto */ \n\n\n\n\nfunction DataTableViewOptions(param) {\n let { table } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_1__.Button, {\n variant: \"outline\",\n size: \"sm\",\n className: \"ml-auto h-8 w-full mt-2 sm:mt-0 sm:w-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Settings2_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 30,\n columnNumber: 21\n }, this),\n \"View\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 25,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuContent, {\n align: \"end\",\n className: \"w-[150px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuLabel, {\n children: \"Toggle columns\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 35,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 36,\n columnNumber: 17\n }, this),\n table.getAllColumns().filter((column)=>typeof column.accessorFn !== \"undefined\" && column.getCanHide()).map((column)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.DropdownMenuCheckboxItem, {\n className: \"capitalize\",\n checked: column.getIsVisible(),\n onCheckedChange: (value)=>column.toggleVisibility(!!value),\n children: column.id\n }, column.id, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 45,\n columnNumber: 29\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 34,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/DataTableViewOptions.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this);\n}\n_c = DataTableViewOptions;\nvar _c;\n$RefreshReg$(_c, \"DataTableViewOptions\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvRGF0YVRhYmxlVmlld09wdGlvbnMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDbUU7QUFFM0I7QUFFTztBQU9UO0FBTS9CLFNBQVNRLHFCQUE0QixLQUVUO1FBRlMsRUFDeENDLEtBQUssRUFDMEIsR0FGUztJQUd4QyxxQkFDSSw4REFBQ04sc0VBQVlBOzswQkFDVCw4REFBQ0gsOEVBQW1CQTtnQkFBQ1UsT0FBTzswQkFDeEIsNEVBQUNSLHlEQUFNQTtvQkFDSFMsU0FBUTtvQkFDUkMsTUFBSztvQkFDTEMsV0FBVTs7c0NBRVYsOERBQUNaLHFGQUFTQTs7Ozs7d0JBQUc7Ozs7Ozs7Ozs7OzswQkFJckIsOERBQUNJLDZFQUFtQkE7Z0JBQUNTLE9BQU07Z0JBQU1ELFdBQVU7O2tDQUN2Qyw4REFBQ1AsMkVBQWlCQTtrQ0FBQzs7Ozs7O2tDQUNuQiw4REFBQ0MsK0VBQXFCQTs7Ozs7b0JBQ3JCRSxNQUNJTSxhQUFhLEdBQ2JDLE1BQU0sQ0FDSCxDQUFDQyxTQUNHLE9BQU9BLE9BQU9DLFVBQVUsS0FBSyxlQUFlRCxPQUFPRSxVQUFVLElBRXBFQyxHQUFHLENBQUMsQ0FBQ0g7d0JBQ0YscUJBQ0ksOERBQUNiLGtGQUF3QkE7NEJBRXJCUyxXQUFVOzRCQUNWUSxTQUFTSixPQUFPSyxZQUFZOzRCQUM1QkMsaUJBQWlCLENBQUNDLFFBQVVQLE9BQU9RLGdCQUFnQixDQUFDLENBQUMsQ0FBQ0Q7c0NBRXJEUCxPQUFPUyxFQUFFOzJCQUxMVCxPQUFPUyxFQUFFOzs7OztvQkFRMUI7Ozs7Ozs7Ozs7Ozs7QUFJcEI7S0F2Q2dCbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL0RhdGFUYWJsZS9EYXRhVGFibGVWaWV3T3B0aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcbmltcG9ydCB7IERyb3Bkb3duTWVudVRyaWdnZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRyb3Bkb3duLW1lbnVcIlxuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXRhYmxlXCJcbmltcG9ydCB7IFNldHRpbmdzMiB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQge1xuICAgIERyb3Bkb3duTWVudSxcbiAgICBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0sXG4gICAgRHJvcGRvd25NZW51Q29udGVudCxcbiAgICBEcm9wZG93bk1lbnVMYWJlbCxcbiAgICBEcm9wZG93bk1lbnVTZXBhcmF0b3IsXG59IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudVwiXG5cbmludGVyZmFjZSBEYXRhVGFibGVWaWV3T3B0aW9uc1Byb3BzPFREYXRhPiB7XG4gICAgdGFibGU6IFRhYmxlPFREYXRhPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0YVRhYmxlVmlld09wdGlvbnM8VERhdGE+KHtcbiAgICB0YWJsZSxcbn06IERhdGFUYWJsZVZpZXdPcHRpb25zUHJvcHM8VERhdGE+KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPERyb3Bkb3duTWVudT5cbiAgICAgICAgICAgIDxEcm9wZG93bk1lbnVUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1sLWF1dG8gaC04IHctZnVsbCBtdC0yIHNtOm10LTAgc206dy1hdXRvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nczIgLz5cbiAgICAgICAgICAgICAgICAgICAgVmlld1xuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVUcmlnZ2VyPlxuICAgICAgICAgICAgPERyb3Bkb3duTWVudUNvbnRlbnQgYWxpZ249XCJlbmRcIiBjbGFzc05hbWU9XCJ3LVsxNTBweF1cIj5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51TGFiZWw+VG9nZ2xlIGNvbHVtbnM8L0Ryb3Bkb3duTWVudUxhYmVsPlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICB7dGFibGVcbiAgICAgICAgICAgICAgICAgICAgLmdldEFsbENvbHVtbnMoKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY29sdW1uLmFjY2Vzc29yRm4gIT09IFwidW5kZWZpbmVkXCIgJiYgY29sdW1uLmdldENhbkhpZGUoKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51Q2hlY2tib3hJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29sdW1uLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjYXBpdGFsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y29sdW1uLmdldElzVmlzaWJsZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyh2YWx1ZSkgPT4gY29sdW1uLnRvZ2dsZVZpc2liaWxpdHkoISF2YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1uLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvRHJvcGRvd25NZW51Q29udGVudD5cbiAgICAgICAgPC9Ecm9wZG93bk1lbnU+XG4gICAgKVxufSJdLCJuYW1lcyI6WyJEcm9wZG93bk1lbnVUcmlnZ2VyIiwiU2V0dGluZ3MyIiwiQnV0dG9uIiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtIiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUxhYmVsIiwiRHJvcGRvd25NZW51U2VwYXJhdG9yIiwiRGF0YVRhYmxlVmlld09wdGlvbnMiLCJ0YWJsZSIsImFzQ2hpbGQiLCJ2YXJpYW50Iiwic2l6ZSIsImNsYXNzTmFtZSIsImFsaWduIiwiZ2V0QWxsQ29sdW1ucyIsImZpbHRlciIsImNvbHVtbiIsImFjY2Vzc29yRm4iLCJnZXRDYW5IaWRlIiwibWFwIiwiY2hlY2tlZCIsImdldElzVmlzaWJsZSIsIm9uQ2hlY2tlZENoYW5nZSIsInZhbHVlIiwidG9nZ2xlVmlzaWJpbGl0eSIsImlkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/DataTableViewOptions.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/DataTable/index.tsx": /*!***************************************************!*\ !*** ./components/frontbuild/DataTable/index.tsx ***! \***************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTable: () => (/* binding */ DataTable)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _tanstack_react_table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tanstack/react-table */ \"(app-pages-browser)/./node_modules/@tanstack/react-table/build/lib/index.mjs\");\n/* harmony import */ var _tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tanstack/react-table */ \"(app-pages-browser)/./node_modules/@tanstack/table-core/build/lib/index.mjs\");\n/* harmony import */ var _components_ui_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/table */ \"(app-pages-browser)/./components/ui/table.tsx\");\n/* harmony import */ var _DataTableToolbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataTableToolbar */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTableToolbar.tsx\");\n/* harmony import */ var _DataTablePagination__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataTablePagination */ \"(app-pages-browser)/./components/frontbuild/DataTable/DataTablePagination.tsx\");\n/* __next_internal_client_entry_do_not_use__ DataTable auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction DataTable(param) {\n let { columns, data } = param;\n var _table_getRowModel_rows;\n _s();\n const [rowSelection, setRowSelection] = react__WEBPACK_IMPORTED_MODULE_1__.useState({});\n const [columnVisibility, setColumnVisibility] = react__WEBPACK_IMPORTED_MODULE_1__.useState({});\n const [columnFilters, setColumnFilters] = react__WEBPACK_IMPORTED_MODULE_1__.useState([]);\n const [sorting, setSorting] = react__WEBPACK_IMPORTED_MODULE_1__.useState([]);\n // const [pagination, setPagination] = React.useState({\n // pageIndex: 0, //initial page index\n // pageSize: 100, //default page size\n // });\n const table = (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_5__.useReactTable)({\n data,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters\n },\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n getCoreRowModel: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getCoreRowModel)(),\n getFilteredRowModel: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getFilteredRowModel)(),\n getPaginationRowModel: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getPaginationRowModel)(),\n getSortedRowModel: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getSortedRowModel)(),\n getFacetedRowModel: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getFacetedRowModel)(),\n getFacetedUniqueValues: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_6__.getFacetedUniqueValues)()\n });\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTableToolbar__WEBPACK_IMPORTED_MODULE_3__.DataTableToolbar, {\n table: table\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 78,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-md border\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.Table, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHeader, {\n children: table.getHeaderGroups().map((headerGroup)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, {\n children: headerGroup.headers.map((header)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n colSpan: header.colSpan,\n children: header.isPlaceholder ? null : (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_5__.flexRender)(header.column.columnDef.header, header.getContext())\n }, header.id, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 86,\n columnNumber: 21\n }, this);\n })\n }, headerGroup.id, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 83,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 81,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableBody, {\n children: ((_table_getRowModel_rows = table.getRowModel().rows) === null || _table_getRowModel_rows === void 0 ? void 0 : _table_getRowModel_rows.length) ? table.getRowModel().rows.map((row)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, {\n \"data-state\": row.getIsSelected() && \"selected\",\n children: row.getVisibleCells().map((cell)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_5__.flexRender)(cell.column.columnDef.cell, cell.getContext())\n }, cell.id, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 107,\n columnNumber: 21\n }, this))\n }, row.id, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 102,\n columnNumber: 17\n }, this)) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n colSpan: columns.length,\n className: \"h-24 text-center\",\n children: \"No results.\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 118,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 117,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 99,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 80,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 79,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DataTablePagination__WEBPACK_IMPORTED_MODULE_4__.DataTablePagination, {\n table: table\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 129,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/DataTable/index.tsx\",\n lineNumber: 77,\n columnNumber: 5\n }, this);\n}\n_s(DataTable, \"AjGf1qisLuzPDW1m9DjbiLObyNE=\", false, function() {\n return [\n _tanstack_react_table__WEBPACK_IMPORTED_MODULE_5__.useReactTable\n ];\n});\n_c = DataTable;\nvar _c;\n$RefreshReg$(_c, \"DataTable\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvaW5kZXgudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRThCO0FBY0E7QUFTQTtBQUN1QjtBQUNNO0FBT3BELFNBQVNpQixVQUF5QixLQUdUO1FBSFMsRUFDdkNDLE9BQU8sRUFDUEMsSUFBSSxFQUMwQixHQUhTO1FBaUU1QkM7O0lBN0RYLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUd0QiwyQ0FBYyxDQUFDLENBQUM7SUFDeEQsTUFBTSxDQUFDd0Isa0JBQWtCQyxvQkFBb0IsR0FDM0N6QiwyQ0FBYyxDQUFrQixDQUFDO0lBQ25DLE1BQU0sQ0FBQzBCLGVBQWVDLGlCQUFpQixHQUFHM0IsMkNBQWMsQ0FDdEQsRUFBRTtJQUVKLE1BQU0sQ0FBQzRCLFNBQVNDLFdBQVcsR0FBRzdCLDJDQUFjLENBQWUsRUFBRTtJQUU3RCx1REFBdUQ7SUFDdkQsdUNBQXVDO0lBQ3ZDLHVDQUF1QztJQUN2QyxNQUFNO0lBR04sTUFBTW9CLFFBQVFaLG9FQUFhQSxDQUFDO1FBQzFCVztRQUNBRDtRQUNBWSxPQUFPO1lBQ0xGO1lBQ0FKO1lBQ0FIO1lBQ0FLO1FBRUY7UUFDQUssb0JBQW9CO1FBQ3BCQyxzQkFBc0JWO1FBQ3RCVyxpQkFBaUJKO1FBQ2pCSyx1QkFBdUJQO1FBQ3ZCUSwwQkFBMEJWO1FBQzFCdkIsaUJBQWlCQSxzRUFBZUE7UUFDaENHLHFCQUFxQkEsMEVBQW1CQTtRQUN4Q0MsdUJBQXVCQSw0RUFBcUJBO1FBQzVDQyxtQkFBbUJBLHdFQUFpQkE7UUFDcENKLG9CQUFvQkEseUVBQWtCQTtRQUN0Q0Msd0JBQXdCQSw2RUFBc0JBO0lBQ2hEO0lBRUEscUJBQ0UsOERBQUNnQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ3RCLCtEQUFnQkE7Z0JBQUNLLE9BQU9BOzs7Ozs7MEJBQ3pCLDhEQUFDZ0I7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUM1Qix1REFBS0E7O3NDQUNKLDhEQUFDSSw2REFBV0E7c0NBQ1RPLE1BQU1rQixlQUFlLEdBQUdDLEdBQUcsQ0FBQyxDQUFDQyw0QkFDNUIsOERBQUMxQiwwREFBUUE7OENBQ04wQixZQUFZQyxPQUFPLENBQUNGLEdBQUcsQ0FBQyxDQUFDRzt3Q0FDeEIscUJBQ0UsOERBQUM5QiwyREFBU0E7NENBQWlCK0IsU0FBU0QsT0FBT0MsT0FBTztzREFDL0NELE9BQU9FLGFBQWEsR0FDakIsT0FDQTNDLGlFQUFVQSxDQUNWeUMsT0FBT0csTUFBTSxDQUFDQyxTQUFTLENBQUNKLE1BQU0sRUFDOUJBLE9BQU9LLFVBQVU7MkNBTFBMLE9BQU9NLEVBQUU7Ozs7O29DQVM3QjttQ0FaYVIsWUFBWVEsRUFBRTs7Ozs7Ozs7OztzQ0FnQmpDLDhEQUFDdEMsMkRBQVNBO3NDQUNQVSxFQUFBQSwwQkFBQUEsTUFBTTZCLFdBQVcsR0FBR0MsSUFBSSxjQUF4QjlCLDhDQUFBQSx3QkFBMEIrQixNQUFNLElBQy9CL0IsTUFBTTZCLFdBQVcsR0FBR0MsSUFBSSxDQUFDWCxHQUFHLENBQUMsQ0FBQ2Esb0JBQzVCLDhEQUFDdEMsMERBQVFBO29DQUVQdUMsY0FBWUQsSUFBSUUsYUFBYSxNQUFNOzhDQUVsQ0YsSUFBSUcsZUFBZSxHQUFHaEIsR0FBRyxDQUFDLENBQUNpQixxQkFDMUIsOERBQUM3QywyREFBU0E7c0RBQ1BWLGlFQUFVQSxDQUNUdUQsS0FBS1gsTUFBTSxDQUFDQyxTQUFTLENBQUNVLElBQUksRUFDMUJBLEtBQUtULFVBQVU7MkNBSEhTLEtBQUtSLEVBQUU7Ozs7O21DQUpwQkksSUFBSUosRUFBRTs7OzswREFjZiw4REFBQ2xDLDBEQUFRQTswQ0FDUCw0RUFBQ0gsMkRBQVNBO29DQUNSZ0MsU0FBU3pCLFFBQVFpQyxNQUFNO29DQUN2QmQsV0FBVTs4Q0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVFYLDhEQUFDckIscUVBQW1CQTtnQkFBQ0ksT0FBT0E7Ozs7Ozs7Ozs7OztBQUdsQztHQWpHZ0JIOztRQWtCQVQsZ0VBQWFBOzs7S0FsQmJTIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1xuICBDb2x1bW5EZWYsXG4gIENvbHVtbkZpbHRlcnNTdGF0ZSxcbiAgU29ydGluZ1N0YXRlLFxuICBWaXNpYmlsaXR5U3RhdGUsXG4gIGZsZXhSZW5kZXIsXG4gIGdldENvcmVSb3dNb2RlbCxcbiAgZ2V0RmFjZXRlZFJvd01vZGVsLFxuICBnZXRGYWNldGVkVW5pcXVlVmFsdWVzLFxuICBnZXRGaWx0ZXJlZFJvd01vZGVsLFxuICBnZXRQYWdpbmF0aW9uUm93TW9kZWwsXG4gIGdldFNvcnRlZFJvd01vZGVsLFxuICB1c2VSZWFjdFRhYmxlLFxufSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXRhYmxlXCJcblxuaW1wb3J0IHtcbiAgVGFibGUsXG4gIFRhYmxlQm9keSxcbiAgVGFibGVDZWxsLFxuICBUYWJsZUhlYWQsXG4gIFRhYmxlSGVhZGVyLFxuICBUYWJsZVJvdyxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS90YWJsZVwiXG5pbXBvcnQgeyBEYXRhVGFibGVUb29sYmFyIH0gZnJvbSBcIi4vRGF0YVRhYmxlVG9vbGJhclwiXG5pbXBvcnQgeyBEYXRhVGFibGVQYWdpbmF0aW9uIH0gZnJvbSBcIi4vRGF0YVRhYmxlUGFnaW5hdGlvblwiXG5cbmludGVyZmFjZSBEYXRhVGFibGVQcm9wczxURGF0YSwgVFZhbHVlPiB7XG4gIGNvbHVtbnM6IENvbHVtbkRlZjxURGF0YSwgVFZhbHVlPltdXG4gIGRhdGE6IFREYXRhW11cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERhdGFUYWJsZTxURGF0YSwgVFZhbHVlPih7XG4gIGNvbHVtbnMsXG4gIGRhdGEsXG59OiBEYXRhVGFibGVQcm9wczxURGF0YSwgVFZhbHVlPikge1xuICBjb25zdCBbcm93U2VsZWN0aW9uLCBzZXRSb3dTZWxlY3Rpb25dID0gUmVhY3QudXNlU3RhdGUoe30pXG4gIGNvbnN0IFtjb2x1bW5WaXNpYmlsaXR5LCBzZXRDb2x1bW5WaXNpYmlsaXR5XSA9XG4gICAgUmVhY3QudXNlU3RhdGU8VmlzaWJpbGl0eVN0YXRlPih7fSlcbiAgY29uc3QgW2NvbHVtbkZpbHRlcnMsIHNldENvbHVtbkZpbHRlcnNdID0gUmVhY3QudXNlU3RhdGU8Q29sdW1uRmlsdGVyc1N0YXRlPihcbiAgICBbXVxuICApXG4gIGNvbnN0IFtzb3J0aW5nLCBzZXRTb3J0aW5nXSA9IFJlYWN0LnVzZVN0YXRlPFNvcnRpbmdTdGF0ZT4oW10pXG5cbiAgLy8gY29uc3QgW3BhZ2luYXRpb24sIHNldFBhZ2luYXRpb25dID0gUmVhY3QudXNlU3RhdGUoe1xuICAvLyAgIHBhZ2VJbmRleDogMCwgLy9pbml0aWFsIHBhZ2UgaW5kZXhcbiAgLy8gICBwYWdlU2l6ZTogMTAwLCAvL2RlZmF1bHQgcGFnZSBzaXplXG4gIC8vIH0pO1xuXG5cbiAgY29uc3QgdGFibGUgPSB1c2VSZWFjdFRhYmxlKHtcbiAgICBkYXRhLFxuICAgIGNvbHVtbnMsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNvcnRpbmcsXG4gICAgICBjb2x1bW5WaXNpYmlsaXR5LFxuICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgY29sdW1uRmlsdGVycyxcbiAgICAgIC8vIHBhZ2luYXRpb25cbiAgICB9LFxuICAgIGVuYWJsZVJvd1NlbGVjdGlvbjogdHJ1ZSxcbiAgICBvblJvd1NlbGVjdGlvbkNoYW5nZTogc2V0Um93U2VsZWN0aW9uLFxuICAgIG9uU29ydGluZ0NoYW5nZTogc2V0U29ydGluZyxcbiAgICBvbkNvbHVtbkZpbHRlcnNDaGFuZ2U6IHNldENvbHVtbkZpbHRlcnMsXG4gICAgb25Db2x1bW5WaXNpYmlsaXR5Q2hhbmdlOiBzZXRDb2x1bW5WaXNpYmlsaXR5LFxuICAgIGdldENvcmVSb3dNb2RlbDogZ2V0Q29yZVJvd01vZGVsKCksXG4gICAgZ2V0RmlsdGVyZWRSb3dNb2RlbDogZ2V0RmlsdGVyZWRSb3dNb2RlbCgpLFxuICAgIGdldFBhZ2luYXRpb25Sb3dNb2RlbDogZ2V0UGFnaW5hdGlvblJvd01vZGVsKCksXG4gICAgZ2V0U29ydGVkUm93TW9kZWw6IGdldFNvcnRlZFJvd01vZGVsKCksXG4gICAgZ2V0RmFjZXRlZFJvd01vZGVsOiBnZXRGYWNldGVkUm93TW9kZWwoKSxcbiAgICBnZXRGYWNldGVkVW5pcXVlVmFsdWVzOiBnZXRGYWNldGVkVW5pcXVlVmFsdWVzKCksXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgPERhdGFUYWJsZVRvb2xiYXIgdGFibGU9e3RhYmxlfSAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLW1kIGJvcmRlclwiPlxuICAgICAgICA8VGFibGU+XG4gICAgICAgICAgPFRhYmxlSGVhZGVyPlxuICAgICAgICAgICAge3RhYmxlLmdldEhlYWRlckdyb3VwcygpLm1hcCgoaGVhZGVyR3JvdXApID0+IChcbiAgICAgICAgICAgICAgPFRhYmxlUm93IGtleT17aGVhZGVyR3JvdXAuaWR9PlxuICAgICAgICAgICAgICAgIHtoZWFkZXJHcm91cC5oZWFkZXJzLm1hcCgoaGVhZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8VGFibGVIZWFkIGtleT17aGVhZGVyLmlkfSBjb2xTcGFuPXtoZWFkZXIuY29sU3Bhbn0+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlci5pc1BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZmxleFJlbmRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuaGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXIuZ2V0Q29udGV4dCgpXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlSGVhZD5cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC9UYWJsZVJvdz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvVGFibGVIZWFkZXI+XG4gICAgICAgICAgPFRhYmxlQm9keT5cbiAgICAgICAgICAgIHt0YWJsZS5nZXRSb3dNb2RlbCgpLnJvd3M/Lmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgdGFibGUuZ2V0Um93TW9kZWwoKS5yb3dzLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgICAgPFRhYmxlUm93XG4gICAgICAgICAgICAgICAgICBrZXk9e3Jvdy5pZH1cbiAgICAgICAgICAgICAgICAgIGRhdGEtc3RhdGU9e3Jvdy5nZXRJc1NlbGVjdGVkKCkgJiYgXCJzZWxlY3RlZFwifVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtyb3cuZ2V0VmlzaWJsZUNlbGxzKCkubWFwKChjZWxsKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGwga2V5PXtjZWxsLmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICB7ZmxleFJlbmRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY29sdW1uLmNvbHVtbkRlZi5jZWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5nZXRDb250ZXh0KClcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbD5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvVGFibGVSb3c+XG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VGFibGVSb3c+XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgY29sU3Bhbj17Y29sdW1ucy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTI0IHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBObyByZXN1bHRzLlxuICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsPlxuICAgICAgICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1RhYmxlQm9keT5cbiAgICAgICAgPC9UYWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPERhdGFUYWJsZVBhZ2luYXRpb24gdGFibGU9e3RhYmxlfSAvPlxuICAgIDwvZGl2PlxuICApXG59Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmxleFJlbmRlciIsImdldENvcmVSb3dNb2RlbCIsImdldEZhY2V0ZWRSb3dNb2RlbCIsImdldEZhY2V0ZWRVbmlxdWVWYWx1ZXMiLCJnZXRGaWx0ZXJlZFJvd01vZGVsIiwiZ2V0UGFnaW5hdGlvblJvd01vZGVsIiwiZ2V0U29ydGVkUm93TW9kZWwiLCJ1c2VSZWFjdFRhYmxlIiwiVGFibGUiLCJUYWJsZUJvZHkiLCJUYWJsZUNlbGwiLCJUYWJsZUhlYWQiLCJUYWJsZUhlYWRlciIsIlRhYmxlUm93IiwiRGF0YVRhYmxlVG9vbGJhciIsIkRhdGFUYWJsZVBhZ2luYXRpb24iLCJEYXRhVGFibGUiLCJjb2x1bW5zIiwiZGF0YSIsInRhYmxlIiwicm93U2VsZWN0aW9uIiwic2V0Um93U2VsZWN0aW9uIiwidXNlU3RhdGUiLCJjb2x1bW5WaXNpYmlsaXR5Iiwic2V0Q29sdW1uVmlzaWJpbGl0eSIsImNvbHVtbkZpbHRlcnMiLCJzZXRDb2x1bW5GaWx0ZXJzIiwic29ydGluZyIsInNldFNvcnRpbmciLCJzdGF0ZSIsImVuYWJsZVJvd1NlbGVjdGlvbiIsIm9uUm93U2VsZWN0aW9uQ2hhbmdlIiwib25Tb3J0aW5nQ2hhbmdlIiwib25Db2x1bW5GaWx0ZXJzQ2hhbmdlIiwib25Db2x1bW5WaXNpYmlsaXR5Q2hhbmdlIiwiZGl2IiwiY2xhc3NOYW1lIiwiZ2V0SGVhZGVyR3JvdXBzIiwibWFwIiwiaGVhZGVyR3JvdXAiLCJoZWFkZXJzIiwiaGVhZGVyIiwiY29sU3BhbiIsImlzUGxhY2Vob2xkZXIiLCJjb2x1bW4iLCJjb2x1bW5EZWYiLCJnZXRDb250ZXh0IiwiaWQiLCJnZXRSb3dNb2RlbCIsInJvd3MiLCJsZW5ndGgiLCJyb3ciLCJkYXRhLXN0YXRlIiwiZ2V0SXNTZWxlY3RlZCIsImdldFZpc2libGVDZWxscyIsImNlbGwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/DataTable/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/Loading/index.tsx": /*!*************************************************!*\ !*** ./components/frontbuild/Loading/index.tsx ***! \*************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Loading: () => (/* binding */ Loading)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\nconst Loading = (param)=>{\n let { size = 24, className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n ...props,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"animate-spin\", className),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M21 12a9 9 0 1 1-6.219-8.56\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/Loading/index.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/Loading/index.tsx\",\n lineNumber: 14,\n columnNumber: 9\n }, undefined);\n};\n_c = Loading;\nvar _c;\n$RefreshReg$(_c, \"Loading\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Mb2FkaW5nL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWlDO0FBTzFCLE1BQU1DLFVBQVU7UUFBQyxFQUNwQkMsT0FBTyxFQUFFLEVBQ1RDLFNBQVMsRUFDVCxHQUFHQyxPQUNLO0lBQ1IscUJBQ0ksOERBQUNDO1FBQ0dDLE9BQU07UUFDTkMsT0FBT0w7UUFDUE0sUUFBUU47UUFDUCxHQUFHRSxLQUFLO1FBQ1RLLFNBQVE7UUFDUkMsTUFBSztRQUNMQyxRQUFPO1FBQ1BDLGFBQVk7UUFDWkMsZUFBYztRQUNkQyxnQkFBZTtRQUNmWCxXQUFXSCw4Q0FBRUEsQ0FBQyxnQkFBZ0JHO2tCQUU5Qiw0RUFBQ1k7WUFBS0MsR0FBRTs7Ozs7Ozs7Ozs7QUFHcEIsRUFBRTtLQXRCV2YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL0xvYWRpbmcvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNWR1Byb3BzIGV4dGVuZHMgUmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4ge1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgTG9hZGluZyA9ICh7XG4gICAgc2l6ZSA9IDI0LFxuICAgIGNsYXNzTmFtZSxcbiAgICAuLi5wcm9wc1xufTogSVNWR1Byb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB3aWR0aD17c2l6ZX1cbiAgICAgICAgICAgIGhlaWdodD17c2l6ZX1cbiAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NuKFwiYW5pbWF0ZS1zcGluXCIsIGNsYXNzTmFtZSl9XG4gICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTZcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICApO1xufTsiXSwibmFtZXMiOlsiY24iLCJMb2FkaW5nIiwic2l6ZSIsImNsYXNzTmFtZSIsInByb3BzIiwic3ZnIiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJwYXRoIiwiZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/Loading/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/ModeToggle/index.tsx": /*!****************************************************!*\ !*** ./components/frontbuild/ModeToggle/index.tsx ***! \****************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ModeToggle: () => (/* binding */ ModeToggle)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Moon_Sun_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Moon,Sun!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/sun.js\");\n/* harmony import */ var _barrel_optimize_names_Moon_Sun_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Moon,Sun!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/moon.js\");\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next-themes */ \"(app-pages-browser)/./node_modules/next-themes/dist/index.mjs\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* __next_internal_client_entry_do_not_use__ ModeToggle auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction ModeToggle() {\n _s();\n const { setTheme } = (0,next_themes__WEBPACK_IMPORTED_MODULE_2__.useTheme)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"outline\",\n size: \"icon\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Moon_Sun_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 22,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Moon_Sun_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 23,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Toggle theme\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 24,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 21,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 20,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenuContent, {\n align: \"end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenuItem, {\n onClick: ()=>setTheme(\"light\"),\n children: \"Light\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 28,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenuItem, {\n onClick: ()=>setTheme(\"dark\"),\n children: \"Dark\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 31,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.DropdownMenuItem, {\n onClick: ()=>setTheme(\"system\"),\n children: \"System\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 34,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 27,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/ModeToggle/index.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this);\n}\n_s(ModeToggle, \"a3u8LKbpX4CXbd+e8SJ1SuQ9KPw=\", false, function() {\n return [\n next_themes__WEBPACK_IMPORTED_MODULE_2__.useTheme\n ];\n});\n_c = ModeToggle;\nvar _c;\n$RefreshReg$(_c, \"ModeToggle\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Nb2RlVG9nZ2xlL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUNVO0FBQ0Y7QUFFUztBQU1UO0FBRS9CLFNBQVNTOztJQUNaLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdQLHFEQUFRQTtJQUU3QixxQkFDSSw4REFBQ0Usc0VBQVlBOzswQkFDVCw4REFBQ0csNkVBQW1CQTtnQkFBQ0csT0FBTzswQkFDeEIsNEVBQUNQLHlEQUFNQTtvQkFBQ1EsU0FBUTtvQkFBVUMsTUFBSzs7c0NBQzNCLDhEQUFDWCxvRkFBR0E7NEJBQUNZLFdBQVU7Ozs7OztzQ0FDZiw4REFBQ2Isb0ZBQUlBOzRCQUFDYSxXQUFVOzs7Ozs7c0NBQ2hCLDhEQUFDQzs0QkFBS0QsV0FBVTtzQ0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBR2xDLDhEQUFDUiw2RUFBbUJBO2dCQUFDVSxPQUFNOztrQ0FDdkIsOERBQUNULDBFQUFnQkE7d0JBQUNVLFNBQVMsSUFBTVAsU0FBUztrQ0FBVTs7Ozs7O2tDQUdwRCw4REFBQ0gsMEVBQWdCQTt3QkFBQ1UsU0FBUyxJQUFNUCxTQUFTO2tDQUFTOzs7Ozs7a0NBR25ELDhEQUFDSCwwRUFBZ0JBO3dCQUFDVSxTQUFTLElBQU1QLFNBQVM7a0NBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1yRTtHQXpCZ0JEOztRQUNTTixpREFBUUE7OztLQURqQk0iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL01vZGVUb2dnbGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNb29uLCBTdW4gfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIm5leHQtdGhlbWVzXCJcblxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9idXR0b25cIlxuaW1wb3J0IHtcbiAgICBEcm9wZG93bk1lbnUsXG4gICAgRHJvcGRvd25NZW51Q29udGVudCxcbiAgICBEcm9wZG93bk1lbnVJdGVtLFxuICAgIERyb3Bkb3duTWVudVRyaWdnZXIsXG59IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RlVG9nZ2xlKCkge1xuICAgIGNvbnN0IHsgc2V0VGhlbWUgfSA9IHVzZVRoZW1lKClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICA8RHJvcGRvd25NZW51VHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVcIiBzaXplPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8U3VuIGNsYXNzTmFtZT1cImgtWzEuMnJlbV0gdy1bMS4ycmVtXSByb3RhdGUtMCBzY2FsZS0xMDAgdHJhbnNpdGlvbi1hbGwgZGFyazotcm90YXRlLTkwIGRhcms6c2NhbGUtMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxNb29uIGNsYXNzTmFtZT1cImFic29sdXRlIGgtWzEuMnJlbV0gdy1bMS4ycmVtXSByb3RhdGUtOTAgc2NhbGUtMCB0cmFuc2l0aW9uLWFsbCBkYXJrOnJvdGF0ZS0wIGRhcms6c2NhbGUtMTAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPlRvZ2dsZSB0aGVtZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRHJvcGRvd25NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgIDxEcm9wZG93bk1lbnVDb250ZW50IGFsaWduPVwiZW5kXCI+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gc2V0VGhlbWUoXCJsaWdodFwiKX0+XG4gICAgICAgICAgICAgICAgICAgIExpZ2h0XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIG9uQ2xpY2s9eygpID0+IHNldFRoZW1lKFwiZGFya1wiKX0+XG4gICAgICAgICAgICAgICAgICAgIERhcmtcbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gc2V0VGhlbWUoXCJzeXN0ZW1cIil9PlxuICAgICAgICAgICAgICAgICAgICBTeXN0ZW1cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUNvbnRlbnQ+XG4gICAgICAgIDwvRHJvcGRvd25NZW51PlxuICAgIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk1vb24iLCJTdW4iLCJ1c2VUaGVtZSIsIkJ1dHRvbiIsIkRyb3Bkb3duTWVudSIsIkRyb3Bkb3duTWVudUNvbnRlbnQiLCJEcm9wZG93bk1lbnVJdGVtIiwiRHJvcGRvd25NZW51VHJpZ2dlciIsIk1vZGVUb2dnbGUiLCJzZXRUaGVtZSIsImFzQ2hpbGQiLCJ2YXJpYW50Iiwic2l6ZSIsImNsYXNzTmFtZSIsInNwYW4iLCJhbGlnbiIsIm9uQ2xpY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/ModeToggle/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/TaskDashboard/index.tsx": /*!*******************************************************!*\ !*** ./components/frontbuild/TaskDashboard/index.tsx ***! \*******************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TaskDashboard: () => (/* binding */ TaskDashboard)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/features/tasks/tasksApiSlice */ \"(app-pages-browser)/./lib/features/tasks/tasksApiSlice.ts\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_frontbuild_DataTable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/frontbuild/DataTable */ \"(app-pages-browser)/./components/frontbuild/DataTable/index.tsx\");\n/* harmony import */ var _components_frontbuild_DataTable_Columns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/frontbuild/DataTable/Columns */ \"(app-pages-browser)/./components/frontbuild/DataTable/Columns.tsx\");\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react-redux */ \"(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\");\n/* harmony import */ var _lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/features/tasks/tasksSlice */ \"(app-pages-browser)/./lib/features/tasks/tasksSlice.ts\");\n/* harmony import */ var _lib_features_label_labelApiSlice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/lib/features/label/labelApiSlice */ \"(app-pages-browser)/./lib/features/label/labelApiSlice.ts\");\n/* harmony import */ var _lib_features_status_statusApiSlice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/features/status/statusApiSlice */ \"(app-pages-browser)/./lib/features/status/statusApiSlice.ts\");\n/* harmony import */ var _lib_features_priority_priorityApiSlice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/lib/features/priority/priorityApiSlice */ \"(app-pages-browser)/./lib/features/priority/priorityApiSlice.ts\");\n/* harmony import */ var _lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/lib/features/app/appSlice */ \"(app-pages-browser)/./lib/features/app/appSlice.ts\");\n/* harmony import */ var _lib_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/lib/hooks */ \"(app-pages-browser)/./lib/hooks.ts\");\n/* harmony import */ var _components_frontbuild_UserNav__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/frontbuild/UserNav */ \"(app-pages-browser)/./components/frontbuild/UserNav/index.tsx\");\n/* harmony import */ var _components_frontbuild_Loading__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/components/frontbuild/Loading */ \"(app-pages-browser)/./components/frontbuild/Loading/index.tsx\");\n/* harmony import */ var _ModeToggle__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../ModeToggle */ \"(app-pages-browser)/./components/frontbuild/ModeToggle/index.tsx\");\n\nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst TaskDashboard = ()=>{\n _s();\n const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_14__.useDispatch)();\n const tasks = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector)(_lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_5__.selectAllTasks);\n const { data: tasksData, isLoading: isLoadingTasks, isSuccess: isSuccessGetTasks, isError: isErrorGetTasks } = (0,_lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_1__.useGetTasksQuery)();\n const { data: labels, isSuccess: isSuccessGetLabels } = (0,_lib_features_label_labelApiSlice__WEBPACK_IMPORTED_MODULE_6__.useGetLabelsQuery)();\n const { data: statuses, isSuccess: isSuccessGetStatus } = (0,_lib_features_status_statusApiSlice__WEBPACK_IMPORTED_MODULE_7__.useGetStatusQuery)();\n const { data: priorities, isSuccess: isSuccessGetPriorities } = (0,_lib_features_priority_priorityApiSlice__WEBPACK_IMPORTED_MODULE_8__.useGetPriorityQuery)();\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"TaskDashboard.useEffect\": ()=>{\n if (isSuccessGetLabels && isSuccessGetStatus && isSuccessGetPriorities && isSuccessGetTasks) {\n dispatch((0,_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_9__.setAppData)({\n labels,\n statuses,\n priorities\n }));\n dispatch((0,_lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_5__.setTasks)(tasksData));\n }\n }\n }[\"TaskDashboard.useEffect\"], [\n isSuccessGetLabels,\n isSuccessGetTasks,\n isSuccessGetStatus,\n tasksData,\n isSuccessGetPriorities,\n labels,\n statuses,\n priorities,\n dispatch\n ]);\n if (isLoadingTasks) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center items-center h-screen\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_Loading__WEBPACK_IMPORTED_MODULE_12__.Loading, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 37,\n columnNumber: 71\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 37,\n columnNumber: 12\n }, undefined);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex-1 flex-col space-y-4 p-4 sm:p-8 md:flex\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold tracking-tight\",\n \"data-testid\": 'frontbuild-title',\n children: \"FrontBuild\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 44,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted-foreground sm:text-base\",\n children: \"All of the tasks regarding this repo lays here.\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 45,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 43,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_UserNav__WEBPACK_IMPORTED_MODULE_11__.UserNav, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ModeToggle__WEBPACK_IMPORTED_MODULE_13__.ModeToggle, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 42,\n columnNumber: 7\n }, undefined),\n !isErrorGetTasks ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_DataTable__WEBPACK_IMPORTED_MODULE_3__.DataTable, {\n data: tasks,\n columns: _components_frontbuild_DataTable_Columns__WEBPACK_IMPORTED_MODULE_4__.columns,\n \"data-testid\": 'frontbuild-table'\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 54,\n columnNumber: 27\n }, undefined) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"Error loading tasks\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 54,\n columnNumber: 107\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDashboard/index.tsx\",\n lineNumber: 41,\n columnNumber: 5\n }, undefined);\n};\n_s(TaskDashboard, \"VoquSViEL/Ng5GzXrnUnh/JNHDg=\", false, function() {\n return [\n react_redux__WEBPACK_IMPORTED_MODULE_14__.useDispatch,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector,\n _lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_1__.useGetTasksQuery,\n _lib_features_label_labelApiSlice__WEBPACK_IMPORTED_MODULE_6__.useGetLabelsQuery,\n _lib_features_status_statusApiSlice__WEBPACK_IMPORTED_MODULE_7__.useGetStatusQuery,\n _lib_features_priority_priorityApiSlice__WEBPACK_IMPORTED_MODULE_8__.useGetPriorityQuery\n ];\n});\n_c = TaskDashboard;\nvar _c;\n$RefreshReg$(_c, \"TaskDashboard\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRGFzaGJvYXJkL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXNFO0FBQzdCO0FBQ3FCO0FBQ007QUFDMUI7QUFDaUM7QUFDSjtBQUNFO0FBQ007QUFDdEI7QUFDWjtBQUNhO0FBQ0E7QUFDZjtBQUVwQyxNQUFNZ0IsZ0JBQWdCOztJQUMzQixNQUFNQyxXQUFXWix5REFBV0E7SUFDNUIsTUFBTWEsUUFBUU4sMkRBQWNBLENBQUNOLDBFQUFjQTtJQUMzQyxNQUFNLEVBQUVhLE1BQU1DLFNBQVMsRUFBRUMsV0FBV0MsY0FBYyxFQUFFQyxXQUFXQyxpQkFBaUIsRUFBRUMsU0FBU0MsZUFBZSxFQUFFLEdBQzFHMUIsbUZBQWdCQTtJQUVsQixNQUFNLEVBQUVtQixNQUFNUSxNQUFNLEVBQUVKLFdBQVdLLGtCQUFrQixFQUFFLEdBQ25EcEIsb0ZBQWlCQTtJQUNuQixNQUFNLEVBQUVXLE1BQU1VLFFBQVEsRUFBRU4sV0FBV08sa0JBQWtCLEVBQUUsR0FDckRyQixzRkFBaUJBO0lBQ25CLE1BQU0sRUFBRVUsTUFBTVksVUFBVSxFQUFFUixXQUFXUyxzQkFBc0IsRUFBRSxHQUMzRHRCLDRGQUFtQkE7SUFFckJSLGdEQUFTQTttQ0FBQztZQUNSLElBQUkwQixzQkFBc0JFLHNCQUFzQkUsMEJBQTBCUixtQkFBbUI7Z0JBQzNGUCxTQUFTTixzRUFBVUEsQ0FBQztvQkFBRWdCO29CQUFRRTtvQkFBVUU7Z0JBQVc7Z0JBQ25EZCxTQUFTVix3RUFBUUEsQ0FBQ2E7WUFDcEI7UUFDRjtrQ0FBRztRQUFDUTtRQUFvQko7UUFBbUJNO1FBQW9CVjtRQUFXWTtRQUF3Qkw7UUFBUUU7UUFBVUU7UUFBWWQ7S0FBUztJQUV6SSxJQUFJSyxnQkFBZ0I7UUFDbEIscUJBQU8sOERBQUNXO1lBQUlDLFdBQVU7c0JBQTRDLDRFQUFDcEIsb0VBQU9BOzs7Ozs7Ozs7O0lBQzVFO0lBRUEscUJBQ0UsOERBQUNtQjtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDRDs7MENBQ0MsOERBQUNFO2dDQUFHRCxXQUFVO2dDQUFvQ0UsZUFBYTswQ0FBb0I7Ozs7OzswQ0FDbkYsOERBQUNDO2dDQUFFSCxXQUFVOzBDQUE2Qzs7Ozs7Ozs7Ozs7O2tDQUk1RCw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDckIsb0VBQU9BOzs7OzswQ0FDUiw4REFBQ0Usb0RBQVVBOzs7Ozs7Ozs7Ozs7Ozs7OztZQUdkLENBQUNXLGdDQUFrQiw4REFBQ3ZCLHVFQUFTQTtnQkFBQ2dCLE1BQU1EO2dCQUFPZCxTQUFTQSw2RUFBT0E7Z0JBQUVnQyxlQUFhOzs7OzswQ0FBeUIsOERBQUNIOzBCQUFJOzs7Ozs7Ozs7Ozs7QUFHL0csRUFBRTtHQXpDV2pCOztRQUNNWCxxREFBV0E7UUFDZE8sdURBQWNBO1FBRTFCWiwrRUFBZ0JBO1FBR2hCUSxnRkFBaUJBO1FBRWpCQyxrRkFBaUJBO1FBRWpCQyx3RkFBbUJBOzs7S0FYVk0iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL1Rhc2tEYXNoYm9hcmQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUdldFRhc2tzUXVlcnkgfSBmcm9tICdAL2xpYi9mZWF0dXJlcy90YXNrcy90YXNrc0FwaVNsaWNlJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEYXRhVGFibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9EYXRhVGFibGUnO1xuaW1wb3J0IHsgY29sdW1ucyB9IGZyb20gJ0AvY29tcG9uZW50cy9mcm9udGJ1aWxkL0RhdGFUYWJsZS9Db2x1bW5zJztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgc2VsZWN0QWxsVGFza3MsIHNldFRhc2tzIH0gZnJvbSAnQC9saWIvZmVhdHVyZXMvdGFza3MvdGFza3NTbGljZSc7XG5pbXBvcnQgeyB1c2VHZXRMYWJlbHNRdWVyeSB9IGZyb20gJ0AvbGliL2ZlYXR1cmVzL2xhYmVsL2xhYmVsQXBpU2xpY2UnO1xuaW1wb3J0IHsgdXNlR2V0U3RhdHVzUXVlcnkgfSBmcm9tICdAL2xpYi9mZWF0dXJlcy9zdGF0dXMvc3RhdHVzQXBpU2xpY2UnO1xuaW1wb3J0IHsgdXNlR2V0UHJpb3JpdHlRdWVyeSB9IGZyb20gJ0AvbGliL2ZlYXR1cmVzL3ByaW9yaXR5L3ByaW9yaXR5QXBpU2xpY2UnO1xuaW1wb3J0IHsgc2V0QXBwRGF0YSB9IGZyb20gJ0AvbGliL2ZlYXR1cmVzL2FwcC9hcHBTbGljZSc7XG5pbXBvcnQgeyB1c2VBcHBTZWxlY3RvciB9IGZyb20gJ0AvbGliL2hvb2tzJztcbmltcG9ydCB7IFVzZXJOYXYgfSBmcm9tICdAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Vc2VyTmF2JztcbmltcG9ydCB7IExvYWRpbmcgfSBmcm9tICdAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Mb2FkaW5nJztcbmltcG9ydCB7IE1vZGVUb2dnbGUgfSBmcm9tICcuLi9Nb2RlVG9nZ2xlJztcblxuZXhwb3J0IGNvbnN0IFRhc2tEYXNoYm9hcmQgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgdGFza3MgPSB1c2VBcHBTZWxlY3RvcihzZWxlY3RBbGxUYXNrcyk7XG4gIGNvbnN0IHsgZGF0YTogdGFza3NEYXRhLCBpc0xvYWRpbmc6IGlzTG9hZGluZ1Rhc2tzLCBpc1N1Y2Nlc3M6IGlzU3VjY2Vzc0dldFRhc2tzLCBpc0Vycm9yOiBpc0Vycm9yR2V0VGFza3MgfSA9XG4gICAgdXNlR2V0VGFza3NRdWVyeSgpO1xuXG4gIGNvbnN0IHsgZGF0YTogbGFiZWxzLCBpc1N1Y2Nlc3M6IGlzU3VjY2Vzc0dldExhYmVscyB9ID1cbiAgICB1c2VHZXRMYWJlbHNRdWVyeSgpO1xuICBjb25zdCB7IGRhdGE6IHN0YXR1c2VzLCBpc1N1Y2Nlc3M6IGlzU3VjY2Vzc0dldFN0YXR1cyB9ID1cbiAgICB1c2VHZXRTdGF0dXNRdWVyeSgpO1xuICBjb25zdCB7IGRhdGE6IHByaW9yaXRpZXMsIGlzU3VjY2VzczogaXNTdWNjZXNzR2V0UHJpb3JpdGllcyB9ID1cbiAgICB1c2VHZXRQcmlvcml0eVF1ZXJ5KCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNTdWNjZXNzR2V0TGFiZWxzICYmIGlzU3VjY2Vzc0dldFN0YXR1cyAmJiBpc1N1Y2Nlc3NHZXRQcmlvcml0aWVzICYmIGlzU3VjY2Vzc0dldFRhc2tzKSB7XG4gICAgICBkaXNwYXRjaChzZXRBcHBEYXRhKHsgbGFiZWxzLCBzdGF0dXNlcywgcHJpb3JpdGllcyB9KSk7XG4gICAgICBkaXNwYXRjaChzZXRUYXNrcyh0YXNrc0RhdGEpKTtcbiAgICB9XG4gIH0sIFtpc1N1Y2Nlc3NHZXRMYWJlbHMsIGlzU3VjY2Vzc0dldFRhc2tzLCBpc1N1Y2Nlc3NHZXRTdGF0dXMsIHRhc2tzRGF0YSwgaXNTdWNjZXNzR2V0UHJpb3JpdGllcywgbGFiZWxzLCBzdGF0dXNlcywgcHJpb3JpdGllcywgZGlzcGF0Y2hdKTtcblxuICBpZiAoaXNMb2FkaW5nVGFza3MpIHtcbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9J2ZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtc2NyZWVuJz48TG9hZGluZyAvPjwvZGl2PjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgZmxleC0xIGZsZXgtY29sIHNwYWNlLXktNCBwLTQgc206cC04IG1kOmZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHNwYWNlLXktMlwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdHJhY2tpbmctdGlnaHRcIiBkYXRhLXRlc3RpZD17J2Zyb250YnVpbGQtdGl0bGUnfT5Gcm9udEJ1aWxkPC9oMj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzbTp0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIEFsbCBvZiB0aGUgdGFza3MgcmVnYXJkaW5nIHRoaXMgcmVwbyBsYXlzIGhlcmUuXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTJcIj5cbiAgICAgICAgICA8VXNlck5hdiAvPlxuICAgICAgICAgIDxNb2RlVG9nZ2xlIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7IWlzRXJyb3JHZXRUYXNrcyA/IDxEYXRhVGFibGUgZGF0YT17dGFza3N9IGNvbHVtbnM9e2NvbHVtbnN9IGRhdGEtdGVzdGlkPXsnZnJvbnRidWlsZC10YWJsZSd9IC8+IDogPGRpdj5FcnJvciBsb2FkaW5nIHRhc2tzPC9kaXY+fVxuICAgIDwvZGl2PlxuICApO1xufTsiXSwibmFtZXMiOlsidXNlR2V0VGFza3NRdWVyeSIsIlJlYWN0IiwidXNlRWZmZWN0IiwiRGF0YVRhYmxlIiwiY29sdW1ucyIsInVzZURpc3BhdGNoIiwic2VsZWN0QWxsVGFza3MiLCJzZXRUYXNrcyIsInVzZUdldExhYmVsc1F1ZXJ5IiwidXNlR2V0U3RhdHVzUXVlcnkiLCJ1c2VHZXRQcmlvcml0eVF1ZXJ5Iiwic2V0QXBwRGF0YSIsInVzZUFwcFNlbGVjdG9yIiwiVXNlck5hdiIsIkxvYWRpbmciLCJNb2RlVG9nZ2xlIiwiVGFza0Rhc2hib2FyZCIsImRpc3BhdGNoIiwidGFza3MiLCJkYXRhIiwidGFza3NEYXRhIiwiaXNMb2FkaW5nIiwiaXNMb2FkaW5nVGFza3MiLCJpc1N1Y2Nlc3MiLCJpc1N1Y2Nlc3NHZXRUYXNrcyIsImlzRXJyb3IiLCJpc0Vycm9yR2V0VGFza3MiLCJsYWJlbHMiLCJpc1N1Y2Nlc3NHZXRMYWJlbHMiLCJzdGF0dXNlcyIsImlzU3VjY2Vzc0dldFN0YXR1cyIsInByaW9yaXRpZXMiLCJpc1N1Y2Nlc3NHZXRQcmlvcml0aWVzIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJkYXRhLXRlc3RpZCIsInAiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/TaskDashboard/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/TaskDialog/index.tsx": /*!****************************************************!*\ !*** ./components/frontbuild/TaskDialog/index.tsx ***! \****************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TaskDialog: () => (/* binding */ TaskDialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./components/ui/dialog.tsx\");\n/* harmony import */ var _components_frontbuild_TaskForm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/frontbuild/TaskForm */ \"(app-pages-browser)/./components/frontbuild/TaskForm/index.tsx\");\n\n\n\n\nconst TaskDialog = (param)=>{\n let { mode, open, onOpenChange, task } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.Dialog, {\n open: open,\n onOpenChange: onOpenChange,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogContent, {\n className: \"sm:max-w-[425px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogTitle, {\n \"data-testid\": \"task-dialog-title\",\n children: [\n mode,\n \" Task\"\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 28,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogDescription, {\n children: \"Make changes to the task here. Click save when youre done.\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 29,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_frontbuild_TaskForm__WEBPACK_IMPORTED_MODULE_3__.TaskForm, {\n mode: mode,\n defaultValues: task,\n onOpenChange: onOpenChange\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 33,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 26,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskDialog/index.tsx\",\n lineNumber: 25,\n columnNumber: 5\n }, undefined);\n};\n_c = TaskDialog;\nvar _c;\n$RefreshReg$(_c, \"TaskDialog\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRGlhbG9nL2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXlCO0FBT007QUFDNEI7QUFhcEQsTUFBTU8sYUFBOEM7UUFBQyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFQyxJQUFJLEVBQUU7SUFFNUYscUJBQ0UsOERBQUNWLHlEQUFNQTtRQUFDUSxNQUFNQTtRQUFNQyxjQUFjQTtrQkFDaEMsNEVBQUNSLGdFQUFhQTtZQUFDVSxXQUFVOzs4QkFDdkIsOERBQUNSLCtEQUFZQTs7c0NBQ1gsOERBQUNDLDhEQUFXQTs0QkFBQ1EsZUFBWTs7Z0NBQXFCTDtnQ0FBSzs7Ozs7OztzQ0FDbkQsOERBQUNMLG9FQUFpQkE7c0NBQUM7Ozs7Ozs7Ozs7Ozs4QkFJckIsOERBQUNHLHFFQUFRQTtvQkFBQ0UsTUFBTUE7b0JBQU1NLGVBQWVIO29CQUFNRCxjQUFjQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJakUsRUFBQztLQWZZSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL2Zyb250YnVpbGQvVGFza0RpYWxvZy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dEZXNjcmlwdGlvbixcbiAgRGlhbG9nSGVhZGVyLFxuICBEaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9kaWFsb2dcIlxuaW1wb3J0IHsgVGFza0Zvcm0gfSBmcm9tICdAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRm9ybSdcbmltcG9ydCB7IFRhc2tNb2RlIH0gZnJvbSAnQC9jb21wb25lbnRzL2Zyb250YnVpbGQvVGFza0RpYWxvZy90eXBlcydcbmltcG9ydCB7IFRhc2sgfSBmcm9tICdAL2FwcC9zY2hlbWFzJ1xuXG5cbmludGVyZmFjZSBUYXNrRGlhbG9nRGlhbG9nUHJvcHMge1xuICBvcGVuOiBib29sZWFuXG4gIG9uT3BlbkNoYW5nZTogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbiAgbW9kZTogVGFza01vZGVcbiAgdGFzaz86IFRhc2s7XG59XG5cblxuZXhwb3J0IGNvbnN0IFRhc2tEaWFsb2c6IFJlYWN0LkZDPFRhc2tEaWFsb2dEaWFsb2dQcm9wcz4gPSAoeyBtb2RlLCBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRhc2sgfSkgPT4ge1xuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZyBvcGVuPXtvcGVufSBvbk9wZW5DaGFuZ2U9e29uT3BlbkNoYW5nZX0+XG4gICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJzbTptYXgtdy1bNDI1cHhdXCI+XG4gICAgICAgIDxEaWFsb2dIZWFkZXI+XG4gICAgICAgICAgPERpYWxvZ1RpdGxlIGRhdGEtdGVzdGlkPVwidGFzay1kaWFsb2ctdGl0bGVcIj57bW9kZX0gVGFzazwvRGlhbG9nVGl0bGU+XG4gICAgICAgICAgPERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAgTWFrZSBjaGFuZ2VzIHRvIHRoZSB0YXNrIGhlcmUuIENsaWNrIHNhdmUgd2hlbiB5b3VyZSBkb25lLlxuICAgICAgICAgIDwvRGlhbG9nRGVzY3JpcHRpb24+XG4gICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuICAgICAgICA8VGFza0Zvcm0gbW9kZT17bW9kZX0gZGVmYXVsdFZhbHVlcz17dGFza30gb25PcGVuQ2hhbmdlPXtvbk9wZW5DaGFuZ2V9IC8+XG4gICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgPC9EaWFsb2c+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkRpYWxvZyIsIkRpYWxvZ0NvbnRlbnQiLCJEaWFsb2dEZXNjcmlwdGlvbiIsIkRpYWxvZ0hlYWRlciIsIkRpYWxvZ1RpdGxlIiwiVGFza0Zvcm0iLCJUYXNrRGlhbG9nIiwibW9kZSIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0YXNrIiwiY2xhc3NOYW1lIiwiZGF0YS10ZXN0aWQiLCJkZWZhdWx0VmFsdWVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/TaskDialog/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/TaskForm/index.tsx": /*!**************************************************!*\ !*** ./components/frontbuild/TaskForm/index.tsx ***! \**************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TaskForm: () => (/* binding */ TaskForm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_hook_form__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react-hook-form */ \"(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\");\n/* harmony import */ var _app_schemas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/schemas */ \"(app-pages-browser)/./app/schemas/index.tsx\");\n/* harmony import */ var _hookform_resolvers_zod__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @hookform/resolvers/zod */ \"(app-pages-browser)/./node_modules/@hookform/resolvers/zod/dist/zod.mjs\");\n/* harmony import */ var _components_ui_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/form */ \"(app-pages-browser)/./components/ui/form.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/select */ \"(app-pages-browser)/./components/ui/select.tsx\");\n/* harmony import */ var ui_box__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ui-box */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/index.js\");\n/* harmony import */ var ui_box__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(ui_box__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var sonner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! sonner */ \"(app-pages-browser)/./node_modules/sonner/dist/index.mjs\");\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react-redux */ \"(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\");\n/* harmony import */ var _lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/lib/features/tasks/tasksSlice */ \"(app-pages-browser)/./lib/features/tasks/tasksSlice.ts\");\n/* harmony import */ var _lib_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/lib/hooks */ \"(app-pages-browser)/./lib/hooks.ts\");\n/* harmony import */ var _lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/lib/features/app/appSlice */ \"(app-pages-browser)/./lib/features/app/appSlice.ts\");\n/* harmony import */ var _lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/lib/features/tasks/tasksApiSlice */ \"(app-pages-browser)/./lib/features/tasks/tasksApiSlice.ts\");\n\nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst TaskForm = (param)=>{\n let { defaultValues, mode, onOpenChange } = param;\n _s();\n const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_13__.useDispatch)();\n const form = (0,react_hook_form__WEBPACK_IMPORTED_MODULE_14__.useForm)({\n resolver: (0,_hookform_resolvers_zod__WEBPACK_IMPORTED_MODULE_3__.zodResolver)(_app_schemas__WEBPACK_IMPORTED_MODULE_2__.taskSchema),\n defaultValues\n });\n const labels = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_11__.selectLabels);\n const statuses = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_11__.selectStatuses);\n const priorities = (0,_lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector)(_lib_features_app_appSlice__WEBPACK_IMPORTED_MODULE_11__.selectPriorities);\n const onSubmit = async (values)=>{\n try {\n let task;\n if (mode === 'add') {\n task = await (0,_lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_12__.addTaskApi)(values);\n dispatch((0,_lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_9__.addTask)(task));\n (0,sonner__WEBPACK_IMPORTED_MODULE_8__.toast)('Task has been created.');\n } else if (mode === 'edit') {\n if (!values._id) throw new Error('Task ID is required for editing.');\n task = await (0,_lib_features_tasks_tasksApiSlice__WEBPACK_IMPORTED_MODULE_12__.updateTaskApi)(values);\n dispatch((0,_lib_features_tasks_tasksSlice__WEBPACK_IMPORTED_MODULE_9__.modifyTask)(task));\n (0,sonner__WEBPACK_IMPORTED_MODULE_8__.toast)('Task has been updated.');\n }\n onOpenChange(false); // Cierra el modal solo si la operación es exitosa\n } catch (error) {\n console.error('Error submitting task:', error);\n sonner__WEBPACK_IMPORTED_MODULE_8__.toast.error('Failed to save task.'); // Usa toast.error para mostrar errores\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.Form, {\n ...form,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: form.handleSubmit(onSubmit),\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormField, {\n control: form.control,\n name: \"title\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormItem, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormLabel, {\n children: \"Title\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 86,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormControl, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n placeholder: \"Task title\",\n ...field,\n \"data-testid\": \"task-form-title\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 88,\n columnNumber: 33\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 87,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormMessage, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 90,\n columnNumber: 29\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 85,\n columnNumber: 25\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 81,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormField, {\n control: form.control,\n name: \"status\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormItem, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormLabel, {\n children: \"Status\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 99,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.Select, {\n onValueChange: field.onChange,\n defaultValue: field.value,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormControl, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectTrigger, {\n \"data-testid\": \"task-form-status\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectValue, {\n placeholder: \"Select a status\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 103,\n columnNumber: 41\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 102,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 101,\n columnNumber: 33\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectGroup, {\n children: statuses === null || statuses === void 0 ? void 0 : statuses.map((status)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectItem, {\n value: status.value,\n \"data-testid\": \"status-item-\".concat(status.value),\n children: status.label\n }, status.value, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 109,\n columnNumber: 45\n }, void 0))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 107,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 106,\n columnNumber: 33\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 100,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormMessage, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 116,\n columnNumber: 29\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 98,\n columnNumber: 25\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormField, {\n control: form.control,\n name: \"label\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormItem, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormLabel, {\n children: \"Label\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 125,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.Select, {\n onValueChange: field.onChange,\n defaultValue: field.value,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormControl, {\n \"data-testid\": \"task-form-label\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectTrigger, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectValue, {\n placeholder: \"Select a label\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 129,\n columnNumber: 41\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 128,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 127,\n columnNumber: 33\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectGroup, {\n children: labels === null || labels === void 0 ? void 0 : labels.map((label)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectItem, {\n value: label.value,\n \"data-testid\": \"label-item-\".concat(label.value),\n children: label.label\n }, label.value, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 135,\n columnNumber: 45\n }, void 0))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 133,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 132,\n columnNumber: 33\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 126,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormMessage, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 142,\n columnNumber: 29\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 124,\n columnNumber: 25\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 120,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormField, {\n control: form.control,\n name: \"priority\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormItem, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormLabel, {\n children: \"Priority\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 151,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.Select, {\n onValueChange: field.onChange,\n defaultValue: field.value,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormControl, {\n \"data-testid\": \"task-form-priority\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectTrigger, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectValue, {\n placeholder: \"Select a priority\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 155,\n columnNumber: 41\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 154,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 153,\n columnNumber: 33\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectGroup, {\n children: priorities === null || priorities === void 0 ? void 0 : priorities.map((priority)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_7__.SelectItem, {\n value: priority.value,\n \"data-testid\": \"priority-item-\".concat(priority.value),\n children: priority.label\n }, priority.value, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 161,\n columnNumber: 45\n }, void 0))\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 159,\n columnNumber: 37\n }, void 0)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 158,\n columnNumber: 33\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 152,\n columnNumber: 29\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_form__WEBPACK_IMPORTED_MODULE_4__.FormMessage, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 168,\n columnNumber: 29\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 150,\n columnNumber: 25\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 146,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((ui_box__WEBPACK_IMPORTED_MODULE_15___default()), {\n display: \"flex\",\n justifyContent: \"end\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_6__.Button, {\n \"data-testid\": \"task-form-submit-button\",\n type: \"submit\",\n children: \"Save Task\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 173,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 172,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/TaskForm/index.tsx\",\n lineNumber: 79,\n columnNumber: 9\n }, undefined);\n};\n_s(TaskForm, \"xPU/Fnu6F6lgtybbTUBAp80UtAY=\", false, function() {\n return [\n react_redux__WEBPACK_IMPORTED_MODULE_13__.useDispatch,\n react_hook_form__WEBPACK_IMPORTED_MODULE_14__.useForm,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector,\n _lib_hooks__WEBPACK_IMPORTED_MODULE_10__.useAppSelector\n ];\n});\n_c = TaskForm;\nvar _c;\n$RefreshReg$(_c, \"TaskForm\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRm9ybS9pbmRleC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXlCO0FBRWlCO0FBQ007QUFDTTtBQVF6QjtBQUdDO0FBR0M7QUFRQTtBQUVQO0FBR087QUFDVztBQUM0QjtBQUN6QjtBQUNnRDtBQUNkO0FBU3hFLE1BQU02QixXQUFvQztRQUFDLEVBQUVDLGFBQWEsRUFBRUMsSUFBSSxFQUFFQyxZQUFZLEVBQUU7O0lBQ25GLE1BQU1DLFdBQVdiLHlEQUFXQTtJQUM1QixNQUFNYyxPQUFPakMseURBQU9BLENBQU87UUFDdkJrQyxVQUFVaEMsb0VBQVdBLENBQUNELG9EQUFVQTtRQUNoQzRCO0lBQ0o7SUFFQSxNQUFNTSxTQUFTYiwyREFBY0EsQ0FBQ0MscUVBQVlBO0lBQzFDLE1BQU1hLFdBQVdkLDJEQUFjQSxDQUFDRyx1RUFBY0E7SUFDOUMsTUFBTVksYUFBYWYsMkRBQWNBLENBQUNFLHlFQUFnQkE7SUFFbEQsTUFBTWMsV0FBVyxPQUFPQztRQUNwQixJQUFJO1lBQ0EsSUFBSUM7WUFDSixJQUFJVixTQUFTLE9BQU87Z0JBQ2hCVSxPQUFPLE1BQU1kLDhFQUFVQSxDQUFDYTtnQkFDeEJQLFNBQVNaLHVFQUFPQSxDQUFDb0I7Z0JBQ2pCdEIsNkNBQUtBLENBQUM7WUFDVixPQUFPLElBQUlZLFNBQVMsUUFBUTtnQkFDeEIsSUFBSSxDQUFDUyxPQUFPRSxHQUFHLEVBQUUsTUFBTSxJQUFJQyxNQUFNO2dCQUNqQ0YsT0FBTyxNQUFNYixpRkFBYUEsQ0FBQ1k7Z0JBQzNCUCxTQUFTWCwwRUFBVUEsQ0FBQ21CO2dCQUNwQnRCLDZDQUFLQSxDQUFDO1lBQ1Y7WUFFQWEsYUFBYSxRQUFRLGtEQUFrRDtRQUMzRSxFQUFFLE9BQU9ZLE9BQU87WUFDWkMsUUFBUUQsS0FBSyxDQUFDLDBCQUEwQkE7WUFDeEN6Qix5Q0FBS0EsQ0FBQ3lCLEtBQUssQ0FBQyx5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NERBQVdBOzRDQUFDZ0QsZUFBWTtzREFDckIsNEVBQUNyQyxnRUFBYUE7MERBQ1YsNEVBQUNDLDhEQUFXQTtvREFBQ21DLGFBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7c0RBR2pDLDhEQUFDdkMsZ0VBQWFBO3NEQUNWLDRFQUFDQyw4REFBV0E7MERBQ1B3Qix1QkFBQUEsaUNBQUFBLFdBQVlvQixHQUFHLENBQUMsQ0FBQ0cseUJBQ2QsOERBQUM5Qyw2REFBVUE7d0RBQXNCMEMsT0FBT0ksU0FBU0osS0FBSzt3REFBRUosZUFBYSxpQkFBZ0MsT0FBZlEsU0FBU0osS0FBSztrRUFDL0ZJLFNBQVNELEtBQUs7dURBREZDLFNBQVNKLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FPL0MsOERBQUNoRCw0REFBV0E7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQUl4Qiw4REFBQ1MsZ0RBQUdBO29CQUFDNEMsU0FBUTtvQkFBT0MsZ0JBQWU7OEJBQy9CLDRFQUFDcEQseURBQU1BO3dCQUFDMEMsZUFBWTt3QkFBMEJXLE1BQUs7a0NBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLaEYsRUFBQztHQXBJWW5DOztRQUNRVCxxREFBV0E7UUFDZm5CLHFEQUFPQTtRQUtMc0IsdURBQWNBO1FBQ1pBLHVEQUFjQTtRQUNaQSx1REFBY0E7OztLQVR4Qk0iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL1Rhc2tGb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgeyBUYXNrLCB0YXNrU2NoZW1hIH0gZnJvbSAnQC9hcHAvc2NoZW1hcydcbmltcG9ydCB7IHpvZFJlc29sdmVyIH0gZnJvbSBcIkBob29rZm9ybS9yZXNvbHZlcnMvem9kXCI7XG5pbXBvcnQge1xuICAgIEZvcm0sXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUZpZWxkLFxuICAgIEZvcm1JdGVtLFxuICAgIEZvcm1MYWJlbCxcbiAgICBGb3JtTWVzc2FnZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9mb3JtXCJcbmltcG9ydCB7XG4gICAgSW5wdXRcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9pbnB1dFwiXG5pbXBvcnQge1xuICAgIEJ1dHRvblxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQge1xuICAgIFNlbGVjdCxcbiAgICBTZWxlY3RDb250ZW50LFxuICAgIFNlbGVjdEdyb3VwLFxuICAgIFNlbGVjdEl0ZW0sXG4gICAgU2VsZWN0VHJpZ2dlcixcbiAgICBTZWxlY3RWYWx1ZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9zZWxlY3RcIlxuaW1wb3J0IHsgTGFiZWwsIFByaW9yaXR5LCBTdGF0dXMgfSBmcm9tICdAL2FwcC90eXBlcy9hcGkvQXBpJztcbmltcG9ydCBCb3ggZnJvbSAndWktYm94J1xuaW1wb3J0IHsgVGFza01vZGUgfSBmcm9tICdAL2NvbXBvbmVudHMvZnJvbnRidWlsZC9UYXNrRGlhbG9nL3R5cGVzJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3Nvbm5lcic7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFkZFRhc2ssIG1vZGlmeVRhc2sgfSBmcm9tICdAL2xpYi9mZWF0dXJlcy90YXNrcy90YXNrc1NsaWNlJztcbmltcG9ydCB7IHVzZUFwcFNlbGVjdG9yIH0gZnJvbSAnQC9saWIvaG9va3MnO1xuaW1wb3J0IHsgc2VsZWN0TGFiZWxzLCBzZWxlY3RQcmlvcml0aWVzLCBzZWxlY3RTdGF0dXNlcyB9IGZyb20gJ0AvbGliL2ZlYXR1cmVzL2FwcC9hcHBTbGljZSc7XG5pbXBvcnQgeyBhZGRUYXNrQXBpLCB1cGRhdGVUYXNrQXBpIH0gZnJvbSAnQC9saWIvZmVhdHVyZXMvdGFza3MvdGFza3NBcGlTbGljZSc7XG5cblxuaW50ZXJmYWNlIFRhc2tGb3JtUHJvcHMge1xuICAgIGRlZmF1bHRWYWx1ZXM/OiBQYXJ0aWFsPFRhc2s+O1xuICAgIG9uT3BlbkNoYW5nZTogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbiAgICBtb2RlOiBUYXNrTW9kZVxufVxuXG5leHBvcnQgY29uc3QgVGFza0Zvcm06IFJlYWN0LkZDPFRhc2tGb3JtUHJvcHM+ID0gKHsgZGVmYXVsdFZhbHVlcywgbW9kZSwgb25PcGVuQ2hhbmdlIH0pID0+IHtcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gICAgY29uc3QgZm9ybSA9IHVzZUZvcm08VGFzaz4oe1xuICAgICAgICByZXNvbHZlcjogem9kUmVzb2x2ZXIodGFza1NjaGVtYSksXG4gICAgICAgIGRlZmF1bHRWYWx1ZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsYWJlbHMgPSB1c2VBcHBTZWxlY3RvcihzZWxlY3RMYWJlbHMpO1xuICAgIGNvbnN0IHN0YXR1c2VzID0gdXNlQXBwU2VsZWN0b3Ioc2VsZWN0U3RhdHVzZXMpO1xuICAgIGNvbnN0IHByaW9yaXRpZXMgPSB1c2VBcHBTZWxlY3RvcihzZWxlY3RQcmlvcml0aWVzKTtcblxuICAgIGNvbnN0IG9uU3VibWl0ID0gYXN5bmMgKHZhbHVlczogei5pbmZlcjx0eXBlb2YgdGFza1NjaGVtYT4pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB0YXNrO1xuICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdhZGQnKSB7XG4gICAgICAgICAgICAgICAgdGFzayA9IGF3YWl0IGFkZFRhc2tBcGkodmFsdWVzKTtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaChhZGRUYXNrKHRhc2spKTtcbiAgICAgICAgICAgICAgICB0b2FzdCgnVGFzayBoYXMgYmVlbiBjcmVhdGVkLicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnZWRpdCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlcy5faWQpIHRocm93IG5ldyBFcnJvcignVGFzayBJRCBpcyByZXF1aXJlZCBmb3IgZWRpdGluZy4nKTtcbiAgICAgICAgICAgICAgICB0YXNrID0gYXdhaXQgdXBkYXRlVGFza0FwaSh2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKG1vZGlmeVRhc2sodGFzaykpO1xuICAgICAgICAgICAgICAgIHRvYXN0KCdUYXNrIGhhcyBiZWVuIHVwZGF0ZWQuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSk7IC8vIENpZXJyYSBlbCBtb2RhbCBzb2xvIHNpIGxhIG9wZXJhY2nDs24gZXMgZXhpdG9zYVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc3VibWl0dGluZyB0YXNrOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRvYXN0LmVycm9yKCdGYWlsZWQgdG8gc2F2ZSB0YXNrLicpOyAvLyBVc2EgdG9hc3QuZXJyb3IgcGFyYSBtb3N0cmFyIGVycm9yZXNcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Rm9ybSB7Li4uZm9ybX0+XG4gICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17Zm9ybS5oYW5kbGVTdWJtaXQob25TdWJtaXQpfSBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICA8Rm9ybUZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2w9e2Zvcm0uY29udHJvbH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoeyBmaWVsZCB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1MYWJlbD5UaXRsZTwvRm9ybUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0IHBsYWNlaG9sZGVyPVwiVGFzayB0aXRsZVwiIHsuLi5maWVsZH0gZGF0YS10ZXN0aWQ9XCJ0YXNrLWZvcm0tdGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1NZXNzYWdlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1JdGVtPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1GaWVsZFxuICAgICAgICAgICAgICAgICAgICBjb250cm9sPXtmb3JtLmNvbnRyb2x9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICByZW5kZXI9eyh7IGZpZWxkIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUxhYmVsPlN0YXR1czwvRm9ybUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3Qgb25WYWx1ZUNoYW5nZT17ZmllbGQub25DaGFuZ2V9IGRlZmF1bHRWYWx1ZT17ZmllbGQudmFsdWV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VHJpZ2dlciBkYXRhLXRlc3RpZD1cInRhc2stZm9ybS1zdGF0dXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VmFsdWUgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBzdGF0dXNcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RHcm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RhdHVzZXM/Lm1hcCgoc3RhdHVzOiBTdGF0dXMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9e3N0YXR1cy52YWx1ZX0ga2V5PXtzdGF0dXMudmFsdWV9IGRhdGEtdGVzdGlkPXtgc3RhdHVzLWl0ZW0tJHtzdGF0dXMudmFsdWV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RhdHVzLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1NZXNzYWdlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1JdGVtPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1GaWVsZFxuICAgICAgICAgICAgICAgICAgICBjb250cm9sPXtmb3JtLmNvbnRyb2x9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcj17KHsgZmllbGQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtTGFiZWw+TGFiZWw8L0Zvcm1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0IG9uVmFsdWVDaGFuZ2U9e2ZpZWxkLm9uQ2hhbmdlfSBkZWZhdWx0VmFsdWU9e2ZpZWxkLnZhbHVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1Db250cm9sIGRhdGEtdGVzdGlkPVwidGFzay1mb3JtLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VmFsdWUgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBsYWJlbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsYWJlbHM/Lm1hcCgobGFiZWw6IExhYmVsKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIGtleT17bGFiZWwudmFsdWV9IHZhbHVlPXtsYWJlbC52YWx1ZX0gZGF0YS10ZXN0aWQ9e2BsYWJlbC1pdGVtLSR7bGFiZWwudmFsdWV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWwubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0R3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybU1lc3NhZ2UgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybUZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2w9e2Zvcm0uY29udHJvbH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoeyBmaWVsZCB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1MYWJlbD5Qcmlvcml0eTwvRm9ybUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3Qgb25WYWx1ZUNoYW5nZT17ZmllbGQub25DaGFuZ2V9IGRlZmF1bHRWYWx1ZT17ZmllbGQudmFsdWV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2wgZGF0YS10ZXN0aWQ9XCJ0YXNrLWZvcm0tcHJpb3JpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RWYWx1ZSBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIHByaW9yaXR5XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtQ29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0R3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ByaW9yaXRpZXM/Lm1hcCgocHJpb3JpdHk6IFByaW9yaXR5KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIGtleT17cHJpb3JpdHkudmFsdWV9IHZhbHVlPXtwcmlvcml0eS52YWx1ZX0gZGF0YS10ZXN0aWQ9e2Bwcmlvcml0eS1pdGVtLSR7cHJpb3JpdHkudmFsdWV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJpb3JpdHkubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0R3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybU1lc3NhZ2UgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Qm94IGRpc3BsYXk9J2ZsZXgnIGp1c3RpZnlDb250ZW50PSdlbmQnPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGRhdGEtdGVzdGlkPSd0YXNrLWZvcm0tc3VibWl0LWJ1dHRvbicgdHlwZT1cInN1Ym1pdFwiPlNhdmUgVGFzazwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L0Zvcm0+XG4gICAgKVxufSJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUZvcm0iLCJ0YXNrU2NoZW1hIiwiem9kUmVzb2x2ZXIiLCJGb3JtIiwiRm9ybUNvbnRyb2wiLCJGb3JtRmllbGQiLCJGb3JtSXRlbSIsIkZvcm1MYWJlbCIsIkZvcm1NZXNzYWdlIiwiSW5wdXQiLCJCdXR0b24iLCJTZWxlY3QiLCJTZWxlY3RDb250ZW50IiwiU2VsZWN0R3JvdXAiLCJTZWxlY3RJdGVtIiwiU2VsZWN0VHJpZ2dlciIsIlNlbGVjdFZhbHVlIiwiQm94IiwidG9hc3QiLCJ1c2VEaXNwYXRjaCIsImFkZFRhc2siLCJtb2RpZnlUYXNrIiwidXNlQXBwU2VsZWN0b3IiLCJzZWxlY3RMYWJlbHMiLCJzZWxlY3RQcmlvcml0aWVzIiwic2VsZWN0U3RhdHVzZXMiLCJhZGRUYXNrQXBpIiwidXBkYXRlVGFza0FwaSIsIlRhc2tGb3JtIiwiZGVmYXVsdFZhbHVlcyIsIm1vZGUiLCJvbk9wZW5DaGFuZ2UiLCJkaXNwYXRjaCIsImZvcm0iLCJyZXNvbHZlciIsImxhYmVscyIsInN0YXR1c2VzIiwicHJpb3JpdGllcyIsIm9uU3VibWl0IiwidmFsdWVzIiwidGFzayIsIl9pZCIsIkVycm9yIiwiZXJyb3IiLCJjb25zb2xlIiwiaGFuZGxlU3VibWl0IiwiY2xhc3NOYW1lIiwiY29udHJvbCIsIm5hbWUiLCJyZW5kZXIiLCJmaWVsZCIsInBsYWNlaG9sZGVyIiwiZGF0YS10ZXN0aWQiLCJvblZhbHVlQ2hhbmdlIiwib25DaGFuZ2UiLCJkZWZhdWx0VmFsdWUiLCJ2YWx1ZSIsIm1hcCIsInN0YXR1cyIsImxhYmVsIiwicHJpb3JpdHkiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJ0eXBlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/TaskForm/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/frontbuild/UserNav/index.tsx": /*!*************************************************!*\ !*** ./components/frontbuild/UserNav/index.tsx ***! \*************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ UserNav: () => (/* binding */ UserNav)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _components_ui_avatar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/avatar */ \"(app-pages-browser)/./components/ui/avatar.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n\nvar _s = $RefreshSig$();\n\n\n\n\nconst UserNav = ()=>{\n _s();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_4__.useRouter)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n className: \"relative h-8 w-8 rounded-full\",\n \"data-testid\": \"user-nav-trigger\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_1__.Avatar, {\n className: \"h-9 w-9\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_1__.AvatarFallback, {\n children: \"HZ\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 25,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 24,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 23,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 22,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuContent, {\n className: \"w-56\",\n align: \"end\",\n forceMount: true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuLabel, {\n className: \"font-normal\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium leading-none\",\n children: \"hectorz\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 32,\n columnNumber: 25\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs leading-none text-muted-foreground\",\n children: \"zea3471@gmail.com\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 33,\n columnNumber: 25\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 31,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 30,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 38,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuGroup, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n \"data-testid\": 'profile-navigation-button',\n onClick: ()=>{\n router.push('/profile');\n },\n children: [\n \"Profile\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuShortcut, {\n children: \"⇧⌘P\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 42,\n columnNumber: 25\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 40,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 39,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 45,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n children: [\n \"Log out\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuShortcut, {\n children: \"⇧⌘Q\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 48,\n columnNumber: 21\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 29,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/frontbuild/UserNav/index.tsx\",\n lineNumber: 21,\n columnNumber: 9\n }, undefined);\n};\n_s(UserNav, \"fN7XvhJ+p5oE6+Xlo0NJmXpxjC8=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_4__.useRouter\n ];\n});\n_c = UserNav;\nvar _c;\n$RefreshReg$(_c, \"UserNav\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZnJvbnRidWlsZC9Vc2VyTmF2L2luZGV4LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUcrQjtBQUNnQjtBQVVUO0FBQ0s7QUFFcEMsTUFBTVksVUFBb0I7O0lBQzdCLE1BQU1DLFNBQVNGLDBEQUFTQTtJQUN4QixxQkFDSSw4REFBQ1Isc0VBQVlBOzswQkFDVCw4REFBQ08sNkVBQW1CQTtnQkFBQ0ksT0FBTzswQkFDeEIsNEVBQUNaLHlEQUFNQTtvQkFBQ2EsU0FBUTtvQkFBUUMsV0FBVTtvQkFBZ0NDLGVBQVk7OEJBQzFFLDRFQUFDakIseURBQU1BO3dCQUFDZ0IsV0FBVTtrQ0FDZCw0RUFBQ2YsaUVBQWNBO3NDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBSTVCLDhEQUFDRyw2RUFBbUJBO2dCQUFDWSxXQUFVO2dCQUFPRSxPQUFNO2dCQUFNQyxVQUFVOztrQ0FDeEQsOERBQUNaLDJFQUFpQkE7d0JBQUNTLFdBQVU7a0NBQ3pCLDRFQUFDSTs0QkFBSUosV0FBVTs7OENBQ1gsOERBQUNLO29DQUFFTCxXQUFVOzhDQUFtQzs7Ozs7OzhDQUNoRCw4REFBQ0s7b0NBQUVMLFdBQVU7OENBQTZDOzs7Ozs7Ozs7Ozs7Ozs7OztrQ0FLbEUsOERBQUNSLCtFQUFxQkE7Ozs7O2tDQUN0Qiw4REFBQ0gsMkVBQWlCQTtrQ0FDZCw0RUFBQ0MsMEVBQWdCQTs0QkFBQ1csZUFBYTs0QkFBNkJLLFNBQVM7Z0NBQVFULE9BQU9VLElBQUksQ0FBQzs0QkFBWTs7Z0NBQUc7OENBRXBHLDhEQUFDZCw4RUFBb0JBOzhDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztrQ0FHOUIsOERBQUNELCtFQUFxQkE7Ozs7O2tDQUN0Qiw4REFBQ0YsMEVBQWdCQTs7NEJBQUM7MENBRWQsOERBQUNHLDhFQUFvQkE7MENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUsxQyxFQUFDO0dBbkNZRzs7UUFDTUQsc0RBQVNBOzs7S0FEZkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy9mcm9udGJ1aWxkL1VzZXJOYXYvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXZhdGFyLFxuICAgIEF2YXRhckZhbGxiYWNrLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2F2YXRhclwiXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5pbXBvcnQge1xuICAgIERyb3Bkb3duTWVudSxcbiAgICBEcm9wZG93bk1lbnVDb250ZW50LFxuICAgIERyb3Bkb3duTWVudUdyb3VwLFxuICAgIERyb3Bkb3duTWVudUl0ZW0sXG4gICAgRHJvcGRvd25NZW51TGFiZWwsXG4gICAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICAgIERyb3Bkb3duTWVudVNob3J0Y3V0LFxuICAgIERyb3Bkb3duTWVudVRyaWdnZXIsXG59IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudVwiXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG5cbmV4cG9ydCBjb25zdCBVc2VyTmF2OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgPERyb3Bkb3duTWVudVRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJnaG9zdFwiIGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtOCB3LTggcm91bmRlZC1mdWxsXCIgZGF0YS10ZXN0aWQ9XCJ1c2VyLW5hdi10cmlnZ2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxBdmF0YXIgY2xhc3NOYW1lPVwiaC05IHctOVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEF2YXRhckZhbGxiYWNrPkhaPC9BdmF0YXJGYWxsYmFjaz5cbiAgICAgICAgICAgICAgICAgICAgPC9BdmF0YXI+XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duTWVudVRyaWdnZXI+XG4gICAgICAgICAgICA8RHJvcGRvd25NZW51Q29udGVudCBjbGFzc05hbWU9XCJ3LTU2XCIgYWxpZ249XCJlbmRcIiBmb3JjZU1vdW50PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVMYWJlbCBjbGFzc05hbWU9XCJmb250LW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZVwiPmhlY3Rvcno8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGxlYWRpbmctbm9uZSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ZWEzNDcxQGdtYWlsLmNvbVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUxhYmVsPlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51R3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIGRhdGEtdGVzdGlkPXsncHJvZmlsZS1uYXZpZ2F0aW9uLWJ1dHRvbid9IG9uQ2xpY2s9eygpID0+IHsgcm91dGVyLnB1c2goJy9wcm9maWxlJykgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9maWxlXG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51U2hvcnRjdXQ+4oen4oyYUDwvRHJvcGRvd25NZW51U2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUdyb3VwPlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgTG9nIG91dFxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51U2hvcnRjdXQ+4oen4oyYUTwvRHJvcGRvd25NZW51U2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVJdGVtPlxuICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICApXG59Il0sIm5hbWVzIjpbIkF2YXRhciIsIkF2YXRhckZhbGxiYWNrIiwiQnV0dG9uIiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUdyb3VwIiwiRHJvcGRvd25NZW51SXRlbSIsIkRyb3Bkb3duTWVudUxhYmVsIiwiRHJvcGRvd25NZW51U2VwYXJhdG9yIiwiRHJvcGRvd25NZW51U2hvcnRjdXQiLCJEcm9wZG93bk1lbnVUcmlnZ2VyIiwidXNlUm91dGVyIiwiVXNlck5hdiIsInJvdXRlciIsImFzQ2hpbGQiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwiZGF0YS10ZXN0aWQiLCJhbGlnbiIsImZvcmNlTW91bnQiLCJkaXYiLCJwIiwib25DbGljayIsInB1c2giXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/frontbuild/UserNav/index.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/alert-dialog.tsx": /*!****************************************!*\ !*** ./components/ui/alert-dialog.tsx ***! \****************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogFooter: () => (/* binding */ AlertDialogFooter),\n/* harmony export */ AlertDialogHeader: () => (/* binding */ AlertDialogHeader),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* __next_internal_client_entry_do_not_use__ AlertDialog,AlertDialogPortal,AlertDialogOverlay,AlertDialogTrigger,AlertDialogContent,AlertDialogHeader,AlertDialogFooter,AlertDialogTitle,AlertDialogDescription,AlertDialogAction,AlertDialogCancel auto */ \n\n\n\n\nconst AlertDialog = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Root;\nconst AlertDialogTrigger = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Trigger;\nconst AlertDialogPortal = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Portal;\nconst AlertDialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props,\n ref: ref\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 19,\n columnNumber: 3\n }, undefined);\n});\n_c = AlertDialogOverlay;\nAlertDialogOverlay.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay.displayName;\nconst AlertDialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogOverlay, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 35,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 34,\n columnNumber: 3\n }, undefined);\n});\n_c2 = AlertDialogContent;\nAlertDialogContent.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content.displayName;\nconst AlertDialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-2 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 52,\n columnNumber: 3\n }, undefined);\n};\n_c3 = AlertDialogHeader;\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\nconst AlertDialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 66,\n columnNumber: 3\n }, undefined);\n};\n_c4 = AlertDialogFooter;\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\nconst AlertDialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 80,\n columnNumber: 3\n }, undefined);\n});\n_c6 = AlertDialogTitle;\nAlertDialogTitle.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title.displayName;\nconst AlertDialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 92,\n columnNumber: 3\n }, undefined);\n});\n_c8 = AlertDialogDescription;\nAlertDialogDescription.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description.displayName;\nconst AlertDialogAction = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c9 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)(), className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 105,\n columnNumber: 3\n }, undefined);\n});\n_c10 = AlertDialogAction;\nAlertDialogAction.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action.displayName;\nconst AlertDialogCancel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c11 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)({\n variant: \"outline\"\n }), \"mt-2 sm:mt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/alert-dialog.tsx\",\n lineNumber: 117,\n columnNumber: 3\n }, undefined);\n});\n_c12 = AlertDialogCancel;\nAlertDialogCancel.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n$RefreshReg$(_c, \"AlertDialogOverlay\");\n$RefreshReg$(_c1, \"AlertDialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"AlertDialogContent\");\n$RefreshReg$(_c3, \"AlertDialogHeader\");\n$RefreshReg$(_c4, \"AlertDialogFooter\");\n$RefreshReg$(_c5, \"AlertDialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"AlertDialogTitle\");\n$RefreshReg$(_c7, \"AlertDialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"AlertDialogDescription\");\n$RefreshReg$(_c9, \"AlertDialogAction$React.forwardRef\");\n$RefreshReg$(_c10, \"AlertDialogAction\");\n$RefreshReg$(_c11, \"AlertDialogCancel$React.forwardRef\");\n$RefreshReg$(_c12, \"AlertDialogCancel\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYWxlcnQtZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFDc0M7QUFFcEM7QUFDdUI7QUFFdkQsTUFBTUksY0FBY0gsOERBQXlCO0FBRTdDLE1BQU1LLHFCQUFxQkwsaUVBQTRCO0FBRXZELE1BQU1PLG9CQUFvQlAsZ0VBQTJCO0FBRXJELE1BQU1TLG1DQUFxQlYsNkNBQWdCLENBR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGlFQUE0QjtRQUMzQlksV0FBV1gsOENBQUVBLENBQ1gsMEpBQ0FXO1FBRUQsR0FBR0MsS0FBSztRQUNURixLQUFLQTs7Ozs7OztLQVZIRjtBQWFOQSxtQkFBbUJNLFdBQVcsR0FBR2YsaUVBQTRCLENBQUNlLFdBQVc7QUFFekUsTUFBTUMsbUNBQXFCakIsNkNBQWdCLE9BR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNOOzswQkFDQyw4REFBQ0U7Ozs7OzBCQUNELDhEQUFDVCxpRUFBNEI7Z0JBQzNCVyxLQUFLQTtnQkFDTEMsV0FBV1gsOENBQUVBLENBQ1gsK2ZBQ0FXO2dCQUVELEdBQUdDLEtBQUs7Ozs7Ozs7Ozs7Ozs7O0FBSWZHLG1CQUFtQkQsV0FBVyxHQUFHZixpRUFBNEIsQ0FBQ2UsV0FBVztBQUV6RSxNQUFNRyxvQkFBb0I7UUFBQyxFQUN6Qk4sU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsb0RBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQSztBQVlOQSxrQkFBa0JILFdBQVcsR0FBRztBQUVoQyxNQUFNSyxvQkFBb0I7UUFBQyxFQUN6QlIsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsaUVBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQTztBQVlOQSxrQkFBa0JMLFdBQVcsR0FBRztBQUVoQyxNQUFNTSxpQ0FBbUJ0Qiw2Q0FBZ0IsT0FHdkMsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IsK0RBQTBCO1FBQ3pCVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyx5QkFBeUJXO1FBQ3RDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHZiwrREFBMEIsQ0FBQ2UsV0FBVztBQUVyRSxNQUFNUSx1Q0FBeUJ4Qiw2Q0FBZ0IsT0FHN0MsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IscUVBQWdDO1FBQy9CVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyxpQ0FBaUNXO1FBQzlDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JVLHVCQUF1QlIsV0FBVyxHQUNoQ2YscUVBQWdDLENBQUNlLFdBQVc7QUFFOUMsTUFBTVUsa0NBQW9CMUIsNkNBQWdCLE9BR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQUNDLHFFQUFjQSxJQUFJVTtRQUMvQixHQUFHQyxLQUFLOzs7Ozs7OztBQUdiWSxrQkFBa0JWLFdBQVcsR0FBR2YsZ0VBQTJCLENBQUNlLFdBQVc7QUFFdkUsTUFBTVksa0NBQW9CNUIsNkNBQWdCLFFBR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQ1hDLHFFQUFjQSxDQUFDO1lBQUUyQixTQUFTO1FBQVUsSUFDcEMsZ0JBQ0FqQjtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JjLGtCQUFrQlosV0FBVyxHQUFHZixnRUFBMkIsQ0FBQ2UsV0FBVztBQWN0RSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2FsZXJ0LWRpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIEFsZXJ0RGlhbG9nUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgYnV0dG9uVmFyaWFudHMgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5cbmNvbnN0IEFsZXJ0RGlhbG9nID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUm9vdFxuXG5jb25zdCBBbGVydERpYWxvZ1RyaWdnZXIgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IEFsZXJ0RGlhbG9nUG9ydGFsID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUG9ydGFsXG5cbmNvbnN0IEFsZXJ0RGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgICByZWY9e3JlZn1cbiAgLz5cbikpXG5BbGVydERpYWxvZ092ZXJsYXkuZGlzcGxheU5hbWUgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5LmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1BvcnRhbD5cbiAgICA8QWxlcnREaWFsb2dPdmVybGF5IC8+XG4gICAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJmaXhlZCBsZWZ0LVs1MCVdIHRvcC1bNTAlXSB6LTUwIGdyaWQgdy1mdWxsIG1heC13LWxnIHRyYW5zbGF0ZS14LVstNTAlXSB0cmFuc2xhdGUteS1bLTUwJV0gZ2FwLTQgYm9yZGVyIGJnLWJhY2tncm91bmQgcC02IHNoYWRvdy1sZyBkdXJhdGlvbi0yMDAgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1vcGVuXTpmYWRlLWluLTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NSBkYXRhLVtzdGF0ZT1vcGVuXTp6b29tLWluLTk1IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWxlZnQtMS8yIGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLXRvcC1bNDglXSBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLWxlZnQtMS8yIGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tdG9wLVs0OCVdIHNtOnJvdW5kZWQtbGdcIixcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvQWxlcnREaWFsb2dQb3J0YWw+XG4pKVxuQWxlcnREaWFsb2dDb250ZW50LmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5jb25zdCBBbGVydERpYWxvZ0hlYWRlciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTIgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkFsZXJ0RGlhbG9nSGVhZGVyLmRpc3BsYXlOYW1lID0gXCJBbGVydERpYWxvZ0hlYWRlclwiXG5cbmNvbnN0IEFsZXJ0RGlhbG9nRm9vdGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGZsZXgtY29sLXJldmVyc2Ugc206ZmxleC1yb3cgc206anVzdGlmeS1lbmQgc206c3BhY2UteC0yXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkFsZXJ0RGlhbG9nRm9vdGVyLmRpc3BsYXlOYW1lID0gXCJBbGVydERpYWxvZ0Zvb3RlclwiXG5cbmNvbnN0IEFsZXJ0RGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuVGl0bGU+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IEFsZXJ0RGlhbG9nUHJpbWl0aXZlLlRpdGxlLmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvblxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BbGVydERpYWxvZ0Rlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID1cbiAgQWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24uZGlzcGxheU5hbWVcblxuY29uc3QgQWxlcnREaWFsb2dBY3Rpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkFjdGlvbj5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkFjdGlvblxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oYnV0dG9uVmFyaWFudHMoKSwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dBY3Rpb24uZGlzcGxheU5hbWUgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24uZGlzcGxheU5hbWVcblxuY29uc3QgQWxlcnREaWFsb2dDYW5jZWwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWw+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNhbmNlbD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNhbmNlbFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBidXR0b25WYXJpYW50cyh7IHZhcmlhbnQ6IFwib3V0bGluZVwiIH0pLFxuICAgICAgXCJtdC0yIHNtOm10LTBcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGlhbG9nQ2FuY2VsLmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuQ2FuY2VsLmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7XG4gIEFsZXJ0RGlhbG9nLFxuICBBbGVydERpYWxvZ1BvcnRhbCxcbiAgQWxlcnREaWFsb2dPdmVybGF5LFxuICBBbGVydERpYWxvZ1RyaWdnZXIsXG4gIEFsZXJ0RGlhbG9nQ29udGVudCxcbiAgQWxlcnREaWFsb2dIZWFkZXIsXG4gIEFsZXJ0RGlhbG9nRm9vdGVyLFxuICBBbGVydERpYWxvZ1RpdGxlLFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uLFxuICBBbGVydERpYWxvZ0FjdGlvbixcbiAgQWxlcnREaWFsb2dDYW5jZWwsXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJBbGVydERpYWxvZ1ByaW1pdGl2ZSIsImNuIiwiYnV0dG9uVmFyaWFudHMiLCJBbGVydERpYWxvZyIsIlJvb3QiLCJBbGVydERpYWxvZ1RyaWdnZXIiLCJUcmlnZ2VyIiwiQWxlcnREaWFsb2dQb3J0YWwiLCJQb3J0YWwiLCJBbGVydERpYWxvZ092ZXJsYXkiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJPdmVybGF5IiwiZGlzcGxheU5hbWUiLCJBbGVydERpYWxvZ0NvbnRlbnQiLCJDb250ZW50IiwiQWxlcnREaWFsb2dIZWFkZXIiLCJkaXYiLCJBbGVydERpYWxvZ0Zvb3RlciIsIkFsZXJ0RGlhbG9nVGl0bGUiLCJUaXRsZSIsIkFsZXJ0RGlhbG9nRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nQWN0aW9uIiwiQWN0aW9uIiwiQWxlcnREaWFsb2dDYW5jZWwiLCJDYW5jZWwiLCJ2YXJpYW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/alert-dialog.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/avatar.tsx": /*!**********************************!*\ !*** ./components/ui/avatar.tsx ***! \**********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarFallback: () => (/* binding */ AvatarFallback),\n/* harmony export */ AvatarImage: () => (/* binding */ AvatarImage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-avatar */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Avatar,AvatarImage,AvatarFallback auto */ \n\n\n\nconst Avatar = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/avatar.tsx\",\n lineNumber: 12,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Avatar;\nAvatar.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\nconst AvatarImage = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"aspect-square h-full w-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/avatar.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c3 = AvatarImage;\nAvatarImage.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image.displayName;\nconst AvatarFallback = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-full w-full items-center justify-center rounded-full bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/avatar.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c5 = AvatarFallback;\nAvatarFallback.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Avatar$React.forwardRef\");\n$RefreshReg$(_c1, \"Avatar\");\n$RefreshReg$(_c2, \"AvatarImage$React.forwardRef\");\n$RefreshReg$(_c3, \"AvatarImage\");\n$RefreshReg$(_c4, \"AvatarFallback$React.forwardRef\");\n$RefreshReg$(_c5, \"AvatarFallback\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYXZhdGFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFOEI7QUFDMkI7QUFFekI7QUFFaEMsTUFBTUcsdUJBQVNILDZDQUFnQixNQUc3QixRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix3REFBb0I7UUFDbkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLGlFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLE9BQU9NLFdBQVcsR0FBR1Isd0RBQW9CLENBQUNRLFdBQVc7QUFFckQsTUFBTUMsNEJBQWNWLDZDQUFnQixPQUdsQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix5REFBcUI7UUFDcEJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLCtCQUErQkk7UUFDNUMsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkcsWUFBWUQsV0FBVyxHQUFHUix5REFBcUIsQ0FBQ1EsV0FBVztBQUUzRCxNQUFNRywrQkFBaUJaLDZDQUFnQixPQUdyQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTiw0REFBd0I7UUFDdkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLHdFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JLLGVBQWVILFdBQVcsR0FBR1IsNERBQXdCLENBQUNRLFdBQVc7QUFFbkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy91aS9hdmF0YXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBBdmF0YXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1hdmF0YXJcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IEF2YXRhciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuUm9vdD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBoLTEwIHctMTAgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFyLmRpc3BsYXlOYW1lID0gQXZhdGFyUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFySW1hZ2UgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuSW1hZ2U+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5JbWFnZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5JbWFnZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJhc3BlY3Qtc3F1YXJlIGgtZnVsbCB3LWZ1bGxcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFySW1hZ2UuZGlzcGxheU5hbWUgPSBBdmF0YXJQcmltaXRpdmUuSW1hZ2UuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFyRmFsbGJhY2sgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuRmFsbGJhY2s+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjaz5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5GYWxsYmFja1xuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLW11dGVkXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BdmF0YXJGYWxsYmFjay5kaXNwbGF5TmFtZSA9IEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjay5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBBdmF0YXIsIEF2YXRhckltYWdlLCBBdmF0YXJGYWxsYmFjayB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJBdmF0YXJQcmltaXRpdmUiLCJjbiIsIkF2YXRhciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsIlJvb3QiLCJkaXNwbGF5TmFtZSIsIkF2YXRhckltYWdlIiwiSW1hZ2UiLCJBdmF0YXJGYWxsYmFjayIsIkZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/avatar.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/badge.tsx": /*!*********************************!*\ !*** ./components/ui/badge.tsx ***! \*********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Badge: () => (/* binding */ Badge),\n/* harmony export */ badgeVariants: () => (/* binding */ badgeVariants)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\nconst badgeVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\", {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n \"epic\": \"border-transparent bg-violet-600 text-violet-600-foreground shadow hover:bg-violet-400\",\n \"tech-debt\": \"border-transparent bg-gray-600 text-gray-600-foreground shadow hover:bg-gray-400\",\n \"feature\": \"border-transparent bg-cyan-600 text-cyan-600-foreground shadow hover:bg-cyan-400\",\n \"bug\": \"border-transparent bg-red-600 text-red-600-foreground shadow hover:bg-red-400\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\nfunction Badge(param) {\n let { className, variant, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(badgeVariants({\n variant\n }), className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/badge.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n_c = Badge;\n\nvar _c;\n$RefreshReg$(_c, \"Badge\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYmFkZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCO0FBQ21DO0FBRWpDO0FBRWhDLE1BQU1HLGdCQUFnQkYsNkRBQUdBLENBQ3ZCLHdLQUNBO0lBQ0VHLFVBQVU7UUFDUkMsU0FBUztZQUNQQyxTQUNFO1lBQ0ZDLFdBQ0U7WUFDRkMsYUFDRTtZQUNGQyxTQUFTO1lBQ1QsUUFBUTtZQUNSLGFBQVk7WUFDWixXQUFVO1lBQ1YsT0FBTTtRQUNSO0lBQ0Y7SUFDQUMsaUJBQWlCO1FBQ2ZMLFNBQVM7SUFDWDtBQUNGO0FBU0YsU0FBU00sTUFBTSxLQUE0QztRQUE1QyxFQUFFQyxTQUFTLEVBQUVQLE9BQU8sRUFBRSxHQUFHUSxPQUFtQixHQUE1QztJQUNiLHFCQUNFLDhEQUFDQztRQUFJRixXQUFXViw4Q0FBRUEsQ0FBQ0MsY0FBYztZQUFFRTtRQUFRLElBQUlPO1FBQWEsR0FBR0MsS0FBSzs7Ozs7O0FBRXhFO0tBSlNGO0FBTXNCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvdWkvYmFkZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgYmFkZ2VWYXJpYW50cyA9IGN2YShcbiAgXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgcHgtMi41IHB5LTAuNSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLXJpbmcgZm9jdXM6cmluZy1vZmZzZXQtMlwiLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBcImJvcmRlci10cmFuc3BhcmVudCBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIHNoYWRvdyBob3ZlcjpiZy1wcmltYXJ5LzgwXCIsXG4gICAgICAgIHNlY29uZGFyeTpcbiAgICAgICAgICBcImJvcmRlci10cmFuc3BhcmVudCBiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1zZWNvbmRhcnkvODBcIixcbiAgICAgICAgZGVzdHJ1Y3RpdmU6XG4gICAgICAgICAgXCJib3JkZXItdHJhbnNwYXJlbnQgYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kIHNoYWRvdyBob3ZlcjpiZy1kZXN0cnVjdGl2ZS84MFwiLFxuICAgICAgICBvdXRsaW5lOiBcInRleHQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBcImVwaWNcIjogXCJib3JkZXItdHJhbnNwYXJlbnQgYmctdmlvbGV0LTYwMCB0ZXh0LXZpb2xldC02MDAtZm9yZWdyb3VuZCBzaGFkb3cgaG92ZXI6YmctdmlvbGV0LTQwMFwiLFxuICAgICAgICBcInRlY2gtZGVidFwiOlwiYm9yZGVyLXRyYW5zcGFyZW50IGJnLWdyYXktNjAwIHRleHQtZ3JheS02MDAtZm9yZWdyb3VuZCBzaGFkb3cgaG92ZXI6YmctZ3JheS00MDBcIixcbiAgICAgICAgXCJmZWF0dXJlXCI6XCJib3JkZXItdHJhbnNwYXJlbnQgYmctY3lhbi02MDAgdGV4dC1jeWFuLTYwMC1mb3JlZ3JvdW5kIHNoYWRvdyBob3ZlcjpiZy1jeWFuLTQwMFwiLFxuICAgICAgICBcImJ1Z1wiOlwiYm9yZGVyLXRyYW5zcGFyZW50IGJnLXJlZC02MDAgdGV4dC1yZWQtNjAwLWZvcmVncm91bmQgc2hhZG93IGhvdmVyOmJnLXJlZC00MDBcIlxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKVxuXG5leHBvcnQgdHlwZSBCYWRnZVZhcmlhbnQgPSBWYXJpYW50UHJvcHM8dHlwZW9mIGJhZGdlVmFyaWFudHM+W1widmFyaWFudFwiXTtcblxuZXhwb3J0IGludGVyZmFjZSBCYWRnZVByb3BzXG4gIGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+LFxuICBWYXJpYW50UHJvcHM8dHlwZW9mIGJhZGdlVmFyaWFudHM+IHsgfVxuXG5mdW5jdGlvbiBCYWRnZSh7IGNsYXNzTmFtZSwgdmFyaWFudCwgLi4ucHJvcHMgfTogQmFkZ2VQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbihiYWRnZVZhcmlhbnRzKHsgdmFyaWFudCB9KSwgY2xhc3NOYW1lKX0gey4uLnByb3BzfSAvPlxuICApXG59XG5cbmV4cG9ydCB7IEJhZGdlLCBiYWRnZVZhcmlhbnRzIH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImN2YSIsImNuIiwiYmFkZ2VWYXJpYW50cyIsInZhcmlhbnRzIiwidmFyaWFudCIsImRlZmF1bHQiLCJzZWNvbmRhcnkiLCJkZXN0cnVjdGl2ZSIsIm91dGxpbmUiLCJkZWZhdWx0VmFyaWFudHMiLCJCYWRnZSIsImNsYXNzTmFtZSIsInByb3BzIiwiZGl2Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/badge.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/button.tsx": /*!**********************************!*\ !*** ./components/ui/button.tsx ***! \**********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Button: () => (/* binding */ Button),\n/* harmony export */ buttonVariants: () => (/* binding */ buttonVariants)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\n\nconst buttonVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline: \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nconst Button = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, size, asChild = false, ...props } = param;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot : \"button\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Comp, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(buttonVariants({\n variant,\n size,\n className\n })),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/button.tsx\",\n lineNumber: 47,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Button;\nButton.displayName = \"Button\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Button$React.forwardRef\");\n$RefreshReg$(_c1, \"Button\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYnV0dG9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEI7QUFDYTtBQUNzQjtBQUVqQztBQUVoQyxNQUFNSSxpQkFBaUJGLDZEQUFHQSxDQUN4Qix5U0FDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FDRTtZQUNGQyxhQUNFO1lBQ0ZDLFNBQ0U7WUFDRkMsV0FDRTtZQUNGQyxPQUFPO1lBQ1BDLE1BQU07UUFDUjtRQUNBQyxNQUFNO1lBQ0pOLFNBQVM7WUFDVE8sSUFBSTtZQUNKQyxJQUFJO1lBQ0pDLE1BQU07UUFDUjtJQUNGO0lBQ0FDLGlCQUFpQjtRQUNmWCxTQUFTO1FBQ1RPLE1BQU07SUFDUjtBQUNGO0FBU0YsTUFBTUssdUJBQVNsQiw2Q0FBZ0IsTUFDN0IsUUFBMERvQjtRQUF6RCxFQUFFQyxTQUFTLEVBQUVmLE9BQU8sRUFBRU8sSUFBSSxFQUFFUyxVQUFVLEtBQUssRUFBRSxHQUFHQyxPQUFPO0lBQ3RELE1BQU1DLE9BQU9GLFVBQVVyQixzREFBSUEsR0FBRztJQUM5QixxQkFDRSw4REFBQ3VCO1FBQ0NILFdBQVdsQiw4Q0FBRUEsQ0FBQ0MsZUFBZTtZQUFFRTtZQUFTTztZQUFNUTtRQUFVO1FBQ3hERCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxPQUFPTyxXQUFXLEdBQUc7QUFFWSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2J1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIlxuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gXCJjbGFzcy12YXJpYW5jZS1hdXRob3JpdHlcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IGJ1dHRvblZhcmlhbnRzID0gY3ZhKFxuICBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTEgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIFsmX3N2Z106cG9pbnRlci1ldmVudHMtbm9uZSBbJl9zdmddOnNpemUtNCBbJl9zdmddOnNocmluay0wXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIFwiYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBzaGFkb3cgaG92ZXI6YmctcHJpbWFyeS85MFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTpcbiAgICAgICAgICBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBzaGFkb3ctc20gaG92ZXI6YmctZGVzdHJ1Y3RpdmUvOTBcIixcbiAgICAgICAgb3V0bGluZTpcbiAgICAgICAgICBcImJvcmRlciBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBzaGFkb3ctc20gaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmRcIixcbiAgICAgICAgc2Vjb25kYXJ5OlxuICAgICAgICAgIFwiYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgc2hhZG93LXNtIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInRleHQtcHJpbWFyeSB1bmRlcmxpbmUtb2Zmc2V0LTQgaG92ZXI6dW5kZXJsaW5lXCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtOSBweC00IHB5LTJcIixcbiAgICAgICAgc206IFwiaC04IHJvdW5kZWQtbWQgcHgtMyB0ZXh0LXhzXCIsXG4gICAgICAgIGxnOiBcImgtMTAgcm91bmRlZC1tZCBweC04XCIsXG4gICAgICAgIGljb246IFwiaC05IHctOVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgICBzaXplOiBcImRlZmF1bHRcIixcbiAgICB9LFxuICB9XG4pXG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uUHJvcHNcbiAgZXh0ZW5kcyBSZWFjdC5CdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4sXG4gICAgVmFyaWFudFByb3BzPHR5cGVvZiBidXR0b25WYXJpYW50cz4ge1xuICBhc0NoaWxkPzogYm9vbGVhblxufVxuXG5jb25zdCBCdXR0b24gPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxCdXR0b25FbGVtZW50LCBCdXR0b25Qcm9wcz4oXG4gICh7IGNsYXNzTmFtZSwgdmFyaWFudCwgc2l6ZSwgYXNDaGlsZCA9IGZhbHNlLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCBDb21wID0gYXNDaGlsZCA/IFNsb3QgOiBcImJ1dHRvblwiXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb21wXG4gICAgICAgIGNsYXNzTmFtZT17Y24oYnV0dG9uVmFyaWFudHMoeyB2YXJpYW50LCBzaXplLCBjbGFzc05hbWUgfSkpfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcbkJ1dHRvbi5kaXNwbGF5TmFtZSA9IFwiQnV0dG9uXCJcblxuZXhwb3J0IHsgQnV0dG9uLCBidXR0b25WYXJpYW50cyB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTbG90IiwiY3ZhIiwiY24iLCJidXR0b25WYXJpYW50cyIsInZhcmlhbnRzIiwidmFyaWFudCIsImRlZmF1bHQiLCJkZXN0cnVjdGl2ZSIsIm91dGxpbmUiLCJzZWNvbmRhcnkiLCJnaG9zdCIsImxpbmsiLCJzaXplIiwic20iLCJsZyIsImljb24iLCJkZWZhdWx0VmFyaWFudHMiLCJCdXR0b24iLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwiYXNDaGlsZCIsInByb3BzIiwiQ29tcCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/button.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/checkbox.tsx": /*!************************************!*\ !*** ./components/ui/checkbox.tsx ***! \************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: () => (/* binding */ Checkbox)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-checkbox */ \"(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Checkbox auto */ \n\n\n\n\nconst Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Indicator, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center justify-center text-current\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/checkbox.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/checkbox.tsx\",\n lineNumber: 19,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/checkbox.tsx\",\n lineNumber: 11,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Checkbox;\nCheckbox.displayName = _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQzhCO0FBQytCO0FBQ3pCO0FBQ0o7QUFFaEMsTUFBTUkseUJBQVdKLDZDQUFnQixNQUcvQixRQUEwQk07UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUCwwREFBc0I7UUFDckJLLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLHNRQUNBSTtRQUVELEdBQUdDLEtBQUs7a0JBRVQsNEVBQUNQLCtEQUEyQjtZQUMxQk0sV0FBV0osOENBQUVBLENBQUM7c0JBRWQsNEVBQUNELGlGQUFLQTtnQkFBQ0ssV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSXZCSCxTQUFTTyxXQUFXLEdBQUdWLDBEQUFzQixDQUFDVSxXQUFXO0FBRXRDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgQ2hlY2tib3hQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jaGVja2JveFwiXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuXG5jb25zdCBDaGVja2JveCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIENoZWNrYm94UHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxDaGVja2JveFByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicGVlciBoLTQgdy00IHNocmluay0wIHJvdW5kZWQtc20gYm9yZGVyIGJvcmRlci1wcmltYXJ5IHNoYWRvdyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMSBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkYXRhLVtzdGF0ZT1jaGVja2VkXTpiZy1wcmltYXJ5IGRhdGEtW3N0YXRlPWNoZWNrZWRdOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxDaGVja2JveFByaW1pdGl2ZS5JbmRpY2F0b3JcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWN1cnJlbnRcIil9XG4gICAgPlxuICAgICAgPENoZWNrIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgIDwvQ2hlY2tib3hQcmltaXRpdmUuSW5kaWNhdG9yPlxuICA8L0NoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XG4pKVxuQ2hlY2tib3guZGlzcGxheU5hbWUgPSBDaGVja2JveFByaW1pdGl2ZS5Sb290LmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7IENoZWNrYm94IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNoZWNrYm94UHJpbWl0aXZlIiwiQ2hlY2siLCJjbiIsIkNoZWNrYm94IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsIkluZGljYXRvciIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/checkbox.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/command.tsx": /*!***********************************!*\ !*** ./components/ui/command.tsx ***! \***********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Command: () => (/* binding */ Command),\n/* harmony export */ CommandDialog: () => (/* binding */ CommandDialog),\n/* harmony export */ CommandEmpty: () => (/* binding */ CommandEmpty),\n/* harmony export */ CommandGroup: () => (/* binding */ CommandGroup),\n/* harmony export */ CommandInput: () => (/* binding */ CommandInput),\n/* harmony export */ CommandItem: () => (/* binding */ CommandItem),\n/* harmony export */ CommandList: () => (/* binding */ CommandList),\n/* harmony export */ CommandSeparator: () => (/* binding */ CommandSeparator),\n/* harmony export */ CommandShortcut: () => (/* binding */ CommandShortcut)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var cmdk__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cmdk */ \"(app-pages-browser)/./node_modules/cmdk/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Search_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Search!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./components/ui/dialog.tsx\");\n/* __next_internal_client_entry_do_not_use__ Command,CommandDialog,CommandInput,CommandList,CommandEmpty,CommandGroup,CommandItem,CommandShortcut,CommandSeparator auto */ \n\n\n\n\n\nconst Command = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 15,\n columnNumber: 3\n }, undefined);\n});\n_c = Command;\nCommand.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.displayName;\nconst CommandDialog = (param)=>{\n let { children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_3__.Dialog, {\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_3__.DialogContent, {\n className: \"overflow-hidden p-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Command, {\n className: \"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 30,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 29,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 28,\n columnNumber: 5\n }, undefined);\n};\n_c1 = CommandDialog;\nconst CommandInput = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center border-b px-3\",\n \"cmdk-input-wrapper\": \"\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Search_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"mr-2 h-4 w-4 shrink-0 opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 43,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Input, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 44,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 42,\n columnNumber: 3\n }, undefined);\n});\n_c3 = CommandInput;\nCommandInput.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Input.displayName;\nconst CommandList = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.List, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 61,\n columnNumber: 3\n }, undefined);\n});\n_c5 = CommandList;\nCommandList.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.List.displayName;\nconst CommandEmpty = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (props, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Empty, {\n ref: ref,\n className: \"py-6 text-center text-sm\",\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 74,\n columnNumber: 3\n }, undefined));\n_c7 = CommandEmpty;\nCommandEmpty.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Empty.displayName;\nconst CommandGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Group, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 87,\n columnNumber: 3\n }, undefined);\n});\n_c9 = CommandGroup;\nCommandGroup.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Group.displayName;\nconst CommandSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Separator, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"-mx-1 h-px bg-border\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 103,\n columnNumber: 3\n }, undefined);\n});\n_c11 = CommandSeparator;\nCommandSeparator.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Separator.displayName;\nconst CommandItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c12 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Item, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 115,\n columnNumber: 3\n }, undefined);\n});\n_c13 = CommandItem;\nCommandItem.displayName = cmdk__WEBPACK_IMPORTED_MODULE_4__.Command.Item.displayName;\nconst CommandShortcut = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"ml-auto text-xs tracking-widest text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/command.tsx\",\n lineNumber: 132,\n columnNumber: 5\n }, undefined);\n};\n_c14 = CommandShortcut;\nCommandShortcut.displayName = \"CommandShortcut\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14;\n$RefreshReg$(_c, \"Command\");\n$RefreshReg$(_c1, \"CommandDialog\");\n$RefreshReg$(_c2, \"CommandInput$React.forwardRef\");\n$RefreshReg$(_c3, \"CommandInput\");\n$RefreshReg$(_c4, \"CommandList$React.forwardRef\");\n$RefreshReg$(_c5, \"CommandList\");\n$RefreshReg$(_c6, \"CommandEmpty$React.forwardRef\");\n$RefreshReg$(_c7, \"CommandEmpty\");\n$RefreshReg$(_c8, \"CommandGroup$React.forwardRef\");\n$RefreshReg$(_c9, \"CommandGroup\");\n$RefreshReg$(_c10, \"CommandSeparator$React.forwardRef\");\n$RefreshReg$(_c11, \"CommandSeparator\");\n$RefreshReg$(_c12, \"CommandItem$React.forwardRef\");\n$RefreshReg$(_c13, \"CommandItem\");\n$RefreshReg$(_c14, \"CommandShortcut\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY29tbWFuZC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFFb0I7QUFDYjtBQUVMO0FBQzhCO0FBRTlELE1BQU1DLHdCQUFVRCw2Q0FBZ0IsQ0FHOUIsUUFBMEJRO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ1IseUNBQWdCQTtRQUNmTSxLQUFLQTtRQUNMQyxXQUFXTCw4Q0FBRUEsQ0FDWCw2RkFDQUs7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7O0tBVlBUO0FBYU5BLFFBQVFVLFdBQVcsR0FBR1QseUNBQWdCQSxDQUFDUyxXQUFXO0FBRWxELE1BQU1DLGdCQUFnQjtRQUFDLEVBQUVDLFFBQVEsRUFBRSxHQUFHSCxPQUFvQjtJQUN4RCxxQkFDRSw4REFBQ0wseURBQU1BO1FBQUUsR0FBR0ssS0FBSztrQkFDZiw0RUFBQ0osZ0VBQWFBO1lBQUNHLFdBQVU7c0JBQ3ZCLDRFQUFDUjtnQkFBUVEsV0FBVTswQkFDaEJJOzs7Ozs7Ozs7Ozs7Ozs7O0FBS1g7TUFWTUQ7QUFZTixNQUFNRSw2QkFBZWQsNkNBQWdCLE9BR25DLFFBQTBCUTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNLO1FBQUlOLFdBQVU7UUFBa0NPLHNCQUFtQjs7MEJBQ2xFLDhEQUFDYixrRkFBTUE7Z0JBQUNNLFdBQVU7Ozs7OzswQkFDbEIsOERBQUNQLHlDQUFnQkEsQ0FBQ2UsS0FBSztnQkFDckJULEtBQUtBO2dCQUNMQyxXQUFXTCw4Q0FBRUEsQ0FDWCwwSkFDQUs7Z0JBRUQsR0FBR0MsS0FBSzs7Ozs7Ozs7Ozs7Ozs7QUFLZkksYUFBYUgsV0FBVyxHQUFHVCx5Q0FBZ0JBLENBQUNlLEtBQUssQ0FBQ04sV0FBVztBQUU3RCxNQUFNTyw0QkFBY2xCLDZDQUFnQixPQUdsQyxRQUEwQlE7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5Q0FBZ0JBLENBQUNpQixJQUFJO1FBQ3BCWCxLQUFLQTtRQUNMQyxXQUFXTCw4Q0FBRUEsQ0FBQyxtREFBbURLO1FBQ2hFLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBSWJRLFlBQVlQLFdBQVcsR0FBR1QseUNBQWdCQSxDQUFDaUIsSUFBSSxDQUFDUixXQUFXO0FBRTNELE1BQU1TLDZCQUFlcEIsNkNBQWdCLE9BR25DLENBQUNVLE9BQU9GLG9CQUNSLDhEQUFDTix5Q0FBZ0JBLENBQUNtQixLQUFLO1FBQ3JCYixLQUFLQTtRQUNMQyxXQUFVO1FBQ1QsR0FBR0MsS0FBSzs7Ozs7OztBQUliVSxhQUFhVCxXQUFXLEdBQUdULHlDQUFnQkEsQ0FBQ21CLEtBQUssQ0FBQ1YsV0FBVztBQUU3RCxNQUFNVyw2QkFBZXRCLDZDQUFnQixPQUduQyxRQUEwQlE7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5Q0FBZ0JBLENBQUNxQixLQUFLO1FBQ3JCZixLQUFLQTtRQUNMQyxXQUFXTCw4Q0FBRUEsQ0FDWCwwTkFDQUs7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7OztBQUliWSxhQUFhWCxXQUFXLEdBQUdULHlDQUFnQkEsQ0FBQ3FCLEtBQUssQ0FBQ1osV0FBVztBQUU3RCxNQUFNYSxpQ0FBbUJ4Qiw2Q0FBZ0IsUUFHdkMsUUFBMEJRO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ1IseUNBQWdCQSxDQUFDdUIsU0FBUztRQUN6QmpCLEtBQUtBO1FBQ0xDLFdBQVdMLDhDQUFFQSxDQUFDLHdCQUF3Qks7UUFDckMsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYmMsaUJBQWlCYixXQUFXLEdBQUdULHlDQUFnQkEsQ0FBQ3VCLFNBQVMsQ0FBQ2QsV0FBVztBQUVyRSxNQUFNZSw0QkFBYzFCLDZDQUFnQixRQUdsQyxRQUEwQlE7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5Q0FBZ0JBLENBQUN5QixJQUFJO1FBQ3BCbkIsS0FBS0E7UUFDTEMsV0FBV0wsOENBQUVBLENBQ1gsMlRBQ0FLO1FBRUQsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFJYmdCLFlBQVlmLFdBQVcsR0FBR1QseUNBQWdCQSxDQUFDeUIsSUFBSSxDQUFDaEIsV0FBVztBQUUzRCxNQUFNaUIsa0JBQWtCO1FBQUMsRUFDdkJuQixTQUFTLEVBQ1QsR0FBR0MsT0FDbUM7SUFDdEMscUJBQ0UsOERBQUNtQjtRQUNDcEIsV0FBV0wsOENBQUVBLENBQ1gseURBQ0FLO1FBRUQsR0FBR0MsS0FBSzs7Ozs7O0FBR2Y7T0FiTWtCO0FBY05BLGdCQUFnQmpCLFdBQVcsR0FBRztBQVk3QiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2NvbW1hbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB0eXBlIERpYWxvZ1Byb3BzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1kaWFsb2dcIlxuaW1wb3J0IHsgQ29tbWFuZCBhcyBDb21tYW5kUHJpbWl0aXZlIH0gZnJvbSBcImNtZGtcIlxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcbmltcG9ydCB7IERpYWxvZywgRGlhbG9nQ29udGVudCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvZGlhbG9nXCJcblxuY29uc3QgQ29tbWFuZCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmU+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmU+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxDb21tYW5kUHJpbWl0aXZlXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZmxleCBoLWZ1bGwgdy1mdWxsIGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJnLXBvcG92ZXIgdGV4dC1wb3BvdmVyLWZvcmVncm91bmRcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkNvbW1hbmQuZGlzcGxheU5hbWUgPSBDb21tYW5kUHJpbWl0aXZlLmRpc3BsYXlOYW1lXG5cbmNvbnN0IENvbW1hbmREaWFsb2cgPSAoeyBjaGlsZHJlbiwgLi4ucHJvcHMgfTogRGlhbG9nUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8RGlhbG9nIHsuLi5wcm9wc30+XG4gICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJvdmVyZmxvdy1oaWRkZW4gcC0wXCI+XG4gICAgICAgIDxDb21tYW5kIGNsYXNzTmFtZT1cIlsmX1tjbWRrLWdyb3VwLWhlYWRpbmddXTpweC0yIFsmX1tjbWRrLWdyb3VwLWhlYWRpbmddXTpmb250LW1lZGl1bSBbJl9bY21kay1ncm91cC1oZWFkaW5nXV06dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIFsmX1tjbWRrLWdyb3VwXTpub3QoW2hpZGRlbl0pX35bY21kay1ncm91cF1dOnB0LTAgWyZfW2NtZGstZ3JvdXBdXTpweC0yIFsmX1tjbWRrLWlucHV0LXdyYXBwZXJdX3N2Z106aC01IFsmX1tjbWRrLWlucHV0LXdyYXBwZXJdX3N2Z106dy01IFsmX1tjbWRrLWlucHV0XV06aC0xMiBbJl9bY21kay1pdGVtXV06cHgtMiBbJl9bY21kay1pdGVtXV06cHktMyBbJl9bY21kay1pdGVtXV9zdmddOmgtNSBbJl9bY21kay1pdGVtXV9zdmddOnctNVwiPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Db21tYW5kPlxuICAgICAgPC9EaWFsb2dDb250ZW50PlxuICAgIDwvRGlhbG9nPlxuICApXG59XG5cbmNvbnN0IENvbW1hbmRJbnB1dCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuSW5wdXQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuSW5wdXQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgcHgtM1wiIGNtZGstaW5wdXQtd3JhcHBlcj1cIlwiPlxuICAgIDxTZWFyY2ggY2xhc3NOYW1lPVwibXItMiBoLTQgdy00IHNocmluay0wIG9wYWNpdHktNTBcIiAvPlxuICAgIDxDb21tYW5kUHJpbWl0aXZlLklucHV0XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZmxleCBoLTEwIHctZnVsbCByb3VuZGVkLW1kIGJnLXRyYW5zcGFyZW50IHB5LTMgdGV4dC1zbSBvdXRsaW5lLW5vbmUgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwXCIsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICA8L2Rpdj5cbikpXG5cbkNvbW1hbmRJbnB1dC5kaXNwbGF5TmFtZSA9IENvbW1hbmRQcmltaXRpdmUuSW5wdXQuZGlzcGxheU5hbWVcblxuY29uc3QgQ29tbWFuZExpc3QgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDb21tYW5kUHJpbWl0aXZlLkxpc3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuTGlzdD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPENvbW1hbmRQcmltaXRpdmUuTGlzdFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJtYXgtaC1bMzAwcHhdIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlblwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5cbkNvbW1hbmRMaXN0LmRpc3BsYXlOYW1lID0gQ29tbWFuZFByaW1pdGl2ZS5MaXN0LmRpc3BsYXlOYW1lXG5cbmNvbnN0IENvbW1hbmRFbXB0eSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuRW1wdHk+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuRW1wdHk+XG4+KChwcm9wcywgcmVmKSA9PiAoXG4gIDxDb21tYW5kUHJpbWl0aXZlLkVtcHR5XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPVwicHktNiB0ZXh0LWNlbnRlciB0ZXh0LXNtXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuXG5Db21tYW5kRW1wdHkuZGlzcGxheU5hbWUgPSBDb21tYW5kUHJpbWl0aXZlLkVtcHR5LmRpc3BsYXlOYW1lXG5cbmNvbnN0IENvbW1hbmRHcm91cCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuR3JvdXA+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuR3JvdXA+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxDb21tYW5kUHJpbWl0aXZlLkdyb3VwXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwib3ZlcmZsb3ctaGlkZGVuIHAtMSB0ZXh0LWZvcmVncm91bmQgWyZfW2NtZGstZ3JvdXAtaGVhZGluZ11dOnB4LTIgWyZfW2NtZGstZ3JvdXAtaGVhZGluZ11dOnB5LTEuNSBbJl9bY21kay1ncm91cC1oZWFkaW5nXV06dGV4dC14cyBbJl9bY21kay1ncm91cC1oZWFkaW5nXV06Zm9udC1tZWRpdW0gWyZfW2NtZGstZ3JvdXAtaGVhZGluZ11dOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuXG5Db21tYW5kR3JvdXAuZGlzcGxheU5hbWUgPSBDb21tYW5kUHJpbWl0aXZlLkdyb3VwLmRpc3BsYXlOYW1lXG5cbmNvbnN0IENvbW1hbmRTZXBhcmF0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDb21tYW5kUHJpbWl0aXZlLlNlcGFyYXRvcj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgQ29tbWFuZFByaW1pdGl2ZS5TZXBhcmF0b3I+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxDb21tYW5kUHJpbWl0aXZlLlNlcGFyYXRvclxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCItbXgtMSBoLXB4IGJnLWJvcmRlclwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5Db21tYW5kU2VwYXJhdG9yLmRpc3BsYXlOYW1lID0gQ29tbWFuZFByaW1pdGl2ZS5TZXBhcmF0b3IuZGlzcGxheU5hbWVcblxuY29uc3QgQ29tbWFuZEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDb21tYW5kUHJpbWl0aXZlLkl0ZW0+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENvbW1hbmRQcmltaXRpdmUuSXRlbT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPENvbW1hbmRQcmltaXRpdmUuSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgZ2FwLTIgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gcHgtMiBweS0xLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06cG9pbnRlci1ldmVudHMtbm9uZSBkYXRhLVtzZWxlY3RlZD10cnVlXTpiZy1hY2NlbnQgZGF0YS1bc2VsZWN0ZWQ9dHJ1ZV06dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLVtkaXNhYmxlZD10cnVlXTpvcGFjaXR5LTUwIFsmX3N2Z106cG9pbnRlci1ldmVudHMtbm9uZSBbJl9zdmddOnNpemUtNCBbJl9zdmddOnNocmluay0wXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5cbkNvbW1hbmRJdGVtLmRpc3BsYXlOYW1lID0gQ29tbWFuZFByaW1pdGl2ZS5JdGVtLmRpc3BsYXlOYW1lXG5cbmNvbnN0IENvbW1hbmRTaG9ydGN1dCA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8c3BhblxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJtbC1hdXRvIHRleHQteHMgdHJhY2tpbmctd2lkZXN0IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuQ29tbWFuZFNob3J0Y3V0LmRpc3BsYXlOYW1lID0gXCJDb21tYW5kU2hvcnRjdXRcIlxuXG5leHBvcnQge1xuICBDb21tYW5kLFxuICBDb21tYW5kRGlhbG9nLFxuICBDb21tYW5kSW5wdXQsXG4gIENvbW1hbmRMaXN0LFxuICBDb21tYW5kRW1wdHksXG4gIENvbW1hbmRHcm91cCxcbiAgQ29tbWFuZEl0ZW0sXG4gIENvbW1hbmRTaG9ydGN1dCxcbiAgQ29tbWFuZFNlcGFyYXRvcixcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNvbW1hbmQiLCJDb21tYW5kUHJpbWl0aXZlIiwiU2VhcmNoIiwiY24iLCJEaWFsb2ciLCJEaWFsb2dDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJDb21tYW5kRGlhbG9nIiwiY2hpbGRyZW4iLCJDb21tYW5kSW5wdXQiLCJkaXYiLCJjbWRrLWlucHV0LXdyYXBwZXIiLCJJbnB1dCIsIkNvbW1hbmRMaXN0IiwiTGlzdCIsIkNvbW1hbmRFbXB0eSIsIkVtcHR5IiwiQ29tbWFuZEdyb3VwIiwiR3JvdXAiLCJDb21tYW5kU2VwYXJhdG9yIiwiU2VwYXJhdG9yIiwiQ29tbWFuZEl0ZW0iLCJJdGVtIiwiQ29tbWFuZFNob3J0Y3V0Iiwic3BhbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/command.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/dialog.tsx": /*!**********************************!*\ !*** ./components/ui/dialog.tsx ***! \**********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogFooter: () => (/* binding */ DialogFooter),\n/* harmony export */ DialogHeader: () => (/* binding */ DialogHeader),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Dialog,DialogPortal,DialogOverlay,DialogTrigger,DialogClose,DialogContent,DialogHeader,DialogFooter,DialogTitle,DialogDescription auto */ \n\n\n\n\nconst Dialog = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DialogTrigger = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DialogPortal = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DialogClose = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close;\nconst DialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 21,\n columnNumber: 3\n }, undefined);\n});\n_c = DialogOverlay;\nDialogOverlay.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay.displayName;\nconst DialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogOverlay, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props,\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n className: \"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 48,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Close\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 47,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 36,\n columnNumber: 3\n }, undefined);\n});\n_c2 = DialogContent;\nDialogContent.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-1.5 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 60,\n columnNumber: 3\n }, undefined);\n};\n_c3 = DialogHeader;\nDialogHeader.displayName = \"DialogHeader\";\nconst DialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 74,\n columnNumber: 3\n }, undefined);\n};\n_c4 = DialogFooter;\nDialogFooter.displayName = \"DialogFooter\";\nconst DialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 88,\n columnNumber: 3\n }, undefined);\n});\n_c6 = DialogTitle;\nDialogTitle.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title.displayName;\nconst DialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dialog.tsx\",\n lineNumber: 103,\n columnNumber: 3\n }, undefined);\n});\n_c8 = DialogDescription;\nDialogDescription.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8;\n$RefreshReg$(_c, \"DialogOverlay\");\n$RefreshReg$(_c1, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogContent\");\n$RefreshReg$(_c3, \"DialogHeader\");\n$RefreshReg$(_c4, \"DialogFooter\");\n$RefreshReg$(_c5, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"DialogTitle\");\n$RefreshReg$(_c7, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogDescription\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUMyQjtBQUN6QjtBQUVBO0FBRWhDLE1BQU1JLFNBQVNILHdEQUFvQjtBQUVuQyxNQUFNSyxnQkFBZ0JMLDJEQUF1QjtBQUU3QyxNQUFNTyxlQUFlUCwwREFBc0I7QUFFM0MsTUFBTVMsY0FBY1QseURBQXFCO0FBRXpDLE1BQU1XLDhCQUFnQlosNkNBQWdCLENBR3BDLFFBQTBCYztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNmLDJEQUF1QjtRQUN0QmEsS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQ1gsMkpBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztLQVZQSjtBQWFOQSxjQUFjTSxXQUFXLEdBQUdqQiwyREFBdUIsQ0FBQ2lCLFdBQVc7QUFFL0QsTUFBTUMsOEJBQWdCbkIsNkNBQWdCLE9BR3BDLFFBQW9DYztRQUFuQyxFQUFFQyxTQUFTLEVBQUVLLFFBQVEsRUFBRSxHQUFHSixPQUFPO3lCQUNsQyw4REFBQ1I7OzBCQUNDLDhEQUFDSTs7Ozs7MEJBQ0QsOERBQUNYLDJEQUF1QjtnQkFDdEJhLEtBQUtBO2dCQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCwrZkFDQVk7Z0JBRUQsR0FBR0MsS0FBSzs7b0JBRVJJO2tDQUNELDhEQUFDbkIseURBQXFCO3dCQUFDYyxXQUFVOzswQ0FDL0IsOERBQUNiLDZFQUFDQTtnQ0FBQ2EsV0FBVTs7Ozs7OzBDQUNiLDhEQUFDTztnQ0FBS1AsV0FBVTswQ0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLbENJLGNBQWNELFdBQVcsR0FBR2pCLDJEQUF1QixDQUFDaUIsV0FBVztBQUUvRCxNQUFNSyxlQUFlO1FBQUMsRUFDcEJSLFNBQVMsRUFDVCxHQUFHQyxPQUNrQzt5QkFDckMsOERBQUNRO1FBQ0NULFdBQVdaLDhDQUFFQSxDQUNYLHNEQUNBWTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7TUFUUE87QUFZTkEsYUFBYUwsV0FBVyxHQUFHO0FBRTNCLE1BQU1PLGVBQWU7UUFBQyxFQUNwQlYsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ1E7UUFDQ1QsV0FBV1osOENBQUVBLENBQ1gsaUVBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQUztBQVlOQSxhQUFhUCxXQUFXLEdBQUc7QUFFM0IsTUFBTVEsNEJBQWMxQiw2Q0FBZ0IsT0FHbEMsUUFBMEJjO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2YseURBQXFCO1FBQ3BCYSxLQUFLQTtRQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCxxREFDQVk7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiVSxZQUFZUixXQUFXLEdBQUdqQix5REFBcUIsQ0FBQ2lCLFdBQVc7QUFFM0QsTUFBTVUsa0NBQW9CNUIsNkNBQWdCLE9BR3hDLFFBQTBCYztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNmLCtEQUEyQjtRQUMxQmEsS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQUMsaUNBQWlDWTtRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiWSxrQkFBa0JWLFdBQVcsR0FBR2pCLCtEQUEyQixDQUFDaUIsV0FBVztBQWF0RSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2RpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpYWxvZ1wiXG5pbXBvcnQgeyBYIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgRGlhbG9nID0gRGlhbG9nUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgRGlhbG9nVHJpZ2dlciA9IERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IERpYWxvZ1BvcnRhbCA9IERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWxcblxuY29uc3QgRGlhbG9nQ2xvc2UgPSBEaWFsb2dQcmltaXRpdmUuQ2xvc2VcblxuY29uc3QgRGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuT3ZlcmxheT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwICBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5LmRpc3BsYXlOYW1lXG5cbmNvbnN0IERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RGlhbG9nUG9ydGFsPlxuICAgIDxEaWFsb2dPdmVybGF5IC8+XG4gICAgPERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZml4ZWQgbGVmdC1bNTAlXSB0b3AtWzUwJV0gei01MCBncmlkIHctZnVsbCBtYXgtdy1sZyB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIGdhcC00IGJvcmRlciBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZHVyYXRpb24tMjAwIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUgZGF0YS1bc3RhdGU9b3Blbl06em9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AtWzQ4JV0gZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXRvcC1bNDglXSBzbTpyb3VuZGVkLWxnXCIsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RGlhbG9nUHJpbWl0aXZlLkNsb3NlIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTQgdG9wLTQgcm91bmRlZC1zbSBvcGFjaXR5LTcwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1vcGFjaXR5IGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yaW5nIGZvY3VzOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkYXRhLVtzdGF0ZT1vcGVuXTpiZy1hY2NlbnQgZGF0YS1bc3RhdGU9b3Blbl06dGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICA8L0RpYWxvZ1ByaW1pdGl2ZS5DbG9zZT5cbiAgICA8L0RpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PlxuICA8L0RpYWxvZ1BvcnRhbD5cbikpXG5EaWFsb2dDb250ZW50LmRpc3BsYXlOYW1lID0gRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuY29uc3QgRGlhbG9nSGVhZGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMS41IHRleHQtY2VudGVyIHNtOnRleHQtbGVmdFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5EaWFsb2dIZWFkZXIuZGlzcGxheU5hbWUgPSBcIkRpYWxvZ0hlYWRlclwiXG5cbmNvbnN0IERpYWxvZ0Zvb3RlciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIHNtOmZsZXgtcm93IHNtOmp1c3RpZnktZW5kIHNtOnNwYWNlLXgtMlwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5EaWFsb2dGb290ZXIuZGlzcGxheU5hbWUgPSBcIkRpYWxvZ0Zvb3RlclwiXG5cbmNvbnN0IERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLlRpdGxlPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuVGl0bGU+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEaWFsb2dQcmltaXRpdmUuVGl0bGVcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5EaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IERpYWxvZ1ByaW1pdGl2ZS5UaXRsZS5kaXNwbGF5TmFtZVxuXG5jb25zdCBEaWFsb2dEZXNjcmlwdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkRpYWxvZ0Rlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uLmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7XG4gIERpYWxvZyxcbiAgRGlhbG9nUG9ydGFsLFxuICBEaWFsb2dPdmVybGF5LFxuICBEaWFsb2dUcmlnZ2VyLFxuICBEaWFsb2dDbG9zZSxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nSGVhZGVyLFxuICBEaWFsb2dGb290ZXIsXG4gIERpYWxvZ1RpdGxlLFxuICBEaWFsb2dEZXNjcmlwdGlvbixcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkRpYWxvZ1ByaW1pdGl2ZSIsIlgiLCJjbiIsIkRpYWxvZyIsIlJvb3QiLCJEaWFsb2dUcmlnZ2VyIiwiVHJpZ2dlciIsIkRpYWxvZ1BvcnRhbCIsIlBvcnRhbCIsIkRpYWxvZ0Nsb3NlIiwiQ2xvc2UiLCJEaWFsb2dPdmVybGF5IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiT3ZlcmxheSIsImRpc3BsYXlOYW1lIiwiRGlhbG9nQ29udGVudCIsImNoaWxkcmVuIiwiQ29udGVudCIsInNwYW4iLCJEaWFsb2dIZWFkZXIiLCJkaXYiLCJEaWFsb2dGb290ZXIiLCJEaWFsb2dUaXRsZSIsIlRpdGxlIiwiRGlhbG9nRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dialog.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/dropdown-menu.tsx": /*!*****************************************!*\ !*** ./components/ui/dropdown-menu.tsx ***! \*****************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DropdownMenu: () => (/* binding */ DropdownMenu),\n/* harmony export */ DropdownMenuCheckboxItem: () => (/* binding */ DropdownMenuCheckboxItem),\n/* harmony export */ DropdownMenuContent: () => (/* binding */ DropdownMenuContent),\n/* harmony export */ DropdownMenuGroup: () => (/* binding */ DropdownMenuGroup),\n/* harmony export */ DropdownMenuItem: () => (/* binding */ DropdownMenuItem),\n/* harmony export */ DropdownMenuLabel: () => (/* binding */ DropdownMenuLabel),\n/* harmony export */ DropdownMenuPortal: () => (/* binding */ DropdownMenuPortal),\n/* harmony export */ DropdownMenuRadioGroup: () => (/* binding */ DropdownMenuRadioGroup),\n/* harmony export */ DropdownMenuRadioItem: () => (/* binding */ DropdownMenuRadioItem),\n/* harmony export */ DropdownMenuSeparator: () => (/* binding */ DropdownMenuSeparator),\n/* harmony export */ DropdownMenuShortcut: () => (/* binding */ DropdownMenuShortcut),\n/* harmony export */ DropdownMenuSub: () => (/* binding */ DropdownMenuSub),\n/* harmony export */ DropdownMenuSubContent: () => (/* binding */ DropdownMenuSubContent),\n/* harmony export */ DropdownMenuSubTrigger: () => (/* binding */ DropdownMenuSubTrigger),\n/* harmony export */ DropdownMenuTrigger: () => (/* binding */ DropdownMenuTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem,DropdownMenuCheckboxItem,DropdownMenuRadioItem,DropdownMenuLabel,DropdownMenuSeparator,DropdownMenuShortcut,DropdownMenuGroup,DropdownMenuPortal,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuRadioGroup auto */ \n\n\n\n\nconst DropdownMenu = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DropdownMenuTrigger = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DropdownMenuGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Group;\nconst DropdownMenuPortal = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DropdownMenuSub = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Sub;\nconst DropdownMenuRadioGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioGroup;\nconst DropdownMenuSubTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, inset, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", inset && \"pl-8\", className),\n ...props,\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"ml-auto\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c1 = DropdownMenuSubTrigger;\nDropdownMenuSubTrigger.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger.displayName;\nconst DropdownMenuSubContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 47,\n columnNumber: 3\n }, undefined);\n});\n_c3 = DropdownMenuSubContent;\nDropdownMenuSubContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent.displayName;\nconst DropdownMenuContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\", \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 63,\n columnNumber: 3\n }, undefined);\n});\n_c5 = DropdownMenuContent;\nDropdownMenuContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DropdownMenuItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 84,\n columnNumber: 3\n }, undefined);\n});\n_c7 = DropdownMenuItem;\nDropdownMenuItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item.displayName;\nconst DropdownMenuCheckboxItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, children, checked, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n checked: checked,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 111,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 110,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 109,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 100,\n columnNumber: 3\n }, undefined);\n});\n_c9 = DropdownMenuCheckboxItem;\nDropdownMenuCheckboxItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem.displayName;\nconst DropdownMenuRadioItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-2 w-2 fill-current\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 134,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 133,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 132,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 124,\n columnNumber: 3\n }, undefined);\n});\n_c11 = DropdownMenuRadioItem;\nDropdownMenuRadioItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem.displayName;\nconst DropdownMenuLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c12 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 148,\n columnNumber: 3\n }, undefined);\n});\n_c13 = DropdownMenuLabel;\nDropdownMenuLabel.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label.displayName;\nconst DropdownMenuSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c14 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"-mx-1 my-1 h-px bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 164,\n columnNumber: 3\n }, undefined);\n});\n_c15 = DropdownMenuSeparator;\nDropdownMenuSeparator.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator.displayName;\nconst DropdownMenuShortcut = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"ml-auto text-xs tracking-widest opacity-60\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/dropdown-menu.tsx\",\n lineNumber: 177,\n columnNumber: 5\n }, undefined);\n};\n_c16 = DropdownMenuShortcut;\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16;\n$RefreshReg$(_c, \"DropdownMenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c1, \"DropdownMenuSubTrigger\");\n$RefreshReg$(_c2, \"DropdownMenuSubContent$React.forwardRef\");\n$RefreshReg$(_c3, \"DropdownMenuSubContent\");\n$RefreshReg$(_c4, \"DropdownMenuContent$React.forwardRef\");\n$RefreshReg$(_c5, \"DropdownMenuContent\");\n$RefreshReg$(_c6, \"DropdownMenuItem$React.forwardRef\");\n$RefreshReg$(_c7, \"DropdownMenuItem\");\n$RefreshReg$(_c8, \"DropdownMenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c9, \"DropdownMenuCheckboxItem\");\n$RefreshReg$(_c10, \"DropdownMenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c11, \"DropdownMenuRadioItem\");\n$RefreshReg$(_c12, \"DropdownMenuLabel$React.forwardRef\");\n$RefreshReg$(_c13, \"DropdownMenuLabel\");\n$RefreshReg$(_c14, \"DropdownMenuSeparator$React.forwardRef\");\n$RefreshReg$(_c15, \"DropdownMenuSeparator\");\n$RefreshReg$(_c16, \"DropdownMenuShortcut\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRThCO0FBQ3dDO0FBQ1o7QUFFMUI7QUFFaEMsTUFBTU0sZUFBZUwsK0RBQTBCO0FBRS9DLE1BQU1PLHNCQUFzQlAsa0VBQTZCO0FBRXpELE1BQU1TLG9CQUFvQlQsZ0VBQTJCO0FBRXJELE1BQU1XLHFCQUFxQlgsaUVBQTRCO0FBRXZELE1BQU1hLGtCQUFrQmIsOERBQXlCO0FBRWpELE1BQU1lLHlCQUF5QmYscUVBQWdDO0FBRS9ELE1BQU1pQix1Q0FBeUJsQiw2Q0FBZ0IsTUFLN0MsUUFBMkNvQjtRQUExQyxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ3pDLDhEQUFDdkIscUVBQWdDO1FBQy9CbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLDBNQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7O1lBRVJEOzBCQUNELDhEQUFDcEIscUdBQVlBO2dCQUFDa0IsV0FBVTs7Ozs7Ozs7Ozs7Ozs7QUFHNUJILHVCQUF1QlEsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNQyx1Q0FBeUIzQiw2Q0FBZ0IsT0FHN0MsUUFBMEJvQjtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0csT0FBTzt5QkFDeEIsOERBQUN2QixxRUFBZ0M7UUFDL0JtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gseWJBQ0FnQjtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JHLHVCQUF1QkQsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNRyxvQ0FBc0I3Qiw2Q0FBZ0IsT0FHMUMsUUFBMENvQjtRQUF6QyxFQUFFQyxTQUFTLEVBQUVTLGFBQWEsQ0FBQyxFQUFFLEdBQUdOLE9BQU87eUJBQ3hDLDhEQUFDdkIsaUVBQTRCO2tCQUMzQiw0RUFBQ0Esa0VBQTZCO1lBQzVCbUIsS0FBS0E7WUFDTFUsWUFBWUE7WUFDWlQsV0FBV2hCLDhDQUFFQSxDQUNYLHdHQUNBLG9WQUNBZ0I7WUFFRCxHQUFHRyxLQUFLOzs7Ozs7Ozs7Ozs7O0FBSWZLLG9CQUFvQkgsV0FBVyxHQUFHekIsa0VBQTZCLENBQUN5QixXQUFXO0FBRTNFLE1BQU1NLGlDQUFtQmhDLDZDQUFnQixPQUt2QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsK0RBQTBCO1FBQ3pCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHlRQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHekIsK0RBQTBCLENBQUN5QixXQUFXO0FBRXJFLE1BQU1RLHlDQUEyQmxDLDZDQUFnQixPQUcvQyxRQUE2Q29CO1FBQTVDLEVBQUVDLFNBQVMsRUFBRUUsUUFBUSxFQUFFWSxPQUFPLEVBQUUsR0FBR1gsT0FBTzt5QkFDM0MsOERBQUN2Qix1RUFBa0M7UUFDakNtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gsd09BQ0FnQjtRQUVGYyxTQUFTQTtRQUNSLEdBQUdYLEtBQUs7OzBCQUVULDhEQUFDYTtnQkFBS2hCLFdBQVU7MEJBQ2QsNEVBQUNwQix3RUFBbUM7OEJBQ2xDLDRFQUFDQyxxR0FBS0E7d0JBQUNtQixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O1lBR3BCRTs7Ozs7Ozs7O0FBR0xXLHlCQUF5QlIsV0FBVyxHQUNsQ3pCLHVFQUFrQyxDQUFDeUIsV0FBVztBQUVoRCxNQUFNYSxzQ0FBd0J2Qyw2Q0FBZ0IsUUFHNUMsUUFBb0NvQjtRQUFuQyxFQUFFQyxTQUFTLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxPQUFPO3lCQUNsQyw4REFBQ3ZCLG9FQUErQjtRQUM5Qm1CLEtBQUtBO1FBQ0xDLFdBQVdoQiw4Q0FBRUEsQ0FDWCx3T0FDQWdCO1FBRUQsR0FBR0csS0FBSzs7MEJBRVQsOERBQUNhO2dCQUFLaEIsV0FBVTswQkFDZCw0RUFBQ3BCLHdFQUFtQzs4QkFDbEMsNEVBQUNHLHFHQUFNQTt3QkFBQ2lCLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7WUFHckJFOzs7Ozs7Ozs7QUFHTGdCLHNCQUFzQmIsV0FBVyxHQUFHekIsb0VBQStCLENBQUN5QixXQUFXO0FBRS9FLE1BQU1lLGtDQUFvQnpDLDZDQUFnQixRQUt4QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsZ0VBQTJCO1FBQzFCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHFDQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JpQixrQkFBa0JmLFdBQVcsR0FBR3pCLGdFQUEyQixDQUFDeUIsV0FBVztBQUV2RSxNQUFNaUIsc0NBQXdCM0MsNkNBQWdCLFFBRzVDLFFBQTBCb0I7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdHLE9BQU87eUJBQ3hCLDhEQUFDdkIsb0VBQStCO1FBQzlCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUFDLDRCQUE0QmdCO1FBQ3pDLEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JtQixzQkFBc0JqQixXQUFXLEdBQUd6QixvRUFBK0IsQ0FBQ3lCLFdBQVc7QUFFL0UsTUFBTW1CLHVCQUF1QjtRQUFDLEVBQzVCeEIsU0FBUyxFQUNULEdBQUdHLE9BQ21DO0lBQ3RDLHFCQUNFLDhEQUFDYTtRQUNDaEIsV0FBV2hCLDhDQUFFQSxDQUFDLDhDQUE4Q2dCO1FBQzNELEdBQUdHLEtBQUs7Ozs7OztBQUdmO09BVk1xQjtBQVdOQSxxQkFBcUJuQixXQUFXLEdBQUc7QUFrQmxDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIERyb3Bkb3duTWVudVByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRyb3Bkb3duLW1lbnVcIlxuaW1wb3J0IHsgQ2hlY2ssIENoZXZyb25SaWdodCwgQ2lyY2xlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgRHJvcGRvd25NZW51ID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlJvb3RcblxuY29uc3QgRHJvcGRvd25NZW51VHJpZ2dlciA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IERyb3Bkb3duTWVudUdyb3VwID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLkdyb3VwXG5cbmNvbnN0IERyb3Bkb3duTWVudVBvcnRhbCA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5Qb3J0YWxcblxuY29uc3QgRHJvcGRvd25NZW51U3ViID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlxuXG5jb25zdCBEcm9wZG93bk1lbnVSYWRpb0dyb3VwID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlJhZGlvR3JvdXBcblxuY29uc3QgRHJvcGRvd25NZW51U3ViVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlcj4gJiB7XG4gICAgaW5zZXQ/OiBib29sZWFuXG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXJcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGN1cnNvci1kZWZhdWx0IGdhcC0yIHNlbGVjdC1ub25lIGl0ZW1zLWNlbnRlciByb3VuZGVkLXNtIHB4LTIgcHktMS41IHRleHQtc20gb3V0bGluZS1ub25lIGZvY3VzOmJnLWFjY2VudCBkYXRhLVtzdGF0ZT1vcGVuXTpiZy1hY2NlbnQgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gICAgPENoZXZyb25SaWdodCBjbGFzc05hbWU9XCJtbC1hdXRvXCIgLz5cbiAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlcj5cbikpXG5Ecm9wZG93bk1lbnVTdWJUcmlnZ2VyLmRpc3BsYXlOYW1lID1cbiAgRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXIuZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViQ29udGVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiei01MCBtaW4tdy1bOHJlbV0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1sZyBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkRyb3Bkb3duTWVudVN1YkNvbnRlbnQuZGlzcGxheU5hbWUgPVxuICBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViQ29udGVudC5kaXNwbGF5TmFtZVxuXG5jb25zdCBEcm9wZG93bk1lbnVDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIHNpZGVPZmZzZXQgPSA0LCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5Qb3J0YWw+XG4gICAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHNpZGVPZmZzZXQ9e3NpZGVPZmZzZXR9XG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBcInotNTAgbWluLXctWzhyZW1dIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtMSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWRcIixcbiAgICAgICAgXCJkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbD5cbikpXG5Ecm9wZG93bk1lbnVDb250ZW50LmRpc3BsYXlOYW1lID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbT4gJiB7XG4gICAgaW5zZXQ/OiBib29sZWFuXG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtc20gcHgtMiBweS0xLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXM6YmctYWNjZW50IGZvY3VzOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGF0YS1bZGlzYWJsZWRdOnBvaW50ZXItZXZlbnRzLW5vbmUgZGF0YS1bZGlzYWJsZWRdOm9wYWNpdHktNTAgWyY+c3ZnXTpzaXplLTQgWyY+c3ZnXTpzaHJpbmstMFwiLFxuICAgICAgaW5zZXQgJiYgXCJwbC04XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5Ecm9wZG93bk1lbnVJdGVtLmRpc3BsYXlOYW1lID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW0uZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgY2hlY2tlZCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuQ2hlY2tib3hJdGVtXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweS0xLjUgcGwtOCBwci0yIHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOmJnLWFjY2VudCBmb2N1czp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtW2Rpc2FibGVkXTpwb2ludGVyLWV2ZW50cy1ub25lIGRhdGEtW2Rpc2FibGVkXTpvcGFjaXR5LTUwXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPHNwYW4gY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0yIGZsZXggaC0zLjUgdy0zLjUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgICAgIDxDaGVjayBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgPC9zcGFuPlxuICAgIHtjaGlsZHJlbn1cbiAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuQ2hlY2tib3hJdGVtPlxuKSlcbkRyb3Bkb3duTWVudUNoZWNrYm94SXRlbS5kaXNwbGF5TmFtZSA9XG4gIERyb3Bkb3duTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0uZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlJhZGlvSXRlbT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlJhZGlvSXRlbT5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweS0xLjUgcGwtOCBwci0yIHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOmJnLWFjY2VudCBmb2N1czp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtW2Rpc2FibGVkXTpwb2ludGVyLWV2ZW50cy1ub25lIGRhdGEtW2Rpc2FibGVkXTpvcGFjaXR5LTUwXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMiBmbGV4IGgtMy41IHctMy41IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtSW5kaWNhdG9yPlxuICAgICAgICA8Q2lyY2xlIGNsYXNzTmFtZT1cImgtMiB3LTIgZmlsbC1jdXJyZW50XCIgLz5cbiAgICAgIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgPC9zcGFuPlxuICAgIHtjaGlsZHJlbn1cbiAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtPlxuKSlcbkRyb3Bkb3duTWVudVJhZGlvSXRlbS5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0uZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51TGFiZWwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWw+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5MYWJlbD4gJiB7XG4gICAgaW5zZXQ/OiBib29sZWFuXG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJweC0yIHB5LTEuNSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGRcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRHJvcGRvd25NZW51TGFiZWwuZGlzcGxheU5hbWUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWwuZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51U2VwYXJhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlNlcGFyYXRvcj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlNlcGFyYXRvcj5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5TZXBhcmF0b3JcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwiLW14LTEgbXktMSBoLXB4IGJnLW11dGVkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5TZXBhcmF0b3IuZGlzcGxheU5hbWVcblxuY29uc3QgRHJvcGRvd25NZW51U2hvcnRjdXQgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzTmFtZT17Y24oXCJtbC1hdXRvIHRleHQteHMgdHJhY2tpbmctd2lkZXN0IG9wYWNpdHktNjBcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5Ecm9wZG93bk1lbnVTaG9ydGN1dC5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd25NZW51U2hvcnRjdXRcIlxuXG5leHBvcnQge1xuICBEcm9wZG93bk1lbnUsXG4gIERyb3Bkb3duTWVudVRyaWdnZXIsXG4gIERyb3Bkb3duTWVudUNvbnRlbnQsXG4gIERyb3Bkb3duTWVudUl0ZW0sXG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbSxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtLFxuICBEcm9wZG93bk1lbnVMYWJlbCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICBEcm9wZG93bk1lbnVTaG9ydGN1dCxcbiAgRHJvcGRvd25NZW51R3JvdXAsXG4gIERyb3Bkb3duTWVudVBvcnRhbCxcbiAgRHJvcGRvd25NZW51U3ViLFxuICBEcm9wZG93bk1lbnVTdWJDb250ZW50LFxuICBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyLFxuICBEcm9wZG93bk1lbnVSYWRpb0dyb3VwLFxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRHJvcGRvd25NZW51UHJpbWl0aXZlIiwiQ2hlY2siLCJDaGV2cm9uUmlnaHQiLCJDaXJjbGUiLCJjbiIsIkRyb3Bkb3duTWVudSIsIlJvb3QiLCJEcm9wZG93bk1lbnVUcmlnZ2VyIiwiVHJpZ2dlciIsIkRyb3Bkb3duTWVudUdyb3VwIiwiR3JvdXAiLCJEcm9wZG93bk1lbnVQb3J0YWwiLCJQb3J0YWwiLCJEcm9wZG93bk1lbnVTdWIiLCJTdWIiLCJEcm9wZG93bk1lbnVSYWRpb0dyb3VwIiwiUmFkaW9Hcm91cCIsIkRyb3Bkb3duTWVudVN1YlRyaWdnZXIiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwiaW5zZXQiLCJjaGlsZHJlbiIsInByb3BzIiwiU3ViVHJpZ2dlciIsImRpc3BsYXlOYW1lIiwiRHJvcGRvd25NZW51U3ViQ29udGVudCIsIlN1YkNvbnRlbnQiLCJEcm9wZG93bk1lbnVDb250ZW50Iiwic2lkZU9mZnNldCIsIkNvbnRlbnQiLCJEcm9wZG93bk1lbnVJdGVtIiwiSXRlbSIsIkRyb3Bkb3duTWVudUNoZWNrYm94SXRlbSIsImNoZWNrZWQiLCJDaGVja2JveEl0ZW0iLCJzcGFuIiwiSXRlbUluZGljYXRvciIsIkRyb3Bkb3duTWVudVJhZGlvSXRlbSIsIlJhZGlvSXRlbSIsIkRyb3Bkb3duTWVudUxhYmVsIiwiTGFiZWwiLCJEcm9wZG93bk1lbnVTZXBhcmF0b3IiLCJTZXBhcmF0b3IiLCJEcm9wZG93bk1lbnVTaG9ydGN1dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dropdown-menu.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/form.tsx": /*!********************************!*\ !*** ./components/ui/form.tsx ***! \********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Form: () => (/* binding */ Form),\n/* harmony export */ FormControl: () => (/* binding */ FormControl),\n/* harmony export */ FormDescription: () => (/* binding */ FormDescription),\n/* harmony export */ FormField: () => (/* binding */ FormField),\n/* harmony export */ FormItem: () => (/* binding */ FormItem),\n/* harmony export */ FormLabel: () => (/* binding */ FormLabel),\n/* harmony export */ FormMessage: () => (/* binding */ FormMessage),\n/* harmony export */ useFormField: () => (/* binding */ useFormField)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_hook_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-hook-form */ \"(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./components/ui/label.tsx\");\n/* __next_internal_client_entry_do_not_use__ useFormField,Form,FormItem,FormLabel,FormControl,FormDescription,FormMessage,FormField auto */ \nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$();\n\n\n\n\n\nconst Form = react_hook_form__WEBPACK_IMPORTED_MODULE_4__.FormProvider;\nconst FormFieldContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.createContext({});\nconst FormField = (param)=>{\n let { ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(FormFieldContext.Provider, {\n value: {\n name: props.name\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_hook_form__WEBPACK_IMPORTED_MODULE_4__.Controller, {\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 39,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, undefined);\n};\n_c = FormField;\nconst useFormField = ()=>{\n _s();\n const fieldContext = react__WEBPACK_IMPORTED_MODULE_1__.useContext(FormFieldContext);\n const itemContext = react__WEBPACK_IMPORTED_MODULE_1__.useContext(FormItemContext);\n const { getFieldState, formState } = (0,react_hook_form__WEBPACK_IMPORTED_MODULE_4__.useFormContext)();\n const fieldState = getFieldState(fieldContext.name, formState);\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n const { id } = itemContext;\n return {\n id,\n name: fieldContext.name,\n formItemId: \"\".concat(id, \"-form-item\"),\n formDescriptionId: \"\".concat(id, \"-form-item-description\"),\n formMessageId: \"\".concat(id, \"-form-item-message\"),\n ...fieldState\n };\n};\n_s(useFormField, \"eRzki+X5SldVDcAh3BokmSZW9NU=\", false, function() {\n return [\n react_hook_form__WEBPACK_IMPORTED_MODULE_4__.useFormContext\n ];\n});\nconst FormItemContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.createContext({});\nconst FormItem = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = _s1((param, ref)=>{\n let { className, ...props } = param;\n _s1();\n const id = react__WEBPACK_IMPORTED_MODULE_1__.useId();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(FormItemContext.Provider, {\n value: {\n id\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"space-y-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 83,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 82,\n columnNumber: 5\n }, undefined);\n}, \"WhsuKpSQZEWeFcB7gWlfDRQktoQ=\")), \"WhsuKpSQZEWeFcB7gWlfDRQktoQ=\");\n_c2 = FormItem;\nFormItem.displayName = \"FormItem\";\nconst FormLabel = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c3 = _s2((param, ref)=>{\n let { className, ...props } = param;\n _s2();\n const { error, formItemId } = useFormField();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(error && \"text-destructive\", className),\n htmlFor: formItemId,\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 96,\n columnNumber: 5\n }, undefined);\n}, \"Z4R+rKjylfAcqmbRnqWEg1TfTcg=\", false, function() {\n return [\n useFormField\n ];\n})), \"Z4R+rKjylfAcqmbRnqWEg1TfTcg=\", false, function() {\n return [\n useFormField\n ];\n});\n_c4 = FormLabel;\nFormLabel.displayName = \"FormLabel\";\nconst FormControl = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = _s3((param, ref)=>{\n let { ...props } = param;\n _s3();\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_5__.Slot, {\n ref: ref,\n id: formItemId,\n \"aria-describedby\": !error ? \"\".concat(formDescriptionId) : \"\".concat(formDescriptionId, \" \").concat(formMessageId),\n \"aria-invalid\": !!error,\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 113,\n columnNumber: 5\n }, undefined);\n}, \"mI3rlmONcPPBVtOc6UefMrXAJ6w=\", false, function() {\n return [\n useFormField\n ];\n})), \"mI3rlmONcPPBVtOc6UefMrXAJ6w=\", false, function() {\n return [\n useFormField\n ];\n});\n_c6 = FormControl;\nFormControl.displayName = \"FormControl\";\nconst FormDescription = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = _s4((param, ref)=>{\n let { className, ...props } = param;\n _s4();\n const { formDescriptionId } = useFormField();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n ref: ref,\n id: formDescriptionId,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-[0.8rem] text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 135,\n columnNumber: 5\n }, undefined);\n}, \"573aRXA8dloSrMaQM9SdAF4A9NI=\", false, function() {\n return [\n useFormField\n ];\n})), \"573aRXA8dloSrMaQM9SdAF4A9NI=\", false, function() {\n return [\n useFormField\n ];\n});\n_c8 = FormDescription;\nFormDescription.displayName = \"FormDescription\";\nconst FormMessage = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c9 = _s5((param, ref)=>{\n let { className, children, ...props } = param;\n _s5();\n const { error, formMessageId } = useFormField();\n const body = error ? String(error === null || error === void 0 ? void 0 : error.message) : children;\n if (!body) {\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n ref: ref,\n id: formMessageId,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-[0.8rem] font-medium text-destructive\", className),\n ...props,\n children: body\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/form.tsx\",\n lineNumber: 157,\n columnNumber: 5\n }, undefined);\n}, \"WONNS8VCMr8LShuUovb8QgOmMVY=\", false, function() {\n return [\n useFormField\n ];\n})), \"WONNS8VCMr8LShuUovb8QgOmMVY=\", false, function() {\n return [\n useFormField\n ];\n});\n_c10 = FormMessage;\nFormMessage.displayName = \"FormMessage\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10;\n$RefreshReg$(_c, \"FormField\");\n$RefreshReg$(_c1, \"FormItem$React.forwardRef\");\n$RefreshReg$(_c2, \"FormItem\");\n$RefreshReg$(_c3, \"FormLabel$React.forwardRef\");\n$RefreshReg$(_c4, \"FormLabel\");\n$RefreshReg$(_c5, \"FormControl$React.forwardRef\");\n$RefreshReg$(_c6, \"FormControl\");\n$RefreshReg$(_c7, \"FormDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"FormDescription\");\n$RefreshReg$(_c9, \"FormMessage$React.forwardRef\");\n$RefreshReg$(_c10, \"FormMessage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZm9ybS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFFYTtBQVFuQjtBQUVRO0FBQ2E7QUFFN0MsTUFBTU8sT0FBT0oseURBQVlBO0FBU3pCLE1BQU1LLGlDQUFtQlIsZ0RBQW1CLENBQzFDLENBQUM7QUFHSCxNQUFNVSxZQUFZO1FBR2hCLEVBQ0EsR0FBR0MsT0FDa0M7SUFDckMscUJBQ0UsOERBQUNILGlCQUFpQkksUUFBUTtRQUFDQyxPQUFPO1lBQUVDLE1BQU1ILE1BQU1HLElBQUk7UUFBQztrQkFDbkQsNEVBQUNaLHVEQUFVQTtZQUFFLEdBQUdTLEtBQUs7Ozs7Ozs7Ozs7O0FBRzNCO0tBWE1EO0FBYU4sTUFBTUssZUFBZTs7SUFDbkIsTUFBTUMsZUFBZWhCLDZDQUFnQixDQUFDUTtJQUN0QyxNQUFNVSxjQUFjbEIsNkNBQWdCLENBQUNtQjtJQUNyQyxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsU0FBUyxFQUFFLEdBQUdqQiwrREFBY0E7SUFFbkQsTUFBTWtCLGFBQWFGLGNBQWNKLGFBQWFGLElBQUksRUFBRU87SUFFcEQsSUFBSSxDQUFDTCxjQUFjO1FBQ2pCLE1BQU0sSUFBSU8sTUFBTTtJQUNsQjtJQUVBLE1BQU0sRUFBRUMsRUFBRSxFQUFFLEdBQUdOO0lBRWYsT0FBTztRQUNMTTtRQUNBVixNQUFNRSxhQUFhRixJQUFJO1FBQ3ZCVyxZQUFZLEdBQU0sT0FBSEQsSUFBRztRQUNsQkUsbUJBQW1CLEdBQU0sT0FBSEYsSUFBRztRQUN6QkcsZUFBZSxHQUFNLE9BQUhILElBQUc7UUFDckIsR0FBR0YsVUFBVTtJQUNmO0FBQ0Y7R0FyQk1QOztRQUdpQ1gsMkRBQWNBOzs7QUF3QnJELE1BQU1lLGdDQUFrQm5CLGdEQUFtQixDQUN6QyxDQUFDO0FBR0gsTUFBTTRCLHlCQUFXNUIsSUFBQUEsNkNBQWdCLFdBRy9CLFFBQTBCOEI7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdwQixPQUFPOztJQUN4QixNQUFNYSxLQUFLeEIsd0NBQVc7SUFFdEIscUJBQ0UsOERBQUNtQixnQkFBZ0JQLFFBQVE7UUFBQ0MsT0FBTztZQUFFVztRQUFHO2tCQUNwQyw0RUFBQ1M7WUFBSUgsS0FBS0E7WUFBS0MsV0FBVzFCLDhDQUFFQSxDQUFDLGFBQWEwQjtZQUFhLEdBQUdwQixLQUFLOzs7Ozs7Ozs7OztBQUdyRTs7QUFDQWlCLFNBQVNNLFdBQVcsR0FBRztBQUV2QixNQUFNQywwQkFBWW5DLElBQUFBLDZDQUFnQixXQUdoQyxRQUEwQjhCO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHcEIsT0FBTzs7SUFDeEIsTUFBTSxFQUFFeUIsS0FBSyxFQUFFWCxVQUFVLEVBQUUsR0FBR1Y7SUFFOUIscUJBQ0UsOERBQUNULHVEQUFLQTtRQUNKd0IsS0FBS0E7UUFDTEMsV0FBVzFCLDhDQUFFQSxDQUFDK0IsU0FBUyxvQkFBb0JMO1FBQzNDTSxTQUFTWjtRQUNSLEdBQUdkLEtBQUs7Ozs7OztBQUdmOztRQVZnQ0k7Ozs7UUFBQUE7Ozs7QUFXaENvQixVQUFVRCxXQUFXLEdBQUc7QUFFeEIsTUFBTUksNEJBQWN0QyxJQUFBQSw2Q0FBZ0IsV0FHbEMsUUFBZThCO1FBQWQsRUFBRSxHQUFHbkIsT0FBTzs7SUFDYixNQUFNLEVBQUV5QixLQUFLLEVBQUVYLFVBQVUsRUFBRUMsaUJBQWlCLEVBQUVDLGFBQWEsRUFBRSxHQUFHWjtJQUVoRSxxQkFDRSw4REFBQ2Qsc0RBQUlBO1FBQ0g2QixLQUFLQTtRQUNMTixJQUFJQztRQUNKYyxvQkFDRSxDQUFDSCxRQUNHLEdBQXFCLE9BQWxCVixxQkFDSCxHQUF3QkMsT0FBckJELG1CQUFrQixLQUFpQixPQUFkQztRQUU5QmEsZ0JBQWMsQ0FBQyxDQUFDSjtRQUNmLEdBQUd6QixLQUFLOzs7Ozs7QUFHZjs7UUFma0VJOzs7O1FBQUFBOzs7O0FBZ0JsRXVCLFlBQVlKLFdBQVcsR0FBRztBQUUxQixNQUFNTyxnQ0FBa0J6QyxJQUFBQSw2Q0FBZ0IsV0FHdEMsUUFBMEI4QjtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR3BCLE9BQU87O0lBQ3hCLE1BQU0sRUFBRWUsaUJBQWlCLEVBQUUsR0FBR1g7SUFFOUIscUJBQ0UsOERBQUMyQjtRQUNDWixLQUFLQTtRQUNMTixJQUFJRTtRQUNKSyxXQUFXMUIsOENBQUVBLENBQUMsdUNBQXVDMEI7UUFDcEQsR0FBR3BCLEtBQUs7Ozs7OztBQUdmOztRQVZnQ0k7Ozs7UUFBQUE7Ozs7QUFXaEMwQixnQkFBZ0JQLFdBQVcsR0FBRztBQUU5QixNQUFNUyw0QkFBYzNDLElBQUFBLDZDQUFnQixXQUdsQyxRQUFvQzhCO1FBQW5DLEVBQUVDLFNBQVMsRUFBRWEsUUFBUSxFQUFFLEdBQUdqQyxPQUFPOztJQUNsQyxNQUFNLEVBQUV5QixLQUFLLEVBQUVULGFBQWEsRUFBRSxHQUFHWjtJQUNqQyxNQUFNOEIsT0FBT1QsUUFBUVUsT0FBT1Ysa0JBQUFBLDRCQUFBQSxNQUFPVyxPQUFPLElBQUlIO0lBRTlDLElBQUksQ0FBQ0MsTUFBTTtRQUNULE9BQU87SUFDVDtJQUVBLHFCQUNFLDhEQUFDSDtRQUNDWixLQUFLQTtRQUNMTixJQUFJRztRQUNKSSxXQUFXMUIsOENBQUVBLENBQUMsOENBQThDMEI7UUFDM0QsR0FBR3BCLEtBQUs7a0JBRVJrQzs7Ozs7O0FBR1A7O1FBakJtQzlCOzs7O1FBQUFBOzs7O0FBa0JuQzRCLFlBQVlULFdBQVcsR0FBRztBQVd6QiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2Zvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBMYWJlbFByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWxhYmVsXCJcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIlxuaW1wb3J0IHtcbiAgQ29udHJvbGxlcixcbiAgQ29udHJvbGxlclByb3BzLFxuICBGaWVsZFBhdGgsXG4gIEZpZWxkVmFsdWVzLFxuICBGb3JtUHJvdmlkZXIsXG4gIHVzZUZvcm1Db250ZXh0LFxufSBmcm9tIFwicmVhY3QtaG9vay1mb3JtXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2xhYmVsXCJcblxuY29uc3QgRm9ybSA9IEZvcm1Qcm92aWRlclxuXG50eXBlIEZvcm1GaWVsZENvbnRleHRWYWx1ZTxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+XG4+ID0ge1xuICBuYW1lOiBUTmFtZVxufVxuXG5jb25zdCBGb3JtRmllbGRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxGb3JtRmllbGRDb250ZXh0VmFsdWU+KFxuICB7fSBhcyBGb3JtRmllbGRDb250ZXh0VmFsdWVcbilcblxuY29uc3QgRm9ybUZpZWxkID0gPFxuICBURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcyA9IEZpZWxkVmFsdWVzLFxuICBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+ID0gRmllbGRQYXRoPFRGaWVsZFZhbHVlcz5cbj4oe1xuICAuLi5wcm9wc1xufTogQ29udHJvbGxlclByb3BzPFRGaWVsZFZhbHVlcywgVE5hbWU+KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPEZvcm1GaWVsZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgbmFtZTogcHJvcHMubmFtZSB9fT5cbiAgICAgIDxDb250cm9sbGVyIHsuLi5wcm9wc30gLz5cbiAgICA8L0Zvcm1GaWVsZENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuY29uc3QgdXNlRm9ybUZpZWxkID0gKCkgPT4ge1xuICBjb25zdCBmaWVsZENvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KEZvcm1GaWVsZENvbnRleHQpXG4gIGNvbnN0IGl0ZW1Db250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChGb3JtSXRlbUNvbnRleHQpXG4gIGNvbnN0IHsgZ2V0RmllbGRTdGF0ZSwgZm9ybVN0YXRlIH0gPSB1c2VGb3JtQ29udGV4dCgpXG5cbiAgY29uc3QgZmllbGRTdGF0ZSA9IGdldEZpZWxkU3RhdGUoZmllbGRDb250ZXh0Lm5hbWUsIGZvcm1TdGF0ZSlcblxuICBpZiAoIWZpZWxkQ29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZUZvcm1GaWVsZCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gPEZvcm1GaWVsZD5cIilcbiAgfVxuXG4gIGNvbnN0IHsgaWQgfSA9IGl0ZW1Db250ZXh0XG5cbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICBuYW1lOiBmaWVsZENvbnRleHQubmFtZSxcbiAgICBmb3JtSXRlbUlkOiBgJHtpZH0tZm9ybS1pdGVtYCxcbiAgICBmb3JtRGVzY3JpcHRpb25JZDogYCR7aWR9LWZvcm0taXRlbS1kZXNjcmlwdGlvbmAsXG4gICAgZm9ybU1lc3NhZ2VJZDogYCR7aWR9LWZvcm0taXRlbS1tZXNzYWdlYCxcbiAgICAuLi5maWVsZFN0YXRlLFxuICB9XG59XG5cbnR5cGUgRm9ybUl0ZW1Db250ZXh0VmFsdWUgPSB7XG4gIGlkOiBzdHJpbmdcbn1cblxuY29uc3QgRm9ybUl0ZW1Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxGb3JtSXRlbUNvbnRleHRWYWx1ZT4oXG4gIHt9IGFzIEZvcm1JdGVtQ29udGV4dFZhbHVlXG4pXG5cbmNvbnN0IEZvcm1JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICBjb25zdCBpZCA9IFJlYWN0LnVzZUlkKClcblxuICByZXR1cm4gKFxuICAgIDxGb3JtSXRlbUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgaWQgfX0+XG4gICAgICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9e2NuKFwic3BhY2UteS0yXCIsIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30gLz5cbiAgICA8L0Zvcm1JdGVtQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufSlcbkZvcm1JdGVtLmRpc3BsYXlOYW1lID0gXCJGb3JtSXRlbVwiXG5cbmNvbnN0IEZvcm1MYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IHsgZXJyb3IsIGZvcm1JdGVtSWQgfSA9IHVzZUZvcm1GaWVsZCgpXG5cbiAgcmV0dXJuIChcbiAgICA8TGFiZWxcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihlcnJvciAmJiBcInRleHQtZGVzdHJ1Y3RpdmVcIiwgY2xhc3NOYW1lKX1cbiAgICAgIGh0bWxGb3I9e2Zvcm1JdGVtSWR9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufSlcbkZvcm1MYWJlbC5kaXNwbGF5TmFtZSA9IFwiRm9ybUxhYmVsXCJcblxuY29uc3QgRm9ybUNvbnRyb2wgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTbG90PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTbG90PlxuPigoeyAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgY29uc3QgeyBlcnJvciwgZm9ybUl0ZW1JZCwgZm9ybURlc2NyaXB0aW9uSWQsIGZvcm1NZXNzYWdlSWQgfSA9IHVzZUZvcm1GaWVsZCgpXG5cbiAgcmV0dXJuIChcbiAgICA8U2xvdFxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBpZD17Zm9ybUl0ZW1JZH1cbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAhZXJyb3JcbiAgICAgICAgICA/IGAke2Zvcm1EZXNjcmlwdGlvbklkfWBcbiAgICAgICAgICA6IGAke2Zvcm1EZXNjcmlwdGlvbklkfSAke2Zvcm1NZXNzYWdlSWR9YFxuICAgICAgfVxuICAgICAgYXJpYS1pbnZhbGlkPXshIWVycm9yfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn0pXG5Gb3JtQ29udHJvbC5kaXNwbGF5TmFtZSA9IFwiRm9ybUNvbnRyb2xcIlxuXG5jb25zdCBGb3JtRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MUGFyYWdyYXBoRWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IHsgZm9ybURlc2NyaXB0aW9uSWQgfSA9IHVzZUZvcm1GaWVsZCgpXG5cbiAgcmV0dXJuIChcbiAgICA8cFxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBpZD17Zm9ybURlc2NyaXB0aW9uSWR9XG4gICAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1bMC44cmVtXSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59KVxuRm9ybURlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gXCJGb3JtRGVzY3JpcHRpb25cIlxuXG5jb25zdCBGb3JtTWVzc2FnZSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxQYXJhZ3JhcGhFbGVtZW50LFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MUGFyYWdyYXBoRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IHsgZXJyb3IsIGZvcm1NZXNzYWdlSWQgfSA9IHVzZUZvcm1GaWVsZCgpXG4gIGNvbnN0IGJvZHkgPSBlcnJvciA/IFN0cmluZyhlcnJvcj8ubWVzc2FnZSkgOiBjaGlsZHJlblxuXG4gIGlmICghYm9keSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxwXG4gICAgICByZWY9e3JlZn1cbiAgICAgIGlkPXtmb3JtTWVzc2FnZUlkfVxuICAgICAgY2xhc3NOYW1lPXtjbihcInRleHQtWzAuOHJlbV0gZm9udC1tZWRpdW0gdGV4dC1kZXN0cnVjdGl2ZVwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtib2R5fVxuICAgIDwvcD5cbiAgKVxufSlcbkZvcm1NZXNzYWdlLmRpc3BsYXlOYW1lID0gXCJGb3JtTWVzc2FnZVwiXG5cbmV4cG9ydCB7XG4gIHVzZUZvcm1GaWVsZCxcbiAgRm9ybSxcbiAgRm9ybUl0ZW0sXG4gIEZvcm1MYWJlbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1EZXNjcmlwdGlvbixcbiAgRm9ybU1lc3NhZ2UsXG4gIEZvcm1GaWVsZCxcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNsb3QiLCJDb250cm9sbGVyIiwiRm9ybVByb3ZpZGVyIiwidXNlRm9ybUNvbnRleHQiLCJjbiIsIkxhYmVsIiwiRm9ybSIsIkZvcm1GaWVsZENvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiRm9ybUZpZWxkIiwicHJvcHMiLCJQcm92aWRlciIsInZhbHVlIiwibmFtZSIsInVzZUZvcm1GaWVsZCIsImZpZWxkQ29udGV4dCIsInVzZUNvbnRleHQiLCJpdGVtQ29udGV4dCIsIkZvcm1JdGVtQ29udGV4dCIsImdldEZpZWxkU3RhdGUiLCJmb3JtU3RhdGUiLCJmaWVsZFN0YXRlIiwiRXJyb3IiLCJpZCIsImZvcm1JdGVtSWQiLCJmb3JtRGVzY3JpcHRpb25JZCIsImZvcm1NZXNzYWdlSWQiLCJGb3JtSXRlbSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJ1c2VJZCIsImRpdiIsImRpc3BsYXlOYW1lIiwiRm9ybUxhYmVsIiwiZXJyb3IiLCJodG1sRm9yIiwiRm9ybUNvbnRyb2wiLCJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYS1pbnZhbGlkIiwiRm9ybURlc2NyaXB0aW9uIiwicCIsIkZvcm1NZXNzYWdlIiwiY2hpbGRyZW4iLCJib2R5IiwiU3RyaW5nIiwibWVzc2FnZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/form.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/input.tsx": /*!*********************************!*\ !*** ./components/ui/input.tsx ***! \*********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Input: () => (/* binding */ Input)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Input = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, type, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: type,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/input.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Input;\nInput.displayName = \"Input\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Input$React.forwardRef\");\n$RefreshReg$(_c1, \"Input\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvaW5wdXQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE4QjtBQUVFO0FBRWhDLE1BQU1FLHNCQUFRRiw2Q0FBZ0IsTUFDNUIsUUFBZ0NJO1FBQS9CLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU87SUFDNUIscUJBQ0UsOERBQUNDO1FBQ0NGLE1BQU1BO1FBQ05ELFdBQVdKLDhDQUFFQSxDQUNYLDJXQUNBSTtRQUVGRCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxNQUFNTyxXQUFXLEdBQUc7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2lucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IElucHV0ID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBSZWFjdC5Db21wb25lbnRQcm9wczxcImlucHV0XCI+PihcbiAgKHsgY2xhc3NOYW1lLCB0eXBlLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgXCJmbGV4IGgtOSB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWlucHV0IGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LWJhc2Ugc2hhZG93LXNtIHRyYW5zaXRpb24tY29sb3JzIGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBmaWxlOnRleHQtZm9yZWdyb3VuZCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTEgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbVwiLFxuICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICApfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcbklucHV0LmRpc3BsYXlOYW1lID0gXCJJbnB1dFwiXG5cbmV4cG9ydCB7IElucHV0IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImNuIiwiSW5wdXQiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwidHlwZSIsInByb3BzIiwiaW5wdXQiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/input.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/label.tsx": /*!*********************************!*\ !*** ./components/ui/label.tsx ***! \*********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-label */ \"(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Label auto */ \n\n\n\n\nconst labelVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(labelVariants(), className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/label.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Label;\nLabel.displayName = _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Label$React.forwardRef\");\n$RefreshReg$(_c1, \"Label\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvbGFiZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQ3lCO0FBQ1U7QUFFakM7QUFFaEMsTUFBTUksZ0JBQWdCRiw2REFBR0EsQ0FDdkI7QUFHRixNQUFNRyxzQkFBUUwsNkNBQWdCLE1BSTVCLFFBQTBCTztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNSLHVEQUFtQjtRQUNsQk0sS0FBS0E7UUFDTEMsV0FBV0wsOENBQUVBLENBQUNDLGlCQUFpQkk7UUFDOUIsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkosTUFBTU0sV0FBVyxHQUFHVix1REFBbUIsQ0FBQ1UsV0FBVztBQUVuQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL2xhYmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgTGFiZWxQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1sYWJlbFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgbGFiZWxWYXJpYW50cyA9IGN2YShcbiAgXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNzBcIlxuKVxuXG5jb25zdCBMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+ICZcbiAgICBWYXJpYW50UHJvcHM8dHlwZW9mIGxhYmVsVmFyaWFudHM+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxMYWJlbFByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihsYWJlbFZhcmlhbnRzKCksIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkxhYmVsLmRpc3BsYXlOYW1lID0gTGFiZWxQcmltaXRpdmUuUm9vdC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBMYWJlbCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMYWJlbFByaW1pdGl2ZSIsImN2YSIsImNuIiwibGFiZWxWYXJpYW50cyIsIkxhYmVsIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/label.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/popover.tsx": /*!***********************************!*\ !*** ./components/ui/popover.tsx ***! \***********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Popover: () => (/* binding */ Popover),\n/* harmony export */ PopoverAnchor: () => (/* binding */ PopoverAnchor),\n/* harmony export */ PopoverContent: () => (/* binding */ PopoverContent),\n/* harmony export */ PopoverTrigger: () => (/* binding */ PopoverTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popover */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popover/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Popover,PopoverTrigger,PopoverContent,PopoverAnchor auto */ \n\n\n\nconst Popover = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst PopoverTrigger = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst PopoverAnchor = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Anchor;\nconst PopoverContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, align = \"center\", sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n align: align,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/popover.tsx\",\n lineNumber: 19,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/popover.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = PopoverContent;\nPopoverContent.displayName = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"PopoverContent$React.forwardRef\");\n$RefreshReg$(_c1, \"PopoverContent\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvcG9wb3Zlci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUM2QjtBQUUzQjtBQUVoQyxNQUFNRyxVQUFVRix5REFBcUI7QUFFckMsTUFBTUksaUJBQWlCSiw0REFBd0I7QUFFL0MsTUFBTU0sZ0JBQWdCTiwyREFBdUI7QUFFN0MsTUFBTVEsK0JBQWlCVCw2Q0FBZ0IsTUFHckMsUUFBNERXO1FBQTNELEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLEVBQUVDLGFBQWEsQ0FBQyxFQUFFLEdBQUdDLE9BQU87eUJBQzFELDhEQUFDZCwyREFBdUI7a0JBQ3RCLDRFQUFDQSw0REFBd0I7WUFDdkJVLEtBQUtBO1lBQ0xFLE9BQU9BO1lBQ1BDLFlBQVlBO1lBQ1pGLFdBQVdWLDhDQUFFQSxDQUNYLDhhQUNBVTtZQUVELEdBQUdHLEtBQUs7Ozs7Ozs7Ozs7Ozs7QUFJZk4sZUFBZVMsV0FBVyxHQUFHakIsNERBQXdCLENBQUNpQixXQUFXO0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvY29tcG9uZW50cy91aS9wb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgUG9wb3ZlclByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcG92ZXJcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IFBvcG92ZXIgPSBQb3BvdmVyUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgUG9wb3ZlclRyaWdnZXIgPSBQb3BvdmVyUHJpbWl0aXZlLlRyaWdnZXJcblxuY29uc3QgUG9wb3ZlckFuY2hvciA9IFBvcG92ZXJQcmltaXRpdmUuQW5jaG9yXG5cbmNvbnN0IFBvcG92ZXJDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUG9wb3ZlclByaW1pdGl2ZS5Db250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BvdmVyUHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgYWxpZ24gPSBcImNlbnRlclwiLCBzaWRlT2Zmc2V0ID0gNCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxQb3BvdmVyUHJpbWl0aXZlLlBvcnRhbD5cbiAgICA8UG9wb3ZlclByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgIHNpZGVPZmZzZXQ9e3NpZGVPZmZzZXR9XG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBcInotNTAgdy03MiByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUgZGF0YS1bc3RhdGU9b3Blbl06em9vbS1pbi05NSBkYXRhLVtzaWRlPWJvdHRvbV06c2xpZGUtaW4tZnJvbS10b3AtMiBkYXRhLVtzaWRlPWxlZnRdOnNsaWRlLWluLWZyb20tcmlnaHQtMiBkYXRhLVtzaWRlPXJpZ2h0XTpzbGlkZS1pbi1mcm9tLWxlZnQtMiBkYXRhLVtzaWRlPXRvcF06c2xpZGUtaW4tZnJvbS1ib3R0b20tMlwiLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgPC9Qb3BvdmVyUHJpbWl0aXZlLlBvcnRhbD5cbikpXG5Qb3BvdmVyQ29udGVudC5kaXNwbGF5TmFtZSA9IFBvcG92ZXJQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBQb3BvdmVyLCBQb3BvdmVyVHJpZ2dlciwgUG9wb3ZlckNvbnRlbnQsIFBvcG92ZXJBbmNob3IgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiUG9wb3ZlclByaW1pdGl2ZSIsImNuIiwiUG9wb3ZlciIsIlJvb3QiLCJQb3BvdmVyVHJpZ2dlciIsIlRyaWdnZXIiLCJQb3BvdmVyQW5jaG9yIiwiQW5jaG9yIiwiUG9wb3ZlckNvbnRlbnQiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwiYWxpZ24iLCJzaWRlT2Zmc2V0IiwicHJvcHMiLCJQb3J0YWwiLCJDb250ZW50IiwiZGlzcGxheU5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/popover.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/select.tsx": /*!**********************************!*\ !*** ./components/ui/select.tsx ***! \**********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Select: () => (/* binding */ Select),\n/* harmony export */ SelectContent: () => (/* binding */ SelectContent),\n/* harmony export */ SelectGroup: () => (/* binding */ SelectGroup),\n/* harmony export */ SelectItem: () => (/* binding */ SelectItem),\n/* harmony export */ SelectLabel: () => (/* binding */ SelectLabel),\n/* harmony export */ SelectScrollDownButton: () => (/* binding */ SelectScrollDownButton),\n/* harmony export */ SelectScrollUpButton: () => (/* binding */ SelectScrollUpButton),\n/* harmony export */ SelectSeparator: () => (/* binding */ SelectSeparator),\n/* harmony export */ SelectTrigger: () => (/* binding */ SelectTrigger),\n/* harmony export */ SelectValue: () => (/* binding */ SelectValue)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-select */ \"(app-pages-browser)/./node_modules/@radix-ui/react-select/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronDown,ChevronUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronDown,ChevronUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronDown,ChevronUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Select,SelectGroup,SelectValue,SelectTrigger,SelectContent,SelectLabel,SelectItem,SelectSeparator,SelectScrollUpButton,SelectScrollDownButton auto */ \n\n\n\n\nconst Select = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst SelectGroup = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Group;\nconst SelectValue = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Value;\nconst SelectTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\", className),\n ...props,\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Icon, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4 opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 29,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 28,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 19,\n columnNumber: 3\n }, undefined);\n});\n_c1 = SelectTrigger;\nSelectTrigger.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Trigger.displayName;\nconst SelectScrollUpButton = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ScrollUpButton, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex cursor-default items-center justify-center py-1\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c2 = SelectScrollUpButton;\nSelectScrollUpButton.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ScrollUpButton.displayName;\nconst SelectScrollDownButton = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ScrollDownButton, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex cursor-default items-center justify-center py-1\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 56,\n columnNumber: 3\n }, undefined);\n});\n_c3 = SelectScrollDownButton;\nSelectScrollDownButton.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ScrollDownButton.displayName;\nconst SelectContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, children, position = \"popper\", ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", position === \"popper\" && \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\", className),\n position: position,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SelectScrollUpButton, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 86,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Viewport, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"p-1\", position === \"popper\" && \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"),\n children: children\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 87,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SelectScrollDownButton, {}, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 96,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 75,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 74,\n columnNumber: 3\n }, undefined);\n});\n_c5 = SelectContent;\nSelectContent.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst SelectLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"px-2 py-1.5 text-sm font-semibold\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 106,\n columnNumber: 3\n }, undefined);\n});\n_c7 = SelectLabel;\nSelectLabel.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Label.displayName;\nconst SelectItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronDown_ChevronUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 128,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 127,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 126,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.ItemText, {\n children: children\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 131,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 118,\n columnNumber: 3\n }, undefined);\n});\n_c9 = SelectItem;\nSelectItem.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Item.displayName;\nconst SelectSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"-mx-1 my-1 h-px bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/select.tsx\",\n lineNumber: 140,\n columnNumber: 3\n }, undefined);\n});\n_c11 = SelectSeparator;\nSelectSeparator.displayName = _radix_ui_react_select__WEBPACK_IMPORTED_MODULE_3__.Separator.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11;\n$RefreshReg$(_c, \"SelectTrigger$React.forwardRef\");\n$RefreshReg$(_c1, \"SelectTrigger\");\n$RefreshReg$(_c2, \"SelectScrollUpButton\");\n$RefreshReg$(_c3, \"SelectScrollDownButton\");\n$RefreshReg$(_c4, \"SelectContent$React.forwardRef\");\n$RefreshReg$(_c5, \"SelectContent\");\n$RefreshReg$(_c6, \"SelectLabel$React.forwardRef\");\n$RefreshReg$(_c7, \"SelectLabel\");\n$RefreshReg$(_c8, \"SelectItem$React.forwardRef\");\n$RefreshReg$(_c9, \"SelectItem\");\n$RefreshReg$(_c10, \"SelectSeparator$React.forwardRef\");\n$RefreshReg$(_c11, \"SelectSeparator\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvc2VsZWN0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRThCO0FBQzJCO0FBQ0c7QUFFNUI7QUFFaEMsTUFBTU0sU0FBU0wsd0RBQW9CO0FBRW5DLE1BQU1PLGNBQWNQLHlEQUFxQjtBQUV6QyxNQUFNUyxjQUFjVCx5REFBcUI7QUFFekMsTUFBTVcsOEJBQWdCWiw2Q0FBZ0IsTUFHcEMsUUFBb0NjO1FBQW5DLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ2xDLDhEQUFDaEIsMkRBQXVCO1FBQ3RCYSxLQUFLQTtRQUNMQyxXQUFXViw4Q0FBRUEsQ0FDWCwyVEFDQVU7UUFFRCxHQUFHRSxLQUFLOztZQUVSRDswQkFDRCw4REFBQ2Ysd0RBQW9CO2dCQUFDbUIsT0FBTzswQkFDM0IsNEVBQUNqQix1R0FBV0E7b0JBQUNZLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJN0JILGNBQWNTLFdBQVcsR0FBR3BCLDJEQUF1QixDQUFDb0IsV0FBVztBQUUvRCxNQUFNQyxxQ0FBdUJ0Qiw2Q0FBZ0IsQ0FHM0MsUUFBMEJjO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHRSxPQUFPO3lCQUN4Qiw4REFBQ2hCLGtFQUE4QjtRQUM3QmEsS0FBS0E7UUFDTEMsV0FBV1YsOENBQUVBLENBQ1gsd0RBQ0FVO1FBRUQsR0FBR0UsS0FBSztrQkFFVCw0RUFBQ2IsdUdBQVNBO1lBQUNXLFdBQVU7Ozs7Ozs7Ozs7OztNQVpuQk87QUFlTkEscUJBQXFCRCxXQUFXLEdBQUdwQixrRUFBOEIsQ0FBQ29CLFdBQVc7QUFFN0UsTUFBTUcsdUNBQXlCeEIsNkNBQWdCLENBRzdDLFFBQTBCYztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0UsT0FBTzt5QkFDeEIsOERBQUNoQixvRUFBZ0M7UUFDL0JhLEtBQUtBO1FBQ0xDLFdBQVdWLDhDQUFFQSxDQUNYLHdEQUNBVTtRQUVELEdBQUdFLEtBQUs7a0JBRVQsNEVBQUNkLHVHQUFXQTtZQUFDWSxXQUFVOzs7Ozs7Ozs7Ozs7TUFackJTO0FBZU5BLHVCQUF1QkgsV0FBVyxHQUNoQ3BCLG9FQUFnQyxDQUFDb0IsV0FBVztBQUU5QyxNQUFNSyw4QkFBZ0IxQiw2Q0FBZ0IsT0FHcEMsUUFBeURjO1FBQXhELEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFVyxXQUFXLFFBQVEsRUFBRSxHQUFHVixPQUFPO3lCQUN2RCw4REFBQ2hCLDBEQUFzQjtrQkFDckIsNEVBQUNBLDJEQUF1QjtZQUN0QmEsS0FBS0E7WUFDTEMsV0FBV1YsOENBQUVBLENBQ1gsdWNBQ0FzQixhQUFhLFlBQ1gsbUlBQ0ZaO1lBRUZZLFVBQVVBO1lBQ1QsR0FBR1YsS0FBSzs7OEJBRVQsOERBQUNLOzs7Ozs4QkFDRCw4REFBQ3JCLDREQUF3QjtvQkFDdkJjLFdBQVdWLDhDQUFFQSxDQUNYLE9BQ0FzQixhQUFhLFlBQ1g7OEJBR0hYOzs7Ozs7OEJBRUgsOERBQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJUEUsY0FBY0wsV0FBVyxHQUFHcEIsMkRBQXVCLENBQUNvQixXQUFXO0FBRS9ELE1BQU1VLDRCQUFjL0IsNkNBQWdCLE9BR2xDLFFBQTBCYztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0UsT0FBTzt5QkFDeEIsOERBQUNoQix5REFBcUI7UUFDcEJhLEtBQUtBO1FBQ0xDLFdBQVdWLDhDQUFFQSxDQUFDLHFDQUFxQ1U7UUFDbEQsR0FBR0UsS0FBSzs7Ozs7Ozs7QUFHYmMsWUFBWVYsV0FBVyxHQUFHcEIseURBQXFCLENBQUNvQixXQUFXO0FBRTNELE1BQU1ZLDJCQUFhakMsNkNBQWdCLE9BR2pDLFFBQW9DYztRQUFuQyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxPQUFPO3lCQUNsQyw4REFBQ2hCLHdEQUFvQjtRQUNuQmEsS0FBS0E7UUFDTEMsV0FBV1YsOENBQUVBLENBQ1gsNk5BQ0FVO1FBRUQsR0FBR0UsS0FBSzs7MEJBRVQsOERBQUNrQjtnQkFBS3BCLFdBQVU7MEJBQ2QsNEVBQUNkLGlFQUE2Qjs4QkFDNUIsNEVBQUNDLHVHQUFLQTt3QkFBQ2EsV0FBVTs7Ozs7Ozs7Ozs7Ozs7OzswQkFHckIsOERBQUNkLDREQUF3QjswQkFBRWU7Ozs7Ozs7Ozs7Ozs7O0FBRy9CaUIsV0FBV1osV0FBVyxHQUFHcEIsd0RBQW9CLENBQUNvQixXQUFXO0FBRXpELE1BQU1pQixnQ0FBa0J0Qyw2Q0FBZ0IsUUFHdEMsUUFBMEJjO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHRSxPQUFPO3lCQUN4Qiw4REFBQ2hCLDZEQUF5QjtRQUN4QmEsS0FBS0E7UUFDTEMsV0FBV1YsOENBQUVBLENBQUMsNEJBQTRCVTtRQUN6QyxHQUFHRSxLQUFLOzs7Ozs7OztBQUdicUIsZ0JBQWdCakIsV0FBVyxHQUFHcEIsNkRBQXlCLENBQUNvQixXQUFXO0FBYWxFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvdWkvc2VsZWN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgU2VsZWN0UHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2VsZWN0XCJcbmltcG9ydCB7IENoZWNrLCBDaGV2cm9uRG93biwgQ2hldnJvblVwIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgU2VsZWN0ID0gU2VsZWN0UHJpbWl0aXZlLlJvb3RcblxuY29uc3QgU2VsZWN0R3JvdXAgPSBTZWxlY3RQcmltaXRpdmUuR3JvdXBcblxuY29uc3QgU2VsZWN0VmFsdWUgPSBTZWxlY3RQcmltaXRpdmUuVmFsdWVcblxuY29uc3QgU2VsZWN0VHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFNlbGVjdFByaW1pdGl2ZS5UcmlnZ2VyPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTZWxlY3RQcmltaXRpdmUuVHJpZ2dlcj5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTZWxlY3RQcmltaXRpdmUuVHJpZ2dlclxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggaC05IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy10cmFuc3BhcmVudCBweC0zIHB5LTIgdGV4dC1zbSBzaGFkb3ctc20gcmluZy1vZmZzZXQtYmFja2dyb3VuZCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLXJpbmcgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgWyY+c3Bhbl06bGluZS1jbGFtcC0xXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIHtjaGlsZHJlbn1cbiAgICA8U2VsZWN0UHJpbWl0aXZlLkljb24gYXNDaGlsZD5cbiAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJoLTQgdy00IG9wYWNpdHktNTBcIiAvPlxuICAgIDwvU2VsZWN0UHJpbWl0aXZlLkljb24+XG4gIDwvU2VsZWN0UHJpbWl0aXZlLlRyaWdnZXI+XG4pKVxuU2VsZWN0VHJpZ2dlci5kaXNwbGF5TmFtZSA9IFNlbGVjdFByaW1pdGl2ZS5UcmlnZ2VyLmRpc3BsYXlOYW1lXG5cbmNvbnN0IFNlbGVjdFNjcm9sbFVwQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgU2VsZWN0UHJpbWl0aXZlLlNjcm9sbFVwQnV0dG9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTZWxlY3RQcmltaXRpdmUuU2Nyb2xsVXBCdXR0b24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTZWxlY3RQcmltaXRpdmUuU2Nyb2xsVXBCdXR0b25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGN1cnNvci1kZWZhdWx0IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxDaGV2cm9uVXAgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gIDwvU2VsZWN0UHJpbWl0aXZlLlNjcm9sbFVwQnV0dG9uPlxuKSlcblNlbGVjdFNjcm9sbFVwQnV0dG9uLmRpc3BsYXlOYW1lID0gU2VsZWN0UHJpbWl0aXZlLlNjcm9sbFVwQnV0dG9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IFNlbGVjdFNjcm9sbERvd25CdXR0b24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTZWxlY3RQcmltaXRpdmUuU2Nyb2xsRG93bkJ1dHRvbj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgU2VsZWN0UHJpbWl0aXZlLlNjcm9sbERvd25CdXR0b24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTZWxlY3RQcmltaXRpdmUuU2Nyb2xsRG93bkJ1dHRvblxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggY3Vyc29yLWRlZmF1bHQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTFcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPENoZXZyb25Eb3duIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICA8L1NlbGVjdFByaW1pdGl2ZS5TY3JvbGxEb3duQnV0dG9uPlxuKSlcblNlbGVjdFNjcm9sbERvd25CdXR0b24uZGlzcGxheU5hbWUgPVxuICBTZWxlY3RQcmltaXRpdmUuU2Nyb2xsRG93bkJ1dHRvbi5kaXNwbGF5TmFtZVxuXG5jb25zdCBTZWxlY3RDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgU2VsZWN0UHJpbWl0aXZlLkNvbnRlbnQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFNlbGVjdFByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIGNoaWxkcmVuLCBwb3NpdGlvbiA9IFwicG9wcGVyXCIsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8U2VsZWN0UHJpbWl0aXZlLlBvcnRhbD5cbiAgICA8U2VsZWN0UHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJyZWxhdGl2ZSB6LTUwIG1heC1oLTk2IG1pbi13LVs4cmVtXSBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1tZCBib3JkZXIgYmctcG9wb3ZlciB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1vcGVuXTpmYWRlLWluLTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NSBkYXRhLVtzdGF0ZT1vcGVuXTp6b29tLWluLTk1IGRhdGEtW3NpZGU9Ym90dG9tXTpzbGlkZS1pbi1mcm9tLXRvcC0yIGRhdGEtW3NpZGU9bGVmdF06c2xpZGUtaW4tZnJvbS1yaWdodC0yIGRhdGEtW3NpZGU9cmlnaHRdOnNsaWRlLWluLWZyb20tbGVmdC0yIGRhdGEtW3NpZGU9dG9wXTpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yXCIsXG4gICAgICAgIHBvc2l0aW9uID09PSBcInBvcHBlclwiICYmXG4gICAgICAgICAgXCJkYXRhLVtzaWRlPWJvdHRvbV06dHJhbnNsYXRlLXktMSBkYXRhLVtzaWRlPWxlZnRdOi10cmFuc2xhdGUteC0xIGRhdGEtW3NpZGU9cmlnaHRdOnRyYW5zbGF0ZS14LTEgZGF0YS1bc2lkZT10b3BdOi10cmFuc2xhdGUteS0xXCIsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbn1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8U2VsZWN0U2Nyb2xsVXBCdXR0b24gLz5cbiAgICAgIDxTZWxlY3RQcmltaXRpdmUuVmlld3BvcnRcbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICBcInAtMVwiLFxuICAgICAgICAgIHBvc2l0aW9uID09PSBcInBvcHBlclwiICYmXG4gICAgICAgICAgICBcImgtW3ZhcigtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodCldIHctZnVsbCBtaW4tdy1bdmFyKC0tcmFkaXgtc2VsZWN0LXRyaWdnZXItd2lkdGgpXVwiXG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU2VsZWN0UHJpbWl0aXZlLlZpZXdwb3J0PlxuICAgICAgPFNlbGVjdFNjcm9sbERvd25CdXR0b24gLz5cbiAgICA8L1NlbGVjdFByaW1pdGl2ZS5Db250ZW50PlxuICA8L1NlbGVjdFByaW1pdGl2ZS5Qb3J0YWw+XG4pKVxuU2VsZWN0Q29udGVudC5kaXNwbGF5TmFtZSA9IFNlbGVjdFByaW1pdGl2ZS5Db250ZW50LmRpc3BsYXlOYW1lXG5cbmNvbnN0IFNlbGVjdExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgU2VsZWN0UHJpbWl0aXZlLkxhYmVsPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTZWxlY3RQcmltaXRpdmUuTGFiZWw+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTZWxlY3RQcmltaXRpdmUuTGFiZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwicHgtMiBweS0xLjUgdGV4dC1zbSBmb250LXNlbWlib2xkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcblNlbGVjdExhYmVsLmRpc3BsYXlOYW1lID0gU2VsZWN0UHJpbWl0aXZlLkxhYmVsLmRpc3BsYXlOYW1lXG5cbmNvbnN0IFNlbGVjdEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTZWxlY3RQcmltaXRpdmUuSXRlbT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgU2VsZWN0UHJpbWl0aXZlLkl0ZW0+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8U2VsZWN0UHJpbWl0aXZlLkl0ZW1cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJyZWxhdGl2ZSBmbGV4IHctZnVsbCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweS0xLjUgcGwtMiBwci04IHRleHQtc20gb3V0bGluZS1ub25lIGZvY3VzOmJnLWFjY2VudCBmb2N1czp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtW2Rpc2FibGVkXTpwb2ludGVyLWV2ZW50cy1ub25lIGRhdGEtW2Rpc2FibGVkXTpvcGFjaXR5LTUwXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTIgZmxleCBoLTMuNSB3LTMuNSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxTZWxlY3RQcmltaXRpdmUuSXRlbUluZGljYXRvcj5cbiAgICAgICAgPENoZWNrIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgPC9TZWxlY3RQcmltaXRpdmUuSXRlbUluZGljYXRvcj5cbiAgICA8L3NwYW4+XG4gICAgPFNlbGVjdFByaW1pdGl2ZS5JdGVtVGV4dD57Y2hpbGRyZW59PC9TZWxlY3RQcmltaXRpdmUuSXRlbVRleHQ+XG4gIDwvU2VsZWN0UHJpbWl0aXZlLkl0ZW0+XG4pKVxuU2VsZWN0SXRlbS5kaXNwbGF5TmFtZSA9IFNlbGVjdFByaW1pdGl2ZS5JdGVtLmRpc3BsYXlOYW1lXG5cbmNvbnN0IFNlbGVjdFNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFNlbGVjdFByaW1pdGl2ZS5TZXBhcmF0b3I+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFNlbGVjdFByaW1pdGl2ZS5TZXBhcmF0b3I+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTZWxlY3RQcmltaXRpdmUuU2VwYXJhdG9yXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcIi1teC0xIG15LTEgaC1weCBiZy1tdXRlZFwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5TZWxlY3RTZXBhcmF0b3IuZGlzcGxheU5hbWUgPSBTZWxlY3RQcmltaXRpdmUuU2VwYXJhdG9yLmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7XG4gIFNlbGVjdCxcbiAgU2VsZWN0R3JvdXAsXG4gIFNlbGVjdFZhbHVlLFxuICBTZWxlY3RUcmlnZ2VyLFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RMYWJlbCxcbiAgU2VsZWN0SXRlbSxcbiAgU2VsZWN0U2VwYXJhdG9yLFxuICBTZWxlY3RTY3JvbGxVcEJ1dHRvbixcbiAgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvbixcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNlbGVjdFByaW1pdGl2ZSIsIkNoZWNrIiwiQ2hldnJvbkRvd24iLCJDaGV2cm9uVXAiLCJjbiIsIlNlbGVjdCIsIlJvb3QiLCJTZWxlY3RHcm91cCIsIkdyb3VwIiwiU2VsZWN0VmFsdWUiLCJWYWx1ZSIsIlNlbGVjdFRyaWdnZXIiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJwcm9wcyIsIlRyaWdnZXIiLCJJY29uIiwiYXNDaGlsZCIsImRpc3BsYXlOYW1lIiwiU2VsZWN0U2Nyb2xsVXBCdXR0b24iLCJTY3JvbGxVcEJ1dHRvbiIsIlNlbGVjdFNjcm9sbERvd25CdXR0b24iLCJTY3JvbGxEb3duQnV0dG9uIiwiU2VsZWN0Q29udGVudCIsInBvc2l0aW9uIiwiUG9ydGFsIiwiQ29udGVudCIsIlZpZXdwb3J0IiwiU2VsZWN0TGFiZWwiLCJMYWJlbCIsIlNlbGVjdEl0ZW0iLCJJdGVtIiwic3BhbiIsIkl0ZW1JbmRpY2F0b3IiLCJJdGVtVGV4dCIsIlNlbGVjdFNlcGFyYXRvciIsIlNlcGFyYXRvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/select.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/separator.tsx": /*!*************************************!*\ !*** ./components/ui/separator.tsx ***! \*************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Separator: () => (/* binding */ Separator)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-separator */ \"(app-pages-browser)/./node_modules/@radix-ui/react-separator/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Separator auto */ \n\n\n\nconst Separator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, orientation = \"horizontal\", decorative = true, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n decorative: decorative,\n orientation: orientation,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"shrink-0 bg-border\", orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/separator.tsx\",\n lineNumber: 16,\n columnNumber: 5\n }, undefined);\n});\n_c1 = Separator;\nSeparator.displayName = _radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Separator$React.forwardRef\");\n$RefreshReg$(_c1, \"Separator\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvc2VwYXJhdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRThCO0FBQ2lDO0FBRS9CO0FBRWhDLE1BQU1HLDBCQUFZSCw2Q0FBZ0IsTUFJaEMsUUFFRUs7UUFEQSxFQUFFQyxTQUFTLEVBQUVDLGNBQWMsWUFBWSxFQUFFQyxhQUFhLElBQUksRUFBRSxHQUFHQyxPQUFPO3lCQUd0RSw4REFBQ1IsMkRBQXVCO1FBQ3RCSSxLQUFLQTtRQUNMRyxZQUFZQTtRQUNaRCxhQUFhQTtRQUNiRCxXQUFXSiw4Q0FBRUEsQ0FDWCxzQkFDQUssZ0JBQWdCLGVBQWUsbUJBQW1CLGtCQUNsREQ7UUFFRCxHQUFHRyxLQUFLOzs7Ozs7OztBQUlmTixVQUFVUSxXQUFXLEdBQUdWLDJEQUF1QixDQUFDVSxXQUFXO0FBRXZDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2NvbXBvbmVudHMvdWkvc2VwYXJhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgU2VwYXJhdG9yUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2VwYXJhdG9yXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuXG5jb25zdCBTZXBhcmF0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTZXBhcmF0b3JQcmltaXRpdmUuUm9vdD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgU2VwYXJhdG9yUHJpbWl0aXZlLlJvb3Q+XG4+KFxuICAoXG4gICAgeyBjbGFzc05hbWUsIG9yaWVudGF0aW9uID0gXCJob3Jpem9udGFsXCIsIGRlY29yYXRpdmUgPSB0cnVlLCAuLi5wcm9wcyB9LFxuICAgIHJlZlxuICApID0+IChcbiAgICA8U2VwYXJhdG9yUHJpbWl0aXZlLlJvb3RcbiAgICAgIHJlZj17cmVmfVxuICAgICAgZGVjb3JhdGl2ZT17ZGVjb3JhdGl2ZX1cbiAgICAgIG9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwic2hyaW5rLTAgYmctYm9yZGVyXCIsXG4gICAgICAgIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IFwiaC1bMXB4XSB3LWZ1bGxcIiA6IFwiaC1mdWxsIHctWzFweF1cIixcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbilcblNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNlcGFyYXRvclByaW1pdGl2ZS5Sb290LmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7IFNlcGFyYXRvciB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTZXBhcmF0b3JQcmltaXRpdmUiLCJjbiIsIlNlcGFyYXRvciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJvcmllbnRhdGlvbiIsImRlY29yYXRpdmUiLCJwcm9wcyIsIlJvb3QiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/separator.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/table.tsx": /*!*********************************!*\ !*** ./components/ui/table.tsx ***! \*********************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Table: () => (/* binding */ Table),\n/* harmony export */ TableBody: () => (/* binding */ TableBody),\n/* harmony export */ TableCaption: () => (/* binding */ TableCaption),\n/* harmony export */ TableCell: () => (/* binding */ TableCell),\n/* harmony export */ TableFooter: () => (/* binding */ TableFooter),\n/* harmony export */ TableHead: () => (/* binding */ TableHead),\n/* harmony export */ TableHeader: () => (/* binding */ TableHeader),\n/* harmony export */ TableRow: () => (/* binding */ TableRow)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Table = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full overflow-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"w-full caption-bottom text-sm\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 10,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 9,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Table;\nTable.displayName = \"Table\";\nconst TableHeader = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"[&_tr]:border-b\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 23,\n columnNumber: 3\n }, undefined);\n});\n_c3 = TableHeader;\nTableHeader.displayName = \"TableHeader\";\nconst TableBody = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"[&_tr:last-child]:border-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 31,\n columnNumber: 3\n }, undefined);\n});\n_c5 = TableBody;\nTableBody.displayName = \"TableBody\";\nconst TableFooter = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tfoot\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 43,\n columnNumber: 3\n }, undefined);\n});\n_c7 = TableFooter;\nTableFooter.displayName = \"TableFooter\";\nconst TableRow = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 58,\n columnNumber: 3\n }, undefined);\n});\n_c9 = TableRow;\nTableRow.displayName = \"TableRow\";\nconst TableHead = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 73,\n columnNumber: 3\n }, undefined);\n});\n_c11 = TableHead;\nTableHead.displayName = \"TableHead\";\nconst TableCell = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c12 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 88,\n columnNumber: 3\n }, undefined);\n});\n_c13 = TableCell;\nTableCell.displayName = \"TableCell\";\nconst TableCaption = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c14 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"caption\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"mt-4 text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/hectorzea/dev/frontbuild/frontend/components/ui/table.tsx\",\n lineNumber: 103,\n columnNumber: 3\n }, undefined);\n});\n_c15 = TableCaption;\nTableCaption.displayName = \"TableCaption\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15;\n$RefreshReg$(_c, \"Table$React.forwardRef\");\n$RefreshReg$(_c1, \"Table\");\n$RefreshReg$(_c2, \"TableHeader$React.forwardRef\");\n$RefreshReg$(_c3, \"TableHeader\");\n$RefreshReg$(_c4, \"TableBody$React.forwardRef\");\n$RefreshReg$(_c5, \"TableBody\");\n$RefreshReg$(_c6, \"TableFooter$React.forwardRef\");\n$RefreshReg$(_c7, \"TableFooter\");\n$RefreshReg$(_c8, \"TableRow$React.forwardRef\");\n$RefreshReg$(_c9, \"TableRow\");\n$RefreshReg$(_c10, \"TableHead$React.forwardRef\");\n$RefreshReg$(_c11, \"TableHead\");\n$RefreshReg$(_c12, \"TableCell$React.forwardRef\");\n$RefreshReg$(_c13, \"TableCell\");\n$RefreshReg$(_c14, \"TableCaption$React.forwardRef\");\n$RefreshReg$(_c15, \"TableCaption\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGFibGUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEI7QUFFRTtBQUVoQyxNQUFNRSxzQkFBUUYsNkNBQWdCLE1BRzVCLFFBQTBCSTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNDO1FBQUlGLFdBQVU7a0JBQ2IsNEVBQUNHO1lBQ0NKLEtBQUtBO1lBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLGlDQUFpQ0k7WUFDOUMsR0FBR0MsS0FBSzs7Ozs7Ozs7Ozs7OztBQUlmSixNQUFNTyxXQUFXLEdBQUc7QUFFcEIsTUFBTUMsNEJBQWNWLDZDQUFnQixPQUdsQyxRQUEwQkk7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDSztRQUFNUCxLQUFLQTtRQUFLQyxXQUFXSiw4Q0FBRUEsQ0FBQyxtQkFBbUJJO1FBQWEsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFFekVJLFlBQVlELFdBQVcsR0FBRztBQUUxQixNQUFNRywwQkFBWVosNkNBQWdCLE9BR2hDLFFBQTBCSTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNPO1FBQ0NULEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLDhCQUE4Qkk7UUFDM0MsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYk0sVUFBVUgsV0FBVyxHQUFHO0FBRXhCLE1BQU1LLDRCQUFjZCw2Q0FBZ0IsT0FHbEMsUUFBMEJJO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ1M7UUFDQ1gsS0FBS0E7UUFDTEMsV0FBV0osOENBQUVBLENBQ1gsMkRBQ0FJO1FBRUQsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYlEsWUFBWUwsV0FBVyxHQUFHO0FBRTFCLE1BQU1PLHlCQUFXaEIsNkNBQWdCLE9BRy9CLFFBQTBCSTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNXO1FBQ0NiLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLCtFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JVLFNBQVNQLFdBQVcsR0FBRztBQUV2QixNQUFNUywwQkFBWWxCLDZDQUFnQixRQUdoQyxRQUEwQkk7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDYTtRQUNDZixLQUFLQTtRQUNMQyxXQUFXSiw4Q0FBRUEsQ0FDWCwwSUFDQUk7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiWSxVQUFVVCxXQUFXLEdBQUc7QUFFeEIsTUFBTVcsMEJBQVlwQiw2Q0FBZ0IsUUFHaEMsUUFBMEJJO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2U7UUFDQ2pCLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLHdGQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JjLFVBQVVYLFdBQVcsR0FBRztBQUV4QixNQUFNYSw2QkFBZXRCLDZDQUFnQixRQUduQyxRQUEwQkk7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDaUI7UUFDQ25CLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLHNDQUFzQ0k7UUFDbkQsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYmdCLGFBQWFiLFdBQVcsR0FBRztBQVcxQiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9jb21wb25lbnRzL3VpL3RhYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IFRhYmxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFRhYmxlRWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFRhYmxlRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctYXV0b1wiPlxuICAgIDx0YWJsZVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBjbGFzc05hbWU9e2NuKFwidy1mdWxsIGNhcHRpb24tYm90dG9tIHRleHQtc21cIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICA8L2Rpdj5cbikpXG5UYWJsZS5kaXNwbGF5TmFtZSA9IFwiVGFibGVcIlxuXG5jb25zdCBUYWJsZUhlYWRlciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPHRoZWFkIHJlZj17cmVmfSBjbGFzc05hbWU9e2NuKFwiWyZfdHJdOmJvcmRlci1iXCIsIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30gLz5cbikpXG5UYWJsZUhlYWRlci5kaXNwbGF5TmFtZSA9IFwiVGFibGVIZWFkZXJcIlxuXG5jb25zdCBUYWJsZUJvZHkgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDx0Ym9keVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJbJl90cjpsYXN0LWNoaWxkXTpib3JkZXItMFwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJsZUJvZHkuZGlzcGxheU5hbWUgPSBcIlRhYmxlQm9keVwiXG5cbmNvbnN0IFRhYmxlRm9vdGVyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8dGZvb3RcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJib3JkZXItdCBiZy1tdXRlZC81MCBmb250LW1lZGl1bSBbJj50cl06bGFzdDpib3JkZXItYi0wXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJsZUZvb3Rlci5kaXNwbGF5TmFtZSA9IFwiVGFibGVGb290ZXJcIlxuXG5jb25zdCBUYWJsZVJvdyA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxUYWJsZVJvd0VsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZVJvd0VsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDx0clxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImJvcmRlci1iIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLW11dGVkLzUwIGRhdGEtW3N0YXRlPXNlbGVjdGVkXTpiZy1tdXRlZFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuVGFibGVSb3cuZGlzcGxheU5hbWUgPSBcIlRhYmxlUm93XCJcblxuY29uc3QgVGFibGVIZWFkID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFRhYmxlQ2VsbEVsZW1lbnQsXG4gIFJlYWN0LlRoSFRNTEF0dHJpYnV0ZXM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDx0aFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImgtMTAgcHgtMiB0ZXh0LWxlZnQgYWxpZ24tbWlkZGxlIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBbJjpoYXMoW3JvbGU9Y2hlY2tib3hdKV06cHItMCBbJj5bcm9sZT1jaGVja2JveF1dOnRyYW5zbGF0ZS15LVsycHhdXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJsZUhlYWQuZGlzcGxheU5hbWUgPSBcIlRhYmxlSGVhZFwiXG5cbmNvbnN0IFRhYmxlQ2VsbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxUYWJsZUNlbGxFbGVtZW50LFxuICBSZWFjdC5UZEhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZUNlbGxFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8dGRcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJwLTIgYWxpZ24tbWlkZGxlIFsmOmhhcyhbcm9sZT1jaGVja2JveF0pXTpwci0wIFsmPltyb2xlPWNoZWNrYm94XV06dHJhbnNsYXRlLXktWzJweF1cIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcblRhYmxlQ2VsbC5kaXNwbGF5TmFtZSA9IFwiVGFibGVDZWxsXCJcblxuY29uc3QgVGFibGVDYXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8Y2FwdGlvblxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJtdC00IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcblRhYmxlQ2FwdGlvbi5kaXNwbGF5TmFtZSA9IFwiVGFibGVDYXB0aW9uXCJcblxuZXhwb3J0IHtcbiAgVGFibGUsXG4gIFRhYmxlSGVhZGVyLFxuICBUYWJsZUJvZHksXG4gIFRhYmxlRm9vdGVyLFxuICBUYWJsZUhlYWQsXG4gIFRhYmxlUm93LFxuICBUYWJsZUNlbGwsXG4gIFRhYmxlQ2FwdGlvbixcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImNuIiwiVGFibGUiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJkaXYiLCJ0YWJsZSIsImRpc3BsYXlOYW1lIiwiVGFibGVIZWFkZXIiLCJ0aGVhZCIsIlRhYmxlQm9keSIsInRib2R5IiwiVGFibGVGb290ZXIiLCJ0Zm9vdCIsIlRhYmxlUm93IiwidHIiLCJUYWJsZUhlYWQiLCJ0aCIsIlRhYmxlQ2VsbCIsInRkIiwiVGFibGVDYXB0aW9uIiwiY2FwdGlvbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/table.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/app/appSlice.ts": /*!**************************************!*\ !*** ./lib/features/app/appSlice.ts ***! \**************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ appSlice: () => (/* binding */ appSlice),\n/* harmony export */ selectLabels: () => (/* binding */ selectLabels),\n/* harmony export */ selectPriorities: () => (/* binding */ selectPriorities),\n/* harmony export */ selectStatuses: () => (/* binding */ selectStatuses),\n/* harmony export */ setAppData: () => (/* binding */ setAppData)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs\");\n\nconst initialState = {\n labels: [],\n statuses: [],\n priorities: []\n};\nconst appSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({\n name: 'app',\n initialState,\n reducers: {\n setAppData: (state, action)=>{\n state.labels = action.payload.labels;\n state.statuses = action.payload.statuses;\n state.priorities = action.payload.priorities;\n }\n },\n selectors: {\n selectLabels: (app)=>app.labels,\n selectPriorities: (app)=>app.priorities,\n selectStatuses: (app)=>app.statuses\n }\n});\nconst { setAppData } = appSlice.actions;\nconst { selectLabels, selectPriorities, selectStatuses } = appSlice.selectors;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy9hcHAvYXBwU2xpY2UudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQzhEO0FBUzlELE1BQU1DLGVBQXlCO0lBQzNCQyxRQUFRLEVBQUU7SUFDVkMsVUFBVSxFQUFFO0lBQ1pDLFlBQVksRUFBRTtBQUNsQjtBQUVPLE1BQU1DLFdBQVdMLDZEQUFXQSxDQUFDO0lBQ2hDTSxNQUFNO0lBQ05MO0lBQ0FNLFVBQVU7UUFDTkMsWUFBWSxDQUFDQyxPQUFPQztZQUNoQkQsTUFBTVAsTUFBTSxHQUFHUSxPQUFPQyxPQUFPLENBQUNULE1BQU07WUFDcENPLE1BQU1OLFFBQVEsR0FBR08sT0FBT0MsT0FBTyxDQUFDUixRQUFRO1lBQ3hDTSxNQUFNTCxVQUFVLEdBQUdNLE9BQU9DLE9BQU8sQ0FBQ1AsVUFBVTtRQUNoRDtJQUNKO0lBQ0FRLFdBQVc7UUFDUEMsY0FBYyxDQUFDQyxNQUFRQSxJQUFJWixNQUFNO1FBQ2pDYSxrQkFBa0IsQ0FBQ0QsTUFBUUEsSUFBSVYsVUFBVTtRQUN6Q1ksZ0JBQWdCLENBQUNGLE1BQVFBLElBQUlYLFFBQVE7SUFDekM7QUFJSixHQUFHO0FBRUksTUFBTSxFQUFFSyxVQUFVLEVBQUUsR0FBR0gsU0FBU1ksT0FBTyxDQUFDO0FBRXhDLE1BQU0sRUFBRUosWUFBWSxFQUFFRSxnQkFBZ0IsRUFBRUMsY0FBYyxFQUFFLEdBQUdYLFNBQVNPLFNBQVMsQ0FBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9saWIvZmVhdHVyZXMvYXBwL2FwcFNsaWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhYmVsLCBQcmlvcml0eSwgU3RhdHVzIH0gZnJvbSAnQC9hcHAvdHlwZXMvYXBpL0FwaSc7XG5pbXBvcnQgeyBjcmVhdGVTbGljZSwgUGF5bG9hZEFjdGlvbiB9IGZyb20gJ0ByZWR1eGpzL3Rvb2xraXQnO1xuXG5cbmludGVyZmFjZSBBcHBTdGF0ZSB7XG4gICAgbGFiZWxzOiBMYWJlbFtdIHwgdW5kZWZpbmVkO1xuICAgIHN0YXR1c2VzOiBTdGF0dXNbXSB8IHVuZGVmaW5lZDtcbiAgICBwcmlvcml0aWVzOiBQcmlvcml0eVtdIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IEFwcFN0YXRlID0ge1xuICAgIGxhYmVsczogW10sXG4gICAgc3RhdHVzZXM6IFtdLFxuICAgIHByaW9yaXRpZXM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgYXBwU2xpY2UgPSBjcmVhdGVTbGljZSh7XG4gICAgbmFtZTogJ2FwcCcsXG4gICAgaW5pdGlhbFN0YXRlLFxuICAgIHJlZHVjZXJzOiB7XG4gICAgICAgIHNldEFwcERhdGE6IChzdGF0ZSwgYWN0aW9uOiBQYXlsb2FkQWN0aW9uPEFwcFN0YXRlPikgPT4ge1xuICAgICAgICAgICAgc3RhdGUubGFiZWxzID0gYWN0aW9uLnBheWxvYWQubGFiZWxzO1xuICAgICAgICAgICAgc3RhdGUuc3RhdHVzZXMgPSBhY3Rpb24ucGF5bG9hZC5zdGF0dXNlcztcbiAgICAgICAgICAgIHN0YXRlLnByaW9yaXRpZXMgPSBhY3Rpb24ucGF5bG9hZC5wcmlvcml0aWVzO1xuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIHNlbGVjdExhYmVsczogKGFwcCkgPT4gYXBwLmxhYmVscyxcbiAgICAgICAgc2VsZWN0UHJpb3JpdGllczogKGFwcCkgPT4gYXBwLnByaW9yaXRpZXMsXG4gICAgICAgIHNlbGVjdFN0YXR1c2VzOiAoYXBwKSA9PiBhcHAuc3RhdHVzZXMsXG4gICAgfSxcbiAgICAvLyBleHRyYVJlZHVjZXJzOiAoYnVpbGRlcikgPT4ge1xuICAgIC8vICAgICAvLyBtYW5lamFyIGFjY2lvbmVzIGFzw61uY3JvbmFzIGFxdcOtIHNpIGVzIG5lY2VzYXJpb1xuICAgIC8vIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHsgc2V0QXBwRGF0YSB9ID0gYXBwU2xpY2UuYWN0aW9ucztcblxuZXhwb3J0IGNvbnN0IHsgc2VsZWN0TGFiZWxzLCBzZWxlY3RQcmlvcml0aWVzLCBzZWxlY3RTdGF0dXNlcyB9ID0gYXBwU2xpY2Uuc2VsZWN0b3JzOyJdLCJuYW1lcyI6WyJjcmVhdGVTbGljZSIsImluaXRpYWxTdGF0ZSIsImxhYmVscyIsInN0YXR1c2VzIiwicHJpb3JpdGllcyIsImFwcFNsaWNlIiwibmFtZSIsInJlZHVjZXJzIiwic2V0QXBwRGF0YSIsInN0YXRlIiwiYWN0aW9uIiwicGF5bG9hZCIsInNlbGVjdG9ycyIsInNlbGVjdExhYmVscyIsImFwcCIsInNlbGVjdFByaW9yaXRpZXMiLCJzZWxlY3RTdGF0dXNlcyIsImFjdGlvbnMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/app/appSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/label/labelApiSlice.ts": /*!*********************************************!*\ !*** ./lib/features/label/labelApiSlice.ts ***! \*********************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ labelApiSlice: () => (/* binding */ labelApiSlice),\n/* harmony export */ useGetLabelsQuery: () => (/* binding */ useGetLabelsQuery)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs\");\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\");\n// Need to use the React-specific entry point to import `createApi`\n\n// Define a service using a base URL and expected endpoints\nconst labelApiSlice = (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__.createApi)({\n baseQuery: (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__.fetchBaseQuery)({\n baseUrl: \"\".concat(\"http://localhost:8080\", \"/api/labels\")\n }),\n reducerPath: \"labelApi\",\n // Tag types are used for caching and invalidation.\n tagTypes: [\n \"Labels\"\n ],\n endpoints: (build)=>({\n // Supply generics for the return type (in this case `QuotesApiResponse`)\n // and the expected query argument. If there is no argument, use `void`\n // for the argument type instead.\n //build.query<ResponseDelBackend, parametro url que queramos enviar>\n //luego cuando ejecutemos query: (parametroURl) especificado del tipo de arriba obviamente\n getLabels: build.query({\n query: ()=>\"\",\n // `providesTags` determines which 'tag' is attached to the\n // cached data returned by the query.\n // providesTags: (result, error, id) => [{ type: \"Labels\" }],\n providesTags: ()=>[\n {\n type: \"Labels\"\n }\n ]\n })\n })\n});\n// Hooks are auto-generated by RTK-Query\n// Same as `quotesApiSlice.endpoints.getQuotes.useQuery`\nconst { useGetLabelsQuery } = labelApiSlice;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy9sYWJlbC9sYWJlbEFwaVNsaWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxtRUFBbUU7QUFDTTtBQUd6RSwyREFBMkQ7QUFDcEQsTUFBTUUsZ0JBQWdCRix1RUFBU0EsQ0FBQztJQUNuQ0csV0FBV0YsNEVBQWNBLENBQUM7UUFBRUcsU0FBUyxHQUE4QyxPQUEzQ0MsdUJBQTBDLEVBQUM7SUFBYTtJQUNoR0csYUFBYTtJQUNiLG1EQUFtRDtJQUNuREMsVUFBVTtRQUFDO0tBQVM7SUFDcEJDLFdBQVcsQ0FBQ0MsUUFBVztZQUNuQix5RUFBeUU7WUFDekUsdUVBQXVFO1lBQ3ZFLGlDQUFpQztZQUNqQyxvRUFBb0U7WUFDcEUsMEZBQTBGO1lBQzFGQyxXQUFXRCxNQUFNRSxLQUFLLENBQWdCO2dCQUNsQ0EsT0FBTyxJQUFPO2dCQUNkLDJEQUEyRDtnQkFDM0QscUNBQXFDO2dCQUNyQyw4REFBOEQ7Z0JBQzlEQyxjQUFjLElBQU07d0JBQUM7NEJBQUVDLE1BQU07d0JBQVM7cUJBQUU7WUFDNUM7UUFDSjtBQUNKLEdBQUc7QUFFSCx3Q0FBd0M7QUFDeEMsd0RBQXdEO0FBQ2pELE1BQU0sRUFBRUMsaUJBQWlCLEVBQUUsR0FBR2QsY0FBYyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9saWIvZmVhdHVyZXMvbGFiZWwvbGFiZWxBcGlTbGljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOZWVkIHRvIHVzZSB0aGUgUmVhY3Qtc3BlY2lmaWMgZW50cnkgcG9pbnQgdG8gaW1wb3J0IGBjcmVhdGVBcGlgXG5pbXBvcnQgeyBjcmVhdGVBcGksIGZldGNoQmFzZVF1ZXJ5IH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXQvcXVlcnkvcmVhY3RcIjtcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIkAvYXBwL3R5cGVzL2FwaS9BcGlcIjtcblxuLy8gRGVmaW5lIGEgc2VydmljZSB1c2luZyBhIGJhc2UgVVJMIGFuZCBleHBlY3RlZCBlbmRwb2ludHNcbmV4cG9ydCBjb25zdCBsYWJlbEFwaVNsaWNlID0gY3JlYXRlQXBpKHtcbiAgICBiYXNlUXVlcnk6IGZldGNoQmFzZVF1ZXJ5KHsgYmFzZVVybDogYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvbGFiZWxzYCB9KSxcbiAgICByZWR1Y2VyUGF0aDogXCJsYWJlbEFwaVwiLFxuICAgIC8vIFRhZyB0eXBlcyBhcmUgdXNlZCBmb3IgY2FjaGluZyBhbmQgaW52YWxpZGF0aW9uLlxuICAgIHRhZ1R5cGVzOiBbXCJMYWJlbHNcIl0sXG4gICAgZW5kcG9pbnRzOiAoYnVpbGQpID0+ICh7XG4gICAgICAgIC8vIFN1cHBseSBnZW5lcmljcyBmb3IgdGhlIHJldHVybiB0eXBlIChpbiB0aGlzIGNhc2UgYFF1b3Rlc0FwaVJlc3BvbnNlYClcbiAgICAgICAgLy8gYW5kIHRoZSBleHBlY3RlZCBxdWVyeSBhcmd1bWVudC4gSWYgdGhlcmUgaXMgbm8gYXJndW1lbnQsIHVzZSBgdm9pZGBcbiAgICAgICAgLy8gZm9yIHRoZSBhcmd1bWVudCB0eXBlIGluc3RlYWQuXG4gICAgICAgIC8vYnVpbGQucXVlcnk8UmVzcG9uc2VEZWxCYWNrZW5kLCBwYXJhbWV0cm8gdXJsIHF1ZSBxdWVyYW1vcyBlbnZpYXI+XG4gICAgICAgIC8vbHVlZ28gY3VhbmRvIGVqZWN1dGVtb3MgcXVlcnk6IChwYXJhbWV0cm9VUmwpIGVzcGVjaWZpY2FkbyBkZWwgdGlwbyBkZSBhcnJpYmEgb2J2aWFtZW50ZVxuICAgICAgICBnZXRMYWJlbHM6IGJ1aWxkLnF1ZXJ5PExhYmVsW10sIHZvaWQ+KHtcbiAgICAgICAgICAgIHF1ZXJ5OiAoKSA9PiBgYCxcbiAgICAgICAgICAgIC8vIGBwcm92aWRlc1RhZ3NgIGRldGVybWluZXMgd2hpY2ggJ3RhZycgaXMgYXR0YWNoZWQgdG8gdGhlXG4gICAgICAgICAgICAvLyBjYWNoZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcXVlcnkuXG4gICAgICAgICAgICAvLyAgcHJvdmlkZXNUYWdzOiAocmVzdWx0LCBlcnJvciwgaWQpID0+IFt7IHR5cGU6IFwiTGFiZWxzXCIgfV0sXG4gICAgICAgICAgICBwcm92aWRlc1RhZ3M6ICgpID0+IFt7IHR5cGU6IFwiTGFiZWxzXCIgfV0sXG4gICAgICAgIH0pLFxuICAgIH0pLFxufSk7XG5cbi8vIEhvb2tzIGFyZSBhdXRvLWdlbmVyYXRlZCBieSBSVEstUXVlcnlcbi8vIFNhbWUgYXMgYHF1b3Rlc0FwaVNsaWNlLmVuZHBvaW50cy5nZXRRdW90ZXMudXNlUXVlcnlgXG5leHBvcnQgY29uc3QgeyB1c2VHZXRMYWJlbHNRdWVyeSB9ID0gbGFiZWxBcGlTbGljZTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVBcGkiLCJmZXRjaEJhc2VRdWVyeSIsImxhYmVsQXBpU2xpY2UiLCJiYXNlUXVlcnkiLCJiYXNlVXJsIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTCIsInJlZHVjZXJQYXRoIiwidGFnVHlwZXMiLCJlbmRwb2ludHMiLCJidWlsZCIsImdldExhYmVscyIsInF1ZXJ5IiwicHJvdmlkZXNUYWdzIiwidHlwZSIsInVzZUdldExhYmVsc1F1ZXJ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/label/labelApiSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/priority/priorityApiSlice.ts": /*!***************************************************!*\ !*** ./lib/features/priority/priorityApiSlice.ts ***! \***************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ priorityApiSlice: () => (/* binding */ priorityApiSlice),\n/* harmony export */ useGetPriorityQuery: () => (/* binding */ useGetPriorityQuery)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs\");\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\");\n// Need to use the React-specific entry point to import `createApi`\n\n// Define a service using a base URL and expected endpoints\nconst priorityApiSlice = (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__.createApi)({\n baseQuery: (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__.fetchBaseQuery)({\n baseUrl: \"\".concat(\"http://localhost:8080\", \"/api/priorities\")\n }),\n reducerPath: \"priorityApi\",\n // Tag types are used for caching and invalidation.\n tagTypes: [\n \"Priorities\"\n ],\n endpoints: (build)=>({\n // Supply generics for the return type (in this case `QuotesApiResponse`)\n // and the expected query argument. If there is no argument, use `void`\n // for the argument type instead.\n //build.query<ResponseDelBackend, parametro url que queramos enviar>\n //luego cuando ejecutemos query: (parametroURl) especificado del tipo de arriba obviamente\n getPriority: build.query({\n query: ()=>\"\",\n // `providesTags` determines which 'tag' is attached to the\n // cached data returned by the query.\n providesTags: ()=>[\n {\n type: \"Priorities\"\n }\n ]\n })\n })\n});\n// Hooks are auto-generated by RTK-Query\n// Same as `quotesApiSlice.endpoints.getQuotes.useQuery`\nconst { useGetPriorityQuery } = priorityApiSlice;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy9wcmlvcml0eS9wcmlvcml0eUFwaVNsaWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxtRUFBbUU7QUFDTTtBQUd6RSwyREFBMkQ7QUFDcEQsTUFBTUUsbUJBQW1CRix1RUFBU0EsQ0FBQztJQUN0Q0csV0FBV0YsNEVBQWNBLENBQUM7UUFBRUcsU0FBUyxHQUE4QyxPQUEzQ0MsdUJBQTBDLEVBQUM7SUFBaUI7SUFDcEdHLGFBQWE7SUFDYixtREFBbUQ7SUFDbkRDLFVBQVU7UUFBQztLQUFhO0lBQ3hCQyxXQUFXLENBQUNDLFFBQVc7WUFDbkIseUVBQXlFO1lBQ3pFLHVFQUF1RTtZQUN2RSxpQ0FBaUM7WUFDakMsb0VBQW9FO1lBQ3BFLDBGQUEwRjtZQUMxRkMsYUFBYUQsTUFBTUUsS0FBSyxDQUFnQjtnQkFDcENBLE9BQU8sSUFBTztnQkFDZCwyREFBMkQ7Z0JBQzNELHFDQUFxQztnQkFDckNDLGNBQWMsSUFBTTt3QkFBQzs0QkFBRUMsTUFBTTt3QkFBYTtxQkFBRTtZQUNoRDtRQUNKO0FBQ0osR0FBRztBQUVILHdDQUF3QztBQUN4Qyx3REFBd0Q7QUFDakQsTUFBTSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHZCxpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbGliL2ZlYXR1cmVzL3ByaW9yaXR5L3ByaW9yaXR5QXBpU2xpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTmVlZCB0byB1c2UgdGhlIFJlYWN0LXNwZWNpZmljIGVudHJ5IHBvaW50IHRvIGltcG9ydCBgY3JlYXRlQXBpYFxuaW1wb3J0IHsgY3JlYXRlQXBpLCBmZXRjaEJhc2VRdWVyeSB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0L3F1ZXJ5L3JlYWN0XCI7XG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCJAL2FwcC90eXBlcy9hcGkvQXBpXCI7XG5cbi8vIERlZmluZSBhIHNlcnZpY2UgdXNpbmcgYSBiYXNlIFVSTCBhbmQgZXhwZWN0ZWQgZW5kcG9pbnRzXG5leHBvcnQgY29uc3QgcHJpb3JpdHlBcGlTbGljZSA9IGNyZWF0ZUFwaSh7XG4gICAgYmFzZVF1ZXJ5OiBmZXRjaEJhc2VRdWVyeSh7IGJhc2VVcmw6IGAke3Byb2Nlc3MuZW52Lk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTH0vYXBpL3ByaW9yaXRpZXNgIH0pLFxuICAgIHJlZHVjZXJQYXRoOiBcInByaW9yaXR5QXBpXCIsXG4gICAgLy8gVGFnIHR5cGVzIGFyZSB1c2VkIGZvciBjYWNoaW5nIGFuZCBpbnZhbGlkYXRpb24uXG4gICAgdGFnVHlwZXM6IFtcIlByaW9yaXRpZXNcIl0sXG4gICAgZW5kcG9pbnRzOiAoYnVpbGQpID0+ICh7XG4gICAgICAgIC8vIFN1cHBseSBnZW5lcmljcyBmb3IgdGhlIHJldHVybiB0eXBlIChpbiB0aGlzIGNhc2UgYFF1b3Rlc0FwaVJlc3BvbnNlYClcbiAgICAgICAgLy8gYW5kIHRoZSBleHBlY3RlZCBxdWVyeSBhcmd1bWVudC4gSWYgdGhlcmUgaXMgbm8gYXJndW1lbnQsIHVzZSBgdm9pZGBcbiAgICAgICAgLy8gZm9yIHRoZSBhcmd1bWVudCB0eXBlIGluc3RlYWQuXG4gICAgICAgIC8vYnVpbGQucXVlcnk8UmVzcG9uc2VEZWxCYWNrZW5kLCBwYXJhbWV0cm8gdXJsIHF1ZSBxdWVyYW1vcyBlbnZpYXI+XG4gICAgICAgIC8vbHVlZ28gY3VhbmRvIGVqZWN1dGVtb3MgcXVlcnk6IChwYXJhbWV0cm9VUmwpIGVzcGVjaWZpY2FkbyBkZWwgdGlwbyBkZSBhcnJpYmEgb2J2aWFtZW50ZVxuICAgICAgICBnZXRQcmlvcml0eTogYnVpbGQucXVlcnk8TGFiZWxbXSwgdm9pZD4oe1xuICAgICAgICAgICAgcXVlcnk6ICgpID0+IGBgLFxuICAgICAgICAgICAgLy8gYHByb3ZpZGVzVGFnc2AgZGV0ZXJtaW5lcyB3aGljaCAndGFnJyBpcyBhdHRhY2hlZCB0byB0aGVcbiAgICAgICAgICAgIC8vIGNhY2hlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSBxdWVyeS5cbiAgICAgICAgICAgIHByb3ZpZGVzVGFnczogKCkgPT4gW3sgdHlwZTogXCJQcmlvcml0aWVzXCIgfV0sXG4gICAgICAgIH0pLFxuICAgIH0pLFxufSk7XG5cbi8vIEhvb2tzIGFyZSBhdXRvLWdlbmVyYXRlZCBieSBSVEstUXVlcnlcbi8vIFNhbWUgYXMgYHF1b3Rlc0FwaVNsaWNlLmVuZHBvaW50cy5nZXRRdW90ZXMudXNlUXVlcnlgXG5leHBvcnQgY29uc3QgeyB1c2VHZXRQcmlvcml0eVF1ZXJ5IH0gPSBwcmlvcml0eUFwaVNsaWNlO1xuIl0sIm5hbWVzIjpbImNyZWF0ZUFwaSIsImZldGNoQmFzZVF1ZXJ5IiwicHJpb3JpdHlBcGlTbGljZSIsImJhc2VRdWVyeSIsImJhc2VVcmwiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMIiwicmVkdWNlclBhdGgiLCJ0YWdUeXBlcyIsImVuZHBvaW50cyIsImJ1aWxkIiwiZ2V0UHJpb3JpdHkiLCJxdWVyeSIsInByb3ZpZGVzVGFncyIsInR5cGUiLCJ1c2VHZXRQcmlvcml0eVF1ZXJ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/priority/priorityApiSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/status/statusApiSlice.ts": /*!***********************************************!*\ !*** ./lib/features/status/statusApiSlice.ts ***! \***********************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ statusApiSlice: () => (/* binding */ statusApiSlice),\n/* harmony export */ useGetStatusQuery: () => (/* binding */ useGetStatusQuery)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs\");\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\");\n// Need to use the React-specific entry point to import `createApi`\n\n// Define a service using a base URL and expected endpoints\nconst statusApiSlice = (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_0__.createApi)({\n baseQuery: (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__.fetchBaseQuery)({\n baseUrl: \"\".concat(\"http://localhost:8080\", \"/api/status\")\n }),\n reducerPath: \"statusApi\",\n // Tag types are used for caching and invalidation.\n tagTypes: [\n \"Statuses\"\n ],\n endpoints: (build)=>({\n // Supply generics for the return type (in this case `QuotesApiResponse`)\n // and the expected query argument. If there is no argument, use `void`\n // for the argument type instead.\n //build.query<ResponseDelBackend, parametro url que queramos enviar>\n //luego cuando ejecutemos query: (parametroURl) especificado del tipo de arriba obviamente\n getStatus: build.query({\n query: ()=>\"\",\n // `providesTags` determines which 'tag' is attached to the\n // cached data returned by the query.\n // result, error, id\n providesTags: ()=>[\n {\n type: \"Statuses\"\n }\n ]\n })\n })\n});\n// Hooks are auto-generated by RTK-Query\n// Same as `quotesApiSlice.endpoints.getQuotes.useQuery`\nconst { useGetStatusQuery } = statusApiSlice;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy9zdGF0dXMvc3RhdHVzQXBpU2xpY2UudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLG1FQUFtRTtBQUVNO0FBRXpFLDJEQUEyRDtBQUNwRCxNQUFNRSxpQkFBaUJGLHVFQUFTQSxDQUFDO0lBQ3BDRyxXQUFXRiw0RUFBY0EsQ0FBQztRQUFFRyxTQUFTLEdBQThDLE9BQTNDQyx1QkFBMEMsRUFBQztJQUFhO0lBQ2hHRyxhQUFhO0lBQ2IsbURBQW1EO0lBQ25EQyxVQUFVO1FBQUM7S0FBVztJQUN0QkMsV0FBVyxDQUFDQyxRQUFXO1lBQ25CLHlFQUF5RTtZQUN6RSx1RUFBdUU7WUFDdkUsaUNBQWlDO1lBQ2pDLG9FQUFvRTtZQUNwRSwwRkFBMEY7WUFDMUZDLFdBQVdELE1BQU1FLEtBQUssQ0FBaUI7Z0JBQ25DQSxPQUFPLElBQU87Z0JBQ2QsMkRBQTJEO2dCQUMzRCxxQ0FBcUM7Z0JBQ3JDLG9CQUFvQjtnQkFDcEJDLGNBQWMsSUFBTTt3QkFBQzs0QkFBRUMsTUFBTTt3QkFBVztxQkFBRTtZQUM5QztRQUNKO0FBQ0osR0FBRztBQUVILHdDQUF3QztBQUN4Qyx3REFBd0Q7QUFDakQsTUFBTSxFQUFFQyxpQkFBaUIsRUFBRSxHQUFHZCxlQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2xpYi9mZWF0dXJlcy9zdGF0dXMvc3RhdHVzQXBpU2xpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTmVlZCB0byB1c2UgdGhlIFJlYWN0LXNwZWNpZmljIGVudHJ5IHBvaW50IHRvIGltcG9ydCBgY3JlYXRlQXBpYFxuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSBcIkAvYXBwL3R5cGVzL2FwaS9BcGlcIjtcbmltcG9ydCB7IGNyZWF0ZUFwaSwgZmV0Y2hCYXNlUXVlcnkgfSBmcm9tIFwiQHJlZHV4anMvdG9vbGtpdC9xdWVyeS9yZWFjdFwiO1xuXG4vLyBEZWZpbmUgYSBzZXJ2aWNlIHVzaW5nIGEgYmFzZSBVUkwgYW5kIGV4cGVjdGVkIGVuZHBvaW50c1xuZXhwb3J0IGNvbnN0IHN0YXR1c0FwaVNsaWNlID0gY3JlYXRlQXBpKHtcbiAgICBiYXNlUXVlcnk6IGZldGNoQmFzZVF1ZXJ5KHsgYmFzZVVybDogYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvc3RhdHVzYCB9KSxcbiAgICByZWR1Y2VyUGF0aDogXCJzdGF0dXNBcGlcIixcbiAgICAvLyBUYWcgdHlwZXMgYXJlIHVzZWQgZm9yIGNhY2hpbmcgYW5kIGludmFsaWRhdGlvbi5cbiAgICB0YWdUeXBlczogW1wiU3RhdHVzZXNcIl0sXG4gICAgZW5kcG9pbnRzOiAoYnVpbGQpID0+ICh7XG4gICAgICAgIC8vIFN1cHBseSBnZW5lcmljcyBmb3IgdGhlIHJldHVybiB0eXBlIChpbiB0aGlzIGNhc2UgYFF1b3Rlc0FwaVJlc3BvbnNlYClcbiAgICAgICAgLy8gYW5kIHRoZSBleHBlY3RlZCBxdWVyeSBhcmd1bWVudC4gSWYgdGhlcmUgaXMgbm8gYXJndW1lbnQsIHVzZSBgdm9pZGBcbiAgICAgICAgLy8gZm9yIHRoZSBhcmd1bWVudCB0eXBlIGluc3RlYWQuXG4gICAgICAgIC8vYnVpbGQucXVlcnk8UmVzcG9uc2VEZWxCYWNrZW5kLCBwYXJhbWV0cm8gdXJsIHF1ZSBxdWVyYW1vcyBlbnZpYXI+XG4gICAgICAgIC8vbHVlZ28gY3VhbmRvIGVqZWN1dGVtb3MgcXVlcnk6IChwYXJhbWV0cm9VUmwpIGVzcGVjaWZpY2FkbyBkZWwgdGlwbyBkZSBhcnJpYmEgb2J2aWFtZW50ZVxuICAgICAgICBnZXRTdGF0dXM6IGJ1aWxkLnF1ZXJ5PFN0YXR1c1tdLCB2b2lkPih7XG4gICAgICAgICAgICBxdWVyeTogKCkgPT4gYGAsXG4gICAgICAgICAgICAvLyBgcHJvdmlkZXNUYWdzYCBkZXRlcm1pbmVzIHdoaWNoICd0YWcnIGlzIGF0dGFjaGVkIHRvIHRoZVxuICAgICAgICAgICAgLy8gY2FjaGVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHF1ZXJ5LlxuICAgICAgICAgICAgLy8gcmVzdWx0LCBlcnJvciwgaWRcbiAgICAgICAgICAgIHByb3ZpZGVzVGFnczogKCkgPT4gW3sgdHlwZTogXCJTdGF0dXNlc1wiIH1dLFxuICAgICAgICB9KSxcbiAgICB9KSxcbn0pO1xuXG4vLyBIb29rcyBhcmUgYXV0by1nZW5lcmF0ZWQgYnkgUlRLLVF1ZXJ5XG4vLyBTYW1lIGFzIGBxdW90ZXNBcGlTbGljZS5lbmRwb2ludHMuZ2V0UXVvdGVzLnVzZVF1ZXJ5YFxuZXhwb3J0IGNvbnN0IHsgdXNlR2V0U3RhdHVzUXVlcnkgfSA9IHN0YXR1c0FwaVNsaWNlO1xuIl0sIm5hbWVzIjpbImNyZWF0ZUFwaSIsImZldGNoQmFzZVF1ZXJ5Iiwic3RhdHVzQXBpU2xpY2UiLCJiYXNlUXVlcnkiLCJiYXNlVXJsIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTCIsInJlZHVjZXJQYXRoIiwidGFnVHlwZXMiLCJlbmRwb2ludHMiLCJidWlsZCIsImdldFN0YXR1cyIsInF1ZXJ5IiwicHJvdmlkZXNUYWdzIiwidHlwZSIsInVzZUdldFN0YXR1c1F1ZXJ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/status/statusApiSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/tasks/tasksApiSlice.ts": /*!*********************************************!*\ !*** ./lib/features/tasks/tasksApiSlice.ts ***! \*********************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addTaskApi: () => (/* binding */ addTaskApi),\n/* harmony export */ tasksApiSlice: () => (/* binding */ tasksApiSlice),\n/* harmony export */ updateTaskApi: () => (/* binding */ updateTaskApi),\n/* harmony export */ useGetTasksQuery: () => (/* binding */ useGetTasksQuery)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs\");\n/* harmony import */ var _reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reduxjs/toolkit/query/react */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"(app-pages-browser)/./node_modules/axios/lib/axios.js\");\n// Need to use the React-specific entry point to import `createApi`\n\n\nconst addTaskApi = async (taskData)=>{\n var _response_data;\n const response = await axios__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(\"\".concat(\"http://localhost:8080\", \"/api/tasks/add\"), taskData);\n return (_response_data = response.data) === null || _response_data === void 0 ? void 0 : _response_data.task;\n};\nconst updateTaskApi = async (taskData)=>{\n var _response_data;\n const response = await axios__WEBPACK_IMPORTED_MODULE_0__[\"default\"].put(\"\".concat(\"http://localhost:8080\", \"/api/tasks/\").concat(taskData._id), taskData);\n return (_response_data = response.data) === null || _response_data === void 0 ? void 0 : _response_data.task;\n};\n// Define a service using a base URL and expected endpoints\nconst tasksApiSlice = (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_1__.createApi)({\n baseQuery: (0,_reduxjs_toolkit_query_react__WEBPACK_IMPORTED_MODULE_2__.fetchBaseQuery)({\n baseUrl: \"\".concat(\"http://localhost:8080\", \"/api/tasks\")\n }),\n reducerPath: \"tasksApi\",\n // Tag types are used for caching and invalidation.\n tagTypes: [\n \"Tasks\"\n ],\n endpoints: (build)=>({\n // Supply generics for the return type (in this case `QuotesApiResponse`)\n // and the expected query argument. If there is no argument, use `void`\n // for the argument type instead.\n //build.query<ResponseDelBackend, parametro url que queramos enviar>\n //luego cuando ejecutemos query: (parametroURl) especificado del tipo de arriba obviamente\n getTasks: build.query({\n query: ()=>\"\",\n // `providesTags` determines which 'tag' is attached to the\n // cached data returned by the query.\n providesTags: ()=>[\n {\n type: \"Tasks\"\n }\n ]\n })\n })\n});\n// Hooks are auto-generated by RTK-Query\n// Same as `quotesApiSlice.endpoints.getQuotes.useQuery`\nconst { useGetTasksQuery } = tasksApiSlice;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy90YXNrcy90YXNrc0FwaVNsaWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxtRUFBbUU7QUFFTTtBQUMvQztBQUVuQixNQUFNRyxhQUFhLE9BQU9DO1FBRXhCQztJQURQLE1BQU1BLFdBQVcsTUFBTUgsNkNBQUtBLENBQUNJLElBQUksQ0FBQyxHQUE4QyxPQUEzQ0MsdUJBQTBDLEVBQUMsbUJBQWlCSDtJQUNqRyxRQUFPQyxpQkFBQUEsU0FBU0ssSUFBSSxjQUFiTCxxQ0FBQUEsZUFBZU0sSUFBSTtBQUM1QixFQUFFO0FBRUssTUFBTUMsZ0JBQWdCLE9BQU9SO1FBRTNCQztJQURQLE1BQU1BLFdBQVcsTUFBTUgsNkNBQUtBLENBQUNXLEdBQUcsQ0FBQyxHQUEyRFQsT0FBeERHLHVCQUEwQyxFQUFDLGVBQTBCLE9BQWJILFNBQVNVLEdBQUcsR0FBSVY7SUFDNUcsUUFBT0MsaUJBQUFBLFNBQVNLLElBQUksY0FBYkwscUNBQUFBLGVBQWVNLElBQUk7QUFDNUIsRUFBRTtBQUVGLDJEQUEyRDtBQUNwRCxNQUFNSSxnQkFBZ0JmLHVFQUFTQSxDQUFDO0lBQ3JDZ0IsV0FBV2YsNEVBQWNBLENBQUM7UUFBRWdCLFNBQVMsR0FBOEMsT0FBM0NWLHVCQUEwQyxFQUFDO0lBQVk7SUFDL0ZXLGFBQWE7SUFDYixtREFBbUQ7SUFDbkRDLFVBQVU7UUFBQztLQUFRO0lBQ25CQyxXQUFXLENBQUNDLFFBQVc7WUFDckIseUVBQXlFO1lBQ3pFLHVFQUF1RTtZQUN2RSxpQ0FBaUM7WUFDakMsb0VBQW9FO1lBQ3BFLDBGQUEwRjtZQUMxRkMsVUFBVUQsTUFBTUUsS0FBSyxDQUFlO2dCQUNsQ0EsT0FBTyxJQUFPO2dCQUNkLDJEQUEyRDtnQkFDM0QscUNBQXFDO2dCQUNyQ0MsY0FBYyxJQUFNO3dCQUFDOzRCQUFFQyxNQUFNO3dCQUFRO3FCQUFFO1lBQ3pDO1FBQ0Y7QUFDRixHQUFHO0FBRUgsd0NBQXdDO0FBQ3hDLHdEQUF3RDtBQUNqRCxNQUFNLEVBQUVDLGdCQUFnQixFQUFFLEdBQUdYLGNBQWMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbGliL2ZlYXR1cmVzL3Rhc2tzL3Rhc2tzQXBpU2xpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTmVlZCB0byB1c2UgdGhlIFJlYWN0LXNwZWNpZmljIGVudHJ5IHBvaW50IHRvIGltcG9ydCBgY3JlYXRlQXBpYFxuaW1wb3J0IHsgVGFzayB9IGZyb20gXCJAL2FwcC90eXBlcy9hcGkvQXBpXCI7XG5pbXBvcnQgeyBjcmVhdGVBcGksIGZldGNoQmFzZVF1ZXJ5IH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXQvcXVlcnkvcmVhY3RcIjtcbmltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcblxuZXhwb3J0IGNvbnN0IGFkZFRhc2tBcGkgPSBhc3luYyAodGFza0RhdGE6IE9taXQ8VGFzaywgJ19pZCc+KTogUHJvbWlzZTxUYXNrPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdChgJHtwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkx9L2FwaS90YXNrcy9hZGRgLCB0YXNrRGF0YSk7XG4gIHJldHVybiByZXNwb25zZS5kYXRhPy50YXNrO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRhc2tBcGkgPSBhc3luYyAodGFza0RhdGE6IFRhc2spOiBQcm9taXNlPFRhc2s+ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wdXQoYCR7cHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfRlJPTlRCVUlMRF9BUElfVVJMfS9hcGkvdGFza3MvJHt0YXNrRGF0YS5faWR9YCwgdGFza0RhdGEpO1xuICByZXR1cm4gcmVzcG9uc2UuZGF0YT8udGFzaztcbn07XG5cbi8vIERlZmluZSBhIHNlcnZpY2UgdXNpbmcgYSBiYXNlIFVSTCBhbmQgZXhwZWN0ZWQgZW5kcG9pbnRzXG5leHBvcnQgY29uc3QgdGFza3NBcGlTbGljZSA9IGNyZWF0ZUFwaSh7XG4gIGJhc2VRdWVyeTogZmV0Y2hCYXNlUXVlcnkoeyBiYXNlVXJsOiBgJHtwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19GUk9OVEJVSUxEX0FQSV9VUkx9L2FwaS90YXNrc2AgfSksXG4gIHJlZHVjZXJQYXRoOiBcInRhc2tzQXBpXCIsXG4gIC8vIFRhZyB0eXBlcyBhcmUgdXNlZCBmb3IgY2FjaGluZyBhbmQgaW52YWxpZGF0aW9uLlxuICB0YWdUeXBlczogW1wiVGFza3NcIl0sXG4gIGVuZHBvaW50czogKGJ1aWxkKSA9PiAoe1xuICAgIC8vIFN1cHBseSBnZW5lcmljcyBmb3IgdGhlIHJldHVybiB0eXBlIChpbiB0aGlzIGNhc2UgYFF1b3Rlc0FwaVJlc3BvbnNlYClcbiAgICAvLyBhbmQgdGhlIGV4cGVjdGVkIHF1ZXJ5IGFyZ3VtZW50LiBJZiB0aGVyZSBpcyBubyBhcmd1bWVudCwgdXNlIGB2b2lkYFxuICAgIC8vIGZvciB0aGUgYXJndW1lbnQgdHlwZSBpbnN0ZWFkLlxuICAgIC8vYnVpbGQucXVlcnk8UmVzcG9uc2VEZWxCYWNrZW5kLCBwYXJhbWV0cm8gdXJsIHF1ZSBxdWVyYW1vcyBlbnZpYXI+XG4gICAgLy9sdWVnbyBjdWFuZG8gZWplY3V0ZW1vcyBxdWVyeTogKHBhcmFtZXRyb1VSbCkgZXNwZWNpZmljYWRvIGRlbCB0aXBvIGRlIGFycmliYSBvYnZpYW1lbnRlXG4gICAgZ2V0VGFza3M6IGJ1aWxkLnF1ZXJ5PFRhc2tbXSwgdm9pZD4oe1xuICAgICAgcXVlcnk6ICgpID0+IGBgLFxuICAgICAgLy8gYHByb3ZpZGVzVGFnc2AgZGV0ZXJtaW5lcyB3aGljaCAndGFnJyBpcyBhdHRhY2hlZCB0byB0aGVcbiAgICAgIC8vIGNhY2hlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSBxdWVyeS5cbiAgICAgIHByb3ZpZGVzVGFnczogKCkgPT4gW3sgdHlwZTogXCJUYXNrc1wiIH1dLFxuICAgIH0pLFxuICB9KSxcbn0pO1xuXG4vLyBIb29rcyBhcmUgYXV0by1nZW5lcmF0ZWQgYnkgUlRLLVF1ZXJ5XG4vLyBTYW1lIGFzIGBxdW90ZXNBcGlTbGljZS5lbmRwb2ludHMuZ2V0UXVvdGVzLnVzZVF1ZXJ5YFxuZXhwb3J0IGNvbnN0IHsgdXNlR2V0VGFza3NRdWVyeSB9ID0gdGFza3NBcGlTbGljZTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVBcGkiLCJmZXRjaEJhc2VRdWVyeSIsImF4aW9zIiwiYWRkVGFza0FwaSIsInRhc2tEYXRhIiwicmVzcG9uc2UiLCJwb3N0IiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX0ZST05UQlVJTERfQVBJX1VSTCIsImRhdGEiLCJ0YXNrIiwidXBkYXRlVGFza0FwaSIsInB1dCIsIl9pZCIsInRhc2tzQXBpU2xpY2UiLCJiYXNlUXVlcnkiLCJiYXNlVXJsIiwicmVkdWNlclBhdGgiLCJ0YWdUeXBlcyIsImVuZHBvaW50cyIsImJ1aWxkIiwiZ2V0VGFza3MiLCJxdWVyeSIsInByb3ZpZGVzVGFncyIsInR5cGUiLCJ1c2VHZXRUYXNrc1F1ZXJ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/tasks/tasksApiSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/features/tasks/tasksSlice.ts": /*!******************************************!*\ !*** ./lib/features/tasks/tasksSlice.ts ***! \******************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addTask: () => (/* binding */ addTask),\n/* harmony export */ modifyTask: () => (/* binding */ modifyTask),\n/* harmony export */ removeTask: () => (/* binding */ removeTask),\n/* harmony export */ selectAllTasks: () => (/* binding */ selectAllTasks),\n/* harmony export */ setTasks: () => (/* binding */ setTasks),\n/* harmony export */ tasksSlice: () => (/* binding */ tasksSlice)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs\");\n\nconst initialState = {\n tasks: []\n};\nconst tasksSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({\n name: 'tasks',\n initialState,\n reducers: {\n setTasks: (state, action)=>{\n state.tasks = action.payload;\n },\n addTask: (state, action)=>{\n state.tasks.push(action.payload);\n },\n removeTask: (state, action)=>{\n state.tasks = state.tasks.filter((task)=>task._id !== action.payload);\n },\n modifyTask: (state, action)=>{\n const task = state.tasks.find((task)=>{\n var _action_payload;\n return task._id === ((_action_payload = action.payload) === null || _action_payload === void 0 ? void 0 : _action_payload._id);\n });\n if (task) {\n task.title = action.payload.title;\n task.label = action.payload.label;\n task.priority = action.payload.priority;\n task.status = action.payload.status;\n }\n }\n },\n selectors: {\n selectAllTasks: (task)=>task.tasks\n }\n});\nconst { setTasks, addTask, removeTask, modifyTask } = tasksSlice.actions;\nconst { selectAllTasks } = tasksSlice.selectors;\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9mZWF0dXJlcy90YXNrcy90YXNrc1NsaWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDOEQ7QUFNOUQsTUFBTUMsZUFBMkI7SUFDL0JDLE9BQU8sRUFBRTtBQUNYO0FBRU8sTUFBTUMsYUFBYUgsNkRBQVdBLENBQUM7SUFDcENJLE1BQU07SUFDTkg7SUFDQUksVUFBVTtRQUNSQyxVQUFVLENBQUNDLE9BQU9DO1lBQ2hCRCxNQUFNTCxLQUFLLEdBQUdNLE9BQU9DLE9BQU87UUFDOUI7UUFDQUMsU0FBUyxDQUFDSCxPQUFPQztZQUNmRCxNQUFNTCxLQUFLLENBQUNTLElBQUksQ0FBQ0gsT0FBT0MsT0FBTztRQUNqQztRQUNBRyxZQUFZLENBQUNMLE9BQU9DO1lBQ2xCRCxNQUFNTCxLQUFLLEdBQUdLLE1BQU1MLEtBQUssQ0FBQ1csTUFBTSxDQUFDQyxDQUFBQSxPQUFRQSxLQUFLQyxHQUFHLEtBQUtQLE9BQU9DLE9BQU87UUFDdEU7UUFDQU8sWUFBWSxDQUFDVCxPQUFPQztZQUNsQixNQUFNTSxPQUFPUCxNQUFNTCxLQUFLLENBQUNlLElBQUksQ0FBQ0gsQ0FBQUE7b0JBQXFCTjt1QkFBYk0sS0FBS0MsR0FBRyxPQUFLUCxrQkFBQUEsT0FBT0MsT0FBTyxjQUFkRCxzQ0FBQUEsZ0JBQWdCTyxHQUFHOztZQUN0RSxJQUFJRCxNQUFNO2dCQUNSQSxLQUFLSSxLQUFLLEdBQUdWLE9BQU9DLE9BQU8sQ0FBQ1MsS0FBSztnQkFDakNKLEtBQUtLLEtBQUssR0FBR1gsT0FBT0MsT0FBTyxDQUFDVSxLQUFLO2dCQUNqQ0wsS0FBS00sUUFBUSxHQUFHWixPQUFPQyxPQUFPLENBQUNXLFFBQVE7Z0JBQ3ZDTixLQUFLTyxNQUFNLEdBQUdiLE9BQU9DLE9BQU8sQ0FBQ1ksTUFBTTtZQUNyQztRQUNGO0lBQ0Y7SUFDQUMsV0FBVztRQUNUQyxnQkFBZ0IsQ0FBQ1QsT0FBU0EsS0FBS1osS0FBSztJQUN0QztBQUlGLEdBQUc7QUFFSSxNQUFNLEVBQUVJLFFBQVEsRUFBRUksT0FBTyxFQUFFRSxVQUFVLEVBQUVJLFVBQVUsRUFBRSxHQUFHYixXQUFXcUIsT0FBTyxDQUFDO0FBRXpFLE1BQU0sRUFBRUQsY0FBYyxFQUFFLEdBQUdwQixXQUFXbUIsU0FBUyxDQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2xpYi9mZWF0dXJlcy90YXNrcy90YXNrc1NsaWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2sgfSBmcm9tICdAL2FwcC90eXBlcy9hcGkvQXBpJztcbmltcG9ydCB7IGNyZWF0ZVNsaWNlLCBQYXlsb2FkQWN0aW9uIH0gZnJvbSAnQHJlZHV4anMvdG9vbGtpdCc7XG5cbmludGVyZmFjZSBUYXNrc1N0YXRlIHtcbiAgdGFza3M6IFRhc2tbXTtcbn1cblxuY29uc3QgaW5pdGlhbFN0YXRlOiBUYXNrc1N0YXRlID0ge1xuICB0YXNrczogW10sXG59O1xuXG5leHBvcnQgY29uc3QgdGFza3NTbGljZSA9IGNyZWF0ZVNsaWNlKHtcbiAgbmFtZTogJ3Rhc2tzJyxcbiAgaW5pdGlhbFN0YXRlLFxuICByZWR1Y2Vyczoge1xuICAgIHNldFRhc2tzOiAoc3RhdGUsIGFjdGlvbjogUGF5bG9hZEFjdGlvbjxUYXNrW10+KSA9PiB7XG4gICAgICBzdGF0ZS50YXNrcyA9IGFjdGlvbi5wYXlsb2FkXG4gICAgfSxcbiAgICBhZGRUYXNrOiAoc3RhdGUsIGFjdGlvbjogUGF5bG9hZEFjdGlvbjxUYXNrPikgPT4ge1xuICAgICAgc3RhdGUudGFza3MucHVzaChhY3Rpb24ucGF5bG9hZClcbiAgICB9LFxuICAgIHJlbW92ZVRhc2s6IChzdGF0ZSwgYWN0aW9uOiBQYXlsb2FkQWN0aW9uPHN0cmluZz4pID0+IHtcbiAgICAgIHN0YXRlLnRhc2tzID0gc3RhdGUudGFza3MuZmlsdGVyKHRhc2sgPT4gdGFzay5faWQgIT09IGFjdGlvbi5wYXlsb2FkKTtcbiAgICB9LFxuICAgIG1vZGlmeVRhc2s6IChzdGF0ZSwgYWN0aW9uOiBQYXlsb2FkQWN0aW9uPFRhc2s+KSA9PiB7XG4gICAgICBjb25zdCB0YXNrID0gc3RhdGUudGFza3MuZmluZCh0YXNrID0+IHRhc2suX2lkID09PSBhY3Rpb24ucGF5bG9hZD8uX2lkKTtcbiAgICAgIGlmICh0YXNrKSB7XG4gICAgICAgIHRhc2sudGl0bGUgPSBhY3Rpb24ucGF5bG9hZC50aXRsZTtcbiAgICAgICAgdGFzay5sYWJlbCA9IGFjdGlvbi5wYXlsb2FkLmxhYmVsO1xuICAgICAgICB0YXNrLnByaW9yaXR5ID0gYWN0aW9uLnBheWxvYWQucHJpb3JpdHk7XG4gICAgICAgIHRhc2suc3RhdHVzID0gYWN0aW9uLnBheWxvYWQuc3RhdHVzO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgc2VsZWN0b3JzOiB7XG4gICAgc2VsZWN0QWxsVGFza3M6ICh0YXNrKSA9PiB0YXNrLnRhc2tzLFxuICB9LFxuICAvLyBleHRyYVJlZHVjZXJzOiAoYnVpbGRlcikgPT4ge1xuICAvLyAgIC8vIGhhbmRsZSBoZXJlIGFzeW5jIGFjdGlvbnMgaWYgbmVjZXNzYXJ5XG4gIC8vIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHsgc2V0VGFza3MsIGFkZFRhc2ssIHJlbW92ZVRhc2ssIG1vZGlmeVRhc2sgfSA9IHRhc2tzU2xpY2UuYWN0aW9ucztcblxuZXhwb3J0IGNvbnN0IHsgc2VsZWN0QWxsVGFza3MgfSA9IHRhc2tzU2xpY2Uuc2VsZWN0b3JzOyJdLCJuYW1lcyI6WyJjcmVhdGVTbGljZSIsImluaXRpYWxTdGF0ZSIsInRhc2tzIiwidGFza3NTbGljZSIsIm5hbWUiLCJyZWR1Y2VycyIsInNldFRhc2tzIiwic3RhdGUiLCJhY3Rpb24iLCJwYXlsb2FkIiwiYWRkVGFzayIsInB1c2giLCJyZW1vdmVUYXNrIiwiZmlsdGVyIiwidGFzayIsIl9pZCIsIm1vZGlmeVRhc2siLCJmaW5kIiwidGl0bGUiLCJsYWJlbCIsInByaW9yaXR5Iiwic3RhdHVzIiwic2VsZWN0b3JzIiwic2VsZWN0QWxsVGFza3MiLCJhY3Rpb25zIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/features/tasks/tasksSlice.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/hooks.ts": /*!**********************!*\ !*** ./lib/hooks.ts ***! \**********************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAppDispatch: () => (/* binding */ useAppDispatch),\n/* harmony export */ useAppSelector: () => (/* binding */ useAppSelector),\n/* harmony export */ useAppStore: () => (/* binding */ useAppStore)\n/* harmony export */ });\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ \"(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\");\n// This file serves as a central hub for re-exporting pre-typed Redux hooks.\n\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\nconst useAppDispatch = react_redux__WEBPACK_IMPORTED_MODULE_0__.useDispatch.withTypes();\nconst useAppSelector = react_redux__WEBPACK_IMPORTED_MODULE_0__.useSelector.withTypes();\nconst useAppStore = react_redux__WEBPACK_IMPORTED_MODULE_0__.useStore.withTypes();\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9ob29rcy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsNEVBQTRFO0FBQ1g7QUFHakUsMkVBQTJFO0FBQ3BFLE1BQU1HLGlCQUFpQkgsb0RBQVdBLENBQUNJLFNBQVMsR0FBZ0I7QUFDNUQsTUFBTUMsaUJBQWlCSixvREFBV0EsQ0FBQ0csU0FBUyxHQUFjO0FBQzFELE1BQU1FLGNBQWNKLGlEQUFRQSxDQUFDRSxTQUFTLEdBQWEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbGliL2hvb2tzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBzZXJ2ZXMgYXMgYSBjZW50cmFsIGh1YiBmb3IgcmUtZXhwb3J0aW5nIHByZS10eXBlZCBSZWR1eCBob29rcy5cbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciwgdXNlU3RvcmUgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCB0eXBlIHsgQXBwRGlzcGF0Y2gsIEFwcFN0b3JlLCBSb290U3RhdGUgfSBmcm9tIFwiQC9saWIvc3RvcmVcIjtcblxuLy8gVXNlIHRocm91Z2hvdXQgeW91ciBhcHAgaW5zdGVhZCBvZiBwbGFpbiBgdXNlRGlzcGF0Y2hgIGFuZCBgdXNlU2VsZWN0b3JgXG5leHBvcnQgY29uc3QgdXNlQXBwRGlzcGF0Y2ggPSB1c2VEaXNwYXRjaC53aXRoVHlwZXM8QXBwRGlzcGF0Y2g+KCk7XG5leHBvcnQgY29uc3QgdXNlQXBwU2VsZWN0b3IgPSB1c2VTZWxlY3Rvci53aXRoVHlwZXM8Um9vdFN0YXRlPigpO1xuZXhwb3J0IGNvbnN0IHVzZUFwcFN0b3JlID0gdXNlU3RvcmUud2l0aFR5cGVzPEFwcFN0b3JlPigpO1xuIl0sIm5hbWVzIjpbInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJ1c2VTdG9yZSIsInVzZUFwcERpc3BhdGNoIiwid2l0aFR5cGVzIiwidXNlQXBwU2VsZWN0b3IiLCJ1c2VBcHBTdG9yZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/hooks.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/utils.ts": /*!**********************!*\ !*** ./lib/utils.ts ***! \**********************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ capitalizeFirstLetter: () => (/* binding */ capitalizeFirstLetter),\n/* harmony export */ cn: () => (/* binding */ cn),\n/* harmony export */ generateMockObjectId: () => (/* binding */ generateMockObjectId),\n/* harmony export */ getPriorityIcon: () => (/* binding */ getPriorityIcon),\n/* harmony export */ getStatusIcon: () => (/* binding */ getStatusIcon)\n/* harmony export */ });\n/* harmony import */ var _app_types_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/types/index */ \"(app-pages-browser)/./app/types/index.ts\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tailwind-merge */ \"(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crypto */ \"(app-pages-browser)/./node_modules/next/dist/compiled/crypto-browserify/index.js\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nfunction cn() {\n for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){\n inputs[_key] = arguments[_key];\n }\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_3__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_1__.clsx)(inputs));\n}\nconst getStatusIcon = (status)=>{\n return _app_types_index__WEBPACK_IMPORTED_MODULE_0__.statusIconMap[status];\n};\nconst getPriorityIcon = (priority)=>{\n return _app_types_index__WEBPACK_IMPORTED_MODULE_0__.priorityIconMap[priority];\n};\nconst capitalizeFirstLetter = (value)=>{\n return (value === null || value === void 0 ? void 0 : value.charAt(0).toUpperCase()) + (value === null || value === void 0 ? void 0 : value.slice(1));\n};\nconst generateMockObjectId = ()=>{\n return (0,crypto__WEBPACK_IMPORTED_MODULE_2__.randomBytes)(12).toString('hex'); // 12 bytes = 24 caracteres hexadecimales\n};\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQThHO0FBQ2xFO0FBQ0o7QUFDSDtBQUU5QixTQUFTSztJQUFHO1FBQUdDLE9BQUgsdUJBQXVCOztJQUN4QyxPQUFPSCx1REFBT0EsQ0FBQ0QsMENBQUlBLENBQUNJO0FBQ3RCO0FBRU8sTUFBTUMsZ0JBQWdCLENBQUNDO0lBQzVCLE9BQU9QLDJEQUFhLENBQUNPLE9BQU87QUFDOUIsRUFBRTtBQUVLLE1BQU1DLGtCQUFrQixDQUFDQztJQUM5QixPQUFPViw2REFBZSxDQUFDVSxTQUFTO0FBQ2xDLEVBQUU7QUFFSyxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDcEMsT0FBT0EsQ0FBQUEsa0JBQUFBLDRCQUFBQSxNQUFPQyxNQUFNLENBQUMsR0FBR0MsV0FBVyxPQUFLRixrQkFBQUEsNEJBQUFBLE1BQU9HLEtBQUssQ0FBQztBQUN2RCxFQUFDO0FBRU0sTUFBTUMsdUJBQXVCO0lBQ2xDLE9BQU9aLG1EQUFXQSxDQUFDLElBQUlhLFFBQVEsQ0FBQyxRQUFRLHlDQUF5QztBQUNuRixFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmlvcml0eSwgUHJpb3JpdHlJY29uLCBwcmlvcml0eUljb25NYXAsIFN0YXR1cywgU3RhdHVzSWNvbiwgc3RhdHVzSWNvbk1hcCB9IGZyb20gXCJAL2FwcC90eXBlcy9pbmRleFwiXG5pbXBvcnQgeyBjbHN4LCB0eXBlIENsYXNzVmFsdWUgfSBmcm9tIFwiY2xzeFwiXG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSBcInRhaWx3aW5kLW1lcmdlXCJcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNuKC4uLmlucHV0czogQ2xhc3NWYWx1ZVtdKSB7XG4gIHJldHVybiB0d01lcmdlKGNsc3goaW5wdXRzKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFN0YXR1c0ljb24gPSAoc3RhdHVzOiBTdGF0dXMpOiBTdGF0dXNJY29uID0+IHtcbiAgcmV0dXJuIHN0YXR1c0ljb25NYXBbc3RhdHVzXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQcmlvcml0eUljb24gPSAocHJpb3JpdHk6IFByaW9yaXR5KTogUHJpb3JpdHlJY29uID0+IHtcbiAgcmV0dXJuIHByaW9yaXR5SWNvbk1hcFtwcmlvcml0eV07XG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHZhbHVlPy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlPy5zbGljZSgxKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTW9ja09iamVjdElkID0gKCkgPT4ge1xuICByZXR1cm4gcmFuZG9tQnl0ZXMoMTIpLnRvU3RyaW5nKCdoZXgnKTsgLy8gMTIgYnl0ZXMgPSAyNCBjYXJhY3RlcmVzIGhleGFkZWNpbWFsZXNcbn1cbiJdLCJuYW1lcyI6WyJwcmlvcml0eUljb25NYXAiLCJzdGF0dXNJY29uTWFwIiwiY2xzeCIsInR3TWVyZ2UiLCJyYW5kb21CeXRlcyIsImNuIiwiaW5wdXRzIiwiZ2V0U3RhdHVzSWNvbiIsInN0YXR1cyIsImdldFByaW9yaXR5SWNvbiIsInByaW9yaXR5IiwiY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIiwidmFsdWUiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2VuZXJhdGVNb2NrT2JqZWN0SWQiLCJ0b1N0cmluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils.ts\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js": /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ _extends)\n/* harmony export */ });\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0Esb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuZXhwb3J0IHsgX2V4dGVuZHMgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@bundled-es-modules/cookie/index-esm.js": /*!**************************************************************!*\ !*** ./node_modules/@bundled-es-modules/cookie/index-esm.js ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ source_default)\n/* harmony export */ });\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n \"node_modules/cookie/index.js\"(exports) {\n \"use strict\";\n exports.parse = parse;\n exports.serialize = serialize;\n var __toString = Object.prototype.toString;\n var __hasOwnProperty = Object.prototype.hasOwnProperty;\n var cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n var cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n var pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n function parse(str, opt) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var len = str.length;\n if (len < 2) return obj;\n var dec = opt && opt.decode || decode;\n var index = 0;\n var eqIdx = 0;\n var endIdx = 0;\n do {\n eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) break;\n endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = len;\n } else if (eqIdx > endIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var keyStartIdx = startIndex(str, index, eqIdx);\n var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n var key = str.slice(keyStartIdx, keyEndIdx);\n if (!__hasOwnProperty.call(obj, key)) {\n var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n var valEndIdx = endIndex(str, endIdx, valStartIdx);\n if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {\n valStartIdx++;\n valEndIdx--;\n }\n var val = str.slice(valStartIdx, valEndIdx);\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n }\n function startIndex(str, index, max) {\n do {\n var code = str.charCodeAt(index);\n if (code !== 32 && code !== 9) return index;\n } while (++index < max);\n return max;\n }\n function endIndex(str, index, min) {\n while (index > min) {\n var code = str.charCodeAt(--index);\n if (code !== 32 && code !== 9) return index + 1;\n }\n return min;\n }\n function serialize(name, val, opt) {\n var enc = opt && opt.encode || encodeURIComponent;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (!opt) return str;\n if (null != opt.maxAge) {\n var maxAge = Math.floor(opt.maxAge);\n if (!isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + maxAge;\n }\n if (opt.domain) {\n if (!domainValueRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!pathValueRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.partitioned) {\n str += \"; Partitioned\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n }\n function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n }\n function isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n }\n function tryDecode(str, decode2) {\n try {\n return decode2(str);\n } catch (e) {\n return str;\n }\n }\n }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\n\n/*! Bundled license information:\n\ncookie/index.js:\n (*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYnVuZGxlZC1lcy1tb2R1bGVzL2Nvb2tpZS9pbmRleC1lc20uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGFBQWE7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0EsbUdBQW1HO0FBQ25HO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUVBQXlFLDhCQUE4QjtBQUN2RztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELEtBQUssa0NBQWtDLEtBQUs7QUFDbEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBR0U7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AYnVuZGxlZC1lcy1tb2R1bGVzL2Nvb2tpZS9pbmRleC1lc20uanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2dldFByb3RvT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHtcbiAgcmV0dXJuIG1vZCB8fCAoMCwgY2JbX19nZXRPd25Qcm9wTmFtZXMoY2IpWzBdXSkoKG1vZCA9IHsgZXhwb3J0czoge30gfSkuZXhwb3J0cywgbW9kKSwgbW9kLmV4cG9ydHM7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9FU00gPSAobW9kLCBpc05vZGVNb2RlLCB0YXJnZXQpID0+ICh0YXJnZXQgPSBtb2QgIT0gbnVsbCA/IF9fY3JlYXRlKF9fZ2V0UHJvdG9PZihtb2QpKSA6IHt9LCBfX2NvcHlQcm9wcyhcbiAgLy8gSWYgdGhlIGltcG9ydGVyIGlzIGluIG5vZGUgY29tcGF0aWJpbGl0eSBtb2RlIG9yIHRoaXMgaXMgbm90IGFuIEVTTVxuICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLVxuICAvLyBjb21wYXRpYmxlIHRyYW5zZm9ybSAoaS5lLiBcIl9fZXNNb2R1bGVcIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXRcbiAgLy8gXCJkZWZhdWx0XCIgdG8gdGhlIENvbW1vbkpTIFwibW9kdWxlLmV4cG9ydHNcIiBmb3Igbm9kZSBjb21wYXRpYmlsaXR5LlxuICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgXCJkZWZhdWx0XCIsIHsgdmFsdWU6IG1vZCwgZW51bWVyYWJsZTogdHJ1ZSB9KSA6IHRhcmdldCxcbiAgbW9kXG4pKTtcblxuLy8gbm9kZV9tb2R1bGVzL2Nvb2tpZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29va2llID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvb2tpZS9pbmRleC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBleHBvcnRzLnBhcnNlID0gcGFyc2U7XG4gICAgZXhwb3J0cy5zZXJpYWxpemUgPSBzZXJpYWxpemU7XG4gICAgdmFyIF9fdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciBfX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgY29va2llTmFtZVJlZ0V4cCA9IC9eWyEjJCUmJyorXFwtLl5fYHx+MC05QS1aYS16XSskLztcbiAgICB2YXIgY29va2llVmFsdWVSZWdFeHAgPSAvXihcIj8pW1xcdTAwMjFcXHUwMDIzLVxcdTAwMkJcXHUwMDJELVxcdTAwM0FcXHUwMDNDLVxcdTAwNUJcXHUwMDVELVxcdTAwN0VdKlxcMSQvO1xuICAgIHZhciBkb21haW5WYWx1ZVJlZ0V4cCA9IC9eKFsuXT9bYS16MC05XShbYS16MC05LV17MCw2MX1bYS16MC05XSk/KShbLl1bYS16MC05XShbYS16MC05LV17MCw2MX1bYS16MC05XSk/KSokL2k7XG4gICAgdmFyIHBhdGhWYWx1ZVJlZ0V4cCA9IC9eW1xcdTAwMjAtXFx1MDAzQVxcdTAwM0QtXFx1MDA3RV0qJC87XG4gICAgZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHIgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgIHZhciBsZW4gPSBzdHIubGVuZ3RoO1xuICAgICAgaWYgKGxlbiA8IDIpIHJldHVybiBvYmo7XG4gICAgICB2YXIgZGVjID0gb3B0ICYmIG9wdC5kZWNvZGUgfHwgZGVjb2RlO1xuICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgIHZhciBlcUlkeCA9IDA7XG4gICAgICB2YXIgZW5kSWR4ID0gMDtcbiAgICAgIGRvIHtcbiAgICAgICAgZXFJZHggPSBzdHIuaW5kZXhPZihcIj1cIiwgaW5kZXgpO1xuICAgICAgICBpZiAoZXFJZHggPT09IC0xKSBicmVhaztcbiAgICAgICAgZW5kSWR4ID0gc3RyLmluZGV4T2YoXCI7XCIsIGluZGV4KTtcbiAgICAgICAgaWYgKGVuZElkeCA9PT0gLTEpIHtcbiAgICAgICAgICBlbmRJZHggPSBsZW47XG4gICAgICAgIH0gZWxzZSBpZiAoZXFJZHggPiBlbmRJZHgpIHtcbiAgICAgICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZihcIjtcIiwgZXFJZHggLSAxKSArIDE7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleVN0YXJ0SWR4ID0gc3RhcnRJbmRleChzdHIsIGluZGV4LCBlcUlkeCk7XG4gICAgICAgIHZhciBrZXlFbmRJZHggPSBlbmRJbmRleChzdHIsIGVxSWR4LCBrZXlTdGFydElkeCk7XG4gICAgICAgIHZhciBrZXkgPSBzdHIuc2xpY2Uoa2V5U3RhcnRJZHgsIGtleUVuZElkeCk7XG4gICAgICAgIGlmICghX19oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgIHZhciB2YWxTdGFydElkeCA9IHN0YXJ0SW5kZXgoc3RyLCBlcUlkeCArIDEsIGVuZElkeCk7XG4gICAgICAgICAgdmFyIHZhbEVuZElkeCA9IGVuZEluZGV4KHN0ciwgZW5kSWR4LCB2YWxTdGFydElkeCk7XG4gICAgICAgICAgaWYgKHN0ci5jaGFyQ29kZUF0KHZhbFN0YXJ0SWR4KSA9PT0gMzQgJiYgc3RyLmNoYXJDb2RlQXQodmFsRW5kSWR4IC0gMSkgPT09IDM0KSB7XG4gICAgICAgICAgICB2YWxTdGFydElkeCsrO1xuICAgICAgICAgICAgdmFsRW5kSWR4LS07XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB2YWwgPSBzdHIuc2xpY2UodmFsU3RhcnRJZHgsIHZhbEVuZElkeCk7XG4gICAgICAgICAgb2JqW2tleV0gPSB0cnlEZWNvZGUodmFsLCBkZWMpO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gZW5kSWR4ICsgMTtcbiAgICAgIH0gd2hpbGUgKGluZGV4IDwgbGVuKTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0SW5kZXgoc3RyLCBpbmRleCwgbWF4KSB7XG4gICAgICBkbyB7XG4gICAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICBpZiAoY29kZSAhPT0gMzIgJiYgY29kZSAhPT0gOSkgcmV0dXJuIGluZGV4O1xuICAgICAgfSB3aGlsZSAoKytpbmRleCA8IG1heCk7XG4gICAgICByZXR1cm4gbWF4O1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbmRJbmRleChzdHIsIGluZGV4LCBtaW4pIHtcbiAgICAgIHdoaWxlIChpbmRleCA+IG1pbikge1xuICAgICAgICB2YXIgY29kZSA9IHN0ci5jaGFyQ29kZUF0KC0taW5kZXgpO1xuICAgICAgICBpZiAoY29kZSAhPT0gMzIgJiYgY29kZSAhPT0gOSkgcmV0dXJuIGluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZShuYW1lLCB2YWwsIG9wdCkge1xuICAgICAgdmFyIGVuYyA9IG9wdCAmJiBvcHQuZW5jb2RlIHx8IGVuY29kZVVSSUNvbXBvbmVudDtcbiAgICAgIGlmICh0eXBlb2YgZW5jICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBlbmNvZGUgaXMgaW52YWxpZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICghY29va2llTmFtZVJlZ0V4cC50ZXN0KG5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lIGlzIGludmFsaWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWUgPSBlbmModmFsKTtcbiAgICAgIGlmICghY29va2llVmFsdWVSZWdFeHAudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHN0ciA9IG5hbWUgKyBcIj1cIiArIHZhbHVlO1xuICAgICAgaWYgKCFvcHQpIHJldHVybiBzdHI7XG4gICAgICBpZiAobnVsbCAhPSBvcHQubWF4QWdlKSB7XG4gICAgICAgIHZhciBtYXhBZ2UgPSBNYXRoLmZsb29yKG9wdC5tYXhBZ2UpO1xuICAgICAgICBpZiAoIWlzRmluaXRlKG1heEFnZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIG1heEFnZSBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN0ciArPSBcIjsgTWF4LUFnZT1cIiArIG1heEFnZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQuZG9tYWluKSB7XG4gICAgICAgIGlmICghZG9tYWluVmFsdWVSZWdFeHAudGVzdChvcHQuZG9tYWluKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZG9tYWluIGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IFwiOyBEb21haW49XCIgKyBvcHQuZG9tYWluO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5wYXRoKSB7XG4gICAgICAgIGlmICghcGF0aFZhbHVlUmVnRXhwLnRlc3Qob3B0LnBhdGgpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwYXRoIGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IFwiOyBQYXRoPVwiICsgb3B0LnBhdGg7XG4gICAgICB9XG4gICAgICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICAgICAgdmFyIGV4cGlyZXMgPSBvcHQuZXhwaXJlcztcbiAgICAgICAgaWYgKCFpc0RhdGUoZXhwaXJlcykgfHwgaXNOYU4oZXhwaXJlcy52YWx1ZU9mKCkpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBleHBpcmVzIGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IFwiOyBFeHBpcmVzPVwiICsgZXhwaXJlcy50b1VUQ1N0cmluZygpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5odHRwT25seSkge1xuICAgICAgICBzdHIgKz0gXCI7IEh0dHBPbmx5XCI7XG4gICAgICB9XG4gICAgICBpZiAob3B0LnNlY3VyZSkge1xuICAgICAgICBzdHIgKz0gXCI7IFNlY3VyZVwiO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5wYXJ0aXRpb25lZCkge1xuICAgICAgICBzdHIgKz0gXCI7IFBhcnRpdGlvbmVkXCI7XG4gICAgICB9XG4gICAgICBpZiAob3B0LnByaW9yaXR5KSB7XG4gICAgICAgIHZhciBwcmlvcml0eSA9IHR5cGVvZiBvcHQucHJpb3JpdHkgPT09IFwic3RyaW5nXCIgPyBvcHQucHJpb3JpdHkudG9Mb3dlckNhc2UoKSA6IG9wdC5wcmlvcml0eTtcbiAgICAgICAgc3dpdGNoIChwcmlvcml0eSkge1xuICAgICAgICAgIGNhc2UgXCJsb3dcIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgUHJpb3JpdHk9TG93XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibWVkaXVtXCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFByaW9yaXR5PU1lZGl1bVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImhpZ2hcIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgUHJpb3JpdHk9SGlnaFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gcHJpb3JpdHkgaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgICAgICB2YXIgc2FtZVNpdGUgPSB0eXBlb2Ygb3B0LnNhbWVTaXRlID09PSBcInN0cmluZ1wiID8gb3B0LnNhbWVTaXRlLnRvTG93ZXJDYXNlKCkgOiBvcHQuc2FtZVNpdGU7XG4gICAgICAgIHN3aXRjaCAoc2FtZVNpdGUpIHtcbiAgICAgICAgICBjYXNlIHRydWU6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFNhbWVTaXRlPVN0cmljdFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImxheFwiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBTYW1lU2l0ZT1MYXhcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJzdHJpY3RcIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgU2FtZVNpdGU9U3RyaWN0XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibm9uZVwiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBTYW1lU2l0ZT1Ob25lXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBzYW1lU2l0ZSBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNvZGUoc3RyKSB7XG4gICAgICByZXR1cm4gc3RyLmluZGV4T2YoXCIlXCIpICE9PSAtMSA/IGRlY29kZVVSSUNvbXBvbmVudChzdHIpIDogc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0RhdGUodmFsKSB7XG4gICAgICByZXR1cm4gX190b1N0cmluZy5jYWxsKHZhbCkgPT09IFwiW29iamVjdCBEYXRlXVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlEZWNvZGUoc3RyLCBkZWNvZGUyKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZGVjb2RlMihzdHIpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIHNvdXJjZS5qc1xudmFyIGltcG9ydF9jb29raWUgPSBfX3RvRVNNKHJlcXVpcmVfY29va2llKCksIDEpO1xudmFyIHNvdXJjZV9kZWZhdWx0ID0gaW1wb3J0X2Nvb2tpZS5kZWZhdWx0O1xuZXhwb3J0IHtcbiAgc291cmNlX2RlZmF1bHQgYXMgZGVmYXVsdFxufTtcbi8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246XG5cbmNvb2tpZS9pbmRleC5qczpcbiAgKCohXG4gICAqIGNvb2tpZVxuICAgKiBDb3B5cmlnaHQoYykgMjAxMi0yMDE0IFJvbWFuIFNodHlsbWFuXG4gICAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcbiovXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@bundled-es-modules/cookie/index-esm.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@bundled-es-modules/statuses/index-esm.js": /*!****************************************************************!*\ !*** ./node_modules/@bundled-es-modules/statuses/index-esm.js ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ source_default)\n/* harmony export */ });\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n \"node_modules/statuses/codes.json\"(exports, module) {\n module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a Teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Too Early\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n \"node_modules/statuses/index.js\"(exports, module) {\n \"use strict\";\n var codes = require_codes();\n module.exports = status2;\n status2.message = codes;\n status2.code = createMessageToStatusCodeMap(codes);\n status2.codes = createStatusCodeList(codes);\n status2.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n };\n status2.empty = {\n 204: true,\n 205: true,\n 304: true\n };\n status2.retry = {\n 502: true,\n 503: true,\n 504: true\n };\n function createMessageToStatusCodeMap(codes2) {\n var map = {};\n Object.keys(codes2).forEach(function forEachCode(code) {\n var message = codes2[code];\n var status3 = Number(code);\n map[message.toLowerCase()] = status3;\n });\n return map;\n }\n function createStatusCodeList(codes2) {\n return Object.keys(codes2).map(function mapCode(code) {\n return Number(code);\n });\n }\n function getStatusCode(message) {\n var msg = message.toLowerCase();\n if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"');\n }\n return status2.code[msg];\n }\n function getStatusMessage(code) {\n if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n throw new Error(\"invalid status code: \" + code);\n }\n return status2.message[code];\n }\n function status2(code) {\n if (typeof code === \"number\") {\n return getStatusMessage(code);\n }\n if (typeof code !== \"string\") {\n throw new TypeError(\"code must be a number or string\");\n }\n var n = parseInt(code, 10);\n if (!isNaN(n)) {\n return getStatusMessage(n);\n }\n return getStatusCode(code);\n }\n }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\n\n/*! Bundled license information:\n\nstatuses/index.js:\n (*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYnVuZGxlZC1lcy1tb2R1bGVzL3N0YXR1c2VzL2luZGV4LWVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsYUFBYTtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxtR0FBbUc7QUFDbkc7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5RUFBeUUsOEJBQThCO0FBQ3ZHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFHRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BidW5kbGVkLWVzLW1vZHVsZXMvc3RhdHVzZXMvaW5kZXgtZXNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2NyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19nZXRQcm90b09mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19jb21tb25KUyA9IChjYiwgbW9kKSA9PiBmdW5jdGlvbiBfX3JlcXVpcmUoKSB7XG4gIHJldHVybiBtb2QgfHwgKDAsIGNiW19fZ2V0T3duUHJvcE5hbWVzKGNiKVswXV0pKChtb2QgPSB7IGV4cG9ydHM6IHt9IH0pLmV4cG9ydHMsIG1vZCksIG1vZC5leHBvcnRzO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvRVNNID0gKG1vZCwgaXNOb2RlTW9kZSwgdGFyZ2V0KSA9PiAodGFyZ2V0ID0gbW9kICE9IG51bGwgPyBfX2NyZWF0ZShfX2dldFByb3RvT2YobW9kKSkgOiB7fSwgX19jb3B5UHJvcHMoXG4gIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU01cbiAgLy8gZmlsZSB0aGF0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIENvbW1vbkpTIGZpbGUgdXNpbmcgYSBCYWJlbC1cbiAgLy8gY29tcGF0aWJsZSB0cmFuc2Zvcm0gKGkuZS4gXCJfX2VzTW9kdWxlXCIgaGFzIG5vdCBiZWVuIHNldCksIHRoZW4gc2V0XG4gIC8vIFwiZGVmYXVsdFwiIHRvIHRoZSBDb21tb25KUyBcIm1vZHVsZS5leHBvcnRzXCIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS5cbiAgaXNOb2RlTW9kZSB8fCAhbW9kIHx8ICFtb2QuX19lc01vZHVsZSA/IF9fZGVmUHJvcCh0YXJnZXQsIFwiZGVmYXVsdFwiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsXG4gIG1vZFxuKSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zdGF0dXNlcy9jb2Rlcy5qc29uXG52YXIgcmVxdWlyZV9jb2RlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zdGF0dXNlcy9jb2Rlcy5qc29uXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgICBcIjEwMFwiOiBcIkNvbnRpbnVlXCIsXG4gICAgICBcIjEwMVwiOiBcIlN3aXRjaGluZyBQcm90b2NvbHNcIixcbiAgICAgIFwiMTAyXCI6IFwiUHJvY2Vzc2luZ1wiLFxuICAgICAgXCIxMDNcIjogXCJFYXJseSBIaW50c1wiLFxuICAgICAgXCIyMDBcIjogXCJPS1wiLFxuICAgICAgXCIyMDFcIjogXCJDcmVhdGVkXCIsXG4gICAgICBcIjIwMlwiOiBcIkFjY2VwdGVkXCIsXG4gICAgICBcIjIwM1wiOiBcIk5vbi1BdXRob3JpdGF0aXZlIEluZm9ybWF0aW9uXCIsXG4gICAgICBcIjIwNFwiOiBcIk5vIENvbnRlbnRcIixcbiAgICAgIFwiMjA1XCI6IFwiUmVzZXQgQ29udGVudFwiLFxuICAgICAgXCIyMDZcIjogXCJQYXJ0aWFsIENvbnRlbnRcIixcbiAgICAgIFwiMjA3XCI6IFwiTXVsdGktU3RhdHVzXCIsXG4gICAgICBcIjIwOFwiOiBcIkFscmVhZHkgUmVwb3J0ZWRcIixcbiAgICAgIFwiMjI2XCI6IFwiSU0gVXNlZFwiLFxuICAgICAgXCIzMDBcIjogXCJNdWx0aXBsZSBDaG9pY2VzXCIsXG4gICAgICBcIjMwMVwiOiBcIk1vdmVkIFBlcm1hbmVudGx5XCIsXG4gICAgICBcIjMwMlwiOiBcIkZvdW5kXCIsXG4gICAgICBcIjMwM1wiOiBcIlNlZSBPdGhlclwiLFxuICAgICAgXCIzMDRcIjogXCJOb3QgTW9kaWZpZWRcIixcbiAgICAgIFwiMzA1XCI6IFwiVXNlIFByb3h5XCIsXG4gICAgICBcIjMwN1wiOiBcIlRlbXBvcmFyeSBSZWRpcmVjdFwiLFxuICAgICAgXCIzMDhcIjogXCJQZXJtYW5lbnQgUmVkaXJlY3RcIixcbiAgICAgIFwiNDAwXCI6IFwiQmFkIFJlcXVlc3RcIixcbiAgICAgIFwiNDAxXCI6IFwiVW5hdXRob3JpemVkXCIsXG4gICAgICBcIjQwMlwiOiBcIlBheW1lbnQgUmVxdWlyZWRcIixcbiAgICAgIFwiNDAzXCI6IFwiRm9yYmlkZGVuXCIsXG4gICAgICBcIjQwNFwiOiBcIk5vdCBGb3VuZFwiLFxuICAgICAgXCI0MDVcIjogXCJNZXRob2QgTm90IEFsbG93ZWRcIixcbiAgICAgIFwiNDA2XCI6IFwiTm90IEFjY2VwdGFibGVcIixcbiAgICAgIFwiNDA3XCI6IFwiUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWRcIixcbiAgICAgIFwiNDA4XCI6IFwiUmVxdWVzdCBUaW1lb3V0XCIsXG4gICAgICBcIjQwOVwiOiBcIkNvbmZsaWN0XCIsXG4gICAgICBcIjQxMFwiOiBcIkdvbmVcIixcbiAgICAgIFwiNDExXCI6IFwiTGVuZ3RoIFJlcXVpcmVkXCIsXG4gICAgICBcIjQxMlwiOiBcIlByZWNvbmRpdGlvbiBGYWlsZWRcIixcbiAgICAgIFwiNDEzXCI6IFwiUGF5bG9hZCBUb28gTGFyZ2VcIixcbiAgICAgIFwiNDE0XCI6IFwiVVJJIFRvbyBMb25nXCIsXG4gICAgICBcIjQxNVwiOiBcIlVuc3VwcG9ydGVkIE1lZGlhIFR5cGVcIixcbiAgICAgIFwiNDE2XCI6IFwiUmFuZ2UgTm90IFNhdGlzZmlhYmxlXCIsXG4gICAgICBcIjQxN1wiOiBcIkV4cGVjdGF0aW9uIEZhaWxlZFwiLFxuICAgICAgXCI0MThcIjogXCJJJ20gYSBUZWFwb3RcIixcbiAgICAgIFwiNDIxXCI6IFwiTWlzZGlyZWN0ZWQgUmVxdWVzdFwiLFxuICAgICAgXCI0MjJcIjogXCJVbnByb2Nlc3NhYmxlIEVudGl0eVwiLFxuICAgICAgXCI0MjNcIjogXCJMb2NrZWRcIixcbiAgICAgIFwiNDI0XCI6IFwiRmFpbGVkIERlcGVuZGVuY3lcIixcbiAgICAgIFwiNDI1XCI6IFwiVG9vIEVhcmx5XCIsXG4gICAgICBcIjQyNlwiOiBcIlVwZ3JhZGUgUmVxdWlyZWRcIixcbiAgICAgIFwiNDI4XCI6IFwiUHJlY29uZGl0aW9uIFJlcXVpcmVkXCIsXG4gICAgICBcIjQyOVwiOiBcIlRvbyBNYW55IFJlcXVlc3RzXCIsXG4gICAgICBcIjQzMVwiOiBcIlJlcXVlc3QgSGVhZGVyIEZpZWxkcyBUb28gTGFyZ2VcIixcbiAgICAgIFwiNDUxXCI6IFwiVW5hdmFpbGFibGUgRm9yIExlZ2FsIFJlYXNvbnNcIixcbiAgICAgIFwiNTAwXCI6IFwiSW50ZXJuYWwgU2VydmVyIEVycm9yXCIsXG4gICAgICBcIjUwMVwiOiBcIk5vdCBJbXBsZW1lbnRlZFwiLFxuICAgICAgXCI1MDJcIjogXCJCYWQgR2F0ZXdheVwiLFxuICAgICAgXCI1MDNcIjogXCJTZXJ2aWNlIFVuYXZhaWxhYmxlXCIsXG4gICAgICBcIjUwNFwiOiBcIkdhdGV3YXkgVGltZW91dFwiLFxuICAgICAgXCI1MDVcIjogXCJIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZFwiLFxuICAgICAgXCI1MDZcIjogXCJWYXJpYW50IEFsc28gTmVnb3RpYXRlc1wiLFxuICAgICAgXCI1MDdcIjogXCJJbnN1ZmZpY2llbnQgU3RvcmFnZVwiLFxuICAgICAgXCI1MDhcIjogXCJMb29wIERldGVjdGVkXCIsXG4gICAgICBcIjUwOVwiOiBcIkJhbmR3aWR0aCBMaW1pdCBFeGNlZWRlZFwiLFxuICAgICAgXCI1MTBcIjogXCJOb3QgRXh0ZW5kZWRcIixcbiAgICAgIFwiNTExXCI6IFwiTmV0d29yayBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZFwiXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zdGF0dXNlcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfc3RhdHVzZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc3RhdHVzZXMvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29kZXMgPSByZXF1aXJlX2NvZGVzKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBzdGF0dXMyO1xuICAgIHN0YXR1czIubWVzc2FnZSA9IGNvZGVzO1xuICAgIHN0YXR1czIuY29kZSA9IGNyZWF0ZU1lc3NhZ2VUb1N0YXR1c0NvZGVNYXAoY29kZXMpO1xuICAgIHN0YXR1czIuY29kZXMgPSBjcmVhdGVTdGF0dXNDb2RlTGlzdChjb2Rlcyk7XG4gICAgc3RhdHVzMi5yZWRpcmVjdCA9IHtcbiAgICAgIDMwMDogdHJ1ZSxcbiAgICAgIDMwMTogdHJ1ZSxcbiAgICAgIDMwMjogdHJ1ZSxcbiAgICAgIDMwMzogdHJ1ZSxcbiAgICAgIDMwNTogdHJ1ZSxcbiAgICAgIDMwNzogdHJ1ZSxcbiAgICAgIDMwODogdHJ1ZVxuICAgIH07XG4gICAgc3RhdHVzMi5lbXB0eSA9IHtcbiAgICAgIDIwNDogdHJ1ZSxcbiAgICAgIDIwNTogdHJ1ZSxcbiAgICAgIDMwNDogdHJ1ZVxuICAgIH07XG4gICAgc3RhdHVzMi5yZXRyeSA9IHtcbiAgICAgIDUwMjogdHJ1ZSxcbiAgICAgIDUwMzogdHJ1ZSxcbiAgICAgIDUwNDogdHJ1ZVxuICAgIH07XG4gICAgZnVuY3Rpb24gY3JlYXRlTWVzc2FnZVRvU3RhdHVzQ29kZU1hcChjb2RlczIpIHtcbiAgICAgIHZhciBtYXAgPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKGNvZGVzMikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoQ29kZShjb2RlKSB7XG4gICAgICAgIHZhciBtZXNzYWdlID0gY29kZXMyW2NvZGVdO1xuICAgICAgICB2YXIgc3RhdHVzMyA9IE51bWJlcihjb2RlKTtcbiAgICAgICAgbWFwW21lc3NhZ2UudG9Mb3dlckNhc2UoKV0gPSBzdGF0dXMzO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbWFwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTdGF0dXNDb2RlTGlzdChjb2RlczIpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhjb2RlczIpLm1hcChmdW5jdGlvbiBtYXBDb2RlKGNvZGUpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcihjb2RlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdGF0dXNDb2RlKG1lc3NhZ2UpIHtcbiAgICAgIHZhciBtc2cgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0dXMyLmNvZGUsIG1zZykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXR1cyBtZXNzYWdlOiBcIicgKyBtZXNzYWdlICsgJ1wiJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdHVzMi5jb2RlW21zZ107XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN0YXR1c01lc3NhZ2UoY29kZSkge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdHVzMi5tZXNzYWdlLCBjb2RlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHN0YXR1cyBjb2RlOiBcIiArIGNvZGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXR1czIubWVzc2FnZVtjb2RlXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhdHVzMihjb2RlKSB7XG4gICAgICBpZiAodHlwZW9mIGNvZGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGdldFN0YXR1c01lc3NhZ2UoY29kZSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGNvZGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImNvZGUgbXVzdCBiZSBhIG51bWJlciBvciBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgbiA9IHBhcnNlSW50KGNvZGUsIDEwKTtcbiAgICAgIGlmICghaXNOYU4obikpIHtcbiAgICAgICAgcmV0dXJuIGdldFN0YXR1c01lc3NhZ2Uobik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ2V0U3RhdHVzQ29kZShjb2RlKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBzb3VyY2UuanNcbnZhciBpbXBvcnRfc3RhdHVzZXMgPSBfX3RvRVNNKHJlcXVpcmVfc3RhdHVzZXMoKSwgMSk7XG52YXIgc291cmNlX2RlZmF1bHQgPSBpbXBvcnRfc3RhdHVzZXMuZGVmYXVsdDtcbmV4cG9ydCB7XG4gIHNvdXJjZV9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4vKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOlxuXG5zdGF0dXNlcy9pbmRleC5qczpcbiAgKCohXG4gICAqIHN0YXR1c2VzXG4gICAqIENvcHlyaWdodChjKSAyMDE0IEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG4qL1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@bundled-es-modules/statuses/index-esm.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@bundled-es-modules/tough-cookie/index-esm.js": /*!********************************************************************!*\ !*** ./node_modules/@bundled-es-modules/tough-cookie/index-esm.js ***! \********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ source_default)\n/* harmony export */ });\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/punycode/punycode.js\nvar require_punycode = __commonJS({\n \"node_modules/punycode/punycode.js\"(exports, module) {\n \"use strict\";\n var maxInt = 2147483647;\n var base = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128;\n var delimiter = \"-\";\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\0-\\x7F]/;\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\n var errors = {\n \"overflow\": \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n };\n var baseMinusTMin = base - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n function error(type) {\n throw new RangeError(errors[type]);\n }\n function map(array, callback) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = callback(array[length]);\n }\n return result;\n }\n function mapDomain(domain, callback) {\n const parts = domain.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n result = parts[0] + \"@\";\n domain = parts[1];\n }\n domain = domain.replace(regexSeparators, \".\");\n const labels = domain.split(\".\");\n const encoded = map(labels, callback).join(\".\");\n return result + encoded;\n }\n function ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 64512) == 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\n var basicToDigit = function(codePoint) {\n if (codePoint >= 48 && codePoint < 58) {\n return 26 + (codePoint - 48);\n }\n if (codePoint >= 65 && codePoint < 91) {\n return codePoint - 65;\n }\n if (codePoint >= 97 && codePoint < 123) {\n return codePoint - 97;\n }\n return base;\n };\n var digitToBasic = function(digit, flag) {\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n };\n var adapt = function(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n };\n var decode = function(input) {\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n for (let j = 0; j < basic; ++j) {\n if (input.charCodeAt(j) >= 128) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n const oldi = i;\n for (let w = 1, k = base; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base) {\n error(\"invalid-input\");\n }\n if (digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n i += digit * w;\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (digit < t) {\n break;\n }\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n w *= baseMinusT;\n }\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n n += floor(i / out);\n i %= out;\n output.splice(i++, 0, n);\n }\n return String.fromCodePoint(...output);\n };\n var encode = function(input) {\n const output = [];\n input = ucs2decode(input);\n const inputLength = input.length;\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n for (const currentValue of input) {\n if (currentValue < 128) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n const basicLength = output.length;\n let handledCPCount = basicLength;\n if (basicLength) {\n output.push(delimiter);\n }\n while (handledCPCount < inputLength) {\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue === n) {\n let q = delta;\n for (let k = base; ; k += base) {\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n ++delta;\n ++n;\n }\n return output.join(\"\");\n };\n var toUnicode = function(input) {\n return mapDomain(input, function(string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n };\n var toASCII = function(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n };\n var punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n \"version\": \"2.3.1\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n \"ucs2\": {\n \"decode\": ucs2decode,\n \"encode\": ucs2encode\n },\n \"decode\": decode,\n \"encode\": encode,\n \"toASCII\": toASCII,\n \"toUnicode\": toUnicode\n };\n module.exports = punycode;\n }\n});\n\n// node_modules/requires-port/index.js\nvar require_requires_port = __commonJS({\n \"node_modules/requires-port/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function required(port, protocol) {\n protocol = protocol.split(\":\")[0];\n port = +port;\n if (!port) return false;\n switch (protocol) {\n case \"http\":\n case \"ws\":\n return port !== 80;\n case \"https\":\n case \"wss\":\n return port !== 443;\n case \"ftp\":\n return port !== 21;\n case \"gopher\":\n return port !== 70;\n case \"file\":\n return false;\n }\n return port !== 0;\n };\n }\n});\n\n// node_modules/querystringify/index.js\nvar require_querystringify = __commonJS({\n \"node_modules/querystringify/index.js\"(exports) {\n \"use strict\";\n var has = Object.prototype.hasOwnProperty;\n var undef;\n function decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, \" \"));\n } catch (e) {\n return null;\n }\n }\n function encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n }\n function querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g, result = {}, part;\n while (part = parser.exec(query)) {\n var key = decode(part[1]), value = decode(part[2]);\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n return result;\n }\n function querystringify(obj, prefix) {\n prefix = prefix || \"\";\n var pairs = [], value, key;\n if (\"string\" !== typeof prefix) prefix = \"?\";\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = \"\";\n }\n key = encode(key);\n value = encode(value);\n if (key === null || value === null) continue;\n pairs.push(key + \"=\" + value);\n }\n }\n return pairs.length ? prefix + pairs.join(\"&\") : \"\";\n }\n exports.stringify = querystringify;\n exports.parse = querystring;\n }\n});\n\n// node_modules/url-parse/index.js\nvar require_url_parse = __commonJS({\n \"node_modules/url-parse/index.js\"(exports, module) {\n \"use strict\";\n var required = require_requires_port();\n var qs = require_querystringify();\n var controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/;\n var CRHTLF = /[\\n\\r\\t]/g;\n var slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//;\n var port = /:\\d+$/;\n var protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i;\n var windowsDriveLetter = /^[a-zA-Z]:/;\n function trimLeft(str) {\n return (str ? str : \"\").toString().replace(controlOrWhitespace, \"\");\n }\n var rules = [\n [\"#\", \"hash\"],\n // Extract from the back.\n [\"?\", \"query\"],\n // Extract from the back.\n function sanitize(address, url) {\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, \"/\") : address;\n },\n [\"/\", \"pathname\"],\n // Extract from the back.\n [\"@\", \"auth\", 1],\n // Extract from the front.\n [NaN, \"host\", void 0, 1, 1],\n // Set left over value.\n [/:(\\d*)$/, \"port\", void 0, 1],\n // RegExp the back.\n [NaN, \"hostname\", void 0, 1, 1]\n // Set left over.\n ];\n var ignore = { hash: 1, query: 1 };\n function lolcation(loc) {\n var globalVar;\n if (typeof window !== \"undefined\") globalVar = window;\n else if (typeof global !== \"undefined\") globalVar = global;\n else if (typeof self !== \"undefined\") globalVar = self;\n else globalVar = {};\n var location = globalVar.location || {};\n loc = loc || location;\n var finaldestination = {}, type = typeof loc, key;\n if (\"blob:\" === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if (\"string\" === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if (\"object\" === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n if (finaldestination.slashes === void 0) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n return finaldestination;\n }\n function isSpecial(scheme) {\n return scheme === \"file:\" || scheme === \"ftp:\" || scheme === \"http:\" || scheme === \"https:\" || scheme === \"ws:\" || scheme === \"wss:\";\n }\n function extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n location = location || {};\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : \"\";\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4];\n }\n }\n if (protocol === \"file:\") {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n return {\n protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount,\n rest\n };\n }\n function resolve(relative, base) {\n if (relative === \"\") return base;\n var path = (base || \"/\").split(\"/\").slice(0, -1).concat(relative.split(\"/\")), i = path.length, last = path[i - 1], unshift = false, up = 0;\n while (i--) {\n if (path[i] === \".\") {\n path.splice(i, 1);\n } else if (path[i] === \"..\") {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n if (unshift) path.unshift(\"\");\n if (last === \".\" || last === \"..\") path.push(\"\");\n return path.join(\"/\");\n }\n function Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n var relative, extracted, parse, instruction, index, key, instructions = rules.slice(), type = typeof location, url = this, i = 0;\n if (\"object\" !== type && \"string\" !== type) {\n parser = location;\n location = null;\n }\n if (parser && \"function\" !== typeof parser) parser = qs.parse;\n location = lolcation(location);\n extracted = extractProtocol(address || \"\", location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || \"\";\n address = extracted.rest;\n if (extracted.protocol === \"file:\" && (extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) || !extracted.slashes && (extracted.protocol || extracted.slashesCount < 2 || !isSpecial(url.protocol))) {\n instructions[3] = [/(.*)/, \"pathname\"];\n }\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n if (typeof instruction === \"function\") {\n address = instruction(address, url);\n continue;\n }\n parse = instruction[0];\n key = instruction[1];\n if (parse !== parse) {\n url[key] = address;\n } else if (\"string\" === typeof parse) {\n index = parse === \"@\" ? address.lastIndexOf(parse) : address.indexOf(parse);\n if (~index) {\n if (\"number\" === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if (index = parse.exec(address)) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n url[key] = url[key] || (relative && instruction[3] ? location[key] || \"\" : \"\");\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n if (parser) url.query = parser(url.query);\n if (relative && location.slashes && url.pathname.charAt(0) !== \"/\" && (url.pathname !== \"\" || location.pathname !== \"\")) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n if (url.pathname.charAt(0) !== \"/\" && isSpecial(url.protocol)) {\n url.pathname = \"/\" + url.pathname;\n }\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = \"\";\n }\n url.username = url.password = \"\";\n if (url.auth) {\n index = url.auth.indexOf(\":\");\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n }\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n }\n function set(part, value, fn) {\n var url = this;\n switch (part) {\n case \"query\":\n if (\"string\" === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n url[part] = value;\n break;\n case \"port\":\n url[part] = value;\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = \"\";\n } else if (value) {\n url.host = url.hostname + \":\" + value;\n }\n break;\n case \"hostname\":\n url[part] = value;\n if (url.port) value += \":\" + url.port;\n url.host = value;\n break;\n case \"host\":\n url[part] = value;\n if (port.test(value)) {\n value = value.split(\":\");\n url.port = value.pop();\n url.hostname = value.join(\":\");\n } else {\n url.hostname = value;\n url.port = \"\";\n }\n break;\n case \"protocol\":\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n case \"pathname\":\n case \"hash\":\n if (value) {\n var char = part === \"pathname\" ? \"/\" : \"#\";\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n case \"username\":\n case \"password\":\n url[part] = encodeURIComponent(value);\n break;\n case \"auth\":\n var index = value.indexOf(\":\");\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n return url;\n }\n function toString(stringify) {\n if (!stringify || \"function\" !== typeof stringify) stringify = qs.stringify;\n var query, url = this, host = url.host, protocol = url.protocol;\n if (protocol && protocol.charAt(protocol.length - 1) !== \":\") protocol += \":\";\n var result = protocol + (url.protocol && url.slashes || isSpecial(url.protocol) ? \"//\" : \"\");\n if (url.username) {\n result += url.username;\n if (url.password) result += \":\" + url.password;\n result += \"@\";\n } else if (url.password) {\n result += \":\" + url.password;\n result += \"@\";\n } else if (url.protocol !== \"file:\" && isSpecial(url.protocol) && !host && url.pathname !== \"/\") {\n result += \"@\";\n }\n if (host[host.length - 1] === \":\" || port.test(url.hostname) && !url.port) {\n host += \":\";\n }\n result += host + url.pathname;\n query = \"object\" === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += \"?\" !== query.charAt(0) ? \"?\" + query : query;\n if (url.hash) result += url.hash;\n return result;\n }\n Url.prototype = { set, toString };\n Url.extractProtocol = extractProtocol;\n Url.location = lolcation;\n Url.trimLeft = trimLeft;\n Url.qs = qs;\n module.exports = Url;\n }\n});\n\n// node_modules/psl/data/rules.json\nvar require_rules = __commonJS({\n \"node_modules/psl/data/rules.json\"(exports, module) {\n module.exports = [\n \"ac\",\n \"com.ac\",\n \"edu.ac\",\n \"gov.ac\",\n \"net.ac\",\n \"mil.ac\",\n \"org.ac\",\n \"ad\",\n \"nom.ad\",\n \"ae\",\n \"co.ae\",\n \"net.ae\",\n \"org.ae\",\n \"sch.ae\",\n \"ac.ae\",\n \"gov.ae\",\n \"mil.ae\",\n \"aero\",\n \"accident-investigation.aero\",\n \"accident-prevention.aero\",\n \"aerobatic.aero\",\n \"aeroclub.aero\",\n \"aerodrome.aero\",\n \"agents.aero\",\n \"aircraft.aero\",\n \"airline.aero\",\n \"airport.aero\",\n \"air-surveillance.aero\",\n \"airtraffic.aero\",\n \"air-traffic-control.aero\",\n \"ambulance.aero\",\n \"amusement.aero\",\n \"association.aero\",\n \"author.aero\",\n \"ballooning.aero\",\n \"broker.aero\",\n \"caa.aero\",\n \"cargo.aero\",\n \"catering.aero\",\n \"certification.aero\",\n \"championship.aero\",\n \"charter.aero\",\n \"civilaviation.aero\",\n \"club.aero\",\n \"conference.aero\",\n \"consultant.aero\",\n \"consulting.aero\",\n \"control.aero\",\n \"council.aero\",\n \"crew.aero\",\n \"design.aero\",\n \"dgca.aero\",\n \"educator.aero\",\n \"emergency.aero\",\n \"engine.aero\",\n \"engineer.aero\",\n \"entertainment.aero\",\n \"equipment.aero\",\n \"exchange.aero\",\n \"express.aero\",\n \"federation.aero\",\n \"flight.aero\",\n \"fuel.aero\",\n \"gliding.aero\",\n \"government.aero\",\n \"groundhandling.aero\",\n \"group.aero\",\n \"hanggliding.aero\",\n \"homebuilt.aero\",\n \"insurance.aero\",\n \"journal.aero\",\n \"journalist.aero\",\n \"leasing.aero\",\n \"logistics.aero\",\n \"magazine.aero\",\n \"maintenance.aero\",\n \"media.aero\",\n \"microlight.aero\",\n \"modelling.aero\",\n \"navigation.aero\",\n \"parachuting.aero\",\n \"paragliding.aero\",\n \"passenger-association.aero\",\n \"pilot.aero\",\n \"press.aero\",\n \"production.aero\",\n \"recreation.aero\",\n \"repbody.aero\",\n \"res.aero\",\n \"research.aero\",\n \"rotorcraft.aero\",\n \"safety.aero\",\n \"scientist.aero\",\n \"services.aero\",\n \"show.aero\",\n \"skydiving.aero\",\n \"software.aero\",\n \"student.aero\",\n \"trader.aero\",\n \"trading.aero\",\n \"trainer.aero\",\n \"union.aero\",\n \"workinggroup.aero\",\n \"works.aero\",\n \"af\",\n \"gov.af\",\n \"com.af\",\n \"org.af\",\n \"net.af\",\n \"edu.af\",\n \"ag\",\n \"com.ag\",\n \"org.ag\",\n \"net.ag\",\n \"co.ag\",\n \"nom.ag\",\n \"ai\",\n \"off.ai\",\n \"com.ai\",\n \"net.ai\",\n \"org.ai\",\n \"al\",\n \"com.al\",\n \"edu.al\",\n \"gov.al\",\n \"mil.al\",\n \"net.al\",\n \"org.al\",\n \"am\",\n \"co.am\",\n \"com.am\",\n \"commune.am\",\n \"net.am\",\n \"org.am\",\n \"ao\",\n \"ed.ao\",\n \"gv.ao\",\n \"og.ao\",\n \"co.ao\",\n \"pb.ao\",\n \"it.ao\",\n \"aq\",\n \"ar\",\n \"bet.ar\",\n \"com.ar\",\n \"coop.ar\",\n \"edu.ar\",\n \"gob.ar\",\n \"gov.ar\",\n \"int.ar\",\n \"mil.ar\",\n \"musica.ar\",\n \"mutual.ar\",\n \"net.ar\",\n \"org.ar\",\n \"senasa.ar\",\n \"tur.ar\",\n \"arpa\",\n \"e164.arpa\",\n \"in-addr.arpa\",\n \"ip6.arpa\",\n \"iris.arpa\",\n \"uri.arpa\",\n \"urn.arpa\",\n \"as\",\n \"gov.as\",\n \"asia\",\n \"at\",\n \"ac.at\",\n \"co.at\",\n \"gv.at\",\n \"or.at\",\n \"sth.ac.at\",\n \"au\",\n \"com.au\",\n \"net.au\",\n \"org.au\",\n \"edu.au\",\n \"gov.au\",\n \"asn.au\",\n \"id.au\",\n \"info.au\",\n \"conf.au\",\n \"oz.au\",\n \"act.au\",\n \"nsw.au\",\n \"nt.au\",\n \"qld.au\",\n \"sa.au\",\n \"tas.au\",\n \"vic.au\",\n \"wa.au\",\n \"act.edu.au\",\n \"catholic.edu.au\",\n \"nsw.edu.au\",\n \"nt.edu.au\",\n \"qld.edu.au\",\n \"sa.edu.au\",\n \"tas.edu.au\",\n \"vic.edu.au\",\n \"wa.edu.au\",\n \"qld.gov.au\",\n \"sa.gov.au\",\n \"tas.gov.au\",\n \"vic.gov.au\",\n \"wa.gov.au\",\n \"schools.nsw.edu.au\",\n \"aw\",\n \"com.aw\",\n \"ax\",\n \"az\",\n \"com.az\",\n \"net.az\",\n \"int.az\",\n \"gov.az\",\n \"org.az\",\n \"edu.az\",\n \"info.az\",\n \"pp.az\",\n \"mil.az\",\n \"name.az\",\n \"pro.az\",\n \"biz.az\",\n \"ba\",\n \"com.ba\",\n \"edu.ba\",\n \"gov.ba\",\n \"mil.ba\",\n \"net.ba\",\n \"org.ba\",\n \"bb\",\n \"biz.bb\",\n \"co.bb\",\n \"com.bb\",\n \"edu.bb\",\n \"gov.bb\",\n \"info.bb\",\n \"net.bb\",\n \"org.bb\",\n \"store.bb\",\n \"tv.bb\",\n \"*.bd\",\n \"be\",\n \"ac.be\",\n \"bf\",\n \"gov.bf\",\n \"bg\",\n \"a.bg\",\n \"b.bg\",\n \"c.bg\",\n \"d.bg\",\n \"e.bg\",\n \"f.bg\",\n \"g.bg\",\n \"h.bg\",\n \"i.bg\",\n \"j.bg\",\n \"k.bg\",\n \"l.bg\",\n \"m.bg\",\n \"n.bg\",\n \"o.bg\",\n \"p.bg\",\n \"q.bg\",\n \"r.bg\",\n \"s.bg\",\n \"t.bg\",\n \"u.bg\",\n \"v.bg\",\n \"w.bg\",\n \"x.bg\",\n \"y.bg\",\n \"z.bg\",\n \"0.bg\",\n \"1.bg\",\n \"2.bg\",\n \"3.bg\",\n \"4.bg\",\n \"5.bg\",\n \"6.bg\",\n \"7.bg\",\n \"8.bg\",\n \"9.bg\",\n \"bh\",\n \"com.bh\",\n \"edu.bh\",\n \"net.bh\",\n \"org.bh\",\n \"gov.bh\",\n \"bi\",\n \"co.bi\",\n \"com.bi\",\n \"edu.bi\",\n \"or.bi\",\n \"org.bi\",\n \"biz\",\n \"bj\",\n \"asso.bj\",\n \"barreau.bj\",\n \"gouv.bj\",\n \"bm\",\n \"com.bm\",\n \"edu.bm\",\n \"gov.bm\",\n \"net.bm\",\n \"org.bm\",\n \"bn\",\n \"com.bn\",\n \"edu.bn\",\n \"gov.bn\",\n \"net.bn\",\n \"org.bn\",\n \"bo\",\n \"com.bo\",\n \"edu.bo\",\n \"gob.bo\",\n \"int.bo\",\n \"org.bo\",\n \"net.bo\",\n \"mil.bo\",\n \"tv.bo\",\n \"web.bo\",\n \"academia.bo\",\n \"agro.bo\",\n \"arte.bo\",\n \"blog.bo\",\n \"bolivia.bo\",\n \"ciencia.bo\",\n \"cooperativa.bo\",\n \"democracia.bo\",\n \"deporte.bo\",\n \"ecologia.bo\",\n \"economia.bo\",\n \"empresa.bo\",\n \"indigena.bo\",\n \"industria.bo\",\n \"info.bo\",\n \"medicina.bo\",\n \"movimiento.bo\",\n \"musica.bo\",\n \"natural.bo\",\n \"nombre.bo\",\n \"noticias.bo\",\n \"patria.bo\",\n \"politica.bo\",\n \"profesional.bo\",\n \"plurinacional.bo\",\n \"pueblo.bo\",\n \"revista.bo\",\n \"salud.bo\",\n \"tecnologia.bo\",\n \"tksat.bo\",\n \"transporte.bo\",\n \"wiki.bo\",\n \"br\",\n \"9guacu.br\",\n \"abc.br\",\n \"adm.br\",\n \"adv.br\",\n \"agr.br\",\n \"aju.br\",\n \"am.br\",\n \"anani.br\",\n \"aparecida.br\",\n \"app.br\",\n \"arq.br\",\n \"art.br\",\n \"ato.br\",\n \"b.br\",\n \"barueri.br\",\n \"belem.br\",\n \"bhz.br\",\n \"bib.br\",\n \"bio.br\",\n \"blog.br\",\n \"bmd.br\",\n \"boavista.br\",\n \"bsb.br\",\n \"campinagrande.br\",\n \"campinas.br\",\n \"caxias.br\",\n \"cim.br\",\n \"cng.br\",\n \"cnt.br\",\n \"com.br\",\n \"contagem.br\",\n \"coop.br\",\n \"coz.br\",\n \"cri.br\",\n \"cuiaba.br\",\n \"curitiba.br\",\n \"def.br\",\n \"des.br\",\n \"det.br\",\n \"dev.br\",\n \"ecn.br\",\n \"eco.br\",\n \"edu.br\",\n \"emp.br\",\n \"enf.br\",\n \"eng.br\",\n \"esp.br\",\n \"etc.br\",\n \"eti.br\",\n \"far.br\",\n \"feira.br\",\n \"flog.br\",\n \"floripa.br\",\n \"fm.br\",\n \"fnd.br\",\n \"fortal.br\",\n \"fot.br\",\n \"foz.br\",\n \"fst.br\",\n \"g12.br\",\n \"geo.br\",\n \"ggf.br\",\n \"goiania.br\",\n \"gov.br\",\n \"ac.gov.br\",\n \"al.gov.br\",\n \"am.gov.br\",\n \"ap.gov.br\",\n \"ba.gov.br\",\n \"ce.gov.br\",\n \"df.gov.br\",\n \"es.gov.br\",\n \"go.gov.br\",\n \"ma.gov.br\",\n \"mg.gov.br\",\n \"ms.gov.br\",\n \"mt.gov.br\",\n \"pa.gov.br\",\n \"pb.gov.br\",\n \"pe.gov.br\",\n \"pi.gov.br\",\n \"pr.gov.br\",\n \"rj.gov.br\",\n \"rn.gov.br\",\n \"ro.gov.br\",\n \"rr.gov.br\",\n \"rs.gov.br\",\n \"sc.gov.br\",\n \"se.gov.br\",\n \"sp.gov.br\",\n \"to.gov.br\",\n \"gru.br\",\n \"imb.br\",\n \"ind.br\",\n \"inf.br\",\n \"jab.br\",\n \"jampa.br\",\n \"jdf.br\",\n \"joinville.br\",\n \"jor.br\",\n \"jus.br\",\n \"leg.br\",\n \"lel.br\",\n \"log.br\",\n \"londrina.br\",\n \"macapa.br\",\n \"maceio.br\",\n \"manaus.br\",\n \"maringa.br\",\n \"mat.br\",\n \"med.br\",\n \"mil.br\",\n \"morena.br\",\n \"mp.br\",\n \"mus.br\",\n \"natal.br\",\n \"net.br\",\n \"niteroi.br\",\n \"*.nom.br\",\n \"not.br\",\n \"ntr.br\",\n \"odo.br\",\n \"ong.br\",\n \"org.br\",\n \"osasco.br\",\n \"palmas.br\",\n \"poa.br\",\n \"ppg.br\",\n \"pro.br\",\n \"psc.br\",\n \"psi.br\",\n \"pvh.br\",\n \"qsl.br\",\n \"radio.br\",\n \"rec.br\",\n \"recife.br\",\n \"rep.br\",\n \"ribeirao.br\",\n \"rio.br\",\n \"riobranco.br\",\n \"riopreto.br\",\n \"salvador.br\",\n \"sampa.br\",\n \"santamaria.br\",\n \"santoandre.br\",\n \"saobernardo.br\",\n \"saogonca.br\",\n \"seg.br\",\n \"sjc.br\",\n \"slg.br\",\n \"slz.br\",\n \"sorocaba.br\",\n \"srv.br\",\n \"taxi.br\",\n \"tc.br\",\n \"tec.br\",\n \"teo.br\",\n \"the.br\",\n \"tmp.br\",\n \"trd.br\",\n \"tur.br\",\n \"tv.br\",\n \"udi.br\",\n \"vet.br\",\n \"vix.br\",\n \"vlog.br\",\n \"wiki.br\",\n \"zlg.br\",\n \"bs\",\n \"com.bs\",\n \"net.bs\",\n \"org.bs\",\n \"edu.bs\",\n \"gov.bs\",\n \"bt\",\n \"com.bt\",\n \"edu.bt\",\n \"gov.bt\",\n \"net.bt\",\n \"org.bt\",\n \"bv\",\n \"bw\",\n \"co.bw\",\n \"org.bw\",\n \"by\",\n \"gov.by\",\n \"mil.by\",\n \"com.by\",\n \"of.by\",\n \"bz\",\n \"com.bz\",\n \"net.bz\",\n \"org.bz\",\n \"edu.bz\",\n \"gov.bz\",\n \"ca\",\n \"ab.ca\",\n \"bc.ca\",\n \"mb.ca\",\n \"nb.ca\",\n \"nf.ca\",\n \"nl.ca\",\n \"ns.ca\",\n \"nt.ca\",\n \"nu.ca\",\n \"on.ca\",\n \"pe.ca\",\n \"qc.ca\",\n \"sk.ca\",\n \"yk.ca\",\n \"gc.ca\",\n \"cat\",\n \"cc\",\n \"cd\",\n \"gov.cd\",\n \"cf\",\n \"cg\",\n \"ch\",\n \"ci\",\n \"org.ci\",\n \"or.ci\",\n \"com.ci\",\n \"co.ci\",\n \"edu.ci\",\n \"ed.ci\",\n \"ac.ci\",\n \"net.ci\",\n \"go.ci\",\n \"asso.ci\",\n \"a\\xE9roport.ci\",\n \"int.ci\",\n \"presse.ci\",\n \"md.ci\",\n \"gouv.ci\",\n \"*.ck\",\n \"!www.ck\",\n \"cl\",\n \"co.cl\",\n \"gob.cl\",\n \"gov.cl\",\n \"mil.cl\",\n \"cm\",\n \"co.cm\",\n \"com.cm\",\n \"gov.cm\",\n \"net.cm\",\n \"cn\",\n \"ac.cn\",\n \"com.cn\",\n \"edu.cn\",\n \"gov.cn\",\n \"net.cn\",\n \"org.cn\",\n \"mil.cn\",\n \"\\u516C\\u53F8.cn\",\n \"\\u7F51\\u7EDC.cn\",\n \"\\u7DB2\\u7D61.cn\",\n \"ah.cn\",\n \"bj.cn\",\n \"cq.cn\",\n \"fj.cn\",\n \"gd.cn\",\n \"gs.cn\",\n \"gz.cn\",\n \"gx.cn\",\n \"ha.cn\",\n \"hb.cn\",\n \"he.cn\",\n \"hi.cn\",\n \"hl.cn\",\n \"hn.cn\",\n \"jl.cn\",\n \"js.cn\",\n \"jx.cn\",\n \"ln.cn\",\n \"nm.cn\",\n \"nx.cn\",\n \"qh.cn\",\n \"sc.cn\",\n \"sd.cn\",\n \"sh.cn\",\n \"sn.cn\",\n \"sx.cn\",\n \"tj.cn\",\n \"xj.cn\",\n \"xz.cn\",\n \"yn.cn\",\n \"zj.cn\",\n \"hk.cn\",\n \"mo.cn\",\n \"tw.cn\",\n \"co\",\n \"arts.co\",\n \"com.co\",\n \"edu.co\",\n \"firm.co\",\n \"gov.co\",\n \"info.co\",\n \"int.co\",\n \"mil.co\",\n \"net.co\",\n \"nom.co\",\n \"org.co\",\n \"rec.co\",\n \"web.co\",\n \"com\",\n \"coop\",\n \"cr\",\n \"ac.cr\",\n \"co.cr\",\n \"ed.cr\",\n \"fi.cr\",\n \"go.cr\",\n \"or.cr\",\n \"sa.cr\",\n \"cu\",\n \"com.cu\",\n \"edu.cu\",\n \"org.cu\",\n \"net.cu\",\n \"gov.cu\",\n \"inf.cu\",\n \"cv\",\n \"com.cv\",\n \"edu.cv\",\n \"int.cv\",\n \"nome.cv\",\n \"org.cv\",\n \"cw\",\n \"com.cw\",\n \"edu.cw\",\n \"net.cw\",\n \"org.cw\",\n \"cx\",\n \"gov.cx\",\n \"cy\",\n \"ac.cy\",\n \"biz.cy\",\n \"com.cy\",\n \"ekloges.cy\",\n \"gov.cy\",\n \"ltd.cy\",\n \"mil.cy\",\n \"net.cy\",\n \"org.cy\",\n \"press.cy\",\n \"pro.cy\",\n \"tm.cy\",\n \"cz\",\n \"de\",\n \"dj\",\n \"dk\",\n \"dm\",\n \"com.dm\",\n \"net.dm\",\n \"org.dm\",\n \"edu.dm\",\n \"gov.dm\",\n \"do\",\n \"art.do\",\n \"com.do\",\n \"edu.do\",\n \"gob.do\",\n \"gov.do\",\n \"mil.do\",\n \"net.do\",\n \"org.do\",\n \"sld.do\",\n \"web.do\",\n \"dz\",\n \"art.dz\",\n \"asso.dz\",\n \"com.dz\",\n \"edu.dz\",\n \"gov.dz\",\n \"org.dz\",\n \"net.dz\",\n \"pol.dz\",\n \"soc.dz\",\n \"tm.dz\",\n \"ec\",\n \"com.ec\",\n \"info.ec\",\n \"net.ec\",\n \"fin.ec\",\n \"k12.ec\",\n \"med.ec\",\n \"pro.ec\",\n \"org.ec\",\n \"edu.ec\",\n \"gov.ec\",\n \"gob.ec\",\n \"mil.ec\",\n \"edu\",\n \"ee\",\n \"edu.ee\",\n \"gov.ee\",\n \"riik.ee\",\n \"lib.ee\",\n \"med.ee\",\n \"com.ee\",\n \"pri.ee\",\n \"aip.ee\",\n \"org.ee\",\n \"fie.ee\",\n \"eg\",\n \"com.eg\",\n \"edu.eg\",\n \"eun.eg\",\n \"gov.eg\",\n \"mil.eg\",\n \"name.eg\",\n \"net.eg\",\n \"org.eg\",\n \"sci.eg\",\n \"*.er\",\n \"es\",\n \"com.es\",\n \"nom.es\",\n \"org.es\",\n \"gob.es\",\n \"edu.es\",\n \"et\",\n \"com.et\",\n \"gov.et\",\n \"org.et\",\n \"edu.et\",\n \"biz.et\",\n \"name.et\",\n \"info.et\",\n \"net.et\",\n \"eu\",\n \"fi\",\n \"aland.fi\",\n \"fj\",\n \"ac.fj\",\n \"biz.fj\",\n \"com.fj\",\n \"gov.fj\",\n \"info.fj\",\n \"mil.fj\",\n \"name.fj\",\n \"net.fj\",\n \"org.fj\",\n \"pro.fj\",\n \"*.fk\",\n \"com.fm\",\n \"edu.fm\",\n \"net.fm\",\n \"org.fm\",\n \"fm\",\n \"fo\",\n \"fr\",\n \"asso.fr\",\n \"com.fr\",\n \"gouv.fr\",\n \"nom.fr\",\n \"prd.fr\",\n \"tm.fr\",\n \"aeroport.fr\",\n \"avocat.fr\",\n \"avoues.fr\",\n \"cci.fr\",\n \"chambagri.fr\",\n \"chirurgiens-dentistes.fr\",\n \"experts-comptables.fr\",\n \"geometre-expert.fr\",\n \"greta.fr\",\n \"huissier-justice.fr\",\n \"medecin.fr\",\n \"notaires.fr\",\n \"pharmacien.fr\",\n \"port.fr\",\n \"veterinaire.fr\",\n \"ga\",\n \"gb\",\n \"edu.gd\",\n \"gov.gd\",\n \"gd\",\n \"ge\",\n \"com.ge\",\n \"edu.ge\",\n \"gov.ge\",\n \"org.ge\",\n \"mil.ge\",\n \"net.ge\",\n \"pvt.ge\",\n \"gf\",\n \"gg\",\n \"co.gg\",\n \"net.gg\",\n \"org.gg\",\n \"gh\",\n \"com.gh\",\n \"edu.gh\",\n \"gov.gh\",\n \"org.gh\",\n \"mil.gh\",\n \"gi\",\n \"com.gi\",\n \"ltd.gi\",\n \"gov.gi\",\n \"mod.gi\",\n \"edu.gi\",\n \"org.gi\",\n \"gl\",\n \"co.gl\",\n \"com.gl\",\n \"edu.gl\",\n \"net.gl\",\n \"org.gl\",\n \"gm\",\n \"gn\",\n \"ac.gn\",\n \"com.gn\",\n \"edu.gn\",\n \"gov.gn\",\n \"org.gn\",\n \"net.gn\",\n \"gov\",\n \"gp\",\n \"com.gp\",\n \"net.gp\",\n \"mobi.gp\",\n \"edu.gp\",\n \"org.gp\",\n \"asso.gp\",\n \"gq\",\n \"gr\",\n \"com.gr\",\n \"edu.gr\",\n \"net.gr\",\n \"org.gr\",\n \"gov.gr\",\n \"gs\",\n \"gt\",\n \"com.gt\",\n \"edu.gt\",\n \"gob.gt\",\n \"ind.gt\",\n \"mil.gt\",\n \"net.gt\",\n \"org.gt\",\n \"gu\",\n \"com.gu\",\n \"edu.gu\",\n \"gov.gu\",\n \"guam.gu\",\n \"info.gu\",\n \"net.gu\",\n \"org.gu\",\n \"web.gu\",\n \"gw\",\n \"gy\",\n \"co.gy\",\n \"com.gy\",\n \"edu.gy\",\n \"gov.gy\",\n \"net.gy\",\n \"org.gy\",\n \"hk\",\n \"com.hk\",\n \"edu.hk\",\n \"gov.hk\",\n \"idv.hk\",\n \"net.hk\",\n \"org.hk\",\n \"\\u516C\\u53F8.hk\",\n \"\\u6559\\u80B2.hk\",\n \"\\u654E\\u80B2.hk\",\n \"\\u653F\\u5E9C.hk\",\n \"\\u500B\\u4EBA.hk\",\n \"\\u4E2A\\uFFFD\\uFFFD.hk\",\n \"\\u7B87\\u4EBA.hk\",\n \"\\u7DB2\\u7EDC.hk\",\n \"\\u7F51\\u7EDC.hk\",\n \"\\u7EC4\\u7E54.hk\",\n \"\\u7DB2\\u7D61.hk\",\n \"\\u7F51\\u7D61.hk\",\n \"\\u7EC4\\u7EC7.hk\",\n \"\\u7D44\\u7E54.hk\",\n \"\\u7D44\\u7EC7.hk\",\n \"hm\",\n \"hn\",\n \"com.hn\",\n \"edu.hn\",\n \"org.hn\",\n \"net.hn\",\n \"mil.hn\",\n \"gob.hn\",\n \"hr\",\n \"iz.hr\",\n \"from.hr\",\n \"name.hr\",\n \"com.hr\",\n \"ht\",\n \"com.ht\",\n \"shop.ht\",\n \"firm.ht\",\n \"info.ht\",\n \"adult.ht\",\n \"net.ht\",\n \"pro.ht\",\n \"org.ht\",\n \"med.ht\",\n \"art.ht\",\n \"coop.ht\",\n \"pol.ht\",\n \"asso.ht\",\n \"edu.ht\",\n \"rel.ht\",\n \"gouv.ht\",\n \"perso.ht\",\n \"hu\",\n \"co.hu\",\n \"info.hu\",\n \"org.hu\",\n \"priv.hu\",\n \"sport.hu\",\n \"tm.hu\",\n \"2000.hu\",\n \"agrar.hu\",\n \"bolt.hu\",\n \"casino.hu\",\n \"city.hu\",\n \"erotica.hu\",\n \"erotika.hu\",\n \"film.hu\",\n \"forum.hu\",\n \"games.hu\",\n \"hotel.hu\",\n \"ingatlan.hu\",\n \"jogasz.hu\",\n \"konyvelo.hu\",\n \"lakas.hu\",\n \"media.hu\",\n \"news.hu\",\n \"reklam.hu\",\n \"sex.hu\",\n \"shop.hu\",\n \"suli.hu\",\n \"szex.hu\",\n \"tozsde.hu\",\n \"utazas.hu\",\n \"video.hu\",\n \"id\",\n \"ac.id\",\n \"biz.id\",\n \"co.id\",\n \"desa.id\",\n \"go.id\",\n \"mil.id\",\n \"my.id\",\n \"net.id\",\n \"or.id\",\n \"ponpes.id\",\n \"sch.id\",\n \"web.id\",\n \"ie\",\n \"gov.ie\",\n \"il\",\n \"ac.il\",\n \"co.il\",\n \"gov.il\",\n \"idf.il\",\n \"k12.il\",\n \"muni.il\",\n \"net.il\",\n \"org.il\",\n \"im\",\n \"ac.im\",\n \"co.im\",\n \"com.im\",\n \"ltd.co.im\",\n \"net.im\",\n \"org.im\",\n \"plc.co.im\",\n \"tt.im\",\n \"tv.im\",\n \"in\",\n \"co.in\",\n \"firm.in\",\n \"net.in\",\n \"org.in\",\n \"gen.in\",\n \"ind.in\",\n \"nic.in\",\n \"ac.in\",\n \"edu.in\",\n \"res.in\",\n \"gov.in\",\n \"mil.in\",\n \"info\",\n \"int\",\n \"eu.int\",\n \"io\",\n \"com.io\",\n \"iq\",\n \"gov.iq\",\n \"edu.iq\",\n \"mil.iq\",\n \"com.iq\",\n \"org.iq\",\n \"net.iq\",\n \"ir\",\n \"ac.ir\",\n \"co.ir\",\n \"gov.ir\",\n \"id.ir\",\n \"net.ir\",\n \"org.ir\",\n \"sch.ir\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646.ir\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646.ir\",\n \"is\",\n \"net.is\",\n \"com.is\",\n \"edu.is\",\n \"gov.is\",\n \"org.is\",\n \"int.is\",\n \"it\",\n \"gov.it\",\n \"edu.it\",\n \"abr.it\",\n \"abruzzo.it\",\n \"aosta-valley.it\",\n \"aostavalley.it\",\n \"bas.it\",\n \"basilicata.it\",\n \"cal.it\",\n \"calabria.it\",\n \"cam.it\",\n \"campania.it\",\n \"emilia-romagna.it\",\n \"emiliaromagna.it\",\n \"emr.it\",\n \"friuli-v-giulia.it\",\n \"friuli-ve-giulia.it\",\n \"friuli-vegiulia.it\",\n \"friuli-venezia-giulia.it\",\n \"friuli-veneziagiulia.it\",\n \"friuli-vgiulia.it\",\n \"friuliv-giulia.it\",\n \"friulive-giulia.it\",\n \"friulivegiulia.it\",\n \"friulivenezia-giulia.it\",\n \"friuliveneziagiulia.it\",\n \"friulivgiulia.it\",\n \"fvg.it\",\n \"laz.it\",\n \"lazio.it\",\n \"lig.it\",\n \"liguria.it\",\n \"lom.it\",\n \"lombardia.it\",\n \"lombardy.it\",\n \"lucania.it\",\n \"mar.it\",\n \"marche.it\",\n \"mol.it\",\n \"molise.it\",\n \"piedmont.it\",\n \"piemonte.it\",\n \"pmn.it\",\n \"pug.it\",\n \"puglia.it\",\n \"sar.it\",\n \"sardegna.it\",\n \"sardinia.it\",\n \"sic.it\",\n \"sicilia.it\",\n \"sicily.it\",\n \"taa.it\",\n \"tos.it\",\n \"toscana.it\",\n \"trentin-sud-tirol.it\",\n \"trentin-s\\xFCd-tirol.it\",\n \"trentin-sudtirol.it\",\n \"trentin-s\\xFCdtirol.it\",\n \"trentin-sued-tirol.it\",\n \"trentin-suedtirol.it\",\n \"trentino-a-adige.it\",\n \"trentino-aadige.it\",\n \"trentino-alto-adige.it\",\n \"trentino-altoadige.it\",\n \"trentino-s-tirol.it\",\n \"trentino-stirol.it\",\n \"trentino-sud-tirol.it\",\n \"trentino-s\\xFCd-tirol.it\",\n \"trentino-sudtirol.it\",\n \"trentino-s\\xFCdtirol.it\",\n \"trentino-sued-tirol.it\",\n \"trentino-suedtirol.it\",\n \"trentino.it\",\n \"trentinoa-adige.it\",\n \"trentinoaadige.it\",\n \"trentinoalto-adige.it\",\n \"trentinoaltoadige.it\",\n \"trentinos-tirol.it\",\n \"trentinostirol.it\",\n \"trentinosud-tirol.it\",\n \"trentinos\\xFCd-tirol.it\",\n \"trentinosudtirol.it\",\n \"trentinos\\xFCdtirol.it\",\n \"trentinosued-tirol.it\",\n \"trentinosuedtirol.it\",\n \"trentinsud-tirol.it\",\n \"trentins\\xFCd-tirol.it\",\n \"trentinsudtirol.it\",\n \"trentins\\xFCdtirol.it\",\n \"trentinsued-tirol.it\",\n \"trentinsuedtirol.it\",\n \"tuscany.it\",\n \"umb.it\",\n \"umbria.it\",\n \"val-d-aosta.it\",\n \"val-daosta.it\",\n \"vald-aosta.it\",\n \"valdaosta.it\",\n \"valle-aosta.it\",\n \"valle-d-aosta.it\",\n \"valle-daosta.it\",\n \"valleaosta.it\",\n \"valled-aosta.it\",\n \"valledaosta.it\",\n \"vallee-aoste.it\",\n \"vall\\xE9e-aoste.it\",\n \"vallee-d-aoste.it\",\n \"vall\\xE9e-d-aoste.it\",\n \"valleeaoste.it\",\n \"vall\\xE9eaoste.it\",\n \"valleedaoste.it\",\n \"vall\\xE9edaoste.it\",\n \"vao.it\",\n \"vda.it\",\n \"ven.it\",\n \"veneto.it\",\n \"ag.it\",\n \"agrigento.it\",\n \"al.it\",\n \"alessandria.it\",\n \"alto-adige.it\",\n \"altoadige.it\",\n \"an.it\",\n \"ancona.it\",\n \"andria-barletta-trani.it\",\n \"andria-trani-barletta.it\",\n \"andriabarlettatrani.it\",\n \"andriatranibarletta.it\",\n \"ao.it\",\n \"aosta.it\",\n \"aoste.it\",\n \"ap.it\",\n \"aq.it\",\n \"aquila.it\",\n \"ar.it\",\n \"arezzo.it\",\n \"ascoli-piceno.it\",\n \"ascolipiceno.it\",\n \"asti.it\",\n \"at.it\",\n \"av.it\",\n \"avellino.it\",\n \"ba.it\",\n \"balsan-sudtirol.it\",\n \"balsan-s\\xFCdtirol.it\",\n \"balsan-suedtirol.it\",\n \"balsan.it\",\n \"bari.it\",\n \"barletta-trani-andria.it\",\n \"barlettatraniandria.it\",\n \"belluno.it\",\n \"benevento.it\",\n \"bergamo.it\",\n \"bg.it\",\n \"bi.it\",\n \"biella.it\",\n \"bl.it\",\n \"bn.it\",\n \"bo.it\",\n \"bologna.it\",\n \"bolzano-altoadige.it\",\n \"bolzano.it\",\n \"bozen-sudtirol.it\",\n \"bozen-s\\xFCdtirol.it\",\n \"bozen-suedtirol.it\",\n \"bozen.it\",\n \"br.it\",\n \"brescia.it\",\n \"brindisi.it\",\n \"bs.it\",\n \"bt.it\",\n \"bulsan-sudtirol.it\",\n \"bulsan-s\\xFCdtirol.it\",\n \"bulsan-suedtirol.it\",\n \"bulsan.it\",\n \"bz.it\",\n \"ca.it\",\n \"cagliari.it\",\n \"caltanissetta.it\",\n \"campidano-medio.it\",\n \"campidanomedio.it\",\n \"campobasso.it\",\n \"carbonia-iglesias.it\",\n \"carboniaiglesias.it\",\n \"carrara-massa.it\",\n \"carraramassa.it\",\n \"caserta.it\",\n \"catania.it\",\n \"catanzaro.it\",\n \"cb.it\",\n \"ce.it\",\n \"cesena-forli.it\",\n \"cesena-forl\\xEC.it\",\n \"cesenaforli.it\",\n \"cesenaforl\\xEC.it\",\n \"ch.it\",\n \"chieti.it\",\n \"ci.it\",\n \"cl.it\",\n \"cn.it\",\n \"co.it\",\n \"como.it\",\n \"cosenza.it\",\n \"cr.it\",\n \"cremona.it\",\n \"crotone.it\",\n \"cs.it\",\n \"ct.it\",\n \"cuneo.it\",\n \"cz.it\",\n \"dell-ogliastra.it\",\n \"dellogliastra.it\",\n \"en.it\",\n \"enna.it\",\n \"fc.it\",\n \"fe.it\",\n \"fermo.it\",\n \"ferrara.it\",\n \"fg.it\",\n \"fi.it\",\n \"firenze.it\",\n \"florence.it\",\n \"fm.it\",\n \"foggia.it\",\n \"forli-cesena.it\",\n \"forl\\xEC-cesena.it\",\n \"forlicesena.it\",\n \"forl\\xECcesena.it\",\n \"fr.it\",\n \"frosinone.it\",\n \"ge.it\",\n \"genoa.it\",\n \"genova.it\",\n \"go.it\",\n \"gorizia.it\",\n \"gr.it\",\n \"grosseto.it\",\n \"iglesias-carbonia.it\",\n \"iglesiascarbonia.it\",\n \"im.it\",\n \"imperia.it\",\n \"is.it\",\n \"isernia.it\",\n \"kr.it\",\n \"la-spezia.it\",\n \"laquila.it\",\n \"laspezia.it\",\n \"latina.it\",\n \"lc.it\",\n \"le.it\",\n \"lecce.it\",\n \"lecco.it\",\n \"li.it\",\n \"livorno.it\",\n \"lo.it\",\n \"lodi.it\",\n \"lt.it\",\n \"lu.it\",\n \"lucca.it\",\n \"macerata.it\",\n \"mantova.it\",\n \"massa-carrara.it\",\n \"massacarrara.it\",\n \"matera.it\",\n \"mb.it\",\n \"mc.it\",\n \"me.it\",\n \"medio-campidano.it\",\n \"mediocampidano.it\",\n \"messina.it\",\n \"mi.it\",\n \"milan.it\",\n \"milano.it\",\n \"mn.it\",\n \"mo.it\",\n \"modena.it\",\n \"monza-brianza.it\",\n \"monza-e-della-brianza.it\",\n \"monza.it\",\n \"monzabrianza.it\",\n \"monzaebrianza.it\",\n \"monzaedellabrianza.it\",\n \"ms.it\",\n \"mt.it\",\n \"na.it\",\n \"naples.it\",\n \"napoli.it\",\n \"no.it\",\n \"novara.it\",\n \"nu.it\",\n \"nuoro.it\",\n \"og.it\",\n \"ogliastra.it\",\n \"olbia-tempio.it\",\n \"olbiatempio.it\",\n \"or.it\",\n \"oristano.it\",\n \"ot.it\",\n \"pa.it\",\n \"padova.it\",\n \"padua.it\",\n \"palermo.it\",\n \"parma.it\",\n \"pavia.it\",\n \"pc.it\",\n \"pd.it\",\n \"pe.it\",\n \"perugia.it\",\n \"pesaro-urbino.it\",\n \"pesarourbino.it\",\n \"pescara.it\",\n \"pg.it\",\n \"pi.it\",\n \"piacenza.it\",\n \"pisa.it\",\n \"pistoia.it\",\n \"pn.it\",\n \"po.it\",\n \"pordenone.it\",\n \"potenza.it\",\n \"pr.it\",\n \"prato.it\",\n \"pt.it\",\n \"pu.it\",\n \"pv.it\",\n \"pz.it\",\n \"ra.it\",\n \"ragusa.it\",\n \"ravenna.it\",\n \"rc.it\",\n \"re.it\",\n \"reggio-calabria.it\",\n \"reggio-emilia.it\",\n \"reggiocalabria.it\",\n \"reggioemilia.it\",\n \"rg.it\",\n \"ri.it\",\n \"rieti.it\",\n \"rimini.it\",\n \"rm.it\",\n \"rn.it\",\n \"ro.it\",\n \"roma.it\",\n \"rome.it\",\n \"rovigo.it\",\n \"sa.it\",\n \"salerno.it\",\n \"sassari.it\",\n \"savona.it\",\n \"si.it\",\n \"siena.it\",\n \"siracusa.it\",\n \"so.it\",\n \"sondrio.it\",\n \"sp.it\",\n \"sr.it\",\n \"ss.it\",\n \"suedtirol.it\",\n \"s\\xFCdtirol.it\",\n \"sv.it\",\n \"ta.it\",\n \"taranto.it\",\n \"te.it\",\n \"tempio-olbia.it\",\n \"tempioolbia.it\",\n \"teramo.it\",\n \"terni.it\",\n \"tn.it\",\n \"to.it\",\n \"torino.it\",\n \"tp.it\",\n \"tr.it\",\n \"trani-andria-barletta.it\",\n \"trani-barletta-andria.it\",\n \"traniandriabarletta.it\",\n \"tranibarlettaandria.it\",\n \"trapani.it\",\n \"trento.it\",\n \"treviso.it\",\n \"trieste.it\",\n \"ts.it\",\n \"turin.it\",\n \"tv.it\",\n \"ud.it\",\n \"udine.it\",\n \"urbino-pesaro.it\",\n \"urbinopesaro.it\",\n \"va.it\",\n \"varese.it\",\n \"vb.it\",\n \"vc.it\",\n \"ve.it\",\n \"venezia.it\",\n \"venice.it\",\n \"verbania.it\",\n \"vercelli.it\",\n \"verona.it\",\n \"vi.it\",\n \"vibo-valentia.it\",\n \"vibovalentia.it\",\n \"vicenza.it\",\n \"viterbo.it\",\n \"vr.it\",\n \"vs.it\",\n \"vt.it\",\n \"vv.it\",\n \"je\",\n \"co.je\",\n \"net.je\",\n \"org.je\",\n \"*.jm\",\n \"jo\",\n \"com.jo\",\n \"org.jo\",\n \"net.jo\",\n \"edu.jo\",\n \"sch.jo\",\n \"gov.jo\",\n \"mil.jo\",\n \"name.jo\",\n \"jobs\",\n \"jp\",\n \"ac.jp\",\n \"ad.jp\",\n \"co.jp\",\n \"ed.jp\",\n \"go.jp\",\n \"gr.jp\",\n \"lg.jp\",\n \"ne.jp\",\n \"or.jp\",\n \"aichi.jp\",\n \"akita.jp\",\n \"aomori.jp\",\n \"chiba.jp\",\n \"ehime.jp\",\n \"fukui.jp\",\n \"fukuoka.jp\",\n \"fukushima.jp\",\n \"gifu.jp\",\n \"gunma.jp\",\n \"hiroshima.jp\",\n \"hokkaido.jp\",\n \"hyogo.jp\",\n \"ibaraki.jp\",\n \"ishikawa.jp\",\n \"iwate.jp\",\n \"kagawa.jp\",\n \"kagoshima.jp\",\n \"kanagawa.jp\",\n \"kochi.jp\",\n \"kumamoto.jp\",\n \"kyoto.jp\",\n \"mie.jp\",\n \"miyagi.jp\",\n \"miyazaki.jp\",\n \"nagano.jp\",\n \"nagasaki.jp\",\n \"nara.jp\",\n \"niigata.jp\",\n \"oita.jp\",\n \"okayama.jp\",\n \"okinawa.jp\",\n \"osaka.jp\",\n \"saga.jp\",\n \"saitama.jp\",\n \"shiga.jp\",\n \"shimane.jp\",\n \"shizuoka.jp\",\n \"tochigi.jp\",\n \"tokushima.jp\",\n \"tokyo.jp\",\n \"tottori.jp\",\n \"toyama.jp\",\n \"wakayama.jp\",\n \"yamagata.jp\",\n \"yamaguchi.jp\",\n \"yamanashi.jp\",\n \"\\u6803\\u6728.jp\",\n \"\\u611B\\u77E5.jp\",\n \"\\u611B\\u5A9B.jp\",\n \"\\u5175\\u5EAB.jp\",\n \"\\u718A\\u672C.jp\",\n \"\\u8328\\u57CE.jp\",\n \"\\u5317\\u6D77\\u9053.jp\",\n \"\\u5343\\u8449.jp\",\n \"\\u548C\\u6B4C\\u5C71.jp\",\n \"\\u9577\\u5D0E.jp\",\n \"\\u9577\\u91CE.jp\",\n \"\\u65B0\\u6F5F.jp\",\n \"\\u9752\\u68EE.jp\",\n \"\\u9759\\u5CA1.jp\",\n \"\\u6771\\u4EAC.jp\",\n \"\\u77F3\\u5DDD.jp\",\n \"\\u57FC\\u7389.jp\",\n \"\\u4E09\\u91CD.jp\",\n \"\\u4EAC\\u90FD.jp\",\n \"\\u4F50\\u8CC0.jp\",\n \"\\u5927\\u5206.jp\",\n \"\\u5927\\u962A.jp\",\n \"\\u5948\\u826F.jp\",\n \"\\u5BAE\\u57CE.jp\",\n \"\\u5BAE\\u5D0E.jp\",\n \"\\u5BCC\\u5C71.jp\",\n \"\\u5C71\\u53E3.jp\",\n \"\\u5C71\\u5F62.jp\",\n \"\\u5C71\\u68A8.jp\",\n \"\\u5CA9\\u624B.jp\",\n \"\\u5C90\\u961C.jp\",\n \"\\u5CA1\\u5C71.jp\",\n \"\\u5CF6\\u6839.jp\",\n \"\\u5E83\\u5CF6.jp\",\n \"\\u5FB3\\u5CF6.jp\",\n \"\\u6C96\\u7E04.jp\",\n \"\\u6ECB\\u8CC0.jp\",\n \"\\u795E\\u5948\\u5DDD.jp\",\n \"\\u798F\\u4E95.jp\",\n \"\\u798F\\u5CA1.jp\",\n \"\\u798F\\u5CF6.jp\",\n \"\\u79CB\\u7530.jp\",\n \"\\u7FA4\\u99AC.jp\",\n \"\\u9999\\u5DDD.jp\",\n \"\\u9AD8\\u77E5.jp\",\n \"\\u9CE5\\u53D6.jp\",\n \"\\u9E7F\\u5150\\u5CF6.jp\",\n \"*.kawasaki.jp\",\n \"*.kitakyushu.jp\",\n \"*.kobe.jp\",\n \"*.nagoya.jp\",\n \"*.sapporo.jp\",\n \"*.sendai.jp\",\n \"*.yokohama.jp\",\n \"!city.kawasaki.jp\",\n \"!city.kitakyushu.jp\",\n \"!city.kobe.jp\",\n \"!city.nagoya.jp\",\n \"!city.sapporo.jp\",\n \"!city.sendai.jp\",\n \"!city.yokohama.jp\",\n \"aisai.aichi.jp\",\n \"ama.aichi.jp\",\n \"anjo.aichi.jp\",\n \"asuke.aichi.jp\",\n \"chiryu.aichi.jp\",\n \"chita.aichi.jp\",\n \"fuso.aichi.jp\",\n \"gamagori.aichi.jp\",\n \"handa.aichi.jp\",\n \"hazu.aichi.jp\",\n \"hekinan.aichi.jp\",\n \"higashiura.aichi.jp\",\n \"ichinomiya.aichi.jp\",\n \"inazawa.aichi.jp\",\n \"inuyama.aichi.jp\",\n \"isshiki.aichi.jp\",\n \"iwakura.aichi.jp\",\n \"kanie.aichi.jp\",\n \"kariya.aichi.jp\",\n \"kasugai.aichi.jp\",\n \"kira.aichi.jp\",\n \"kiyosu.aichi.jp\",\n \"komaki.aichi.jp\",\n \"konan.aichi.jp\",\n \"kota.aichi.jp\",\n \"mihama.aichi.jp\",\n \"miyoshi.aichi.jp\",\n \"nishio.aichi.jp\",\n \"nisshin.aichi.jp\",\n \"obu.aichi.jp\",\n \"oguchi.aichi.jp\",\n \"oharu.aichi.jp\",\n \"okazaki.aichi.jp\",\n \"owariasahi.aichi.jp\",\n \"seto.aichi.jp\",\n \"shikatsu.aichi.jp\",\n \"shinshiro.aichi.jp\",\n \"shitara.aichi.jp\",\n \"tahara.aichi.jp\",\n \"takahama.aichi.jp\",\n \"tobishima.aichi.jp\",\n \"toei.aichi.jp\",\n \"togo.aichi.jp\",\n \"tokai.aichi.jp\",\n \"tokoname.aichi.jp\",\n \"toyoake.aichi.jp\",\n \"toyohashi.aichi.jp\",\n \"toyokawa.aichi.jp\",\n \"toyone.aichi.jp\",\n \"toyota.aichi.jp\",\n \"tsushima.aichi.jp\",\n \"yatomi.aichi.jp\",\n \"akita.akita.jp\",\n \"daisen.akita.jp\",\n \"fujisato.akita.jp\",\n \"gojome.akita.jp\",\n \"hachirogata.akita.jp\",\n \"happou.akita.jp\",\n \"higashinaruse.akita.jp\",\n \"honjo.akita.jp\",\n \"honjyo.akita.jp\",\n \"ikawa.akita.jp\",\n \"kamikoani.akita.jp\",\n \"kamioka.akita.jp\",\n \"katagami.akita.jp\",\n \"kazuno.akita.jp\",\n \"kitaakita.akita.jp\",\n \"kosaka.akita.jp\",\n \"kyowa.akita.jp\",\n \"misato.akita.jp\",\n \"mitane.akita.jp\",\n \"moriyoshi.akita.jp\",\n \"nikaho.akita.jp\",\n \"noshiro.akita.jp\",\n \"odate.akita.jp\",\n \"oga.akita.jp\",\n \"ogata.akita.jp\",\n \"semboku.akita.jp\",\n \"yokote.akita.jp\",\n \"yurihonjo.akita.jp\",\n \"aomori.aomori.jp\",\n \"gonohe.aomori.jp\",\n \"hachinohe.aomori.jp\",\n \"hashikami.aomori.jp\",\n \"hiranai.aomori.jp\",\n \"hirosaki.aomori.jp\",\n \"itayanagi.aomori.jp\",\n \"kuroishi.aomori.jp\",\n \"misawa.aomori.jp\",\n \"mutsu.aomori.jp\",\n \"nakadomari.aomori.jp\",\n \"noheji.aomori.jp\",\n \"oirase.aomori.jp\",\n \"owani.aomori.jp\",\n \"rokunohe.aomori.jp\",\n \"sannohe.aomori.jp\",\n \"shichinohe.aomori.jp\",\n \"shingo.aomori.jp\",\n \"takko.aomori.jp\",\n \"towada.aomori.jp\",\n \"tsugaru.aomori.jp\",\n \"tsuruta.aomori.jp\",\n \"abiko.chiba.jp\",\n \"asahi.chiba.jp\",\n \"chonan.chiba.jp\",\n \"chosei.chiba.jp\",\n \"choshi.chiba.jp\",\n \"chuo.chiba.jp\",\n \"funabashi.chiba.jp\",\n \"futtsu.chiba.jp\",\n \"hanamigawa.chiba.jp\",\n \"ichihara.chiba.jp\",\n \"ichikawa.chiba.jp\",\n \"ichinomiya.chiba.jp\",\n \"inzai.chiba.jp\",\n \"isumi.chiba.jp\",\n \"kamagaya.chiba.jp\",\n \"kamogawa.chiba.jp\",\n \"kashiwa.chiba.jp\",\n \"katori.chiba.jp\",\n \"katsuura.chiba.jp\",\n \"kimitsu.chiba.jp\",\n \"kisarazu.chiba.jp\",\n \"kozaki.chiba.jp\",\n \"kujukuri.chiba.jp\",\n \"kyonan.chiba.jp\",\n \"matsudo.chiba.jp\",\n \"midori.chiba.jp\",\n \"mihama.chiba.jp\",\n \"minamiboso.chiba.jp\",\n \"mobara.chiba.jp\",\n \"mutsuzawa.chiba.jp\",\n \"nagara.chiba.jp\",\n \"nagareyama.chiba.jp\",\n \"narashino.chiba.jp\",\n \"narita.chiba.jp\",\n \"noda.chiba.jp\",\n \"oamishirasato.chiba.jp\",\n \"omigawa.chiba.jp\",\n \"onjuku.chiba.jp\",\n \"otaki.chiba.jp\",\n \"sakae.chiba.jp\",\n \"sakura.chiba.jp\",\n \"shimofusa.chiba.jp\",\n \"shirako.chiba.jp\",\n \"shiroi.chiba.jp\",\n \"shisui.chiba.jp\",\n \"sodegaura.chiba.jp\",\n \"sosa.chiba.jp\",\n \"tako.chiba.jp\",\n \"tateyama.chiba.jp\",\n \"togane.chiba.jp\",\n \"tohnosho.chiba.jp\",\n \"tomisato.chiba.jp\",\n \"urayasu.chiba.jp\",\n \"yachimata.chiba.jp\",\n \"yachiyo.chiba.jp\",\n \"yokaichiba.chiba.jp\",\n \"yokoshibahikari.chiba.jp\",\n \"yotsukaido.chiba.jp\",\n \"ainan.ehime.jp\",\n \"honai.ehime.jp\",\n \"ikata.ehime.jp\",\n \"imabari.ehime.jp\",\n \"iyo.ehime.jp\",\n \"kamijima.ehime.jp\",\n \"kihoku.ehime.jp\",\n \"kumakogen.ehime.jp\",\n \"masaki.ehime.jp\",\n \"matsuno.ehime.jp\",\n \"matsuyama.ehime.jp\",\n \"namikata.ehime.jp\",\n \"niihama.ehime.jp\",\n \"ozu.ehime.jp\",\n \"saijo.ehime.jp\",\n \"seiyo.ehime.jp\",\n \"shikokuchuo.ehime.jp\",\n \"tobe.ehime.jp\",\n \"toon.ehime.jp\",\n \"uchiko.ehime.jp\",\n \"uwajima.ehime.jp\",\n \"yawatahama.ehime.jp\",\n \"echizen.fukui.jp\",\n \"eiheiji.fukui.jp\",\n \"fukui.fukui.jp\",\n \"ikeda.fukui.jp\",\n \"katsuyama.fukui.jp\",\n \"mihama.fukui.jp\",\n \"minamiechizen.fukui.jp\",\n \"obama.fukui.jp\",\n \"ohi.fukui.jp\",\n \"ono.fukui.jp\",\n \"sabae.fukui.jp\",\n \"sakai.fukui.jp\",\n \"takahama.fukui.jp\",\n \"tsuruga.fukui.jp\",\n \"wakasa.fukui.jp\",\n \"ashiya.fukuoka.jp\",\n \"buzen.fukuoka.jp\",\n \"chikugo.fukuoka.jp\",\n \"chikuho.fukuoka.jp\",\n \"chikujo.fukuoka.jp\",\n \"chikushino.fukuoka.jp\",\n \"chikuzen.fukuoka.jp\",\n \"chuo.fukuoka.jp\",\n \"dazaifu.fukuoka.jp\",\n \"fukuchi.fukuoka.jp\",\n \"hakata.fukuoka.jp\",\n \"higashi.fukuoka.jp\",\n \"hirokawa.fukuoka.jp\",\n \"hisayama.fukuoka.jp\",\n \"iizuka.fukuoka.jp\",\n \"inatsuki.fukuoka.jp\",\n \"kaho.fukuoka.jp\",\n \"kasuga.fukuoka.jp\",\n \"kasuya.fukuoka.jp\",\n \"kawara.fukuoka.jp\",\n \"keisen.fukuoka.jp\",\n \"koga.fukuoka.jp\",\n \"kurate.fukuoka.jp\",\n \"kurogi.fukuoka.jp\",\n \"kurume.fukuoka.jp\",\n \"minami.fukuoka.jp\",\n \"miyako.fukuoka.jp\",\n \"miyama.fukuoka.jp\",\n \"miyawaka.fukuoka.jp\",\n \"mizumaki.fukuoka.jp\",\n \"munakata.fukuoka.jp\",\n \"nakagawa.fukuoka.jp\",\n \"nakama.fukuoka.jp\",\n \"nishi.fukuoka.jp\",\n \"nogata.fukuoka.jp\",\n \"ogori.fukuoka.jp\",\n \"okagaki.fukuoka.jp\",\n \"okawa.fukuoka.jp\",\n \"oki.fukuoka.jp\",\n \"omuta.fukuoka.jp\",\n \"onga.fukuoka.jp\",\n \"onojo.fukuoka.jp\",\n \"oto.fukuoka.jp\",\n \"saigawa.fukuoka.jp\",\n \"sasaguri.fukuoka.jp\",\n \"shingu.fukuoka.jp\",\n \"shinyoshitomi.fukuoka.jp\",\n \"shonai.fukuoka.jp\",\n \"soeda.fukuoka.jp\",\n \"sue.fukuoka.jp\",\n \"tachiarai.fukuoka.jp\",\n \"tagawa.fukuoka.jp\",\n \"takata.fukuoka.jp\",\n \"toho.fukuoka.jp\",\n \"toyotsu.fukuoka.jp\",\n \"tsuiki.fukuoka.jp\",\n \"ukiha.fukuoka.jp\",\n \"umi.fukuoka.jp\",\n \"usui.fukuoka.jp\",\n \"yamada.fukuoka.jp\",\n \"yame.fukuoka.jp\",\n \"yanagawa.fukuoka.jp\",\n \"yukuhashi.fukuoka.jp\",\n \"aizubange.fukushima.jp\",\n \"aizumisato.fukushima.jp\",\n \"aizuwakamatsu.fukushima.jp\",\n \"asakawa.fukushima.jp\",\n \"bandai.fukushima.jp\",\n \"date.fukushima.jp\",\n \"fukushima.fukushima.jp\",\n \"furudono.fukushima.jp\",\n \"futaba.fukushima.jp\",\n \"hanawa.fukushima.jp\",\n \"higashi.fukushima.jp\",\n \"hirata.fukushima.jp\",\n \"hirono.fukushima.jp\",\n \"iitate.fukushima.jp\",\n \"inawashiro.fukushima.jp\",\n \"ishikawa.fukushima.jp\",\n \"iwaki.fukushima.jp\",\n \"izumizaki.fukushima.jp\",\n \"kagamiishi.fukushima.jp\",\n \"kaneyama.fukushima.jp\",\n \"kawamata.fukushima.jp\",\n \"kitakata.fukushima.jp\",\n \"kitashiobara.fukushima.jp\",\n \"koori.fukushima.jp\",\n \"koriyama.fukushima.jp\",\n \"kunimi.fukushima.jp\",\n \"miharu.fukushima.jp\",\n \"mishima.fukushima.jp\",\n \"namie.fukushima.jp\",\n \"nango.fukushima.jp\",\n \"nishiaizu.fukushima.jp\",\n \"nishigo.fukushima.jp\",\n \"okuma.fukushima.jp\",\n \"omotego.fukushima.jp\",\n \"ono.fukushima.jp\",\n \"otama.fukushima.jp\",\n \"samegawa.fukushima.jp\",\n \"shimogo.fukushima.jp\",\n \"shirakawa.fukushima.jp\",\n \"showa.fukushima.jp\",\n \"soma.fukushima.jp\",\n \"sukagawa.fukushima.jp\",\n \"taishin.fukushima.jp\",\n \"tamakawa.fukushima.jp\",\n \"tanagura.fukushima.jp\",\n \"tenei.fukushima.jp\",\n \"yabuki.fukushima.jp\",\n \"yamato.fukushima.jp\",\n \"yamatsuri.fukushima.jp\",\n \"yanaizu.fukushima.jp\",\n \"yugawa.fukushima.jp\",\n \"anpachi.gifu.jp\",\n \"ena.gifu.jp\",\n \"gifu.gifu.jp\",\n \"ginan.gifu.jp\",\n \"godo.gifu.jp\",\n \"gujo.gifu.jp\",\n \"hashima.gifu.jp\",\n \"hichiso.gifu.jp\",\n \"hida.gifu.jp\",\n \"higashishirakawa.gifu.jp\",\n \"ibigawa.gifu.jp\",\n \"ikeda.gifu.jp\",\n \"kakamigahara.gifu.jp\",\n \"kani.gifu.jp\",\n \"kasahara.gifu.jp\",\n \"kasamatsu.gifu.jp\",\n \"kawaue.gifu.jp\",\n \"kitagata.gifu.jp\",\n \"mino.gifu.jp\",\n \"minokamo.gifu.jp\",\n \"mitake.gifu.jp\",\n \"mizunami.gifu.jp\",\n \"motosu.gifu.jp\",\n \"nakatsugawa.gifu.jp\",\n \"ogaki.gifu.jp\",\n \"sakahogi.gifu.jp\",\n \"seki.gifu.jp\",\n \"sekigahara.gifu.jp\",\n \"shirakawa.gifu.jp\",\n \"tajimi.gifu.jp\",\n \"takayama.gifu.jp\",\n \"tarui.gifu.jp\",\n \"toki.gifu.jp\",\n \"tomika.gifu.jp\",\n \"wanouchi.gifu.jp\",\n \"yamagata.gifu.jp\",\n \"yaotsu.gifu.jp\",\n \"yoro.gifu.jp\",\n \"annaka.gunma.jp\",\n \"chiyoda.gunma.jp\",\n \"fujioka.gunma.jp\",\n \"higashiagatsuma.gunma.jp\",\n \"isesaki.gunma.jp\",\n \"itakura.gunma.jp\",\n \"kanna.gunma.jp\",\n \"kanra.gunma.jp\",\n \"katashina.gunma.jp\",\n \"kawaba.gunma.jp\",\n \"kiryu.gunma.jp\",\n \"kusatsu.gunma.jp\",\n \"maebashi.gunma.jp\",\n \"meiwa.gunma.jp\",\n \"midori.gunma.jp\",\n \"minakami.gunma.jp\",\n \"naganohara.gunma.jp\",\n \"nakanojo.gunma.jp\",\n \"nanmoku.gunma.jp\",\n \"numata.gunma.jp\",\n \"oizumi.gunma.jp\",\n \"ora.gunma.jp\",\n \"ota.gunma.jp\",\n \"shibukawa.gunma.jp\",\n \"shimonita.gunma.jp\",\n \"shinto.gunma.jp\",\n \"showa.gunma.jp\",\n \"takasaki.gunma.jp\",\n \"takayama.gunma.jp\",\n \"tamamura.gunma.jp\",\n \"tatebayashi.gunma.jp\",\n \"tomioka.gunma.jp\",\n \"tsukiyono.gunma.jp\",\n \"tsumagoi.gunma.jp\",\n \"ueno.gunma.jp\",\n \"yoshioka.gunma.jp\",\n \"asaminami.hiroshima.jp\",\n \"daiwa.hiroshima.jp\",\n \"etajima.hiroshima.jp\",\n \"fuchu.hiroshima.jp\",\n \"fukuyama.hiroshima.jp\",\n \"hatsukaichi.hiroshima.jp\",\n \"higashihiroshima.hiroshima.jp\",\n \"hongo.hiroshima.jp\",\n \"jinsekikogen.hiroshima.jp\",\n \"kaita.hiroshima.jp\",\n \"kui.hiroshima.jp\",\n \"kumano.hiroshima.jp\",\n \"kure.hiroshima.jp\",\n \"mihara.hiroshima.jp\",\n \"miyoshi.hiroshima.jp\",\n \"naka.hiroshima.jp\",\n \"onomichi.hiroshima.jp\",\n \"osakikamijima.hiroshima.jp\",\n \"otake.hiroshima.jp\",\n \"saka.hiroshima.jp\",\n \"sera.hiroshima.jp\",\n \"seranishi.hiroshima.jp\",\n \"shinichi.hiroshima.jp\",\n \"shobara.hiroshima.jp\",\n \"takehara.hiroshima.jp\",\n \"abashiri.hokkaido.jp\",\n \"abira.hokkaido.jp\",\n \"aibetsu.hokkaido.jp\",\n \"akabira.hokkaido.jp\",\n \"akkeshi.hokkaido.jp\",\n \"asahikawa.hokkaido.jp\",\n \"ashibetsu.hokkaido.jp\",\n \"ashoro.hokkaido.jp\",\n \"assabu.hokkaido.jp\",\n \"atsuma.hokkaido.jp\",\n \"bibai.hokkaido.jp\",\n \"biei.hokkaido.jp\",\n \"bifuka.hokkaido.jp\",\n \"bihoro.hokkaido.jp\",\n \"biratori.hokkaido.jp\",\n \"chippubetsu.hokkaido.jp\",\n \"chitose.hokkaido.jp\",\n \"date.hokkaido.jp\",\n \"ebetsu.hokkaido.jp\",\n \"embetsu.hokkaido.jp\",\n \"eniwa.hokkaido.jp\",\n \"erimo.hokkaido.jp\",\n \"esan.hokkaido.jp\",\n \"esashi.hokkaido.jp\",\n \"fukagawa.hokkaido.jp\",\n \"fukushima.hokkaido.jp\",\n \"furano.hokkaido.jp\",\n \"furubira.hokkaido.jp\",\n \"haboro.hokkaido.jp\",\n \"hakodate.hokkaido.jp\",\n \"hamatonbetsu.hokkaido.jp\",\n \"hidaka.hokkaido.jp\",\n \"higashikagura.hokkaido.jp\",\n \"higashikawa.hokkaido.jp\",\n \"hiroo.hokkaido.jp\",\n \"hokuryu.hokkaido.jp\",\n \"hokuto.hokkaido.jp\",\n \"honbetsu.hokkaido.jp\",\n \"horokanai.hokkaido.jp\",\n \"horonobe.hokkaido.jp\",\n \"ikeda.hokkaido.jp\",\n \"imakane.hokkaido.jp\",\n \"ishikari.hokkaido.jp\",\n \"iwamizawa.hokkaido.jp\",\n \"iwanai.hokkaido.jp\",\n \"kamifurano.hokkaido.jp\",\n \"kamikawa.hokkaido.jp\",\n \"kamishihoro.hokkaido.jp\",\n \"kamisunagawa.hokkaido.jp\",\n \"kamoenai.hokkaido.jp\",\n \"kayabe.hokkaido.jp\",\n \"kembuchi.hokkaido.jp\",\n \"kikonai.hokkaido.jp\",\n \"kimobetsu.hokkaido.jp\",\n \"kitahiroshima.hokkaido.jp\",\n \"kitami.hokkaido.jp\",\n \"kiyosato.hokkaido.jp\",\n \"koshimizu.hokkaido.jp\",\n \"kunneppu.hokkaido.jp\",\n \"kuriyama.hokkaido.jp\",\n \"kuromatsunai.hokkaido.jp\",\n \"kushiro.hokkaido.jp\",\n \"kutchan.hokkaido.jp\",\n \"kyowa.hokkaido.jp\",\n \"mashike.hokkaido.jp\",\n \"matsumae.hokkaido.jp\",\n \"mikasa.hokkaido.jp\",\n \"minamifurano.hokkaido.jp\",\n \"mombetsu.hokkaido.jp\",\n \"moseushi.hokkaido.jp\",\n \"mukawa.hokkaido.jp\",\n \"muroran.hokkaido.jp\",\n \"naie.hokkaido.jp\",\n \"nakagawa.hokkaido.jp\",\n \"nakasatsunai.hokkaido.jp\",\n \"nakatombetsu.hokkaido.jp\",\n \"nanae.hokkaido.jp\",\n \"nanporo.hokkaido.jp\",\n \"nayoro.hokkaido.jp\",\n \"nemuro.hokkaido.jp\",\n \"niikappu.hokkaido.jp\",\n \"niki.hokkaido.jp\",\n \"nishiokoppe.hokkaido.jp\",\n \"noboribetsu.hokkaido.jp\",\n \"numata.hokkaido.jp\",\n \"obihiro.hokkaido.jp\",\n \"obira.hokkaido.jp\",\n \"oketo.hokkaido.jp\",\n \"okoppe.hokkaido.jp\",\n \"otaru.hokkaido.jp\",\n \"otobe.hokkaido.jp\",\n \"otofuke.hokkaido.jp\",\n \"otoineppu.hokkaido.jp\",\n \"oumu.hokkaido.jp\",\n \"ozora.hokkaido.jp\",\n \"pippu.hokkaido.jp\",\n \"rankoshi.hokkaido.jp\",\n \"rebun.hokkaido.jp\",\n \"rikubetsu.hokkaido.jp\",\n \"rishiri.hokkaido.jp\",\n \"rishirifuji.hokkaido.jp\",\n \"saroma.hokkaido.jp\",\n \"sarufutsu.hokkaido.jp\",\n \"shakotan.hokkaido.jp\",\n \"shari.hokkaido.jp\",\n \"shibecha.hokkaido.jp\",\n \"shibetsu.hokkaido.jp\",\n \"shikabe.hokkaido.jp\",\n \"shikaoi.hokkaido.jp\",\n \"shimamaki.hokkaido.jp\",\n \"shimizu.hokkaido.jp\",\n \"shimokawa.hokkaido.jp\",\n \"shinshinotsu.hokkaido.jp\",\n \"shintoku.hokkaido.jp\",\n \"shiranuka.hokkaido.jp\",\n \"shiraoi.hokkaido.jp\",\n \"shiriuchi.hokkaido.jp\",\n \"sobetsu.hokkaido.jp\",\n \"sunagawa.hokkaido.jp\",\n \"taiki.hokkaido.jp\",\n \"takasu.hokkaido.jp\",\n \"takikawa.hokkaido.jp\",\n \"takinoue.hokkaido.jp\",\n \"teshikaga.hokkaido.jp\",\n \"tobetsu.hokkaido.jp\",\n \"tohma.hokkaido.jp\",\n \"tomakomai.hokkaido.jp\",\n \"tomari.hokkaido.jp\",\n \"toya.hokkaido.jp\",\n \"toyako.hokkaido.jp\",\n \"toyotomi.hokkaido.jp\",\n \"toyoura.hokkaido.jp\",\n \"tsubetsu.hokkaido.jp\",\n \"tsukigata.hokkaido.jp\",\n \"urakawa.hokkaido.jp\",\n \"urausu.hokkaido.jp\",\n \"uryu.hokkaido.jp\",\n \"utashinai.hokkaido.jp\",\n \"wakkanai.hokkaido.jp\",\n \"wassamu.hokkaido.jp\",\n \"yakumo.hokkaido.jp\",\n \"yoichi.hokkaido.jp\",\n \"aioi.hyogo.jp\",\n \"akashi.hyogo.jp\",\n \"ako.hyogo.jp\",\n \"amagasaki.hyogo.jp\",\n \"aogaki.hyogo.jp\",\n \"asago.hyogo.jp\",\n \"ashiya.hyogo.jp\",\n \"awaji.hyogo.jp\",\n \"fukusaki.hyogo.jp\",\n \"goshiki.hyogo.jp\",\n \"harima.hyogo.jp\",\n \"himeji.hyogo.jp\",\n \"ichikawa.hyogo.jp\",\n \"inagawa.hyogo.jp\",\n \"itami.hyogo.jp\",\n \"kakogawa.hyogo.jp\",\n \"kamigori.hyogo.jp\",\n \"kamikawa.hyogo.jp\",\n \"kasai.hyogo.jp\",\n \"kasuga.hyogo.jp\",\n \"kawanishi.hyogo.jp\",\n \"miki.hyogo.jp\",\n \"minamiawaji.hyogo.jp\",\n \"nishinomiya.hyogo.jp\",\n \"nishiwaki.hyogo.jp\",\n \"ono.hyogo.jp\",\n \"sanda.hyogo.jp\",\n \"sannan.hyogo.jp\",\n \"sasayama.hyogo.jp\",\n \"sayo.hyogo.jp\",\n \"shingu.hyogo.jp\",\n \"shinonsen.hyogo.jp\",\n \"shiso.hyogo.jp\",\n \"sumoto.hyogo.jp\",\n \"taishi.hyogo.jp\",\n \"taka.hyogo.jp\",\n \"takarazuka.hyogo.jp\",\n \"takasago.hyogo.jp\",\n \"takino.hyogo.jp\",\n \"tamba.hyogo.jp\",\n \"tatsuno.hyogo.jp\",\n \"toyooka.hyogo.jp\",\n \"yabu.hyogo.jp\",\n \"yashiro.hyogo.jp\",\n \"yoka.hyogo.jp\",\n \"yokawa.hyogo.jp\",\n \"ami.ibaraki.jp\",\n \"asahi.ibaraki.jp\",\n \"bando.ibaraki.jp\",\n \"chikusei.ibaraki.jp\",\n \"daigo.ibaraki.jp\",\n \"fujishiro.ibaraki.jp\",\n \"hitachi.ibaraki.jp\",\n \"hitachinaka.ibaraki.jp\",\n \"hitachiomiya.ibaraki.jp\",\n \"hitachiota.ibaraki.jp\",\n \"ibaraki.ibaraki.jp\",\n \"ina.ibaraki.jp\",\n \"inashiki.ibaraki.jp\",\n \"itako.ibaraki.jp\",\n \"iwama.ibaraki.jp\",\n \"joso.ibaraki.jp\",\n \"kamisu.ibaraki.jp\",\n \"kasama.ibaraki.jp\",\n \"kashima.ibaraki.jp\",\n \"kasumigaura.ibaraki.jp\",\n \"koga.ibaraki.jp\",\n \"miho.ibaraki.jp\",\n \"mito.ibaraki.jp\",\n \"moriya.ibaraki.jp\",\n \"naka.ibaraki.jp\",\n \"namegata.ibaraki.jp\",\n \"oarai.ibaraki.jp\",\n \"ogawa.ibaraki.jp\",\n \"omitama.ibaraki.jp\",\n \"ryugasaki.ibaraki.jp\",\n \"sakai.ibaraki.jp\",\n \"sakuragawa.ibaraki.jp\",\n \"shimodate.ibaraki.jp\",\n \"shimotsuma.ibaraki.jp\",\n \"shirosato.ibaraki.jp\",\n \"sowa.ibaraki.jp\",\n \"suifu.ibaraki.jp\",\n \"takahagi.ibaraki.jp\",\n \"tamatsukuri.ibaraki.jp\",\n \"tokai.ibaraki.jp\",\n \"tomobe.ibaraki.jp\",\n \"tone.ibaraki.jp\",\n \"toride.ibaraki.jp\",\n \"tsuchiura.ibaraki.jp\",\n \"tsukuba.ibaraki.jp\",\n \"uchihara.ibaraki.jp\",\n \"ushiku.ibaraki.jp\",\n \"yachiyo.ibaraki.jp\",\n \"yamagata.ibaraki.jp\",\n \"yawara.ibaraki.jp\",\n \"yuki.ibaraki.jp\",\n \"anamizu.ishikawa.jp\",\n \"hakui.ishikawa.jp\",\n \"hakusan.ishikawa.jp\",\n \"kaga.ishikawa.jp\",\n \"kahoku.ishikawa.jp\",\n \"kanazawa.ishikawa.jp\",\n \"kawakita.ishikawa.jp\",\n \"komatsu.ishikawa.jp\",\n \"nakanoto.ishikawa.jp\",\n \"nanao.ishikawa.jp\",\n \"nomi.ishikawa.jp\",\n \"nonoichi.ishikawa.jp\",\n \"noto.ishikawa.jp\",\n \"shika.ishikawa.jp\",\n \"suzu.ishikawa.jp\",\n \"tsubata.ishikawa.jp\",\n \"tsurugi.ishikawa.jp\",\n \"uchinada.ishikawa.jp\",\n \"wajima.ishikawa.jp\",\n \"fudai.iwate.jp\",\n \"fujisawa.iwate.jp\",\n \"hanamaki.iwate.jp\",\n \"hiraizumi.iwate.jp\",\n \"hirono.iwate.jp\",\n \"ichinohe.iwate.jp\",\n \"ichinoseki.iwate.jp\",\n \"iwaizumi.iwate.jp\",\n \"iwate.iwate.jp\",\n \"joboji.iwate.jp\",\n \"kamaishi.iwate.jp\",\n \"kanegasaki.iwate.jp\",\n \"karumai.iwate.jp\",\n \"kawai.iwate.jp\",\n \"kitakami.iwate.jp\",\n \"kuji.iwate.jp\",\n \"kunohe.iwate.jp\",\n \"kuzumaki.iwate.jp\",\n \"miyako.iwate.jp\",\n \"mizusawa.iwate.jp\",\n \"morioka.iwate.jp\",\n \"ninohe.iwate.jp\",\n \"noda.iwate.jp\",\n \"ofunato.iwate.jp\",\n \"oshu.iwate.jp\",\n \"otsuchi.iwate.jp\",\n \"rikuzentakata.iwate.jp\",\n \"shiwa.iwate.jp\",\n \"shizukuishi.iwate.jp\",\n \"sumita.iwate.jp\",\n \"tanohata.iwate.jp\",\n \"tono.iwate.jp\",\n \"yahaba.iwate.jp\",\n \"yamada.iwate.jp\",\n \"ayagawa.kagawa.jp\",\n \"higashikagawa.kagawa.jp\",\n \"kanonji.kagawa.jp\",\n \"kotohira.kagawa.jp\",\n \"manno.kagawa.jp\",\n \"marugame.kagawa.jp\",\n \"mitoyo.kagawa.jp\",\n \"naoshima.kagawa.jp\",\n \"sanuki.kagawa.jp\",\n \"tadotsu.kagawa.jp\",\n \"takamatsu.kagawa.jp\",\n \"tonosho.kagawa.jp\",\n \"uchinomi.kagawa.jp\",\n \"utazu.kagawa.jp\",\n \"zentsuji.kagawa.jp\",\n \"akune.kagoshima.jp\",\n \"amami.kagoshima.jp\",\n \"hioki.kagoshima.jp\",\n \"isa.kagoshima.jp\",\n \"isen.kagoshima.jp\",\n \"izumi.kagoshima.jp\",\n \"kagoshima.kagoshima.jp\",\n \"kanoya.kagoshima.jp\",\n \"kawanabe.kagoshima.jp\",\n \"kinko.kagoshima.jp\",\n \"kouyama.kagoshima.jp\",\n \"makurazaki.kagoshima.jp\",\n \"matsumoto.kagoshima.jp\",\n \"minamitane.kagoshima.jp\",\n \"nakatane.kagoshima.jp\",\n \"nishinoomote.kagoshima.jp\",\n \"satsumasendai.kagoshima.jp\",\n \"soo.kagoshima.jp\",\n \"tarumizu.kagoshima.jp\",\n \"yusui.kagoshima.jp\",\n \"aikawa.kanagawa.jp\",\n \"atsugi.kanagawa.jp\",\n \"ayase.kanagawa.jp\",\n \"chigasaki.kanagawa.jp\",\n \"ebina.kanagawa.jp\",\n \"fujisawa.kanagawa.jp\",\n \"hadano.kanagawa.jp\",\n \"hakone.kanagawa.jp\",\n \"hiratsuka.kanagawa.jp\",\n \"isehara.kanagawa.jp\",\n \"kaisei.kanagawa.jp\",\n \"kamakura.kanagawa.jp\",\n \"kiyokawa.kanagawa.jp\",\n \"matsuda.kanagawa.jp\",\n \"minamiashigara.kanagawa.jp\",\n \"miura.kanagawa.jp\",\n \"nakai.kanagawa.jp\",\n \"ninomiya.kanagawa.jp\",\n \"odawara.kanagawa.jp\",\n \"oi.kanagawa.jp\",\n \"oiso.kanagawa.jp\",\n \"sagamihara.kanagawa.jp\",\n \"samukawa.kanagawa.jp\",\n \"tsukui.kanagawa.jp\",\n \"yamakita.kanagawa.jp\",\n \"yamato.kanagawa.jp\",\n \"yokosuka.kanagawa.jp\",\n \"yugawara.kanagawa.jp\",\n \"zama.kanagawa.jp\",\n \"zushi.kanagawa.jp\",\n \"aki.kochi.jp\",\n \"geisei.kochi.jp\",\n \"hidaka.kochi.jp\",\n \"higashitsuno.kochi.jp\",\n \"ino.kochi.jp\",\n \"kagami.kochi.jp\",\n \"kami.kochi.jp\",\n \"kitagawa.kochi.jp\",\n \"kochi.kochi.jp\",\n \"mihara.kochi.jp\",\n \"motoyama.kochi.jp\",\n \"muroto.kochi.jp\",\n \"nahari.kochi.jp\",\n \"nakamura.kochi.jp\",\n \"nankoku.kochi.jp\",\n \"nishitosa.kochi.jp\",\n \"niyodogawa.kochi.jp\",\n \"ochi.kochi.jp\",\n \"okawa.kochi.jp\",\n \"otoyo.kochi.jp\",\n \"otsuki.kochi.jp\",\n \"sakawa.kochi.jp\",\n \"sukumo.kochi.jp\",\n \"susaki.kochi.jp\",\n \"tosa.kochi.jp\",\n \"tosashimizu.kochi.jp\",\n \"toyo.kochi.jp\",\n \"tsuno.kochi.jp\",\n \"umaji.kochi.jp\",\n \"yasuda.kochi.jp\",\n \"yusuhara.kochi.jp\",\n \"amakusa.kumamoto.jp\",\n \"arao.kumamoto.jp\",\n \"aso.kumamoto.jp\",\n \"choyo.kumamoto.jp\",\n \"gyokuto.kumamoto.jp\",\n \"kamiamakusa.kumamoto.jp\",\n \"kikuchi.kumamoto.jp\",\n \"kumamoto.kumamoto.jp\",\n \"mashiki.kumamoto.jp\",\n \"mifune.kumamoto.jp\",\n \"minamata.kumamoto.jp\",\n \"minamioguni.kumamoto.jp\",\n \"nagasu.kumamoto.jp\",\n \"nishihara.kumamoto.jp\",\n \"oguni.kumamoto.jp\",\n \"ozu.kumamoto.jp\",\n \"sumoto.kumamoto.jp\",\n \"takamori.kumamoto.jp\",\n \"uki.kumamoto.jp\",\n \"uto.kumamoto.jp\",\n \"yamaga.kumamoto.jp\",\n \"yamato.kumamoto.jp\",\n \"yatsushiro.kumamoto.jp\",\n \"ayabe.kyoto.jp\",\n \"fukuchiyama.kyoto.jp\",\n \"higashiyama.kyoto.jp\",\n \"ide.kyoto.jp\",\n \"ine.kyoto.jp\",\n \"joyo.kyoto.jp\",\n \"kameoka.kyoto.jp\",\n \"kamo.kyoto.jp\",\n \"kita.kyoto.jp\",\n \"kizu.kyoto.jp\",\n \"kumiyama.kyoto.jp\",\n \"kyotamba.kyoto.jp\",\n \"kyotanabe.kyoto.jp\",\n \"kyotango.kyoto.jp\",\n \"maizuru.kyoto.jp\",\n \"minami.kyoto.jp\",\n \"minamiyamashiro.kyoto.jp\",\n \"miyazu.kyoto.jp\",\n \"muko.kyoto.jp\",\n \"nagaokakyo.kyoto.jp\",\n \"nakagyo.kyoto.jp\",\n \"nantan.kyoto.jp\",\n \"oyamazaki.kyoto.jp\",\n \"sakyo.kyoto.jp\",\n \"seika.kyoto.jp\",\n \"tanabe.kyoto.jp\",\n \"uji.kyoto.jp\",\n \"ujitawara.kyoto.jp\",\n \"wazuka.kyoto.jp\",\n \"yamashina.kyoto.jp\",\n \"yawata.kyoto.jp\",\n \"asahi.mie.jp\",\n \"inabe.mie.jp\",\n \"ise.mie.jp\",\n \"kameyama.mie.jp\",\n \"kawagoe.mie.jp\",\n \"kiho.mie.jp\",\n \"kisosaki.mie.jp\",\n \"kiwa.mie.jp\",\n \"komono.mie.jp\",\n \"kumano.mie.jp\",\n \"kuwana.mie.jp\",\n \"matsusaka.mie.jp\",\n \"meiwa.mie.jp\",\n \"mihama.mie.jp\",\n \"minamiise.mie.jp\",\n \"misugi.mie.jp\",\n \"miyama.mie.jp\",\n \"nabari.mie.jp\",\n \"shima.mie.jp\",\n \"suzuka.mie.jp\",\n \"tado.mie.jp\",\n \"taiki.mie.jp\",\n \"taki.mie.jp\",\n \"tamaki.mie.jp\",\n \"toba.mie.jp\",\n \"tsu.mie.jp\",\n \"udono.mie.jp\",\n \"ureshino.mie.jp\",\n \"watarai.mie.jp\",\n \"yokkaichi.mie.jp\",\n \"furukawa.miyagi.jp\",\n \"higashimatsushima.miyagi.jp\",\n \"ishinomaki.miyagi.jp\",\n \"iwanuma.miyagi.jp\",\n \"kakuda.miyagi.jp\",\n \"kami.miyagi.jp\",\n \"kawasaki.miyagi.jp\",\n \"marumori.miyagi.jp\",\n \"matsushima.miyagi.jp\",\n \"minamisanriku.miyagi.jp\",\n \"misato.miyagi.jp\",\n \"murata.miyagi.jp\",\n \"natori.miyagi.jp\",\n \"ogawara.miyagi.jp\",\n \"ohira.miyagi.jp\",\n \"onagawa.miyagi.jp\",\n \"osaki.miyagi.jp\",\n \"rifu.miyagi.jp\",\n \"semine.miyagi.jp\",\n \"shibata.miyagi.jp\",\n \"shichikashuku.miyagi.jp\",\n \"shikama.miyagi.jp\",\n \"shiogama.miyagi.jp\",\n \"shiroishi.miyagi.jp\",\n \"tagajo.miyagi.jp\",\n \"taiwa.miyagi.jp\",\n \"tome.miyagi.jp\",\n \"tomiya.miyagi.jp\",\n \"wakuya.miyagi.jp\",\n \"watari.miyagi.jp\",\n \"yamamoto.miyagi.jp\",\n \"zao.miyagi.jp\",\n \"aya.miyazaki.jp\",\n \"ebino.miyazaki.jp\",\n \"gokase.miyazaki.jp\",\n \"hyuga.miyazaki.jp\",\n \"kadogawa.miyazaki.jp\",\n \"kawaminami.miyazaki.jp\",\n \"kijo.miyazaki.jp\",\n \"kitagawa.miyazaki.jp\",\n \"kitakata.miyazaki.jp\",\n \"kitaura.miyazaki.jp\",\n \"kobayashi.miyazaki.jp\",\n \"kunitomi.miyazaki.jp\",\n \"kushima.miyazaki.jp\",\n \"mimata.miyazaki.jp\",\n \"miyakonojo.miyazaki.jp\",\n \"miyazaki.miyazaki.jp\",\n \"morotsuka.miyazaki.jp\",\n \"nichinan.miyazaki.jp\",\n \"nishimera.miyazaki.jp\",\n \"nobeoka.miyazaki.jp\",\n \"saito.miyazaki.jp\",\n \"shiiba.miyazaki.jp\",\n \"shintomi.miyazaki.jp\",\n \"takaharu.miyazaki.jp\",\n \"takanabe.miyazaki.jp\",\n \"takazaki.miyazaki.jp\",\n \"tsuno.miyazaki.jp\",\n \"achi.nagano.jp\",\n \"agematsu.nagano.jp\",\n \"anan.nagano.jp\",\n \"aoki.nagano.jp\",\n \"asahi.nagano.jp\",\n \"azumino.nagano.jp\",\n \"chikuhoku.nagano.jp\",\n \"chikuma.nagano.jp\",\n \"chino.nagano.jp\",\n \"fujimi.nagano.jp\",\n \"hakuba.nagano.jp\",\n \"hara.nagano.jp\",\n \"hiraya.nagano.jp\",\n \"iida.nagano.jp\",\n \"iijima.nagano.jp\",\n \"iiyama.nagano.jp\",\n \"iizuna.nagano.jp\",\n \"ikeda.nagano.jp\",\n \"ikusaka.nagano.jp\",\n \"ina.nagano.jp\",\n \"karuizawa.nagano.jp\",\n \"kawakami.nagano.jp\",\n \"kiso.nagano.jp\",\n \"kisofukushima.nagano.jp\",\n \"kitaaiki.nagano.jp\",\n \"komagane.nagano.jp\",\n \"komoro.nagano.jp\",\n \"matsukawa.nagano.jp\",\n \"matsumoto.nagano.jp\",\n \"miasa.nagano.jp\",\n \"minamiaiki.nagano.jp\",\n \"minamimaki.nagano.jp\",\n \"minamiminowa.nagano.jp\",\n \"minowa.nagano.jp\",\n \"miyada.nagano.jp\",\n \"miyota.nagano.jp\",\n \"mochizuki.nagano.jp\",\n \"nagano.nagano.jp\",\n \"nagawa.nagano.jp\",\n \"nagiso.nagano.jp\",\n \"nakagawa.nagano.jp\",\n \"nakano.nagano.jp\",\n \"nozawaonsen.nagano.jp\",\n \"obuse.nagano.jp\",\n \"ogawa.nagano.jp\",\n \"okaya.nagano.jp\",\n \"omachi.nagano.jp\",\n \"omi.nagano.jp\",\n \"ookuwa.nagano.jp\",\n \"ooshika.nagano.jp\",\n \"otaki.nagano.jp\",\n \"otari.nagano.jp\",\n \"sakae.nagano.jp\",\n \"sakaki.nagano.jp\",\n \"saku.nagano.jp\",\n \"sakuho.nagano.jp\",\n \"shimosuwa.nagano.jp\",\n \"shinanomachi.nagano.jp\",\n \"shiojiri.nagano.jp\",\n \"suwa.nagano.jp\",\n \"suzaka.nagano.jp\",\n \"takagi.nagano.jp\",\n \"takamori.nagano.jp\",\n \"takayama.nagano.jp\",\n \"tateshina.nagano.jp\",\n \"tatsuno.nagano.jp\",\n \"togakushi.nagano.jp\",\n \"togura.nagano.jp\",\n \"tomi.nagano.jp\",\n \"ueda.nagano.jp\",\n \"wada.nagano.jp\",\n \"yamagata.nagano.jp\",\n \"yamanouchi.nagano.jp\",\n \"yasaka.nagano.jp\",\n \"yasuoka.nagano.jp\",\n \"chijiwa.nagasaki.jp\",\n \"futsu.nagasaki.jp\",\n \"goto.nagasaki.jp\",\n \"hasami.nagasaki.jp\",\n \"hirado.nagasaki.jp\",\n \"iki.nagasaki.jp\",\n \"isahaya.nagasaki.jp\",\n \"kawatana.nagasaki.jp\",\n \"kuchinotsu.nagasaki.jp\",\n \"matsuura.nagasaki.jp\",\n \"nagasaki.nagasaki.jp\",\n \"obama.nagasaki.jp\",\n \"omura.nagasaki.jp\",\n \"oseto.nagasaki.jp\",\n \"saikai.nagasaki.jp\",\n \"sasebo.nagasaki.jp\",\n \"seihi.nagasaki.jp\",\n \"shimabara.nagasaki.jp\",\n \"shinkamigoto.nagasaki.jp\",\n \"togitsu.nagasaki.jp\",\n \"tsushima.nagasaki.jp\",\n \"unzen.nagasaki.jp\",\n \"ando.nara.jp\",\n \"gose.nara.jp\",\n \"heguri.nara.jp\",\n \"higashiyoshino.nara.jp\",\n \"ikaruga.nara.jp\",\n \"ikoma.nara.jp\",\n \"kamikitayama.nara.jp\",\n \"kanmaki.nara.jp\",\n \"kashiba.nara.jp\",\n \"kashihara.nara.jp\",\n \"katsuragi.nara.jp\",\n \"kawai.nara.jp\",\n \"kawakami.nara.jp\",\n \"kawanishi.nara.jp\",\n \"koryo.nara.jp\",\n \"kurotaki.nara.jp\",\n \"mitsue.nara.jp\",\n \"miyake.nara.jp\",\n \"nara.nara.jp\",\n \"nosegawa.nara.jp\",\n \"oji.nara.jp\",\n \"ouda.nara.jp\",\n \"oyodo.nara.jp\",\n \"sakurai.nara.jp\",\n \"sango.nara.jp\",\n \"shimoichi.nara.jp\",\n \"shimokitayama.nara.jp\",\n \"shinjo.nara.jp\",\n \"soni.nara.jp\",\n \"takatori.nara.jp\",\n \"tawaramoto.nara.jp\",\n \"tenkawa.nara.jp\",\n \"tenri.nara.jp\",\n \"uda.nara.jp\",\n \"yamatokoriyama.nara.jp\",\n \"yamatotakada.nara.jp\",\n \"yamazoe.nara.jp\",\n \"yoshino.nara.jp\",\n \"aga.niigata.jp\",\n \"agano.niigata.jp\",\n \"gosen.niigata.jp\",\n \"itoigawa.niigata.jp\",\n \"izumozaki.niigata.jp\",\n \"joetsu.niigata.jp\",\n \"kamo.niigata.jp\",\n \"kariwa.niigata.jp\",\n \"kashiwazaki.niigata.jp\",\n \"minamiuonuma.niigata.jp\",\n \"mitsuke.niigata.jp\",\n \"muika.niigata.jp\",\n \"murakami.niigata.jp\",\n \"myoko.niigata.jp\",\n \"nagaoka.niigata.jp\",\n \"niigata.niigata.jp\",\n \"ojiya.niigata.jp\",\n \"omi.niigata.jp\",\n \"sado.niigata.jp\",\n \"sanjo.niigata.jp\",\n \"seiro.niigata.jp\",\n \"seirou.niigata.jp\",\n \"sekikawa.niigata.jp\",\n \"shibata.niigata.jp\",\n \"tagami.niigata.jp\",\n \"tainai.niigata.jp\",\n \"tochio.niigata.jp\",\n \"tokamachi.niigata.jp\",\n \"tsubame.niigata.jp\",\n \"tsunan.niigata.jp\",\n \"uonuma.niigata.jp\",\n \"yahiko.niigata.jp\",\n \"yoita.niigata.jp\",\n \"yuzawa.niigata.jp\",\n \"beppu.oita.jp\",\n \"bungoono.oita.jp\",\n \"bungotakada.oita.jp\",\n \"hasama.oita.jp\",\n \"hiji.oita.jp\",\n \"himeshima.oita.jp\",\n \"hita.oita.jp\",\n \"kamitsue.oita.jp\",\n \"kokonoe.oita.jp\",\n \"kuju.oita.jp\",\n \"kunisaki.oita.jp\",\n \"kusu.oita.jp\",\n \"oita.oita.jp\",\n \"saiki.oita.jp\",\n \"taketa.oita.jp\",\n \"tsukumi.oita.jp\",\n \"usa.oita.jp\",\n \"usuki.oita.jp\",\n \"yufu.oita.jp\",\n \"akaiwa.okayama.jp\",\n \"asakuchi.okayama.jp\",\n \"bizen.okayama.jp\",\n \"hayashima.okayama.jp\",\n \"ibara.okayama.jp\",\n \"kagamino.okayama.jp\",\n \"kasaoka.okayama.jp\",\n \"kibichuo.okayama.jp\",\n \"kumenan.okayama.jp\",\n \"kurashiki.okayama.jp\",\n \"maniwa.okayama.jp\",\n \"misaki.okayama.jp\",\n \"nagi.okayama.jp\",\n \"niimi.okayama.jp\",\n \"nishiawakura.okayama.jp\",\n \"okayama.okayama.jp\",\n \"satosho.okayama.jp\",\n \"setouchi.okayama.jp\",\n \"shinjo.okayama.jp\",\n \"shoo.okayama.jp\",\n \"soja.okayama.jp\",\n \"takahashi.okayama.jp\",\n \"tamano.okayama.jp\",\n \"tsuyama.okayama.jp\",\n \"wake.okayama.jp\",\n \"yakage.okayama.jp\",\n \"aguni.okinawa.jp\",\n \"ginowan.okinawa.jp\",\n \"ginoza.okinawa.jp\",\n \"gushikami.okinawa.jp\",\n \"haebaru.okinawa.jp\",\n \"higashi.okinawa.jp\",\n \"hirara.okinawa.jp\",\n \"iheya.okinawa.jp\",\n \"ishigaki.okinawa.jp\",\n \"ishikawa.okinawa.jp\",\n \"itoman.okinawa.jp\",\n \"izena.okinawa.jp\",\n \"kadena.okinawa.jp\",\n \"kin.okinawa.jp\",\n \"kitadaito.okinawa.jp\",\n \"kitanakagusuku.okinawa.jp\",\n \"kumejima.okinawa.jp\",\n \"kunigami.okinawa.jp\",\n \"minamidaito.okinawa.jp\",\n \"motobu.okinawa.jp\",\n \"nago.okinawa.jp\",\n \"naha.okinawa.jp\",\n \"nakagusuku.okinawa.jp\",\n \"nakijin.okinawa.jp\",\n \"nanjo.okinawa.jp\",\n \"nishihara.okinawa.jp\",\n \"ogimi.okinawa.jp\",\n \"okinawa.okinawa.jp\",\n \"onna.okinawa.jp\",\n \"shimoji.okinawa.jp\",\n \"taketomi.okinawa.jp\",\n \"tarama.okinawa.jp\",\n \"tokashiki.okinawa.jp\",\n \"tomigusuku.okinawa.jp\",\n \"tonaki.okinawa.jp\",\n \"urasoe.okinawa.jp\",\n \"uruma.okinawa.jp\",\n \"yaese.okinawa.jp\",\n \"yomitan.okinawa.jp\",\n \"yonabaru.okinawa.jp\",\n \"yonaguni.okinawa.jp\",\n \"zamami.okinawa.jp\",\n \"abeno.osaka.jp\",\n \"chihayaakasaka.osaka.jp\",\n \"chuo.osaka.jp\",\n \"daito.osaka.jp\",\n \"fujiidera.osaka.jp\",\n \"habikino.osaka.jp\",\n \"hannan.osaka.jp\",\n \"higashiosaka.osaka.jp\",\n \"higashisumiyoshi.osaka.jp\",\n \"higashiyodogawa.osaka.jp\",\n \"hirakata.osaka.jp\",\n \"ibaraki.osaka.jp\",\n \"ikeda.osaka.jp\",\n \"izumi.osaka.jp\",\n \"izumiotsu.osaka.jp\",\n \"izumisano.osaka.jp\",\n \"kadoma.osaka.jp\",\n \"kaizuka.osaka.jp\",\n \"kanan.osaka.jp\",\n \"kashiwara.osaka.jp\",\n \"katano.osaka.jp\",\n \"kawachinagano.osaka.jp\",\n \"kishiwada.osaka.jp\",\n \"kita.osaka.jp\",\n \"kumatori.osaka.jp\",\n \"matsubara.osaka.jp\",\n \"minato.osaka.jp\",\n \"minoh.osaka.jp\",\n \"misaki.osaka.jp\",\n \"moriguchi.osaka.jp\",\n \"neyagawa.osaka.jp\",\n \"nishi.osaka.jp\",\n \"nose.osaka.jp\",\n \"osakasayama.osaka.jp\",\n \"sakai.osaka.jp\",\n \"sayama.osaka.jp\",\n \"sennan.osaka.jp\",\n \"settsu.osaka.jp\",\n \"shijonawate.osaka.jp\",\n \"shimamoto.osaka.jp\",\n \"suita.osaka.jp\",\n \"tadaoka.osaka.jp\",\n \"taishi.osaka.jp\",\n \"tajiri.osaka.jp\",\n \"takaishi.osaka.jp\",\n \"takatsuki.osaka.jp\",\n \"tondabayashi.osaka.jp\",\n \"toyonaka.osaka.jp\",\n \"toyono.osaka.jp\",\n \"yao.osaka.jp\",\n \"ariake.saga.jp\",\n \"arita.saga.jp\",\n \"fukudomi.saga.jp\",\n \"genkai.saga.jp\",\n \"hamatama.saga.jp\",\n \"hizen.saga.jp\",\n \"imari.saga.jp\",\n \"kamimine.saga.jp\",\n \"kanzaki.saga.jp\",\n \"karatsu.saga.jp\",\n \"kashima.saga.jp\",\n \"kitagata.saga.jp\",\n \"kitahata.saga.jp\",\n \"kiyama.saga.jp\",\n \"kouhoku.saga.jp\",\n \"kyuragi.saga.jp\",\n \"nishiarita.saga.jp\",\n \"ogi.saga.jp\",\n \"omachi.saga.jp\",\n \"ouchi.saga.jp\",\n \"saga.saga.jp\",\n \"shiroishi.saga.jp\",\n \"taku.saga.jp\",\n \"tara.saga.jp\",\n \"tosu.saga.jp\",\n \"yoshinogari.saga.jp\",\n \"arakawa.saitama.jp\",\n \"asaka.saitama.jp\",\n \"chichibu.saitama.jp\",\n \"fujimi.saitama.jp\",\n \"fujimino.saitama.jp\",\n \"fukaya.saitama.jp\",\n \"hanno.saitama.jp\",\n \"hanyu.saitama.jp\",\n \"hasuda.saitama.jp\",\n \"hatogaya.saitama.jp\",\n \"hatoyama.saitama.jp\",\n \"hidaka.saitama.jp\",\n \"higashichichibu.saitama.jp\",\n \"higashimatsuyama.saitama.jp\",\n \"honjo.saitama.jp\",\n \"ina.saitama.jp\",\n \"iruma.saitama.jp\",\n \"iwatsuki.saitama.jp\",\n \"kamiizumi.saitama.jp\",\n \"kamikawa.saitama.jp\",\n \"kamisato.saitama.jp\",\n \"kasukabe.saitama.jp\",\n \"kawagoe.saitama.jp\",\n \"kawaguchi.saitama.jp\",\n \"kawajima.saitama.jp\",\n \"kazo.saitama.jp\",\n \"kitamoto.saitama.jp\",\n \"koshigaya.saitama.jp\",\n \"kounosu.saitama.jp\",\n \"kuki.saitama.jp\",\n \"kumagaya.saitama.jp\",\n \"matsubushi.saitama.jp\",\n \"minano.saitama.jp\",\n \"misato.saitama.jp\",\n \"miyashiro.saitama.jp\",\n \"miyoshi.saitama.jp\",\n \"moroyama.saitama.jp\",\n \"nagatoro.saitama.jp\",\n \"namegawa.saitama.jp\",\n \"niiza.saitama.jp\",\n \"ogano.saitama.jp\",\n \"ogawa.saitama.jp\",\n \"ogose.saitama.jp\",\n \"okegawa.saitama.jp\",\n \"omiya.saitama.jp\",\n \"otaki.saitama.jp\",\n \"ranzan.saitama.jp\",\n \"ryokami.saitama.jp\",\n \"saitama.saitama.jp\",\n \"sakado.saitama.jp\",\n \"satte.saitama.jp\",\n \"sayama.saitama.jp\",\n \"shiki.saitama.jp\",\n \"shiraoka.saitama.jp\",\n \"soka.saitama.jp\",\n \"sugito.saitama.jp\",\n \"toda.saitama.jp\",\n \"tokigawa.saitama.jp\",\n \"tokorozawa.saitama.jp\",\n \"tsurugashima.saitama.jp\",\n \"urawa.saitama.jp\",\n \"warabi.saitama.jp\",\n \"yashio.saitama.jp\",\n \"yokoze.saitama.jp\",\n \"yono.saitama.jp\",\n \"yorii.saitama.jp\",\n \"yoshida.saitama.jp\",\n \"yoshikawa.saitama.jp\",\n \"yoshimi.saitama.jp\",\n \"aisho.shiga.jp\",\n \"gamo.shiga.jp\",\n \"higashiomi.shiga.jp\",\n \"hikone.shiga.jp\",\n \"koka.shiga.jp\",\n \"konan.shiga.jp\",\n \"kosei.shiga.jp\",\n \"koto.shiga.jp\",\n \"kusatsu.shiga.jp\",\n \"maibara.shiga.jp\",\n \"moriyama.shiga.jp\",\n \"nagahama.shiga.jp\",\n \"nishiazai.shiga.jp\",\n \"notogawa.shiga.jp\",\n \"omihachiman.shiga.jp\",\n \"otsu.shiga.jp\",\n \"ritto.shiga.jp\",\n \"ryuoh.shiga.jp\",\n \"takashima.shiga.jp\",\n \"takatsuki.shiga.jp\",\n \"torahime.shiga.jp\",\n \"toyosato.shiga.jp\",\n \"yasu.shiga.jp\",\n \"akagi.shimane.jp\",\n \"ama.shimane.jp\",\n \"gotsu.shimane.jp\",\n \"hamada.shimane.jp\",\n \"higashiizumo.shimane.jp\",\n \"hikawa.shimane.jp\",\n \"hikimi.shimane.jp\",\n \"izumo.shimane.jp\",\n \"kakinoki.shimane.jp\",\n \"masuda.shimane.jp\",\n \"matsue.shimane.jp\",\n \"misato.shimane.jp\",\n \"nishinoshima.shimane.jp\",\n \"ohda.shimane.jp\",\n \"okinoshima.shimane.jp\",\n \"okuizumo.shimane.jp\",\n \"shimane.shimane.jp\",\n \"tamayu.shimane.jp\",\n \"tsuwano.shimane.jp\",\n \"unnan.shimane.jp\",\n \"yakumo.shimane.jp\",\n \"yasugi.shimane.jp\",\n \"yatsuka.shimane.jp\",\n \"arai.shizuoka.jp\",\n \"atami.shizuoka.jp\",\n \"fuji.shizuoka.jp\",\n \"fujieda.shizuoka.jp\",\n \"fujikawa.shizuoka.jp\",\n \"fujinomiya.shizuoka.jp\",\n \"fukuroi.shizuoka.jp\",\n \"gotemba.shizuoka.jp\",\n \"haibara.shizuoka.jp\",\n \"hamamatsu.shizuoka.jp\",\n \"higashiizu.shizuoka.jp\",\n \"ito.shizuoka.jp\",\n \"iwata.shizuoka.jp\",\n \"izu.shizuoka.jp\",\n \"izunokuni.shizuoka.jp\",\n \"kakegawa.shizuoka.jp\",\n \"kannami.shizuoka.jp\",\n \"kawanehon.shizuoka.jp\",\n \"kawazu.shizuoka.jp\",\n \"kikugawa.shizuoka.jp\",\n \"kosai.shizuoka.jp\",\n \"makinohara.shizuoka.jp\",\n \"matsuzaki.shizuoka.jp\",\n \"minamiizu.shizuoka.jp\",\n \"mishima.shizuoka.jp\",\n \"morimachi.shizuoka.jp\",\n \"nishiizu.shizuoka.jp\",\n \"numazu.shizuoka.jp\",\n \"omaezaki.shizuoka.jp\",\n \"shimada.shizuoka.jp\",\n \"shimizu.shizuoka.jp\",\n \"shimoda.shizuoka.jp\",\n \"shizuoka.shizuoka.jp\",\n \"susono.shizuoka.jp\",\n \"yaizu.shizuoka.jp\",\n \"yoshida.shizuoka.jp\",\n \"ashikaga.tochigi.jp\",\n \"bato.tochigi.jp\",\n \"haga.tochigi.jp\",\n \"ichikai.tochigi.jp\",\n \"iwafune.tochigi.jp\",\n \"kaminokawa.tochigi.jp\",\n \"kanuma.tochigi.jp\",\n \"karasuyama.tochigi.jp\",\n \"kuroiso.tochigi.jp\",\n \"mashiko.tochigi.jp\",\n \"mibu.tochigi.jp\",\n \"moka.tochigi.jp\",\n \"motegi.tochigi.jp\",\n \"nasu.tochigi.jp\",\n \"nasushiobara.tochigi.jp\",\n \"nikko.tochigi.jp\",\n \"nishikata.tochigi.jp\",\n \"nogi.tochigi.jp\",\n \"ohira.tochigi.jp\",\n \"ohtawara.tochigi.jp\",\n \"oyama.tochigi.jp\",\n \"sakura.tochigi.jp\",\n \"sano.tochigi.jp\",\n \"shimotsuke.tochigi.jp\",\n \"shioya.tochigi.jp\",\n \"takanezawa.tochigi.jp\",\n \"tochigi.tochigi.jp\",\n \"tsuga.tochigi.jp\",\n \"ujiie.tochigi.jp\",\n \"utsunomiya.tochigi.jp\",\n \"yaita.tochigi.jp\",\n \"aizumi.tokushima.jp\",\n \"anan.tokushima.jp\",\n \"ichiba.tokushima.jp\",\n \"itano.tokushima.jp\",\n \"kainan.tokushima.jp\",\n \"komatsushima.tokushima.jp\",\n \"matsushige.tokushima.jp\",\n \"mima.tokushima.jp\",\n \"minami.tokushima.jp\",\n \"miyoshi.tokushima.jp\",\n \"mugi.tokushima.jp\",\n \"nakagawa.tokushima.jp\",\n \"naruto.tokushima.jp\",\n \"sanagochi.tokushima.jp\",\n \"shishikui.tokushima.jp\",\n \"tokushima.tokushima.jp\",\n \"wajiki.tokushima.jp\",\n \"adachi.tokyo.jp\",\n \"akiruno.tokyo.jp\",\n \"akishima.tokyo.jp\",\n \"aogashima.tokyo.jp\",\n \"arakawa.tokyo.jp\",\n \"bunkyo.tokyo.jp\",\n \"chiyoda.tokyo.jp\",\n \"chofu.tokyo.jp\",\n \"chuo.tokyo.jp\",\n \"edogawa.tokyo.jp\",\n \"fuchu.tokyo.jp\",\n \"fussa.tokyo.jp\",\n \"hachijo.tokyo.jp\",\n \"hachioji.tokyo.jp\",\n \"hamura.tokyo.jp\",\n \"higashikurume.tokyo.jp\",\n \"higashimurayama.tokyo.jp\",\n \"higashiyamato.tokyo.jp\",\n \"hino.tokyo.jp\",\n \"hinode.tokyo.jp\",\n \"hinohara.tokyo.jp\",\n \"inagi.tokyo.jp\",\n \"itabashi.tokyo.jp\",\n \"katsushika.tokyo.jp\",\n \"kita.tokyo.jp\",\n \"kiyose.tokyo.jp\",\n \"kodaira.tokyo.jp\",\n \"koganei.tokyo.jp\",\n \"kokubunji.tokyo.jp\",\n \"komae.tokyo.jp\",\n \"koto.tokyo.jp\",\n \"kouzushima.tokyo.jp\",\n \"kunitachi.tokyo.jp\",\n \"machida.tokyo.jp\",\n \"meguro.tokyo.jp\",\n \"minato.tokyo.jp\",\n \"mitaka.tokyo.jp\",\n \"mizuho.tokyo.jp\",\n \"musashimurayama.tokyo.jp\",\n \"musashino.tokyo.jp\",\n \"nakano.tokyo.jp\",\n \"nerima.tokyo.jp\",\n \"ogasawara.tokyo.jp\",\n \"okutama.tokyo.jp\",\n \"ome.tokyo.jp\",\n \"oshima.tokyo.jp\",\n \"ota.tokyo.jp\",\n \"setagaya.tokyo.jp\",\n \"shibuya.tokyo.jp\",\n \"shinagawa.tokyo.jp\",\n \"shinjuku.tokyo.jp\",\n \"suginami.tokyo.jp\",\n \"sumida.tokyo.jp\",\n \"tachikawa.tokyo.jp\",\n \"taito.tokyo.jp\",\n \"tama.tokyo.jp\",\n \"toshima.tokyo.jp\",\n \"chizu.tottori.jp\",\n \"hino.tottori.jp\",\n \"kawahara.tottori.jp\",\n \"koge.tottori.jp\",\n \"kotoura.tottori.jp\",\n \"misasa.tottori.jp\",\n \"nanbu.tottori.jp\",\n \"nichinan.tottori.jp\",\n \"sakaiminato.tottori.jp\",\n \"tottori.tottori.jp\",\n \"wakasa.tottori.jp\",\n \"yazu.tottori.jp\",\n \"yonago.tottori.jp\",\n \"asahi.toyama.jp\",\n \"fuchu.toyama.jp\",\n \"fukumitsu.toyama.jp\",\n \"funahashi.toyama.jp\",\n \"himi.toyama.jp\",\n \"imizu.toyama.jp\",\n \"inami.toyama.jp\",\n \"johana.toyama.jp\",\n \"kamiichi.toyama.jp\",\n \"kurobe.toyama.jp\",\n \"nakaniikawa.toyama.jp\",\n \"namerikawa.toyama.jp\",\n \"nanto.toyama.jp\",\n \"nyuzen.toyama.jp\",\n \"oyabe.toyama.jp\",\n \"taira.toyama.jp\",\n \"takaoka.toyama.jp\",\n \"tateyama.toyama.jp\",\n \"toga.toyama.jp\",\n \"tonami.toyama.jp\",\n \"toyama.toyama.jp\",\n \"unazuki.toyama.jp\",\n \"uozu.toyama.jp\",\n \"yamada.toyama.jp\",\n \"arida.wakayama.jp\",\n \"aridagawa.wakayama.jp\",\n \"gobo.wakayama.jp\",\n \"hashimoto.wakayama.jp\",\n \"hidaka.wakayama.jp\",\n \"hirogawa.wakayama.jp\",\n \"inami.wakayama.jp\",\n \"iwade.wakayama.jp\",\n \"kainan.wakayama.jp\",\n \"kamitonda.wakayama.jp\",\n \"katsuragi.wakayama.jp\",\n \"kimino.wakayama.jp\",\n \"kinokawa.wakayama.jp\",\n \"kitayama.wakayama.jp\",\n \"koya.wakayama.jp\",\n \"koza.wakayama.jp\",\n \"kozagawa.wakayama.jp\",\n \"kudoyama.wakayama.jp\",\n \"kushimoto.wakayama.jp\",\n \"mihama.wakayama.jp\",\n \"misato.wakayama.jp\",\n \"nachikatsuura.wakayama.jp\",\n \"shingu.wakayama.jp\",\n \"shirahama.wakayama.jp\",\n \"taiji.wakayama.jp\",\n \"tanabe.wakayama.jp\",\n \"wakayama.wakayama.jp\",\n \"yuasa.wakayama.jp\",\n \"yura.wakayama.jp\",\n \"asahi.yamagata.jp\",\n \"funagata.yamagata.jp\",\n \"higashine.yamagata.jp\",\n \"iide.yamagata.jp\",\n \"kahoku.yamagata.jp\",\n \"kaminoyama.yamagata.jp\",\n \"kaneyama.yamagata.jp\",\n \"kawanishi.yamagata.jp\",\n \"mamurogawa.yamagata.jp\",\n \"mikawa.yamagata.jp\",\n \"murayama.yamagata.jp\",\n \"nagai.yamagata.jp\",\n \"nakayama.yamagata.jp\",\n \"nanyo.yamagata.jp\",\n \"nishikawa.yamagata.jp\",\n \"obanazawa.yamagata.jp\",\n \"oe.yamagata.jp\",\n \"oguni.yamagata.jp\",\n \"ohkura.yamagata.jp\",\n \"oishida.yamagata.jp\",\n \"sagae.yamagata.jp\",\n \"sakata.yamagata.jp\",\n \"sakegawa.yamagata.jp\",\n \"shinjo.yamagata.jp\",\n \"shirataka.yamagata.jp\",\n \"shonai.yamagata.jp\",\n \"takahata.yamagata.jp\",\n \"tendo.yamagata.jp\",\n \"tozawa.yamagata.jp\",\n \"tsuruoka.yamagata.jp\",\n \"yamagata.yamagata.jp\",\n \"yamanobe.yamagata.jp\",\n \"yonezawa.yamagata.jp\",\n \"yuza.yamagata.jp\",\n \"abu.yamaguchi.jp\",\n \"hagi.yamaguchi.jp\",\n \"hikari.yamaguchi.jp\",\n \"hofu.yamaguchi.jp\",\n \"iwakuni.yamaguchi.jp\",\n \"kudamatsu.yamaguchi.jp\",\n \"mitou.yamaguchi.jp\",\n \"nagato.yamaguchi.jp\",\n \"oshima.yamaguchi.jp\",\n \"shimonoseki.yamaguchi.jp\",\n \"shunan.yamaguchi.jp\",\n \"tabuse.yamaguchi.jp\",\n \"tokuyama.yamaguchi.jp\",\n \"toyota.yamaguchi.jp\",\n \"ube.yamaguchi.jp\",\n \"yuu.yamaguchi.jp\",\n \"chuo.yamanashi.jp\",\n \"doshi.yamanashi.jp\",\n \"fuefuki.yamanashi.jp\",\n \"fujikawa.yamanashi.jp\",\n \"fujikawaguchiko.yamanashi.jp\",\n \"fujiyoshida.yamanashi.jp\",\n \"hayakawa.yamanashi.jp\",\n \"hokuto.yamanashi.jp\",\n \"ichikawamisato.yamanashi.jp\",\n \"kai.yamanashi.jp\",\n \"kofu.yamanashi.jp\",\n \"koshu.yamanashi.jp\",\n \"kosuge.yamanashi.jp\",\n \"minami-alps.yamanashi.jp\",\n \"minobu.yamanashi.jp\",\n \"nakamichi.yamanashi.jp\",\n \"nanbu.yamanashi.jp\",\n \"narusawa.yamanashi.jp\",\n \"nirasaki.yamanashi.jp\",\n \"nishikatsura.yamanashi.jp\",\n \"oshino.yamanashi.jp\",\n \"otsuki.yamanashi.jp\",\n \"showa.yamanashi.jp\",\n \"tabayama.yamanashi.jp\",\n \"tsuru.yamanashi.jp\",\n \"uenohara.yamanashi.jp\",\n \"yamanakako.yamanashi.jp\",\n \"yamanashi.yamanashi.jp\",\n \"ke\",\n \"ac.ke\",\n \"co.ke\",\n \"go.ke\",\n \"info.ke\",\n \"me.ke\",\n \"mobi.ke\",\n \"ne.ke\",\n \"or.ke\",\n \"sc.ke\",\n \"kg\",\n \"org.kg\",\n \"net.kg\",\n \"com.kg\",\n \"edu.kg\",\n \"gov.kg\",\n \"mil.kg\",\n \"*.kh\",\n \"ki\",\n \"edu.ki\",\n \"biz.ki\",\n \"net.ki\",\n \"org.ki\",\n \"gov.ki\",\n \"info.ki\",\n \"com.ki\",\n \"km\",\n \"org.km\",\n \"nom.km\",\n \"gov.km\",\n \"prd.km\",\n \"tm.km\",\n \"edu.km\",\n \"mil.km\",\n \"ass.km\",\n \"com.km\",\n \"coop.km\",\n \"asso.km\",\n \"presse.km\",\n \"medecin.km\",\n \"notaires.km\",\n \"pharmaciens.km\",\n \"veterinaire.km\",\n \"gouv.km\",\n \"kn\",\n \"net.kn\",\n \"org.kn\",\n \"edu.kn\",\n \"gov.kn\",\n \"kp\",\n \"com.kp\",\n \"edu.kp\",\n \"gov.kp\",\n \"org.kp\",\n \"rep.kp\",\n \"tra.kp\",\n \"kr\",\n \"ac.kr\",\n \"co.kr\",\n \"es.kr\",\n \"go.kr\",\n \"hs.kr\",\n \"kg.kr\",\n \"mil.kr\",\n \"ms.kr\",\n \"ne.kr\",\n \"or.kr\",\n \"pe.kr\",\n \"re.kr\",\n \"sc.kr\",\n \"busan.kr\",\n \"chungbuk.kr\",\n \"chungnam.kr\",\n \"daegu.kr\",\n \"daejeon.kr\",\n \"gangwon.kr\",\n \"gwangju.kr\",\n \"gyeongbuk.kr\",\n \"gyeonggi.kr\",\n \"gyeongnam.kr\",\n \"incheon.kr\",\n \"jeju.kr\",\n \"jeonbuk.kr\",\n \"jeonnam.kr\",\n \"seoul.kr\",\n \"ulsan.kr\",\n \"kw\",\n \"com.kw\",\n \"edu.kw\",\n \"emb.kw\",\n \"gov.kw\",\n \"ind.kw\",\n \"net.kw\",\n \"org.kw\",\n \"ky\",\n \"com.ky\",\n \"edu.ky\",\n \"net.ky\",\n \"org.ky\",\n \"kz\",\n \"org.kz\",\n \"edu.kz\",\n \"net.kz\",\n \"gov.kz\",\n \"mil.kz\",\n \"com.kz\",\n \"la\",\n \"int.la\",\n \"net.la\",\n \"info.la\",\n \"edu.la\",\n \"gov.la\",\n \"per.la\",\n \"com.la\",\n \"org.la\",\n \"lb\",\n \"com.lb\",\n \"edu.lb\",\n \"gov.lb\",\n \"net.lb\",\n \"org.lb\",\n \"lc\",\n \"com.lc\",\n \"net.lc\",\n \"co.lc\",\n \"org.lc\",\n \"edu.lc\",\n \"gov.lc\",\n \"li\",\n \"lk\",\n \"gov.lk\",\n \"sch.lk\",\n \"net.lk\",\n \"int.lk\",\n \"com.lk\",\n \"org.lk\",\n \"edu.lk\",\n \"ngo.lk\",\n \"soc.lk\",\n \"web.lk\",\n \"ltd.lk\",\n \"assn.lk\",\n \"grp.lk\",\n \"hotel.lk\",\n \"ac.lk\",\n \"lr\",\n \"com.lr\",\n \"edu.lr\",\n \"gov.lr\",\n \"org.lr\",\n \"net.lr\",\n \"ls\",\n \"ac.ls\",\n \"biz.ls\",\n \"co.ls\",\n \"edu.ls\",\n \"gov.ls\",\n \"info.ls\",\n \"net.ls\",\n \"org.ls\",\n \"sc.ls\",\n \"lt\",\n \"gov.lt\",\n \"lu\",\n \"lv\",\n \"com.lv\",\n \"edu.lv\",\n \"gov.lv\",\n \"org.lv\",\n \"mil.lv\",\n \"id.lv\",\n \"net.lv\",\n \"asn.lv\",\n \"conf.lv\",\n \"ly\",\n \"com.ly\",\n \"net.ly\",\n \"gov.ly\",\n \"plc.ly\",\n \"edu.ly\",\n \"sch.ly\",\n \"med.ly\",\n \"org.ly\",\n \"id.ly\",\n \"ma\",\n \"co.ma\",\n \"net.ma\",\n \"gov.ma\",\n \"org.ma\",\n \"ac.ma\",\n \"press.ma\",\n \"mc\",\n \"tm.mc\",\n \"asso.mc\",\n \"md\",\n \"me\",\n \"co.me\",\n \"net.me\",\n \"org.me\",\n \"edu.me\",\n \"ac.me\",\n \"gov.me\",\n \"its.me\",\n \"priv.me\",\n \"mg\",\n \"org.mg\",\n \"nom.mg\",\n \"gov.mg\",\n \"prd.mg\",\n \"tm.mg\",\n \"edu.mg\",\n \"mil.mg\",\n \"com.mg\",\n \"co.mg\",\n \"mh\",\n \"mil\",\n \"mk\",\n \"com.mk\",\n \"org.mk\",\n \"net.mk\",\n \"edu.mk\",\n \"gov.mk\",\n \"inf.mk\",\n \"name.mk\",\n \"ml\",\n \"com.ml\",\n \"edu.ml\",\n \"gouv.ml\",\n \"gov.ml\",\n \"net.ml\",\n \"org.ml\",\n \"presse.ml\",\n \"*.mm\",\n \"mn\",\n \"gov.mn\",\n \"edu.mn\",\n \"org.mn\",\n \"mo\",\n \"com.mo\",\n \"net.mo\",\n \"org.mo\",\n \"edu.mo\",\n \"gov.mo\",\n \"mobi\",\n \"mp\",\n \"mq\",\n \"mr\",\n \"gov.mr\",\n \"ms\",\n \"com.ms\",\n \"edu.ms\",\n \"gov.ms\",\n \"net.ms\",\n \"org.ms\",\n \"mt\",\n \"com.mt\",\n \"edu.mt\",\n \"net.mt\",\n \"org.mt\",\n \"mu\",\n \"com.mu\",\n \"net.mu\",\n \"org.mu\",\n \"gov.mu\",\n \"ac.mu\",\n \"co.mu\",\n \"or.mu\",\n \"museum\",\n \"academy.museum\",\n \"agriculture.museum\",\n \"air.museum\",\n \"airguard.museum\",\n \"alabama.museum\",\n \"alaska.museum\",\n \"amber.museum\",\n \"ambulance.museum\",\n \"american.museum\",\n \"americana.museum\",\n \"americanantiques.museum\",\n \"americanart.museum\",\n \"amsterdam.museum\",\n \"and.museum\",\n \"annefrank.museum\",\n \"anthro.museum\",\n \"anthropology.museum\",\n \"antiques.museum\",\n \"aquarium.museum\",\n \"arboretum.museum\",\n \"archaeological.museum\",\n \"archaeology.museum\",\n \"architecture.museum\",\n \"art.museum\",\n \"artanddesign.museum\",\n \"artcenter.museum\",\n \"artdeco.museum\",\n \"arteducation.museum\",\n \"artgallery.museum\",\n \"arts.museum\",\n \"artsandcrafts.museum\",\n \"asmatart.museum\",\n \"assassination.museum\",\n \"assisi.museum\",\n \"association.museum\",\n \"astronomy.museum\",\n \"atlanta.museum\",\n \"austin.museum\",\n \"australia.museum\",\n \"automotive.museum\",\n \"aviation.museum\",\n \"axis.museum\",\n \"badajoz.museum\",\n \"baghdad.museum\",\n \"bahn.museum\",\n \"bale.museum\",\n \"baltimore.museum\",\n \"barcelona.museum\",\n \"baseball.museum\",\n \"basel.museum\",\n \"baths.museum\",\n \"bauern.museum\",\n \"beauxarts.museum\",\n \"beeldengeluid.museum\",\n \"bellevue.museum\",\n \"bergbau.museum\",\n \"berkeley.museum\",\n \"berlin.museum\",\n \"bern.museum\",\n \"bible.museum\",\n \"bilbao.museum\",\n \"bill.museum\",\n \"birdart.museum\",\n \"birthplace.museum\",\n \"bonn.museum\",\n \"boston.museum\",\n \"botanical.museum\",\n \"botanicalgarden.museum\",\n \"botanicgarden.museum\",\n \"botany.museum\",\n \"brandywinevalley.museum\",\n \"brasil.museum\",\n \"bristol.museum\",\n \"british.museum\",\n \"britishcolumbia.museum\",\n \"broadcast.museum\",\n \"brunel.museum\",\n \"brussel.museum\",\n \"brussels.museum\",\n \"bruxelles.museum\",\n \"building.museum\",\n \"burghof.museum\",\n \"bus.museum\",\n \"bushey.museum\",\n \"cadaques.museum\",\n \"california.museum\",\n \"cambridge.museum\",\n \"can.museum\",\n \"canada.museum\",\n \"capebreton.museum\",\n \"carrier.museum\",\n \"cartoonart.museum\",\n \"casadelamoneda.museum\",\n \"castle.museum\",\n \"castres.museum\",\n \"celtic.museum\",\n \"center.museum\",\n \"chattanooga.museum\",\n \"cheltenham.museum\",\n \"chesapeakebay.museum\",\n \"chicago.museum\",\n \"children.museum\",\n \"childrens.museum\",\n \"childrensgarden.museum\",\n \"chiropractic.museum\",\n \"chocolate.museum\",\n \"christiansburg.museum\",\n \"cincinnati.museum\",\n \"cinema.museum\",\n \"circus.museum\",\n \"civilisation.museum\",\n \"civilization.museum\",\n \"civilwar.museum\",\n \"clinton.museum\",\n \"clock.museum\",\n \"coal.museum\",\n \"coastaldefence.museum\",\n \"cody.museum\",\n \"coldwar.museum\",\n \"collection.museum\",\n \"colonialwilliamsburg.museum\",\n \"coloradoplateau.museum\",\n \"columbia.museum\",\n \"columbus.museum\",\n \"communication.museum\",\n \"communications.museum\",\n \"community.museum\",\n \"computer.museum\",\n \"computerhistory.museum\",\n \"comunica\\xE7\\xF5es.museum\",\n \"contemporary.museum\",\n \"contemporaryart.museum\",\n \"convent.museum\",\n \"copenhagen.museum\",\n \"corporation.museum\",\n \"correios-e-telecomunica\\xE7\\xF5es.museum\",\n \"corvette.museum\",\n \"costume.museum\",\n \"countryestate.museum\",\n \"county.museum\",\n \"crafts.museum\",\n \"cranbrook.museum\",\n \"creation.museum\",\n \"cultural.museum\",\n \"culturalcenter.museum\",\n \"culture.museum\",\n \"cyber.museum\",\n \"cymru.museum\",\n \"dali.museum\",\n \"dallas.museum\",\n \"database.museum\",\n \"ddr.museum\",\n \"decorativearts.museum\",\n \"delaware.museum\",\n \"delmenhorst.museum\",\n \"denmark.museum\",\n \"depot.museum\",\n \"design.museum\",\n \"detroit.museum\",\n \"dinosaur.museum\",\n \"discovery.museum\",\n \"dolls.museum\",\n \"donostia.museum\",\n \"durham.museum\",\n \"eastafrica.museum\",\n \"eastcoast.museum\",\n \"education.museum\",\n \"educational.museum\",\n \"egyptian.museum\",\n \"eisenbahn.museum\",\n \"elburg.museum\",\n \"elvendrell.museum\",\n \"embroidery.museum\",\n \"encyclopedic.museum\",\n \"england.museum\",\n \"entomology.museum\",\n \"environment.museum\",\n \"environmentalconservation.museum\",\n \"epilepsy.museum\",\n \"essex.museum\",\n \"estate.museum\",\n \"ethnology.museum\",\n \"exeter.museum\",\n \"exhibition.museum\",\n \"family.museum\",\n \"farm.museum\",\n \"farmequipment.museum\",\n \"farmers.museum\",\n \"farmstead.museum\",\n \"field.museum\",\n \"figueres.museum\",\n \"filatelia.museum\",\n \"film.museum\",\n \"fineart.museum\",\n \"finearts.museum\",\n \"finland.museum\",\n \"flanders.museum\",\n \"florida.museum\",\n \"force.museum\",\n \"fortmissoula.museum\",\n \"fortworth.museum\",\n \"foundation.museum\",\n \"francaise.museum\",\n \"frankfurt.museum\",\n \"franziskaner.museum\",\n \"freemasonry.museum\",\n \"freiburg.museum\",\n \"fribourg.museum\",\n \"frog.museum\",\n \"fundacio.museum\",\n \"furniture.museum\",\n \"gallery.museum\",\n \"garden.museum\",\n \"gateway.museum\",\n \"geelvinck.museum\",\n \"gemological.museum\",\n \"geology.museum\",\n \"georgia.museum\",\n \"giessen.museum\",\n \"glas.museum\",\n \"glass.museum\",\n \"gorge.museum\",\n \"grandrapids.museum\",\n \"graz.museum\",\n \"guernsey.museum\",\n \"halloffame.museum\",\n \"hamburg.museum\",\n \"handson.museum\",\n \"harvestcelebration.museum\",\n \"hawaii.museum\",\n \"health.museum\",\n \"heimatunduhren.museum\",\n \"hellas.museum\",\n \"helsinki.museum\",\n \"hembygdsforbund.museum\",\n \"heritage.museum\",\n \"histoire.museum\",\n \"historical.museum\",\n \"historicalsociety.museum\",\n \"historichouses.museum\",\n \"historisch.museum\",\n \"historisches.museum\",\n \"history.museum\",\n \"historyofscience.museum\",\n \"horology.museum\",\n \"house.museum\",\n \"humanities.museum\",\n \"illustration.museum\",\n \"imageandsound.museum\",\n \"indian.museum\",\n \"indiana.museum\",\n \"indianapolis.museum\",\n \"indianmarket.museum\",\n \"intelligence.museum\",\n \"interactive.museum\",\n \"iraq.museum\",\n \"iron.museum\",\n \"isleofman.museum\",\n \"jamison.museum\",\n \"jefferson.museum\",\n \"jerusalem.museum\",\n \"jewelry.museum\",\n \"jewish.museum\",\n \"jewishart.museum\",\n \"jfk.museum\",\n \"journalism.museum\",\n \"judaica.museum\",\n \"judygarland.museum\",\n \"juedisches.museum\",\n \"juif.museum\",\n \"karate.museum\",\n \"karikatur.museum\",\n \"kids.museum\",\n \"koebenhavn.museum\",\n \"koeln.museum\",\n \"kunst.museum\",\n \"kunstsammlung.museum\",\n \"kunstunddesign.museum\",\n \"labor.museum\",\n \"labour.museum\",\n \"lajolla.museum\",\n \"lancashire.museum\",\n \"landes.museum\",\n \"lans.museum\",\n \"l\\xE4ns.museum\",\n \"larsson.museum\",\n \"lewismiller.museum\",\n \"lincoln.museum\",\n \"linz.museum\",\n \"living.museum\",\n \"livinghistory.museum\",\n \"localhistory.museum\",\n \"london.museum\",\n \"losangeles.museum\",\n \"louvre.museum\",\n \"loyalist.museum\",\n \"lucerne.museum\",\n \"luxembourg.museum\",\n \"luzern.museum\",\n \"mad.museum\",\n \"madrid.museum\",\n \"mallorca.museum\",\n \"manchester.museum\",\n \"mansion.museum\",\n \"mansions.museum\",\n \"manx.museum\",\n \"marburg.museum\",\n \"maritime.museum\",\n \"maritimo.museum\",\n \"maryland.museum\",\n \"marylhurst.museum\",\n \"media.museum\",\n \"medical.museum\",\n \"medizinhistorisches.museum\",\n \"meeres.museum\",\n \"memorial.museum\",\n \"mesaverde.museum\",\n \"michigan.museum\",\n \"midatlantic.museum\",\n \"military.museum\",\n \"mill.museum\",\n \"miners.museum\",\n \"mining.museum\",\n \"minnesota.museum\",\n \"missile.museum\",\n \"missoula.museum\",\n \"modern.museum\",\n \"moma.museum\",\n \"money.museum\",\n \"monmouth.museum\",\n \"monticello.museum\",\n \"montreal.museum\",\n \"moscow.museum\",\n \"motorcycle.museum\",\n \"muenchen.museum\",\n \"muenster.museum\",\n \"mulhouse.museum\",\n \"muncie.museum\",\n \"museet.museum\",\n \"museumcenter.museum\",\n \"museumvereniging.museum\",\n \"music.museum\",\n \"national.museum\",\n \"nationalfirearms.museum\",\n \"nationalheritage.museum\",\n \"nativeamerican.museum\",\n \"naturalhistory.museum\",\n \"naturalhistorymuseum.museum\",\n \"naturalsciences.museum\",\n \"nature.museum\",\n \"naturhistorisches.museum\",\n \"natuurwetenschappen.museum\",\n \"naumburg.museum\",\n \"naval.museum\",\n \"nebraska.museum\",\n \"neues.museum\",\n \"newhampshire.museum\",\n \"newjersey.museum\",\n \"newmexico.museum\",\n \"newport.museum\",\n \"newspaper.museum\",\n \"newyork.museum\",\n \"niepce.museum\",\n \"norfolk.museum\",\n \"north.museum\",\n \"nrw.museum\",\n \"nyc.museum\",\n \"nyny.museum\",\n \"oceanographic.museum\",\n \"oceanographique.museum\",\n \"omaha.museum\",\n \"online.museum\",\n \"ontario.museum\",\n \"openair.museum\",\n \"oregon.museum\",\n \"oregontrail.museum\",\n \"otago.museum\",\n \"oxford.museum\",\n \"pacific.museum\",\n \"paderborn.museum\",\n \"palace.museum\",\n \"paleo.museum\",\n \"palmsprings.museum\",\n \"panama.museum\",\n \"paris.museum\",\n \"pasadena.museum\",\n \"pharmacy.museum\",\n \"philadelphia.museum\",\n \"philadelphiaarea.museum\",\n \"philately.museum\",\n \"phoenix.museum\",\n \"photography.museum\",\n \"pilots.museum\",\n \"pittsburgh.museum\",\n \"planetarium.museum\",\n \"plantation.museum\",\n \"plants.museum\",\n \"plaza.museum\",\n \"portal.museum\",\n \"portland.museum\",\n \"portlligat.museum\",\n \"posts-and-telecommunications.museum\",\n \"preservation.museum\",\n \"presidio.museum\",\n \"press.museum\",\n \"project.museum\",\n \"public.museum\",\n \"pubol.museum\",\n \"quebec.museum\",\n \"railroad.museum\",\n \"railway.museum\",\n \"research.museum\",\n \"resistance.museum\",\n \"riodejaneiro.museum\",\n \"rochester.museum\",\n \"rockart.museum\",\n \"roma.museum\",\n \"russia.museum\",\n \"saintlouis.museum\",\n \"salem.museum\",\n \"salvadordali.museum\",\n \"salzburg.museum\",\n \"sandiego.museum\",\n \"sanfrancisco.museum\",\n \"santabarbara.museum\",\n \"santacruz.museum\",\n \"santafe.museum\",\n \"saskatchewan.museum\",\n \"satx.museum\",\n \"savannahga.museum\",\n \"schlesisches.museum\",\n \"schoenbrunn.museum\",\n \"schokoladen.museum\",\n \"school.museum\",\n \"schweiz.museum\",\n \"science.museum\",\n \"scienceandhistory.museum\",\n \"scienceandindustry.museum\",\n \"sciencecenter.museum\",\n \"sciencecenters.museum\",\n \"science-fiction.museum\",\n \"sciencehistory.museum\",\n \"sciences.museum\",\n \"sciencesnaturelles.museum\",\n \"scotland.museum\",\n \"seaport.museum\",\n \"settlement.museum\",\n \"settlers.museum\",\n \"shell.museum\",\n \"sherbrooke.museum\",\n \"sibenik.museum\",\n \"silk.museum\",\n \"ski.museum\",\n \"skole.museum\",\n \"society.museum\",\n \"sologne.museum\",\n \"soundandvision.museum\",\n \"southcarolina.museum\",\n \"southwest.museum\",\n \"space.museum\",\n \"spy.museum\",\n \"square.museum\",\n \"stadt.museum\",\n \"stalbans.museum\",\n \"starnberg.museum\",\n \"state.museum\",\n \"stateofdelaware.museum\",\n \"station.museum\",\n \"steam.museum\",\n \"steiermark.museum\",\n \"stjohn.museum\",\n \"stockholm.museum\",\n \"stpetersburg.museum\",\n \"stuttgart.museum\",\n \"suisse.museum\",\n \"surgeonshall.museum\",\n \"surrey.museum\",\n \"svizzera.museum\",\n \"sweden.museum\",\n \"sydney.museum\",\n \"tank.museum\",\n \"tcm.museum\",\n \"technology.museum\",\n \"telekommunikation.museum\",\n \"television.museum\",\n \"texas.museum\",\n \"textile.museum\",\n \"theater.museum\",\n \"time.museum\",\n \"timekeeping.museum\",\n \"topology.museum\",\n \"torino.museum\",\n \"touch.museum\",\n \"town.museum\",\n \"transport.museum\",\n \"tree.museum\",\n \"trolley.museum\",\n \"trust.museum\",\n \"trustee.museum\",\n \"uhren.museum\",\n \"ulm.museum\",\n \"undersea.museum\",\n \"university.museum\",\n \"usa.museum\",\n \"usantiques.museum\",\n \"usarts.museum\",\n \"uscountryestate.museum\",\n \"usculture.museum\",\n \"usdecorativearts.museum\",\n \"usgarden.museum\",\n \"ushistory.museum\",\n \"ushuaia.museum\",\n \"uslivinghistory.museum\",\n \"utah.museum\",\n \"uvic.museum\",\n \"valley.museum\",\n \"vantaa.museum\",\n \"versailles.museum\",\n \"viking.museum\",\n \"village.museum\",\n \"virginia.museum\",\n \"virtual.museum\",\n \"virtuel.museum\",\n \"vlaanderen.museum\",\n \"volkenkunde.museum\",\n \"wales.museum\",\n \"wallonie.museum\",\n \"war.museum\",\n \"washingtondc.museum\",\n \"watchandclock.museum\",\n \"watch-and-clock.museum\",\n \"western.museum\",\n \"westfalen.museum\",\n \"whaling.museum\",\n \"wildlife.museum\",\n \"williamsburg.museum\",\n \"windmill.museum\",\n \"workshop.museum\",\n \"york.museum\",\n \"yorkshire.museum\",\n \"yosemite.museum\",\n \"youth.museum\",\n \"zoological.museum\",\n \"zoology.museum\",\n \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD.museum\",\n \"\\u0438\\u043A\\u043E\\u043C.museum\",\n \"mv\",\n \"aero.mv\",\n \"biz.mv\",\n \"com.mv\",\n \"coop.mv\",\n \"edu.mv\",\n \"gov.mv\",\n \"info.mv\",\n \"int.mv\",\n \"mil.mv\",\n \"museum.mv\",\n \"name.mv\",\n \"net.mv\",\n \"org.mv\",\n \"pro.mv\",\n \"mw\",\n \"ac.mw\",\n \"biz.mw\",\n \"co.mw\",\n \"com.mw\",\n \"coop.mw\",\n \"edu.mw\",\n \"gov.mw\",\n \"int.mw\",\n \"museum.mw\",\n \"net.mw\",\n \"org.mw\",\n \"mx\",\n \"com.mx\",\n \"org.mx\",\n \"gob.mx\",\n \"edu.mx\",\n \"net.mx\",\n \"my\",\n \"biz.my\",\n \"com.my\",\n \"edu.my\",\n \"gov.my\",\n \"mil.my\",\n \"name.my\",\n \"net.my\",\n \"org.my\",\n \"mz\",\n \"ac.mz\",\n \"adv.mz\",\n \"co.mz\",\n \"edu.mz\",\n \"gov.mz\",\n \"mil.mz\",\n \"net.mz\",\n \"org.mz\",\n \"na\",\n \"info.na\",\n \"pro.na\",\n \"name.na\",\n \"school.na\",\n \"or.na\",\n \"dr.na\",\n \"us.na\",\n \"mx.na\",\n \"ca.na\",\n \"in.na\",\n \"cc.na\",\n \"tv.na\",\n \"ws.na\",\n \"mobi.na\",\n \"co.na\",\n \"com.na\",\n \"org.na\",\n \"name\",\n \"nc\",\n \"asso.nc\",\n \"nom.nc\",\n \"ne\",\n \"net\",\n \"nf\",\n \"com.nf\",\n \"net.nf\",\n \"per.nf\",\n \"rec.nf\",\n \"web.nf\",\n \"arts.nf\",\n \"firm.nf\",\n \"info.nf\",\n \"other.nf\",\n \"store.nf\",\n \"ng\",\n \"com.ng\",\n \"edu.ng\",\n \"gov.ng\",\n \"i.ng\",\n \"mil.ng\",\n \"mobi.ng\",\n \"name.ng\",\n \"net.ng\",\n \"org.ng\",\n \"sch.ng\",\n \"ni\",\n \"ac.ni\",\n \"biz.ni\",\n \"co.ni\",\n \"com.ni\",\n \"edu.ni\",\n \"gob.ni\",\n \"in.ni\",\n \"info.ni\",\n \"int.ni\",\n \"mil.ni\",\n \"net.ni\",\n \"nom.ni\",\n \"org.ni\",\n \"web.ni\",\n \"nl\",\n \"no\",\n \"fhs.no\",\n \"vgs.no\",\n \"fylkesbibl.no\",\n \"folkebibl.no\",\n \"museum.no\",\n \"idrett.no\",\n \"priv.no\",\n \"mil.no\",\n \"stat.no\",\n \"dep.no\",\n \"kommune.no\",\n \"herad.no\",\n \"aa.no\",\n \"ah.no\",\n \"bu.no\",\n \"fm.no\",\n \"hl.no\",\n \"hm.no\",\n \"jan-mayen.no\",\n \"mr.no\",\n \"nl.no\",\n \"nt.no\",\n \"of.no\",\n \"ol.no\",\n \"oslo.no\",\n \"rl.no\",\n \"sf.no\",\n \"st.no\",\n \"svalbard.no\",\n \"tm.no\",\n \"tr.no\",\n \"va.no\",\n \"vf.no\",\n \"gs.aa.no\",\n \"gs.ah.no\",\n \"gs.bu.no\",\n \"gs.fm.no\",\n \"gs.hl.no\",\n \"gs.hm.no\",\n \"gs.jan-mayen.no\",\n \"gs.mr.no\",\n \"gs.nl.no\",\n \"gs.nt.no\",\n \"gs.of.no\",\n \"gs.ol.no\",\n \"gs.oslo.no\",\n \"gs.rl.no\",\n \"gs.sf.no\",\n \"gs.st.no\",\n \"gs.svalbard.no\",\n \"gs.tm.no\",\n \"gs.tr.no\",\n \"gs.va.no\",\n \"gs.vf.no\",\n \"akrehamn.no\",\n \"\\xE5krehamn.no\",\n \"algard.no\",\n \"\\xE5lg\\xE5rd.no\",\n \"arna.no\",\n \"brumunddal.no\",\n \"bryne.no\",\n \"bronnoysund.no\",\n \"br\\xF8nn\\xF8ysund.no\",\n \"drobak.no\",\n \"dr\\xF8bak.no\",\n \"egersund.no\",\n \"fetsund.no\",\n \"floro.no\",\n \"flor\\xF8.no\",\n \"fredrikstad.no\",\n \"hokksund.no\",\n \"honefoss.no\",\n \"h\\xF8nefoss.no\",\n \"jessheim.no\",\n \"jorpeland.no\",\n \"j\\xF8rpeland.no\",\n \"kirkenes.no\",\n \"kopervik.no\",\n \"krokstadelva.no\",\n \"langevag.no\",\n \"langev\\xE5g.no\",\n \"leirvik.no\",\n \"mjondalen.no\",\n \"mj\\xF8ndalen.no\",\n \"mo-i-rana.no\",\n \"mosjoen.no\",\n \"mosj\\xF8en.no\",\n \"nesoddtangen.no\",\n \"orkanger.no\",\n \"osoyro.no\",\n \"os\\xF8yro.no\",\n \"raholt.no\",\n \"r\\xE5holt.no\",\n \"sandnessjoen.no\",\n \"sandnessj\\xF8en.no\",\n \"skedsmokorset.no\",\n \"slattum.no\",\n \"spjelkavik.no\",\n \"stathelle.no\",\n \"stavern.no\",\n \"stjordalshalsen.no\",\n \"stj\\xF8rdalshalsen.no\",\n \"tananger.no\",\n \"tranby.no\",\n \"vossevangen.no\",\n \"afjord.no\",\n \"\\xE5fjord.no\",\n \"agdenes.no\",\n \"al.no\",\n \"\\xE5l.no\",\n \"alesund.no\",\n \"\\xE5lesund.no\",\n \"alstahaug.no\",\n \"alta.no\",\n \"\\xE1lt\\xE1.no\",\n \"alaheadju.no\",\n \"\\xE1laheadju.no\",\n \"alvdal.no\",\n \"amli.no\",\n \"\\xE5mli.no\",\n \"amot.no\",\n \"\\xE5mot.no\",\n \"andebu.no\",\n \"andoy.no\",\n \"and\\xF8y.no\",\n \"andasuolo.no\",\n \"ardal.no\",\n \"\\xE5rdal.no\",\n \"aremark.no\",\n \"arendal.no\",\n \"\\xE5s.no\",\n \"aseral.no\",\n \"\\xE5seral.no\",\n \"asker.no\",\n \"askim.no\",\n \"askvoll.no\",\n \"askoy.no\",\n \"ask\\xF8y.no\",\n \"asnes.no\",\n \"\\xE5snes.no\",\n \"audnedaln.no\",\n \"aukra.no\",\n \"aure.no\",\n \"aurland.no\",\n \"aurskog-holand.no\",\n \"aurskog-h\\xF8land.no\",\n \"austevoll.no\",\n \"austrheim.no\",\n \"averoy.no\",\n \"aver\\xF8y.no\",\n \"balestrand.no\",\n \"ballangen.no\",\n \"balat.no\",\n \"b\\xE1l\\xE1t.no\",\n \"balsfjord.no\",\n \"bahccavuotna.no\",\n \"b\\xE1hccavuotna.no\",\n \"bamble.no\",\n \"bardu.no\",\n \"beardu.no\",\n \"beiarn.no\",\n \"bajddar.no\",\n \"b\\xE1jddar.no\",\n \"baidar.no\",\n \"b\\xE1id\\xE1r.no\",\n \"berg.no\",\n \"bergen.no\",\n \"berlevag.no\",\n \"berlev\\xE5g.no\",\n \"bearalvahki.no\",\n \"bearalv\\xE1hki.no\",\n \"bindal.no\",\n \"birkenes.no\",\n \"bjarkoy.no\",\n \"bjark\\xF8y.no\",\n \"bjerkreim.no\",\n \"bjugn.no\",\n \"bodo.no\",\n \"bod\\xF8.no\",\n \"badaddja.no\",\n \"b\\xE5d\\xE5ddj\\xE5.no\",\n \"budejju.no\",\n \"bokn.no\",\n \"bremanger.no\",\n \"bronnoy.no\",\n \"br\\xF8nn\\xF8y.no\",\n \"bygland.no\",\n \"bykle.no\",\n \"barum.no\",\n \"b\\xE6rum.no\",\n \"bo.telemark.no\",\n \"b\\xF8.telemark.no\",\n \"bo.nordland.no\",\n \"b\\xF8.nordland.no\",\n \"bievat.no\",\n \"biev\\xE1t.no\",\n \"bomlo.no\",\n \"b\\xF8mlo.no\",\n \"batsfjord.no\",\n \"b\\xE5tsfjord.no\",\n \"bahcavuotna.no\",\n \"b\\xE1hcavuotna.no\",\n \"dovre.no\",\n \"drammen.no\",\n \"drangedal.no\",\n \"dyroy.no\",\n \"dyr\\xF8y.no\",\n \"donna.no\",\n \"d\\xF8nna.no\",\n \"eid.no\",\n \"eidfjord.no\",\n \"eidsberg.no\",\n \"eidskog.no\",\n \"eidsvoll.no\",\n \"eigersund.no\",\n \"elverum.no\",\n \"enebakk.no\",\n \"engerdal.no\",\n \"etne.no\",\n \"etnedal.no\",\n \"evenes.no\",\n \"evenassi.no\",\n \"even\\xE1\\u0161\\u0161i.no\",\n \"evje-og-hornnes.no\",\n \"farsund.no\",\n \"fauske.no\",\n \"fuossko.no\",\n \"fuoisku.no\",\n \"fedje.no\",\n \"fet.no\",\n \"finnoy.no\",\n \"finn\\xF8y.no\",\n \"fitjar.no\",\n \"fjaler.no\",\n \"fjell.no\",\n \"flakstad.no\",\n \"flatanger.no\",\n \"flekkefjord.no\",\n \"flesberg.no\",\n \"flora.no\",\n \"fla.no\",\n \"fl\\xE5.no\",\n \"folldal.no\",\n \"forsand.no\",\n \"fosnes.no\",\n \"frei.no\",\n \"frogn.no\",\n \"froland.no\",\n \"frosta.no\",\n \"frana.no\",\n \"fr\\xE6na.no\",\n \"froya.no\",\n \"fr\\xF8ya.no\",\n \"fusa.no\",\n \"fyresdal.no\",\n \"forde.no\",\n \"f\\xF8rde.no\",\n \"gamvik.no\",\n \"gangaviika.no\",\n \"g\\xE1\\u014Bgaviika.no\",\n \"gaular.no\",\n \"gausdal.no\",\n \"gildeskal.no\",\n \"gildesk\\xE5l.no\",\n \"giske.no\",\n \"gjemnes.no\",\n \"gjerdrum.no\",\n \"gjerstad.no\",\n \"gjesdal.no\",\n \"gjovik.no\",\n \"gj\\xF8vik.no\",\n \"gloppen.no\",\n \"gol.no\",\n \"gran.no\",\n \"grane.no\",\n \"granvin.no\",\n \"gratangen.no\",\n \"grimstad.no\",\n \"grong.no\",\n \"kraanghke.no\",\n \"kr\\xE5anghke.no\",\n \"grue.no\",\n \"gulen.no\",\n \"hadsel.no\",\n \"halden.no\",\n \"halsa.no\",\n \"hamar.no\",\n \"hamaroy.no\",\n \"habmer.no\",\n \"h\\xE1bmer.no\",\n \"hapmir.no\",\n \"h\\xE1pmir.no\",\n \"hammerfest.no\",\n \"hammarfeasta.no\",\n \"h\\xE1mm\\xE1rfeasta.no\",\n \"haram.no\",\n \"hareid.no\",\n \"harstad.no\",\n \"hasvik.no\",\n \"aknoluokta.no\",\n \"\\xE1k\\u014Boluokta.no\",\n \"hattfjelldal.no\",\n \"aarborte.no\",\n \"haugesund.no\",\n \"hemne.no\",\n \"hemnes.no\",\n \"hemsedal.no\",\n \"heroy.more-og-romsdal.no\",\n \"her\\xF8y.m\\xF8re-og-romsdal.no\",\n \"heroy.nordland.no\",\n \"her\\xF8y.nordland.no\",\n \"hitra.no\",\n \"hjartdal.no\",\n \"hjelmeland.no\",\n \"hobol.no\",\n \"hob\\xF8l.no\",\n \"hof.no\",\n \"hol.no\",\n \"hole.no\",\n \"holmestrand.no\",\n \"holtalen.no\",\n \"holt\\xE5len.no\",\n \"hornindal.no\",\n \"horten.no\",\n \"hurdal.no\",\n \"hurum.no\",\n \"hvaler.no\",\n \"hyllestad.no\",\n \"hagebostad.no\",\n \"h\\xE6gebostad.no\",\n \"hoyanger.no\",\n \"h\\xF8yanger.no\",\n \"hoylandet.no\",\n \"h\\xF8ylandet.no\",\n \"ha.no\",\n \"h\\xE5.no\",\n \"ibestad.no\",\n \"inderoy.no\",\n \"inder\\xF8y.no\",\n \"iveland.no\",\n \"jevnaker.no\",\n \"jondal.no\",\n \"jolster.no\",\n \"j\\xF8lster.no\",\n \"karasjok.no\",\n \"karasjohka.no\",\n \"k\\xE1r\\xE1\\u0161johka.no\",\n \"karlsoy.no\",\n \"galsa.no\",\n \"g\\xE1ls\\xE1.no\",\n \"karmoy.no\",\n \"karm\\xF8y.no\",\n \"kautokeino.no\",\n \"guovdageaidnu.no\",\n \"klepp.no\",\n \"klabu.no\",\n \"kl\\xE6bu.no\",\n \"kongsberg.no\",\n \"kongsvinger.no\",\n \"kragero.no\",\n \"krager\\xF8.no\",\n \"kristiansand.no\",\n \"kristiansund.no\",\n \"krodsherad.no\",\n \"kr\\xF8dsherad.no\",\n \"kvalsund.no\",\n \"rahkkeravju.no\",\n \"r\\xE1hkker\\xE1vju.no\",\n \"kvam.no\",\n \"kvinesdal.no\",\n \"kvinnherad.no\",\n \"kviteseid.no\",\n \"kvitsoy.no\",\n \"kvits\\xF8y.no\",\n \"kvafjord.no\",\n \"kv\\xE6fjord.no\",\n \"giehtavuoatna.no\",\n \"kvanangen.no\",\n \"kv\\xE6nangen.no\",\n \"navuotna.no\",\n \"n\\xE1vuotna.no\",\n \"kafjord.no\",\n \"k\\xE5fjord.no\",\n \"gaivuotna.no\",\n \"g\\xE1ivuotna.no\",\n \"larvik.no\",\n \"lavangen.no\",\n \"lavagis.no\",\n \"loabat.no\",\n \"loab\\xE1t.no\",\n \"lebesby.no\",\n \"davvesiida.no\",\n \"leikanger.no\",\n \"leirfjord.no\",\n \"leka.no\",\n \"leksvik.no\",\n \"lenvik.no\",\n \"leangaviika.no\",\n \"lea\\u014Bgaviika.no\",\n \"lesja.no\",\n \"levanger.no\",\n \"lier.no\",\n \"lierne.no\",\n \"lillehammer.no\",\n \"lillesand.no\",\n \"lindesnes.no\",\n \"lindas.no\",\n \"lind\\xE5s.no\",\n \"lom.no\",\n \"loppa.no\",\n \"lahppi.no\",\n \"l\\xE1hppi.no\",\n \"lund.no\",\n \"lunner.no\",\n \"luroy.no\",\n \"lur\\xF8y.no\",\n \"luster.no\",\n \"lyngdal.no\",\n \"lyngen.no\",\n \"ivgu.no\",\n \"lardal.no\",\n \"lerdal.no\",\n \"l\\xE6rdal.no\",\n \"lodingen.no\",\n \"l\\xF8dingen.no\",\n \"lorenskog.no\",\n \"l\\xF8renskog.no\",\n \"loten.no\",\n \"l\\xF8ten.no\",\n \"malvik.no\",\n \"masoy.no\",\n \"m\\xE5s\\xF8y.no\",\n \"muosat.no\",\n \"muos\\xE1t.no\",\n \"mandal.no\",\n \"marker.no\",\n \"marnardal.no\",\n \"masfjorden.no\",\n \"meland.no\",\n \"meldal.no\",\n \"melhus.no\",\n \"meloy.no\",\n \"mel\\xF8y.no\",\n \"meraker.no\",\n \"mer\\xE5ker.no\",\n \"moareke.no\",\n \"mo\\xE5reke.no\",\n \"midsund.no\",\n \"midtre-gauldal.no\",\n \"modalen.no\",\n \"modum.no\",\n \"molde.no\",\n \"moskenes.no\",\n \"moss.no\",\n \"mosvik.no\",\n \"malselv.no\",\n \"m\\xE5lselv.no\",\n \"malatvuopmi.no\",\n \"m\\xE1latvuopmi.no\",\n \"namdalseid.no\",\n \"aejrie.no\",\n \"namsos.no\",\n \"namsskogan.no\",\n \"naamesjevuemie.no\",\n \"n\\xE5\\xE5mesjevuemie.no\",\n \"laakesvuemie.no\",\n \"nannestad.no\",\n \"narvik.no\",\n \"narviika.no\",\n \"naustdal.no\",\n \"nedre-eiker.no\",\n \"nes.akershus.no\",\n \"nes.buskerud.no\",\n \"nesna.no\",\n \"nesodden.no\",\n \"nesseby.no\",\n \"unjarga.no\",\n \"unj\\xE1rga.no\",\n \"nesset.no\",\n \"nissedal.no\",\n \"nittedal.no\",\n \"nord-aurdal.no\",\n \"nord-fron.no\",\n \"nord-odal.no\",\n \"norddal.no\",\n \"nordkapp.no\",\n \"davvenjarga.no\",\n \"davvenj\\xE1rga.no\",\n \"nordre-land.no\",\n \"nordreisa.no\",\n \"raisa.no\",\n \"r\\xE1isa.no\",\n \"nore-og-uvdal.no\",\n \"notodden.no\",\n \"naroy.no\",\n \"n\\xE6r\\xF8y.no\",\n \"notteroy.no\",\n \"n\\xF8tter\\xF8y.no\",\n \"odda.no\",\n \"oksnes.no\",\n \"\\xF8ksnes.no\",\n \"oppdal.no\",\n \"oppegard.no\",\n \"oppeg\\xE5rd.no\",\n \"orkdal.no\",\n \"orland.no\",\n \"\\xF8rland.no\",\n \"orskog.no\",\n \"\\xF8rskog.no\",\n \"orsta.no\",\n \"\\xF8rsta.no\",\n \"os.hedmark.no\",\n \"os.hordaland.no\",\n \"osen.no\",\n \"osteroy.no\",\n \"oster\\xF8y.no\",\n \"ostre-toten.no\",\n \"\\xF8stre-toten.no\",\n \"overhalla.no\",\n \"ovre-eiker.no\",\n \"\\xF8vre-eiker.no\",\n \"oyer.no\",\n \"\\xF8yer.no\",\n \"oygarden.no\",\n \"\\xF8ygarden.no\",\n \"oystre-slidre.no\",\n \"\\xF8ystre-slidre.no\",\n \"porsanger.no\",\n \"porsangu.no\",\n \"pors\\xE1\\u014Bgu.no\",\n \"porsgrunn.no\",\n \"radoy.no\",\n \"rad\\xF8y.no\",\n \"rakkestad.no\",\n \"rana.no\",\n \"ruovat.no\",\n \"randaberg.no\",\n \"rauma.no\",\n \"rendalen.no\",\n \"rennebu.no\",\n \"rennesoy.no\",\n \"rennes\\xF8y.no\",\n \"rindal.no\",\n \"ringebu.no\",\n \"ringerike.no\",\n \"ringsaker.no\",\n \"rissa.no\",\n \"risor.no\",\n \"ris\\xF8r.no\",\n \"roan.no\",\n \"rollag.no\",\n \"rygge.no\",\n \"ralingen.no\",\n \"r\\xE6lingen.no\",\n \"rodoy.no\",\n \"r\\xF8d\\xF8y.no\",\n \"romskog.no\",\n \"r\\xF8mskog.no\",\n \"roros.no\",\n \"r\\xF8ros.no\",\n \"rost.no\",\n \"r\\xF8st.no\",\n \"royken.no\",\n \"r\\xF8yken.no\",\n \"royrvik.no\",\n \"r\\xF8yrvik.no\",\n \"rade.no\",\n \"r\\xE5de.no\",\n \"salangen.no\",\n \"siellak.no\",\n \"saltdal.no\",\n \"salat.no\",\n \"s\\xE1l\\xE1t.no\",\n \"s\\xE1lat.no\",\n \"samnanger.no\",\n \"sande.more-og-romsdal.no\",\n \"sande.m\\xF8re-og-romsdal.no\",\n \"sande.vestfold.no\",\n \"sandefjord.no\",\n \"sandnes.no\",\n \"sandoy.no\",\n \"sand\\xF8y.no\",\n \"sarpsborg.no\",\n \"sauda.no\",\n \"sauherad.no\",\n \"sel.no\",\n \"selbu.no\",\n \"selje.no\",\n \"seljord.no\",\n \"sigdal.no\",\n \"siljan.no\",\n \"sirdal.no\",\n \"skaun.no\",\n \"skedsmo.no\",\n \"ski.no\",\n \"skien.no\",\n \"skiptvet.no\",\n \"skjervoy.no\",\n \"skjerv\\xF8y.no\",\n \"skierva.no\",\n \"skierv\\xE1.no\",\n \"skjak.no\",\n \"skj\\xE5k.no\",\n \"skodje.no\",\n \"skanland.no\",\n \"sk\\xE5nland.no\",\n \"skanit.no\",\n \"sk\\xE1nit.no\",\n \"smola.no\",\n \"sm\\xF8la.no\",\n \"snillfjord.no\",\n \"snasa.no\",\n \"sn\\xE5sa.no\",\n \"snoasa.no\",\n \"snaase.no\",\n \"sn\\xE5ase.no\",\n \"sogndal.no\",\n \"sokndal.no\",\n \"sola.no\",\n \"solund.no\",\n \"songdalen.no\",\n \"sortland.no\",\n \"spydeberg.no\",\n \"stange.no\",\n \"stavanger.no\",\n \"steigen.no\",\n \"steinkjer.no\",\n \"stjordal.no\",\n \"stj\\xF8rdal.no\",\n \"stokke.no\",\n \"stor-elvdal.no\",\n \"stord.no\",\n \"stordal.no\",\n \"storfjord.no\",\n \"omasvuotna.no\",\n \"strand.no\",\n \"stranda.no\",\n \"stryn.no\",\n \"sula.no\",\n \"suldal.no\",\n \"sund.no\",\n \"sunndal.no\",\n \"surnadal.no\",\n \"sveio.no\",\n \"svelvik.no\",\n \"sykkylven.no\",\n \"sogne.no\",\n \"s\\xF8gne.no\",\n \"somna.no\",\n \"s\\xF8mna.no\",\n \"sondre-land.no\",\n \"s\\xF8ndre-land.no\",\n \"sor-aurdal.no\",\n \"s\\xF8r-aurdal.no\",\n \"sor-fron.no\",\n \"s\\xF8r-fron.no\",\n \"sor-odal.no\",\n \"s\\xF8r-odal.no\",\n \"sor-varanger.no\",\n \"s\\xF8r-varanger.no\",\n \"matta-varjjat.no\",\n \"m\\xE1tta-v\\xE1rjjat.no\",\n \"sorfold.no\",\n \"s\\xF8rfold.no\",\n \"sorreisa.no\",\n \"s\\xF8rreisa.no\",\n \"sorum.no\",\n \"s\\xF8rum.no\",\n \"tana.no\",\n \"deatnu.no\",\n \"time.no\",\n \"tingvoll.no\",\n \"tinn.no\",\n \"tjeldsund.no\",\n \"dielddanuorri.no\",\n \"tjome.no\",\n \"tj\\xF8me.no\",\n \"tokke.no\",\n \"tolga.no\",\n \"torsken.no\",\n \"tranoy.no\",\n \"tran\\xF8y.no\",\n \"tromso.no\",\n \"troms\\xF8.no\",\n \"tromsa.no\",\n \"romsa.no\",\n \"trondheim.no\",\n \"troandin.no\",\n \"trysil.no\",\n \"trana.no\",\n \"tr\\xE6na.no\",\n \"trogstad.no\",\n \"tr\\xF8gstad.no\",\n \"tvedestrand.no\",\n \"tydal.no\",\n \"tynset.no\",\n \"tysfjord.no\",\n \"divtasvuodna.no\",\n \"divttasvuotna.no\",\n \"tysnes.no\",\n \"tysvar.no\",\n \"tysv\\xE6r.no\",\n \"tonsberg.no\",\n \"t\\xF8nsberg.no\",\n \"ullensaker.no\",\n \"ullensvang.no\",\n \"ulvik.no\",\n \"utsira.no\",\n \"vadso.no\",\n \"vads\\xF8.no\",\n \"cahcesuolo.no\",\n \"\\u010D\\xE1hcesuolo.no\",\n \"vaksdal.no\",\n \"valle.no\",\n \"vang.no\",\n \"vanylven.no\",\n \"vardo.no\",\n \"vard\\xF8.no\",\n \"varggat.no\",\n \"v\\xE1rgg\\xE1t.no\",\n \"vefsn.no\",\n \"vaapste.no\",\n \"vega.no\",\n \"vegarshei.no\",\n \"veg\\xE5rshei.no\",\n \"vennesla.no\",\n \"verdal.no\",\n \"verran.no\",\n \"vestby.no\",\n \"vestnes.no\",\n \"vestre-slidre.no\",\n \"vestre-toten.no\",\n \"vestvagoy.no\",\n \"vestv\\xE5g\\xF8y.no\",\n \"vevelstad.no\",\n \"vik.no\",\n \"vikna.no\",\n \"vindafjord.no\",\n \"volda.no\",\n \"voss.no\",\n \"varoy.no\",\n \"v\\xE6r\\xF8y.no\",\n \"vagan.no\",\n \"v\\xE5gan.no\",\n \"voagat.no\",\n \"vagsoy.no\",\n \"v\\xE5gs\\xF8y.no\",\n \"vaga.no\",\n \"v\\xE5g\\xE5.no\",\n \"valer.ostfold.no\",\n \"v\\xE5ler.\\xF8stfold.no\",\n \"valer.hedmark.no\",\n \"v\\xE5ler.hedmark.no\",\n \"*.np\",\n \"nr\",\n \"biz.nr\",\n \"info.nr\",\n \"gov.nr\",\n \"edu.nr\",\n \"org.nr\",\n \"net.nr\",\n \"com.nr\",\n \"nu\",\n \"nz\",\n \"ac.nz\",\n \"co.nz\",\n \"cri.nz\",\n \"geek.nz\",\n \"gen.nz\",\n \"govt.nz\",\n \"health.nz\",\n \"iwi.nz\",\n \"kiwi.nz\",\n \"maori.nz\",\n \"mil.nz\",\n \"m\\u0101ori.nz\",\n \"net.nz\",\n \"org.nz\",\n \"parliament.nz\",\n \"school.nz\",\n \"om\",\n \"co.om\",\n \"com.om\",\n \"edu.om\",\n \"gov.om\",\n \"med.om\",\n \"museum.om\",\n \"net.om\",\n \"org.om\",\n \"pro.om\",\n \"onion\",\n \"org\",\n \"pa\",\n \"ac.pa\",\n \"gob.pa\",\n \"com.pa\",\n \"org.pa\",\n \"sld.pa\",\n \"edu.pa\",\n \"net.pa\",\n \"ing.pa\",\n \"abo.pa\",\n \"med.pa\",\n \"nom.pa\",\n \"pe\",\n \"edu.pe\",\n \"gob.pe\",\n \"nom.pe\",\n \"mil.pe\",\n \"org.pe\",\n \"com.pe\",\n \"net.pe\",\n \"pf\",\n \"com.pf\",\n \"org.pf\",\n \"edu.pf\",\n \"*.pg\",\n \"ph\",\n \"com.ph\",\n \"net.ph\",\n \"org.ph\",\n \"gov.ph\",\n \"edu.ph\",\n \"ngo.ph\",\n \"mil.ph\",\n \"i.ph\",\n \"pk\",\n \"com.pk\",\n \"net.pk\",\n \"edu.pk\",\n \"org.pk\",\n \"fam.pk\",\n \"biz.pk\",\n \"web.pk\",\n \"gov.pk\",\n \"gob.pk\",\n \"gok.pk\",\n \"gon.pk\",\n \"gop.pk\",\n \"gos.pk\",\n \"info.pk\",\n \"pl\",\n \"com.pl\",\n \"net.pl\",\n \"org.pl\",\n \"aid.pl\",\n \"agro.pl\",\n \"atm.pl\",\n \"auto.pl\",\n \"biz.pl\",\n \"edu.pl\",\n \"gmina.pl\",\n \"gsm.pl\",\n \"info.pl\",\n \"mail.pl\",\n \"miasta.pl\",\n \"media.pl\",\n \"mil.pl\",\n \"nieruchomosci.pl\",\n \"nom.pl\",\n \"pc.pl\",\n \"powiat.pl\",\n \"priv.pl\",\n \"realestate.pl\",\n \"rel.pl\",\n \"sex.pl\",\n \"shop.pl\",\n \"sklep.pl\",\n \"sos.pl\",\n \"szkola.pl\",\n \"targi.pl\",\n \"tm.pl\",\n \"tourism.pl\",\n \"travel.pl\",\n \"turystyka.pl\",\n \"gov.pl\",\n \"ap.gov.pl\",\n \"ic.gov.pl\",\n \"is.gov.pl\",\n \"us.gov.pl\",\n \"kmpsp.gov.pl\",\n \"kppsp.gov.pl\",\n \"kwpsp.gov.pl\",\n \"psp.gov.pl\",\n \"wskr.gov.pl\",\n \"kwp.gov.pl\",\n \"mw.gov.pl\",\n \"ug.gov.pl\",\n \"um.gov.pl\",\n \"umig.gov.pl\",\n \"ugim.gov.pl\",\n \"upow.gov.pl\",\n \"uw.gov.pl\",\n \"starostwo.gov.pl\",\n \"pa.gov.pl\",\n \"po.gov.pl\",\n \"psse.gov.pl\",\n \"pup.gov.pl\",\n \"rzgw.gov.pl\",\n \"sa.gov.pl\",\n \"so.gov.pl\",\n \"sr.gov.pl\",\n \"wsa.gov.pl\",\n \"sko.gov.pl\",\n \"uzs.gov.pl\",\n \"wiih.gov.pl\",\n \"winb.gov.pl\",\n \"pinb.gov.pl\",\n \"wios.gov.pl\",\n \"witd.gov.pl\",\n \"wzmiuw.gov.pl\",\n \"piw.gov.pl\",\n \"wiw.gov.pl\",\n \"griw.gov.pl\",\n \"wif.gov.pl\",\n \"oum.gov.pl\",\n \"sdn.gov.pl\",\n \"zp.gov.pl\",\n \"uppo.gov.pl\",\n \"mup.gov.pl\",\n \"wuoz.gov.pl\",\n \"konsulat.gov.pl\",\n \"oirm.gov.pl\",\n \"augustow.pl\",\n \"babia-gora.pl\",\n \"bedzin.pl\",\n \"beskidy.pl\",\n \"bialowieza.pl\",\n \"bialystok.pl\",\n \"bielawa.pl\",\n \"bieszczady.pl\",\n \"boleslawiec.pl\",\n \"bydgoszcz.pl\",\n \"bytom.pl\",\n \"cieszyn.pl\",\n \"czeladz.pl\",\n \"czest.pl\",\n \"dlugoleka.pl\",\n \"elblag.pl\",\n \"elk.pl\",\n \"glogow.pl\",\n \"gniezno.pl\",\n \"gorlice.pl\",\n \"grajewo.pl\",\n \"ilawa.pl\",\n \"jaworzno.pl\",\n \"jelenia-gora.pl\",\n \"jgora.pl\",\n \"kalisz.pl\",\n \"kazimierz-dolny.pl\",\n \"karpacz.pl\",\n \"kartuzy.pl\",\n \"kaszuby.pl\",\n \"katowice.pl\",\n \"kepno.pl\",\n \"ketrzyn.pl\",\n \"klodzko.pl\",\n \"kobierzyce.pl\",\n \"kolobrzeg.pl\",\n \"konin.pl\",\n \"konskowola.pl\",\n \"kutno.pl\",\n \"lapy.pl\",\n \"lebork.pl\",\n \"legnica.pl\",\n \"lezajsk.pl\",\n \"limanowa.pl\",\n \"lomza.pl\",\n \"lowicz.pl\",\n \"lubin.pl\",\n \"lukow.pl\",\n \"malbork.pl\",\n \"malopolska.pl\",\n \"mazowsze.pl\",\n \"mazury.pl\",\n \"mielec.pl\",\n \"mielno.pl\",\n \"mragowo.pl\",\n \"naklo.pl\",\n \"nowaruda.pl\",\n \"nysa.pl\",\n \"olawa.pl\",\n \"olecko.pl\",\n \"olkusz.pl\",\n \"olsztyn.pl\",\n \"opoczno.pl\",\n \"opole.pl\",\n \"ostroda.pl\",\n \"ostroleka.pl\",\n \"ostrowiec.pl\",\n \"ostrowwlkp.pl\",\n \"pila.pl\",\n \"pisz.pl\",\n \"podhale.pl\",\n \"podlasie.pl\",\n \"polkowice.pl\",\n \"pomorze.pl\",\n \"pomorskie.pl\",\n \"prochowice.pl\",\n \"pruszkow.pl\",\n \"przeworsk.pl\",\n \"pulawy.pl\",\n \"radom.pl\",\n \"rawa-maz.pl\",\n \"rybnik.pl\",\n \"rzeszow.pl\",\n \"sanok.pl\",\n \"sejny.pl\",\n \"slask.pl\",\n \"slupsk.pl\",\n \"sosnowiec.pl\",\n \"stalowa-wola.pl\",\n \"skoczow.pl\",\n \"starachowice.pl\",\n \"stargard.pl\",\n \"suwalki.pl\",\n \"swidnica.pl\",\n \"swiebodzin.pl\",\n \"swinoujscie.pl\",\n \"szczecin.pl\",\n \"szczytno.pl\",\n \"tarnobrzeg.pl\",\n \"tgory.pl\",\n \"turek.pl\",\n \"tychy.pl\",\n \"ustka.pl\",\n \"walbrzych.pl\",\n \"warmia.pl\",\n \"warszawa.pl\",\n \"waw.pl\",\n \"wegrow.pl\",\n \"wielun.pl\",\n \"wlocl.pl\",\n \"wloclawek.pl\",\n \"wodzislaw.pl\",\n \"wolomin.pl\",\n \"wroclaw.pl\",\n \"zachpomor.pl\",\n \"zagan.pl\",\n \"zarow.pl\",\n \"zgora.pl\",\n \"zgorzelec.pl\",\n \"pm\",\n \"pn\",\n \"gov.pn\",\n \"co.pn\",\n \"org.pn\",\n \"edu.pn\",\n \"net.pn\",\n \"post\",\n \"pr\",\n \"com.pr\",\n \"net.pr\",\n \"org.pr\",\n \"gov.pr\",\n \"edu.pr\",\n \"isla.pr\",\n \"pro.pr\",\n \"biz.pr\",\n \"info.pr\",\n \"name.pr\",\n \"est.pr\",\n \"prof.pr\",\n \"ac.pr\",\n \"pro\",\n \"aaa.pro\",\n \"aca.pro\",\n \"acct.pro\",\n \"avocat.pro\",\n \"bar.pro\",\n \"cpa.pro\",\n \"eng.pro\",\n \"jur.pro\",\n \"law.pro\",\n \"med.pro\",\n \"recht.pro\",\n \"ps\",\n \"edu.ps\",\n \"gov.ps\",\n \"sec.ps\",\n \"plo.ps\",\n \"com.ps\",\n \"org.ps\",\n \"net.ps\",\n \"pt\",\n \"net.pt\",\n \"gov.pt\",\n \"org.pt\",\n \"edu.pt\",\n \"int.pt\",\n \"publ.pt\",\n \"com.pt\",\n \"nome.pt\",\n \"pw\",\n \"co.pw\",\n \"ne.pw\",\n \"or.pw\",\n \"ed.pw\",\n \"go.pw\",\n \"belau.pw\",\n \"py\",\n \"com.py\",\n \"coop.py\",\n \"edu.py\",\n \"gov.py\",\n \"mil.py\",\n \"net.py\",\n \"org.py\",\n \"qa\",\n \"com.qa\",\n \"edu.qa\",\n \"gov.qa\",\n \"mil.qa\",\n \"name.qa\",\n \"net.qa\",\n \"org.qa\",\n \"sch.qa\",\n \"re\",\n \"asso.re\",\n \"com.re\",\n \"nom.re\",\n \"ro\",\n \"arts.ro\",\n \"com.ro\",\n \"firm.ro\",\n \"info.ro\",\n \"nom.ro\",\n \"nt.ro\",\n \"org.ro\",\n \"rec.ro\",\n \"store.ro\",\n \"tm.ro\",\n \"www.ro\",\n \"rs\",\n \"ac.rs\",\n \"co.rs\",\n \"edu.rs\",\n \"gov.rs\",\n \"in.rs\",\n \"org.rs\",\n \"ru\",\n \"rw\",\n \"ac.rw\",\n \"co.rw\",\n \"coop.rw\",\n \"gov.rw\",\n \"mil.rw\",\n \"net.rw\",\n \"org.rw\",\n \"sa\",\n \"com.sa\",\n \"net.sa\",\n \"org.sa\",\n \"gov.sa\",\n \"med.sa\",\n \"pub.sa\",\n \"edu.sa\",\n \"sch.sa\",\n \"sb\",\n \"com.sb\",\n \"edu.sb\",\n \"gov.sb\",\n \"net.sb\",\n \"org.sb\",\n \"sc\",\n \"com.sc\",\n \"gov.sc\",\n \"net.sc\",\n \"org.sc\",\n \"edu.sc\",\n \"sd\",\n \"com.sd\",\n \"net.sd\",\n \"org.sd\",\n \"edu.sd\",\n \"med.sd\",\n \"tv.sd\",\n \"gov.sd\",\n \"info.sd\",\n \"se\",\n \"a.se\",\n \"ac.se\",\n \"b.se\",\n \"bd.se\",\n \"brand.se\",\n \"c.se\",\n \"d.se\",\n \"e.se\",\n \"f.se\",\n \"fh.se\",\n \"fhsk.se\",\n \"fhv.se\",\n \"g.se\",\n \"h.se\",\n \"i.se\",\n \"k.se\",\n \"komforb.se\",\n \"kommunalforbund.se\",\n \"komvux.se\",\n \"l.se\",\n \"lanbib.se\",\n \"m.se\",\n \"n.se\",\n \"naturbruksgymn.se\",\n \"o.se\",\n \"org.se\",\n \"p.se\",\n \"parti.se\",\n \"pp.se\",\n \"press.se\",\n \"r.se\",\n \"s.se\",\n \"t.se\",\n \"tm.se\",\n \"u.se\",\n \"w.se\",\n \"x.se\",\n \"y.se\",\n \"z.se\",\n \"sg\",\n \"com.sg\",\n \"net.sg\",\n \"org.sg\",\n \"gov.sg\",\n \"edu.sg\",\n \"per.sg\",\n \"sh\",\n \"com.sh\",\n \"net.sh\",\n \"gov.sh\",\n \"org.sh\",\n \"mil.sh\",\n \"si\",\n \"sj\",\n \"sk\",\n \"sl\",\n \"com.sl\",\n \"net.sl\",\n \"edu.sl\",\n \"gov.sl\",\n \"org.sl\",\n \"sm\",\n \"sn\",\n \"art.sn\",\n \"com.sn\",\n \"edu.sn\",\n \"gouv.sn\",\n \"org.sn\",\n \"perso.sn\",\n \"univ.sn\",\n \"so\",\n \"com.so\",\n \"edu.so\",\n \"gov.so\",\n \"me.so\",\n \"net.so\",\n \"org.so\",\n \"sr\",\n \"ss\",\n \"biz.ss\",\n \"com.ss\",\n \"edu.ss\",\n \"gov.ss\",\n \"me.ss\",\n \"net.ss\",\n \"org.ss\",\n \"sch.ss\",\n \"st\",\n \"co.st\",\n \"com.st\",\n \"consulado.st\",\n \"edu.st\",\n \"embaixada.st\",\n \"mil.st\",\n \"net.st\",\n \"org.st\",\n \"principe.st\",\n \"saotome.st\",\n \"store.st\",\n \"su\",\n \"sv\",\n \"com.sv\",\n \"edu.sv\",\n \"gob.sv\",\n \"org.sv\",\n \"red.sv\",\n \"sx\",\n \"gov.sx\",\n \"sy\",\n \"edu.sy\",\n \"gov.sy\",\n \"net.sy\",\n \"mil.sy\",\n \"com.sy\",\n \"org.sy\",\n \"sz\",\n \"co.sz\",\n \"ac.sz\",\n \"org.sz\",\n \"tc\",\n \"td\",\n \"tel\",\n \"tf\",\n \"tg\",\n \"th\",\n \"ac.th\",\n \"co.th\",\n \"go.th\",\n \"in.th\",\n \"mi.th\",\n \"net.th\",\n \"or.th\",\n \"tj\",\n \"ac.tj\",\n \"biz.tj\",\n \"co.tj\",\n \"com.tj\",\n \"edu.tj\",\n \"go.tj\",\n \"gov.tj\",\n \"int.tj\",\n \"mil.tj\",\n \"name.tj\",\n \"net.tj\",\n \"nic.tj\",\n \"org.tj\",\n \"test.tj\",\n \"web.tj\",\n \"tk\",\n \"tl\",\n \"gov.tl\",\n \"tm\",\n \"com.tm\",\n \"co.tm\",\n \"org.tm\",\n \"net.tm\",\n \"nom.tm\",\n \"gov.tm\",\n \"mil.tm\",\n \"edu.tm\",\n \"tn\",\n \"com.tn\",\n \"ens.tn\",\n \"fin.tn\",\n \"gov.tn\",\n \"ind.tn\",\n \"info.tn\",\n \"intl.tn\",\n \"mincom.tn\",\n \"nat.tn\",\n \"net.tn\",\n \"org.tn\",\n \"perso.tn\",\n \"tourism.tn\",\n \"to\",\n \"com.to\",\n \"gov.to\",\n \"net.to\",\n \"org.to\",\n \"edu.to\",\n \"mil.to\",\n \"tr\",\n \"av.tr\",\n \"bbs.tr\",\n \"bel.tr\",\n \"biz.tr\",\n \"com.tr\",\n \"dr.tr\",\n \"edu.tr\",\n \"gen.tr\",\n \"gov.tr\",\n \"info.tr\",\n \"mil.tr\",\n \"k12.tr\",\n \"kep.tr\",\n \"name.tr\",\n \"net.tr\",\n \"org.tr\",\n \"pol.tr\",\n \"tel.tr\",\n \"tsk.tr\",\n \"tv.tr\",\n \"web.tr\",\n \"nc.tr\",\n \"gov.nc.tr\",\n \"tt\",\n \"co.tt\",\n \"com.tt\",\n \"org.tt\",\n \"net.tt\",\n \"biz.tt\",\n \"info.tt\",\n \"pro.tt\",\n \"int.tt\",\n \"coop.tt\",\n \"jobs.tt\",\n \"mobi.tt\",\n \"travel.tt\",\n \"museum.tt\",\n \"aero.tt\",\n \"name.tt\",\n \"gov.tt\",\n \"edu.tt\",\n \"tv\",\n \"tw\",\n \"edu.tw\",\n \"gov.tw\",\n \"mil.tw\",\n \"com.tw\",\n \"net.tw\",\n \"org.tw\",\n \"idv.tw\",\n \"game.tw\",\n \"ebiz.tw\",\n \"club.tw\",\n \"\\u7DB2\\u8DEF.tw\",\n \"\\u7D44\\u7E54.tw\",\n \"\\u5546\\u696D.tw\",\n \"tz\",\n \"ac.tz\",\n \"co.tz\",\n \"go.tz\",\n \"hotel.tz\",\n \"info.tz\",\n \"me.tz\",\n \"mil.tz\",\n \"mobi.tz\",\n \"ne.tz\",\n \"or.tz\",\n \"sc.tz\",\n \"tv.tz\",\n \"ua\",\n \"com.ua\",\n \"edu.ua\",\n \"gov.ua\",\n \"in.ua\",\n \"net.ua\",\n \"org.ua\",\n \"cherkassy.ua\",\n \"cherkasy.ua\",\n \"chernigov.ua\",\n \"chernihiv.ua\",\n \"chernivtsi.ua\",\n \"chernovtsy.ua\",\n \"ck.ua\",\n \"cn.ua\",\n \"cr.ua\",\n \"crimea.ua\",\n \"cv.ua\",\n \"dn.ua\",\n \"dnepropetrovsk.ua\",\n \"dnipropetrovsk.ua\",\n \"donetsk.ua\",\n \"dp.ua\",\n \"if.ua\",\n \"ivano-frankivsk.ua\",\n \"kh.ua\",\n \"kharkiv.ua\",\n \"kharkov.ua\",\n \"kherson.ua\",\n \"khmelnitskiy.ua\",\n \"khmelnytskyi.ua\",\n \"kiev.ua\",\n \"kirovograd.ua\",\n \"km.ua\",\n \"kr.ua\",\n \"krym.ua\",\n \"ks.ua\",\n \"kv.ua\",\n \"kyiv.ua\",\n \"lg.ua\",\n \"lt.ua\",\n \"lugansk.ua\",\n \"lutsk.ua\",\n \"lv.ua\",\n \"lviv.ua\",\n \"mk.ua\",\n \"mykolaiv.ua\",\n \"nikolaev.ua\",\n \"od.ua\",\n \"odesa.ua\",\n \"odessa.ua\",\n \"pl.ua\",\n \"poltava.ua\",\n \"rivne.ua\",\n \"rovno.ua\",\n \"rv.ua\",\n \"sb.ua\",\n \"sebastopol.ua\",\n \"sevastopol.ua\",\n \"sm.ua\",\n \"sumy.ua\",\n \"te.ua\",\n \"ternopil.ua\",\n \"uz.ua\",\n \"uzhgorod.ua\",\n \"vinnica.ua\",\n \"vinnytsia.ua\",\n \"vn.ua\",\n \"volyn.ua\",\n \"yalta.ua\",\n \"zaporizhzhe.ua\",\n \"zaporizhzhia.ua\",\n \"zhitomir.ua\",\n \"zhytomyr.ua\",\n \"zp.ua\",\n \"zt.ua\",\n \"ug\",\n \"co.ug\",\n \"or.ug\",\n \"ac.ug\",\n \"sc.ug\",\n \"go.ug\",\n \"ne.ug\",\n \"com.ug\",\n \"org.ug\",\n \"uk\",\n \"ac.uk\",\n \"co.uk\",\n \"gov.uk\",\n \"ltd.uk\",\n \"me.uk\",\n \"net.uk\",\n \"nhs.uk\",\n \"org.uk\",\n \"plc.uk\",\n \"police.uk\",\n \"*.sch.uk\",\n \"us\",\n \"dni.us\",\n \"fed.us\",\n \"isa.us\",\n \"kids.us\",\n \"nsn.us\",\n \"ak.us\",\n \"al.us\",\n \"ar.us\",\n \"as.us\",\n \"az.us\",\n \"ca.us\",\n \"co.us\",\n \"ct.us\",\n \"dc.us\",\n \"de.us\",\n \"fl.us\",\n \"ga.us\",\n \"gu.us\",\n \"hi.us\",\n \"ia.us\",\n \"id.us\",\n \"il.us\",\n \"in.us\",\n \"ks.us\",\n \"ky.us\",\n \"la.us\",\n \"ma.us\",\n \"md.us\",\n \"me.us\",\n \"mi.us\",\n \"mn.us\",\n \"mo.us\",\n \"ms.us\",\n \"mt.us\",\n \"nc.us\",\n \"nd.us\",\n \"ne.us\",\n \"nh.us\",\n \"nj.us\",\n \"nm.us\",\n \"nv.us\",\n \"ny.us\",\n \"oh.us\",\n \"ok.us\",\n \"or.us\",\n \"pa.us\",\n \"pr.us\",\n \"ri.us\",\n \"sc.us\",\n \"sd.us\",\n \"tn.us\",\n \"tx.us\",\n \"ut.us\",\n \"vi.us\",\n \"vt.us\",\n \"va.us\",\n \"wa.us\",\n \"wi.us\",\n \"wv.us\",\n \"wy.us\",\n \"k12.ak.us\",\n \"k12.al.us\",\n \"k12.ar.us\",\n \"k12.as.us\",\n \"k12.az.us\",\n \"k12.ca.us\",\n \"k12.co.us\",\n \"k12.ct.us\",\n \"k12.dc.us\",\n \"k12.de.us\",\n \"k12.fl.us\",\n \"k12.ga.us\",\n \"k12.gu.us\",\n \"k12.ia.us\",\n \"k12.id.us\",\n \"k12.il.us\",\n \"k12.in.us\",\n \"k12.ks.us\",\n \"k12.ky.us\",\n \"k12.la.us\",\n \"k12.ma.us\",\n \"k12.md.us\",\n \"k12.me.us\",\n \"k12.mi.us\",\n \"k12.mn.us\",\n \"k12.mo.us\",\n \"k12.ms.us\",\n \"k12.mt.us\",\n \"k12.nc.us\",\n \"k12.ne.us\",\n \"k12.nh.us\",\n \"k12.nj.us\",\n \"k12.nm.us\",\n \"k12.nv.us\",\n \"k12.ny.us\",\n \"k12.oh.us\",\n \"k12.ok.us\",\n \"k12.or.us\",\n \"k12.pa.us\",\n \"k12.pr.us\",\n \"k12.sc.us\",\n \"k12.tn.us\",\n \"k12.tx.us\",\n \"k12.ut.us\",\n \"k12.vi.us\",\n \"k12.vt.us\",\n \"k12.va.us\",\n \"k12.wa.us\",\n \"k12.wi.us\",\n \"k12.wy.us\",\n \"cc.ak.us\",\n \"cc.al.us\",\n \"cc.ar.us\",\n \"cc.as.us\",\n \"cc.az.us\",\n \"cc.ca.us\",\n \"cc.co.us\",\n \"cc.ct.us\",\n \"cc.dc.us\",\n \"cc.de.us\",\n \"cc.fl.us\",\n \"cc.ga.us\",\n \"cc.gu.us\",\n \"cc.hi.us\",\n \"cc.ia.us\",\n \"cc.id.us\",\n \"cc.il.us\",\n \"cc.in.us\",\n \"cc.ks.us\",\n \"cc.ky.us\",\n \"cc.la.us\",\n \"cc.ma.us\",\n \"cc.md.us\",\n \"cc.me.us\",\n \"cc.mi.us\",\n \"cc.mn.us\",\n \"cc.mo.us\",\n \"cc.ms.us\",\n \"cc.mt.us\",\n \"cc.nc.us\",\n \"cc.nd.us\",\n \"cc.ne.us\",\n \"cc.nh.us\",\n \"cc.nj.us\",\n \"cc.nm.us\",\n \"cc.nv.us\",\n \"cc.ny.us\",\n \"cc.oh.us\",\n \"cc.ok.us\",\n \"cc.or.us\",\n \"cc.pa.us\",\n \"cc.pr.us\",\n \"cc.ri.us\",\n \"cc.sc.us\",\n \"cc.sd.us\",\n \"cc.tn.us\",\n \"cc.tx.us\",\n \"cc.ut.us\",\n \"cc.vi.us\",\n \"cc.vt.us\",\n \"cc.va.us\",\n \"cc.wa.us\",\n \"cc.wi.us\",\n \"cc.wv.us\",\n \"cc.wy.us\",\n \"lib.ak.us\",\n \"lib.al.us\",\n \"lib.ar.us\",\n \"lib.as.us\",\n \"lib.az.us\",\n \"lib.ca.us\",\n \"lib.co.us\",\n \"lib.ct.us\",\n \"lib.dc.us\",\n \"lib.fl.us\",\n \"lib.ga.us\",\n \"lib.gu.us\",\n \"lib.hi.us\",\n \"lib.ia.us\",\n \"lib.id.us\",\n \"lib.il.us\",\n \"lib.in.us\",\n \"lib.ks.us\",\n \"lib.ky.us\",\n \"lib.la.us\",\n \"lib.ma.us\",\n \"lib.md.us\",\n \"lib.me.us\",\n \"lib.mi.us\",\n \"lib.mn.us\",\n \"lib.mo.us\",\n \"lib.ms.us\",\n \"lib.mt.us\",\n \"lib.nc.us\",\n \"lib.nd.us\",\n \"lib.ne.us\",\n \"lib.nh.us\",\n \"lib.nj.us\",\n \"lib.nm.us\",\n \"lib.nv.us\",\n \"lib.ny.us\",\n \"lib.oh.us\",\n \"lib.ok.us\",\n \"lib.or.us\",\n \"lib.pa.us\",\n \"lib.pr.us\",\n \"lib.ri.us\",\n \"lib.sc.us\",\n \"lib.sd.us\",\n \"lib.tn.us\",\n \"lib.tx.us\",\n \"lib.ut.us\",\n \"lib.vi.us\",\n \"lib.vt.us\",\n \"lib.va.us\",\n \"lib.wa.us\",\n \"lib.wi.us\",\n \"lib.wy.us\",\n \"pvt.k12.ma.us\",\n \"chtr.k12.ma.us\",\n \"paroch.k12.ma.us\",\n \"ann-arbor.mi.us\",\n \"cog.mi.us\",\n \"dst.mi.us\",\n \"eaton.mi.us\",\n \"gen.mi.us\",\n \"mus.mi.us\",\n \"tec.mi.us\",\n \"washtenaw.mi.us\",\n \"uy\",\n \"com.uy\",\n \"edu.uy\",\n \"gub.uy\",\n \"mil.uy\",\n \"net.uy\",\n \"org.uy\",\n \"uz\",\n \"co.uz\",\n \"com.uz\",\n \"net.uz\",\n \"org.uz\",\n \"va\",\n \"vc\",\n \"com.vc\",\n \"net.vc\",\n \"org.vc\",\n \"gov.vc\",\n \"mil.vc\",\n \"edu.vc\",\n \"ve\",\n \"arts.ve\",\n \"bib.ve\",\n \"co.ve\",\n \"com.ve\",\n \"e12.ve\",\n \"edu.ve\",\n \"firm.ve\",\n \"gob.ve\",\n \"gov.ve\",\n \"info.ve\",\n \"int.ve\",\n \"mil.ve\",\n \"net.ve\",\n \"nom.ve\",\n \"org.ve\",\n \"rar.ve\",\n \"rec.ve\",\n \"store.ve\",\n \"tec.ve\",\n \"web.ve\",\n \"vg\",\n \"vi\",\n \"co.vi\",\n \"com.vi\",\n \"k12.vi\",\n \"net.vi\",\n \"org.vi\",\n \"vn\",\n \"com.vn\",\n \"net.vn\",\n \"org.vn\",\n \"edu.vn\",\n \"gov.vn\",\n \"int.vn\",\n \"ac.vn\",\n \"biz.vn\",\n \"info.vn\",\n \"name.vn\",\n \"pro.vn\",\n \"health.vn\",\n \"vu\",\n \"com.vu\",\n \"edu.vu\",\n \"net.vu\",\n \"org.vu\",\n \"wf\",\n \"ws\",\n \"com.ws\",\n \"net.ws\",\n \"org.ws\",\n \"gov.ws\",\n \"edu.ws\",\n \"yt\",\n \"\\u0627\\u0645\\u0627\\u0631\\u0627\\u062A\",\n \"\\u0570\\u0561\\u0575\",\n \"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\",\n \"\\u0431\\u0433\",\n \"\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\",\n \"\\u0431\\u0435\\u043B\",\n \"\\u4E2D\\u56FD\",\n \"\\u4E2D\\u570B\",\n \"\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\",\n \"\\u0645\\u0635\\u0631\",\n \"\\u0435\\u044E\",\n \"\\u03B5\\u03C5\",\n \"\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\",\n \"\\u10D2\\u10D4\",\n \"\\u03B5\\u03BB\",\n \"\\u9999\\u6E2F\",\n \"\\u516C\\u53F8.\\u9999\\u6E2F\",\n \"\\u6559\\u80B2.\\u9999\\u6E2F\",\n \"\\u653F\\u5E9C.\\u9999\\u6E2F\",\n \"\\u500B\\u4EBA.\\u9999\\u6E2F\",\n \"\\u7DB2\\u7D61.\\u9999\\u6E2F\",\n \"\\u7D44\\u7E54.\\u9999\\u6E2F\",\n \"\\u0CAD\\u0CBE\\u0CB0\\u0CA4\",\n \"\\u0B2D\\u0B3E\\u0B30\\u0B24\",\n \"\\u09AD\\u09BE\\u09F0\\u09A4\",\n \"\\u092D\\u093E\\u0930\\u0924\\u092E\\u094D\",\n \"\\u092D\\u093E\\u0930\\u094B\\u0924\",\n \"\\u0680\\u0627\\u0631\\u062A\",\n \"\\u0D2D\\u0D3E\\u0D30\\u0D24\\u0D02\",\n \"\\u092D\\u093E\\u0930\\u0924\",\n \"\\u0628\\u0627\\u0631\\u062A\",\n \"\\u0628\\u06BE\\u0627\\u0631\\u062A\",\n \"\\u0C2D\\u0C3E\\u0C30\\u0C24\\u0C4D\",\n \"\\u0AAD\\u0ABE\\u0AB0\\u0AA4\",\n \"\\u0A2D\\u0A3E\\u0A30\\u0A24\",\n \"\\u09AD\\u09BE\\u09B0\\u09A4\",\n \"\\u0B87\\u0BA8\\u0BCD\\u0BA4\\u0BBF\\u0BAF\\u0BBE\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646\",\n \"\\u0639\\u0631\\u0627\\u0642\",\n \"\\u0627\\u0644\\u0627\\u0631\\u062F\\u0646\",\n \"\\uD55C\\uAD6D\",\n \"\\u049B\\u0430\\u0437\",\n \"\\u0EA5\\u0EB2\\u0EA7\",\n \"\\u0DBD\\u0D82\\u0D9A\\u0DCF\",\n \"\\u0B87\\u0BB2\\u0B99\\u0BCD\\u0B95\\u0BC8\",\n \"\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\",\n \"\\u043C\\u043A\\u0434\",\n \"\\u043C\\u043E\\u043D\",\n \"\\u6FB3\\u9580\",\n \"\\u6FB3\\u95E8\",\n \"\\u0645\\u0644\\u064A\\u0633\\u064A\\u0627\",\n \"\\u0639\\u0645\\u0627\\u0646\",\n \"\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u0646\",\n \"\\u067E\\u0627\\u0643\\u0633\\u062A\\u0627\\u0646\",\n \"\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\",\n \"\\u0441\\u0440\\u0431\",\n \"\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0440\\u0433.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0431\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0434.\\u0441\\u0440\\u0431\",\n \"\\u0443\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u0430\\u043A.\\u0441\\u0440\\u0431\",\n \"\\u0440\\u0444\",\n \"\\u0642\\u0637\\u0631\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u06C3\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0647\",\n \"\\u0633\\u0648\\u062F\\u0627\\u0646\",\n \"\\u65B0\\u52A0\\u5761\",\n \"\\u0B9A\\u0BBF\\u0B99\\u0BCD\\u0B95\\u0BAA\\u0BCD\\u0BAA\\u0BC2\\u0BB0\\u0BCD\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0629\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0627\",\n \"\\u0E44\\u0E17\\u0E22\",\n \"\\u0E28\\u0E36\\u0E01\\u0E29\\u0E32.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E18\\u0E38\\u0E23\\u0E01\\u0E34\\u0E08.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E23\\u0E31\\u0E10\\u0E1A\\u0E32\\u0E25.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E17\\u0E2B\\u0E32\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E40\\u0E19\\u0E47\\u0E15.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E2D\\u0E07\\u0E04\\u0E4C\\u0E01\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u062A\\u0648\\u0646\\u0633\",\n \"\\u53F0\\u7063\",\n \"\\u53F0\\u6E7E\",\n \"\\u81FA\\u7063\",\n \"\\u0443\\u043A\\u0440\",\n \"\\u0627\\u0644\\u064A\\u0645\\u0646\",\n \"xxx\",\n \"ye\",\n \"com.ye\",\n \"edu.ye\",\n \"gov.ye\",\n \"net.ye\",\n \"mil.ye\",\n \"org.ye\",\n \"ac.za\",\n \"agric.za\",\n \"alt.za\",\n \"co.za\",\n \"edu.za\",\n \"gov.za\",\n \"grondar.za\",\n \"law.za\",\n \"mil.za\",\n \"net.za\",\n \"ngo.za\",\n \"nic.za\",\n \"nis.za\",\n \"nom.za\",\n \"org.za\",\n \"school.za\",\n \"tm.za\",\n \"web.za\",\n \"zm\",\n \"ac.zm\",\n \"biz.zm\",\n \"co.zm\",\n \"com.zm\",\n \"edu.zm\",\n \"gov.zm\",\n \"info.zm\",\n \"mil.zm\",\n \"net.zm\",\n \"org.zm\",\n \"sch.zm\",\n \"zw\",\n \"ac.zw\",\n \"co.zw\",\n \"gov.zw\",\n \"mil.zw\",\n \"org.zw\",\n \"aaa\",\n \"aarp\",\n \"abarth\",\n \"abb\",\n \"abbott\",\n \"abbvie\",\n \"abc\",\n \"able\",\n \"abogado\",\n \"abudhabi\",\n \"academy\",\n \"accenture\",\n \"accountant\",\n \"accountants\",\n \"aco\",\n \"actor\",\n \"adac\",\n \"ads\",\n \"adult\",\n \"aeg\",\n \"aetna\",\n \"afl\",\n \"africa\",\n \"agakhan\",\n \"agency\",\n \"aig\",\n \"airbus\",\n \"airforce\",\n \"airtel\",\n \"akdn\",\n \"alfaromeo\",\n \"alibaba\",\n \"alipay\",\n \"allfinanz\",\n \"allstate\",\n \"ally\",\n \"alsace\",\n \"alstom\",\n \"amazon\",\n \"americanexpress\",\n \"americanfamily\",\n \"amex\",\n \"amfam\",\n \"amica\",\n \"amsterdam\",\n \"analytics\",\n \"android\",\n \"anquan\",\n \"anz\",\n \"aol\",\n \"apartments\",\n \"app\",\n \"apple\",\n \"aquarelle\",\n \"arab\",\n \"aramco\",\n \"archi\",\n \"army\",\n \"art\",\n \"arte\",\n \"asda\",\n \"associates\",\n \"athleta\",\n \"attorney\",\n \"auction\",\n \"audi\",\n \"audible\",\n \"audio\",\n \"auspost\",\n \"author\",\n \"auto\",\n \"autos\",\n \"avianca\",\n \"aws\",\n \"axa\",\n \"azure\",\n \"baby\",\n \"baidu\",\n \"banamex\",\n \"bananarepublic\",\n \"band\",\n \"bank\",\n \"bar\",\n \"barcelona\",\n \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \"bargains\",\n \"baseball\",\n \"basketball\",\n \"bauhaus\",\n \"bayern\",\n \"bbc\",\n \"bbt\",\n \"bbva\",\n \"bcg\",\n \"bcn\",\n \"beats\",\n \"beauty\",\n \"beer\",\n \"bentley\",\n \"berlin\",\n \"best\",\n \"bestbuy\",\n \"bet\",\n \"bharti\",\n \"bible\",\n \"bid\",\n \"bike\",\n \"bing\",\n \"bingo\",\n \"bio\",\n \"black\",\n \"blackfriday\",\n \"blockbuster\",\n \"blog\",\n \"bloomberg\",\n \"blue\",\n \"bms\",\n \"bmw\",\n \"bnpparibas\",\n \"boats\",\n \"boehringer\",\n \"bofa\",\n \"bom\",\n \"bond\",\n \"boo\",\n \"book\",\n \"booking\",\n \"bosch\",\n \"bostik\",\n \"boston\",\n \"bot\",\n \"boutique\",\n \"box\",\n \"bradesco\",\n \"bridgestone\",\n \"broadway\",\n \"broker\",\n \"brother\",\n \"brussels\",\n \"bugatti\",\n \"build\",\n \"builders\",\n \"business\",\n \"buy\",\n \"buzz\",\n \"bzh\",\n \"cab\",\n \"cafe\",\n \"cal\",\n \"call\",\n \"calvinklein\",\n \"cam\",\n \"camera\",\n \"camp\",\n \"cancerresearch\",\n \"canon\",\n \"capetown\",\n \"capital\",\n \"capitalone\",\n \"car\",\n \"caravan\",\n \"cards\",\n \"care\",\n \"career\",\n \"careers\",\n \"cars\",\n \"casa\",\n \"case\",\n \"cash\",\n \"casino\",\n \"catering\",\n \"catholic\",\n \"cba\",\n \"cbn\",\n \"cbre\",\n \"cbs\",\n \"center\",\n \"ceo\",\n \"cern\",\n \"cfa\",\n \"cfd\",\n \"chanel\",\n \"channel\",\n \"charity\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"chintai\",\n \"christmas\",\n \"chrome\",\n \"church\",\n \"cipriani\",\n \"circle\",\n \"cisco\",\n \"citadel\",\n \"citi\",\n \"citic\",\n \"city\",\n \"cityeats\",\n \"claims\",\n \"cleaning\",\n \"click\",\n \"clinic\",\n \"clinique\",\n \"clothing\",\n \"cloud\",\n \"club\",\n \"clubmed\",\n \"coach\",\n \"codes\",\n \"coffee\",\n \"college\",\n \"cologne\",\n \"comcast\",\n \"commbank\",\n \"community\",\n \"company\",\n \"compare\",\n \"computer\",\n \"comsec\",\n \"condos\",\n \"construction\",\n \"consulting\",\n \"contact\",\n \"contractors\",\n \"cooking\",\n \"cookingchannel\",\n \"cool\",\n \"corsica\",\n \"country\",\n \"coupon\",\n \"coupons\",\n \"courses\",\n \"cpa\",\n \"credit\",\n \"creditcard\",\n \"creditunion\",\n \"cricket\",\n \"crown\",\n \"crs\",\n \"cruise\",\n \"cruises\",\n \"cuisinella\",\n \"cymru\",\n \"cyou\",\n \"dabur\",\n \"dad\",\n \"dance\",\n \"data\",\n \"date\",\n \"dating\",\n \"datsun\",\n \"day\",\n \"dclk\",\n \"dds\",\n \"deal\",\n \"dealer\",\n \"deals\",\n \"degree\",\n \"delivery\",\n \"dell\",\n \"deloitte\",\n \"delta\",\n \"democrat\",\n \"dental\",\n \"dentist\",\n \"desi\",\n \"design\",\n \"dev\",\n \"dhl\",\n \"diamonds\",\n \"diet\",\n \"digital\",\n \"direct\",\n \"directory\",\n \"discount\",\n \"discover\",\n \"dish\",\n \"diy\",\n \"dnp\",\n \"docs\",\n \"doctor\",\n \"dog\",\n \"domains\",\n \"dot\",\n \"download\",\n \"drive\",\n \"dtv\",\n \"dubai\",\n \"dunlop\",\n \"dupont\",\n \"durban\",\n \"dvag\",\n \"dvr\",\n \"earth\",\n \"eat\",\n \"eco\",\n \"edeka\",\n \"education\",\n \"email\",\n \"emerck\",\n \"energy\",\n \"engineer\",\n \"engineering\",\n \"enterprises\",\n \"epson\",\n \"equipment\",\n \"ericsson\",\n \"erni\",\n \"esq\",\n \"estate\",\n \"etisalat\",\n \"eurovision\",\n \"eus\",\n \"events\",\n \"exchange\",\n \"expert\",\n \"exposed\",\n \"express\",\n \"extraspace\",\n \"fage\",\n \"fail\",\n \"fairwinds\",\n \"faith\",\n \"family\",\n \"fan\",\n \"fans\",\n \"farm\",\n \"farmers\",\n \"fashion\",\n \"fast\",\n \"fedex\",\n \"feedback\",\n \"ferrari\",\n \"ferrero\",\n \"fiat\",\n \"fidelity\",\n \"fido\",\n \"film\",\n \"final\",\n \"finance\",\n \"financial\",\n \"fire\",\n \"firestone\",\n \"firmdale\",\n \"fish\",\n \"fishing\",\n \"fit\",\n \"fitness\",\n \"flickr\",\n \"flights\",\n \"flir\",\n \"florist\",\n \"flowers\",\n \"fly\",\n \"foo\",\n \"food\",\n \"foodnetwork\",\n \"football\",\n \"ford\",\n \"forex\",\n \"forsale\",\n \"forum\",\n \"foundation\",\n \"fox\",\n \"free\",\n \"fresenius\",\n \"frl\",\n \"frogans\",\n \"frontdoor\",\n \"frontier\",\n \"ftr\",\n \"fujitsu\",\n \"fun\",\n \"fund\",\n \"furniture\",\n \"futbol\",\n \"fyi\",\n \"gal\",\n \"gallery\",\n \"gallo\",\n \"gallup\",\n \"game\",\n \"games\",\n \"gap\",\n \"garden\",\n \"gay\",\n \"gbiz\",\n \"gdn\",\n \"gea\",\n \"gent\",\n \"genting\",\n \"george\",\n \"ggee\",\n \"gift\",\n \"gifts\",\n \"gives\",\n \"giving\",\n \"glass\",\n \"gle\",\n \"global\",\n \"globo\",\n \"gmail\",\n \"gmbh\",\n \"gmo\",\n \"gmx\",\n \"godaddy\",\n \"gold\",\n \"goldpoint\",\n \"golf\",\n \"goo\",\n \"goodyear\",\n \"goog\",\n \"google\",\n \"gop\",\n \"got\",\n \"grainger\",\n \"graphics\",\n \"gratis\",\n \"green\",\n \"gripe\",\n \"grocery\",\n \"group\",\n \"guardian\",\n \"gucci\",\n \"guge\",\n \"guide\",\n \"guitars\",\n \"guru\",\n \"hair\",\n \"hamburg\",\n \"hangout\",\n \"haus\",\n \"hbo\",\n \"hdfc\",\n \"hdfcbank\",\n \"health\",\n \"healthcare\",\n \"help\",\n \"helsinki\",\n \"here\",\n \"hermes\",\n \"hgtv\",\n \"hiphop\",\n \"hisamitsu\",\n \"hitachi\",\n \"hiv\",\n \"hkt\",\n \"hockey\",\n \"holdings\",\n \"holiday\",\n \"homedepot\",\n \"homegoods\",\n \"homes\",\n \"homesense\",\n \"honda\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hosting\",\n \"hot\",\n \"hoteles\",\n \"hotels\",\n \"hotmail\",\n \"house\",\n \"how\",\n \"hsbc\",\n \"hughes\",\n \"hyatt\",\n \"hyundai\",\n \"ibm\",\n \"icbc\",\n \"ice\",\n \"icu\",\n \"ieee\",\n \"ifm\",\n \"ikano\",\n \"imamat\",\n \"imdb\",\n \"immo\",\n \"immobilien\",\n \"inc\",\n \"industries\",\n \"infiniti\",\n \"ing\",\n \"ink\",\n \"institute\",\n \"insurance\",\n \"insure\",\n \"international\",\n \"intuit\",\n \"investments\",\n \"ipiranga\",\n \"irish\",\n \"ismaili\",\n \"ist\",\n \"istanbul\",\n \"itau\",\n \"itv\",\n \"jaguar\",\n \"java\",\n \"jcb\",\n \"jeep\",\n \"jetzt\",\n \"jewelry\",\n \"jio\",\n \"jll\",\n \"jmp\",\n \"jnj\",\n \"joburg\",\n \"jot\",\n \"joy\",\n \"jpmorgan\",\n \"jprs\",\n \"juegos\",\n \"juniper\",\n \"kaufen\",\n \"kddi\",\n \"kerryhotels\",\n \"kerrylogistics\",\n \"kerryproperties\",\n \"kfh\",\n \"kia\",\n \"kids\",\n \"kim\",\n \"kinder\",\n \"kindle\",\n \"kitchen\",\n \"kiwi\",\n \"koeln\",\n \"komatsu\",\n \"kosher\",\n \"kpmg\",\n \"kpn\",\n \"krd\",\n \"kred\",\n \"kuokgroup\",\n \"kyoto\",\n \"lacaixa\",\n \"lamborghini\",\n \"lamer\",\n \"lancaster\",\n \"lancia\",\n \"land\",\n \"landrover\",\n \"lanxess\",\n \"lasalle\",\n \"lat\",\n \"latino\",\n \"latrobe\",\n \"law\",\n \"lawyer\",\n \"lds\",\n \"lease\",\n \"leclerc\",\n \"lefrak\",\n \"legal\",\n \"lego\",\n \"lexus\",\n \"lgbt\",\n \"lidl\",\n \"life\",\n \"lifeinsurance\",\n \"lifestyle\",\n \"lighting\",\n \"like\",\n \"lilly\",\n \"limited\",\n \"limo\",\n \"lincoln\",\n \"linde\",\n \"link\",\n \"lipsy\",\n \"live\",\n \"living\",\n \"llc\",\n \"llp\",\n \"loan\",\n \"loans\",\n \"locker\",\n \"locus\",\n \"loft\",\n \"lol\",\n \"london\",\n \"lotte\",\n \"lotto\",\n \"love\",\n \"lpl\",\n \"lplfinancial\",\n \"ltd\",\n \"ltda\",\n \"lundbeck\",\n \"luxe\",\n \"luxury\",\n \"macys\",\n \"madrid\",\n \"maif\",\n \"maison\",\n \"makeup\",\n \"man\",\n \"management\",\n \"mango\",\n \"map\",\n \"market\",\n \"marketing\",\n \"markets\",\n \"marriott\",\n \"marshalls\",\n \"maserati\",\n \"mattel\",\n \"mba\",\n \"mckinsey\",\n \"med\",\n \"media\",\n \"meet\",\n \"melbourne\",\n \"meme\",\n \"memorial\",\n \"men\",\n \"menu\",\n \"merckmsd\",\n \"miami\",\n \"microsoft\",\n \"mini\",\n \"mint\",\n \"mit\",\n \"mitsubishi\",\n \"mlb\",\n \"mls\",\n \"mma\",\n \"mobile\",\n \"moda\",\n \"moe\",\n \"moi\",\n \"mom\",\n \"monash\",\n \"money\",\n \"monster\",\n \"mormon\",\n \"mortgage\",\n \"moscow\",\n \"moto\",\n \"motorcycles\",\n \"mov\",\n \"movie\",\n \"msd\",\n \"mtn\",\n \"mtr\",\n \"music\",\n \"mutual\",\n \"nab\",\n \"nagoya\",\n \"natura\",\n \"navy\",\n \"nba\",\n \"nec\",\n \"netbank\",\n \"netflix\",\n \"network\",\n \"neustar\",\n \"new\",\n \"news\",\n \"next\",\n \"nextdirect\",\n \"nexus\",\n \"nfl\",\n \"ngo\",\n \"nhk\",\n \"nico\",\n \"nike\",\n \"nikon\",\n \"ninja\",\n \"nissan\",\n \"nissay\",\n \"nokia\",\n \"northwesternmutual\",\n \"norton\",\n \"now\",\n \"nowruz\",\n \"nowtv\",\n \"nra\",\n \"nrw\",\n \"ntt\",\n \"nyc\",\n \"obi\",\n \"observer\",\n \"office\",\n \"okinawa\",\n \"olayan\",\n \"olayangroup\",\n \"oldnavy\",\n \"ollo\",\n \"omega\",\n \"one\",\n \"ong\",\n \"onl\",\n \"online\",\n \"ooo\",\n \"open\",\n \"oracle\",\n \"orange\",\n \"organic\",\n \"origins\",\n \"osaka\",\n \"otsuka\",\n \"ott\",\n \"ovh\",\n \"page\",\n \"panasonic\",\n \"paris\",\n \"pars\",\n \"partners\",\n \"parts\",\n \"party\",\n \"passagens\",\n \"pay\",\n \"pccw\",\n \"pet\",\n \"pfizer\",\n \"pharmacy\",\n \"phd\",\n \"philips\",\n \"phone\",\n \"photo\",\n \"photography\",\n \"photos\",\n \"physio\",\n \"pics\",\n \"pictet\",\n \"pictures\",\n \"pid\",\n \"pin\",\n \"ping\",\n \"pink\",\n \"pioneer\",\n \"pizza\",\n \"place\",\n \"play\",\n \"playstation\",\n \"plumbing\",\n \"plus\",\n \"pnc\",\n \"pohl\",\n \"poker\",\n \"politie\",\n \"porn\",\n \"pramerica\",\n \"praxi\",\n \"press\",\n \"prime\",\n \"prod\",\n \"productions\",\n \"prof\",\n \"progressive\",\n \"promo\",\n \"properties\",\n \"property\",\n \"protection\",\n \"pru\",\n \"prudential\",\n \"pub\",\n \"pwc\",\n \"qpon\",\n \"quebec\",\n \"quest\",\n \"racing\",\n \"radio\",\n \"read\",\n \"realestate\",\n \"realtor\",\n \"realty\",\n \"recipes\",\n \"red\",\n \"redstone\",\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"reisen\",\n \"reit\",\n \"reliance\",\n \"ren\",\n \"rent\",\n \"rentals\",\n \"repair\",\n \"report\",\n \"republican\",\n \"rest\",\n \"restaurant\",\n \"review\",\n \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\",\n \"ricoh\",\n \"ril\",\n \"rio\",\n \"rip\",\n \"rocher\",\n \"rocks\",\n \"rodeo\",\n \"rogers\",\n \"room\",\n \"rsvp\",\n \"rugby\",\n \"ruhr\",\n \"run\",\n \"rwe\",\n \"ryukyu\",\n \"saarland\",\n \"safe\",\n \"safety\",\n \"sakura\",\n \"sale\",\n \"salon\",\n \"samsclub\",\n \"samsung\",\n \"sandvik\",\n \"sandvikcoromant\",\n \"sanofi\",\n \"sap\",\n \"sarl\",\n \"sas\",\n \"save\",\n \"saxo\",\n \"sbi\",\n \"sbs\",\n \"sca\",\n \"scb\",\n \"schaeffler\",\n \"schmidt\",\n \"scholarships\",\n \"school\",\n \"schule\",\n \"schwarz\",\n \"science\",\n \"scot\",\n \"search\",\n \"seat\",\n \"secure\",\n \"security\",\n \"seek\",\n \"select\",\n \"sener\",\n \"services\",\n \"ses\",\n \"seven\",\n \"sew\",\n \"sex\",\n \"sexy\",\n \"sfr\",\n \"shangrila\",\n \"sharp\",\n \"shaw\",\n \"shell\",\n \"shia\",\n \"shiksha\",\n \"shoes\",\n \"shop\",\n \"shopping\",\n \"shouji\",\n \"show\",\n \"showtime\",\n \"silk\",\n \"sina\",\n \"singles\",\n \"site\",\n \"ski\",\n \"skin\",\n \"sky\",\n \"skype\",\n \"sling\",\n \"smart\",\n \"smile\",\n \"sncf\",\n \"soccer\",\n \"social\",\n \"softbank\",\n \"software\",\n \"sohu\",\n \"solar\",\n \"solutions\",\n \"song\",\n \"sony\",\n \"soy\",\n \"spa\",\n \"space\",\n \"sport\",\n \"spot\",\n \"srl\",\n \"stada\",\n \"staples\",\n \"star\",\n \"statebank\",\n \"statefarm\",\n \"stc\",\n \"stcgroup\",\n \"stockholm\",\n \"storage\",\n \"store\",\n \"stream\",\n \"studio\",\n \"study\",\n \"style\",\n \"sucks\",\n \"supplies\",\n \"supply\",\n \"support\",\n \"surf\",\n \"surgery\",\n \"suzuki\",\n \"swatch\",\n \"swiss\",\n \"sydney\",\n \"systems\",\n \"tab\",\n \"taipei\",\n \"talk\",\n \"taobao\",\n \"target\",\n \"tatamotors\",\n \"tatar\",\n \"tattoo\",\n \"tax\",\n \"taxi\",\n \"tci\",\n \"tdk\",\n \"team\",\n \"tech\",\n \"technology\",\n \"temasek\",\n \"tennis\",\n \"teva\",\n \"thd\",\n \"theater\",\n \"theatre\",\n \"tiaa\",\n \"tickets\",\n \"tienda\",\n \"tiffany\",\n \"tips\",\n \"tires\",\n \"tirol\",\n \"tjmaxx\",\n \"tjx\",\n \"tkmaxx\",\n \"tmall\",\n \"today\",\n \"tokyo\",\n \"tools\",\n \"top\",\n \"toray\",\n \"toshiba\",\n \"total\",\n \"tours\",\n \"town\",\n \"toyota\",\n \"toys\",\n \"trade\",\n \"trading\",\n \"training\",\n \"travel\",\n \"travelchannel\",\n \"travelers\",\n \"travelersinsurance\",\n \"trust\",\n \"trv\",\n \"tube\",\n \"tui\",\n \"tunes\",\n \"tushu\",\n \"tvs\",\n \"ubank\",\n \"ubs\",\n \"unicom\",\n \"university\",\n \"uno\",\n \"uol\",\n \"ups\",\n \"vacations\",\n \"vana\",\n \"vanguard\",\n \"vegas\",\n \"ventures\",\n \"verisign\",\n \"versicherung\",\n \"vet\",\n \"viajes\",\n \"video\",\n \"vig\",\n \"viking\",\n \"villas\",\n \"vin\",\n \"vip\",\n \"virgin\",\n \"visa\",\n \"vision\",\n \"viva\",\n \"vivo\",\n \"vlaanderen\",\n \"vodka\",\n \"volkswagen\",\n \"volvo\",\n \"vote\",\n \"voting\",\n \"voto\",\n \"voyage\",\n \"vuelos\",\n \"wales\",\n \"walmart\",\n \"walter\",\n \"wang\",\n \"wanggou\",\n \"watch\",\n \"watches\",\n \"weather\",\n \"weatherchannel\",\n \"webcam\",\n \"weber\",\n \"website\",\n \"wedding\",\n \"weibo\",\n \"weir\",\n \"whoswho\",\n \"wien\",\n \"wiki\",\n \"williamhill\",\n \"win\",\n \"windows\",\n \"wine\",\n \"winners\",\n \"wme\",\n \"wolterskluwer\",\n \"woodside\",\n \"work\",\n \"works\",\n \"world\",\n \"wow\",\n \"wtc\",\n \"wtf\",\n \"xbox\",\n \"xerox\",\n \"xfinity\",\n \"xihuan\",\n \"xin\",\n \"\\u0915\\u0949\\u092E\",\n \"\\u30BB\\u30FC\\u30EB\",\n \"\\u4F5B\\u5C71\",\n \"\\u6148\\u5584\",\n \"\\u96C6\\u56E2\",\n \"\\u5728\\u7EBF\",\n \"\\u70B9\\u770B\",\n \"\\u0E04\\u0E2D\\u0E21\",\n \"\\u516B\\u5366\",\n \"\\u0645\\u0648\\u0642\\u0639\",\n \"\\u516C\\u76CA\",\n \"\\u516C\\u53F8\",\n \"\\u9999\\u683C\\u91CC\\u62C9\",\n \"\\u7F51\\u7AD9\",\n \"\\u79FB\\u52A8\",\n \"\\u6211\\u7231\\u4F60\",\n \"\\u043C\\u043E\\u0441\\u043A\\u0432\\u0430\",\n \"\\u043A\\u0430\\u0442\\u043E\\u043B\\u0438\\u043A\",\n \"\\u043E\\u043D\\u043B\\u0430\\u0439\\u043D\",\n \"\\u0441\\u0430\\u0439\\u0442\",\n \"\\u8054\\u901A\",\n \"\\u05E7\\u05D5\\u05DD\",\n \"\\u65F6\\u5C1A\",\n \"\\u5FAE\\u535A\",\n \"\\u6DE1\\u9A6C\\u9521\",\n \"\\u30D5\\u30A1\\u30C3\\u30B7\\u30E7\\u30F3\",\n \"\\u043E\\u0440\\u0433\",\n \"\\u0928\\u0947\\u091F\",\n \"\\u30B9\\u30C8\\u30A2\",\n \"\\u30A2\\u30DE\\u30BE\\u30F3\",\n \"\\uC0BC\\uC131\",\n \"\\u5546\\u6807\",\n \"\\u5546\\u5E97\",\n \"\\u5546\\u57CE\",\n \"\\u0434\\u0435\\u0442\\u0438\",\n \"\\u30DD\\u30A4\\u30F3\\u30C8\",\n \"\\u65B0\\u95FB\",\n \"\\u5BB6\\u96FB\",\n \"\\u0643\\u0648\\u0645\",\n \"\\u4E2D\\u6587\\u7F51\",\n \"\\u4E2D\\u4FE1\",\n \"\\u5A31\\u4E50\",\n \"\\u8C37\\u6B4C\",\n \"\\u96FB\\u8A0A\\u76C8\\u79D1\",\n \"\\u8D2D\\u7269\",\n \"\\u30AF\\u30E9\\u30A6\\u30C9\",\n \"\\u901A\\u8CA9\",\n \"\\u7F51\\u5E97\",\n \"\\u0938\\u0902\\u0917\\u0920\\u0928\",\n \"\\u9910\\u5385\",\n \"\\u7F51\\u7EDC\",\n \"\\u043A\\u043E\\u043C\",\n \"\\u4E9A\\u9A6C\\u900A\",\n \"\\u8BFA\\u57FA\\u4E9A\",\n \"\\u98DF\\u54C1\",\n \"\\u98DE\\u5229\\u6D66\",\n \"\\u624B\\u673A\",\n \"\\u0627\\u0631\\u0627\\u0645\\u0643\\u0648\",\n \"\\u0627\\u0644\\u0639\\u0644\\u064A\\u0627\\u0646\",\n \"\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A\",\n \"\\u0628\\u0627\\u0632\\u0627\\u0631\",\n \"\\u0627\\u0628\\u0648\\u0638\\u0628\\u064A\",\n \"\\u0643\\u0627\\u062B\\u0648\\u0644\\u064A\\u0643\",\n \"\\u0647\\u0645\\u0631\\u0627\\u0647\",\n \"\\uB2F7\\uCEF4\",\n \"\\u653F\\u5E9C\",\n \"\\u0634\\u0628\\u0643\\u0629\",\n \"\\u0628\\u064A\\u062A\\u0643\",\n \"\\u0639\\u0631\\u0628\",\n \"\\u673A\\u6784\",\n \"\\u7EC4\\u7EC7\\u673A\\u6784\",\n \"\\u5065\\u5EB7\",\n \"\\u62DB\\u8058\",\n \"\\u0440\\u0443\\u0441\",\n \"\\u5927\\u62FF\",\n \"\\u307F\\u3093\\u306A\",\n \"\\u30B0\\u30FC\\u30B0\\u30EB\",\n \"\\u4E16\\u754C\",\n \"\\u66F8\\u7C4D\",\n \"\\u7F51\\u5740\",\n \"\\uB2F7\\uB137\",\n \"\\u30B3\\u30E0\",\n \"\\u5929\\u4E3B\\u6559\",\n \"\\u6E38\\u620F\",\n \"verm\\xF6gensberater\",\n \"verm\\xF6gensberatung\",\n \"\\u4F01\\u4E1A\",\n \"\\u4FE1\\u606F\",\n \"\\u5609\\u91CC\\u5927\\u9152\\u5E97\",\n \"\\u5609\\u91CC\",\n \"\\u5E7F\\u4E1C\",\n \"\\u653F\\u52A1\",\n \"xyz\",\n \"yachts\",\n \"yahoo\",\n \"yamaxun\",\n \"yandex\",\n \"yodobashi\",\n \"yoga\",\n \"yokohama\",\n \"you\",\n \"youtube\",\n \"yun\",\n \"zappos\",\n \"zara\",\n \"zero\",\n \"zip\",\n \"zone\",\n \"zuerich\",\n \"cc.ua\",\n \"inf.ua\",\n \"ltd.ua\",\n \"611.to\",\n \"graphox.us\",\n \"*.devcdnaccesso.com\",\n \"adobeaemcloud.com\",\n \"*.dev.adobeaemcloud.com\",\n \"hlx.live\",\n \"adobeaemcloud.net\",\n \"hlx.page\",\n \"hlx3.page\",\n \"beep.pl\",\n \"airkitapps.com\",\n \"airkitapps-au.com\",\n \"airkitapps.eu\",\n \"aivencloud.com\",\n \"barsy.ca\",\n \"*.compute.estate\",\n \"*.alces.network\",\n \"kasserver.com\",\n \"altervista.org\",\n \"alwaysdata.net\",\n \"cloudfront.net\",\n \"*.compute.amazonaws.com\",\n \"*.compute-1.amazonaws.com\",\n \"*.compute.amazonaws.com.cn\",\n \"us-east-1.amazonaws.com\",\n \"cn-north-1.eb.amazonaws.com.cn\",\n \"cn-northwest-1.eb.amazonaws.com.cn\",\n \"elasticbeanstalk.com\",\n \"ap-northeast-1.elasticbeanstalk.com\",\n \"ap-northeast-2.elasticbeanstalk.com\",\n \"ap-northeast-3.elasticbeanstalk.com\",\n \"ap-south-1.elasticbeanstalk.com\",\n \"ap-southeast-1.elasticbeanstalk.com\",\n \"ap-southeast-2.elasticbeanstalk.com\",\n \"ca-central-1.elasticbeanstalk.com\",\n \"eu-central-1.elasticbeanstalk.com\",\n \"eu-west-1.elasticbeanstalk.com\",\n \"eu-west-2.elasticbeanstalk.com\",\n \"eu-west-3.elasticbeanstalk.com\",\n \"sa-east-1.elasticbeanstalk.com\",\n \"us-east-1.elasticbeanstalk.com\",\n \"us-east-2.elasticbeanstalk.com\",\n \"us-gov-west-1.elasticbeanstalk.com\",\n \"us-west-1.elasticbeanstalk.com\",\n \"us-west-2.elasticbeanstalk.com\",\n \"*.elb.amazonaws.com\",\n \"*.elb.amazonaws.com.cn\",\n \"awsglobalaccelerator.com\",\n \"s3.amazonaws.com\",\n \"s3-ap-northeast-1.amazonaws.com\",\n \"s3-ap-northeast-2.amazonaws.com\",\n \"s3-ap-south-1.amazonaws.com\",\n \"s3-ap-southeast-1.amazonaws.com\",\n \"s3-ap-southeast-2.amazonaws.com\",\n \"s3-ca-central-1.amazonaws.com\",\n \"s3-eu-central-1.amazonaws.com\",\n \"s3-eu-west-1.amazonaws.com\",\n \"s3-eu-west-2.amazonaws.com\",\n \"s3-eu-west-3.amazonaws.com\",\n \"s3-external-1.amazonaws.com\",\n \"s3-fips-us-gov-west-1.amazonaws.com\",\n \"s3-sa-east-1.amazonaws.com\",\n \"s3-us-gov-west-1.amazonaws.com\",\n \"s3-us-east-2.amazonaws.com\",\n \"s3-us-west-1.amazonaws.com\",\n \"s3-us-west-2.amazonaws.com\",\n \"s3.ap-northeast-2.amazonaws.com\",\n \"s3.ap-south-1.amazonaws.com\",\n \"s3.cn-north-1.amazonaws.com.cn\",\n \"s3.ca-central-1.amazonaws.com\",\n \"s3.eu-central-1.amazonaws.com\",\n \"s3.eu-west-2.amazonaws.com\",\n \"s3.eu-west-3.amazonaws.com\",\n \"s3.us-east-2.amazonaws.com\",\n \"s3.dualstack.ap-northeast-1.amazonaws.com\",\n \"s3.dualstack.ap-northeast-2.amazonaws.com\",\n \"s3.dualstack.ap-south-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-2.amazonaws.com\",\n \"s3.dualstack.ca-central-1.amazonaws.com\",\n \"s3.dualstack.eu-central-1.amazonaws.com\",\n \"s3.dualstack.eu-west-1.amazonaws.com\",\n \"s3.dualstack.eu-west-2.amazonaws.com\",\n \"s3.dualstack.eu-west-3.amazonaws.com\",\n \"s3.dualstack.sa-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-2.amazonaws.com\",\n \"s3-website-us-east-1.amazonaws.com\",\n \"s3-website-us-west-1.amazonaws.com\",\n \"s3-website-us-west-2.amazonaws.com\",\n \"s3-website-ap-northeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-2.amazonaws.com\",\n \"s3-website-eu-west-1.amazonaws.com\",\n \"s3-website-sa-east-1.amazonaws.com\",\n \"s3-website.ap-northeast-2.amazonaws.com\",\n \"s3-website.ap-south-1.amazonaws.com\",\n \"s3-website.ca-central-1.amazonaws.com\",\n \"s3-website.eu-central-1.amazonaws.com\",\n \"s3-website.eu-west-2.amazonaws.com\",\n \"s3-website.eu-west-3.amazonaws.com\",\n \"s3-website.us-east-2.amazonaws.com\",\n \"t3l3p0rt.net\",\n \"tele.amune.org\",\n \"apigee.io\",\n \"siiites.com\",\n \"appspacehosted.com\",\n \"appspaceusercontent.com\",\n \"appudo.net\",\n \"on-aptible.com\",\n \"user.aseinet.ne.jp\",\n \"gv.vc\",\n \"d.gv.vc\",\n \"user.party.eus\",\n \"pimienta.org\",\n \"poivron.org\",\n \"potager.org\",\n \"sweetpepper.org\",\n \"myasustor.com\",\n \"cdn.prod.atlassian-dev.net\",\n \"translated.page\",\n \"myfritz.net\",\n \"onavstack.net\",\n \"*.awdev.ca\",\n \"*.advisor.ws\",\n \"ecommerce-shop.pl\",\n \"b-data.io\",\n \"backplaneapp.io\",\n \"balena-devices.com\",\n \"rs.ba\",\n \"*.banzai.cloud\",\n \"app.banzaicloud.io\",\n \"*.backyards.banzaicloud.io\",\n \"base.ec\",\n \"official.ec\",\n \"buyshop.jp\",\n \"fashionstore.jp\",\n \"handcrafted.jp\",\n \"kawaiishop.jp\",\n \"supersale.jp\",\n \"theshop.jp\",\n \"shopselect.net\",\n \"base.shop\",\n \"*.beget.app\",\n \"betainabox.com\",\n \"bnr.la\",\n \"bitbucket.io\",\n \"blackbaudcdn.net\",\n \"of.je\",\n \"bluebite.io\",\n \"boomla.net\",\n \"boutir.com\",\n \"boxfuse.io\",\n \"square7.ch\",\n \"bplaced.com\",\n \"bplaced.de\",\n \"square7.de\",\n \"bplaced.net\",\n \"square7.net\",\n \"shop.brendly.rs\",\n \"browsersafetymark.io\",\n \"uk0.bigv.io\",\n \"dh.bytemark.co.uk\",\n \"vm.bytemark.co.uk\",\n \"cafjs.com\",\n \"mycd.eu\",\n \"drr.ac\",\n \"uwu.ai\",\n \"carrd.co\",\n \"crd.co\",\n \"ju.mp\",\n \"ae.org\",\n \"br.com\",\n \"cn.com\",\n \"com.de\",\n \"com.se\",\n \"de.com\",\n \"eu.com\",\n \"gb.net\",\n \"hu.net\",\n \"jp.net\",\n \"jpn.com\",\n \"mex.com\",\n \"ru.com\",\n \"sa.com\",\n \"se.net\",\n \"uk.com\",\n \"uk.net\",\n \"us.com\",\n \"za.bz\",\n \"za.com\",\n \"ar.com\",\n \"hu.com\",\n \"kr.com\",\n \"no.com\",\n \"qc.com\",\n \"uy.com\",\n \"africa.com\",\n \"gr.com\",\n \"in.net\",\n \"web.in\",\n \"us.org\",\n \"co.com\",\n \"aus.basketball\",\n \"nz.basketball\",\n \"radio.am\",\n \"radio.fm\",\n \"c.la\",\n \"certmgr.org\",\n \"cx.ua\",\n \"discourse.group\",\n \"discourse.team\",\n \"cleverapps.io\",\n \"clerk.app\",\n \"clerkstage.app\",\n \"*.lcl.dev\",\n \"*.lclstage.dev\",\n \"*.stg.dev\",\n \"*.stgstage.dev\",\n \"clickrising.net\",\n \"c66.me\",\n \"cloud66.ws\",\n \"cloud66.zone\",\n \"jdevcloud.com\",\n \"wpdevcloud.com\",\n \"cloudaccess.host\",\n \"freesite.host\",\n \"cloudaccess.net\",\n \"cloudcontrolled.com\",\n \"cloudcontrolapp.com\",\n \"*.cloudera.site\",\n \"pages.dev\",\n \"trycloudflare.com\",\n \"workers.dev\",\n \"wnext.app\",\n \"co.ca\",\n \"*.otap.co\",\n \"co.cz\",\n \"c.cdn77.org\",\n \"cdn77-ssl.net\",\n \"r.cdn77.net\",\n \"rsc.cdn77.org\",\n \"ssl.origin.cdn77-secure.org\",\n \"cloudns.asia\",\n \"cloudns.biz\",\n \"cloudns.club\",\n \"cloudns.cc\",\n \"cloudns.eu\",\n \"cloudns.in\",\n \"cloudns.info\",\n \"cloudns.org\",\n \"cloudns.pro\",\n \"cloudns.pw\",\n \"cloudns.us\",\n \"cnpy.gdn\",\n \"codeberg.page\",\n \"co.nl\",\n \"co.no\",\n \"webhosting.be\",\n \"hosting-cluster.nl\",\n \"ac.ru\",\n \"edu.ru\",\n \"gov.ru\",\n \"int.ru\",\n \"mil.ru\",\n \"test.ru\",\n \"dyn.cosidns.de\",\n \"dynamisches-dns.de\",\n \"dnsupdater.de\",\n \"internet-dns.de\",\n \"l-o-g-i-n.de\",\n \"dynamic-dns.info\",\n \"feste-ip.net\",\n \"knx-server.net\",\n \"static-access.net\",\n \"realm.cz\",\n \"*.cryptonomic.net\",\n \"cupcake.is\",\n \"curv.dev\",\n \"*.customer-oci.com\",\n \"*.oci.customer-oci.com\",\n \"*.ocp.customer-oci.com\",\n \"*.ocs.customer-oci.com\",\n \"cyon.link\",\n \"cyon.site\",\n \"fnwk.site\",\n \"folionetwork.site\",\n \"platform0.app\",\n \"daplie.me\",\n \"localhost.daplie.me\",\n \"dattolocal.com\",\n \"dattorelay.com\",\n \"dattoweb.com\",\n \"mydatto.com\",\n \"dattolocal.net\",\n \"mydatto.net\",\n \"biz.dk\",\n \"co.dk\",\n \"firm.dk\",\n \"reg.dk\",\n \"store.dk\",\n \"dyndns.dappnode.io\",\n \"*.dapps.earth\",\n \"*.bzz.dapps.earth\",\n \"builtwithdark.com\",\n \"demo.datadetect.com\",\n \"instance.datadetect.com\",\n \"edgestack.me\",\n \"ddns5.com\",\n \"debian.net\",\n \"deno.dev\",\n \"deno-staging.dev\",\n \"dedyn.io\",\n \"deta.app\",\n \"deta.dev\",\n \"*.rss.my.id\",\n \"*.diher.solutions\",\n \"discordsays.com\",\n \"discordsez.com\",\n \"jozi.biz\",\n \"dnshome.de\",\n \"online.th\",\n \"shop.th\",\n \"drayddns.com\",\n \"shoparena.pl\",\n \"dreamhosters.com\",\n \"mydrobo.com\",\n \"drud.io\",\n \"drud.us\",\n \"duckdns.org\",\n \"bip.sh\",\n \"bitbridge.net\",\n \"dy.fi\",\n \"tunk.org\",\n \"dyndns-at-home.com\",\n \"dyndns-at-work.com\",\n \"dyndns-blog.com\",\n \"dyndns-free.com\",\n \"dyndns-home.com\",\n \"dyndns-ip.com\",\n \"dyndns-mail.com\",\n \"dyndns-office.com\",\n \"dyndns-pics.com\",\n \"dyndns-remote.com\",\n \"dyndns-server.com\",\n \"dyndns-web.com\",\n \"dyndns-wiki.com\",\n \"dyndns-work.com\",\n \"dyndns.biz\",\n \"dyndns.info\",\n \"dyndns.org\",\n \"dyndns.tv\",\n \"at-band-camp.net\",\n \"ath.cx\",\n \"barrel-of-knowledge.info\",\n \"barrell-of-knowledge.info\",\n \"better-than.tv\",\n \"blogdns.com\",\n \"blogdns.net\",\n \"blogdns.org\",\n \"blogsite.org\",\n \"boldlygoingnowhere.org\",\n \"broke-it.net\",\n \"buyshouses.net\",\n \"cechire.com\",\n \"dnsalias.com\",\n \"dnsalias.net\",\n \"dnsalias.org\",\n \"dnsdojo.com\",\n \"dnsdojo.net\",\n \"dnsdojo.org\",\n \"does-it.net\",\n \"doesntexist.com\",\n \"doesntexist.org\",\n \"dontexist.com\",\n \"dontexist.net\",\n \"dontexist.org\",\n \"doomdns.com\",\n \"doomdns.org\",\n \"dvrdns.org\",\n \"dyn-o-saur.com\",\n \"dynalias.com\",\n \"dynalias.net\",\n \"dynalias.org\",\n \"dynathome.net\",\n \"dyndns.ws\",\n \"endofinternet.net\",\n \"endofinternet.org\",\n \"endoftheinternet.org\",\n \"est-a-la-maison.com\",\n \"est-a-la-masion.com\",\n \"est-le-patron.com\",\n \"est-mon-blogueur.com\",\n \"for-better.biz\",\n \"for-more.biz\",\n \"for-our.info\",\n \"for-some.biz\",\n \"for-the.biz\",\n \"forgot.her.name\",\n \"forgot.his.name\",\n \"from-ak.com\",\n \"from-al.com\",\n \"from-ar.com\",\n \"from-az.net\",\n \"from-ca.com\",\n \"from-co.net\",\n \"from-ct.com\",\n \"from-dc.com\",\n \"from-de.com\",\n \"from-fl.com\",\n \"from-ga.com\",\n \"from-hi.com\",\n \"from-ia.com\",\n \"from-id.com\",\n \"from-il.com\",\n \"from-in.com\",\n \"from-ks.com\",\n \"from-ky.com\",\n \"from-la.net\",\n \"from-ma.com\",\n \"from-md.com\",\n \"from-me.org\",\n \"from-mi.com\",\n \"from-mn.com\",\n \"from-mo.com\",\n \"from-ms.com\",\n \"from-mt.com\",\n \"from-nc.com\",\n \"from-nd.com\",\n \"from-ne.com\",\n \"from-nh.com\",\n \"from-nj.com\",\n \"from-nm.com\",\n \"from-nv.com\",\n \"from-ny.net\",\n \"from-oh.com\",\n \"from-ok.com\",\n \"from-or.com\",\n \"from-pa.com\",\n \"from-pr.com\",\n \"from-ri.com\",\n \"from-sc.com\",\n \"from-sd.com\",\n \"from-tn.com\",\n \"from-tx.com\",\n \"from-ut.com\",\n \"from-va.com\",\n \"from-vt.com\",\n \"from-wa.com\",\n \"from-wi.com\",\n \"from-wv.com\",\n \"from-wy.com\",\n \"ftpaccess.cc\",\n \"fuettertdasnetz.de\",\n \"game-host.org\",\n \"game-server.cc\",\n \"getmyip.com\",\n \"gets-it.net\",\n \"go.dyndns.org\",\n \"gotdns.com\",\n \"gotdns.org\",\n \"groks-the.info\",\n \"groks-this.info\",\n \"ham-radio-op.net\",\n \"here-for-more.info\",\n \"hobby-site.com\",\n \"hobby-site.org\",\n \"home.dyndns.org\",\n \"homedns.org\",\n \"homeftp.net\",\n \"homeftp.org\",\n \"homeip.net\",\n \"homelinux.com\",\n \"homelinux.net\",\n \"homelinux.org\",\n \"homeunix.com\",\n \"homeunix.net\",\n \"homeunix.org\",\n \"iamallama.com\",\n \"in-the-band.net\",\n \"is-a-anarchist.com\",\n \"is-a-blogger.com\",\n \"is-a-bookkeeper.com\",\n \"is-a-bruinsfan.org\",\n \"is-a-bulls-fan.com\",\n \"is-a-candidate.org\",\n \"is-a-caterer.com\",\n \"is-a-celticsfan.org\",\n \"is-a-chef.com\",\n \"is-a-chef.net\",\n \"is-a-chef.org\",\n \"is-a-conservative.com\",\n \"is-a-cpa.com\",\n \"is-a-cubicle-slave.com\",\n \"is-a-democrat.com\",\n \"is-a-designer.com\",\n \"is-a-doctor.com\",\n \"is-a-financialadvisor.com\",\n \"is-a-geek.com\",\n \"is-a-geek.net\",\n \"is-a-geek.org\",\n \"is-a-green.com\",\n \"is-a-guru.com\",\n \"is-a-hard-worker.com\",\n \"is-a-hunter.com\",\n \"is-a-knight.org\",\n \"is-a-landscaper.com\",\n \"is-a-lawyer.com\",\n \"is-a-liberal.com\",\n \"is-a-libertarian.com\",\n \"is-a-linux-user.org\",\n \"is-a-llama.com\",\n \"is-a-musician.com\",\n \"is-a-nascarfan.com\",\n \"is-a-nurse.com\",\n \"is-a-painter.com\",\n \"is-a-patsfan.org\",\n \"is-a-personaltrainer.com\",\n \"is-a-photographer.com\",\n \"is-a-player.com\",\n \"is-a-republican.com\",\n \"is-a-rockstar.com\",\n \"is-a-socialist.com\",\n \"is-a-soxfan.org\",\n \"is-a-student.com\",\n \"is-a-teacher.com\",\n \"is-a-techie.com\",\n \"is-a-therapist.com\",\n \"is-an-accountant.com\",\n \"is-an-actor.com\",\n \"is-an-actress.com\",\n \"is-an-anarchist.com\",\n \"is-an-artist.com\",\n \"is-an-engineer.com\",\n \"is-an-entertainer.com\",\n \"is-by.us\",\n \"is-certified.com\",\n \"is-found.org\",\n \"is-gone.com\",\n \"is-into-anime.com\",\n \"is-into-cars.com\",\n \"is-into-cartoons.com\",\n \"is-into-games.com\",\n \"is-leet.com\",\n \"is-lost.org\",\n \"is-not-certified.com\",\n \"is-saved.org\",\n \"is-slick.com\",\n \"is-uberleet.com\",\n \"is-very-bad.org\",\n \"is-very-evil.org\",\n \"is-very-good.org\",\n \"is-very-nice.org\",\n \"is-very-sweet.org\",\n \"is-with-theband.com\",\n \"isa-geek.com\",\n \"isa-geek.net\",\n \"isa-geek.org\",\n \"isa-hockeynut.com\",\n \"issmarterthanyou.com\",\n \"isteingeek.de\",\n \"istmein.de\",\n \"kicks-ass.net\",\n \"kicks-ass.org\",\n \"knowsitall.info\",\n \"land-4-sale.us\",\n \"lebtimnetz.de\",\n \"leitungsen.de\",\n \"likes-pie.com\",\n \"likescandy.com\",\n \"merseine.nu\",\n \"mine.nu\",\n \"misconfused.org\",\n \"mypets.ws\",\n \"myphotos.cc\",\n \"neat-url.com\",\n \"office-on-the.net\",\n \"on-the-web.tv\",\n \"podzone.net\",\n \"podzone.org\",\n \"readmyblog.org\",\n \"saves-the-whales.com\",\n \"scrapper-site.net\",\n \"scrapping.cc\",\n \"selfip.biz\",\n \"selfip.com\",\n \"selfip.info\",\n \"selfip.net\",\n \"selfip.org\",\n \"sells-for-less.com\",\n \"sells-for-u.com\",\n \"sells-it.net\",\n \"sellsyourhome.org\",\n \"servebbs.com\",\n \"servebbs.net\",\n \"servebbs.org\",\n \"serveftp.net\",\n \"serveftp.org\",\n \"servegame.org\",\n \"shacknet.nu\",\n \"simple-url.com\",\n \"space-to-rent.com\",\n \"stuff-4-sale.org\",\n \"stuff-4-sale.us\",\n \"teaches-yoga.com\",\n \"thruhere.net\",\n \"traeumtgerade.de\",\n \"webhop.biz\",\n \"webhop.info\",\n \"webhop.net\",\n \"webhop.org\",\n \"worse-than.tv\",\n \"writesthisblog.com\",\n \"ddnss.de\",\n \"dyn.ddnss.de\",\n \"dyndns.ddnss.de\",\n \"dyndns1.de\",\n \"dyn-ip24.de\",\n \"home-webserver.de\",\n \"dyn.home-webserver.de\",\n \"myhome-server.de\",\n \"ddnss.org\",\n \"definima.net\",\n \"definima.io\",\n \"ondigitalocean.app\",\n \"*.digitaloceanspaces.com\",\n \"bci.dnstrace.pro\",\n \"ddnsfree.com\",\n \"ddnsgeek.com\",\n \"giize.com\",\n \"gleeze.com\",\n \"kozow.com\",\n \"loseyourip.com\",\n \"ooguy.com\",\n \"theworkpc.com\",\n \"casacam.net\",\n \"dynu.net\",\n \"accesscam.org\",\n \"camdvr.org\",\n \"freeddns.org\",\n \"mywire.org\",\n \"webredirect.org\",\n \"myddns.rocks\",\n \"blogsite.xyz\",\n \"dynv6.net\",\n \"e4.cz\",\n \"eero.online\",\n \"eero-stage.online\",\n \"elementor.cloud\",\n \"elementor.cool\",\n \"en-root.fr\",\n \"mytuleap.com\",\n \"tuleap-partners.com\",\n \"encr.app\",\n \"encoreapi.com\",\n \"onred.one\",\n \"staging.onred.one\",\n \"eu.encoway.cloud\",\n \"eu.org\",\n \"al.eu.org\",\n \"asso.eu.org\",\n \"at.eu.org\",\n \"au.eu.org\",\n \"be.eu.org\",\n \"bg.eu.org\",\n \"ca.eu.org\",\n \"cd.eu.org\",\n \"ch.eu.org\",\n \"cn.eu.org\",\n \"cy.eu.org\",\n \"cz.eu.org\",\n \"de.eu.org\",\n \"dk.eu.org\",\n \"edu.eu.org\",\n \"ee.eu.org\",\n \"es.eu.org\",\n \"fi.eu.org\",\n \"fr.eu.org\",\n \"gr.eu.org\",\n \"hr.eu.org\",\n \"hu.eu.org\",\n \"ie.eu.org\",\n \"il.eu.org\",\n \"in.eu.org\",\n \"int.eu.org\",\n \"is.eu.org\",\n \"it.eu.org\",\n \"jp.eu.org\",\n \"kr.eu.org\",\n \"lt.eu.org\",\n \"lu.eu.org\",\n \"lv.eu.org\",\n \"mc.eu.org\",\n \"me.eu.org\",\n \"mk.eu.org\",\n \"mt.eu.org\",\n \"my.eu.org\",\n \"net.eu.org\",\n \"ng.eu.org\",\n \"nl.eu.org\",\n \"no.eu.org\",\n \"nz.eu.org\",\n \"paris.eu.org\",\n \"pl.eu.org\",\n \"pt.eu.org\",\n \"q-a.eu.org\",\n \"ro.eu.org\",\n \"ru.eu.org\",\n \"se.eu.org\",\n \"si.eu.org\",\n \"sk.eu.org\",\n \"tr.eu.org\",\n \"uk.eu.org\",\n \"us.eu.org\",\n \"eurodir.ru\",\n \"eu-1.evennode.com\",\n \"eu-2.evennode.com\",\n \"eu-3.evennode.com\",\n \"eu-4.evennode.com\",\n \"us-1.evennode.com\",\n \"us-2.evennode.com\",\n \"us-3.evennode.com\",\n \"us-4.evennode.com\",\n \"twmail.cc\",\n \"twmail.net\",\n \"twmail.org\",\n \"mymailer.com.tw\",\n \"url.tw\",\n \"onfabrica.com\",\n \"apps.fbsbx.com\",\n \"ru.net\",\n \"adygeya.ru\",\n \"bashkiria.ru\",\n \"bir.ru\",\n \"cbg.ru\",\n \"com.ru\",\n \"dagestan.ru\",\n \"grozny.ru\",\n \"kalmykia.ru\",\n \"kustanai.ru\",\n \"marine.ru\",\n \"mordovia.ru\",\n \"msk.ru\",\n \"mytis.ru\",\n \"nalchik.ru\",\n \"nov.ru\",\n \"pyatigorsk.ru\",\n \"spb.ru\",\n \"vladikavkaz.ru\",\n \"vladimir.ru\",\n \"abkhazia.su\",\n \"adygeya.su\",\n \"aktyubinsk.su\",\n \"arkhangelsk.su\",\n \"armenia.su\",\n \"ashgabad.su\",\n \"azerbaijan.su\",\n \"balashov.su\",\n \"bashkiria.su\",\n \"bryansk.su\",\n \"bukhara.su\",\n \"chimkent.su\",\n \"dagestan.su\",\n \"east-kazakhstan.su\",\n \"exnet.su\",\n \"georgia.su\",\n \"grozny.su\",\n \"ivanovo.su\",\n \"jambyl.su\",\n \"kalmykia.su\",\n \"kaluga.su\",\n \"karacol.su\",\n \"karaganda.su\",\n \"karelia.su\",\n \"khakassia.su\",\n \"krasnodar.su\",\n \"kurgan.su\",\n \"kustanai.su\",\n \"lenug.su\",\n \"mangyshlak.su\",\n \"mordovia.su\",\n \"msk.su\",\n \"murmansk.su\",\n \"nalchik.su\",\n \"navoi.su\",\n \"north-kazakhstan.su\",\n \"nov.su\",\n \"obninsk.su\",\n \"penza.su\",\n \"pokrovsk.su\",\n \"sochi.su\",\n \"spb.su\",\n \"tashkent.su\",\n \"termez.su\",\n \"togliatti.su\",\n \"troitsk.su\",\n \"tselinograd.su\",\n \"tula.su\",\n \"tuva.su\",\n \"vladikavkaz.su\",\n \"vladimir.su\",\n \"vologda.su\",\n \"channelsdvr.net\",\n \"u.channelsdvr.net\",\n \"edgecompute.app\",\n \"fastly-terrarium.com\",\n \"fastlylb.net\",\n \"map.fastlylb.net\",\n \"freetls.fastly.net\",\n \"map.fastly.net\",\n \"a.prod.fastly.net\",\n \"global.prod.fastly.net\",\n \"a.ssl.fastly.net\",\n \"b.ssl.fastly.net\",\n \"global.ssl.fastly.net\",\n \"fastvps-server.com\",\n \"fastvps.host\",\n \"myfast.host\",\n \"fastvps.site\",\n \"myfast.space\",\n \"fedorainfracloud.org\",\n \"fedorapeople.org\",\n \"cloud.fedoraproject.org\",\n \"app.os.fedoraproject.org\",\n \"app.os.stg.fedoraproject.org\",\n \"conn.uk\",\n \"copro.uk\",\n \"hosp.uk\",\n \"mydobiss.com\",\n \"fh-muenster.io\",\n \"filegear.me\",\n \"filegear-au.me\",\n \"filegear-de.me\",\n \"filegear-gb.me\",\n \"filegear-ie.me\",\n \"filegear-jp.me\",\n \"filegear-sg.me\",\n \"firebaseapp.com\",\n \"fireweb.app\",\n \"flap.id\",\n \"onflashdrive.app\",\n \"fldrv.com\",\n \"fly.dev\",\n \"edgeapp.net\",\n \"shw.io\",\n \"flynnhosting.net\",\n \"forgeblocks.com\",\n \"id.forgerock.io\",\n \"framer.app\",\n \"framercanvas.com\",\n \"*.frusky.de\",\n \"ravpage.co.il\",\n \"0e.vc\",\n \"freebox-os.com\",\n \"freeboxos.com\",\n \"fbx-os.fr\",\n \"fbxos.fr\",\n \"freebox-os.fr\",\n \"freeboxos.fr\",\n \"freedesktop.org\",\n \"freemyip.com\",\n \"wien.funkfeuer.at\",\n \"*.futurecms.at\",\n \"*.ex.futurecms.at\",\n \"*.in.futurecms.at\",\n \"futurehosting.at\",\n \"futuremailing.at\",\n \"*.ex.ortsinfo.at\",\n \"*.kunden.ortsinfo.at\",\n \"*.statics.cloud\",\n \"independent-commission.uk\",\n \"independent-inquest.uk\",\n \"independent-inquiry.uk\",\n \"independent-panel.uk\",\n \"independent-review.uk\",\n \"public-inquiry.uk\",\n \"royal-commission.uk\",\n \"campaign.gov.uk\",\n \"service.gov.uk\",\n \"api.gov.uk\",\n \"gehirn.ne.jp\",\n \"usercontent.jp\",\n \"gentapps.com\",\n \"gentlentapis.com\",\n \"lab.ms\",\n \"cdn-edges.net\",\n \"ghost.io\",\n \"gsj.bz\",\n \"githubusercontent.com\",\n \"githubpreview.dev\",\n \"github.io\",\n \"gitlab.io\",\n \"gitapp.si\",\n \"gitpage.si\",\n \"glitch.me\",\n \"nog.community\",\n \"co.ro\",\n \"shop.ro\",\n \"lolipop.io\",\n \"angry.jp\",\n \"babyblue.jp\",\n \"babymilk.jp\",\n \"backdrop.jp\",\n \"bambina.jp\",\n \"bitter.jp\",\n \"blush.jp\",\n \"boo.jp\",\n \"boy.jp\",\n \"boyfriend.jp\",\n \"but.jp\",\n \"candypop.jp\",\n \"capoo.jp\",\n \"catfood.jp\",\n \"cheap.jp\",\n \"chicappa.jp\",\n \"chillout.jp\",\n \"chips.jp\",\n \"chowder.jp\",\n \"chu.jp\",\n \"ciao.jp\",\n \"cocotte.jp\",\n \"coolblog.jp\",\n \"cranky.jp\",\n \"cutegirl.jp\",\n \"daa.jp\",\n \"deca.jp\",\n \"deci.jp\",\n \"digick.jp\",\n \"egoism.jp\",\n \"fakefur.jp\",\n \"fem.jp\",\n \"flier.jp\",\n \"floppy.jp\",\n \"fool.jp\",\n \"frenchkiss.jp\",\n \"girlfriend.jp\",\n \"girly.jp\",\n \"gloomy.jp\",\n \"gonna.jp\",\n \"greater.jp\",\n \"hacca.jp\",\n \"heavy.jp\",\n \"her.jp\",\n \"hiho.jp\",\n \"hippy.jp\",\n \"holy.jp\",\n \"hungry.jp\",\n \"icurus.jp\",\n \"itigo.jp\",\n \"jellybean.jp\",\n \"kikirara.jp\",\n \"kill.jp\",\n \"kilo.jp\",\n \"kuron.jp\",\n \"littlestar.jp\",\n \"lolipopmc.jp\",\n \"lolitapunk.jp\",\n \"lomo.jp\",\n \"lovepop.jp\",\n \"lovesick.jp\",\n \"main.jp\",\n \"mods.jp\",\n \"mond.jp\",\n \"mongolian.jp\",\n \"moo.jp\",\n \"namaste.jp\",\n \"nikita.jp\",\n \"nobushi.jp\",\n \"noor.jp\",\n \"oops.jp\",\n \"parallel.jp\",\n \"parasite.jp\",\n \"pecori.jp\",\n \"peewee.jp\",\n \"penne.jp\",\n \"pepper.jp\",\n \"perma.jp\",\n \"pigboat.jp\",\n \"pinoko.jp\",\n \"punyu.jp\",\n \"pupu.jp\",\n \"pussycat.jp\",\n \"pya.jp\",\n \"raindrop.jp\",\n \"readymade.jp\",\n \"sadist.jp\",\n \"schoolbus.jp\",\n \"secret.jp\",\n \"staba.jp\",\n \"stripper.jp\",\n \"sub.jp\",\n \"sunnyday.jp\",\n \"thick.jp\",\n \"tonkotsu.jp\",\n \"under.jp\",\n \"upper.jp\",\n \"velvet.jp\",\n \"verse.jp\",\n \"versus.jp\",\n \"vivian.jp\",\n \"watson.jp\",\n \"weblike.jp\",\n \"whitesnow.jp\",\n \"zombie.jp\",\n \"heteml.net\",\n \"cloudapps.digital\",\n \"london.cloudapps.digital\",\n \"pymnt.uk\",\n \"homeoffice.gov.uk\",\n \"ro.im\",\n \"goip.de\",\n \"run.app\",\n \"a.run.app\",\n \"web.app\",\n \"*.0emm.com\",\n \"appspot.com\",\n \"*.r.appspot.com\",\n \"codespot.com\",\n \"googleapis.com\",\n \"googlecode.com\",\n \"pagespeedmobilizer.com\",\n \"publishproxy.com\",\n \"withgoogle.com\",\n \"withyoutube.com\",\n \"*.gateway.dev\",\n \"cloud.goog\",\n \"translate.goog\",\n \"*.usercontent.goog\",\n \"cloudfunctions.net\",\n \"blogspot.ae\",\n \"blogspot.al\",\n \"blogspot.am\",\n \"blogspot.ba\",\n \"blogspot.be\",\n \"blogspot.bg\",\n \"blogspot.bj\",\n \"blogspot.ca\",\n \"blogspot.cf\",\n \"blogspot.ch\",\n \"blogspot.cl\",\n \"blogspot.co.at\",\n \"blogspot.co.id\",\n \"blogspot.co.il\",\n \"blogspot.co.ke\",\n \"blogspot.co.nz\",\n \"blogspot.co.uk\",\n \"blogspot.co.za\",\n \"blogspot.com\",\n \"blogspot.com.ar\",\n \"blogspot.com.au\",\n \"blogspot.com.br\",\n \"blogspot.com.by\",\n \"blogspot.com.co\",\n \"blogspot.com.cy\",\n \"blogspot.com.ee\",\n \"blogspot.com.eg\",\n \"blogspot.com.es\",\n \"blogspot.com.mt\",\n \"blogspot.com.ng\",\n \"blogspot.com.tr\",\n \"blogspot.com.uy\",\n \"blogspot.cv\",\n \"blogspot.cz\",\n \"blogspot.de\",\n \"blogspot.dk\",\n \"blogspot.fi\",\n \"blogspot.fr\",\n \"blogspot.gr\",\n \"blogspot.hk\",\n \"blogspot.hr\",\n \"blogspot.hu\",\n \"blogspot.ie\",\n \"blogspot.in\",\n \"blogspot.is\",\n \"blogspot.it\",\n \"blogspot.jp\",\n \"blogspot.kr\",\n \"blogspot.li\",\n \"blogspot.lt\",\n \"blogspot.lu\",\n \"blogspot.md\",\n \"blogspot.mk\",\n \"blogspot.mr\",\n \"blogspot.mx\",\n \"blogspot.my\",\n \"blogspot.nl\",\n \"blogspot.no\",\n \"blogspot.pe\",\n \"blogspot.pt\",\n \"blogspot.qa\",\n \"blogspot.re\",\n \"blogspot.ro\",\n \"blogspot.rs\",\n \"blogspot.ru\",\n \"blogspot.se\",\n \"blogspot.sg\",\n \"blogspot.si\",\n \"blogspot.sk\",\n \"blogspot.sn\",\n \"blogspot.td\",\n \"blogspot.tw\",\n \"blogspot.ug\",\n \"blogspot.vn\",\n \"goupile.fr\",\n \"gov.nl\",\n \"awsmppl.com\",\n \"g\\xFCnstigbestellen.de\",\n \"g\\xFCnstigliefern.de\",\n \"fin.ci\",\n \"free.hr\",\n \"caa.li\",\n \"ua.rs\",\n \"conf.se\",\n \"hs.zone\",\n \"hs.run\",\n \"hashbang.sh\",\n \"hasura.app\",\n \"hasura-app.io\",\n \"pages.it.hs-heilbronn.de\",\n \"hepforge.org\",\n \"herokuapp.com\",\n \"herokussl.com\",\n \"ravendb.cloud\",\n \"myravendb.com\",\n \"ravendb.community\",\n \"ravendb.me\",\n \"development.run\",\n \"ravendb.run\",\n \"homesklep.pl\",\n \"secaas.hk\",\n \"hoplix.shop\",\n \"orx.biz\",\n \"biz.gl\",\n \"col.ng\",\n \"firm.ng\",\n \"gen.ng\",\n \"ltd.ng\",\n \"ngo.ng\",\n \"edu.scot\",\n \"sch.so\",\n \"hostyhosting.io\",\n \"h\\xE4kkinen.fi\",\n \"*.moonscale.io\",\n \"moonscale.net\",\n \"iki.fi\",\n \"ibxos.it\",\n \"iliadboxos.it\",\n \"impertrixcdn.com\",\n \"impertrix.com\",\n \"smushcdn.com\",\n \"wphostedmail.com\",\n \"wpmucdn.com\",\n \"tempurl.host\",\n \"wpmudev.host\",\n \"dyn-berlin.de\",\n \"in-berlin.de\",\n \"in-brb.de\",\n \"in-butter.de\",\n \"in-dsl.de\",\n \"in-dsl.net\",\n \"in-dsl.org\",\n \"in-vpn.de\",\n \"in-vpn.net\",\n \"in-vpn.org\",\n \"biz.at\",\n \"info.at\",\n \"info.cx\",\n \"ac.leg.br\",\n \"al.leg.br\",\n \"am.leg.br\",\n \"ap.leg.br\",\n \"ba.leg.br\",\n \"ce.leg.br\",\n \"df.leg.br\",\n \"es.leg.br\",\n \"go.leg.br\",\n \"ma.leg.br\",\n \"mg.leg.br\",\n \"ms.leg.br\",\n \"mt.leg.br\",\n \"pa.leg.br\",\n \"pb.leg.br\",\n \"pe.leg.br\",\n \"pi.leg.br\",\n \"pr.leg.br\",\n \"rj.leg.br\",\n \"rn.leg.br\",\n \"ro.leg.br\",\n \"rr.leg.br\",\n \"rs.leg.br\",\n \"sc.leg.br\",\n \"se.leg.br\",\n \"sp.leg.br\",\n \"to.leg.br\",\n \"pixolino.com\",\n \"na4u.ru\",\n \"iopsys.se\",\n \"ipifony.net\",\n \"iservschule.de\",\n \"mein-iserv.de\",\n \"schulplattform.de\",\n \"schulserver.de\",\n \"test-iserv.de\",\n \"iserv.dev\",\n \"iobb.net\",\n \"mel.cloudlets.com.au\",\n \"cloud.interhostsolutions.be\",\n \"users.scale.virtualcloud.com.br\",\n \"mycloud.by\",\n \"alp1.ae.flow.ch\",\n \"appengine.flow.ch\",\n \"es-1.axarnet.cloud\",\n \"diadem.cloud\",\n \"vip.jelastic.cloud\",\n \"jele.cloud\",\n \"it1.eur.aruba.jenv-aruba.cloud\",\n \"it1.jenv-aruba.cloud\",\n \"keliweb.cloud\",\n \"cs.keliweb.cloud\",\n \"oxa.cloud\",\n \"tn.oxa.cloud\",\n \"uk.oxa.cloud\",\n \"primetel.cloud\",\n \"uk.primetel.cloud\",\n \"ca.reclaim.cloud\",\n \"uk.reclaim.cloud\",\n \"us.reclaim.cloud\",\n \"ch.trendhosting.cloud\",\n \"de.trendhosting.cloud\",\n \"jele.club\",\n \"amscompute.com\",\n \"clicketcloud.com\",\n \"dopaas.com\",\n \"hidora.com\",\n \"paas.hosted-by-previder.com\",\n \"rag-cloud.hosteur.com\",\n \"rag-cloud-ch.hosteur.com\",\n \"jcloud.ik-server.com\",\n \"jcloud-ver-jpc.ik-server.com\",\n \"demo.jelastic.com\",\n \"kilatiron.com\",\n \"paas.massivegrid.com\",\n \"jed.wafaicloud.com\",\n \"lon.wafaicloud.com\",\n \"ryd.wafaicloud.com\",\n \"j.scaleforce.com.cy\",\n \"jelastic.dogado.eu\",\n \"fi.cloudplatform.fi\",\n \"demo.datacenter.fi\",\n \"paas.datacenter.fi\",\n \"jele.host\",\n \"mircloud.host\",\n \"paas.beebyte.io\",\n \"sekd1.beebyteapp.io\",\n \"jele.io\",\n \"cloud-fr1.unispace.io\",\n \"jc.neen.it\",\n \"cloud.jelastic.open.tim.it\",\n \"jcloud.kz\",\n \"upaas.kazteleport.kz\",\n \"cloudjiffy.net\",\n \"fra1-de.cloudjiffy.net\",\n \"west1-us.cloudjiffy.net\",\n \"jls-sto1.elastx.net\",\n \"jls-sto2.elastx.net\",\n \"jls-sto3.elastx.net\",\n \"faststacks.net\",\n \"fr-1.paas.massivegrid.net\",\n \"lon-1.paas.massivegrid.net\",\n \"lon-2.paas.massivegrid.net\",\n \"ny-1.paas.massivegrid.net\",\n \"ny-2.paas.massivegrid.net\",\n \"sg-1.paas.massivegrid.net\",\n \"jelastic.saveincloud.net\",\n \"nordeste-idc.saveincloud.net\",\n \"j.scaleforce.net\",\n \"jelastic.tsukaeru.net\",\n \"sdscloud.pl\",\n \"unicloud.pl\",\n \"mircloud.ru\",\n \"jelastic.regruhosting.ru\",\n \"enscaled.sg\",\n \"jele.site\",\n \"jelastic.team\",\n \"orangecloud.tn\",\n \"j.layershift.co.uk\",\n \"phx.enscaled.us\",\n \"mircloud.us\",\n \"myjino.ru\",\n \"*.hosting.myjino.ru\",\n \"*.landing.myjino.ru\",\n \"*.spectrum.myjino.ru\",\n \"*.vps.myjino.ru\",\n \"jotelulu.cloud\",\n \"*.triton.zone\",\n \"*.cns.joyent.com\",\n \"js.org\",\n \"kaas.gg\",\n \"khplay.nl\",\n \"ktistory.com\",\n \"kapsi.fi\",\n \"keymachine.de\",\n \"kinghost.net\",\n \"uni5.net\",\n \"knightpoint.systems\",\n \"koobin.events\",\n \"oya.to\",\n \"kuleuven.cloud\",\n \"ezproxy.kuleuven.be\",\n \"co.krd\",\n \"edu.krd\",\n \"krellian.net\",\n \"webthings.io\",\n \"git-repos.de\",\n \"lcube-server.de\",\n \"svn-repos.de\",\n \"leadpages.co\",\n \"lpages.co\",\n \"lpusercontent.com\",\n \"lelux.site\",\n \"co.business\",\n \"co.education\",\n \"co.events\",\n \"co.financial\",\n \"co.network\",\n \"co.place\",\n \"co.technology\",\n \"app.lmpm.com\",\n \"linkyard.cloud\",\n \"linkyard-cloud.ch\",\n \"members.linode.com\",\n \"*.nodebalancer.linode.com\",\n \"*.linodeobjects.com\",\n \"ip.linodeusercontent.com\",\n \"we.bs\",\n \"*.user.localcert.dev\",\n \"localzone.xyz\",\n \"loginline.app\",\n \"loginline.dev\",\n \"loginline.io\",\n \"loginline.services\",\n \"loginline.site\",\n \"servers.run\",\n \"lohmus.me\",\n \"krasnik.pl\",\n \"leczna.pl\",\n \"lubartow.pl\",\n \"lublin.pl\",\n \"poniatowa.pl\",\n \"swidnik.pl\",\n \"glug.org.uk\",\n \"lug.org.uk\",\n \"lugs.org.uk\",\n \"barsy.bg\",\n \"barsy.co.uk\",\n \"barsyonline.co.uk\",\n \"barsycenter.com\",\n \"barsyonline.com\",\n \"barsy.club\",\n \"barsy.de\",\n \"barsy.eu\",\n \"barsy.in\",\n \"barsy.info\",\n \"barsy.io\",\n \"barsy.me\",\n \"barsy.menu\",\n \"barsy.mobi\",\n \"barsy.net\",\n \"barsy.online\",\n \"barsy.org\",\n \"barsy.pro\",\n \"barsy.pub\",\n \"barsy.ro\",\n \"barsy.shop\",\n \"barsy.site\",\n \"barsy.support\",\n \"barsy.uk\",\n \"*.magentosite.cloud\",\n \"mayfirst.info\",\n \"mayfirst.org\",\n \"hb.cldmail.ru\",\n \"cn.vu\",\n \"mazeplay.com\",\n \"mcpe.me\",\n \"mcdir.me\",\n \"mcdir.ru\",\n \"mcpre.ru\",\n \"vps.mcdir.ru\",\n \"mediatech.by\",\n \"mediatech.dev\",\n \"hra.health\",\n \"miniserver.com\",\n \"memset.net\",\n \"messerli.app\",\n \"*.cloud.metacentrum.cz\",\n \"custom.metacentrum.cz\",\n \"flt.cloud.muni.cz\",\n \"usr.cloud.muni.cz\",\n \"meteorapp.com\",\n \"eu.meteorapp.com\",\n \"co.pl\",\n \"*.azurecontainer.io\",\n \"azurewebsites.net\",\n \"azure-mobile.net\",\n \"cloudapp.net\",\n \"azurestaticapps.net\",\n \"1.azurestaticapps.net\",\n \"centralus.azurestaticapps.net\",\n \"eastasia.azurestaticapps.net\",\n \"eastus2.azurestaticapps.net\",\n \"westeurope.azurestaticapps.net\",\n \"westus2.azurestaticapps.net\",\n \"csx.cc\",\n \"mintere.site\",\n \"forte.id\",\n \"mozilla-iot.org\",\n \"bmoattachments.org\",\n \"net.ru\",\n \"org.ru\",\n \"pp.ru\",\n \"hostedpi.com\",\n \"customer.mythic-beasts.com\",\n \"caracal.mythic-beasts.com\",\n \"fentiger.mythic-beasts.com\",\n \"lynx.mythic-beasts.com\",\n \"ocelot.mythic-beasts.com\",\n \"oncilla.mythic-beasts.com\",\n \"onza.mythic-beasts.com\",\n \"sphinx.mythic-beasts.com\",\n \"vs.mythic-beasts.com\",\n \"x.mythic-beasts.com\",\n \"yali.mythic-beasts.com\",\n \"cust.retrosnub.co.uk\",\n \"ui.nabu.casa\",\n \"pony.club\",\n \"of.fashion\",\n \"in.london\",\n \"of.london\",\n \"from.marketing\",\n \"with.marketing\",\n \"for.men\",\n \"repair.men\",\n \"and.mom\",\n \"for.mom\",\n \"for.one\",\n \"under.one\",\n \"for.sale\",\n \"that.win\",\n \"from.work\",\n \"to.work\",\n \"cloud.nospamproxy.com\",\n \"netlify.app\",\n \"4u.com\",\n \"ngrok.io\",\n \"nh-serv.co.uk\",\n \"nfshost.com\",\n \"*.developer.app\",\n \"noop.app\",\n \"*.northflank.app\",\n \"*.build.run\",\n \"*.code.run\",\n \"*.database.run\",\n \"*.migration.run\",\n \"noticeable.news\",\n \"dnsking.ch\",\n \"mypi.co\",\n \"n4t.co\",\n \"001www.com\",\n \"ddnslive.com\",\n \"myiphost.com\",\n \"forumz.info\",\n \"16-b.it\",\n \"32-b.it\",\n \"64-b.it\",\n \"soundcast.me\",\n \"tcp4.me\",\n \"dnsup.net\",\n \"hicam.net\",\n \"now-dns.net\",\n \"ownip.net\",\n \"vpndns.net\",\n \"dynserv.org\",\n \"now-dns.org\",\n \"x443.pw\",\n \"now-dns.top\",\n \"ntdll.top\",\n \"freeddns.us\",\n \"crafting.xyz\",\n \"zapto.xyz\",\n \"nsupdate.info\",\n \"nerdpol.ovh\",\n \"blogsyte.com\",\n \"brasilia.me\",\n \"cable-modem.org\",\n \"ciscofreak.com\",\n \"collegefan.org\",\n \"couchpotatofries.org\",\n \"damnserver.com\",\n \"ddns.me\",\n \"ditchyourip.com\",\n \"dnsfor.me\",\n \"dnsiskinky.com\",\n \"dvrcam.info\",\n \"dynns.com\",\n \"eating-organic.net\",\n \"fantasyleague.cc\",\n \"geekgalaxy.com\",\n \"golffan.us\",\n \"health-carereform.com\",\n \"homesecuritymac.com\",\n \"homesecuritypc.com\",\n \"hopto.me\",\n \"ilovecollege.info\",\n \"loginto.me\",\n \"mlbfan.org\",\n \"mmafan.biz\",\n \"myactivedirectory.com\",\n \"mydissent.net\",\n \"myeffect.net\",\n \"mymediapc.net\",\n \"mypsx.net\",\n \"mysecuritycamera.com\",\n \"mysecuritycamera.net\",\n \"mysecuritycamera.org\",\n \"net-freaks.com\",\n \"nflfan.org\",\n \"nhlfan.net\",\n \"no-ip.ca\",\n \"no-ip.co.uk\",\n \"no-ip.net\",\n \"noip.us\",\n \"onthewifi.com\",\n \"pgafan.net\",\n \"point2this.com\",\n \"pointto.us\",\n \"privatizehealthinsurance.net\",\n \"quicksytes.com\",\n \"read-books.org\",\n \"securitytactics.com\",\n \"serveexchange.com\",\n \"servehumour.com\",\n \"servep2p.com\",\n \"servesarcasm.com\",\n \"stufftoread.com\",\n \"ufcfan.org\",\n \"unusualperson.com\",\n \"workisboring.com\",\n \"3utilities.com\",\n \"bounceme.net\",\n \"ddns.net\",\n \"ddnsking.com\",\n \"gotdns.ch\",\n \"hopto.org\",\n \"myftp.biz\",\n \"myftp.org\",\n \"myvnc.com\",\n \"no-ip.biz\",\n \"no-ip.info\",\n \"no-ip.org\",\n \"noip.me\",\n \"redirectme.net\",\n \"servebeer.com\",\n \"serveblog.net\",\n \"servecounterstrike.com\",\n \"serveftp.com\",\n \"servegame.com\",\n \"servehalflife.com\",\n \"servehttp.com\",\n \"serveirc.com\",\n \"serveminecraft.net\",\n \"servemp3.com\",\n \"servepics.com\",\n \"servequake.com\",\n \"sytes.net\",\n \"webhop.me\",\n \"zapto.org\",\n \"stage.nodeart.io\",\n \"pcloud.host\",\n \"nyc.mn\",\n \"static.observableusercontent.com\",\n \"cya.gg\",\n \"omg.lol\",\n \"cloudycluster.net\",\n \"omniwe.site\",\n \"service.one\",\n \"nid.io\",\n \"opensocial.site\",\n \"opencraft.hosting\",\n \"orsites.com\",\n \"operaunite.com\",\n \"tech.orange\",\n \"authgear-staging.com\",\n \"authgearapps.com\",\n \"skygearapp.com\",\n \"outsystemscloud.com\",\n \"*.webpaas.ovh.net\",\n \"*.hosting.ovh.net\",\n \"ownprovider.com\",\n \"own.pm\",\n \"*.owo.codes\",\n \"ox.rs\",\n \"oy.lc\",\n \"pgfog.com\",\n \"pagefrontapp.com\",\n \"pagexl.com\",\n \"*.paywhirl.com\",\n \"bar0.net\",\n \"bar1.net\",\n \"bar2.net\",\n \"rdv.to\",\n \"art.pl\",\n \"gliwice.pl\",\n \"krakow.pl\",\n \"poznan.pl\",\n \"wroc.pl\",\n \"zakopane.pl\",\n \"pantheonsite.io\",\n \"gotpantheon.com\",\n \"mypep.link\",\n \"perspecta.cloud\",\n \"lk3.ru\",\n \"on-web.fr\",\n \"bc.platform.sh\",\n \"ent.platform.sh\",\n \"eu.platform.sh\",\n \"us.platform.sh\",\n \"*.platformsh.site\",\n \"*.tst.site\",\n \"platter-app.com\",\n \"platter-app.dev\",\n \"platterp.us\",\n \"pdns.page\",\n \"plesk.page\",\n \"pleskns.com\",\n \"dyn53.io\",\n \"onporter.run\",\n \"co.bn\",\n \"postman-echo.com\",\n \"pstmn.io\",\n \"mock.pstmn.io\",\n \"httpbin.org\",\n \"prequalifyme.today\",\n \"xen.prgmr.com\",\n \"priv.at\",\n \"prvcy.page\",\n \"*.dweb.link\",\n \"protonet.io\",\n \"chirurgiens-dentistes-en-france.fr\",\n \"byen.site\",\n \"pubtls.org\",\n \"pythonanywhere.com\",\n \"eu.pythonanywhere.com\",\n \"qoto.io\",\n \"qualifioapp.com\",\n \"qbuser.com\",\n \"cloudsite.builders\",\n \"instances.spawn.cc\",\n \"instantcloud.cn\",\n \"ras.ru\",\n \"qa2.com\",\n \"qcx.io\",\n \"*.sys.qcx.io\",\n \"dev-myqnapcloud.com\",\n \"alpha-myqnapcloud.com\",\n \"myqnapcloud.com\",\n \"*.quipelements.com\",\n \"vapor.cloud\",\n \"vaporcloud.io\",\n \"rackmaze.com\",\n \"rackmaze.net\",\n \"g.vbrplsbx.io\",\n \"*.on-k3s.io\",\n \"*.on-rancher.cloud\",\n \"*.on-rio.io\",\n \"readthedocs.io\",\n \"rhcloud.com\",\n \"app.render.com\",\n \"onrender.com\",\n \"repl.co\",\n \"id.repl.co\",\n \"repl.run\",\n \"resindevice.io\",\n \"devices.resinstaging.io\",\n \"hzc.io\",\n \"wellbeingzone.eu\",\n \"wellbeingzone.co.uk\",\n \"adimo.co.uk\",\n \"itcouldbewor.se\",\n \"git-pages.rit.edu\",\n \"rocky.page\",\n \"\\u0431\\u0438\\u0437.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u043E\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u0440\\u044B\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0438\\u0440.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0441\\u043A.\\u0440\\u0443\\u0441\",\n \"\\u043E\\u0440\\u0433.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u0430\\u043C\\u0430\\u0440\\u0430.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043E\\u0447\\u0438.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043F\\u0431.\\u0440\\u0443\\u0441\",\n \"\\u044F.\\u0440\\u0443\\u0441\",\n \"*.builder.code.com\",\n \"*.dev-builder.code.com\",\n \"*.stg-builder.code.com\",\n \"sandcats.io\",\n \"logoip.de\",\n \"logoip.com\",\n \"fr-par-1.baremetal.scw.cloud\",\n \"fr-par-2.baremetal.scw.cloud\",\n \"nl-ams-1.baremetal.scw.cloud\",\n \"fnc.fr-par.scw.cloud\",\n \"functions.fnc.fr-par.scw.cloud\",\n \"k8s.fr-par.scw.cloud\",\n \"nodes.k8s.fr-par.scw.cloud\",\n \"s3.fr-par.scw.cloud\",\n \"s3-website.fr-par.scw.cloud\",\n \"whm.fr-par.scw.cloud\",\n \"priv.instances.scw.cloud\",\n \"pub.instances.scw.cloud\",\n \"k8s.scw.cloud\",\n \"k8s.nl-ams.scw.cloud\",\n \"nodes.k8s.nl-ams.scw.cloud\",\n \"s3.nl-ams.scw.cloud\",\n \"s3-website.nl-ams.scw.cloud\",\n \"whm.nl-ams.scw.cloud\",\n \"k8s.pl-waw.scw.cloud\",\n \"nodes.k8s.pl-waw.scw.cloud\",\n \"s3.pl-waw.scw.cloud\",\n \"s3-website.pl-waw.scw.cloud\",\n \"scalebook.scw.cloud\",\n \"smartlabeling.scw.cloud\",\n \"dedibox.fr\",\n \"schokokeks.net\",\n \"gov.scot\",\n \"service.gov.scot\",\n \"scrysec.com\",\n \"firewall-gateway.com\",\n \"firewall-gateway.de\",\n \"my-gateway.de\",\n \"my-router.de\",\n \"spdns.de\",\n \"spdns.eu\",\n \"firewall-gateway.net\",\n \"my-firewall.org\",\n \"myfirewall.org\",\n \"spdns.org\",\n \"seidat.net\",\n \"sellfy.store\",\n \"senseering.net\",\n \"minisite.ms\",\n \"magnet.page\",\n \"biz.ua\",\n \"co.ua\",\n \"pp.ua\",\n \"shiftcrypto.dev\",\n \"shiftcrypto.io\",\n \"shiftedit.io\",\n \"myshopblocks.com\",\n \"myshopify.com\",\n \"shopitsite.com\",\n \"shopware.store\",\n \"mo-siemens.io\",\n \"1kapp.com\",\n \"appchizi.com\",\n \"applinzi.com\",\n \"sinaapp.com\",\n \"vipsinaapp.com\",\n \"siteleaf.net\",\n \"bounty-full.com\",\n \"alpha.bounty-full.com\",\n \"beta.bounty-full.com\",\n \"small-web.org\",\n \"vp4.me\",\n \"try-snowplow.com\",\n \"srht.site\",\n \"stackhero-network.com\",\n \"musician.io\",\n \"novecore.site\",\n \"static.land\",\n \"dev.static.land\",\n \"sites.static.land\",\n \"storebase.store\",\n \"vps-host.net\",\n \"atl.jelastic.vps-host.net\",\n \"njs.jelastic.vps-host.net\",\n \"ric.jelastic.vps-host.net\",\n \"playstation-cloud.com\",\n \"apps.lair.io\",\n \"*.stolos.io\",\n \"spacekit.io\",\n \"customer.speedpartner.de\",\n \"myspreadshop.at\",\n \"myspreadshop.com.au\",\n \"myspreadshop.be\",\n \"myspreadshop.ca\",\n \"myspreadshop.ch\",\n \"myspreadshop.com\",\n \"myspreadshop.de\",\n \"myspreadshop.dk\",\n \"myspreadshop.es\",\n \"myspreadshop.fi\",\n \"myspreadshop.fr\",\n \"myspreadshop.ie\",\n \"myspreadshop.it\",\n \"myspreadshop.net\",\n \"myspreadshop.nl\",\n \"myspreadshop.no\",\n \"myspreadshop.pl\",\n \"myspreadshop.se\",\n \"myspreadshop.co.uk\",\n \"api.stdlib.com\",\n \"storj.farm\",\n \"utwente.io\",\n \"soc.srcf.net\",\n \"user.srcf.net\",\n \"temp-dns.com\",\n \"supabase.co\",\n \"supabase.in\",\n \"supabase.net\",\n \"su.paba.se\",\n \"*.s5y.io\",\n \"*.sensiosite.cloud\",\n \"syncloud.it\",\n \"dscloud.biz\",\n \"direct.quickconnect.cn\",\n \"dsmynas.com\",\n \"familyds.com\",\n \"diskstation.me\",\n \"dscloud.me\",\n \"i234.me\",\n \"myds.me\",\n \"synology.me\",\n \"dscloud.mobi\",\n \"dsmynas.net\",\n \"familyds.net\",\n \"dsmynas.org\",\n \"familyds.org\",\n \"vpnplus.to\",\n \"direct.quickconnect.to\",\n \"tabitorder.co.il\",\n \"taifun-dns.de\",\n \"beta.tailscale.net\",\n \"ts.net\",\n \"gda.pl\",\n \"gdansk.pl\",\n \"gdynia.pl\",\n \"med.pl\",\n \"sopot.pl\",\n \"site.tb-hosting.com\",\n \"edugit.io\",\n \"s3.teckids.org\",\n \"telebit.app\",\n \"telebit.io\",\n \"*.telebit.xyz\",\n \"gwiddle.co.uk\",\n \"*.firenet.ch\",\n \"*.svc.firenet.ch\",\n \"reservd.com\",\n \"thingdustdata.com\",\n \"cust.dev.thingdust.io\",\n \"cust.disrec.thingdust.io\",\n \"cust.prod.thingdust.io\",\n \"cust.testing.thingdust.io\",\n \"reservd.dev.thingdust.io\",\n \"reservd.disrec.thingdust.io\",\n \"reservd.testing.thingdust.io\",\n \"tickets.io\",\n \"arvo.network\",\n \"azimuth.network\",\n \"tlon.network\",\n \"torproject.net\",\n \"pages.torproject.net\",\n \"bloxcms.com\",\n \"townnews-staging.com\",\n \"tbits.me\",\n \"12hp.at\",\n \"2ix.at\",\n \"4lima.at\",\n \"lima-city.at\",\n \"12hp.ch\",\n \"2ix.ch\",\n \"4lima.ch\",\n \"lima-city.ch\",\n \"trafficplex.cloud\",\n \"de.cool\",\n \"12hp.de\",\n \"2ix.de\",\n \"4lima.de\",\n \"lima-city.de\",\n \"1337.pictures\",\n \"clan.rip\",\n \"lima-city.rocks\",\n \"webspace.rocks\",\n \"lima.zone\",\n \"*.transurl.be\",\n \"*.transurl.eu\",\n \"*.transurl.nl\",\n \"site.transip.me\",\n \"tuxfamily.org\",\n \"dd-dns.de\",\n \"diskstation.eu\",\n \"diskstation.org\",\n \"dray-dns.de\",\n \"draydns.de\",\n \"dyn-vpn.de\",\n \"dynvpn.de\",\n \"mein-vigor.de\",\n \"my-vigor.de\",\n \"my-wan.de\",\n \"syno-ds.de\",\n \"synology-diskstation.de\",\n \"synology-ds.de\",\n \"typedream.app\",\n \"pro.typeform.com\",\n \"uber.space\",\n \"*.uberspace.de\",\n \"hk.com\",\n \"hk.org\",\n \"ltd.hk\",\n \"inc.hk\",\n \"name.pm\",\n \"sch.tf\",\n \"biz.wf\",\n \"sch.wf\",\n \"org.yt\",\n \"virtualuser.de\",\n \"virtual-user.de\",\n \"upli.io\",\n \"urown.cloud\",\n \"dnsupdate.info\",\n \"lib.de.us\",\n \"2038.io\",\n \"vercel.app\",\n \"vercel.dev\",\n \"now.sh\",\n \"router.management\",\n \"v-info.info\",\n \"voorloper.cloud\",\n \"neko.am\",\n \"nyaa.am\",\n \"be.ax\",\n \"cat.ax\",\n \"es.ax\",\n \"eu.ax\",\n \"gg.ax\",\n \"mc.ax\",\n \"us.ax\",\n \"xy.ax\",\n \"nl.ci\",\n \"xx.gl\",\n \"app.gp\",\n \"blog.gt\",\n \"de.gt\",\n \"to.gt\",\n \"be.gy\",\n \"cc.hn\",\n \"blog.kg\",\n \"io.kg\",\n \"jp.kg\",\n \"tv.kg\",\n \"uk.kg\",\n \"us.kg\",\n \"de.ls\",\n \"at.md\",\n \"de.md\",\n \"jp.md\",\n \"to.md\",\n \"indie.porn\",\n \"vxl.sh\",\n \"ch.tc\",\n \"me.tc\",\n \"we.tc\",\n \"nyan.to\",\n \"at.vg\",\n \"blog.vu\",\n \"dev.vu\",\n \"me.vu\",\n \"v.ua\",\n \"*.vultrobjects.com\",\n \"wafflecell.com\",\n \"*.webhare.dev\",\n \"reserve-online.net\",\n \"reserve-online.com\",\n \"bookonline.app\",\n \"hotelwithflight.com\",\n \"wedeploy.io\",\n \"wedeploy.me\",\n \"wedeploy.sh\",\n \"remotewd.com\",\n \"pages.wiardweb.com\",\n \"wmflabs.org\",\n \"toolforge.org\",\n \"wmcloud.org\",\n \"panel.gg\",\n \"daemon.panel.gg\",\n \"messwithdns.com\",\n \"woltlab-demo.com\",\n \"myforum.community\",\n \"community-pro.de\",\n \"diskussionsbereich.de\",\n \"community-pro.net\",\n \"meinforum.net\",\n \"affinitylottery.org.uk\",\n \"raffleentry.org.uk\",\n \"weeklylottery.org.uk\",\n \"wpenginepowered.com\",\n \"js.wpenginepowered.com\",\n \"wixsite.com\",\n \"editorx.io\",\n \"half.host\",\n \"xnbay.com\",\n \"u2.xnbay.com\",\n \"u2-local.xnbay.com\",\n \"cistron.nl\",\n \"demon.nl\",\n \"xs4all.space\",\n \"yandexcloud.net\",\n \"storage.yandexcloud.net\",\n \"website.yandexcloud.net\",\n \"official.academy\",\n \"yolasite.com\",\n \"ybo.faith\",\n \"yombo.me\",\n \"homelink.one\",\n \"ybo.party\",\n \"ybo.review\",\n \"ybo.science\",\n \"ybo.trade\",\n \"ynh.fr\",\n \"nohost.me\",\n \"noho.st\",\n \"za.net\",\n \"za.org\",\n \"bss.design\",\n \"basicserver.io\",\n \"virtualserver.io\",\n \"enterprisecloud.nu\"\n ];\n }\n});\n\n// node_modules/psl/index.js\nvar require_psl = __commonJS({\n \"node_modules/psl/index.js\"(exports) {\n \"use strict\";\n var Punycode = require_punycode();\n var internals = {};\n internals.rules = require_rules().map(function(rule) {\n return {\n rule,\n suffix: rule.replace(/^(\\*\\.|\\!)/, \"\"),\n punySuffix: -1,\n wildcard: rule.charAt(0) === \"*\",\n exception: rule.charAt(0) === \"!\"\n };\n });\n internals.endsWith = function(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n };\n internals.findRule = function(domain) {\n var punyDomain = Punycode.toASCII(domain);\n return internals.rules.reduce(function(memo, rule) {\n if (rule.punySuffix === -1) {\n rule.punySuffix = Punycode.toASCII(rule.suffix);\n }\n if (!internals.endsWith(punyDomain, \".\" + rule.punySuffix) && punyDomain !== rule.punySuffix) {\n return memo;\n }\n return rule;\n }, null);\n };\n exports.errorCodes = {\n DOMAIN_TOO_SHORT: \"Domain name too short.\",\n DOMAIN_TOO_LONG: \"Domain name too long. It should be no more than 255 chars.\",\n LABEL_STARTS_WITH_DASH: \"Domain name label can not start with a dash.\",\n LABEL_ENDS_WITH_DASH: \"Domain name label can not end with a dash.\",\n LABEL_TOO_LONG: \"Domain name label should be at most 63 chars long.\",\n LABEL_TOO_SHORT: \"Domain name label should be at least 1 character long.\",\n LABEL_INVALID_CHARS: \"Domain name label can only contain alphanumeric characters or dashes.\"\n };\n internals.validate = function(input) {\n var ascii = Punycode.toASCII(input);\n if (ascii.length < 1) {\n return \"DOMAIN_TOO_SHORT\";\n }\n if (ascii.length > 255) {\n return \"DOMAIN_TOO_LONG\";\n }\n var labels = ascii.split(\".\");\n var label;\n for (var i = 0; i < labels.length; ++i) {\n label = labels[i];\n if (!label.length) {\n return \"LABEL_TOO_SHORT\";\n }\n if (label.length > 63) {\n return \"LABEL_TOO_LONG\";\n }\n if (label.charAt(0) === \"-\") {\n return \"LABEL_STARTS_WITH_DASH\";\n }\n if (label.charAt(label.length - 1) === \"-\") {\n return \"LABEL_ENDS_WITH_DASH\";\n }\n if (!/^[a-z0-9\\-]+$/.test(label)) {\n return \"LABEL_INVALID_CHARS\";\n }\n }\n };\n exports.parse = function(input) {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Domain name must be a string.\");\n }\n var domain = input.slice(0).toLowerCase();\n if (domain.charAt(domain.length - 1) === \".\") {\n domain = domain.slice(0, domain.length - 1);\n }\n var error = internals.validate(domain);\n if (error) {\n return {\n input,\n error: {\n message: exports.errorCodes[error],\n code: error\n }\n };\n }\n var parsed = {\n input,\n tld: null,\n sld: null,\n domain: null,\n subdomain: null,\n listed: false\n };\n var domainParts = domain.split(\".\");\n if (domainParts[domainParts.length - 1] === \"local\") {\n return parsed;\n }\n var handlePunycode = function() {\n if (!/xn--/.test(domain)) {\n return parsed;\n }\n if (parsed.domain) {\n parsed.domain = Punycode.toASCII(parsed.domain);\n }\n if (parsed.subdomain) {\n parsed.subdomain = Punycode.toASCII(parsed.subdomain);\n }\n return parsed;\n };\n var rule = internals.findRule(domain);\n if (!rule) {\n if (domainParts.length < 2) {\n return parsed;\n }\n parsed.tld = domainParts.pop();\n parsed.sld = domainParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (domainParts.length) {\n parsed.subdomain = domainParts.pop();\n }\n return handlePunycode();\n }\n parsed.listed = true;\n var tldParts = rule.suffix.split(\".\");\n var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);\n if (rule.exception) {\n privateParts.push(tldParts.shift());\n }\n parsed.tld = tldParts.join(\".\");\n if (!privateParts.length) {\n return handlePunycode();\n }\n if (rule.wildcard) {\n tldParts.unshift(privateParts.pop());\n parsed.tld = tldParts.join(\".\");\n }\n if (!privateParts.length) {\n return handlePunycode();\n }\n parsed.sld = privateParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (privateParts.length) {\n parsed.subdomain = privateParts.join(\".\");\n }\n return handlePunycode();\n };\n exports.get = function(domain) {\n if (!domain) {\n return null;\n }\n return exports.parse(domain).domain || null;\n };\n exports.isValid = function(domain) {\n var parsed = exports.parse(domain);\n return Boolean(parsed.domain && parsed.listed);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/pubsuffix-psl.js\nvar require_pubsuffix_psl = __commonJS({\n \"node_modules/tough-cookie/lib/pubsuffix-psl.js\"(exports) {\n \"use strict\";\n var psl = require_psl();\n var SPECIAL_USE_DOMAINS = [\n \"local\",\n \"example\",\n \"invalid\",\n \"localhost\",\n \"test\"\n ];\n var SPECIAL_TREATMENT_DOMAINS = [\"localhost\", \"invalid\"];\n function getPublicSuffix(domain, options = {}) {\n const domainParts = domain.split(\".\");\n const topLevelDomain = domainParts[domainParts.length - 1];\n const allowSpecialUseDomain = !!options.allowSpecialUseDomain;\n const ignoreError = !!options.ignoreError;\n if (allowSpecialUseDomain && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n if (domainParts.length > 1) {\n const secondLevelDomain = domainParts[domainParts.length - 2];\n return `${secondLevelDomain}.${topLevelDomain}`;\n } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {\n return `${topLevelDomain}`;\n }\n }\n if (!ignoreError && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n throw new Error(\n `Cookie has domain set to the public suffix \"${topLevelDomain}\" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`\n );\n }\n return psl.get(domain);\n }\n exports.getPublicSuffix = getPublicSuffix;\n }\n});\n\n// node_modules/tough-cookie/lib/store.js\nvar require_store = __commonJS({\n \"node_modules/tough-cookie/lib/store.js\"(exports) {\n \"use strict\";\n var Store = class {\n constructor() {\n this.synchronous = false;\n }\n findCookie(domain, path, key, cb) {\n throw new Error(\"findCookie is not implemented\");\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n throw new Error(\"findCookies is not implemented\");\n }\n putCookie(cookie, cb) {\n throw new Error(\"putCookie is not implemented\");\n }\n updateCookie(oldCookie, newCookie, cb) {\n throw new Error(\"updateCookie is not implemented\");\n }\n removeCookie(domain, path, key, cb) {\n throw new Error(\"removeCookie is not implemented\");\n }\n removeCookies(domain, path, cb) {\n throw new Error(\"removeCookies is not implemented\");\n }\n removeAllCookies(cb) {\n throw new Error(\"removeAllCookies is not implemented\");\n }\n getAllCookies(cb) {\n throw new Error(\n \"getAllCookies is not implemented (therefore jar cannot be serialized)\"\n );\n }\n };\n exports.Store = Store;\n }\n});\n\n// node_modules/universalify/index.js\nvar require_universalify = __commonJS({\n \"node_modules/universalify/index.js\"(exports) {\n \"use strict\";\n exports.fromCallback = function(fn) {\n return Object.defineProperty(function() {\n if (typeof arguments[arguments.length - 1] === \"function\") fn.apply(this, arguments);\n else {\n return new Promise((resolve, reject) => {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err);\n resolve(res);\n };\n arguments.length++;\n fn.apply(this, arguments);\n });\n }\n }, \"name\", { value: fn.name });\n };\n exports.fromPromise = function(fn) {\n return Object.defineProperty(function() {\n const cb = arguments[arguments.length - 1];\n if (typeof cb !== \"function\") return fn.apply(this, arguments);\n else {\n delete arguments[arguments.length - 1];\n arguments.length--;\n fn.apply(this, arguments).then((r) => cb(null, r), cb);\n }\n }, \"name\", { value: fn.name });\n };\n }\n});\n\n// node_modules/tough-cookie/lib/permuteDomain.js\nvar require_permuteDomain = __commonJS({\n \"node_modules/tough-cookie/lib/permuteDomain.js\"(exports) {\n \"use strict\";\n var pubsuffix = require_pubsuffix_psl();\n function permuteDomain(domain, allowSpecialUseDomain) {\n const pubSuf = pubsuffix.getPublicSuffix(domain, {\n allowSpecialUseDomain\n });\n if (!pubSuf) {\n return null;\n }\n if (pubSuf == domain) {\n return [domain];\n }\n if (domain.slice(-1) == \".\") {\n domain = domain.slice(0, -1);\n }\n const prefix = domain.slice(0, -(pubSuf.length + 1));\n const parts = prefix.split(\".\").reverse();\n let cur = pubSuf;\n const permutations = [cur];\n while (parts.length) {\n cur = `${parts.shift()}.${cur}`;\n permutations.push(cur);\n }\n return permutations;\n }\n exports.permuteDomain = permuteDomain;\n }\n});\n\n// node_modules/tough-cookie/lib/pathMatch.js\nvar require_pathMatch = __commonJS({\n \"node_modules/tough-cookie/lib/pathMatch.js\"(exports) {\n \"use strict\";\n function pathMatch(reqPath, cookiePath) {\n if (cookiePath === reqPath) {\n return true;\n }\n const idx = reqPath.indexOf(cookiePath);\n if (idx === 0) {\n if (cookiePath.substr(-1) === \"/\") {\n return true;\n }\n if (reqPath.substr(cookiePath.length, 1) === \"/\") {\n return true;\n }\n }\n return false;\n }\n exports.pathMatch = pathMatch;\n }\n});\n\n// node_modules/tough-cookie/lib/utilHelper.js\nvar require_utilHelper = __commonJS({\n \"node_modules/tough-cookie/lib/utilHelper.js\"(exports) {\n function requireUtil() {\n try {\n return __require(\"util\");\n } catch (e) {\n return null;\n }\n }\n function lookupCustomInspectSymbol() {\n return Symbol.for(\"nodejs.util.inspect.custom\");\n }\n function tryReadingCustomSymbolFromUtilInspect(options) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return util ? util.inspect.custom : null;\n }\n exports.getUtilInspect = function getUtilInspect(fallback, options = {}) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return function inspect(value, showHidden, depth) {\n return util ? util.inspect(value, showHidden, depth) : fallback(value);\n };\n };\n exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) {\n const _lookupCustomInspectSymbol = options.lookupCustomInspectSymbol || lookupCustomInspectSymbol;\n return _lookupCustomInspectSymbol() || tryReadingCustomSymbolFromUtilInspect(options);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/memstore.js\nvar require_memstore = __commonJS({\n \"node_modules/tough-cookie/lib/memstore.js\"(exports) {\n \"use strict\";\n var { fromCallback } = require_universalify();\n var Store = require_store().Store;\n var permuteDomain = require_permuteDomain().permuteDomain;\n var pathMatch = require_pathMatch().pathMatch;\n var { getCustomInspectSymbol, getUtilInspect } = require_utilHelper();\n var MemoryCookieStore = class extends Store {\n constructor() {\n super();\n this.synchronous = true;\n this.idx = /* @__PURE__ */ Object.create(null);\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n }\n inspect() {\n const util = { inspect: getUtilInspect(inspectFallback) };\n return `{ idx: ${util.inspect(this.idx, false, 2)} }`;\n }\n findCookie(domain, path, key, cb) {\n if (!this.idx[domain]) {\n return cb(null, void 0);\n }\n if (!this.idx[domain][path]) {\n return cb(null, void 0);\n }\n return cb(null, this.idx[domain][path][key] || null);\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n const results = [];\n if (typeof allowSpecialUseDomain === \"function\") {\n cb = allowSpecialUseDomain;\n allowSpecialUseDomain = true;\n }\n if (!domain) {\n return cb(null, []);\n }\n let pathMatcher;\n if (!path) {\n pathMatcher = function matchAll(domainIndex) {\n for (const curPath in domainIndex) {\n const pathIndex = domainIndex[curPath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n };\n } else {\n pathMatcher = function matchRFC(domainIndex) {\n Object.keys(domainIndex).forEach((cookiePath) => {\n if (pathMatch(path, cookiePath)) {\n const pathIndex = domainIndex[cookiePath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n });\n };\n }\n const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];\n const idx = this.idx;\n domains.forEach((curDomain) => {\n const domainIndex = idx[curDomain];\n if (!domainIndex) {\n return;\n }\n pathMatcher(domainIndex);\n });\n cb(null, results);\n }\n putCookie(cookie, cb) {\n if (!this.idx[cookie.domain]) {\n this.idx[cookie.domain] = /* @__PURE__ */ Object.create(null);\n }\n if (!this.idx[cookie.domain][cookie.path]) {\n this.idx[cookie.domain][cookie.path] = /* @__PURE__ */ Object.create(null);\n }\n this.idx[cookie.domain][cookie.path][cookie.key] = cookie;\n cb(null);\n }\n updateCookie(oldCookie, newCookie, cb) {\n this.putCookie(newCookie, cb);\n }\n removeCookie(domain, path, key, cb) {\n if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {\n delete this.idx[domain][path][key];\n }\n cb(null);\n }\n removeCookies(domain, path, cb) {\n if (this.idx[domain]) {\n if (path) {\n delete this.idx[domain][path];\n } else {\n delete this.idx[domain];\n }\n }\n return cb(null);\n }\n removeAllCookies(cb) {\n this.idx = /* @__PURE__ */ Object.create(null);\n return cb(null);\n }\n getAllCookies(cb) {\n const cookies = [];\n const idx = this.idx;\n const domains = Object.keys(idx);\n domains.forEach((domain) => {\n const paths = Object.keys(idx[domain]);\n paths.forEach((path) => {\n const keys = Object.keys(idx[domain][path]);\n keys.forEach((key) => {\n if (key !== null) {\n cookies.push(idx[domain][path][key]);\n }\n });\n });\n });\n cookies.sort((a, b) => {\n return (a.creationIndex || 0) - (b.creationIndex || 0);\n });\n cb(null, cookies);\n }\n };\n [\n \"findCookie\",\n \"findCookies\",\n \"putCookie\",\n \"updateCookie\",\n \"removeCookie\",\n \"removeCookies\",\n \"removeAllCookies\",\n \"getAllCookies\"\n ].forEach((name) => {\n MemoryCookieStore.prototype[name] = fromCallback(\n MemoryCookieStore.prototype[name]\n );\n });\n exports.MemoryCookieStore = MemoryCookieStore;\n function inspectFallback(val) {\n const domains = Object.keys(val);\n if (domains.length === 0) {\n return \"[Object: null prototype] {}\";\n }\n let result = \"[Object: null prototype] {\\n\";\n Object.keys(val).forEach((domain, i) => {\n result += formatDomain(domain, val[domain]);\n if (i < domains.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += \"}\";\n return result;\n }\n function formatDomain(domainName, domainValue) {\n const indent = \" \";\n let result = `${indent}'${domainName}': [Object: null prototype] {\n`;\n Object.keys(domainValue).forEach((path, i, paths) => {\n result += formatPath(path, domainValue[path]);\n if (i < paths.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n function formatPath(pathName, pathValue) {\n const indent = \" \";\n let result = `${indent}'${pathName}': [Object: null prototype] {\n`;\n Object.keys(pathValue).forEach((cookieName, i, cookieNames) => {\n const cookie = pathValue[cookieName];\n result += ` ${cookieName}: ${cookie.inspect()}`;\n if (i < cookieNames.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n exports.inspectFallback = inspectFallback;\n }\n});\n\n// node_modules/tough-cookie/lib/validators.js\nvar require_validators = __commonJS({\n \"node_modules/tough-cookie/lib/validators.js\"(exports) {\n \"use strict\";\n var toString = Object.prototype.toString;\n function isFunction(data) {\n return typeof data === \"function\";\n }\n function isNonEmptyString(data) {\n return isString(data) && data !== \"\";\n }\n function isDate(data) {\n return isInstanceStrict(data, Date) && isInteger(data.getTime());\n }\n function isEmptyString(data) {\n return data === \"\" || data instanceof String && data.toString() === \"\";\n }\n function isString(data) {\n return typeof data === \"string\" || data instanceof String;\n }\n function isObject(data) {\n return toString.call(data) === \"[object Object]\";\n }\n function isInstanceStrict(data, prototype) {\n try {\n return data instanceof prototype;\n } catch (error) {\n return false;\n }\n }\n function isUrlStringOrObject(data) {\n return isNonEmptyString(data) || isObject(data) && \"hostname\" in data && \"pathname\" in data && \"protocol\" in data || isInstanceStrict(data, URL);\n }\n function isInteger(data) {\n return typeof data === \"number\" && data % 1 === 0;\n }\n function validate(bool, cb, options) {\n if (!isFunction(cb)) {\n options = cb;\n cb = null;\n }\n if (!isObject(options)) options = { Error: \"Failed Check\" };\n if (!bool) {\n if (cb) {\n cb(new ParameterError(options));\n } else {\n throw new ParameterError(options);\n }\n }\n }\n var ParameterError = class extends Error {\n constructor(...params) {\n super(...params);\n }\n };\n exports.ParameterError = ParameterError;\n exports.isFunction = isFunction;\n exports.isNonEmptyString = isNonEmptyString;\n exports.isDate = isDate;\n exports.isEmptyString = isEmptyString;\n exports.isString = isString;\n exports.isObject = isObject;\n exports.isUrlStringOrObject = isUrlStringOrObject;\n exports.validate = validate;\n }\n});\n\n// node_modules/tough-cookie/lib/version.js\nvar require_version = __commonJS({\n \"node_modules/tough-cookie/lib/version.js\"(exports, module) {\n module.exports = \"4.1.4\";\n }\n});\n\n// node_modules/tough-cookie/lib/cookie.js\nvar require_cookie = __commonJS({\n \"node_modules/tough-cookie/lib/cookie.js\"(exports) {\n \"use strict\";\n var punycode = require_punycode();\n var urlParse = require_url_parse();\n var pubsuffix = require_pubsuffix_psl();\n var Store = require_store().Store;\n var MemoryCookieStore = require_memstore().MemoryCookieStore;\n var pathMatch = require_pathMatch().pathMatch;\n var validators = require_validators();\n var VERSION = require_version();\n var { fromCallback } = require_universalify();\n var { getCustomInspectSymbol } = require_utilHelper();\n var COOKIE_OCTETS = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]+$/;\n var CONTROL_CHARS = /[\\x00-\\x1F]/;\n var TERMINATORS = [\"\\n\", \"\\r\", \"\\0\"];\n var PATH_VALUE = /[\\x20-\\x3A\\x3C-\\x7E]+/;\n var DATE_DELIM = /[\\x09\\x20-\\x2F\\x3B-\\x40\\x5B-\\x60\\x7B-\\x7E]/;\n var MONTH_TO_NUM = {\n jan: 0,\n feb: 1,\n mar: 2,\n apr: 3,\n may: 4,\n jun: 5,\n jul: 6,\n aug: 7,\n sep: 8,\n oct: 9,\n nov: 10,\n dec: 11\n };\n var MAX_TIME = 2147483647e3;\n var MIN_TIME = 0;\n var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of \"strict\", \"lax\", or \"none\"';\n function checkSameSiteContext(value) {\n validators.validate(validators.isNonEmptyString(value), value);\n const context = String(value).toLowerCase();\n if (context === \"none\" || context === \"lax\" || context === \"strict\") {\n return context;\n } else {\n return null;\n }\n }\n var PrefixSecurityEnum = Object.freeze({\n SILENT: \"silent\",\n STRICT: \"strict\",\n DISABLED: \"unsafe-disabled\"\n });\n var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-f\\d]{1,4}:){7}(?:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,2}|:)|(?:[a-f\\d]{1,4}:){4}(?:(?::[a-f\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,3}|:)|(?:[a-f\\d]{1,4}:){3}(?:(?::[a-f\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,4}|:)|(?:[a-f\\d]{1,4}:){2}(?:(?::[a-f\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,5}|:)|(?:[a-f\\d]{1,4}:){1}(?:(?::[a-f\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,7}|:)))$)/;\n var IP_V6_REGEX = `\n\\\\[?(?:\n(?:[a-fA-F\\\\d]{1,4}:){7}(?:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){4}(?:(?::[a-fA-F\\\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){3}(?:(?::[a-fA-F\\\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){2}(?:(?::[a-fA-F\\\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){1}(?:(?::[a-fA-F\\\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\\\]?\n`.replace(/\\s*\\/\\/.*$/gm, \"\").replace(/\\n/g, \"\").trim();\n var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);\n function parseDigits(token, minDigits, maxDigits, trailingOK) {\n let count = 0;\n while (count < token.length) {\n const c = token.charCodeAt(count);\n if (c <= 47 || c >= 58) {\n break;\n }\n count++;\n }\n if (count < minDigits || count > maxDigits) {\n return null;\n }\n if (!trailingOK && count != token.length) {\n return null;\n }\n return parseInt(token.substr(0, count), 10);\n }\n function parseTime(token) {\n const parts = token.split(\":\");\n const result = [0, 0, 0];\n if (parts.length !== 3) {\n return null;\n }\n for (let i = 0; i < 3; i++) {\n const trailingOK = i == 2;\n const num = parseDigits(parts[i], 1, 2, trailingOK);\n if (num === null) {\n return null;\n }\n result[i] = num;\n }\n return result;\n }\n function parseMonth(token) {\n token = String(token).substr(0, 3).toLowerCase();\n const num = MONTH_TO_NUM[token];\n return num >= 0 ? num : null;\n }\n function parseDate(str) {\n if (!str) {\n return;\n }\n const tokens = str.split(DATE_DELIM);\n if (!tokens) {\n return;\n }\n let hour = null;\n let minute = null;\n let second = null;\n let dayOfMonth = null;\n let month = null;\n let year = null;\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i].trim();\n if (!token.length) {\n continue;\n }\n let result;\n if (second === null) {\n result = parseTime(token);\n if (result) {\n hour = result[0];\n minute = result[1];\n second = result[2];\n continue;\n }\n }\n if (dayOfMonth === null) {\n result = parseDigits(token, 1, 2, true);\n if (result !== null) {\n dayOfMonth = result;\n continue;\n }\n }\n if (month === null) {\n result = parseMonth(token);\n if (result !== null) {\n month = result;\n continue;\n }\n }\n if (year === null) {\n result = parseDigits(token, 2, 4, true);\n if (result !== null) {\n year = result;\n if (year >= 70 && year <= 99) {\n year += 1900;\n } else if (year >= 0 && year <= 69) {\n year += 2e3;\n }\n }\n }\n }\n if (dayOfMonth === null || month === null || year === null || second === null || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {\n return;\n }\n return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));\n }\n function formatDate(date) {\n validators.validate(validators.isDate(date), date);\n return date.toUTCString();\n }\n function canonicalDomain(str) {\n if (str == null) {\n return null;\n }\n str = str.trim().replace(/^\\./, \"\");\n if (IP_V6_REGEX_OBJECT.test(str)) {\n str = str.replace(\"[\", \"\").replace(\"]\", \"\");\n }\n if (punycode && /[^\\u0001-\\u007f]/.test(str)) {\n str = punycode.toASCII(str);\n }\n return str.toLowerCase();\n }\n function domainMatch(str, domStr, canonicalize) {\n if (str == null || domStr == null) {\n return null;\n }\n if (canonicalize !== false) {\n str = canonicalDomain(str);\n domStr = canonicalDomain(domStr);\n }\n if (str == domStr) {\n return true;\n }\n const idx = str.lastIndexOf(domStr);\n if (idx <= 0) {\n return false;\n }\n if (str.length !== domStr.length + idx) {\n return false;\n }\n if (str.substr(idx - 1, 1) !== \".\") {\n return false;\n }\n if (IP_REGEX_LOWERCASE.test(str)) {\n return false;\n }\n return true;\n }\n function defaultPath(path) {\n if (!path || path.substr(0, 1) !== \"/\") {\n return \"/\";\n }\n if (path === \"/\") {\n return path;\n }\n const rightSlash = path.lastIndexOf(\"/\");\n if (rightSlash === 0) {\n return \"/\";\n }\n return path.slice(0, rightSlash);\n }\n function trimTerminator(str) {\n if (validators.isEmptyString(str)) return str;\n for (let t = 0; t < TERMINATORS.length; t++) {\n const terminatorIdx = str.indexOf(TERMINATORS[t]);\n if (terminatorIdx !== -1) {\n str = str.substr(0, terminatorIdx);\n }\n }\n return str;\n }\n function parseCookiePair(cookiePair, looseMode) {\n cookiePair = trimTerminator(cookiePair);\n validators.validate(validators.isString(cookiePair), cookiePair);\n let firstEq = cookiePair.indexOf(\"=\");\n if (looseMode) {\n if (firstEq === 0) {\n cookiePair = cookiePair.substr(1);\n firstEq = cookiePair.indexOf(\"=\");\n }\n } else {\n if (firstEq <= 0) {\n return;\n }\n }\n let cookieName, cookieValue;\n if (firstEq <= 0) {\n cookieName = \"\";\n cookieValue = cookiePair.trim();\n } else {\n cookieName = cookiePair.substr(0, firstEq).trim();\n cookieValue = cookiePair.substr(firstEq + 1).trim();\n }\n if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {\n return;\n }\n const c = new Cookie();\n c.key = cookieName;\n c.value = cookieValue;\n return c;\n }\n function parse(str, options) {\n if (!options || typeof options !== \"object\") {\n options = {};\n }\n if (validators.isEmptyString(str) || !validators.isString(str)) {\n return null;\n }\n str = str.trim();\n const firstSemi = str.indexOf(\";\");\n const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);\n const c = parseCookiePair(cookiePair, !!options.loose);\n if (!c) {\n return;\n }\n if (firstSemi === -1) {\n return c;\n }\n const unparsed = str.slice(firstSemi + 1).trim();\n if (unparsed.length === 0) {\n return c;\n }\n const cookie_avs = unparsed.split(\";\");\n while (cookie_avs.length) {\n const av = cookie_avs.shift().trim();\n if (av.length === 0) {\n continue;\n }\n const av_sep = av.indexOf(\"=\");\n let av_key, av_value;\n if (av_sep === -1) {\n av_key = av;\n av_value = null;\n } else {\n av_key = av.substr(0, av_sep);\n av_value = av.substr(av_sep + 1);\n }\n av_key = av_key.trim().toLowerCase();\n if (av_value) {\n av_value = av_value.trim();\n }\n switch (av_key) {\n case \"expires\":\n if (av_value) {\n const exp = parseDate(av_value);\n if (exp) {\n c.expires = exp;\n }\n }\n break;\n case \"max-age\":\n if (av_value) {\n if (/^-?[0-9]+$/.test(av_value)) {\n const delta = parseInt(av_value, 10);\n c.setMaxAge(delta);\n }\n }\n break;\n case \"domain\":\n if (av_value) {\n const domain = av_value.trim().replace(/^\\./, \"\");\n if (domain) {\n c.domain = domain.toLowerCase();\n }\n }\n break;\n case \"path\":\n c.path = av_value && av_value[0] === \"/\" ? av_value : null;\n break;\n case \"secure\":\n c.secure = true;\n break;\n case \"httponly\":\n c.httpOnly = true;\n break;\n case \"samesite\":\n const enforcement = av_value ? av_value.toLowerCase() : \"\";\n switch (enforcement) {\n case \"strict\":\n c.sameSite = \"strict\";\n break;\n case \"lax\":\n c.sameSite = \"lax\";\n break;\n case \"none\":\n c.sameSite = \"none\";\n break;\n default:\n c.sameSite = void 0;\n break;\n }\n break;\n default:\n c.extensions = c.extensions || [];\n c.extensions.push(av);\n break;\n }\n }\n return c;\n }\n function isSecurePrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie), cookie);\n return !cookie.key.startsWith(\"__Secure-\") || cookie.secure;\n }\n function isHostPrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie));\n return !cookie.key.startsWith(\"__Host-\") || cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === \"/\";\n }\n function jsonParse(str) {\n let obj;\n try {\n obj = JSON.parse(str);\n } catch (e) {\n return e;\n }\n return obj;\n }\n function fromJSON(str) {\n if (!str || validators.isEmptyString(str)) {\n return null;\n }\n let obj;\n if (typeof str === \"string\") {\n obj = jsonParse(str);\n if (obj instanceof Error) {\n return null;\n }\n } else {\n obj = str;\n }\n const c = new Cookie();\n for (let i = 0; i < Cookie.serializableProperties.length; i++) {\n const prop = Cookie.serializableProperties[i];\n if (obj[prop] === void 0 || obj[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (obj[prop] === null) {\n c[prop] = null;\n } else {\n c[prop] = obj[prop] == \"Infinity\" ? \"Infinity\" : new Date(obj[prop]);\n }\n } else {\n c[prop] = obj[prop];\n }\n }\n return c;\n }\n function cookieCompare(a, b) {\n validators.validate(validators.isObject(a), a);\n validators.validate(validators.isObject(b), b);\n let cmp = 0;\n const aPathLen = a.path ? a.path.length : 0;\n const bPathLen = b.path ? b.path.length : 0;\n cmp = bPathLen - aPathLen;\n if (cmp !== 0) {\n return cmp;\n }\n const aTime = a.creation ? a.creation.getTime() : MAX_TIME;\n const bTime = b.creation ? b.creation.getTime() : MAX_TIME;\n cmp = aTime - bTime;\n if (cmp !== 0) {\n return cmp;\n }\n cmp = a.creationIndex - b.creationIndex;\n return cmp;\n }\n function permutePath(path) {\n validators.validate(validators.isString(path));\n if (path === \"/\") {\n return [\"/\"];\n }\n const permutations = [path];\n while (path.length > 1) {\n const lindex = path.lastIndexOf(\"/\");\n if (lindex === 0) {\n break;\n }\n path = path.substr(0, lindex);\n permutations.push(path);\n }\n permutations.push(\"/\");\n return permutations;\n }\n function getCookieContext(url) {\n if (url instanceof Object) {\n return url;\n }\n try {\n url = decodeURI(url);\n } catch (err) {\n }\n return urlParse(url);\n }\n var cookieDefaults = {\n // the order in which the RFC has them:\n key: \"\",\n value: \"\",\n expires: \"Infinity\",\n maxAge: null,\n domain: null,\n path: null,\n secure: false,\n httpOnly: false,\n extensions: null,\n // set by the CookieJar:\n hostOnly: null,\n pathIsDefault: null,\n creation: null,\n lastAccessed: null,\n sameSite: void 0\n };\n var Cookie = class _Cookie {\n constructor(options = {}) {\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n Object.assign(this, cookieDefaults, options);\n this.creation = this.creation || /* @__PURE__ */ new Date();\n Object.defineProperty(this, \"creationIndex\", {\n configurable: false,\n enumerable: false,\n // important for assert.deepEqual checks\n writable: true,\n value: ++_Cookie.cookiesCreated\n });\n }\n inspect() {\n const now = Date.now();\n const hostOnly = this.hostOnly != null ? this.hostOnly : \"?\";\n const createAge = this.creation ? `${now - this.creation.getTime()}ms` : \"?\";\n const accessAge = this.lastAccessed ? `${now - this.lastAccessed.getTime()}ms` : \"?\";\n return `Cookie=\"${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}\"`;\n }\n toJSON() {\n const obj = {};\n for (const prop of _Cookie.serializableProperties) {\n if (this[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (this[prop] === null) {\n obj[prop] = null;\n } else {\n obj[prop] = this[prop] == \"Infinity\" ? \"Infinity\" : this[prop].toISOString();\n }\n } else if (prop === \"maxAge\") {\n if (this[prop] !== null) {\n obj[prop] = this[prop] == Infinity || this[prop] == -Infinity ? this[prop].toString() : this[prop];\n }\n } else {\n if (this[prop] !== cookieDefaults[prop]) {\n obj[prop] = this[prop];\n }\n }\n }\n return obj;\n }\n clone() {\n return fromJSON(this.toJSON());\n }\n validate() {\n if (!COOKIE_OCTETS.test(this.value)) {\n return false;\n }\n if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {\n return false;\n }\n if (this.maxAge != null && this.maxAge <= 0) {\n return false;\n }\n if (this.path != null && !PATH_VALUE.test(this.path)) {\n return false;\n }\n const cdomain = this.cdomain();\n if (cdomain) {\n if (cdomain.match(/\\.$/)) {\n return false;\n }\n const suffix = pubsuffix.getPublicSuffix(cdomain);\n if (suffix == null) {\n return false;\n }\n }\n return true;\n }\n setExpires(exp) {\n if (exp instanceof Date) {\n this.expires = exp;\n } else {\n this.expires = parseDate(exp) || \"Infinity\";\n }\n }\n setMaxAge(age) {\n if (age === Infinity || age === -Infinity) {\n this.maxAge = age.toString();\n } else {\n this.maxAge = age;\n }\n }\n cookieString() {\n let val = this.value;\n if (val == null) {\n val = \"\";\n }\n if (this.key === \"\") {\n return val;\n }\n return `${this.key}=${val}`;\n }\n // gives Set-Cookie header format\n toString() {\n let str = this.cookieString();\n if (this.expires != Infinity) {\n if (this.expires instanceof Date) {\n str += `; Expires=${formatDate(this.expires)}`;\n } else {\n str += `; Expires=${this.expires}`;\n }\n }\n if (this.maxAge != null && this.maxAge != Infinity) {\n str += `; Max-Age=${this.maxAge}`;\n }\n if (this.domain && !this.hostOnly) {\n str += `; Domain=${this.domain}`;\n }\n if (this.path) {\n str += `; Path=${this.path}`;\n }\n if (this.secure) {\n str += \"; Secure\";\n }\n if (this.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (this.sameSite && this.sameSite !== \"none\") {\n const ssCanon = _Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];\n str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;\n }\n if (this.extensions) {\n this.extensions.forEach((ext) => {\n str += `; ${ext}`;\n });\n }\n return str;\n }\n // TTL() partially replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n // S5.3 says to give the \"latest representable date\" for which we use Infinity\n // For \"expired\" we use 0\n TTL(now) {\n if (this.maxAge != null) {\n return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;\n }\n let expires = this.expires;\n if (expires != Infinity) {\n if (!(expires instanceof Date)) {\n expires = parseDate(expires) || Infinity;\n }\n if (expires == Infinity) {\n return Infinity;\n }\n return expires.getTime() - (now || Date.now());\n }\n return Infinity;\n }\n // expiryTime() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n expiryTime(now) {\n if (this.maxAge != null) {\n const relativeTo = now || this.creation || /* @__PURE__ */ new Date();\n const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1e3;\n return relativeTo.getTime() + age;\n }\n if (this.expires == Infinity) {\n return Infinity;\n }\n return this.expires.getTime();\n }\n // expiryDate() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere), except it returns a Date\n expiryDate(now) {\n const millisec = this.expiryTime(now);\n if (millisec == Infinity) {\n return new Date(MAX_TIME);\n } else if (millisec == -Infinity) {\n return new Date(MIN_TIME);\n } else {\n return new Date(millisec);\n }\n }\n // This replaces the \"persistent-flag\" parts of S5.3 step 3\n isPersistent() {\n return this.maxAge != null || this.expires != Infinity;\n }\n // Mostly S5.1.2 and S5.2.3:\n canonicalizedDomain() {\n if (this.domain == null) {\n return null;\n }\n return canonicalDomain(this.domain);\n }\n cdomain() {\n return this.canonicalizedDomain();\n }\n };\n Cookie.cookiesCreated = 0;\n Cookie.parse = parse;\n Cookie.fromJSON = fromJSON;\n Cookie.serializableProperties = Object.keys(cookieDefaults);\n Cookie.sameSiteLevel = {\n strict: 3,\n lax: 2,\n none: 1\n };\n Cookie.sameSiteCanonical = {\n strict: \"Strict\",\n lax: \"Lax\"\n };\n function getNormalizedPrefixSecurity(prefixSecurity) {\n if (prefixSecurity != null) {\n const normalizedPrefixSecurity = prefixSecurity.toLowerCase();\n switch (normalizedPrefixSecurity) {\n case PrefixSecurityEnum.STRICT:\n case PrefixSecurityEnum.SILENT:\n case PrefixSecurityEnum.DISABLED:\n return normalizedPrefixSecurity;\n }\n }\n return PrefixSecurityEnum.SILENT;\n }\n var CookieJar = class _CookieJar {\n constructor(store, options = { rejectPublicSuffixes: true }) {\n if (typeof options === \"boolean\") {\n options = { rejectPublicSuffixes: options };\n }\n validators.validate(validators.isObject(options), options);\n this.rejectPublicSuffixes = options.rejectPublicSuffixes;\n this.enableLooseMode = !!options.looseMode;\n this.allowSpecialUseDomain = typeof options.allowSpecialUseDomain === \"boolean\" ? options.allowSpecialUseDomain : true;\n this.store = store || new MemoryCookieStore();\n this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);\n this._cloneSync = syncWrap(\"clone\");\n this._importCookiesSync = syncWrap(\"_importCookies\");\n this.getCookiesSync = syncWrap(\"getCookies\");\n this.getCookieStringSync = syncWrap(\"getCookieString\");\n this.getSetCookieStringsSync = syncWrap(\"getSetCookieStrings\");\n this.removeAllCookiesSync = syncWrap(\"removeAllCookies\");\n this.setCookieSync = syncWrap(\"setCookie\");\n this.serializeSync = syncWrap(\"serialize\");\n }\n setCookie(cookie, url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, options);\n let err;\n if (validators.isFunction(url)) {\n cb = url;\n return cb(new Error(\"No URL was specified\"));\n }\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isFunction(cb), cb);\n if (!validators.isNonEmptyString(cookie) && !validators.isObject(cookie) && cookie instanceof String && cookie.length == 0) {\n return cb(null);\n }\n const host = canonicalDomain(context.hostname);\n const loose = options.loose || this.enableLooseMode;\n let sameSiteContext = null;\n if (options.sameSiteContext) {\n sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n if (!sameSiteContext) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n if (typeof cookie === \"string\" || cookie instanceof String) {\n cookie = Cookie.parse(cookie, { loose });\n if (!cookie) {\n err = new Error(\"Cookie failed to parse\");\n return cb(options.ignoreError ? null : err);\n }\n } else if (!(cookie instanceof Cookie)) {\n err = new Error(\n \"First argument to setCookie must be a Cookie object or string\"\n );\n return cb(options.ignoreError ? null : err);\n }\n const now = options.now || /* @__PURE__ */ new Date();\n if (this.rejectPublicSuffixes && cookie.domain) {\n const suffix = pubsuffix.getPublicSuffix(cookie.cdomain(), {\n allowSpecialUseDomain: this.allowSpecialUseDomain,\n ignoreError: options.ignoreError\n });\n if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {\n err = new Error(\"Cookie has domain set to a public suffix\");\n return cb(options.ignoreError ? null : err);\n }\n }\n if (cookie.domain) {\n if (!domainMatch(host, cookie.cdomain(), false)) {\n err = new Error(\n `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`\n );\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.hostOnly == null) {\n cookie.hostOnly = false;\n }\n } else {\n cookie.hostOnly = true;\n cookie.domain = host;\n }\n if (!cookie.path || cookie.path[0] !== \"/\") {\n cookie.path = defaultPath(context.pathname);\n cookie.pathIsDefault = true;\n }\n if (options.http === false && cookie.httpOnly) {\n err = new Error(\"Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.sameSite !== \"none\" && cookie.sameSite !== void 0 && sameSiteContext) {\n if (sameSiteContext === \"none\") {\n err = new Error(\n \"Cookie is SameSite but this is a cross-origin request\"\n );\n return cb(options.ignoreError ? null : err);\n }\n }\n const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;\n const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;\n if (!prefixSecurityDisabled) {\n let errorFound = false;\n let errorMsg;\n if (!isSecurePrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Secure prefix but Secure attribute is not set\";\n } else if (!isHostPrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'\";\n }\n if (errorFound) {\n return cb(\n options.ignoreError || ignoreErrorForPrefixSecurity ? null : new Error(errorMsg)\n );\n }\n }\n const store = this.store;\n if (!store.updateCookie) {\n store.updateCookie = function(oldCookie, newCookie, cb2) {\n this.putCookie(newCookie, cb2);\n };\n }\n function withCookie(err2, oldCookie) {\n if (err2) {\n return cb(err2);\n }\n const next = function(err3) {\n if (err3) {\n return cb(err3);\n } else {\n cb(null, cookie);\n }\n };\n if (oldCookie) {\n if (options.http === false && oldCookie.httpOnly) {\n err2 = new Error(\"old Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err2);\n }\n cookie.creation = oldCookie.creation;\n cookie.creationIndex = oldCookie.creationIndex;\n cookie.lastAccessed = now;\n store.updateCookie(oldCookie, cookie, next);\n } else {\n cookie.creation = cookie.lastAccessed = now;\n store.putCookie(cookie, next);\n }\n }\n store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);\n }\n // RFC6365 S5.4\n getCookies(url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, url);\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isObject(options), cb, options);\n validators.validate(validators.isFunction(cb), cb);\n const host = canonicalDomain(context.hostname);\n const path = context.pathname || \"/\";\n let secure = options.secure;\n if (secure == null && context.protocol && (context.protocol == \"https:\" || context.protocol == \"wss:\")) {\n secure = true;\n }\n let sameSiteLevel = 0;\n if (options.sameSiteContext) {\n const sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];\n if (!sameSiteLevel) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n let http = options.http;\n if (http == null) {\n http = true;\n }\n const now = options.now || Date.now();\n const expireCheck = options.expire !== false;\n const allPaths = !!options.allPaths;\n const store = this.store;\n function matchingCookie(c) {\n if (c.hostOnly) {\n if (c.domain != host) {\n return false;\n }\n } else {\n if (!domainMatch(host, c.domain, false)) {\n return false;\n }\n }\n if (!allPaths && !pathMatch(path, c.path)) {\n return false;\n }\n if (c.secure && !secure) {\n return false;\n }\n if (c.httpOnly && !http) {\n return false;\n }\n if (sameSiteLevel) {\n const cookieLevel = Cookie.sameSiteLevel[c.sameSite || \"none\"];\n if (cookieLevel > sameSiteLevel) {\n return false;\n }\n }\n if (expireCheck && c.expiryTime() <= now) {\n store.removeCookie(c.domain, c.path, c.key, () => {\n });\n return false;\n }\n return true;\n }\n store.findCookies(\n host,\n allPaths ? null : path,\n this.allowSpecialUseDomain,\n (err, cookies) => {\n if (err) {\n return cb(err);\n }\n cookies = cookies.filter(matchingCookie);\n if (options.sort !== false) {\n cookies = cookies.sort(cookieCompare);\n }\n const now2 = /* @__PURE__ */ new Date();\n for (const cookie of cookies) {\n cookie.lastAccessed = now2;\n }\n cb(null, cookies);\n }\n );\n }\n getCookieString(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.sort(cookieCompare).map((c) => c.cookieString()).join(\"; \")\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n getSetCookieStrings(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.map((c) => {\n return c.toString();\n })\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n serialize(cb) {\n validators.validate(validators.isFunction(cb), cb);\n let type = this.store.constructor.name;\n if (validators.isObject(type)) {\n type = null;\n }\n const serialized = {\n // The version of tough-cookie that serialized this jar. Generally a good\n // practice since future versions can make data import decisions based on\n // known past behavior. When/if this matters, use `semver`.\n version: `tough-cookie@${VERSION}`,\n // add the store type, to make humans happy:\n storeType: type,\n // CookieJar configuration:\n rejectPublicSuffixes: !!this.rejectPublicSuffixes,\n enableLooseMode: !!this.enableLooseMode,\n allowSpecialUseDomain: !!this.allowSpecialUseDomain,\n prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),\n // this gets filled from getAllCookies:\n cookies: []\n };\n if (!(this.store.getAllCookies && typeof this.store.getAllCookies === \"function\")) {\n return cb(\n new Error(\n \"store does not support getAllCookies and cannot be serialized\"\n )\n );\n }\n this.store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n serialized.cookies = cookies.map((cookie) => {\n cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;\n delete cookie.creationIndex;\n return cookie;\n });\n return cb(null, serialized);\n });\n }\n toJSON() {\n return this.serializeSync();\n }\n // use the class method CookieJar.deserialize instead of calling this directly\n _importCookies(serialized, cb) {\n let cookies = serialized.cookies;\n if (!cookies || !Array.isArray(cookies)) {\n return cb(new Error(\"serialized jar has no cookies array\"));\n }\n cookies = cookies.slice();\n const putNext = (err) => {\n if (err) {\n return cb(err);\n }\n if (!cookies.length) {\n return cb(err, this);\n }\n let cookie;\n try {\n cookie = fromJSON(cookies.shift());\n } catch (e) {\n return cb(e);\n }\n if (cookie === null) {\n return putNext(null);\n }\n this.store.putCookie(cookie, putNext);\n };\n putNext();\n }\n clone(newStore, cb) {\n if (arguments.length === 1) {\n cb = newStore;\n newStore = null;\n }\n this.serialize((err, serialized) => {\n if (err) {\n return cb(err);\n }\n _CookieJar.deserialize(serialized, newStore, cb);\n });\n }\n cloneSync(newStore) {\n if (arguments.length === 0) {\n return this._cloneSync();\n }\n if (!newStore.synchronous) {\n throw new Error(\n \"CookieJar clone destination store is not synchronous; use async API instead.\"\n );\n }\n return this._cloneSync(newStore);\n }\n removeAllCookies(cb) {\n validators.validate(validators.isFunction(cb), cb);\n const store = this.store;\n if (typeof store.removeAllCookies === \"function\" && store.removeAllCookies !== Store.prototype.removeAllCookies) {\n return store.removeAllCookies(cb);\n }\n store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n if (cookies.length === 0) {\n return cb(null);\n }\n let completedCount = 0;\n const removeErrors = [];\n function removeCookieCb(removeErr) {\n if (removeErr) {\n removeErrors.push(removeErr);\n }\n completedCount++;\n if (completedCount === cookies.length) {\n return cb(removeErrors.length ? removeErrors[0] : null);\n }\n }\n cookies.forEach((cookie) => {\n store.removeCookie(\n cookie.domain,\n cookie.path,\n cookie.key,\n removeCookieCb\n );\n });\n });\n }\n static deserialize(strOrObj, store, cb) {\n if (arguments.length !== 3) {\n cb = store;\n store = null;\n }\n validators.validate(validators.isFunction(cb), cb);\n let serialized;\n if (typeof strOrObj === \"string\") {\n serialized = jsonParse(strOrObj);\n if (serialized instanceof Error) {\n return cb(serialized);\n }\n } else {\n serialized = strOrObj;\n }\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode,\n allowSpecialUseDomain: serialized.allowSpecialUseDomain,\n prefixSecurity: serialized.prefixSecurity\n });\n jar._importCookies(serialized, (err) => {\n if (err) {\n return cb(err);\n }\n cb(null, jar);\n });\n }\n static deserializeSync(strOrObj, store) {\n const serialized = typeof strOrObj === \"string\" ? JSON.parse(strOrObj) : strOrObj;\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode\n });\n if (!jar.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n jar._importCookiesSync(serialized);\n return jar;\n }\n };\n CookieJar.fromJSON = CookieJar.deserializeSync;\n [\n \"_importCookies\",\n \"clone\",\n \"getCookies\",\n \"getCookieString\",\n \"getSetCookieStrings\",\n \"removeAllCookies\",\n \"serialize\",\n \"setCookie\"\n ].forEach((name) => {\n CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);\n });\n CookieJar.deserialize = fromCallback(CookieJar.deserialize);\n function syncWrap(method) {\n return function(...args) {\n if (!this.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n let syncErr, syncResult;\n this[method](...args, (err, result) => {\n syncErr = err;\n syncResult = result;\n });\n if (syncErr) {\n throw syncErr;\n }\n return syncResult;\n };\n }\n exports.version = VERSION;\n exports.CookieJar = CookieJar;\n exports.Cookie = Cookie;\n exports.Store = Store;\n exports.MemoryCookieStore = MemoryCookieStore;\n exports.parseDate = parseDate;\n exports.formatDate = formatDate;\n exports.parse = parse;\n exports.fromJSON = fromJSON;\n exports.domainMatch = domainMatch;\n exports.defaultPath = defaultPath;\n exports.pathMatch = pathMatch;\n exports.getPublicSuffix = pubsuffix.getPublicSuffix;\n exports.cookieCompare = cookieCompare;\n exports.permuteDomain = require_permuteDomain().permuteDomain;\n exports.permutePath = permutePath;\n exports.canonicalDomain = canonicalDomain;\n exports.PrefixSecurityEnum = PrefixSecurityEnum;\n exports.ParameterError = validators.ParameterError;\n }\n});\n\n// source.js\nvar import_tough_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_tough_cookie.default;\n\n/*! Bundled license information:\n\ntough-cookie/lib/pubsuffix-psl.js:\n (*!\n * Copyright (c) 2018, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/store.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/permuteDomain.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/pathMatch.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/memstore.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/cookie.js:\n (*!\n * Copyright (c) 2015-2020, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYnVuZGxlZC1lcy1tb2R1bGVzL3RvdWdoLWNvb2tpZS9pbmRleC1lc20uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDJEQUEyRCxhQUFhO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsNEZBQTRGO0FBQ3pIO0FBQ0E7QUFDQTtBQUNBLG1HQUFtRztBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBLHlFQUF5RSw4QkFBOEI7QUFDdkc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxtQ0FBbUM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixXQUFXO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QscUJBQXFCO0FBQ3ZFO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0EsNkRBQTZEO0FBQzdELFFBQVE7QUFDUiwwQ0FBMEM7QUFDMUM7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEseUJBQXlCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGtCQUFrQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1CQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHdCQUF3QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsMENBQTBDO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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Q2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsa0JBQWtCLFVBQVUsS0FBSztBQUMzRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFFBQVE7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUVBQW1FO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUdFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsK0JBQStCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJ1bmRsZWQtZXMtbW9kdWxlcy90b3VnaC1jb29raWUvaW5kZXgtZXNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2NyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19nZXRQcm90b09mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19yZXF1aXJlID0gLyogQF9fUFVSRV9fICovICgoeCkgPT4gdHlwZW9mIHJlcXVpcmUgIT09IFwidW5kZWZpbmVkXCIgPyByZXF1aXJlIDogdHlwZW9mIFByb3h5ICE9PSBcInVuZGVmaW5lZFwiID8gbmV3IFByb3h5KHgsIHtcbiAgZ2V0OiAoYSwgYikgPT4gKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiID8gcmVxdWlyZSA6IGEpW2JdXG59KSA6IHgpKGZ1bmN0aW9uKHgpIHtcbiAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mIFwiJyArIHggKyAnXCIgaXMgbm90IHN1cHBvcnRlZCcpO1xufSk7XG52YXIgX19jb21tb25KUyA9IChjYiwgbW9kKSA9PiBmdW5jdGlvbiBfX3JlcXVpcmUyKCkge1xuICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0cztcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKFxuICAvLyBJZiB0aGUgaW1wb3J0ZXIgaXMgaW4gbm9kZSBjb21wYXRpYmlsaXR5IG1vZGUgb3IgdGhpcyBpcyBub3QgYW4gRVNNXG4gIC8vIGZpbGUgdGhhdCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBDb21tb25KUyBmaWxlIHVzaW5nIGEgQmFiZWwtXG4gIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuIFwiX19lc01vZHVsZVwiIGhhcyBub3QgYmVlbiBzZXQpLCB0aGVuIHNldFxuICAvLyBcImRlZmF1bHRcIiB0byB0aGUgQ29tbW9uSlMgXCJtb2R1bGUuZXhwb3J0c1wiIGZvciBub2RlIGNvbXBhdGliaWxpdHkuXG4gIGlzTm9kZU1vZGUgfHwgIW1vZCB8fCAhbW9kLl9fZXNNb2R1bGUgPyBfX2RlZlByb3AodGFyZ2V0LCBcImRlZmF1bHRcIiwgeyB2YWx1ZTogbW9kLCBlbnVtZXJhYmxlOiB0cnVlIH0pIDogdGFyZ2V0LFxuICBtb2RcbikpO1xuXG4vLyBub2RlX21vZHVsZXMvcHVueWNvZGUvcHVueWNvZGUuanNcbnZhciByZXF1aXJlX3B1bnljb2RlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3B1bnljb2RlL3B1bnljb2RlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG1heEludCA9IDIxNDc0ODM2NDc7XG4gICAgdmFyIGJhc2UgPSAzNjtcbiAgICB2YXIgdE1pbiA9IDE7XG4gICAgdmFyIHRNYXggPSAyNjtcbiAgICB2YXIgc2tldyA9IDM4O1xuICAgIHZhciBkYW1wID0gNzAwO1xuICAgIHZhciBpbml0aWFsQmlhcyA9IDcyO1xuICAgIHZhciBpbml0aWFsTiA9IDEyODtcbiAgICB2YXIgZGVsaW1pdGVyID0gXCItXCI7XG4gICAgdmFyIHJlZ2V4UHVueWNvZGUgPSAvXnhuLS0vO1xuICAgIHZhciByZWdleE5vbkFTQ0lJID0gL1teXFwwLVxceDdGXS87XG4gICAgdmFyIHJlZ2V4U2VwYXJhdG9ycyA9IC9bXFx4MkVcXHUzMDAyXFx1RkYwRVxcdUZGNjFdL2c7XG4gICAgdmFyIGVycm9ycyA9IHtcbiAgICAgIFwib3ZlcmZsb3dcIjogXCJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2Vzc1wiLFxuICAgICAgXCJub3QtYmFzaWNcIjogXCJJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpXCIsXG4gICAgICBcImludmFsaWQtaW5wdXRcIjogXCJJbnZhbGlkIGlucHV0XCJcbiAgICB9O1xuICAgIHZhciBiYXNlTWludXNUTWluID0gYmFzZSAtIHRNaW47XG4gICAgdmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbiAgICB2YXIgc3RyaW5nRnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbiAgICBmdW5jdGlvbiBlcnJvcih0eXBlKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihlcnJvcnNbdHlwZV0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXAoYXJyYXksIGNhbGxiYWNrKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgIGxldCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2xlbmd0aF0gPSBjYWxsYmFjayhhcnJheVtsZW5ndGhdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcERvbWFpbihkb21haW4sIGNhbGxiYWNrKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGRvbWFpbi5zcGxpdChcIkBcIik7XG4gICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHJlc3VsdCA9IHBhcnRzWzBdICsgXCJAXCI7XG4gICAgICAgIGRvbWFpbiA9IHBhcnRzWzFdO1xuICAgICAgfVxuICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocmVnZXhTZXBhcmF0b3JzLCBcIi5cIik7XG4gICAgICBjb25zdCBsYWJlbHMgPSBkb21haW4uc3BsaXQoXCIuXCIpO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IG1hcChsYWJlbHMsIGNhbGxiYWNrKS5qb2luKFwiLlwiKTtcbiAgICAgIHJldHVybiByZXN1bHQgKyBlbmNvZGVkO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1Y3MyZGVjb2RlKHN0cmluZykge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gW107XG4gICAgICBsZXQgY291bnRlciA9IDA7XG4gICAgICBjb25zdCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuICAgICAgICBpZiAodmFsdWUgPj0gNTUyOTYgJiYgdmFsdWUgPD0gNTYzMTkgJiYgY291bnRlciA8IGxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGV4dHJhID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICAgICAgICBpZiAoKGV4dHJhICYgNjQ1MTIpID09IDU2MzIwKSB7XG4gICAgICAgICAgICBvdXRwdXQucHVzaCgoKHZhbHVlICYgMTAyMykgPDwgMTApICsgKGV4dHJhICYgMTAyMykgKyA2NTUzNik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICB2YXIgdWNzMmVuY29kZSA9IChjb2RlUG9pbnRzKSA9PiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKTtcbiAgICB2YXIgYmFzaWNUb0RpZ2l0ID0gZnVuY3Rpb24oY29kZVBvaW50KSB7XG4gICAgICBpZiAoY29kZVBvaW50ID49IDQ4ICYmIGNvZGVQb2ludCA8IDU4KSB7XG4gICAgICAgIHJldHVybiAyNiArIChjb2RlUG9pbnQgLSA0OCk7XG4gICAgICB9XG4gICAgICBpZiAoY29kZVBvaW50ID49IDY1ICYmIGNvZGVQb2ludCA8IDkxKSB7XG4gICAgICAgIHJldHVybiBjb2RlUG9pbnQgLSA2NTtcbiAgICAgIH1cbiAgICAgIGlmIChjb2RlUG9pbnQgPj0gOTcgJiYgY29kZVBvaW50IDwgMTIzKSB7XG4gICAgICAgIHJldHVybiBjb2RlUG9pbnQgLSA5NztcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH07XG4gICAgdmFyIGRpZ2l0VG9CYXNpYyA9IGZ1bmN0aW9uKGRpZ2l0LCBmbGFnKSB7XG4gICAgICByZXR1cm4gZGlnaXQgKyAyMiArIDc1ICogKGRpZ2l0IDwgMjYpIC0gKChmbGFnICE9IDApIDw8IDUpO1xuICAgIH07XG4gICAgdmFyIGFkYXB0ID0gZnVuY3Rpb24oZGVsdGEsIG51bVBvaW50cywgZmlyc3RUaW1lKSB7XG4gICAgICBsZXQgayA9IDA7XG4gICAgICBkZWx0YSA9IGZpcnN0VGltZSA/IGZsb29yKGRlbHRhIC8gZGFtcCkgOiBkZWx0YSA+PiAxO1xuICAgICAgZGVsdGEgKz0gZmxvb3IoZGVsdGEgLyBudW1Qb2ludHMpO1xuICAgICAgZm9yICg7IGRlbHRhID4gYmFzZU1pbnVzVE1pbiAqIHRNYXggPj4gMTsgayArPSBiYXNlKSB7XG4gICAgICAgIGRlbHRhID0gZmxvb3IoZGVsdGEgLyBiYXNlTWludXNUTWluKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmbG9vcihrICsgKGJhc2VNaW51c1RNaW4gKyAxKSAqIGRlbHRhIC8gKGRlbHRhICsgc2tldykpO1xuICAgIH07XG4gICAgdmFyIGRlY29kZSA9IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgICAgIGNvbnN0IGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgbGV0IG4gPSBpbml0aWFsTjtcbiAgICAgIGxldCBiaWFzID0gaW5pdGlhbEJpYXM7XG4gICAgICBsZXQgYmFzaWMgPSBpbnB1dC5sYXN0SW5kZXhPZihkZWxpbWl0ZXIpO1xuICAgICAgaWYgKGJhc2ljIDwgMCkge1xuICAgICAgICBiYXNpYyA9IDA7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGJhc2ljOyArK2opIHtcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoaikgPj0gMTI4KSB7XG4gICAgICAgICAgZXJyb3IoXCJub3QtYmFzaWNcIik7XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0LnB1c2goaW5wdXQuY2hhckNvZGVBdChqKSk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpbmRleCA9IGJhc2ljID4gMCA/IGJhc2ljICsgMSA6IDA7IGluZGV4IDwgaW5wdXRMZW5ndGg7ICkge1xuICAgICAgICBjb25zdCBvbGRpID0gaTtcbiAgICAgICAgZm9yIChsZXQgdyA9IDEsIGsgPSBiYXNlOyA7IGsgKz0gYmFzZSkge1xuICAgICAgICAgIGlmIChpbmRleCA+PSBpbnB1dExlbmd0aCkge1xuICAgICAgICAgICAgZXJyb3IoXCJpbnZhbGlkLWlucHV0XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBkaWdpdCA9IGJhc2ljVG9EaWdpdChpbnB1dC5jaGFyQ29kZUF0KGluZGV4KyspKTtcbiAgICAgICAgICBpZiAoZGlnaXQgPj0gYmFzZSkge1xuICAgICAgICAgICAgZXJyb3IoXCJpbnZhbGlkLWlucHV0XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGlnaXQgPiBmbG9vcigobWF4SW50IC0gaSkgLyB3KSkge1xuICAgICAgICAgICAgZXJyb3IoXCJvdmVyZmxvd1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaSArPSBkaWdpdCAqIHc7XG4gICAgICAgICAgY29uc3QgdCA9IGsgPD0gYmlhcyA/IHRNaW4gOiBrID49IGJpYXMgKyB0TWF4ID8gdE1heCA6IGsgLSBiaWFzO1xuICAgICAgICAgIGlmIChkaWdpdCA8IHQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBiYXNlTWludXNUID0gYmFzZSAtIHQ7XG4gICAgICAgICAgaWYgKHcgPiBmbG9vcihtYXhJbnQgLyBiYXNlTWludXNUKSkge1xuICAgICAgICAgICAgZXJyb3IoXCJvdmVyZmxvd1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdyAqPSBiYXNlTWludXNUO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dCA9IG91dHB1dC5sZW5ndGggKyAxO1xuICAgICAgICBiaWFzID0gYWRhcHQoaSAtIG9sZGksIG91dCwgb2xkaSA9PSAwKTtcbiAgICAgICAgaWYgKGZsb29yKGkgLyBvdXQpID4gbWF4SW50IC0gbikge1xuICAgICAgICAgIGVycm9yKFwib3ZlcmZsb3dcIik7XG4gICAgICAgIH1cbiAgICAgICAgbiArPSBmbG9vcihpIC8gb3V0KTtcbiAgICAgICAgaSAlPSBvdXQ7XG4gICAgICAgIG91dHB1dC5zcGxpY2UoaSsrLCAwLCBuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5vdXRwdXQpO1xuICAgIH07XG4gICAgdmFyIGVuY29kZSA9IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgICAgIGlucHV0ID0gdWNzMmRlY29kZShpbnB1dCk7XG4gICAgICBjb25zdCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcbiAgICAgIGxldCBuID0gaW5pdGlhbE47XG4gICAgICBsZXQgZGVsdGEgPSAwO1xuICAgICAgbGV0IGJpYXMgPSBpbml0aWFsQmlhcztcbiAgICAgIGZvciAoY29uc3QgY3VycmVudFZhbHVlIG9mIGlucHV0KSB7XG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUgPCAxMjgpIHtcbiAgICAgICAgICBvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoY3VycmVudFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGJhc2ljTGVuZ3RoID0gb3V0cHV0Lmxlbmd0aDtcbiAgICAgIGxldCBoYW5kbGVkQ1BDb3VudCA9IGJhc2ljTGVuZ3RoO1xuICAgICAgaWYgKGJhc2ljTGVuZ3RoKSB7XG4gICAgICAgIG91dHB1dC5wdXNoKGRlbGltaXRlcik7XG4gICAgICB9XG4gICAgICB3aGlsZSAoaGFuZGxlZENQQ291bnQgPCBpbnB1dExlbmd0aCkge1xuICAgICAgICBsZXQgbSA9IG1heEludDtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50VmFsdWUgb2YgaW5wdXQpIHtcbiAgICAgICAgICBpZiAoY3VycmVudFZhbHVlID49IG4gJiYgY3VycmVudFZhbHVlIDwgbSkge1xuICAgICAgICAgICAgbSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFuZGxlZENQQ291bnRQbHVzT25lID0gaGFuZGxlZENQQ291bnQgKyAxO1xuICAgICAgICBpZiAobSAtIG4gPiBmbG9vcigobWF4SW50IC0gZGVsdGEpIC8gaGFuZGxlZENQQ291bnRQbHVzT25lKSkge1xuICAgICAgICAgIGVycm9yKFwib3ZlcmZsb3dcIik7XG4gICAgICAgIH1cbiAgICAgICAgZGVsdGEgKz0gKG0gLSBuKSAqIGhhbmRsZWRDUENvdW50UGx1c09uZTtcbiAgICAgICAgbiA9IG07XG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudFZhbHVlIG9mIGlucHV0KSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA8IG4gJiYgKytkZWx0YSA+IG1heEludCkge1xuICAgICAgICAgICAgZXJyb3IoXCJvdmVyZmxvd1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gbikge1xuICAgICAgICAgICAgbGV0IHEgPSBkZWx0YTtcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSBiYXNlOyA7IGsgKz0gYmFzZSkge1xuICAgICAgICAgICAgICBjb25zdCB0ID0gayA8PSBiaWFzID8gdE1pbiA6IGsgPj0gYmlhcyArIHRNYXggPyB0TWF4IDogayAtIGJpYXM7XG4gICAgICAgICAgICAgIGlmIChxIDwgdCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHFNaW51c1QgPSBxIC0gdDtcbiAgICAgICAgICAgICAgY29uc3QgYmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuICAgICAgICAgICAgICBvdXRwdXQucHVzaChcbiAgICAgICAgICAgICAgICBzdHJpbmdGcm9tQ2hhckNvZGUoZGlnaXRUb0Jhc2ljKHQgKyBxTWludXNUICUgYmFzZU1pbnVzVCwgMCkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHEgPSBmbG9vcihxTWludXNUIC8gYmFzZU1pbnVzVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoZGlnaXRUb0Jhc2ljKHEsIDApKSk7XG4gICAgICAgICAgICBiaWFzID0gYWRhcHQoZGVsdGEsIGhhbmRsZWRDUENvdW50UGx1c09uZSwgaGFuZGxlZENQQ291bnQgPT09IGJhc2ljTGVuZ3RoKTtcbiAgICAgICAgICAgIGRlbHRhID0gMDtcbiAgICAgICAgICAgICsraGFuZGxlZENQQ291bnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICsrZGVsdGE7XG4gICAgICAgICsrbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXRwdXQuam9pbihcIlwiKTtcbiAgICB9O1xuICAgIHZhciB0b1VuaWNvZGUgPSBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgcmV0dXJuIG1hcERvbWFpbihpbnB1dCwgZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiByZWdleFB1bnljb2RlLnRlc3Qoc3RyaW5nKSA/IGRlY29kZShzdHJpbmcuc2xpY2UoNCkudG9Mb3dlckNhc2UoKSkgOiBzdHJpbmc7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHZhciB0b0FTQ0lJID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgIHJldHVybiBtYXBEb21haW4oaW5wdXQsIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICByZXR1cm4gcmVnZXhOb25BU0NJSS50ZXN0KHN0cmluZykgPyBcInhuLS1cIiArIGVuY29kZShzdHJpbmcpIDogc3RyaW5nO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB2YXIgcHVueWNvZGUgPSB7XG4gICAgICAvKipcbiAgICAgICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBQdW55Y29kZS5qcyB2ZXJzaW9uIG51bWJlci5cbiAgICAgICAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICAgICAgICogQHR5cGUgU3RyaW5nXG4gICAgICAgKi9cbiAgICAgIFwidmVyc2lvblwiOiBcIjIuMy4xXCIsXG4gICAgICAvKipcbiAgICAgICAqIEFuIG9iamVjdCBvZiBtZXRob2RzIHRvIGNvbnZlcnQgZnJvbSBKYXZhU2NyaXB0J3MgaW50ZXJuYWwgY2hhcmFjdGVyXG4gICAgICAgKiByZXByZXNlbnRhdGlvbiAoVUNTLTIpIHRvIFVuaWNvZGUgY29kZSBwb2ludHMsIGFuZCBiYWNrLlxuICAgICAgICogQHNlZSA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmc+XG4gICAgICAgKiBAbWVtYmVyT2YgcHVueWNvZGVcbiAgICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAgICovXG4gICAgICBcInVjczJcIjoge1xuICAgICAgICBcImRlY29kZVwiOiB1Y3MyZGVjb2RlLFxuICAgICAgICBcImVuY29kZVwiOiB1Y3MyZW5jb2RlXG4gICAgICB9LFxuICAgICAgXCJkZWNvZGVcIjogZGVjb2RlLFxuICAgICAgXCJlbmNvZGVcIjogZW5jb2RlLFxuICAgICAgXCJ0b0FTQ0lJXCI6IHRvQVNDSUksXG4gICAgICBcInRvVW5pY29kZVwiOiB0b1VuaWNvZGVcbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gcHVueWNvZGU7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmVxdWlyZXMtcG9ydC9pbmRleC5qc1xudmFyIHJlcXVpcmVfcmVxdWlyZXNfcG9ydCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yZXF1aXJlcy1wb3J0L2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZXF1aXJlZChwb3J0LCBwcm90b2NvbCkge1xuICAgICAgcHJvdG9jb2wgPSBwcm90b2NvbC5zcGxpdChcIjpcIilbMF07XG4gICAgICBwb3J0ID0gK3BvcnQ7XG4gICAgICBpZiAoIXBvcnQpIHJldHVybiBmYWxzZTtcbiAgICAgIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICAgICAgY2FzZSBcImh0dHBcIjpcbiAgICAgICAgY2FzZSBcIndzXCI6XG4gICAgICAgICAgcmV0dXJuIHBvcnQgIT09IDgwO1xuICAgICAgICBjYXNlIFwiaHR0cHNcIjpcbiAgICAgICAgY2FzZSBcIndzc1wiOlxuICAgICAgICAgIHJldHVybiBwb3J0ICE9PSA0NDM7XG4gICAgICAgIGNhc2UgXCJmdHBcIjpcbiAgICAgICAgICByZXR1cm4gcG9ydCAhPT0gMjE7XG4gICAgICAgIGNhc2UgXCJnb3BoZXJcIjpcbiAgICAgICAgICByZXR1cm4gcG9ydCAhPT0gNzA7XG4gICAgICAgIGNhc2UgXCJmaWxlXCI6XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBvcnQgIT09IDA7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9xdWVyeXN0cmluZ2lmeS9pbmRleC5qc1xudmFyIHJlcXVpcmVfcXVlcnlzdHJpbmdpZnkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcXVlcnlzdHJpbmdpZnkvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIHVuZGVmO1xuICAgIGZ1bmN0aW9uIGRlY29kZShpbnB1dCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChpbnB1dC5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuY29kZShpbnB1dCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBxdWVyeXN0cmluZyhxdWVyeSkge1xuICAgICAgdmFyIHBhcnNlciA9IC8oW149PyMmXSspPT8oW14mXSopL2csIHJlc3VsdCA9IHt9LCBwYXJ0O1xuICAgICAgd2hpbGUgKHBhcnQgPSBwYXJzZXIuZXhlYyhxdWVyeSkpIHtcbiAgICAgICAgdmFyIGtleSA9IGRlY29kZShwYXJ0WzFdKSwgdmFsdWUgPSBkZWNvZGUocGFydFsyXSk7XG4gICAgICAgIGlmIChrZXkgPT09IG51bGwgfHwgdmFsdWUgPT09IG51bGwgfHwga2V5IGluIHJlc3VsdCkgY29udGludWU7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdWVyeXN0cmluZ2lmeShvYmosIHByZWZpeCkge1xuICAgICAgcHJlZml4ID0gcHJlZml4IHx8IFwiXCI7XG4gICAgICB2YXIgcGFpcnMgPSBbXSwgdmFsdWUsIGtleTtcbiAgICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJlZml4KSBwcmVmaXggPSBcIj9cIjtcbiAgICAgIGZvciAoa2V5IGluIG9iaikge1xuICAgICAgICBpZiAoaGFzLmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgdmFsdWUgPSBvYmpba2V5XTtcbiAgICAgICAgICBpZiAoIXZhbHVlICYmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWYgfHwgaXNOYU4odmFsdWUpKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXkgPSBlbmNvZGUoa2V5KTtcbiAgICAgICAgICB2YWx1ZSA9IGVuY29kZSh2YWx1ZSk7XG4gICAgICAgICAgaWYgKGtleSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gbnVsbCkgY29udGludWU7XG4gICAgICAgICAgcGFpcnMucHVzaChrZXkgKyBcIj1cIiArIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhaXJzLmxlbmd0aCA/IHByZWZpeCArIHBhaXJzLmpvaW4oXCImXCIpIDogXCJcIjtcbiAgICB9XG4gICAgZXhwb3J0cy5zdHJpbmdpZnkgPSBxdWVyeXN0cmluZ2lmeTtcbiAgICBleHBvcnRzLnBhcnNlID0gcXVlcnlzdHJpbmc7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdXJsLXBhcnNlL2luZGV4LmpzXG52YXIgcmVxdWlyZV91cmxfcGFyc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdXJsLXBhcnNlL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHJlcXVpcmVkID0gcmVxdWlyZV9yZXF1aXJlc19wb3J0KCk7XG4gICAgdmFyIHFzID0gcmVxdWlyZV9xdWVyeXN0cmluZ2lmeSgpO1xuICAgIHZhciBjb250cm9sT3JXaGl0ZXNwYWNlID0gL15bXFx4MDAtXFx4MjBcXHUwMGEwXFx1MTY4MFxcdTIwMDAtXFx1MjAwYVxcdTIwMjhcXHUyMDI5XFx1MjAyZlxcdTIwNWZcXHUzMDAwXFx1ZmVmZl0rLztcbiAgICB2YXIgQ1JIVExGID0gL1tcXG5cXHJcXHRdL2c7XG4gICAgdmFyIHNsYXNoZXMgPSAvXltBLVphLXpdW0EtWmEtejAtOSstLl0qOlxcL1xcLy87XG4gICAgdmFyIHBvcnQgPSAvOlxcZCskLztcbiAgICB2YXIgcHJvdG9jb2xyZSA9IC9eKFthLXpdW2EtejAtOS4rLV0qOik/KFxcL1xcLyk/KFtcXFxcL10rKT8oW1xcU1xcc10qKS9pO1xuICAgIHZhciB3aW5kb3dzRHJpdmVMZXR0ZXIgPSAvXlthLXpBLVpdOi87XG4gICAgZnVuY3Rpb24gdHJpbUxlZnQoc3RyKSB7XG4gICAgICByZXR1cm4gKHN0ciA/IHN0ciA6IFwiXCIpLnRvU3RyaW5nKCkucmVwbGFjZShjb250cm9sT3JXaGl0ZXNwYWNlLCBcIlwiKTtcbiAgICB9XG4gICAgdmFyIHJ1bGVzID0gW1xuICAgICAgW1wiI1wiLCBcImhhc2hcIl0sXG4gICAgICAvLyBFeHRyYWN0IGZyb20gdGhlIGJhY2suXG4gICAgICBbXCI/XCIsIFwicXVlcnlcIl0sXG4gICAgICAvLyBFeHRyYWN0IGZyb20gdGhlIGJhY2suXG4gICAgICBmdW5jdGlvbiBzYW5pdGl6ZShhZGRyZXNzLCB1cmwpIHtcbiAgICAgICAgcmV0dXJuIGlzU3BlY2lhbCh1cmwucHJvdG9jb2wpID8gYWRkcmVzcy5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKSA6IGFkZHJlc3M7XG4gICAgICB9LFxuICAgICAgW1wiL1wiLCBcInBhdGhuYW1lXCJdLFxuICAgICAgLy8gRXh0cmFjdCBmcm9tIHRoZSBiYWNrLlxuICAgICAgW1wiQFwiLCBcImF1dGhcIiwgMV0sXG4gICAgICAvLyBFeHRyYWN0IGZyb20gdGhlIGZyb250LlxuICAgICAgW05hTiwgXCJob3N0XCIsIHZvaWQgMCwgMSwgMV0sXG4gICAgICAvLyBTZXQgbGVmdCBvdmVyIHZhbHVlLlxuICAgICAgWy86KFxcZCopJC8sIFwicG9ydFwiLCB2b2lkIDAsIDFdLFxuICAgICAgLy8gUmVnRXhwIHRoZSBiYWNrLlxuICAgICAgW05hTiwgXCJob3N0bmFtZVwiLCB2b2lkIDAsIDEsIDFdXG4gICAgICAvLyBTZXQgbGVmdCBvdmVyLlxuICAgIF07XG4gICAgdmFyIGlnbm9yZSA9IHsgaGFzaDogMSwgcXVlcnk6IDEgfTtcbiAgICBmdW5jdGlvbiBsb2xjYXRpb24obG9jKSB7XG4gICAgICB2YXIgZ2xvYmFsVmFyO1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIGdsb2JhbFZhciA9IHdpbmRvdztcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIpIGdsb2JhbFZhciA9IGdsb2JhbDtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSBnbG9iYWxWYXIgPSBzZWxmO1xuICAgICAgZWxzZSBnbG9iYWxWYXIgPSB7fTtcbiAgICAgIHZhciBsb2NhdGlvbiA9IGdsb2JhbFZhci5sb2NhdGlvbiB8fCB7fTtcbiAgICAgIGxvYyA9IGxvYyB8fCBsb2NhdGlvbjtcbiAgICAgIHZhciBmaW5hbGRlc3RpbmF0aW9uID0ge30sIHR5cGUgPSB0eXBlb2YgbG9jLCBrZXk7XG4gICAgICBpZiAoXCJibG9iOlwiID09PSBsb2MucHJvdG9jb2wpIHtcbiAgICAgICAgZmluYWxkZXN0aW5hdGlvbiA9IG5ldyBVcmwodW5lc2NhcGUobG9jLnBhdGhuYW1lKSwge30pO1xuICAgICAgfSBlbHNlIGlmIChcInN0cmluZ1wiID09PSB0eXBlKSB7XG4gICAgICAgIGZpbmFsZGVzdGluYXRpb24gPSBuZXcgVXJsKGxvYywge30pO1xuICAgICAgICBmb3IgKGtleSBpbiBpZ25vcmUpIGRlbGV0ZSBmaW5hbGRlc3RpbmF0aW9uW2tleV07XG4gICAgICB9IGVsc2UgaWYgKFwib2JqZWN0XCIgPT09IHR5cGUpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gbG9jKSB7XG4gICAgICAgICAgaWYgKGtleSBpbiBpZ25vcmUpIGNvbnRpbnVlO1xuICAgICAgICAgIGZpbmFsZGVzdGluYXRpb25ba2V5XSA9IGxvY1trZXldO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaW5hbGRlc3RpbmF0aW9uLnNsYXNoZXMgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGZpbmFsZGVzdGluYXRpb24uc2xhc2hlcyA9IHNsYXNoZXMudGVzdChsb2MuaHJlZik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaW5hbGRlc3RpbmF0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1NwZWNpYWwoc2NoZW1lKSB7XG4gICAgICByZXR1cm4gc2NoZW1lID09PSBcImZpbGU6XCIgfHwgc2NoZW1lID09PSBcImZ0cDpcIiB8fCBzY2hlbWUgPT09IFwiaHR0cDpcIiB8fCBzY2hlbWUgPT09IFwiaHR0cHM6XCIgfHwgc2NoZW1lID09PSBcIndzOlwiIHx8IHNjaGVtZSA9PT0gXCJ3c3M6XCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dHJhY3RQcm90b2NvbChhZGRyZXNzLCBsb2NhdGlvbikge1xuICAgICAgYWRkcmVzcyA9IHRyaW1MZWZ0KGFkZHJlc3MpO1xuICAgICAgYWRkcmVzcyA9IGFkZHJlc3MucmVwbGFjZShDUkhUTEYsIFwiXCIpO1xuICAgICAgbG9jYXRpb24gPSBsb2NhdGlvbiB8fCB7fTtcbiAgICAgIHZhciBtYXRjaCA9IHByb3RvY29scmUuZXhlYyhhZGRyZXNzKTtcbiAgICAgIHZhciBwcm90b2NvbCA9IG1hdGNoWzFdID8gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSA6IFwiXCI7XG4gICAgICB2YXIgZm9yd2FyZFNsYXNoZXMgPSAhIW1hdGNoWzJdO1xuICAgICAgdmFyIG90aGVyU2xhc2hlcyA9ICEhbWF0Y2hbM107XG4gICAgICB2YXIgc2xhc2hlc0NvdW50ID0gMDtcbiAgICAgIHZhciByZXN0O1xuICAgICAgaWYgKGZvcndhcmRTbGFzaGVzKSB7XG4gICAgICAgIGlmIChvdGhlclNsYXNoZXMpIHtcbiAgICAgICAgICByZXN0ID0gbWF0Y2hbMl0gKyBtYXRjaFszXSArIG1hdGNoWzRdO1xuICAgICAgICAgIHNsYXNoZXNDb3VudCA9IG1hdGNoWzJdLmxlbmd0aCArIG1hdGNoWzNdLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN0ID0gbWF0Y2hbMl0gKyBtYXRjaFs0XTtcbiAgICAgICAgICBzbGFzaGVzQ291bnQgPSBtYXRjaFsyXS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChvdGhlclNsYXNoZXMpIHtcbiAgICAgICAgICByZXN0ID0gbWF0Y2hbM10gKyBtYXRjaFs0XTtcbiAgICAgICAgICBzbGFzaGVzQ291bnQgPSBtYXRjaFszXS5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdCA9IG1hdGNoWzRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvdG9jb2wgPT09IFwiZmlsZTpcIikge1xuICAgICAgICBpZiAoc2xhc2hlc0NvdW50ID49IDIpIHtcbiAgICAgICAgICByZXN0ID0gcmVzdC5zbGljZSgyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc1NwZWNpYWwocHJvdG9jb2wpKSB7XG4gICAgICAgIHJlc3QgPSBtYXRjaFs0XTtcbiAgICAgIH0gZWxzZSBpZiAocHJvdG9jb2wpIHtcbiAgICAgICAgaWYgKGZvcndhcmRTbGFzaGVzKSB7XG4gICAgICAgICAgcmVzdCA9IHJlc3Quc2xpY2UoMik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc2xhc2hlc0NvdW50ID49IDIgJiYgaXNTcGVjaWFsKGxvY2F0aW9uLnByb3RvY29sKSkge1xuICAgICAgICByZXN0ID0gbWF0Y2hbNF07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgc2xhc2hlczogZm9yd2FyZFNsYXNoZXMgfHwgaXNTcGVjaWFsKHByb3RvY29sKSxcbiAgICAgICAgc2xhc2hlc0NvdW50LFxuICAgICAgICByZXN0XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlKHJlbGF0aXZlLCBiYXNlKSB7XG4gICAgICBpZiAocmVsYXRpdmUgPT09IFwiXCIpIHJldHVybiBiYXNlO1xuICAgICAgdmFyIHBhdGggPSAoYmFzZSB8fCBcIi9cIikuc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKS5jb25jYXQocmVsYXRpdmUuc3BsaXQoXCIvXCIpKSwgaSA9IHBhdGgubGVuZ3RoLCBsYXN0ID0gcGF0aFtpIC0gMV0sIHVuc2hpZnQgPSBmYWxzZSwgdXAgPSAwO1xuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICBpZiAocGF0aFtpXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgICBwYXRoLnNwbGljZShpLCAxKTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXRoW2ldID09PSBcIi4uXCIpIHtcbiAgICAgICAgICBwYXRoLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB1cCsrO1xuICAgICAgICB9IGVsc2UgaWYgKHVwKSB7XG4gICAgICAgICAgaWYgKGkgPT09IDApIHVuc2hpZnQgPSB0cnVlO1xuICAgICAgICAgIHBhdGguc3BsaWNlKGksIDEpO1xuICAgICAgICAgIHVwLS07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh1bnNoaWZ0KSBwYXRoLnVuc2hpZnQoXCJcIik7XG4gICAgICBpZiAobGFzdCA9PT0gXCIuXCIgfHwgbGFzdCA9PT0gXCIuLlwiKSBwYXRoLnB1c2goXCJcIik7XG4gICAgICByZXR1cm4gcGF0aC5qb2luKFwiL1wiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gVXJsKGFkZHJlc3MsIGxvY2F0aW9uLCBwYXJzZXIpIHtcbiAgICAgIGFkZHJlc3MgPSB0cmltTGVmdChhZGRyZXNzKTtcbiAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLnJlcGxhY2UoQ1JIVExGLCBcIlwiKTtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBVcmwpKSB7XG4gICAgICAgIHJldHVybiBuZXcgVXJsKGFkZHJlc3MsIGxvY2F0aW9uLCBwYXJzZXIpO1xuICAgICAgfVxuICAgICAgdmFyIHJlbGF0aXZlLCBleHRyYWN0ZWQsIHBhcnNlLCBpbnN0cnVjdGlvbiwgaW5kZXgsIGtleSwgaW5zdHJ1Y3Rpb25zID0gcnVsZXMuc2xpY2UoKSwgdHlwZSA9IHR5cGVvZiBsb2NhdGlvbiwgdXJsID0gdGhpcywgaSA9IDA7XG4gICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdHlwZSAmJiBcInN0cmluZ1wiICE9PSB0eXBlKSB7XG4gICAgICAgIHBhcnNlciA9IGxvY2F0aW9uO1xuICAgICAgICBsb2NhdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAocGFyc2VyICYmIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHBhcnNlcikgcGFyc2VyID0gcXMucGFyc2U7XG4gICAgICBsb2NhdGlvbiA9IGxvbGNhdGlvbihsb2NhdGlvbik7XG4gICAgICBleHRyYWN0ZWQgPSBleHRyYWN0UHJvdG9jb2woYWRkcmVzcyB8fCBcIlwiLCBsb2NhdGlvbik7XG4gICAgICByZWxhdGl2ZSA9ICFleHRyYWN0ZWQucHJvdG9jb2wgJiYgIWV4dHJhY3RlZC5zbGFzaGVzO1xuICAgICAgdXJsLnNsYXNoZXMgPSBleHRyYWN0ZWQuc2xhc2hlcyB8fCByZWxhdGl2ZSAmJiBsb2NhdGlvbi5zbGFzaGVzO1xuICAgICAgdXJsLnByb3RvY29sID0gZXh0cmFjdGVkLnByb3RvY29sIHx8IGxvY2F0aW9uLnByb3RvY29sIHx8IFwiXCI7XG4gICAgICBhZGRyZXNzID0gZXh0cmFjdGVkLnJlc3Q7XG4gICAgICBpZiAoZXh0cmFjdGVkLnByb3RvY29sID09PSBcImZpbGU6XCIgJiYgKGV4dHJhY3RlZC5zbGFzaGVzQ291bnQgIT09IDIgfHwgd2luZG93c0RyaXZlTGV0dGVyLnRlc3QoYWRkcmVzcykpIHx8ICFleHRyYWN0ZWQuc2xhc2hlcyAmJiAoZXh0cmFjdGVkLnByb3RvY29sIHx8IGV4dHJhY3RlZC5zbGFzaGVzQ291bnQgPCAyIHx8ICFpc1NwZWNpYWwodXJsLnByb3RvY29sKSkpIHtcbiAgICAgICAgaW5zdHJ1Y3Rpb25zWzNdID0gWy8oLiopLywgXCJwYXRobmFtZVwiXTtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgaW5zdHJ1Y3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGluc3RydWN0aW9uID0gaW5zdHJ1Y3Rpb25zW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGluc3RydWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBhZGRyZXNzID0gaW5zdHJ1Y3Rpb24oYWRkcmVzcywgdXJsKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZSA9IGluc3RydWN0aW9uWzBdO1xuICAgICAgICBrZXkgPSBpbnN0cnVjdGlvblsxXTtcbiAgICAgICAgaWYgKHBhcnNlICE9PSBwYXJzZSkge1xuICAgICAgICAgIHVybFtrZXldID0gYWRkcmVzcztcbiAgICAgICAgfSBlbHNlIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgcGFyc2UpIHtcbiAgICAgICAgICBpbmRleCA9IHBhcnNlID09PSBcIkBcIiA/IGFkZHJlc3MubGFzdEluZGV4T2YocGFyc2UpIDogYWRkcmVzcy5pbmRleE9mKHBhcnNlKTtcbiAgICAgICAgICBpZiAofmluZGV4KSB7XG4gICAgICAgICAgICBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIGluc3RydWN0aW9uWzJdKSB7XG4gICAgICAgICAgICAgIHVybFtrZXldID0gYWRkcmVzcy5zbGljZSgwLCBpbmRleCk7XG4gICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLnNsaWNlKGluZGV4ICsgaW5zdHJ1Y3Rpb25bMl0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdXJsW2tleV0gPSBhZGRyZXNzLnNsaWNlKGluZGV4KTtcbiAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Muc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9IHBhcnNlLmV4ZWMoYWRkcmVzcykpIHtcbiAgICAgICAgICB1cmxba2V5XSA9IGluZGV4WzFdO1xuICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLnNsaWNlKDAsIGluZGV4LmluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICB1cmxba2V5XSA9IHVybFtrZXldIHx8IChyZWxhdGl2ZSAmJiBpbnN0cnVjdGlvblszXSA/IGxvY2F0aW9uW2tleV0gfHwgXCJcIiA6IFwiXCIpO1xuICAgICAgICBpZiAoaW5zdHJ1Y3Rpb25bNF0pIHVybFtrZXldID0gdXJsW2tleV0udG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJzZXIpIHVybC5xdWVyeSA9IHBhcnNlcih1cmwucXVlcnkpO1xuICAgICAgaWYgKHJlbGF0aXZlICYmIGxvY2F0aW9uLnNsYXNoZXMgJiYgdXJsLnBhdGhuYW1lLmNoYXJBdCgwKSAhPT0gXCIvXCIgJiYgKHVybC5wYXRobmFtZSAhPT0gXCJcIiB8fCBsb2NhdGlvbi5wYXRobmFtZSAhPT0gXCJcIikpIHtcbiAgICAgICAgdXJsLnBhdGhuYW1lID0gcmVzb2x2ZSh1cmwucGF0aG5hbWUsIGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmICh1cmwucGF0aG5hbWUuY2hhckF0KDApICE9PSBcIi9cIiAmJiBpc1NwZWNpYWwodXJsLnByb3RvY29sKSkge1xuICAgICAgICB1cmwucGF0aG5hbWUgPSBcIi9cIiArIHVybC5wYXRobmFtZTtcbiAgICAgIH1cbiAgICAgIGlmICghcmVxdWlyZWQodXJsLnBvcnQsIHVybC5wcm90b2NvbCkpIHtcbiAgICAgICAgdXJsLmhvc3QgPSB1cmwuaG9zdG5hbWU7XG4gICAgICAgIHVybC5wb3J0ID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIHVybC51c2VybmFtZSA9IHVybC5wYXNzd29yZCA9IFwiXCI7XG4gICAgICBpZiAodXJsLmF1dGgpIHtcbiAgICAgICAgaW5kZXggPSB1cmwuYXV0aC5pbmRleE9mKFwiOlwiKTtcbiAgICAgICAgaWYgKH5pbmRleCkge1xuICAgICAgICAgIHVybC51c2VybmFtZSA9IHVybC5hdXRoLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgICB1cmwudXNlcm5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KHVybC51c2VybmFtZSkpO1xuICAgICAgICAgIHVybC5wYXNzd29yZCA9IHVybC5hdXRoLnNsaWNlKGluZGV4ICsgMSk7XG4gICAgICAgICAgdXJsLnBhc3N3b3JkID0gZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudCh1cmwucGFzc3dvcmQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmwudXNlcm5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KHVybC5hdXRoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdXJsLmF1dGggPSB1cmwucGFzc3dvcmQgPyB1cmwudXNlcm5hbWUgKyBcIjpcIiArIHVybC5wYXNzd29yZCA6IHVybC51c2VybmFtZTtcbiAgICAgIH1cbiAgICAgIHVybC5vcmlnaW4gPSB1cmwucHJvdG9jb2wgIT09IFwiZmlsZTpcIiAmJiBpc1NwZWNpYWwodXJsLnByb3RvY29sKSAmJiB1cmwuaG9zdCA/IHVybC5wcm90b2NvbCArIFwiLy9cIiArIHVybC5ob3N0IDogXCJudWxsXCI7XG4gICAgICB1cmwuaHJlZiA9IHVybC50b1N0cmluZygpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXQocGFydCwgdmFsdWUsIGZuKSB7XG4gICAgICB2YXIgdXJsID0gdGhpcztcbiAgICAgIHN3aXRjaCAocGFydCkge1xuICAgICAgICBjYXNlIFwicXVlcnlcIjpcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHZhbHVlICYmIHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsdWUgPSAoZm4gfHwgcXMucGFyc2UpKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJsW3BhcnRdID0gdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwb3J0XCI6XG4gICAgICAgICAgdXJsW3BhcnRdID0gdmFsdWU7XG4gICAgICAgICAgaWYgKCFyZXF1aXJlZCh2YWx1ZSwgdXJsLnByb3RvY29sKSkge1xuICAgICAgICAgICAgdXJsLmhvc3QgPSB1cmwuaG9zdG5hbWU7XG4gICAgICAgICAgICB1cmxbcGFydF0gPSBcIlwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHVybC5ob3N0ID0gdXJsLmhvc3RuYW1lICsgXCI6XCIgKyB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJob3N0bmFtZVwiOlxuICAgICAgICAgIHVybFtwYXJ0XSA9IHZhbHVlO1xuICAgICAgICAgIGlmICh1cmwucG9ydCkgdmFsdWUgKz0gXCI6XCIgKyB1cmwucG9ydDtcbiAgICAgICAgICB1cmwuaG9zdCA9IHZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaG9zdFwiOlxuICAgICAgICAgIHVybFtwYXJ0XSA9IHZhbHVlO1xuICAgICAgICAgIGlmIChwb3J0LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgICAgIHVybC5wb3J0ID0gdmFsdWUucG9wKCk7XG4gICAgICAgICAgICB1cmwuaG9zdG5hbWUgPSB2YWx1ZS5qb2luKFwiOlwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsLmhvc3RuYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB1cmwucG9ydCA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicHJvdG9jb2xcIjpcbiAgICAgICAgICB1cmwucHJvdG9jb2wgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHVybC5zbGFzaGVzID0gIWZuO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicGF0aG5hbWVcIjpcbiAgICAgICAgY2FzZSBcImhhc2hcIjpcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBjaGFyID0gcGFydCA9PT0gXCJwYXRobmFtZVwiID8gXCIvXCIgOiBcIiNcIjtcbiAgICAgICAgICAgIHVybFtwYXJ0XSA9IHZhbHVlLmNoYXJBdCgwKSAhPT0gY2hhciA/IGNoYXIgKyB2YWx1ZSA6IHZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmxbcGFydF0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ1c2VybmFtZVwiOlxuICAgICAgICBjYXNlIFwicGFzc3dvcmRcIjpcbiAgICAgICAgICB1cmxbcGFydF0gPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYXV0aFwiOlxuICAgICAgICAgIHZhciBpbmRleCA9IHZhbHVlLmluZGV4T2YoXCI6XCIpO1xuICAgICAgICAgIGlmICh+aW5kZXgpIHtcbiAgICAgICAgICAgIHVybC51c2VybmFtZSA9IHZhbHVlLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgICAgIHVybC51c2VybmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQodXJsLnVzZXJuYW1lKSk7XG4gICAgICAgICAgICB1cmwucGFzc3dvcmQgPSB2YWx1ZS5zbGljZShpbmRleCArIDEpO1xuICAgICAgICAgICAgdXJsLnBhc3N3b3JkID0gZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudCh1cmwucGFzc3dvcmQpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsLnVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGlucyA9IHJ1bGVzW2ldO1xuICAgICAgICBpZiAoaW5zWzRdKSB1cmxbaW5zWzFdXSA9IHVybFtpbnNbMV1dLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICB1cmwuYXV0aCA9IHVybC5wYXNzd29yZCA/IHVybC51c2VybmFtZSArIFwiOlwiICsgdXJsLnBhc3N3b3JkIDogdXJsLnVzZXJuYW1lO1xuICAgICAgdXJsLm9yaWdpbiA9IHVybC5wcm90b2NvbCAhPT0gXCJmaWxlOlwiICYmIGlzU3BlY2lhbCh1cmwucHJvdG9jb2wpICYmIHVybC5ob3N0ID8gdXJsLnByb3RvY29sICsgXCIvL1wiICsgdXJsLmhvc3QgOiBcIm51bGxcIjtcbiAgICAgIHVybC5ocmVmID0gdXJsLnRvU3RyaW5nKCk7XG4gICAgICByZXR1cm4gdXJsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0b1N0cmluZyhzdHJpbmdpZnkpIHtcbiAgICAgIGlmICghc3RyaW5naWZ5IHx8IFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHN0cmluZ2lmeSkgc3RyaW5naWZ5ID0gcXMuc3RyaW5naWZ5O1xuICAgICAgdmFyIHF1ZXJ5LCB1cmwgPSB0aGlzLCBob3N0ID0gdXJsLmhvc3QsIHByb3RvY29sID0gdXJsLnByb3RvY29sO1xuICAgICAgaWYgKHByb3RvY29sICYmIHByb3RvY29sLmNoYXJBdChwcm90b2NvbC5sZW5ndGggLSAxKSAhPT0gXCI6XCIpIHByb3RvY29sICs9IFwiOlwiO1xuICAgICAgdmFyIHJlc3VsdCA9IHByb3RvY29sICsgKHVybC5wcm90b2NvbCAmJiB1cmwuc2xhc2hlcyB8fCBpc1NwZWNpYWwodXJsLnByb3RvY29sKSA/IFwiLy9cIiA6IFwiXCIpO1xuICAgICAgaWYgKHVybC51c2VybmFtZSkge1xuICAgICAgICByZXN1bHQgKz0gdXJsLnVzZXJuYW1lO1xuICAgICAgICBpZiAodXJsLnBhc3N3b3JkKSByZXN1bHQgKz0gXCI6XCIgKyB1cmwucGFzc3dvcmQ7XG4gICAgICAgIHJlc3VsdCArPSBcIkBcIjtcbiAgICAgIH0gZWxzZSBpZiAodXJsLnBhc3N3b3JkKSB7XG4gICAgICAgIHJlc3VsdCArPSBcIjpcIiArIHVybC5wYXNzd29yZDtcbiAgICAgICAgcmVzdWx0ICs9IFwiQFwiO1xuICAgICAgfSBlbHNlIGlmICh1cmwucHJvdG9jb2wgIT09IFwiZmlsZTpcIiAmJiBpc1NwZWNpYWwodXJsLnByb3RvY29sKSAmJiAhaG9zdCAmJiB1cmwucGF0aG5hbWUgIT09IFwiL1wiKSB7XG4gICAgICAgIHJlc3VsdCArPSBcIkBcIjtcbiAgICAgIH1cbiAgICAgIGlmIChob3N0W2hvc3QubGVuZ3RoIC0gMV0gPT09IFwiOlwiIHx8IHBvcnQudGVzdCh1cmwuaG9zdG5hbWUpICYmICF1cmwucG9ydCkge1xuICAgICAgICBob3N0ICs9IFwiOlwiO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IGhvc3QgKyB1cmwucGF0aG5hbWU7XG4gICAgICBxdWVyeSA9IFwib2JqZWN0XCIgPT09IHR5cGVvZiB1cmwucXVlcnkgPyBzdHJpbmdpZnkodXJsLnF1ZXJ5KSA6IHVybC5xdWVyeTtcbiAgICAgIGlmIChxdWVyeSkgcmVzdWx0ICs9IFwiP1wiICE9PSBxdWVyeS5jaGFyQXQoMCkgPyBcIj9cIiArIHF1ZXJ5IDogcXVlcnk7XG4gICAgICBpZiAodXJsLmhhc2gpIHJlc3VsdCArPSB1cmwuaGFzaDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIFVybC5wcm90b3R5cGUgPSB7IHNldCwgdG9TdHJpbmcgfTtcbiAgICBVcmwuZXh0cmFjdFByb3RvY29sID0gZXh0cmFjdFByb3RvY29sO1xuICAgIFVybC5sb2NhdGlvbiA9IGxvbGNhdGlvbjtcbiAgICBVcmwudHJpbUxlZnQgPSB0cmltTGVmdDtcbiAgICBVcmwucXMgPSBxcztcbiAgICBtb2R1bGUuZXhwb3J0cyA9IFVybDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wc2wvZGF0YS9ydWxlcy5qc29uXG52YXIgcmVxdWlyZV9ydWxlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9wc2wvZGF0YS9ydWxlcy5qc29uXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBbXG4gICAgICBcImFjXCIsXG4gICAgICBcImNvbS5hY1wiLFxuICAgICAgXCJlZHUuYWNcIixcbiAgICAgIFwiZ292LmFjXCIsXG4gICAgICBcIm5ldC5hY1wiLFxuICAgICAgXCJtaWwuYWNcIixcbiAgICAgIFwib3JnLmFjXCIsXG4gICAgICBcImFkXCIsXG4gICAgICBcIm5vbS5hZFwiLFxuICAgICAgXCJhZVwiLFxuICAgICAgXCJjby5hZVwiLFxuICAgICAgXCJuZXQuYWVcIixcbiAgICAgIFwib3JnLmFlXCIsXG4gICAgICBcInNjaC5hZVwiLFxuICAgICAgXCJhYy5hZVwiLFxuICAgICAgXCJnb3YuYWVcIixcbiAgICAgIFwibWlsLmFlXCIsXG4gICAgICBcImFlcm9cIixcbiAgICAgIFwiYWNjaWRlbnQtaW52ZXN0aWdhdGlvbi5hZXJvXCIsXG4gICAgICBcImFjY2lkZW50LXByZXZlbnRpb24uYWVyb1wiLFxuICAgICAgXCJhZXJvYmF0aWMuYWVyb1wiLFxuICAgICAgXCJhZXJvY2x1Yi5hZXJvXCIsXG4gICAgICBcImFlcm9kcm9tZS5hZXJvXCIsXG4gICAgICBcImFnZW50cy5hZXJvXCIsXG4gICAgICBcImFpcmNyYWZ0LmFlcm9cIixcbiAgICAgIFwiYWlybGluZS5hZXJvXCIsXG4gICAgICBcImFpcnBvcnQuYWVyb1wiLFxuICAgICAgXCJhaXItc3VydmVpbGxhbmNlLmFlcm9cIixcbiAgICAgIFwiYWlydHJhZmZpYy5hZXJvXCIsXG4gICAgICBcImFpci10cmFmZmljLWNvbnRyb2wuYWVyb1wiLFxuICAgICAgXCJhbWJ1bGFuY2UuYWVyb1wiLFxuICAgICAgXCJhbXVzZW1lbnQuYWVyb1wiLFxuICAgICAgXCJhc3NvY2lhdGlvbi5hZXJvXCIsXG4gICAgICBcImF1dGhvci5hZXJvXCIsXG4gICAgICBcImJhbGxvb25pbmcuYWVyb1wiLFxuICAgICAgXCJicm9rZXIuYWVyb1wiLFxuICAgICAgXCJjYWEuYWVyb1wiLFxuICAgICAgXCJjYXJnby5hZXJvXCIsXG4gICAgICBcImNhdGVyaW5nLmFlcm9cIixcbiAgICAgIFwiY2VydGlmaWNhdGlvbi5hZXJvXCIsXG4gICAgICBcImNoYW1waW9uc2hpcC5hZXJvXCIsXG4gICAgICBcImNoYXJ0ZXIuYWVyb1wiLFxuICAgICAgXCJjaXZpbGF2aWF0aW9uLmFlcm9cIixcbiAgICAgIFwiY2x1Yi5hZXJvXCIsXG4gICAgICBcImNvbmZlcmVuY2UuYWVyb1wiLFxuICAgICAgXCJjb25zdWx0YW50LmFlcm9cIixcbiAgICAgIFwiY29uc3VsdGluZy5hZXJvXCIsXG4gICAgICBcImNvbnRyb2wuYWVyb1wiLFxuICAgICAgXCJjb3VuY2lsLmFlcm9cIixcbiAgICAgIFwiY3Jldy5hZXJvXCIsXG4gICAgICBcImRlc2lnbi5hZXJvXCIsXG4gICAgICBcImRnY2EuYWVyb1wiLFxuICAgICAgXCJlZHVjYXRvci5hZXJvXCIsXG4gICAgICBcImVtZXJnZW5jeS5hZXJvXCIsXG4gICAgICBcImVuZ2luZS5hZXJvXCIsXG4gICAgICBcImVuZ2luZWVyLmFlcm9cIixcbiAgICAgIFwiZW50ZXJ0YWlubWVudC5hZXJvXCIsXG4gICAgICBcImVxdWlwbWVudC5hZXJvXCIsXG4gICAgICBcImV4Y2hhbmdlLmFlcm9cIixcbiAgICAgIFwiZXhwcmVzcy5hZXJvXCIsXG4gICAgICBcImZlZGVyYXRpb24uYWVyb1wiLFxuICAgICAgXCJmbGlnaHQuYWVyb1wiLFxuICAgICAgXCJmdWVsLmFlcm9cIixcbiAgICAgIFwiZ2xpZGluZy5hZXJvXCIsXG4gICAgICBcImdvdmVybm1lbnQuYWVyb1wiLFxuICAgICAgXCJncm91bmRoYW5kbGluZy5hZXJvXCIsXG4gICAgICBcImdyb3VwLmFlcm9cIixcbiAgICAgIFwiaGFuZ2dsaWRpbmcuYWVyb1wiLFxuICAgICAgXCJob21lYnVpbHQuYWVyb1wiLFxuICAgICAgXCJpbnN1cmFuY2UuYWVyb1wiLFxuICAgICAgXCJqb3VybmFsLmFlcm9cIixcbiAgICAgIFwiam91cm5hbGlzdC5hZXJvXCIsXG4gICAgICBcImxlYXNpbmcuYWVyb1wiLFxuICAgICAgXCJsb2dpc3RpY3MuYWVyb1wiLFxuICAgICAgXCJtYWdhemluZS5hZXJvXCIsXG4gICAgICBcIm1haW50ZW5hbmNlLmFlcm9cIixcbiAgICAgIFwibWVkaWEuYWVyb1wiLFxuICAgICAgXCJtaWNyb2xpZ2h0LmFlcm9cIixcbiAgICAgIFwibW9kZWxsaW5nLmFlcm9cIixcbiAgICAgIFwibmF2aWdhdGlvbi5hZXJvXCIsXG4gICAgICBcInBhcmFjaHV0aW5nLmFlcm9cIixcbiAgICAgIFwicGFyYWdsaWRpbmcuYWVyb1wiLFxuICAgICAgXCJwYXNzZW5nZXItYXNzb2NpYXRpb24uYWVyb1wiLFxuICAgICAgXCJwaWxvdC5hZXJvXCIsXG4gICAgICBcInByZXNzLmFlcm9cIixcbiAgICAgIFwicHJvZHVjdGlvbi5hZXJvXCIsXG4gICAgICBcInJlY3JlYXRpb24uYWVyb1wiLFxuICAgICAgXCJyZXBib2R5LmFlcm9cIixcbiAgICAgIFwicmVzLmFlcm9cIixcbiAgICAgIFwicmVzZWFyY2guYWVyb1wiLFxuICAgICAgXCJyb3RvcmNyYWZ0LmFlcm9cIixcbiAgICAgIFwic2FmZXR5LmFlcm9cIixcbiAgICAgIFwic2NpZW50aXN0LmFlcm9cIixcbiAgICAgIFwic2VydmljZXMuYWVyb1wiLFxuICAgICAgXCJzaG93LmFlcm9cIixcbiAgICAgIFwic2t5ZGl2aW5nLmFlcm9cIixcbiAgICAgIFwic29mdHdhcmUuYWVyb1wiLFxuICAgICAgXCJzdHVkZW50LmFlcm9cIixcbiAgICAgIFwidHJhZGVyLmFlcm9cIixcbiAgICAgIFwidHJhZGluZy5hZXJvXCIsXG4gICAgICBcInRyYWluZXIuYWVyb1wiLFxuICAgICAgXCJ1bmlvbi5hZXJvXCIsXG4gICAgICBcIndvcmtpbmdncm91cC5hZXJvXCIsXG4gICAgICBcIndvcmtzLmFlcm9cIixcbiAgICAgIFwiYWZcIixcbiAgICAgIFwiZ292LmFmXCIsXG4gICAgICBcImNvbS5hZlwiLFxuICAgICAgXCJvcmcuYWZcIixcbiAgICAgIFwibmV0LmFmXCIsXG4gICAgICBcImVkdS5hZlwiLFxuICAgICAgXCJhZ1wiLFxuICAgICAgXCJjb20uYWdcIixcbiAgICAgIFwib3JnLmFnXCIsXG4gICAgICBcIm5ldC5hZ1wiLFxuICAgICAgXCJjby5hZ1wiLFxuICAgICAgXCJub20uYWdcIixcbiAgICAgIFwiYWlcIixcbiAgICAgIFwib2ZmLmFpXCIsXG4gICAgICBcImNvbS5haVwiLFxuICAgICAgXCJuZXQuYWlcIixcbiAgICAgIFwib3JnLmFpXCIsXG4gICAgICBcImFsXCIsXG4gICAgICBcImNvbS5hbFwiLFxuICAgICAgXCJlZHUuYWxcIixcbiAgICAgIFwiZ292LmFsXCIsXG4gICAgICBcIm1pbC5hbFwiLFxuICAgICAgXCJuZXQuYWxcIixcbiAgICAgIFwib3JnLmFsXCIsXG4gICAgICBcImFtXCIsXG4gICAgICBcImNvLmFtXCIsXG4gICAgICBcImNvbS5hbVwiLFxuICAgICAgXCJjb21tdW5lLmFtXCIsXG4gICAgICBcIm5ldC5hbVwiLFxuICAgICAgXCJvcmcuYW1cIixcbiAgICAgIFwiYW9cIixcbiAgICAgIFwiZWQuYW9cIixcbiAgICAgIFwiZ3YuYW9cIixcbiAgICAgIFwib2cuYW9cIixcbiAgICAgIFwiY28uYW9cIixcbiAgICAgIFwicGIuYW9cIixcbiAgICAgIFwiaXQuYW9cIixcbiAgICAgIFwiYXFcIixcbiAgICAgIFwiYXJcIixcbiAgICAgIFwiYmV0LmFyXCIsXG4gICAgICBcImNvbS5hclwiLFxuICAgICAgXCJjb29wLmFyXCIsXG4gICAgICBcImVkdS5hclwiLFxuICAgICAgXCJnb2IuYXJcIixcbiAgICAgIFwiZ292LmFyXCIsXG4gICAgICBcImludC5hclwiLFxuICAgICAgXCJtaWwuYXJcIixcbiAgICAgIFwibXVzaWNhLmFyXCIsXG4gICAgICBcIm11dHVhbC5hclwiLFxuICAgICAgXCJuZXQuYXJcIixcbiAgICAgIFwib3JnLmFyXCIsXG4gICAgICBcInNlbmFzYS5hclwiLFxuICAgICAgXCJ0dXIuYXJcIixcbiAgICAgIFwiYXJwYVwiLFxuICAgICAgXCJlMTY0LmFycGFcIixcbiAgICAgIFwiaW4tYWRkci5hcnBhXCIsXG4gICAgICBcImlwNi5hcnBhXCIsXG4gICAgICBcImlyaXMuYXJwYVwiLFxuICAgICAgXCJ1cmkuYXJwYVwiLFxuICAgICAgXCJ1cm4uYXJwYVwiLFxuICAgICAgXCJhc1wiLFxuICAgICAgXCJnb3YuYXNcIixcbiAgICAgIFwiYXNpYVwiLFxuICAgICAgXCJhdFwiLFxuICAgICAgXCJhYy5hdFwiLFxuICAgICAgXCJjby5hdFwiLFxuICAgICAgXCJndi5hdFwiLFxuICAgICAgXCJvci5hdFwiLFxuICAgICAgXCJzdGguYWMuYXRcIixcbiAgICAgIFwiYXVcIixcbiAgICAgIFwiY29tLmF1XCIsXG4gICAgICBcIm5ldC5hdVwiLFxuICAgICAgXCJvcmcuYXVcIixcbiAgICAgIFwiZWR1LmF1XCIsXG4gICAgICBcImdvdi5hdVwiLFxuICAgICAgXCJhc24uYXVcIixcbiAgICAgIFwiaWQuYXVcIixcbiAgICAgIFwiaW5mby5hdVwiLFxuICAgICAgXCJjb25mLmF1XCIsXG4gICAgICBcIm96LmF1XCIsXG4gICAgICBcImFjdC5hdVwiLFxuICAgICAgXCJuc3cuYXVcIixcbiAgICAgIFwibnQuYXVcIixcbiAgICAgIFwicWxkLmF1XCIsXG4gICAgICBcInNhLmF1XCIsXG4gICAgICBcInRhcy5hdVwiLFxuICAgICAgXCJ2aWMuYXVcIixcbiAgICAgIFwid2EuYXVcIixcbiAgICAgIFwiYWN0LmVkdS5hdVwiLFxuICAgICAgXCJjYXRob2xpYy5lZHUuYXVcIixcbiAgICAgIFwibnN3LmVkdS5hdVwiLFxuICAgICAgXCJudC5lZHUuYXVcIixcbiAgICAgIFwicWxkLmVkdS5hdVwiLFxuICAgICAgXCJzYS5lZHUuYXVcIixcbiAgICAgIFwidGFzLmVkdS5hdVwiLFxuICAgICAgXCJ2aWMuZWR1LmF1XCIsXG4gICAgICBcIndhLmVkdS5hdVwiLFxuICAgICAgXCJxbGQuZ292LmF1XCIsXG4gICAgICBcInNhLmdvdi5hdVwiLFxuICAgICAgXCJ0YXMuZ292LmF1XCIsXG4gICAgICBcInZpYy5nb3YuYXVcIixcbiAgICAgIFwid2EuZ292LmF1XCIsXG4gICAgICBcInNjaG9vbHMubnN3LmVkdS5hdVwiLFxuICAgICAgXCJhd1wiLFxuICAgICAgXCJjb20uYXdcIixcbiAgICAgIFwiYXhcIixcbiAgICAgIFwiYXpcIixcbiAgICAgIFwiY29tLmF6XCIsXG4gICAgICBcIm5ldC5helwiLFxuICAgICAgXCJpbnQuYXpcIixcbiAgICAgIFwiZ292LmF6XCIsXG4gICAgICBcIm9yZy5helwiLFxuICAgICAgXCJlZHUuYXpcIixcbiAgICAgIFwiaW5mby5helwiLFxuICAgICAgXCJwcC5helwiLFxuICAgICAgXCJtaWwuYXpcIixcbiAgICAgIFwibmFtZS5helwiLFxuICAgICAgXCJwcm8uYXpcIixcbiAgICAgIFwiYml6LmF6XCIsXG4gICAgICBcImJhXCIsXG4gICAgICBcImNvbS5iYVwiLFxuICAgICAgXCJlZHUuYmFcIixcbiAgICAgIFwiZ292LmJhXCIsXG4gICAgICBcIm1pbC5iYVwiLFxuICAgICAgXCJuZXQuYmFcIixcbiAgICAgIFwib3JnLmJhXCIsXG4gICAgICBcImJiXCIsXG4gICAgICBcImJpei5iYlwiLFxuICAgICAgXCJjby5iYlwiLFxuICAgICAgXCJjb20uYmJcIixcbiAgICAgIFwiZWR1LmJiXCIsXG4gICAgICBcImdvdi5iYlwiLFxuICAgICAgXCJpbmZvLmJiXCIsXG4gICAgICBcIm5ldC5iYlwiLFxuICAgICAgXCJvcmcuYmJcIixcbiAgICAgIFwic3RvcmUuYmJcIixcbiAgICAgIFwidHYuYmJcIixcbiAgICAgIFwiKi5iZFwiLFxuICAgICAgXCJiZVwiLFxuICAgICAgXCJhYy5iZVwiLFxuICAgICAgXCJiZlwiLFxuICAgICAgXCJnb3YuYmZcIixcbiAgICAgIFwiYmdcIixcbiAgICAgIFwiYS5iZ1wiLFxuICAgICAgXCJiLmJnXCIsXG4gICAgICBcImMuYmdcIixcbiAgICAgIFwiZC5iZ1wiLFxuICAgICAgXCJlLmJnXCIsXG4gICAgICBcImYuYmdcIixcbiAgICAgIFwiZy5iZ1wiLFxuICAgICAgXCJoLmJnXCIsXG4gICAgICBcImkuYmdcIixcbiAgICAgIFwiai5iZ1wiLFxuICAgICAgXCJrLmJnXCIsXG4gICAgICBcImwuYmdcIixcbiAgICAgIFwibS5iZ1wiLFxuICAgICAgXCJuLmJnXCIsXG4gICAgICBcIm8uYmdcIixcbiAgICAgIFwicC5iZ1wiLFxuICAgICAgXCJxLmJnXCIsXG4gICAgICBcInIuYmdcIixcbiAgICAgIFwicy5iZ1wiLFxuICAgICAgXCJ0LmJnXCIsXG4gICAgICBcInUuYmdcIixcbiAgICAgIFwidi5iZ1wiLFxuICAgICAgXCJ3LmJnXCIsXG4gICAgICBcInguYmdcIixcbiAgICAgIFwieS5iZ1wiLFxuICAgICAgXCJ6LmJnXCIsXG4gICAgICBcIjAuYmdcIixcbiAgICAgIFwiMS5iZ1wiLFxuICAgICAgXCIyLmJnXCIsXG4gICAgICBcIjMuYmdcIixcbiAgICAgIFwiNC5iZ1wiLFxuICAgICAgXCI1LmJnXCIsXG4gICAgICBcIjYuYmdcIixcbiAgICAgIFwiNy5iZ1wiLFxuICAgICAgXCI4LmJnXCIsXG4gICAgICBcIjkuYmdcIixcbiAgICAgIFwiYmhcIixcbiAgICAgIFwiY29tLmJoXCIsXG4gICAgICBcImVkdS5iaFwiLFxuICAgICAgXCJuZXQuYmhcIixcbiAgICAgIFwib3JnLmJoXCIsXG4gICAgICBcImdvdi5iaFwiLFxuICAgICAgXCJiaVwiLFxuICAgICAgXCJjby5iaVwiLFxuICAgICAgXCJjb20uYmlcIixcbiAgICAgIFwiZWR1LmJpXCIsXG4gICAgICBcIm9yLmJpXCIsXG4gICAgICBcIm9yZy5iaVwiLFxuICAgICAgXCJiaXpcIixcbiAgICAgIFwiYmpcIixcbiAgICAgIFwiYXNzby5ialwiLFxuICAgICAgXCJiYXJyZWF1LmJqXCIsXG4gICAgICBcImdvdXYuYmpcIixcbiAgICAgIFwiYm1cIixcbiAgICAgIFwiY29tLmJtXCIsXG4gICAgICBcImVkdS5ibVwiLFxuICAgICAgXCJnb3YuYm1cIixcbiAgICAgIFwibmV0LmJtXCIsXG4gICAgICBcIm9yZy5ibVwiLFxuICAgICAgXCJiblwiLFxuICAgICAgXCJjb20uYm5cIixcbiAgICAgIFwiZWR1LmJuXCIsXG4gICAgICBcImdvdi5iblwiLFxuICAgICAgXCJuZXQuYm5cIixcbiAgICAgIFwib3JnLmJuXCIsXG4gICAgICBcImJvXCIsXG4gICAgICBcImNvbS5ib1wiLFxuICAgICAgXCJlZHUuYm9cIixcbiAgICAgIFwiZ29iLmJvXCIsXG4gICAgICBcImludC5ib1wiLFxuICAgICAgXCJvcmcuYm9cIixcbiAgICAgIFwibmV0LmJvXCIsXG4gICAgICBcIm1pbC5ib1wiLFxuICAgICAgXCJ0di5ib1wiLFxuICAgICAgXCJ3ZWIuYm9cIixcbiAgICAgIFwiYWNhZGVtaWEuYm9cIixcbiAgICAgIFwiYWdyby5ib1wiLFxuICAgICAgXCJhcnRlLmJvXCIsXG4gICAgICBcImJsb2cuYm9cIixcbiAgICAgIFwiYm9saXZpYS5ib1wiLFxuICAgICAgXCJjaWVuY2lhLmJvXCIsXG4gICAgICBcImNvb3BlcmF0aXZhLmJvXCIsXG4gICAgICBcImRlbW9jcmFjaWEuYm9cIixcbiAgICAgIFwiZGVwb3J0ZS5ib1wiLFxuICAgICAgXCJlY29sb2dpYS5ib1wiLFxuICAgICAgXCJlY29ub21pYS5ib1wiLFxuICAgICAgXCJlbXByZXNhLmJvXCIsXG4gICAgICBcImluZGlnZW5hLmJvXCIsXG4gICAgICBcImluZHVzdHJpYS5ib1wiLFxuICAgICAgXCJpbmZvLmJvXCIsXG4gICAgICBcIm1lZGljaW5hLmJvXCIsXG4gICAgICBcIm1vdmltaWVudG8uYm9cIixcbiAgICAgIFwibXVzaWNhLmJvXCIsXG4gICAgICBcIm5hdHVyYWwuYm9cIixcbiAgICAgIFwibm9tYnJlLmJvXCIsXG4gICAgICBcIm5vdGljaWFzLmJvXCIsXG4gICAgICBcInBhdHJpYS5ib1wiLFxuICAgICAgXCJwb2xpdGljYS5ib1wiLFxuICAgICAgXCJwcm9mZXNpb25hbC5ib1wiLFxuICAgICAgXCJwbHVyaW5hY2lvbmFsLmJvXCIsXG4gICAgICBcInB1ZWJsby5ib1wiLFxuICAgICAgXCJyZXZpc3RhLmJvXCIsXG4gICAgICBcInNhbHVkLmJvXCIsXG4gICAgICBcInRlY25vbG9naWEuYm9cIixcbiAgICAgIFwidGtzYXQuYm9cIixcbiAgICAgIFwidHJhbnNwb3J0ZS5ib1wiLFxuICAgICAgXCJ3aWtpLmJvXCIsXG4gICAgICBcImJyXCIsXG4gICAgICBcIjlndWFjdS5iclwiLFxuICAgICAgXCJhYmMuYnJcIixcbiAgICAgIFwiYWRtLmJyXCIsXG4gICAgICBcImFkdi5iclwiLFxuICAgICAgXCJhZ3IuYnJcIixcbiAgICAgIFwiYWp1LmJyXCIsXG4gICAgICBcImFtLmJyXCIsXG4gICAgICBcImFuYW5pLmJyXCIsXG4gICAgICBcImFwYXJlY2lkYS5iclwiLFxuICAgICAgXCJhcHAuYnJcIixcbiAgICAgIFwiYXJxLmJyXCIsXG4gICAgICBcImFydC5iclwiLFxuICAgICAgXCJhdG8uYnJcIixcbiAgICAgIFwiYi5iclwiLFxuICAgICAgXCJiYXJ1ZXJpLmJyXCIsXG4gICAgICBcImJlbGVtLmJyXCIsXG4gICAgICBcImJoei5iclwiLFxuICAgICAgXCJiaWIuYnJcIixcbiAgICAgIFwiYmlvLmJyXCIsXG4gICAgICBcImJsb2cuYnJcIixcbiAgICAgIFwiYm1kLmJyXCIsXG4gICAgICBcImJvYXZpc3RhLmJyXCIsXG4gICAgICBcImJzYi5iclwiLFxuICAgICAgXCJjYW1waW5hZ3JhbmRlLmJyXCIsXG4gICAgICBcImNhbXBpbmFzLmJyXCIsXG4gICAgICBcImNheGlhcy5iclwiLFxuICAgICAgXCJjaW0uYnJcIixcbiAgICAgIFwiY25nLmJyXCIsXG4gICAgICBcImNudC5iclwiLFxuICAgICAgXCJjb20uYnJcIixcbiAgICAgIFwiY29udGFnZW0uYnJcIixcbiAgICAgIFwiY29vcC5iclwiLFxuICAgICAgXCJjb3ouYnJcIixcbiAgICAgIFwiY3JpLmJyXCIsXG4gICAgICBcImN1aWFiYS5iclwiLFxuICAgICAgXCJjdXJpdGliYS5iclwiLFxuICAgICAgXCJkZWYuYnJcIixcbiAgICAgIFwiZGVzLmJyXCIsXG4gICAgICBcImRldC5iclwiLFxuICAgICAgXCJkZXYuYnJcIixcbiAgICAgIFwiZWNuLmJyXCIsXG4gICAgICBcImVjby5iclwiLFxuICAgICAgXCJlZHUuYnJcIixcbiAgICAgIFwiZW1wLmJyXCIsXG4gICAgICBcImVuZi5iclwiLFxuICAgICAgXCJlbmcuYnJcIixcbiAgICAgIFwiZXNwLmJyXCIsXG4gICAgICBcImV0Yy5iclwiLFxuICAgICAgXCJldGkuYnJcIixcbiAgICAgIFwiZmFyLmJyXCIsXG4gICAgICBcImZlaXJhLmJyXCIsXG4gICAgICBcImZsb2cuYnJcIixcbiAgICAgIFwiZmxvcmlwYS5iclwiLFxuICAgICAgXCJmbS5iclwiLFxuICAgICAgXCJmbmQuYnJcIixcbiAgICAgIFwiZm9ydGFsLmJyXCIsXG4gICAgICBcImZvdC5iclwiLFxuICAgICAgXCJmb3ouYnJcIixcbiAgICAgIFwiZnN0LmJyXCIsXG4gICAgICBcImcxMi5iclwiLFxuICAgICAgXCJnZW8uYnJcIixcbiAgICAgIFwiZ2dmLmJyXCIsXG4gICAgICBcImdvaWFuaWEuYnJcIixcbiAgICAgIFwiZ292LmJyXCIsXG4gICAgICBcImFjLmdvdi5iclwiLFxuICAgICAgXCJhbC5nb3YuYnJcIixcbiAgICAgIFwiYW0uZ292LmJyXCIsXG4gICAgICBcImFwLmdvdi5iclwiLFxuICAgICAgXCJiYS5nb3YuYnJcIixcbiAgICAgIFwiY2UuZ292LmJyXCIsXG4gICAgICBcImRmLmdvdi5iclwiLFxuICAgICAgXCJlcy5nb3YuYnJcIixcbiAgICAgIFwiZ28uZ292LmJyXCIsXG4gICAgICBcIm1hLmdvdi5iclwiLFxuICAgICAgXCJtZy5nb3YuYnJcIixcbiAgICAgIFwibXMuZ292LmJyXCIsXG4gICAgICBcIm10Lmdvdi5iclwiLFxuICAgICAgXCJwYS5nb3YuYnJcIixcbiAgICAgIFwicGIuZ292LmJyXCIsXG4gICAgICBcInBlLmdvdi5iclwiLFxuICAgICAgXCJwaS5nb3YuYnJcIixcbiAgICAgIFwicHIuZ292LmJyXCIsXG4gICAgICBcInJqLmdvdi5iclwiLFxuICAgICAgXCJybi5nb3YuYnJcIixcbiAgICAgIFwicm8uZ292LmJyXCIsXG4gICAgICBcInJyLmdvdi5iclwiLFxuICAgICAgXCJycy5nb3YuYnJcIixcbiAgICAgIFwic2MuZ292LmJyXCIsXG4gICAgICBcInNlLmdvdi5iclwiLFxuICAgICAgXCJzcC5nb3YuYnJcIixcbiAgICAgIFwidG8uZ292LmJyXCIsXG4gICAgICBcImdydS5iclwiLFxuICAgICAgXCJpbWIuYnJcIixcbiAgICAgIFwiaW5kLmJyXCIsXG4gICAgICBcImluZi5iclwiLFxuICAgICAgXCJqYWIuYnJcIixcbiAgICAgIFwiamFtcGEuYnJcIixcbiAgICAgIFwiamRmLmJyXCIsXG4gICAgICBcImpvaW52aWxsZS5iclwiLFxuICAgICAgXCJqb3IuYnJcIixcbiAgICAgIFwianVzLmJyXCIsXG4gICAgICBcImxlZy5iclwiLFxuICAgICAgXCJsZWwuYnJcIixcbiAgICAgIFwibG9nLmJyXCIsXG4gICAgICBcImxvbmRyaW5hLmJyXCIsXG4gICAgICBcIm1hY2FwYS5iclwiLFxuICAgICAgXCJtYWNlaW8uYnJcIixcbiAgICAgIFwibWFuYXVzLmJyXCIsXG4gICAgICBcIm1hcmluZ2EuYnJcIixcbiAgICAgIFwibWF0LmJyXCIsXG4gICAgICBcIm1lZC5iclwiLFxuICAgICAgXCJtaWwuYnJcIixcbiAgICAgIFwibW9yZW5hLmJyXCIsXG4gICAgICBcIm1wLmJyXCIsXG4gICAgICBcIm11cy5iclwiLFxuICAgICAgXCJuYXRhbC5iclwiLFxuICAgICAgXCJuZXQuYnJcIixcbiAgICAgIFwibml0ZXJvaS5iclwiLFxuICAgICAgXCIqLm5vbS5iclwiLFxuICAgICAgXCJub3QuYnJcIixcbiAgICAgIFwibnRyLmJyXCIsXG4gICAgICBcIm9kby5iclwiLFxuICAgICAgXCJvbmcuYnJcIixcbiAgICAgIFwib3JnLmJyXCIsXG4gICAgICBcIm9zYXNjby5iclwiLFxuICAgICAgXCJwYWxtYXMuYnJcIixcbiAgICAgIFwicG9hLmJyXCIsXG4gICAgICBcInBwZy5iclwiLFxuICAgICAgXCJwcm8uYnJcIixcbiAgICAgIFwicHNjLmJyXCIsXG4gICAgICBcInBzaS5iclwiLFxuICAgICAgXCJwdmguYnJcIixcbiAgICAgIFwicXNsLmJyXCIsXG4gICAgICBcInJhZGlvLmJyXCIsXG4gICAgICBcInJlYy5iclwiLFxuICAgICAgXCJyZWNpZmUuYnJcIixcbiAgICAgIFwicmVwLmJyXCIsXG4gICAgICBcInJpYmVpcmFvLmJyXCIsXG4gICAgICBcInJpby5iclwiLFxuICAgICAgXCJyaW9icmFuY28uYnJcIixcbiAgICAgIFwicmlvcHJldG8uYnJcIixcbiAgICAgIFwic2FsdmFkb3IuYnJcIixcbiAgICAgIFwic2FtcGEuYnJcIixcbiAgICAgIFwic2FudGFtYXJpYS5iclwiLFxuICAgICAgXCJzYW50b2FuZHJlLmJyXCIsXG4gICAgICBcInNhb2Jlcm5hcmRvLmJyXCIsXG4gICAgICBcInNhb2dvbmNhLmJyXCIsXG4gICAgICBcInNlZy5iclwiLFxuICAgICAgXCJzamMuYnJcIixcbiAgICAgIFwic2xnLmJyXCIsXG4gICAgICBcInNsei5iclwiLFxuICAgICAgXCJzb3JvY2FiYS5iclwiLFxuICAgICAgXCJzcnYuYnJcIixcbiAgICAgIFwidGF4aS5iclwiLFxuICAgICAgXCJ0Yy5iclwiLFxuICAgICAgXCJ0ZWMuYnJcIixcbiAgICAgIFwidGVvLmJyXCIsXG4gICAgICBcInRoZS5iclwiLFxuICAgICAgXCJ0bXAuYnJcIixcbiAgICAgIFwidHJkLmJyXCIsXG4gICAgICBcInR1ci5iclwiLFxuICAgICAgXCJ0di5iclwiLFxuICAgICAgXCJ1ZGkuYnJcIixcbiAgICAgIFwidmV0LmJyXCIsXG4gICAgICBcInZpeC5iclwiLFxuICAgICAgXCJ2bG9nLmJyXCIsXG4gICAgICBcIndpa2kuYnJcIixcbiAgICAgIFwiemxnLmJyXCIsXG4gICAgICBcImJzXCIsXG4gICAgICBcImNvbS5ic1wiLFxuICAgICAgXCJuZXQuYnNcIixcbiAgICAgIFwib3JnLmJzXCIsXG4gICAgICBcImVkdS5ic1wiLFxuICAgICAgXCJnb3YuYnNcIixcbiAgICAgIFwiYnRcIixcbiAgICAgIFwiY29tLmJ0XCIsXG4gICAgICBcImVkdS5idFwiLFxuICAgICAgXCJnb3YuYnRcIixcbiAgICAgIFwibmV0LmJ0XCIsXG4gICAgICBcIm9yZy5idFwiLFxuICAgICAgXCJidlwiLFxuICAgICAgXCJid1wiLFxuICAgICAgXCJjby5id1wiLFxuICAgICAgXCJvcmcuYndcIixcbiAgICAgIFwiYnlcIixcbiAgICAgIFwiZ292LmJ5XCIsXG4gICAgICBcIm1pbC5ieVwiLFxuICAgICAgXCJjb20uYnlcIixcbiAgICAgIFwib2YuYnlcIixcbiAgICAgIFwiYnpcIixcbiAgICAgIFwiY29tLmJ6XCIsXG4gICAgICBcIm5ldC5ielwiLFxuICAgICAgXCJvcmcuYnpcIixcbiAgICAgIFwiZWR1LmJ6XCIsXG4gICAgICBcImdvdi5ielwiLFxuICAgICAgXCJjYVwiLFxuICAgICAgXCJhYi5jYVwiLFxuICAgICAgXCJiYy5jYVwiLFxuICAgICAgXCJtYi5jYVwiLFxuICAgICAgXCJuYi5jYVwiLFxuICAgICAgXCJuZi5jYVwiLFxuICAgICAgXCJubC5jYVwiLFxuICAgICAgXCJucy5jYVwiLFxuICAgICAgXCJudC5jYVwiLFxuICAgICAgXCJudS5jYVwiLFxuICAgICAgXCJvbi5jYVwiLFxuICAgICAgXCJwZS5jYVwiLFxuICAgICAgXCJxYy5jYVwiLFxuICAgICAgXCJzay5jYVwiLFxuICAgICAgXCJ5ay5jYVwiLFxuICAgICAgXCJnYy5jYVwiLFxuICAgICAgXCJjYXRcIixcbiAgICAgIFwiY2NcIixcbiAgICAgIFwiY2RcIixcbiAgICAgIFwiZ292LmNkXCIsXG4gICAgICBcImNmXCIsXG4gICAgICBcImNnXCIsXG4gICAgICBcImNoXCIsXG4gICAgICBcImNpXCIsXG4gICAgICBcIm9yZy5jaVwiLFxuICAgICAgXCJvci5jaVwiLFxuICAgICAgXCJjb20uY2lcIixcbiAgICAgIFwiY28uY2lcIixcbiAgICAgIFwiZWR1LmNpXCIsXG4gICAgICBcImVkLmNpXCIsXG4gICAgICBcImFjLmNpXCIsXG4gICAgICBcIm5ldC5jaVwiLFxuICAgICAgXCJnby5jaVwiLFxuICAgICAgXCJhc3NvLmNpXCIsXG4gICAgICBcImFcXHhFOXJvcG9ydC5jaVwiLFxuICAgICAgXCJpbnQuY2lcIixcbiAgICAgIFwicHJlc3NlLmNpXCIsXG4gICAgICBcIm1kLmNpXCIsXG4gICAgICBcImdvdXYuY2lcIixcbiAgICAgIFwiKi5ja1wiLFxuICAgICAgXCIhd3d3LmNrXCIsXG4gICAgICBcImNsXCIsXG4gICAgICBcImNvLmNsXCIsXG4gICAgICBcImdvYi5jbFwiLFxuICAgICAgXCJnb3YuY2xcIixcbiAgICAgIFwibWlsLmNsXCIsXG4gICAgICBcImNtXCIsXG4gICAgICBcImNvLmNtXCIsXG4gICAgICBcImNvbS5jbVwiLFxuICAgICAgXCJnb3YuY21cIixcbiAgICAgIFwibmV0LmNtXCIsXG4gICAgICBcImNuXCIsXG4gICAgICBcImFjLmNuXCIsXG4gICAgICBcImNvbS5jblwiLFxuICAgICAgXCJlZHUuY25cIixcbiAgICAgIFwiZ292LmNuXCIsXG4gICAgICBcIm5ldC5jblwiLFxuICAgICAgXCJvcmcuY25cIixcbiAgICAgIFwibWlsLmNuXCIsXG4gICAgICBcIlxcdTUxNkNcXHU1M0Y4LmNuXCIsXG4gICAgICBcIlxcdTdGNTFcXHU3RURDLmNuXCIsXG4gICAgICBcIlxcdTdEQjJcXHU3RDYxLmNuXCIsXG4gICAgICBcImFoLmNuXCIsXG4gICAgICBcImJqLmNuXCIsXG4gICAgICBcImNxLmNuXCIsXG4gICAgICBcImZqLmNuXCIsXG4gICAgICBcImdkLmNuXCIsXG4gICAgICBcImdzLmNuXCIsXG4gICAgICBcImd6LmNuXCIsXG4gICAgICBcImd4LmNuXCIsXG4gICAgICBcImhhLmNuXCIsXG4gICAgICBcImhiLmNuXCIsXG4gICAgICBcImhlLmNuXCIsXG4gICAgICBcImhpLmNuXCIsXG4gICAgICBcImhsLmNuXCIsXG4gICAgICBcImhuLmNuXCIsXG4gICAgICBcImpsLmNuXCIsXG4gICAgICBcImpzLmNuXCIsXG4gICAgICBcImp4LmNuXCIsXG4gICAgICBcImxuLmNuXCIsXG4gICAgICBcIm5tLmNuXCIsXG4gICAgICBcIm54LmNuXCIsXG4gICAgICBcInFoLmNuXCIsXG4gICAgICBcInNjLmNuXCIsXG4gICAgICBcInNkLmNuXCIsXG4gICAgICBcInNoLmNuXCIsXG4gICAgICBcInNuLmNuXCIsXG4gICAgICBcInN4LmNuXCIsXG4gICAgICBcInRqLmNuXCIsXG4gICAgICBcInhqLmNuXCIsXG4gICAgICBcInh6LmNuXCIsXG4gICAgICBcInluLmNuXCIsXG4gICAgICBcInpqLmNuXCIsXG4gICAgICBcImhrLmNuXCIsXG4gICAgICBcIm1vLmNuXCIsXG4gICAgICBcInR3LmNuXCIsXG4gICAgICBcImNvXCIsXG4gICAgICBcImFydHMuY29cIixcbiAgICAgIFwiY29tLmNvXCIsXG4gICAgICBcImVkdS5jb1wiLFxuICAgICAgXCJmaXJtLmNvXCIsXG4gICAgICBcImdvdi5jb1wiLFxuICAgICAgXCJpbmZvLmNvXCIsXG4gICAgICBcImludC5jb1wiLFxuICAgICAgXCJtaWwuY29cIixcbiAgICAgIFwibmV0LmNvXCIsXG4gICAgICBcIm5vbS5jb1wiLFxuICAgICAgXCJvcmcuY29cIixcbiAgICAgIFwicmVjLmNvXCIsXG4gICAgICBcIndlYi5jb1wiLFxuICAgICAgXCJjb21cIixcbiAgICAgIFwiY29vcFwiLFxuICAgICAgXCJjclwiLFxuICAgICAgXCJhYy5jclwiLFxuICAgICAgXCJjby5jclwiLFxuICAgICAgXCJlZC5jclwiLFxuICAgICAgXCJmaS5jclwiLFxuICAgICAgXCJnby5jclwiLFxuICAgICAgXCJvci5jclwiLFxuICAgICAgXCJzYS5jclwiLFxuICAgICAgXCJjdVwiLFxuICAgICAgXCJjb20uY3VcIixcbiAgICAgIFwiZWR1LmN1XCIsXG4gICAgICBcIm9yZy5jdVwiLFxuICAgICAgXCJuZXQuY3VcIixcbiAgICAgIFwiZ292LmN1XCIsXG4gICAgICBcImluZi5jdVwiLFxuICAgICAgXCJjdlwiLFxuICAgICAgXCJjb20uY3ZcIixcbiAgICAgIFwiZWR1LmN2XCIsXG4gICAgICBcImludC5jdlwiLFxuICAgICAgXCJub21lLmN2XCIsXG4gICAgICBcIm9yZy5jdlwiLFxuICAgICAgXCJjd1wiLFxuICAgICAgXCJjb20uY3dcIixcbiAgICAgIFwiZWR1LmN3XCIsXG4gICAgICBcIm5ldC5jd1wiLFxuICAgICAgXCJvcmcuY3dcIixcbiAgICAgIFwiY3hcIixcbiAgICAgIFwiZ292LmN4XCIsXG4gICAgICBcImN5XCIsXG4gICAgICBcImFjLmN5XCIsXG4gICAgICBcImJpei5jeVwiLFxuICAgICAgXCJjb20uY3lcIixcbiAgICAgIFwiZWtsb2dlcy5jeVwiLFxuICAgICAgXCJnb3YuY3lcIixcbiAgICAgIFwibHRkLmN5XCIsXG4gICAgICBcIm1pbC5jeVwiLFxuICAgICAgXCJuZXQuY3lcIixcbiAgICAgIFwib3JnLmN5XCIsXG4gICAgICBcInByZXNzLmN5XCIsXG4gICAgICBcInByby5jeVwiLFxuICAgICAgXCJ0bS5jeVwiLFxuICAgICAgXCJjelwiLFxuICAgICAgXCJkZVwiLFxuICAgICAgXCJkalwiLFxuICAgICAgXCJka1wiLFxuICAgICAgXCJkbVwiLFxuICAgICAgXCJjb20uZG1cIixcbiAgICAgIFwibmV0LmRtXCIsXG4gICAgICBcIm9yZy5kbVwiLFxuICAgICAgXCJlZHUuZG1cIixcbiAgICAgIFwiZ292LmRtXCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImFydC5kb1wiLFxuICAgICAgXCJjb20uZG9cIixcbiAgICAgIFwiZWR1LmRvXCIsXG4gICAgICBcImdvYi5kb1wiLFxuICAgICAgXCJnb3YuZG9cIixcbiAgICAgIFwibWlsLmRvXCIsXG4gICAgICBcIm5ldC5kb1wiLFxuICAgICAgXCJvcmcuZG9cIixcbiAgICAgIFwic2xkLmRvXCIsXG4gICAgICBcIndlYi5kb1wiLFxuICAgICAgXCJkelwiLFxuICAgICAgXCJhcnQuZHpcIixcbiAgICAgIFwiYXNzby5kelwiLFxuICAgICAgXCJjb20uZHpcIixcbiAgICAgIFwiZWR1LmR6XCIsXG4gICAgICBcImdvdi5kelwiLFxuICAgICAgXCJvcmcuZHpcIixcbiAgICAgIFwibmV0LmR6XCIsXG4gICAgICBcInBvbC5kelwiLFxuICAgICAgXCJzb2MuZHpcIixcbiAgICAgIFwidG0uZHpcIixcbiAgICAgIFwiZWNcIixcbiAgICAgIFwiY29tLmVjXCIsXG4gICAgICBcImluZm8uZWNcIixcbiAgICAgIFwibmV0LmVjXCIsXG4gICAgICBcImZpbi5lY1wiLFxuICAgICAgXCJrMTIuZWNcIixcbiAgICAgIFwibWVkLmVjXCIsXG4gICAgICBcInByby5lY1wiLFxuICAgICAgXCJvcmcuZWNcIixcbiAgICAgIFwiZWR1LmVjXCIsXG4gICAgICBcImdvdi5lY1wiLFxuICAgICAgXCJnb2IuZWNcIixcbiAgICAgIFwibWlsLmVjXCIsXG4gICAgICBcImVkdVwiLFxuICAgICAgXCJlZVwiLFxuICAgICAgXCJlZHUuZWVcIixcbiAgICAgIFwiZ292LmVlXCIsXG4gICAgICBcInJpaWsuZWVcIixcbiAgICAgIFwibGliLmVlXCIsXG4gICAgICBcIm1lZC5lZVwiLFxuICAgICAgXCJjb20uZWVcIixcbiAgICAgIFwicHJpLmVlXCIsXG4gICAgICBcImFpcC5lZVwiLFxuICAgICAgXCJvcmcuZWVcIixcbiAgICAgIFwiZmllLmVlXCIsXG4gICAgICBcImVnXCIsXG4gICAgICBcImNvbS5lZ1wiLFxuICAgICAgXCJlZHUuZWdcIixcbiAgICAgIFwiZXVuLmVnXCIsXG4gICAgICBcImdvdi5lZ1wiLFxuICAgICAgXCJtaWwuZWdcIixcbiAgICAgIFwibmFtZS5lZ1wiLFxuICAgICAgXCJuZXQuZWdcIixcbiAgICAgIFwib3JnLmVnXCIsXG4gICAgICBcInNjaS5lZ1wiLFxuICAgICAgXCIqLmVyXCIsXG4gICAgICBcImVzXCIsXG4gICAgICBcImNvbS5lc1wiLFxuICAgICAgXCJub20uZXNcIixcbiAgICAgIFwib3JnLmVzXCIsXG4gICAgICBcImdvYi5lc1wiLFxuICAgICAgXCJlZHUuZXNcIixcbiAgICAgIFwiZXRcIixcbiAgICAgIFwiY29tLmV0XCIsXG4gICAgICBcImdvdi5ldFwiLFxuICAgICAgXCJvcmcuZXRcIixcbiAgICAgIFwiZWR1LmV0XCIsXG4gICAgICBcImJpei5ldFwiLFxuICAgICAgXCJuYW1lLmV0XCIsXG4gICAgICBcImluZm8uZXRcIixcbiAgICAgIFwibmV0LmV0XCIsXG4gICAgICBcImV1XCIsXG4gICAgICBcImZpXCIsXG4gICAgICBcImFsYW5kLmZpXCIsXG4gICAgICBcImZqXCIsXG4gICAgICBcImFjLmZqXCIsXG4gICAgICBcImJpei5malwiLFxuICAgICAgXCJjb20uZmpcIixcbiAgICAgIFwiZ292LmZqXCIsXG4gICAgICBcImluZm8uZmpcIixcbiAgICAgIFwibWlsLmZqXCIsXG4gICAgICBcIm5hbWUuZmpcIixcbiAgICAgIFwibmV0LmZqXCIsXG4gICAgICBcIm9yZy5malwiLFxuICAgICAgXCJwcm8uZmpcIixcbiAgICAgIFwiKi5ma1wiLFxuICAgICAgXCJjb20uZm1cIixcbiAgICAgIFwiZWR1LmZtXCIsXG4gICAgICBcIm5ldC5mbVwiLFxuICAgICAgXCJvcmcuZm1cIixcbiAgICAgIFwiZm1cIixcbiAgICAgIFwiZm9cIixcbiAgICAgIFwiZnJcIixcbiAgICAgIFwiYXNzby5mclwiLFxuICAgICAgXCJjb20uZnJcIixcbiAgICAgIFwiZ291di5mclwiLFxuICAgICAgXCJub20uZnJcIixcbiAgICAgIFwicHJkLmZyXCIsXG4gICAgICBcInRtLmZyXCIsXG4gICAgICBcImFlcm9wb3J0LmZyXCIsXG4gICAgICBcImF2b2NhdC5mclwiLFxuICAgICAgXCJhdm91ZXMuZnJcIixcbiAgICAgIFwiY2NpLmZyXCIsXG4gICAgICBcImNoYW1iYWdyaS5mclwiLFxuICAgICAgXCJjaGlydXJnaWVucy1kZW50aXN0ZXMuZnJcIixcbiAgICAgIFwiZXhwZXJ0cy1jb21wdGFibGVzLmZyXCIsXG4gICAgICBcImdlb21ldHJlLWV4cGVydC5mclwiLFxuICAgICAgXCJncmV0YS5mclwiLFxuICAgICAgXCJodWlzc2llci1qdXN0aWNlLmZyXCIsXG4gICAgICBcIm1lZGVjaW4uZnJcIixcbiAgICAgIFwibm90YWlyZXMuZnJcIixcbiAgICAgIFwicGhhcm1hY2llbi5mclwiLFxuICAgICAgXCJwb3J0LmZyXCIsXG4gICAgICBcInZldGVyaW5haXJlLmZyXCIsXG4gICAgICBcImdhXCIsXG4gICAgICBcImdiXCIsXG4gICAgICBcImVkdS5nZFwiLFxuICAgICAgXCJnb3YuZ2RcIixcbiAgICAgIFwiZ2RcIixcbiAgICAgIFwiZ2VcIixcbiAgICAgIFwiY29tLmdlXCIsXG4gICAgICBcImVkdS5nZVwiLFxuICAgICAgXCJnb3YuZ2VcIixcbiAgICAgIFwib3JnLmdlXCIsXG4gICAgICBcIm1pbC5nZVwiLFxuICAgICAgXCJuZXQuZ2VcIixcbiAgICAgIFwicHZ0LmdlXCIsXG4gICAgICBcImdmXCIsXG4gICAgICBcImdnXCIsXG4gICAgICBcImNvLmdnXCIsXG4gICAgICBcIm5ldC5nZ1wiLFxuICAgICAgXCJvcmcuZ2dcIixcbiAgICAgIFwiZ2hcIixcbiAgICAgIFwiY29tLmdoXCIsXG4gICAgICBcImVkdS5naFwiLFxuICAgICAgXCJnb3YuZ2hcIixcbiAgICAgIFwib3JnLmdoXCIsXG4gICAgICBcIm1pbC5naFwiLFxuICAgICAgXCJnaVwiLFxuICAgICAgXCJjb20uZ2lcIixcbiAgICAgIFwibHRkLmdpXCIsXG4gICAgICBcImdvdi5naVwiLFxuICAgICAgXCJtb2QuZ2lcIixcbiAgICAgIFwiZWR1LmdpXCIsXG4gICAgICBcIm9yZy5naVwiLFxuICAgICAgXCJnbFwiLFxuICAgICAgXCJjby5nbFwiLFxuICAgICAgXCJjb20uZ2xcIixcbiAgICAgIFwiZWR1LmdsXCIsXG4gICAgICBcIm5ldC5nbFwiLFxuICAgICAgXCJvcmcuZ2xcIixcbiAgICAgIFwiZ21cIixcbiAgICAgIFwiZ25cIixcbiAgICAgIFwiYWMuZ25cIixcbiAgICAgIFwiY29tLmduXCIsXG4gICAgICBcImVkdS5nblwiLFxuICAgICAgXCJnb3YuZ25cIixcbiAgICAgIFwib3JnLmduXCIsXG4gICAgICBcIm5ldC5nblwiLFxuICAgICAgXCJnb3ZcIixcbiAgICAgIFwiZ3BcIixcbiAgICAgIFwiY29tLmdwXCIsXG4gICAgICBcIm5ldC5ncFwiLFxuICAgICAgXCJtb2JpLmdwXCIsXG4gICAgICBcImVkdS5ncFwiLFxuICAgICAgXCJvcmcuZ3BcIixcbiAgICAgIFwiYXNzby5ncFwiLFxuICAgICAgXCJncVwiLFxuICAgICAgXCJnclwiLFxuICAgICAgXCJjb20uZ3JcIixcbiAgICAgIFwiZWR1LmdyXCIsXG4gICAgICBcIm5ldC5nclwiLFxuICAgICAgXCJvcmcuZ3JcIixcbiAgICAgIFwiZ292LmdyXCIsXG4gICAgICBcImdzXCIsXG4gICAgICBcImd0XCIsXG4gICAgICBcImNvbS5ndFwiLFxuICAgICAgXCJlZHUuZ3RcIixcbiAgICAgIFwiZ29iLmd0XCIsXG4gICAgICBcImluZC5ndFwiLFxuICAgICAgXCJtaWwuZ3RcIixcbiAgICAgIFwibmV0Lmd0XCIsXG4gICAgICBcIm9yZy5ndFwiLFxuICAgICAgXCJndVwiLFxuICAgICAgXCJjb20uZ3VcIixcbiAgICAgIFwiZWR1Lmd1XCIsXG4gICAgICBcImdvdi5ndVwiLFxuICAgICAgXCJndWFtLmd1XCIsXG4gICAgICBcImluZm8uZ3VcIixcbiAgICAgIFwibmV0Lmd1XCIsXG4gICAgICBcIm9yZy5ndVwiLFxuICAgICAgXCJ3ZWIuZ3VcIixcbiAgICAgIFwiZ3dcIixcbiAgICAgIFwiZ3lcIixcbiAgICAgIFwiY28uZ3lcIixcbiAgICAgIFwiY29tLmd5XCIsXG4gICAgICBcImVkdS5neVwiLFxuICAgICAgXCJnb3YuZ3lcIixcbiAgICAgIFwibmV0Lmd5XCIsXG4gICAgICBcIm9yZy5neVwiLFxuICAgICAgXCJoa1wiLFxuICAgICAgXCJjb20uaGtcIixcbiAgICAgIFwiZWR1LmhrXCIsXG4gICAgICBcImdvdi5oa1wiLFxuICAgICAgXCJpZHYuaGtcIixcbiAgICAgIFwibmV0LmhrXCIsXG4gICAgICBcIm9yZy5oa1wiLFxuICAgICAgXCJcXHU1MTZDXFx1NTNGOC5oa1wiLFxuICAgICAgXCJcXHU2NTU5XFx1ODBCMi5oa1wiLFxuICAgICAgXCJcXHU2NTRFXFx1ODBCMi5oa1wiLFxuICAgICAgXCJcXHU2NTNGXFx1NUU5Qy5oa1wiLFxuICAgICAgXCJcXHU1MDBCXFx1NEVCQS5oa1wiLFxuICAgICAgXCJcXHU0RTJBXFx1RkZGRFxcdUZGRkQuaGtcIixcbiAgICAgIFwiXFx1N0I4N1xcdTRFQkEuaGtcIixcbiAgICAgIFwiXFx1N0RCMlxcdTdFREMuaGtcIixcbiAgICAgIFwiXFx1N0Y1MVxcdTdFREMuaGtcIixcbiAgICAgIFwiXFx1N0VDNFxcdTdFNTQuaGtcIixcbiAgICAgIFwiXFx1N0RCMlxcdTdENjEuaGtcIixcbiAgICAgIFwiXFx1N0Y1MVxcdTdENjEuaGtcIixcbiAgICAgIFwiXFx1N0VDNFxcdTdFQzcuaGtcIixcbiAgICAgIFwiXFx1N0Q0NFxcdTdFNTQuaGtcIixcbiAgICAgIFwiXFx1N0Q0NFxcdTdFQzcuaGtcIixcbiAgICAgIFwiaG1cIixcbiAgICAgIFwiaG5cIixcbiAgICAgIFwiY29tLmhuXCIsXG4gICAgICBcImVkdS5oblwiLFxuICAgICAgXCJvcmcuaG5cIixcbiAgICAgIFwibmV0LmhuXCIsXG4gICAgICBcIm1pbC5oblwiLFxuICAgICAgXCJnb2IuaG5cIixcbiAgICAgIFwiaHJcIixcbiAgICAgIFwiaXouaHJcIixcbiAgICAgIFwiZnJvbS5oclwiLFxuICAgICAgXCJuYW1lLmhyXCIsXG4gICAgICBcImNvbS5oclwiLFxuICAgICAgXCJodFwiLFxuICAgICAgXCJjb20uaHRcIixcbiAgICAgIFwic2hvcC5odFwiLFxuICAgICAgXCJmaXJtLmh0XCIsXG4gICAgICBcImluZm8uaHRcIixcbiAgICAgIFwiYWR1bHQuaHRcIixcbiAgICAgIFwibmV0Lmh0XCIsXG4gICAgICBcInByby5odFwiLFxuICAgICAgXCJvcmcuaHRcIixcbiAgICAgIFwibWVkLmh0XCIsXG4gICAgICBcImFydC5odFwiLFxuICAgICAgXCJjb29wLmh0XCIsXG4gICAgICBcInBvbC5odFwiLFxuICAgICAgXCJhc3NvLmh0XCIsXG4gICAgICBcImVkdS5odFwiLFxuICAgICAgXCJyZWwuaHRcIixcbiAgICAgIFwiZ291di5odFwiLFxuICAgICAgXCJwZXJzby5odFwiLFxuICAgICAgXCJodVwiLFxuICAgICAgXCJjby5odVwiLFxuICAgICAgXCJpbmZvLmh1XCIsXG4gICAgICBcIm9yZy5odVwiLFxuICAgICAgXCJwcml2Lmh1XCIsXG4gICAgICBcInNwb3J0Lmh1XCIsXG4gICAgICBcInRtLmh1XCIsXG4gICAgICBcIjIwMDAuaHVcIixcbiAgICAgIFwiYWdyYXIuaHVcIixcbiAgICAgIFwiYm9sdC5odVwiLFxuICAgICAgXCJjYXNpbm8uaHVcIixcbiAgICAgIFwiY2l0eS5odVwiLFxuICAgICAgXCJlcm90aWNhLmh1XCIsXG4gICAgICBcImVyb3Rpa2EuaHVcIixcbiAgICAgIFwiZmlsbS5odVwiLFxuICAgICAgXCJmb3J1bS5odVwiLFxuICAgICAgXCJnYW1lcy5odVwiLFxuICAgICAgXCJob3RlbC5odVwiLFxuICAgICAgXCJpbmdhdGxhbi5odVwiLFxuICAgICAgXCJqb2dhc3ouaHVcIixcbiAgICAgIFwia29ueXZlbG8uaHVcIixcbiAgICAgIFwibGFrYXMuaHVcIixcbiAgICAgIFwibWVkaWEuaHVcIixcbiAgICAgIFwibmV3cy5odVwiLFxuICAgICAgXCJyZWtsYW0uaHVcIixcbiAgICAgIFwic2V4Lmh1XCIsXG4gICAgICBcInNob3AuaHVcIixcbiAgICAgIFwic3VsaS5odVwiLFxuICAgICAgXCJzemV4Lmh1XCIsXG4gICAgICBcInRvenNkZS5odVwiLFxuICAgICAgXCJ1dGF6YXMuaHVcIixcbiAgICAgIFwidmlkZW8uaHVcIixcbiAgICAgIFwiaWRcIixcbiAgICAgIFwiYWMuaWRcIixcbiAgICAgIFwiYml6LmlkXCIsXG4gICAgICBcImNvLmlkXCIsXG4gICAgICBcImRlc2EuaWRcIixcbiAgICAgIFwiZ28uaWRcIixcbiAgICAgIFwibWlsLmlkXCIsXG4gICAgICBcIm15LmlkXCIsXG4gICAgICBcIm5ldC5pZFwiLFxuICAgICAgXCJvci5pZFwiLFxuICAgICAgXCJwb25wZXMuaWRcIixcbiAgICAgIFwic2NoLmlkXCIsXG4gICAgICBcIndlYi5pZFwiLFxuICAgICAgXCJpZVwiLFxuICAgICAgXCJnb3YuaWVcIixcbiAgICAgIFwiaWxcIixcbiAgICAgIFwiYWMuaWxcIixcbiAgICAgIFwiY28uaWxcIixcbiAgICAgIFwiZ292LmlsXCIsXG4gICAgICBcImlkZi5pbFwiLFxuICAgICAgXCJrMTIuaWxcIixcbiAgICAgIFwibXVuaS5pbFwiLFxuICAgICAgXCJuZXQuaWxcIixcbiAgICAgIFwib3JnLmlsXCIsXG4gICAgICBcImltXCIsXG4gICAgICBcImFjLmltXCIsXG4gICAgICBcImNvLmltXCIsXG4gICAgICBcImNvbS5pbVwiLFxuICAgICAgXCJsdGQuY28uaW1cIixcbiAgICAgIFwibmV0LmltXCIsXG4gICAgICBcIm9yZy5pbVwiLFxuICAgICAgXCJwbGMuY28uaW1cIixcbiAgICAgIFwidHQuaW1cIixcbiAgICAgIFwidHYuaW1cIixcbiAgICAgIFwiaW5cIixcbiAgICAgIFwiY28uaW5cIixcbiAgICAgIFwiZmlybS5pblwiLFxuICAgICAgXCJuZXQuaW5cIixcbiAgICAgIFwib3JnLmluXCIsXG4gICAgICBcImdlbi5pblwiLFxuICAgICAgXCJpbmQuaW5cIixcbiAgICAgIFwibmljLmluXCIsXG4gICAgICBcImFjLmluXCIsXG4gICAgICBcImVkdS5pblwiLFxuICAgICAgXCJyZXMuaW5cIixcbiAgICAgIFwiZ292LmluXCIsXG4gICAgICBcIm1pbC5pblwiLFxuICAgICAgXCJpbmZvXCIsXG4gICAgICBcImludFwiLFxuICAgICAgXCJldS5pbnRcIixcbiAgICAgIFwiaW9cIixcbiAgICAgIFwiY29tLmlvXCIsXG4gICAgICBcImlxXCIsXG4gICAgICBcImdvdi5pcVwiLFxuICAgICAgXCJlZHUuaXFcIixcbiAgICAgIFwibWlsLmlxXCIsXG4gICAgICBcImNvbS5pcVwiLFxuICAgICAgXCJvcmcuaXFcIixcbiAgICAgIFwibmV0LmlxXCIsXG4gICAgICBcImlyXCIsXG4gICAgICBcImFjLmlyXCIsXG4gICAgICBcImNvLmlyXCIsXG4gICAgICBcImdvdi5pclwiLFxuICAgICAgXCJpZC5pclwiLFxuICAgICAgXCJuZXQuaXJcIixcbiAgICAgIFwib3JnLmlyXCIsXG4gICAgICBcInNjaC5pclwiLFxuICAgICAgXCJcXHUwNjI3XFx1MDZDQ1xcdTA2MzFcXHUwNjI3XFx1MDY0Ni5pclwiLFxuICAgICAgXCJcXHUwNjI3XFx1MDY0QVxcdTA2MzFcXHUwNjI3XFx1MDY0Ni5pclwiLFxuICAgICAgXCJpc1wiLFxuICAgICAgXCJuZXQuaXNcIixcbiAgICAgIFwiY29tLmlzXCIsXG4gICAgICBcImVkdS5pc1wiLFxuICAgICAgXCJnb3YuaXNcIixcbiAgICAgIFwib3JnLmlzXCIsXG4gICAgICBcImludC5pc1wiLFxuICAgICAgXCJpdFwiLFxuICAgICAgXCJnb3YuaXRcIixcbiAgICAgIFwiZWR1Lml0XCIsXG4gICAgICBcImFici5pdFwiLFxuICAgICAgXCJhYnJ1enpvLml0XCIsXG4gICAgICBcImFvc3RhLXZhbGxleS5pdFwiLFxuICAgICAgXCJhb3N0YXZhbGxleS5pdFwiLFxuICAgICAgXCJiYXMuaXRcIixcbiAgICAgIFwiYmFzaWxpY2F0YS5pdFwiLFxuICAgICAgXCJjYWwuaXRcIixcbiAgICAgIFwiY2FsYWJyaWEuaXRcIixcbiAgICAgIFwiY2FtLml0XCIsXG4gICAgICBcImNhbXBhbmlhLml0XCIsXG4gICAgICBcImVtaWxpYS1yb21hZ25hLml0XCIsXG4gICAgICBcImVtaWxpYXJvbWFnbmEuaXRcIixcbiAgICAgIFwiZW1yLml0XCIsXG4gICAgICBcImZyaXVsaS12LWdpdWxpYS5pdFwiLFxuICAgICAgXCJmcml1bGktdmUtZ2l1bGlhLml0XCIsXG4gICAgICBcImZyaXVsaS12ZWdpdWxpYS5pdFwiLFxuICAgICAgXCJmcml1bGktdmVuZXppYS1naXVsaWEuaXRcIixcbiAgICAgIFwiZnJpdWxpLXZlbmV6aWFnaXVsaWEuaXRcIixcbiAgICAgIFwiZnJpdWxpLXZnaXVsaWEuaXRcIixcbiAgICAgIFwiZnJpdWxpdi1naXVsaWEuaXRcIixcbiAgICAgIFwiZnJpdWxpdmUtZ2l1bGlhLml0XCIsXG4gICAgICBcImZyaXVsaXZlZ2l1bGlhLml0XCIsXG4gICAgICBcImZyaXVsaXZlbmV6aWEtZ2l1bGlhLml0XCIsXG4gICAgICBcImZyaXVsaXZlbmV6aWFnaXVsaWEuaXRcIixcbiAgICAgIFwiZnJpdWxpdmdpdWxpYS5pdFwiLFxuICAgICAgXCJmdmcuaXRcIixcbiAgICAgIFwibGF6Lml0XCIsXG4gICAgICBcImxhemlvLml0XCIsXG4gICAgICBcImxpZy5pdFwiLFxuICAgICAgXCJsaWd1cmlhLml0XCIsXG4gICAgICBcImxvbS5pdFwiLFxuICAgICAgXCJsb21iYXJkaWEuaXRcIixcbiAgICAgIFwibG9tYmFyZHkuaXRcIixcbiAgICAgIFwibHVjYW5pYS5pdFwiLFxuICAgICAgXCJtYXIuaXRcIixcbiAgICAgIFwibWFyY2hlLml0XCIsXG4gICAgICBcIm1vbC5pdFwiLFxuICAgICAgXCJtb2xpc2UuaXRcIixcbiAgICAgIFwicGllZG1vbnQuaXRcIixcbiAgICAgIFwicGllbW9udGUuaXRcIixcbiAgICAgIFwicG1uLml0XCIsXG4gICAgICBcInB1Zy5pdFwiLFxuICAgICAgXCJwdWdsaWEuaXRcIixcbiAgICAgIFwic2FyLml0XCIsXG4gICAgICBcInNhcmRlZ25hLml0XCIsXG4gICAgICBcInNhcmRpbmlhLml0XCIsXG4gICAgICBcInNpYy5pdFwiLFxuICAgICAgXCJzaWNpbGlhLml0XCIsXG4gICAgICBcInNpY2lseS5pdFwiLFxuICAgICAgXCJ0YWEuaXRcIixcbiAgICAgIFwidG9zLml0XCIsXG4gICAgICBcInRvc2NhbmEuaXRcIixcbiAgICAgIFwidHJlbnRpbi1zdWQtdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbi1zXFx4RkNkLXRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW4tc3VkdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbi1zXFx4RkNkdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbi1zdWVkLXRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW4tc3VlZHRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW5vLWEtYWRpZ2UuaXRcIixcbiAgICAgIFwidHJlbnRpbm8tYWFkaWdlLml0XCIsXG4gICAgICBcInRyZW50aW5vLWFsdG8tYWRpZ2UuaXRcIixcbiAgICAgIFwidHJlbnRpbm8tYWx0b2FkaWdlLml0XCIsXG4gICAgICBcInRyZW50aW5vLXMtdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbm8tc3Rpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW5vLXN1ZC10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluby1zXFx4RkNkLXRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW5vLXN1ZHRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW5vLXNcXHhGQ2R0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluby1zdWVkLXRpcm9sLml0XCIsXG4gICAgICBcInRyZW50aW5vLXN1ZWR0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluby5pdFwiLFxuICAgICAgXCJ0cmVudGlub2EtYWRpZ2UuaXRcIixcbiAgICAgIFwidHJlbnRpbm9hYWRpZ2UuaXRcIixcbiAgICAgIFwidHJlbnRpbm9hbHRvLWFkaWdlLml0XCIsXG4gICAgICBcInRyZW50aW5vYWx0b2FkaWdlLml0XCIsXG4gICAgICBcInRyZW50aW5vcy10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGlub3N0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGlub3N1ZC10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGlub3NcXHhGQ2QtdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbm9zdWR0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGlub3NcXHhGQ2R0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGlub3N1ZWQtdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbm9zdWVkdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbnN1ZC10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluc1xceEZDZC10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluc3VkdGlyb2wuaXRcIixcbiAgICAgIFwidHJlbnRpbnNcXHhGQ2R0aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluc3VlZC10aXJvbC5pdFwiLFxuICAgICAgXCJ0cmVudGluc3VlZHRpcm9sLml0XCIsXG4gICAgICBcInR1c2NhbnkuaXRcIixcbiAgICAgIFwidW1iLml0XCIsXG4gICAgICBcInVtYnJpYS5pdFwiLFxuICAgICAgXCJ2YWwtZC1hb3N0YS5pdFwiLFxuICAgICAgXCJ2YWwtZGFvc3RhLml0XCIsXG4gICAgICBcInZhbGQtYW9zdGEuaXRcIixcbiAgICAgIFwidmFsZGFvc3RhLml0XCIsXG4gICAgICBcInZhbGxlLWFvc3RhLml0XCIsXG4gICAgICBcInZhbGxlLWQtYW9zdGEuaXRcIixcbiAgICAgIFwidmFsbGUtZGFvc3RhLml0XCIsXG4gICAgICBcInZhbGxlYW9zdGEuaXRcIixcbiAgICAgIFwidmFsbGVkLWFvc3RhLml0XCIsXG4gICAgICBcInZhbGxlZGFvc3RhLml0XCIsXG4gICAgICBcInZhbGxlZS1hb3N0ZS5pdFwiLFxuICAgICAgXCJ2YWxsXFx4RTllLWFvc3RlLml0XCIsXG4gICAgICBcInZhbGxlZS1kLWFvc3RlLml0XCIsXG4gICAgICBcInZhbGxcXHhFOWUtZC1hb3N0ZS5pdFwiLFxuICAgICAgXCJ2YWxsZWVhb3N0ZS5pdFwiLFxuICAgICAgXCJ2YWxsXFx4RTllYW9zdGUuaXRcIixcbiAgICAgIFwidmFsbGVlZGFvc3RlLml0XCIsXG4gICAgICBcInZhbGxcXHhFOWVkYW9zdGUuaXRcIixcbiAgICAgIFwidmFvLml0XCIsXG4gICAgICBcInZkYS5pdFwiLFxuICAgICAgXCJ2ZW4uaXRcIixcbiAgICAgIFwidmVuZXRvLml0XCIsXG4gICAgICBcImFnLml0XCIsXG4gICAgICBcImFncmlnZW50by5pdFwiLFxuICAgICAgXCJhbC5pdFwiLFxuICAgICAgXCJhbGVzc2FuZHJpYS5pdFwiLFxuICAgICAgXCJhbHRvLWFkaWdlLml0XCIsXG4gICAgICBcImFsdG9hZGlnZS5pdFwiLFxuICAgICAgXCJhbi5pdFwiLFxuICAgICAgXCJhbmNvbmEuaXRcIixcbiAgICAgIFwiYW5kcmlhLWJhcmxldHRhLXRyYW5pLml0XCIsXG4gICAgICBcImFuZHJpYS10cmFuaS1iYXJsZXR0YS5pdFwiLFxuICAgICAgXCJhbmRyaWFiYXJsZXR0YXRyYW5pLml0XCIsXG4gICAgICBcImFuZHJpYXRyYW5pYmFybGV0dGEuaXRcIixcbiAgICAgIFwiYW8uaXRcIixcbiAgICAgIFwiYW9zdGEuaXRcIixcbiAgICAgIFwiYW9zdGUuaXRcIixcbiAgICAgIFwiYXAuaXRcIixcbiAgICAgIFwiYXEuaXRcIixcbiAgICAgIFwiYXF1aWxhLml0XCIsXG4gICAgICBcImFyLml0XCIsXG4gICAgICBcImFyZXp6by5pdFwiLFxuICAgICAgXCJhc2NvbGktcGljZW5vLml0XCIsXG4gICAgICBcImFzY29saXBpY2Vuby5pdFwiLFxuICAgICAgXCJhc3RpLml0XCIsXG4gICAgICBcImF0Lml0XCIsXG4gICAgICBcImF2Lml0XCIsXG4gICAgICBcImF2ZWxsaW5vLml0XCIsXG4gICAgICBcImJhLml0XCIsXG4gICAgICBcImJhbHNhbi1zdWR0aXJvbC5pdFwiLFxuICAgICAgXCJiYWxzYW4tc1xceEZDZHRpcm9sLml0XCIsXG4gICAgICBcImJhbHNhbi1zdWVkdGlyb2wuaXRcIixcbiAgICAgIFwiYmFsc2FuLml0XCIsXG4gICAgICBcImJhcmkuaXRcIixcbiAgICAgIFwiYmFybGV0dGEtdHJhbmktYW5kcmlhLml0XCIsXG4gICAgICBcImJhcmxldHRhdHJhbmlhbmRyaWEuaXRcIixcbiAgICAgIFwiYmVsbHVuby5pdFwiLFxuICAgICAgXCJiZW5ldmVudG8uaXRcIixcbiAgICAgIFwiYmVyZ2Ftby5pdFwiLFxuICAgICAgXCJiZy5pdFwiLFxuICAgICAgXCJiaS5pdFwiLFxuICAgICAgXCJiaWVsbGEuaXRcIixcbiAgICAgIFwiYmwuaXRcIixcbiAgICAgIFwiYm4uaXRcIixcbiAgICAgIFwiYm8uaXRcIixcbiAgICAgIFwiYm9sb2duYS5pdFwiLFxuICAgICAgXCJib2x6YW5vLWFsdG9hZGlnZS5pdFwiLFxuICAgICAgXCJib2x6YW5vLml0XCIsXG4gICAgICBcImJvemVuLXN1ZHRpcm9sLml0XCIsXG4gICAgICBcImJvemVuLXNcXHhGQ2R0aXJvbC5pdFwiLFxuICAgICAgXCJib3plbi1zdWVkdGlyb2wuaXRcIixcbiAgICAgIFwiYm96ZW4uaXRcIixcbiAgICAgIFwiYnIuaXRcIixcbiAgICAgIFwiYnJlc2NpYS5pdFwiLFxuICAgICAgXCJicmluZGlzaS5pdFwiLFxuICAgICAgXCJicy5pdFwiLFxuICAgICAgXCJidC5pdFwiLFxuICAgICAgXCJidWxzYW4tc3VkdGlyb2wuaXRcIixcbiAgICAgIFwiYnVsc2FuLXNcXHhGQ2R0aXJvbC5pdFwiLFxuICAgICAgXCJidWxzYW4tc3VlZHRpcm9sLml0XCIsXG4gICAgICBcImJ1bHNhbi5pdFwiLFxuICAgICAgXCJiei5pdFwiLFxuICAgICAgXCJjYS5pdFwiLFxuICAgICAgXCJjYWdsaWFyaS5pdFwiLFxuICAgICAgXCJjYWx0YW5pc3NldHRhLml0XCIsXG4gICAgICBcImNhbXBpZGFuby1tZWRpby5pdFwiLFxuICAgICAgXCJjYW1waWRhbm9tZWRpby5pdFwiLFxuICAgICAgXCJjYW1wb2Jhc3NvLml0XCIsXG4gICAgICBcImNhcmJvbmlhLWlnbGVzaWFzLml0XCIsXG4gICAgICBcImNhcmJvbmlhaWdsZXNpYXMuaXRcIixcbiAgICAgIFwiY2FycmFyYS1tYXNzYS5pdFwiLFxuICAgICAgXCJjYXJyYXJhbWFzc2EuaXRcIixcbiAgICAgIFwiY2FzZXJ0YS5pdFwiLFxuICAgICAgXCJjYXRhbmlhLml0XCIsXG4gICAgICBcImNhdGFuemFyby5pdFwiLFxuICAgICAgXCJjYi5pdFwiLFxuICAgICAgXCJjZS5pdFwiLFxuICAgICAgXCJjZXNlbmEtZm9ybGkuaXRcIixcbiAgICAgIFwiY2VzZW5hLWZvcmxcXHhFQy5pdFwiLFxuICAgICAgXCJjZXNlbmFmb3JsaS5pdFwiLFxuICAgICAgXCJjZXNlbmFmb3JsXFx4RUMuaXRcIixcbiAgICAgIFwiY2guaXRcIixcbiAgICAgIFwiY2hpZXRpLml0XCIsXG4gICAgICBcImNpLml0XCIsXG4gICAgICBcImNsLml0XCIsXG4gICAgICBcImNuLml0XCIsXG4gICAgICBcImNvLml0XCIsXG4gICAgICBcImNvbW8uaXRcIixcbiAgICAgIFwiY29zZW56YS5pdFwiLFxuICAgICAgXCJjci5pdFwiLFxuICAgICAgXCJjcmVtb25hLml0XCIsXG4gICAgICBcImNyb3RvbmUuaXRcIixcbiAgICAgIFwiY3MuaXRcIixcbiAgICAgIFwiY3QuaXRcIixcbiAgICAgIFwiY3VuZW8uaXRcIixcbiAgICAgIFwiY3ouaXRcIixcbiAgICAgIFwiZGVsbC1vZ2xpYXN0cmEuaXRcIixcbiAgICAgIFwiZGVsbG9nbGlhc3RyYS5pdFwiLFxuICAgICAgXCJlbi5pdFwiLFxuICAgICAgXCJlbm5hLml0XCIsXG4gICAgICBcImZjLml0XCIsXG4gICAgICBcImZlLml0XCIsXG4gICAgICBcImZlcm1vLml0XCIsXG4gICAgICBcImZlcnJhcmEuaXRcIixcbiAgICAgIFwiZmcuaXRcIixcbiAgICAgIFwiZmkuaXRcIixcbiAgICAgIFwiZmlyZW56ZS5pdFwiLFxuICAgICAgXCJmbG9yZW5jZS5pdFwiLFxuICAgICAgXCJmbS5pdFwiLFxuICAgICAgXCJmb2dnaWEuaXRcIixcbiAgICAgIFwiZm9ybGktY2VzZW5hLml0XCIsXG4gICAgICBcImZvcmxcXHhFQy1jZXNlbmEuaXRcIixcbiAgICAgIFwiZm9ybGljZXNlbmEuaXRcIixcbiAgICAgIFwiZm9ybFxceEVDY2VzZW5hLml0XCIsXG4gICAgICBcImZyLml0XCIsXG4gICAgICBcImZyb3Npbm9uZS5pdFwiLFxuICAgICAgXCJnZS5pdFwiLFxuICAgICAgXCJnZW5vYS5pdFwiLFxuICAgICAgXCJnZW5vdmEuaXRcIixcbiAgICAgIFwiZ28uaXRcIixcbiAgICAgIFwiZ29yaXppYS5pdFwiLFxuICAgICAgXCJnci5pdFwiLFxuICAgICAgXCJncm9zc2V0by5pdFwiLFxuICAgICAgXCJpZ2xlc2lhcy1jYXJib25pYS5pdFwiLFxuICAgICAgXCJpZ2xlc2lhc2NhcmJvbmlhLml0XCIsXG4gICAgICBcImltLml0XCIsXG4gICAgICBcImltcGVyaWEuaXRcIixcbiAgICAgIFwiaXMuaXRcIixcbiAgICAgIFwiaXNlcm5pYS5pdFwiLFxuICAgICAgXCJrci5pdFwiLFxuICAgICAgXCJsYS1zcGV6aWEuaXRcIixcbiAgICAgIFwibGFxdWlsYS5pdFwiLFxuICAgICAgXCJsYXNwZXppYS5pdFwiLFxuICAgICAgXCJsYXRpbmEuaXRcIixcbiAgICAgIFwibGMuaXRcIixcbiAgICAgIFwibGUuaXRcIixcbiAgICAgIFwibGVjY2UuaXRcIixcbiAgICAgIFwibGVjY28uaXRcIixcbiAgICAgIFwibGkuaXRcIixcbiAgICAgIFwibGl2b3Juby5pdFwiLFxuICAgICAgXCJsby5pdFwiLFxuICAgICAgXCJsb2RpLml0XCIsXG4gICAgICBcImx0Lml0XCIsXG4gICAgICBcImx1Lml0XCIsXG4gICAgICBcImx1Y2NhLml0XCIsXG4gICAgICBcIm1hY2VyYXRhLml0XCIsXG4gICAgICBcIm1hbnRvdmEuaXRcIixcbiAgICAgIFwibWFzc2EtY2FycmFyYS5pdFwiLFxuICAgICAgXCJtYXNzYWNhcnJhcmEuaXRcIixcbiAgICAgIFwibWF0ZXJhLml0XCIsXG4gICAgICBcIm1iLml0XCIsXG4gICAgICBcIm1jLml0XCIsXG4gICAgICBcIm1lLml0XCIsXG4gICAgICBcIm1lZGlvLWNhbXBpZGFuby5pdFwiLFxuICAgICAgXCJtZWRpb2NhbXBpZGFuby5pdFwiLFxuICAgICAgXCJtZXNzaW5hLml0XCIsXG4gICAgICBcIm1pLml0XCIsXG4gICAgICBcIm1pbGFuLml0XCIsXG4gICAgICBcIm1pbGFuby5pdFwiLFxuICAgICAgXCJtbi5pdFwiLFxuICAgICAgXCJtby5pdFwiLFxuICAgICAgXCJtb2RlbmEuaXRcIixcbiAgICAgIFwibW9uemEtYnJpYW56YS5pdFwiLFxuICAgICAgXCJtb256YS1lLWRlbGxhLWJyaWFuemEuaXRcIixcbiAgICAgIFwibW9uemEuaXRcIixcbiAgICAgIFwibW9uemFicmlhbnphLml0XCIsXG4gICAgICBcIm1vbnphZWJyaWFuemEuaXRcIixcbiAgICAgIFwibW9uemFlZGVsbGFicmlhbnphLml0XCIsXG4gICAgICBcIm1zLml0XCIsXG4gICAgICBcIm10Lml0XCIsXG4gICAgICBcIm5hLml0XCIsXG4gICAgICBcIm5hcGxlcy5pdFwiLFxuICAgICAgXCJuYXBvbGkuaXRcIixcbiAgICAgIFwibm8uaXRcIixcbiAgICAgIFwibm92YXJhLml0XCIsXG4gICAgICBcIm51Lml0XCIsXG4gICAgICBcIm51b3JvLml0XCIsXG4gICAgICBcIm9nLml0XCIsXG4gICAgICBcIm9nbGlhc3RyYS5pdFwiLFxuICAgICAgXCJvbGJpYS10ZW1waW8uaXRcIixcbiAgICAgIFwib2xiaWF0ZW1waW8uaXRcIixcbiAgICAgIFwib3IuaXRcIixcbiAgICAgIFwib3Jpc3Rhbm8uaXRcIixcbiAgICAgIFwib3QuaXRcIixcbiAgICAgIFwicGEuaXRcIixcbiAgICAgIFwicGFkb3ZhLml0XCIsXG4gICAgICBcInBhZHVhLml0XCIsXG4gICAgICBcInBhbGVybW8uaXRcIixcbiAgICAgIFwicGFybWEuaXRcIixcbiAgICAgIFwicGF2aWEuaXRcIixcbiAgICAgIFwicGMuaXRcIixcbiAgICAgIFwicGQuaXRcIixcbiAgICAgIFwicGUuaXRcIixcbiAgICAgIFwicGVydWdpYS5pdFwiLFxuICAgICAgXCJwZXNhcm8tdXJiaW5vLml0XCIsXG4gICAgICBcInBlc2Fyb3VyYmluby5pdFwiLFxuICAgICAgXCJwZXNjYXJhLml0XCIsXG4gICAgICBcInBnLml0XCIsXG4gICAgICBcInBpLml0XCIsXG4gICAgICBcInBpYWNlbnphLml0XCIsXG4gICAgICBcInBpc2EuaXRcIixcbiAgICAgIFwicGlzdG9pYS5pdFwiLFxuICAgICAgXCJwbi5pdFwiLFxuICAgICAgXCJwby5pdFwiLFxuICAgICAgXCJwb3JkZW5vbmUuaXRcIixcbiAgICAgIFwicG90ZW56YS5pdFwiLFxuICAgICAgXCJwci5pdFwiLFxuICAgICAgXCJwcmF0by5pdFwiLFxuICAgICAgXCJwdC5pdFwiLFxuICAgICAgXCJwdS5pdFwiLFxuICAgICAgXCJwdi5pdFwiLFxuICAgICAgXCJwei5pdFwiLFxuICAgICAgXCJyYS5pdFwiLFxuICAgICAgXCJyYWd1c2EuaXRcIixcbiAgICAgIFwicmF2ZW5uYS5pdFwiLFxuICAgICAgXCJyYy5pdFwiLFxuICAgICAgXCJyZS5pdFwiLFxuICAgICAgXCJyZWdnaW8tY2FsYWJyaWEuaXRcIixcbiAgICAgIFwicmVnZ2lvLWVtaWxpYS5pdFwiLFxuICAgICAgXCJyZWdnaW9jYWxhYnJpYS5pdFwiLFxuICAgICAgXCJyZWdnaW9lbWlsaWEuaXRcIixcbiAgICAgIFwicmcuaXRcIixcbiAgICAgIFwicmkuaXRcIixcbiAgICAgIFwicmlldGkuaXRcIixcbiAgICAgIFwicmltaW5pLml0XCIsXG4gICAgICBcInJtLml0XCIsXG4gICAgICBcInJuLml0XCIsXG4gICAgICBcInJvLml0XCIsXG4gICAgICBcInJvbWEuaXRcIixcbiAgICAgIFwicm9tZS5pdFwiLFxuICAgICAgXCJyb3ZpZ28uaXRcIixcbiAgICAgIFwic2EuaXRcIixcbiAgICAgIFwic2FsZXJuby5pdFwiLFxuICAgICAgXCJzYXNzYXJpLml0XCIsXG4gICAgICBcInNhdm9uYS5pdFwiLFxuICAgICAgXCJzaS5pdFwiLFxuICAgICAgXCJzaWVuYS5pdFwiLFxuICAgICAgXCJzaXJhY3VzYS5pdFwiLFxuICAgICAgXCJzby5pdFwiLFxuICAgICAgXCJzb25kcmlvLml0XCIsXG4gICAgICBcInNwLml0XCIsXG4gICAgICBcInNyLml0XCIsXG4gICAgICBcInNzLml0XCIsXG4gICAgICBcInN1ZWR0aXJvbC5pdFwiLFxuICAgICAgXCJzXFx4RkNkdGlyb2wuaXRcIixcbiAgICAgIFwic3YuaXRcIixcbiAgICAgIFwidGEuaXRcIixcbiAgICAgIFwidGFyYW50by5pdFwiLFxuICAgICAgXCJ0ZS5pdFwiLFxuICAgICAgXCJ0ZW1waW8tb2xiaWEuaXRcIixcbiAgICAgIFwidGVtcGlvb2xiaWEuaXRcIixcbiAgICAgIFwidGVyYW1vLml0XCIsXG4gICAgICBcInRlcm5pLml0XCIsXG4gICAgICBcInRuLml0XCIsXG4gICAgICBcInRvLml0XCIsXG4gICAgICBcInRvcmluby5pdFwiLFxuICAgICAgXCJ0cC5pdFwiLFxuICAgICAgXCJ0ci5pdFwiLFxuICAgICAgXCJ0cmFuaS1hbmRyaWEtYmFybGV0dGEuaXRcIixcbiAgICAgIFwidHJhbmktYmFybGV0dGEtYW5kcmlhLml0XCIsXG4gICAgICBcInRyYW5pYW5kcmlhYmFybGV0dGEuaXRcIixcbiAgICAgIFwidHJhbmliYXJsZXR0YWFuZHJpYS5pdFwiLFxuICAgICAgXCJ0cmFwYW5pLml0XCIsXG4gICAgICBcInRyZW50by5pdFwiLFxuICAgICAgXCJ0cmV2aXNvLml0XCIsXG4gICAgICBcInRyaWVzdGUuaXRcIixcbiAgICAgIFwidHMuaXRcIixcbiAgICAgIFwidHVyaW4uaXRcIixcbiAgICAgIFwidHYuaXRcIixcbiAgICAgIFwidWQuaXRcIixcbiAgICAgIFwidWRpbmUuaXRcIixcbiAgICAgIFwidXJiaW5vLXBlc2Fyby5pdFwiLFxuICAgICAgXCJ1cmJpbm9wZXNhcm8uaXRcIixcbiAgICAgIFwidmEuaXRcIixcbiAgICAgIFwidmFyZXNlLml0XCIsXG4gICAgICBcInZiLml0XCIsXG4gICAgICBcInZjLml0XCIsXG4gICAgICBcInZlLml0XCIsXG4gICAgICBcInZlbmV6aWEuaXRcIixcbiAgICAgIFwidmVuaWNlLml0XCIsXG4gICAgICBcInZlcmJhbmlhLml0XCIsXG4gICAgICBcInZlcmNlbGxpLml0XCIsXG4gICAgICBcInZlcm9uYS5pdFwiLFxuICAgICAgXCJ2aS5pdFwiLFxuICAgICAgXCJ2aWJvLXZhbGVudGlhLml0XCIsXG4gICAgICBcInZpYm92YWxlbnRpYS5pdFwiLFxuICAgICAgXCJ2aWNlbnphLml0XCIsXG4gICAgICBcInZpdGVyYm8uaXRcIixcbiAgICAgIFwidnIuaXRcIixcbiAgICAgIFwidnMuaXRcIixcbiAgICAgIFwidnQuaXRcIixcbiAgICAgIFwidnYuaXRcIixcbiAgICAgIFwiamVcIixcbiAgICAgIFwiY28uamVcIixcbiAgICAgIFwibmV0LmplXCIsXG4gICAgICBcIm9yZy5qZVwiLFxuICAgICAgXCIqLmptXCIsXG4gICAgICBcImpvXCIsXG4gICAgICBcImNvbS5qb1wiLFxuICAgICAgXCJvcmcuam9cIixcbiAgICAgIFwibmV0LmpvXCIsXG4gICAgICBcImVkdS5qb1wiLFxuICAgICAgXCJzY2guam9cIixcbiAgICAgIFwiZ292LmpvXCIsXG4gICAgICBcIm1pbC5qb1wiLFxuICAgICAgXCJuYW1lLmpvXCIsXG4gICAgICBcImpvYnNcIixcbiAgICAgIFwianBcIixcbiAgICAgIFwiYWMuanBcIixcbiAgICAgIFwiYWQuanBcIixcbiAgICAgIFwiY28uanBcIixcbiAgICAgIFwiZWQuanBcIixcbiAgICAgIFwiZ28uanBcIixcbiAgICAgIFwiZ3IuanBcIixcbiAgICAgIFwibGcuanBcIixcbiAgICAgIFwibmUuanBcIixcbiAgICAgIFwib3IuanBcIixcbiAgICAgIFwiYWljaGkuanBcIixcbiAgICAgIFwiYWtpdGEuanBcIixcbiAgICAgIFwiYW9tb3JpLmpwXCIsXG4gICAgICBcImNoaWJhLmpwXCIsXG4gICAgICBcImVoaW1lLmpwXCIsXG4gICAgICBcImZ1a3VpLmpwXCIsXG4gICAgICBcImZ1a3Vva2EuanBcIixcbiAgICAgIFwiZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImdpZnUuanBcIixcbiAgICAgIFwiZ3VubWEuanBcIixcbiAgICAgIFwiaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImhva2thaWRvLmpwXCIsXG4gICAgICBcImh5b2dvLmpwXCIsXG4gICAgICBcImliYXJha2kuanBcIixcbiAgICAgIFwiaXNoaWthd2EuanBcIixcbiAgICAgIFwiaXdhdGUuanBcIixcbiAgICAgIFwia2FnYXdhLmpwXCIsXG4gICAgICBcImthZ29zaGltYS5qcFwiLFxuICAgICAgXCJrYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJrb2NoaS5qcFwiLFxuICAgICAgXCJrdW1hbW90by5qcFwiLFxuICAgICAgXCJreW90by5qcFwiLFxuICAgICAgXCJtaWUuanBcIixcbiAgICAgIFwibWl5YWdpLmpwXCIsXG4gICAgICBcIm1peWF6YWtpLmpwXCIsXG4gICAgICBcIm5hZ2Fuby5qcFwiLFxuICAgICAgXCJuYWdhc2FraS5qcFwiLFxuICAgICAgXCJuYXJhLmpwXCIsXG4gICAgICBcIm5paWdhdGEuanBcIixcbiAgICAgIFwib2l0YS5qcFwiLFxuICAgICAgXCJva2F5YW1hLmpwXCIsXG4gICAgICBcIm9raW5hd2EuanBcIixcbiAgICAgIFwib3Nha2EuanBcIixcbiAgICAgIFwic2FnYS5qcFwiLFxuICAgICAgXCJzYWl0YW1hLmpwXCIsXG4gICAgICBcInNoaWdhLmpwXCIsXG4gICAgICBcInNoaW1hbmUuanBcIixcbiAgICAgIFwic2hpenVva2EuanBcIixcbiAgICAgIFwidG9jaGlnaS5qcFwiLFxuICAgICAgXCJ0b2t1c2hpbWEuanBcIixcbiAgICAgIFwidG9reW8uanBcIixcbiAgICAgIFwidG90dG9yaS5qcFwiLFxuICAgICAgXCJ0b3lhbWEuanBcIixcbiAgICAgIFwid2FrYXlhbWEuanBcIixcbiAgICAgIFwieWFtYWdhdGEuanBcIixcbiAgICAgIFwieWFtYWd1Y2hpLmpwXCIsXG4gICAgICBcInlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJcXHU2ODAzXFx1NjcyOC5qcFwiLFxuICAgICAgXCJcXHU2MTFCXFx1NzdFNS5qcFwiLFxuICAgICAgXCJcXHU2MTFCXFx1NUE5Qi5qcFwiLFxuICAgICAgXCJcXHU1MTc1XFx1NUVBQi5qcFwiLFxuICAgICAgXCJcXHU3MThBXFx1NjcyQy5qcFwiLFxuICAgICAgXCJcXHU4MzI4XFx1NTdDRS5qcFwiLFxuICAgICAgXCJcXHU1MzE3XFx1NkQ3N1xcdTkwNTMuanBcIixcbiAgICAgIFwiXFx1NTM0M1xcdTg0NDkuanBcIixcbiAgICAgIFwiXFx1NTQ4Q1xcdTZCNENcXHU1QzcxLmpwXCIsXG4gICAgICBcIlxcdTk1NzdcXHU1RDBFLmpwXCIsXG4gICAgICBcIlxcdTk1NzdcXHU5MUNFLmpwXCIsXG4gICAgICBcIlxcdTY1QjBcXHU2RjVGLmpwXCIsXG4gICAgICBcIlxcdTk3NTJcXHU2OEVFLmpwXCIsXG4gICAgICBcIlxcdTk3NTlcXHU1Q0ExLmpwXCIsXG4gICAgICBcIlxcdTY3NzFcXHU0RUFDLmpwXCIsXG4gICAgICBcIlxcdTc3RjNcXHU1RERELmpwXCIsXG4gICAgICBcIlxcdTU3RkNcXHU3Mzg5LmpwXCIsXG4gICAgICBcIlxcdTRFMDlcXHU5MUNELmpwXCIsXG4gICAgICBcIlxcdTRFQUNcXHU5MEZELmpwXCIsXG4gICAgICBcIlxcdTRGNTBcXHU4Q0MwLmpwXCIsXG4gICAgICBcIlxcdTU5MjdcXHU1MjA2LmpwXCIsXG4gICAgICBcIlxcdTU5MjdcXHU5NjJBLmpwXCIsXG4gICAgICBcIlxcdTU5NDhcXHU4MjZGLmpwXCIsXG4gICAgICBcIlxcdTVCQUVcXHU1N0NFLmpwXCIsXG4gICAgICBcIlxcdTVCQUVcXHU1RDBFLmpwXCIsXG4gICAgICBcIlxcdTVCQ0NcXHU1QzcxLmpwXCIsXG4gICAgICBcIlxcdTVDNzFcXHU1M0UzLmpwXCIsXG4gICAgICBcIlxcdTVDNzFcXHU1RjYyLmpwXCIsXG4gICAgICBcIlxcdTVDNzFcXHU2OEE4LmpwXCIsXG4gICAgICBcIlxcdTVDQTlcXHU2MjRCLmpwXCIsXG4gICAgICBcIlxcdTVDOTBcXHU5NjFDLmpwXCIsXG4gICAgICBcIlxcdTVDQTFcXHU1QzcxLmpwXCIsXG4gICAgICBcIlxcdTVDRjZcXHU2ODM5LmpwXCIsXG4gICAgICBcIlxcdTVFODNcXHU1Q0Y2LmpwXCIsXG4gICAgICBcIlxcdTVGQjNcXHU1Q0Y2LmpwXCIsXG4gICAgICBcIlxcdTZDOTZcXHU3RTA0LmpwXCIsXG4gICAgICBcIlxcdTZFQ0JcXHU4Q0MwLmpwXCIsXG4gICAgICBcIlxcdTc5NUVcXHU1OTQ4XFx1NURERC5qcFwiLFxuICAgICAgXCJcXHU3OThGXFx1NEU5NS5qcFwiLFxuICAgICAgXCJcXHU3OThGXFx1NUNBMS5qcFwiLFxuICAgICAgXCJcXHU3OThGXFx1NUNGNi5qcFwiLFxuICAgICAgXCJcXHU3OUNCXFx1NzUzMC5qcFwiLFxuICAgICAgXCJcXHU3RkE0XFx1OTlBQy5qcFwiLFxuICAgICAgXCJcXHU5OTk5XFx1NURERC5qcFwiLFxuICAgICAgXCJcXHU5QUQ4XFx1NzdFNS5qcFwiLFxuICAgICAgXCJcXHU5Q0U1XFx1NTNENi5qcFwiLFxuICAgICAgXCJcXHU5RTdGXFx1NTE1MFxcdTVDRjYuanBcIixcbiAgICAgIFwiKi5rYXdhc2FraS5qcFwiLFxuICAgICAgXCIqLmtpdGFreXVzaHUuanBcIixcbiAgICAgIFwiKi5rb2JlLmpwXCIsXG4gICAgICBcIioubmFnb3lhLmpwXCIsXG4gICAgICBcIiouc2FwcG9yby5qcFwiLFxuICAgICAgXCIqLnNlbmRhaS5qcFwiLFxuICAgICAgXCIqLnlva29oYW1hLmpwXCIsXG4gICAgICBcIiFjaXR5Lmthd2FzYWtpLmpwXCIsXG4gICAgICBcIiFjaXR5LmtpdGFreXVzaHUuanBcIixcbiAgICAgIFwiIWNpdHkua29iZS5qcFwiLFxuICAgICAgXCIhY2l0eS5uYWdveWEuanBcIixcbiAgICAgIFwiIWNpdHkuc2FwcG9yby5qcFwiLFxuICAgICAgXCIhY2l0eS5zZW5kYWkuanBcIixcbiAgICAgIFwiIWNpdHkueW9rb2hhbWEuanBcIixcbiAgICAgIFwiYWlzYWkuYWljaGkuanBcIixcbiAgICAgIFwiYW1hLmFpY2hpLmpwXCIsXG4gICAgICBcImFuam8uYWljaGkuanBcIixcbiAgICAgIFwiYXN1a2UuYWljaGkuanBcIixcbiAgICAgIFwiY2hpcnl1LmFpY2hpLmpwXCIsXG4gICAgICBcImNoaXRhLmFpY2hpLmpwXCIsXG4gICAgICBcImZ1c28uYWljaGkuanBcIixcbiAgICAgIFwiZ2FtYWdvcmkuYWljaGkuanBcIixcbiAgICAgIFwiaGFuZGEuYWljaGkuanBcIixcbiAgICAgIFwiaGF6dS5haWNoaS5qcFwiLFxuICAgICAgXCJoZWtpbmFuLmFpY2hpLmpwXCIsXG4gICAgICBcImhpZ2FzaGl1cmEuYWljaGkuanBcIixcbiAgICAgIFwiaWNoaW5vbWl5YS5haWNoaS5qcFwiLFxuICAgICAgXCJpbmF6YXdhLmFpY2hpLmpwXCIsXG4gICAgICBcImludXlhbWEuYWljaGkuanBcIixcbiAgICAgIFwiaXNzaGlraS5haWNoaS5qcFwiLFxuICAgICAgXCJpd2FrdXJhLmFpY2hpLmpwXCIsXG4gICAgICBcImthbmllLmFpY2hpLmpwXCIsXG4gICAgICBcImthcml5YS5haWNoaS5qcFwiLFxuICAgICAgXCJrYXN1Z2FpLmFpY2hpLmpwXCIsXG4gICAgICBcImtpcmEuYWljaGkuanBcIixcbiAgICAgIFwia2l5b3N1LmFpY2hpLmpwXCIsXG4gICAgICBcImtvbWFraS5haWNoaS5qcFwiLFxuICAgICAgXCJrb25hbi5haWNoaS5qcFwiLFxuICAgICAgXCJrb3RhLmFpY2hpLmpwXCIsXG4gICAgICBcIm1paGFtYS5haWNoaS5qcFwiLFxuICAgICAgXCJtaXlvc2hpLmFpY2hpLmpwXCIsXG4gICAgICBcIm5pc2hpby5haWNoaS5qcFwiLFxuICAgICAgXCJuaXNzaGluLmFpY2hpLmpwXCIsXG4gICAgICBcIm9idS5haWNoaS5qcFwiLFxuICAgICAgXCJvZ3VjaGkuYWljaGkuanBcIixcbiAgICAgIFwib2hhcnUuYWljaGkuanBcIixcbiAgICAgIFwib2themFraS5haWNoaS5qcFwiLFxuICAgICAgXCJvd2FyaWFzYWhpLmFpY2hpLmpwXCIsXG4gICAgICBcInNldG8uYWljaGkuanBcIixcbiAgICAgIFwic2hpa2F0c3UuYWljaGkuanBcIixcbiAgICAgIFwic2hpbnNoaXJvLmFpY2hpLmpwXCIsXG4gICAgICBcInNoaXRhcmEuYWljaGkuanBcIixcbiAgICAgIFwidGFoYXJhLmFpY2hpLmpwXCIsXG4gICAgICBcInRha2FoYW1hLmFpY2hpLmpwXCIsXG4gICAgICBcInRvYmlzaGltYS5haWNoaS5qcFwiLFxuICAgICAgXCJ0b2VpLmFpY2hpLmpwXCIsXG4gICAgICBcInRvZ28uYWljaGkuanBcIixcbiAgICAgIFwidG9rYWkuYWljaGkuanBcIixcbiAgICAgIFwidG9rb25hbWUuYWljaGkuanBcIixcbiAgICAgIFwidG95b2FrZS5haWNoaS5qcFwiLFxuICAgICAgXCJ0b3lvaGFzaGkuYWljaGkuanBcIixcbiAgICAgIFwidG95b2thd2EuYWljaGkuanBcIixcbiAgICAgIFwidG95b25lLmFpY2hpLmpwXCIsXG4gICAgICBcInRveW90YS5haWNoaS5qcFwiLFxuICAgICAgXCJ0c3VzaGltYS5haWNoaS5qcFwiLFxuICAgICAgXCJ5YXRvbWkuYWljaGkuanBcIixcbiAgICAgIFwiYWtpdGEuYWtpdGEuanBcIixcbiAgICAgIFwiZGFpc2VuLmFraXRhLmpwXCIsXG4gICAgICBcImZ1amlzYXRvLmFraXRhLmpwXCIsXG4gICAgICBcImdvam9tZS5ha2l0YS5qcFwiLFxuICAgICAgXCJoYWNoaXJvZ2F0YS5ha2l0YS5qcFwiLFxuICAgICAgXCJoYXBwb3UuYWtpdGEuanBcIixcbiAgICAgIFwiaGlnYXNoaW5hcnVzZS5ha2l0YS5qcFwiLFxuICAgICAgXCJob25qby5ha2l0YS5qcFwiLFxuICAgICAgXCJob25qeW8uYWtpdGEuanBcIixcbiAgICAgIFwiaWthd2EuYWtpdGEuanBcIixcbiAgICAgIFwia2FtaWtvYW5pLmFraXRhLmpwXCIsXG4gICAgICBcImthbWlva2EuYWtpdGEuanBcIixcbiAgICAgIFwia2F0YWdhbWkuYWtpdGEuanBcIixcbiAgICAgIFwia2F6dW5vLmFraXRhLmpwXCIsXG4gICAgICBcImtpdGFha2l0YS5ha2l0YS5qcFwiLFxuICAgICAgXCJrb3Nha2EuYWtpdGEuanBcIixcbiAgICAgIFwia3lvd2EuYWtpdGEuanBcIixcbiAgICAgIFwibWlzYXRvLmFraXRhLmpwXCIsXG4gICAgICBcIm1pdGFuZS5ha2l0YS5qcFwiLFxuICAgICAgXCJtb3JpeW9zaGkuYWtpdGEuanBcIixcbiAgICAgIFwibmlrYWhvLmFraXRhLmpwXCIsXG4gICAgICBcIm5vc2hpcm8uYWtpdGEuanBcIixcbiAgICAgIFwib2RhdGUuYWtpdGEuanBcIixcbiAgICAgIFwib2dhLmFraXRhLmpwXCIsXG4gICAgICBcIm9nYXRhLmFraXRhLmpwXCIsXG4gICAgICBcInNlbWJva3UuYWtpdGEuanBcIixcbiAgICAgIFwieW9rb3RlLmFraXRhLmpwXCIsXG4gICAgICBcInl1cmlob25qby5ha2l0YS5qcFwiLFxuICAgICAgXCJhb21vcmkuYW9tb3JpLmpwXCIsXG4gICAgICBcImdvbm9oZS5hb21vcmkuanBcIixcbiAgICAgIFwiaGFjaGlub2hlLmFvbW9yaS5qcFwiLFxuICAgICAgXCJoYXNoaWthbWkuYW9tb3JpLmpwXCIsXG4gICAgICBcImhpcmFuYWkuYW9tb3JpLmpwXCIsXG4gICAgICBcImhpcm9zYWtpLmFvbW9yaS5qcFwiLFxuICAgICAgXCJpdGF5YW5hZ2kuYW9tb3JpLmpwXCIsXG4gICAgICBcImt1cm9pc2hpLmFvbW9yaS5qcFwiLFxuICAgICAgXCJtaXNhd2EuYW9tb3JpLmpwXCIsXG4gICAgICBcIm11dHN1LmFvbW9yaS5qcFwiLFxuICAgICAgXCJuYWthZG9tYXJpLmFvbW9yaS5qcFwiLFxuICAgICAgXCJub2hlamkuYW9tb3JpLmpwXCIsXG4gICAgICBcIm9pcmFzZS5hb21vcmkuanBcIixcbiAgICAgIFwib3dhbmkuYW9tb3JpLmpwXCIsXG4gICAgICBcInJva3Vub2hlLmFvbW9yaS5qcFwiLFxuICAgICAgXCJzYW5ub2hlLmFvbW9yaS5qcFwiLFxuICAgICAgXCJzaGljaGlub2hlLmFvbW9yaS5qcFwiLFxuICAgICAgXCJzaGluZ28uYW9tb3JpLmpwXCIsXG4gICAgICBcInRha2tvLmFvbW9yaS5qcFwiLFxuICAgICAgXCJ0b3dhZGEuYW9tb3JpLmpwXCIsXG4gICAgICBcInRzdWdhcnUuYW9tb3JpLmpwXCIsXG4gICAgICBcInRzdXJ1dGEuYW9tb3JpLmpwXCIsXG4gICAgICBcImFiaWtvLmNoaWJhLmpwXCIsXG4gICAgICBcImFzYWhpLmNoaWJhLmpwXCIsXG4gICAgICBcImNob25hbi5jaGliYS5qcFwiLFxuICAgICAgXCJjaG9zZWkuY2hpYmEuanBcIixcbiAgICAgIFwiY2hvc2hpLmNoaWJhLmpwXCIsXG4gICAgICBcImNodW8uY2hpYmEuanBcIixcbiAgICAgIFwiZnVuYWJhc2hpLmNoaWJhLmpwXCIsXG4gICAgICBcImZ1dHRzdS5jaGliYS5qcFwiLFxuICAgICAgXCJoYW5hbWlnYXdhLmNoaWJhLmpwXCIsXG4gICAgICBcImljaGloYXJhLmNoaWJhLmpwXCIsXG4gICAgICBcImljaGlrYXdhLmNoaWJhLmpwXCIsXG4gICAgICBcImljaGlub21peWEuY2hpYmEuanBcIixcbiAgICAgIFwiaW56YWkuY2hpYmEuanBcIixcbiAgICAgIFwiaXN1bWkuY2hpYmEuanBcIixcbiAgICAgIFwia2FtYWdheWEuY2hpYmEuanBcIixcbiAgICAgIFwia2Ftb2dhd2EuY2hpYmEuanBcIixcbiAgICAgIFwia2FzaGl3YS5jaGliYS5qcFwiLFxuICAgICAgXCJrYXRvcmkuY2hpYmEuanBcIixcbiAgICAgIFwia2F0c3V1cmEuY2hpYmEuanBcIixcbiAgICAgIFwia2ltaXRzdS5jaGliYS5qcFwiLFxuICAgICAgXCJraXNhcmF6dS5jaGliYS5qcFwiLFxuICAgICAgXCJrb3pha2kuY2hpYmEuanBcIixcbiAgICAgIFwia3VqdWt1cmkuY2hpYmEuanBcIixcbiAgICAgIFwia3lvbmFuLmNoaWJhLmpwXCIsXG4gICAgICBcIm1hdHN1ZG8uY2hpYmEuanBcIixcbiAgICAgIFwibWlkb3JpLmNoaWJhLmpwXCIsXG4gICAgICBcIm1paGFtYS5jaGliYS5qcFwiLFxuICAgICAgXCJtaW5hbWlib3NvLmNoaWJhLmpwXCIsXG4gICAgICBcIm1vYmFyYS5jaGliYS5qcFwiLFxuICAgICAgXCJtdXRzdXphd2EuY2hpYmEuanBcIixcbiAgICAgIFwibmFnYXJhLmNoaWJhLmpwXCIsXG4gICAgICBcIm5hZ2FyZXlhbWEuY2hpYmEuanBcIixcbiAgICAgIFwibmFyYXNoaW5vLmNoaWJhLmpwXCIsXG4gICAgICBcIm5hcml0YS5jaGliYS5qcFwiLFxuICAgICAgXCJub2RhLmNoaWJhLmpwXCIsXG4gICAgICBcIm9hbWlzaGlyYXNhdG8uY2hpYmEuanBcIixcbiAgICAgIFwib21pZ2F3YS5jaGliYS5qcFwiLFxuICAgICAgXCJvbmp1a3UuY2hpYmEuanBcIixcbiAgICAgIFwib3Rha2kuY2hpYmEuanBcIixcbiAgICAgIFwic2FrYWUuY2hpYmEuanBcIixcbiAgICAgIFwic2FrdXJhLmNoaWJhLmpwXCIsXG4gICAgICBcInNoaW1vZnVzYS5jaGliYS5qcFwiLFxuICAgICAgXCJzaGlyYWtvLmNoaWJhLmpwXCIsXG4gICAgICBcInNoaXJvaS5jaGliYS5qcFwiLFxuICAgICAgXCJzaGlzdWkuY2hpYmEuanBcIixcbiAgICAgIFwic29kZWdhdXJhLmNoaWJhLmpwXCIsXG4gICAgICBcInNvc2EuY2hpYmEuanBcIixcbiAgICAgIFwidGFrby5jaGliYS5qcFwiLFxuICAgICAgXCJ0YXRleWFtYS5jaGliYS5qcFwiLFxuICAgICAgXCJ0b2dhbmUuY2hpYmEuanBcIixcbiAgICAgIFwidG9obm9zaG8uY2hpYmEuanBcIixcbiAgICAgIFwidG9taXNhdG8uY2hpYmEuanBcIixcbiAgICAgIFwidXJheWFzdS5jaGliYS5qcFwiLFxuICAgICAgXCJ5YWNoaW1hdGEuY2hpYmEuanBcIixcbiAgICAgIFwieWFjaGl5by5jaGliYS5qcFwiLFxuICAgICAgXCJ5b2thaWNoaWJhLmNoaWJhLmpwXCIsXG4gICAgICBcInlva29zaGliYWhpa2FyaS5jaGliYS5qcFwiLFxuICAgICAgXCJ5b3RzdWthaWRvLmNoaWJhLmpwXCIsXG4gICAgICBcImFpbmFuLmVoaW1lLmpwXCIsXG4gICAgICBcImhvbmFpLmVoaW1lLmpwXCIsXG4gICAgICBcImlrYXRhLmVoaW1lLmpwXCIsXG4gICAgICBcImltYWJhcmkuZWhpbWUuanBcIixcbiAgICAgIFwiaXlvLmVoaW1lLmpwXCIsXG4gICAgICBcImthbWlqaW1hLmVoaW1lLmpwXCIsXG4gICAgICBcImtpaG9rdS5laGltZS5qcFwiLFxuICAgICAgXCJrdW1ha29nZW4uZWhpbWUuanBcIixcbiAgICAgIFwibWFzYWtpLmVoaW1lLmpwXCIsXG4gICAgICBcIm1hdHN1bm8uZWhpbWUuanBcIixcbiAgICAgIFwibWF0c3V5YW1hLmVoaW1lLmpwXCIsXG4gICAgICBcIm5hbWlrYXRhLmVoaW1lLmpwXCIsXG4gICAgICBcIm5paWhhbWEuZWhpbWUuanBcIixcbiAgICAgIFwib3p1LmVoaW1lLmpwXCIsXG4gICAgICBcInNhaWpvLmVoaW1lLmpwXCIsXG4gICAgICBcInNlaXlvLmVoaW1lLmpwXCIsXG4gICAgICBcInNoaWtva3VjaHVvLmVoaW1lLmpwXCIsXG4gICAgICBcInRvYmUuZWhpbWUuanBcIixcbiAgICAgIFwidG9vbi5laGltZS5qcFwiLFxuICAgICAgXCJ1Y2hpa28uZWhpbWUuanBcIixcbiAgICAgIFwidXdhamltYS5laGltZS5qcFwiLFxuICAgICAgXCJ5YXdhdGFoYW1hLmVoaW1lLmpwXCIsXG4gICAgICBcImVjaGl6ZW4uZnVrdWkuanBcIixcbiAgICAgIFwiZWloZWlqaS5mdWt1aS5qcFwiLFxuICAgICAgXCJmdWt1aS5mdWt1aS5qcFwiLFxuICAgICAgXCJpa2VkYS5mdWt1aS5qcFwiLFxuICAgICAgXCJrYXRzdXlhbWEuZnVrdWkuanBcIixcbiAgICAgIFwibWloYW1hLmZ1a3VpLmpwXCIsXG4gICAgICBcIm1pbmFtaWVjaGl6ZW4uZnVrdWkuanBcIixcbiAgICAgIFwib2JhbWEuZnVrdWkuanBcIixcbiAgICAgIFwib2hpLmZ1a3VpLmpwXCIsXG4gICAgICBcIm9uby5mdWt1aS5qcFwiLFxuICAgICAgXCJzYWJhZS5mdWt1aS5qcFwiLFxuICAgICAgXCJzYWthaS5mdWt1aS5qcFwiLFxuICAgICAgXCJ0YWthaGFtYS5mdWt1aS5qcFwiLFxuICAgICAgXCJ0c3VydWdhLmZ1a3VpLmpwXCIsXG4gICAgICBcIndha2FzYS5mdWt1aS5qcFwiLFxuICAgICAgXCJhc2hpeWEuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJidXplbi5mdWt1b2thLmpwXCIsXG4gICAgICBcImNoaWt1Z28uZnVrdW9rYS5qcFwiLFxuICAgICAgXCJjaGlrdWhvLmZ1a3Vva2EuanBcIixcbiAgICAgIFwiY2hpa3Vqby5mdWt1b2thLmpwXCIsXG4gICAgICBcImNoaWt1c2hpbm8uZnVrdW9rYS5qcFwiLFxuICAgICAgXCJjaGlrdXplbi5mdWt1b2thLmpwXCIsXG4gICAgICBcImNodW8uZnVrdW9rYS5qcFwiLFxuICAgICAgXCJkYXphaWZ1LmZ1a3Vva2EuanBcIixcbiAgICAgIFwiZnVrdWNoaS5mdWt1b2thLmpwXCIsXG4gICAgICBcImhha2F0YS5mdWt1b2thLmpwXCIsXG4gICAgICBcImhpZ2FzaGkuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJoaXJva2F3YS5mdWt1b2thLmpwXCIsXG4gICAgICBcImhpc2F5YW1hLmZ1a3Vva2EuanBcIixcbiAgICAgIFwiaWl6dWthLmZ1a3Vva2EuanBcIixcbiAgICAgIFwiaW5hdHN1a2kuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJrYWhvLmZ1a3Vva2EuanBcIixcbiAgICAgIFwia2FzdWdhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwia2FzdXlhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwia2F3YXJhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwia2Vpc2VuLmZ1a3Vva2EuanBcIixcbiAgICAgIFwia29nYS5mdWt1b2thLmpwXCIsXG4gICAgICBcImt1cmF0ZS5mdWt1b2thLmpwXCIsXG4gICAgICBcImt1cm9naS5mdWt1b2thLmpwXCIsXG4gICAgICBcImt1cnVtZS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm1pbmFtaS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm1peWFrby5mdWt1b2thLmpwXCIsXG4gICAgICBcIm1peWFtYS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm1peWF3YWthLmZ1a3Vva2EuanBcIixcbiAgICAgIFwibWl6dW1ha2kuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJtdW5ha2F0YS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm5ha2FnYXdhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwibmFrYW1hLmZ1a3Vva2EuanBcIixcbiAgICAgIFwibmlzaGkuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJub2dhdGEuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJvZ29yaS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm9rYWdha2kuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJva2F3YS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm9raS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm9tdXRhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwib25nYS5mdWt1b2thLmpwXCIsXG4gICAgICBcIm9ub2pvLmZ1a3Vva2EuanBcIixcbiAgICAgIFwib3RvLmZ1a3Vva2EuanBcIixcbiAgICAgIFwic2FpZ2F3YS5mdWt1b2thLmpwXCIsXG4gICAgICBcInNhc2FndXJpLmZ1a3Vva2EuanBcIixcbiAgICAgIFwic2hpbmd1LmZ1a3Vva2EuanBcIixcbiAgICAgIFwic2hpbnlvc2hpdG9taS5mdWt1b2thLmpwXCIsXG4gICAgICBcInNob25haS5mdWt1b2thLmpwXCIsXG4gICAgICBcInNvZWRhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwic3VlLmZ1a3Vva2EuanBcIixcbiAgICAgIFwidGFjaGlhcmFpLmZ1a3Vva2EuanBcIixcbiAgICAgIFwidGFnYXdhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwidGFrYXRhLmZ1a3Vva2EuanBcIixcbiAgICAgIFwidG9oby5mdWt1b2thLmpwXCIsXG4gICAgICBcInRveW90c3UuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJ0c3Vpa2kuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJ1a2loYS5mdWt1b2thLmpwXCIsXG4gICAgICBcInVtaS5mdWt1b2thLmpwXCIsXG4gICAgICBcInVzdWkuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJ5YW1hZGEuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJ5YW1lLmZ1a3Vva2EuanBcIixcbiAgICAgIFwieWFuYWdhd2EuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJ5dWt1aGFzaGkuZnVrdW9rYS5qcFwiLFxuICAgICAgXCJhaXp1YmFuZ2UuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImFpenVtaXNhdG8uZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImFpenV3YWthbWF0c3UuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImFzYWthd2EuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImJhbmRhaS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwiZGF0ZS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwiZnVrdXNoaW1hLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJmdXJ1ZG9uby5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwiZnV0YWJhLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJoYW5hd2EuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImhpZ2FzaGkuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImhpcmF0YS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwiaGlyb25vLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJpaXRhdGUuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImluYXdhc2hpcm8uZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImlzaGlrYXdhLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJpd2FraS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwiaXp1bWl6YWtpLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJrYWdhbWlpc2hpLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJrYW5leWFtYS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwia2F3YW1hdGEuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImtpdGFrYXRhLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJraXRhc2hpb2JhcmEuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImtvb3JpLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJrb3JpeWFtYS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwia3VuaW1pLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJtaWhhcnUuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcIm1pc2hpbWEuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcIm5hbWllLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJuYW5nby5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwibmlzaGlhaXp1LmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJuaXNoaWdvLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJva3VtYS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwib21vdGVnby5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwib25vLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJvdGFtYS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwic2FtZWdhd2EuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInNoaW1vZ28uZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInNoaXJha2F3YS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwic2hvd2EuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInNvbWEuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInN1a2FnYXdhLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJ0YWlzaGluLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJ0YW1ha2F3YS5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwidGFuYWd1cmEuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInRlbmVpLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJ5YWJ1a2kuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcInlhbWF0by5mdWt1c2hpbWEuanBcIixcbiAgICAgIFwieWFtYXRzdXJpLmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJ5YW5haXp1LmZ1a3VzaGltYS5qcFwiLFxuICAgICAgXCJ5dWdhd2EuZnVrdXNoaW1hLmpwXCIsXG4gICAgICBcImFucGFjaGkuZ2lmdS5qcFwiLFxuICAgICAgXCJlbmEuZ2lmdS5qcFwiLFxuICAgICAgXCJnaWZ1LmdpZnUuanBcIixcbiAgICAgIFwiZ2luYW4uZ2lmdS5qcFwiLFxuICAgICAgXCJnb2RvLmdpZnUuanBcIixcbiAgICAgIFwiZ3Vqby5naWZ1LmpwXCIsXG4gICAgICBcImhhc2hpbWEuZ2lmdS5qcFwiLFxuICAgICAgXCJoaWNoaXNvLmdpZnUuanBcIixcbiAgICAgIFwiaGlkYS5naWZ1LmpwXCIsXG4gICAgICBcImhpZ2FzaGlzaGlyYWthd2EuZ2lmdS5qcFwiLFxuICAgICAgXCJpYmlnYXdhLmdpZnUuanBcIixcbiAgICAgIFwiaWtlZGEuZ2lmdS5qcFwiLFxuICAgICAgXCJrYWthbWlnYWhhcmEuZ2lmdS5qcFwiLFxuICAgICAgXCJrYW5pLmdpZnUuanBcIixcbiAgICAgIFwia2FzYWhhcmEuZ2lmdS5qcFwiLFxuICAgICAgXCJrYXNhbWF0c3UuZ2lmdS5qcFwiLFxuICAgICAgXCJrYXdhdWUuZ2lmdS5qcFwiLFxuICAgICAgXCJraXRhZ2F0YS5naWZ1LmpwXCIsXG4gICAgICBcIm1pbm8uZ2lmdS5qcFwiLFxuICAgICAgXCJtaW5va2Ftby5naWZ1LmpwXCIsXG4gICAgICBcIm1pdGFrZS5naWZ1LmpwXCIsXG4gICAgICBcIm1penVuYW1pLmdpZnUuanBcIixcbiAgICAgIFwibW90b3N1LmdpZnUuanBcIixcbiAgICAgIFwibmFrYXRzdWdhd2EuZ2lmdS5qcFwiLFxuICAgICAgXCJvZ2FraS5naWZ1LmpwXCIsXG4gICAgICBcInNha2Fob2dpLmdpZnUuanBcIixcbiAgICAgIFwic2VraS5naWZ1LmpwXCIsXG4gICAgICBcInNla2lnYWhhcmEuZ2lmdS5qcFwiLFxuICAgICAgXCJzaGlyYWthd2EuZ2lmdS5qcFwiLFxuICAgICAgXCJ0YWppbWkuZ2lmdS5qcFwiLFxuICAgICAgXCJ0YWtheWFtYS5naWZ1LmpwXCIsXG4gICAgICBcInRhcnVpLmdpZnUuanBcIixcbiAgICAgIFwidG9raS5naWZ1LmpwXCIsXG4gICAgICBcInRvbWlrYS5naWZ1LmpwXCIsXG4gICAgICBcIndhbm91Y2hpLmdpZnUuanBcIixcbiAgICAgIFwieWFtYWdhdGEuZ2lmdS5qcFwiLFxuICAgICAgXCJ5YW90c3UuZ2lmdS5qcFwiLFxuICAgICAgXCJ5b3JvLmdpZnUuanBcIixcbiAgICAgIFwiYW5uYWthLmd1bm1hLmpwXCIsXG4gICAgICBcImNoaXlvZGEuZ3VubWEuanBcIixcbiAgICAgIFwiZnVqaW9rYS5ndW5tYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpYWdhdHN1bWEuZ3VubWEuanBcIixcbiAgICAgIFwiaXNlc2FraS5ndW5tYS5qcFwiLFxuICAgICAgXCJpdGFrdXJhLmd1bm1hLmpwXCIsXG4gICAgICBcImthbm5hLmd1bm1hLmpwXCIsXG4gICAgICBcImthbnJhLmd1bm1hLmpwXCIsXG4gICAgICBcImthdGFzaGluYS5ndW5tYS5qcFwiLFxuICAgICAgXCJrYXdhYmEuZ3VubWEuanBcIixcbiAgICAgIFwia2lyeXUuZ3VubWEuanBcIixcbiAgICAgIFwia3VzYXRzdS5ndW5tYS5qcFwiLFxuICAgICAgXCJtYWViYXNoaS5ndW5tYS5qcFwiLFxuICAgICAgXCJtZWl3YS5ndW5tYS5qcFwiLFxuICAgICAgXCJtaWRvcmkuZ3VubWEuanBcIixcbiAgICAgIFwibWluYWthbWkuZ3VubWEuanBcIixcbiAgICAgIFwibmFnYW5vaGFyYS5ndW5tYS5qcFwiLFxuICAgICAgXCJuYWthbm9qby5ndW5tYS5qcFwiLFxuICAgICAgXCJuYW5tb2t1Lmd1bm1hLmpwXCIsXG4gICAgICBcIm51bWF0YS5ndW5tYS5qcFwiLFxuICAgICAgXCJvaXp1bWkuZ3VubWEuanBcIixcbiAgICAgIFwib3JhLmd1bm1hLmpwXCIsXG4gICAgICBcIm90YS5ndW5tYS5qcFwiLFxuICAgICAgXCJzaGlidWthd2EuZ3VubWEuanBcIixcbiAgICAgIFwic2hpbW9uaXRhLmd1bm1hLmpwXCIsXG4gICAgICBcInNoaW50by5ndW5tYS5qcFwiLFxuICAgICAgXCJzaG93YS5ndW5tYS5qcFwiLFxuICAgICAgXCJ0YWthc2FraS5ndW5tYS5qcFwiLFxuICAgICAgXCJ0YWtheWFtYS5ndW5tYS5qcFwiLFxuICAgICAgXCJ0YW1hbXVyYS5ndW5tYS5qcFwiLFxuICAgICAgXCJ0YXRlYmF5YXNoaS5ndW5tYS5qcFwiLFxuICAgICAgXCJ0b21pb2thLmd1bm1hLmpwXCIsXG4gICAgICBcInRzdWtpeW9uby5ndW5tYS5qcFwiLFxuICAgICAgXCJ0c3VtYWdvaS5ndW5tYS5qcFwiLFxuICAgICAgXCJ1ZW5vLmd1bm1hLmpwXCIsXG4gICAgICBcInlvc2hpb2thLmd1bm1hLmpwXCIsXG4gICAgICBcImFzYW1pbmFtaS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwiZGFpd2EuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImV0YWppbWEuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImZ1Y2h1Lmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJmdWt1eWFtYS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwiaGF0c3VrYWljaGkuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImhpZ2FzaGloaXJvc2hpbWEuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImhvbmdvLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJqaW5zZWtpa29nZW4uaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImthaXRhLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJrdWkuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcImt1bWFuby5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwia3VyZS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwibWloYXJhLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJtaXlvc2hpLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJuYWthLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJvbm9taWNoaS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwib3Nha2lrYW1pamltYS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwib3Rha2UuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcInNha2EuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcInNlcmEuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcInNlcmFuaXNoaS5oaXJvc2hpbWEuanBcIixcbiAgICAgIFwic2hpbmljaGkuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcInNob2JhcmEuaGlyb3NoaW1hLmpwXCIsXG4gICAgICBcInRha2VoYXJhLmhpcm9zaGltYS5qcFwiLFxuICAgICAgXCJhYmFzaGlyaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJhYmlyYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJhaWJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImFrYWJpcmEuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiYWtrZXNoaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJhc2FoaWthd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiYXNoaWJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImFzaG9yby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJhc3NhYnUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiYXRzdW1hLmhva2thaWRvLmpwXCIsXG4gICAgICBcImJpYmFpLmhva2thaWRvLmpwXCIsXG4gICAgICBcImJpZWkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiYmlmdWthLmhva2thaWRvLmpwXCIsXG4gICAgICBcImJpaG9yby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJiaXJhdG9yaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJjaGlwcHViZXRzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJjaGl0b3NlLmhva2thaWRvLmpwXCIsXG4gICAgICBcImRhdGUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZWJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImVtYmV0c3UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZW5pd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZXJpbW8uaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZXNhbi5ob2trYWlkby5qcFwiLFxuICAgICAgXCJlc2FzaGkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZnVrYWdhd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiZnVrdXNoaW1hLmhva2thaWRvLmpwXCIsXG4gICAgICBcImZ1cmFuby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJmdXJ1YmlyYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJoYWJvcm8uaG9ra2FpZG8uanBcIixcbiAgICAgIFwiaGFrb2RhdGUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiaGFtYXRvbmJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImhpZGFrYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJoaWdhc2hpa2FndXJhLmhva2thaWRvLmpwXCIsXG4gICAgICBcImhpZ2FzaGlrYXdhLmhva2thaWRvLmpwXCIsXG4gICAgICBcImhpcm9vLmhva2thaWRvLmpwXCIsXG4gICAgICBcImhva3VyeXUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiaG9rdXRvLmhva2thaWRvLmpwXCIsXG4gICAgICBcImhvbmJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImhvcm9rYW5haS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJob3Jvbm9iZS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJpa2VkYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJpbWFrYW5lLmhva2thaWRvLmpwXCIsXG4gICAgICBcImlzaGlrYXJpLmhva2thaWRvLmpwXCIsXG4gICAgICBcIml3YW1pemF3YS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJpd2FuYWkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia2FtaWZ1cmFuby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrYW1pa2F3YS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrYW1pc2hpaG9yby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrYW1pc3VuYWdhd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia2Ftb2VuYWkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia2F5YWJlLmhva2thaWRvLmpwXCIsXG4gICAgICBcImtlbWJ1Y2hpLmhva2thaWRvLmpwXCIsXG4gICAgICBcImtpa29uYWkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia2ltb2JldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcImtpdGFoaXJvc2hpbWEuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia2l0YW1pLmhva2thaWRvLmpwXCIsXG4gICAgICBcImtpeW9zYXRvLmhva2thaWRvLmpwXCIsXG4gICAgICBcImtvc2hpbWl6dS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrdW5uZXBwdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrdXJpeWFtYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrdXJvbWF0c3VuYWkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwia3VzaGlyby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJrdXRjaGFuLmhva2thaWRvLmpwXCIsXG4gICAgICBcImt5b3dhLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm1hc2hpa2UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibWF0c3VtYWUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibWlrYXNhLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm1pbmFtaWZ1cmFuby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJtb21iZXRzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJtb3NldXNoaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJtdWthd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibXVyb3Jhbi5ob2trYWlkby5qcFwiLFxuICAgICAgXCJuYWllLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm5ha2FnYXdhLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm5ha2FzYXRzdW5haS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJuYWthdG9tYmV0c3UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibmFuYWUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibmFucG9yby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJuYXlvcm8uaG9ra2FpZG8uanBcIixcbiAgICAgIFwibmVtdXJvLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm5paWthcHB1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcIm5pa2kuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibmlzaGlva29wcGUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibm9ib3JpYmV0c3UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwibnVtYXRhLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm9iaWhpcm8uaG9ra2FpZG8uanBcIixcbiAgICAgIFwib2JpcmEuaG9ra2FpZG8uanBcIixcbiAgICAgIFwib2tldG8uaG9ra2FpZG8uanBcIixcbiAgICAgIFwib2tvcHBlLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm90YXJ1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcIm90b2JlLmhva2thaWRvLmpwXCIsXG4gICAgICBcIm90b2Z1a2UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwib3RvaW5lcHB1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcIm91bXUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwib3pvcmEuaG9ra2FpZG8uanBcIixcbiAgICAgIFwicGlwcHUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwicmFua29zaGkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwicmVidW4uaG9ra2FpZG8uanBcIixcbiAgICAgIFwicmlrdWJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcInJpc2hpcmkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwicmlzaGlyaWZ1amkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwic2Fyb21hLmhva2thaWRvLmpwXCIsXG4gICAgICBcInNhcnVmdXRzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGFrb3Rhbi5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGFyaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGliZWNoYS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGliZXRzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGlrYWJlLmhva2thaWRvLmpwXCIsXG4gICAgICBcInNoaWthb2kuaG9ra2FpZG8uanBcIixcbiAgICAgIFwic2hpbWFtYWtpLmhva2thaWRvLmpwXCIsXG4gICAgICBcInNoaW1penUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwic2hpbW9rYXdhLmhva2thaWRvLmpwXCIsXG4gICAgICBcInNoaW5zaGlub3RzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGludG9rdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGlyYW51a2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwic2hpcmFvaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzaGlyaXVjaGkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwic29iZXRzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJzdW5hZ2F3YS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ0YWlraS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ0YWthc3UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwidGFraWthd2EuaG9ra2FpZG8uanBcIixcbiAgICAgIFwidGFraW5vdWUuaG9ra2FpZG8uanBcIixcbiAgICAgIFwidGVzaGlrYWdhLmhva2thaWRvLmpwXCIsXG4gICAgICBcInRvYmV0c3UuaG9ra2FpZG8uanBcIixcbiAgICAgIFwidG9obWEuaG9ra2FpZG8uanBcIixcbiAgICAgIFwidG9tYWtvbWFpLmhva2thaWRvLmpwXCIsXG4gICAgICBcInRvbWFyaS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ0b3lhLmhva2thaWRvLmpwXCIsXG4gICAgICBcInRveWFrby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ0b3lvdG9taS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ0b3lvdXJhLmhva2thaWRvLmpwXCIsXG4gICAgICBcInRzdWJldHN1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcInRzdWtpZ2F0YS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ1cmFrYXdhLmhva2thaWRvLmpwXCIsXG4gICAgICBcInVyYXVzdS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ1cnl1Lmhva2thaWRvLmpwXCIsXG4gICAgICBcInV0YXNoaW5haS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ3YWtrYW5haS5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ3YXNzYW11Lmhva2thaWRvLmpwXCIsXG4gICAgICBcInlha3Vtby5ob2trYWlkby5qcFwiLFxuICAgICAgXCJ5b2ljaGkuaG9ra2FpZG8uanBcIixcbiAgICAgIFwiYWlvaS5oeW9nby5qcFwiLFxuICAgICAgXCJha2FzaGkuaHlvZ28uanBcIixcbiAgICAgIFwiYWtvLmh5b2dvLmpwXCIsXG4gICAgICBcImFtYWdhc2FraS5oeW9nby5qcFwiLFxuICAgICAgXCJhb2dha2kuaHlvZ28uanBcIixcbiAgICAgIFwiYXNhZ28uaHlvZ28uanBcIixcbiAgICAgIFwiYXNoaXlhLmh5b2dvLmpwXCIsXG4gICAgICBcImF3YWppLmh5b2dvLmpwXCIsXG4gICAgICBcImZ1a3VzYWtpLmh5b2dvLmpwXCIsXG4gICAgICBcImdvc2hpa2kuaHlvZ28uanBcIixcbiAgICAgIFwiaGFyaW1hLmh5b2dvLmpwXCIsXG4gICAgICBcImhpbWVqaS5oeW9nby5qcFwiLFxuICAgICAgXCJpY2hpa2F3YS5oeW9nby5qcFwiLFxuICAgICAgXCJpbmFnYXdhLmh5b2dvLmpwXCIsXG4gICAgICBcIml0YW1pLmh5b2dvLmpwXCIsXG4gICAgICBcImtha29nYXdhLmh5b2dvLmpwXCIsXG4gICAgICBcImthbWlnb3JpLmh5b2dvLmpwXCIsXG4gICAgICBcImthbWlrYXdhLmh5b2dvLmpwXCIsXG4gICAgICBcImthc2FpLmh5b2dvLmpwXCIsXG4gICAgICBcImthc3VnYS5oeW9nby5qcFwiLFxuICAgICAgXCJrYXdhbmlzaGkuaHlvZ28uanBcIixcbiAgICAgIFwibWlraS5oeW9nby5qcFwiLFxuICAgICAgXCJtaW5hbWlhd2FqaS5oeW9nby5qcFwiLFxuICAgICAgXCJuaXNoaW5vbWl5YS5oeW9nby5qcFwiLFxuICAgICAgXCJuaXNoaXdha2kuaHlvZ28uanBcIixcbiAgICAgIFwib25vLmh5b2dvLmpwXCIsXG4gICAgICBcInNhbmRhLmh5b2dvLmpwXCIsXG4gICAgICBcInNhbm5hbi5oeW9nby5qcFwiLFxuICAgICAgXCJzYXNheWFtYS5oeW9nby5qcFwiLFxuICAgICAgXCJzYXlvLmh5b2dvLmpwXCIsXG4gICAgICBcInNoaW5ndS5oeW9nby5qcFwiLFxuICAgICAgXCJzaGlub25zZW4uaHlvZ28uanBcIixcbiAgICAgIFwic2hpc28uaHlvZ28uanBcIixcbiAgICAgIFwic3Vtb3RvLmh5b2dvLmpwXCIsXG4gICAgICBcInRhaXNoaS5oeW9nby5qcFwiLFxuICAgICAgXCJ0YWthLmh5b2dvLmpwXCIsXG4gICAgICBcInRha2FyYXp1a2EuaHlvZ28uanBcIixcbiAgICAgIFwidGFrYXNhZ28uaHlvZ28uanBcIixcbiAgICAgIFwidGFraW5vLmh5b2dvLmpwXCIsXG4gICAgICBcInRhbWJhLmh5b2dvLmpwXCIsXG4gICAgICBcInRhdHN1bm8uaHlvZ28uanBcIixcbiAgICAgIFwidG95b29rYS5oeW9nby5qcFwiLFxuICAgICAgXCJ5YWJ1Lmh5b2dvLmpwXCIsXG4gICAgICBcInlhc2hpcm8uaHlvZ28uanBcIixcbiAgICAgIFwieW9rYS5oeW9nby5qcFwiLFxuICAgICAgXCJ5b2thd2EuaHlvZ28uanBcIixcbiAgICAgIFwiYW1pLmliYXJha2kuanBcIixcbiAgICAgIFwiYXNhaGkuaWJhcmFraS5qcFwiLFxuICAgICAgXCJiYW5kby5pYmFyYWtpLmpwXCIsXG4gICAgICBcImNoaWt1c2VpLmliYXJha2kuanBcIixcbiAgICAgIFwiZGFpZ28uaWJhcmFraS5qcFwiLFxuICAgICAgXCJmdWppc2hpcm8uaWJhcmFraS5qcFwiLFxuICAgICAgXCJoaXRhY2hpLmliYXJha2kuanBcIixcbiAgICAgIFwiaGl0YWNoaW5ha2EuaWJhcmFraS5qcFwiLFxuICAgICAgXCJoaXRhY2hpb21peWEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJoaXRhY2hpb3RhLmliYXJha2kuanBcIixcbiAgICAgIFwiaWJhcmFraS5pYmFyYWtpLmpwXCIsXG4gICAgICBcImluYS5pYmFyYWtpLmpwXCIsXG4gICAgICBcImluYXNoaWtpLmliYXJha2kuanBcIixcbiAgICAgIFwiaXRha28uaWJhcmFraS5qcFwiLFxuICAgICAgXCJpd2FtYS5pYmFyYWtpLmpwXCIsXG4gICAgICBcImpvc28uaWJhcmFraS5qcFwiLFxuICAgICAgXCJrYW1pc3UuaWJhcmFraS5qcFwiLFxuICAgICAgXCJrYXNhbWEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJrYXNoaW1hLmliYXJha2kuanBcIixcbiAgICAgIFwia2FzdW1pZ2F1cmEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJrb2dhLmliYXJha2kuanBcIixcbiAgICAgIFwibWloby5pYmFyYWtpLmpwXCIsXG4gICAgICBcIm1pdG8uaWJhcmFraS5qcFwiLFxuICAgICAgXCJtb3JpeWEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJuYWthLmliYXJha2kuanBcIixcbiAgICAgIFwibmFtZWdhdGEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJvYXJhaS5pYmFyYWtpLmpwXCIsXG4gICAgICBcIm9nYXdhLmliYXJha2kuanBcIixcbiAgICAgIFwib21pdGFtYS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInJ5dWdhc2FraS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInNha2FpLmliYXJha2kuanBcIixcbiAgICAgIFwic2FrdXJhZ2F3YS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInNoaW1vZGF0ZS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInNoaW1vdHN1bWEuaWJhcmFraS5qcFwiLFxuICAgICAgXCJzaGlyb3NhdG8uaWJhcmFraS5qcFwiLFxuICAgICAgXCJzb3dhLmliYXJha2kuanBcIixcbiAgICAgIFwic3VpZnUuaWJhcmFraS5qcFwiLFxuICAgICAgXCJ0YWthaGFnaS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInRhbWF0c3VrdXJpLmliYXJha2kuanBcIixcbiAgICAgIFwidG9rYWkuaWJhcmFraS5qcFwiLFxuICAgICAgXCJ0b21vYmUuaWJhcmFraS5qcFwiLFxuICAgICAgXCJ0b25lLmliYXJha2kuanBcIixcbiAgICAgIFwidG9yaWRlLmliYXJha2kuanBcIixcbiAgICAgIFwidHN1Y2hpdXJhLmliYXJha2kuanBcIixcbiAgICAgIFwidHN1a3ViYS5pYmFyYWtpLmpwXCIsXG4gICAgICBcInVjaGloYXJhLmliYXJha2kuanBcIixcbiAgICAgIFwidXNoaWt1LmliYXJha2kuanBcIixcbiAgICAgIFwieWFjaGl5by5pYmFyYWtpLmpwXCIsXG4gICAgICBcInlhbWFnYXRhLmliYXJha2kuanBcIixcbiAgICAgIFwieWF3YXJhLmliYXJha2kuanBcIixcbiAgICAgIFwieXVraS5pYmFyYWtpLmpwXCIsXG4gICAgICBcImFuYW1penUuaXNoaWthd2EuanBcIixcbiAgICAgIFwiaGFrdWkuaXNoaWthd2EuanBcIixcbiAgICAgIFwiaGFrdXNhbi5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJrYWdhLmlzaGlrYXdhLmpwXCIsXG4gICAgICBcImthaG9rdS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJrYW5hemF3YS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJrYXdha2l0YS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJrb21hdHN1LmlzaGlrYXdhLmpwXCIsXG4gICAgICBcIm5ha2Fub3RvLmlzaGlrYXdhLmpwXCIsXG4gICAgICBcIm5hbmFvLmlzaGlrYXdhLmpwXCIsXG4gICAgICBcIm5vbWkuaXNoaWthd2EuanBcIixcbiAgICAgIFwibm9ub2ljaGkuaXNoaWthd2EuanBcIixcbiAgICAgIFwibm90by5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJzaGlrYS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJzdXp1LmlzaGlrYXdhLmpwXCIsXG4gICAgICBcInRzdWJhdGEuaXNoaWthd2EuanBcIixcbiAgICAgIFwidHN1cnVnaS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJ1Y2hpbmFkYS5pc2hpa2F3YS5qcFwiLFxuICAgICAgXCJ3YWppbWEuaXNoaWthd2EuanBcIixcbiAgICAgIFwiZnVkYWkuaXdhdGUuanBcIixcbiAgICAgIFwiZnVqaXNhd2EuaXdhdGUuanBcIixcbiAgICAgIFwiaGFuYW1ha2kuaXdhdGUuanBcIixcbiAgICAgIFwiaGlyYWl6dW1pLml3YXRlLmpwXCIsXG4gICAgICBcImhpcm9uby5pd2F0ZS5qcFwiLFxuICAgICAgXCJpY2hpbm9oZS5pd2F0ZS5qcFwiLFxuICAgICAgXCJpY2hpbm9zZWtpLml3YXRlLmpwXCIsXG4gICAgICBcIml3YWl6dW1pLml3YXRlLmpwXCIsXG4gICAgICBcIml3YXRlLml3YXRlLmpwXCIsXG4gICAgICBcImpvYm9qaS5pd2F0ZS5qcFwiLFxuICAgICAgXCJrYW1haXNoaS5pd2F0ZS5qcFwiLFxuICAgICAgXCJrYW5lZ2FzYWtpLml3YXRlLmpwXCIsXG4gICAgICBcImthcnVtYWkuaXdhdGUuanBcIixcbiAgICAgIFwia2F3YWkuaXdhdGUuanBcIixcbiAgICAgIFwia2l0YWthbWkuaXdhdGUuanBcIixcbiAgICAgIFwia3VqaS5pd2F0ZS5qcFwiLFxuICAgICAgXCJrdW5vaGUuaXdhdGUuanBcIixcbiAgICAgIFwia3V6dW1ha2kuaXdhdGUuanBcIixcbiAgICAgIFwibWl5YWtvLml3YXRlLmpwXCIsXG4gICAgICBcIm1penVzYXdhLml3YXRlLmpwXCIsXG4gICAgICBcIm1vcmlva2EuaXdhdGUuanBcIixcbiAgICAgIFwibmlub2hlLml3YXRlLmpwXCIsXG4gICAgICBcIm5vZGEuaXdhdGUuanBcIixcbiAgICAgIFwib2Z1bmF0by5pd2F0ZS5qcFwiLFxuICAgICAgXCJvc2h1Lml3YXRlLmpwXCIsXG4gICAgICBcIm90c3VjaGkuaXdhdGUuanBcIixcbiAgICAgIFwicmlrdXplbnRha2F0YS5pd2F0ZS5qcFwiLFxuICAgICAgXCJzaGl3YS5pd2F0ZS5qcFwiLFxuICAgICAgXCJzaGl6dWt1aXNoaS5pd2F0ZS5qcFwiLFxuICAgICAgXCJzdW1pdGEuaXdhdGUuanBcIixcbiAgICAgIFwidGFub2hhdGEuaXdhdGUuanBcIixcbiAgICAgIFwidG9uby5pd2F0ZS5qcFwiLFxuICAgICAgXCJ5YWhhYmEuaXdhdGUuanBcIixcbiAgICAgIFwieWFtYWRhLml3YXRlLmpwXCIsXG4gICAgICBcImF5YWdhd2Eua2FnYXdhLmpwXCIsXG4gICAgICBcImhpZ2FzaGlrYWdhd2Eua2FnYXdhLmpwXCIsXG4gICAgICBcImthbm9uamkua2FnYXdhLmpwXCIsXG4gICAgICBcImtvdG9oaXJhLmthZ2F3YS5qcFwiLFxuICAgICAgXCJtYW5uby5rYWdhd2EuanBcIixcbiAgICAgIFwibWFydWdhbWUua2FnYXdhLmpwXCIsXG4gICAgICBcIm1pdG95by5rYWdhd2EuanBcIixcbiAgICAgIFwibmFvc2hpbWEua2FnYXdhLmpwXCIsXG4gICAgICBcInNhbnVraS5rYWdhd2EuanBcIixcbiAgICAgIFwidGFkb3RzdS5rYWdhd2EuanBcIixcbiAgICAgIFwidGFrYW1hdHN1LmthZ2F3YS5qcFwiLFxuICAgICAgXCJ0b25vc2hvLmthZ2F3YS5qcFwiLFxuICAgICAgXCJ1Y2hpbm9taS5rYWdhd2EuanBcIixcbiAgICAgIFwidXRhenUua2FnYXdhLmpwXCIsXG4gICAgICBcInplbnRzdWppLmthZ2F3YS5qcFwiLFxuICAgICAgXCJha3VuZS5rYWdvc2hpbWEuanBcIixcbiAgICAgIFwiYW1hbWkua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcImhpb2tpLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJpc2Eua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcImlzZW4ua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcIml6dW1pLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJrYWdvc2hpbWEua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcImthbm95YS5rYWdvc2hpbWEuanBcIixcbiAgICAgIFwia2F3YW5hYmUua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcImtpbmtvLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJrb3V5YW1hLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJtYWt1cmF6YWtpLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJtYXRzdW1vdG8ua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcIm1pbmFtaXRhbmUua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcIm5ha2F0YW5lLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJuaXNoaW5vb21vdGUua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcInNhdHN1bWFzZW5kYWkua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcInNvby5rYWdvc2hpbWEuanBcIixcbiAgICAgIFwidGFydW1penUua2Fnb3NoaW1hLmpwXCIsXG4gICAgICBcInl1c3VpLmthZ29zaGltYS5qcFwiLFxuICAgICAgXCJhaWthd2Eua2FuYWdhd2EuanBcIixcbiAgICAgIFwiYXRzdWdpLmthbmFnYXdhLmpwXCIsXG4gICAgICBcImF5YXNlLmthbmFnYXdhLmpwXCIsXG4gICAgICBcImNoaWdhc2FraS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJlYmluYS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJmdWppc2F3YS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJoYWRhbm8ua2FuYWdhd2EuanBcIixcbiAgICAgIFwiaGFrb25lLmthbmFnYXdhLmpwXCIsXG4gICAgICBcImhpcmF0c3VrYS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJpc2VoYXJhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcImthaXNlaS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJrYW1ha3VyYS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJraXlva2F3YS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJtYXRzdWRhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcIm1pbmFtaWFzaGlnYXJhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcIm1pdXJhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcIm5ha2FpLmthbmFnYXdhLmpwXCIsXG4gICAgICBcIm5pbm9taXlhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcIm9kYXdhcmEua2FuYWdhd2EuanBcIixcbiAgICAgIFwib2kua2FuYWdhd2EuanBcIixcbiAgICAgIFwib2lzby5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJzYWdhbWloYXJhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcInNhbXVrYXdhLmthbmFnYXdhLmpwXCIsXG4gICAgICBcInRzdWt1aS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJ5YW1ha2l0YS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJ5YW1hdG8ua2FuYWdhd2EuanBcIixcbiAgICAgIFwieW9rb3N1a2Eua2FuYWdhd2EuanBcIixcbiAgICAgIFwieXVnYXdhcmEua2FuYWdhd2EuanBcIixcbiAgICAgIFwiemFtYS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJ6dXNoaS5rYW5hZ2F3YS5qcFwiLFxuICAgICAgXCJha2kua29jaGkuanBcIixcbiAgICAgIFwiZ2Vpc2VpLmtvY2hpLmpwXCIsXG4gICAgICBcImhpZGFrYS5rb2NoaS5qcFwiLFxuICAgICAgXCJoaWdhc2hpdHN1bm8ua29jaGkuanBcIixcbiAgICAgIFwiaW5vLmtvY2hpLmpwXCIsXG4gICAgICBcImthZ2FtaS5rb2NoaS5qcFwiLFxuICAgICAgXCJrYW1pLmtvY2hpLmpwXCIsXG4gICAgICBcImtpdGFnYXdhLmtvY2hpLmpwXCIsXG4gICAgICBcImtvY2hpLmtvY2hpLmpwXCIsXG4gICAgICBcIm1paGFyYS5rb2NoaS5qcFwiLFxuICAgICAgXCJtb3RveWFtYS5rb2NoaS5qcFwiLFxuICAgICAgXCJtdXJvdG8ua29jaGkuanBcIixcbiAgICAgIFwibmFoYXJpLmtvY2hpLmpwXCIsXG4gICAgICBcIm5ha2FtdXJhLmtvY2hpLmpwXCIsXG4gICAgICBcIm5hbmtva3Uua29jaGkuanBcIixcbiAgICAgIFwibmlzaGl0b3NhLmtvY2hpLmpwXCIsXG4gICAgICBcIm5peW9kb2dhd2Eua29jaGkuanBcIixcbiAgICAgIFwib2NoaS5rb2NoaS5qcFwiLFxuICAgICAgXCJva2F3YS5rb2NoaS5qcFwiLFxuICAgICAgXCJvdG95by5rb2NoaS5qcFwiLFxuICAgICAgXCJvdHN1a2kua29jaGkuanBcIixcbiAgICAgIFwic2FrYXdhLmtvY2hpLmpwXCIsXG4gICAgICBcInN1a3Vtby5rb2NoaS5qcFwiLFxuICAgICAgXCJzdXNha2kua29jaGkuanBcIixcbiAgICAgIFwidG9zYS5rb2NoaS5qcFwiLFxuICAgICAgXCJ0b3Nhc2hpbWl6dS5rb2NoaS5qcFwiLFxuICAgICAgXCJ0b3lvLmtvY2hpLmpwXCIsXG4gICAgICBcInRzdW5vLmtvY2hpLmpwXCIsXG4gICAgICBcInVtYWppLmtvY2hpLmpwXCIsXG4gICAgICBcInlhc3VkYS5rb2NoaS5qcFwiLFxuICAgICAgXCJ5dXN1aGFyYS5rb2NoaS5qcFwiLFxuICAgICAgXCJhbWFrdXNhLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcImFyYW8ua3VtYW1vdG8uanBcIixcbiAgICAgIFwiYXNvLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcImNob3lvLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcImd5b2t1dG8ua3VtYW1vdG8uanBcIixcbiAgICAgIFwia2FtaWFtYWt1c2Eua3VtYW1vdG8uanBcIixcbiAgICAgIFwia2lrdWNoaS5rdW1hbW90by5qcFwiLFxuICAgICAgXCJrdW1hbW90by5rdW1hbW90by5qcFwiLFxuICAgICAgXCJtYXNoaWtpLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcIm1pZnVuZS5rdW1hbW90by5qcFwiLFxuICAgICAgXCJtaW5hbWF0YS5rdW1hbW90by5qcFwiLFxuICAgICAgXCJtaW5hbWlvZ3VuaS5rdW1hbW90by5qcFwiLFxuICAgICAgXCJuYWdhc3Uua3VtYW1vdG8uanBcIixcbiAgICAgIFwibmlzaGloYXJhLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcIm9ndW5pLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcIm96dS5rdW1hbW90by5qcFwiLFxuICAgICAgXCJzdW1vdG8ua3VtYW1vdG8uanBcIixcbiAgICAgIFwidGFrYW1vcmkua3VtYW1vdG8uanBcIixcbiAgICAgIFwidWtpLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcInV0by5rdW1hbW90by5qcFwiLFxuICAgICAgXCJ5YW1hZ2Eua3VtYW1vdG8uanBcIixcbiAgICAgIFwieWFtYXRvLmt1bWFtb3RvLmpwXCIsXG4gICAgICBcInlhdHN1c2hpcm8ua3VtYW1vdG8uanBcIixcbiAgICAgIFwiYXlhYmUua3lvdG8uanBcIixcbiAgICAgIFwiZnVrdWNoaXlhbWEua3lvdG8uanBcIixcbiAgICAgIFwiaGlnYXNoaXlhbWEua3lvdG8uanBcIixcbiAgICAgIFwiaWRlLmt5b3RvLmpwXCIsXG4gICAgICBcImluZS5reW90by5qcFwiLFxuICAgICAgXCJqb3lvLmt5b3RvLmpwXCIsXG4gICAgICBcImthbWVva2Eua3lvdG8uanBcIixcbiAgICAgIFwia2Ftby5reW90by5qcFwiLFxuICAgICAgXCJraXRhLmt5b3RvLmpwXCIsXG4gICAgICBcImtpenUua3lvdG8uanBcIixcbiAgICAgIFwia3VtaXlhbWEua3lvdG8uanBcIixcbiAgICAgIFwia3lvdGFtYmEua3lvdG8uanBcIixcbiAgICAgIFwia3lvdGFuYWJlLmt5b3RvLmpwXCIsXG4gICAgICBcImt5b3RhbmdvLmt5b3RvLmpwXCIsXG4gICAgICBcIm1haXp1cnUua3lvdG8uanBcIixcbiAgICAgIFwibWluYW1pLmt5b3RvLmpwXCIsXG4gICAgICBcIm1pbmFtaXlhbWFzaGlyby5reW90by5qcFwiLFxuICAgICAgXCJtaXlhenUua3lvdG8uanBcIixcbiAgICAgIFwibXVrby5reW90by5qcFwiLFxuICAgICAgXCJuYWdhb2tha3lvLmt5b3RvLmpwXCIsXG4gICAgICBcIm5ha2FneW8ua3lvdG8uanBcIixcbiAgICAgIFwibmFudGFuLmt5b3RvLmpwXCIsXG4gICAgICBcIm95YW1hemFraS5reW90by5qcFwiLFxuICAgICAgXCJzYWt5by5reW90by5qcFwiLFxuICAgICAgXCJzZWlrYS5reW90by5qcFwiLFxuICAgICAgXCJ0YW5hYmUua3lvdG8uanBcIixcbiAgICAgIFwidWppLmt5b3RvLmpwXCIsXG4gICAgICBcInVqaXRhd2FyYS5reW90by5qcFwiLFxuICAgICAgXCJ3YXp1a2Eua3lvdG8uanBcIixcbiAgICAgIFwieWFtYXNoaW5hLmt5b3RvLmpwXCIsXG4gICAgICBcInlhd2F0YS5reW90by5qcFwiLFxuICAgICAgXCJhc2FoaS5taWUuanBcIixcbiAgICAgIFwiaW5hYmUubWllLmpwXCIsXG4gICAgICBcImlzZS5taWUuanBcIixcbiAgICAgIFwia2FtZXlhbWEubWllLmpwXCIsXG4gICAgICBcImthd2Fnb2UubWllLmpwXCIsXG4gICAgICBcImtpaG8ubWllLmpwXCIsXG4gICAgICBcImtpc29zYWtpLm1pZS5qcFwiLFxuICAgICAgXCJraXdhLm1pZS5qcFwiLFxuICAgICAgXCJrb21vbm8ubWllLmpwXCIsXG4gICAgICBcImt1bWFuby5taWUuanBcIixcbiAgICAgIFwia3V3YW5hLm1pZS5qcFwiLFxuICAgICAgXCJtYXRzdXNha2EubWllLmpwXCIsXG4gICAgICBcIm1laXdhLm1pZS5qcFwiLFxuICAgICAgXCJtaWhhbWEubWllLmpwXCIsXG4gICAgICBcIm1pbmFtaWlzZS5taWUuanBcIixcbiAgICAgIFwibWlzdWdpLm1pZS5qcFwiLFxuICAgICAgXCJtaXlhbWEubWllLmpwXCIsXG4gICAgICBcIm5hYmFyaS5taWUuanBcIixcbiAgICAgIFwic2hpbWEubWllLmpwXCIsXG4gICAgICBcInN1enVrYS5taWUuanBcIixcbiAgICAgIFwidGFkby5taWUuanBcIixcbiAgICAgIFwidGFpa2kubWllLmpwXCIsXG4gICAgICBcInRha2kubWllLmpwXCIsXG4gICAgICBcInRhbWFraS5taWUuanBcIixcbiAgICAgIFwidG9iYS5taWUuanBcIixcbiAgICAgIFwidHN1Lm1pZS5qcFwiLFxuICAgICAgXCJ1ZG9uby5taWUuanBcIixcbiAgICAgIFwidXJlc2hpbm8ubWllLmpwXCIsXG4gICAgICBcIndhdGFyYWkubWllLmpwXCIsXG4gICAgICBcInlva2thaWNoaS5taWUuanBcIixcbiAgICAgIFwiZnVydWthd2EubWl5YWdpLmpwXCIsXG4gICAgICBcImhpZ2FzaGltYXRzdXNoaW1hLm1peWFnaS5qcFwiLFxuICAgICAgXCJpc2hpbm9tYWtpLm1peWFnaS5qcFwiLFxuICAgICAgXCJpd2FudW1hLm1peWFnaS5qcFwiLFxuICAgICAgXCJrYWt1ZGEubWl5YWdpLmpwXCIsXG4gICAgICBcImthbWkubWl5YWdpLmpwXCIsXG4gICAgICBcImthd2FzYWtpLm1peWFnaS5qcFwiLFxuICAgICAgXCJtYXJ1bW9yaS5taXlhZ2kuanBcIixcbiAgICAgIFwibWF0c3VzaGltYS5taXlhZ2kuanBcIixcbiAgICAgIFwibWluYW1pc2FucmlrdS5taXlhZ2kuanBcIixcbiAgICAgIFwibWlzYXRvLm1peWFnaS5qcFwiLFxuICAgICAgXCJtdXJhdGEubWl5YWdpLmpwXCIsXG4gICAgICBcIm5hdG9yaS5taXlhZ2kuanBcIixcbiAgICAgIFwib2dhd2FyYS5taXlhZ2kuanBcIixcbiAgICAgIFwib2hpcmEubWl5YWdpLmpwXCIsXG4gICAgICBcIm9uYWdhd2EubWl5YWdpLmpwXCIsXG4gICAgICBcIm9zYWtpLm1peWFnaS5qcFwiLFxuICAgICAgXCJyaWZ1Lm1peWFnaS5qcFwiLFxuICAgICAgXCJzZW1pbmUubWl5YWdpLmpwXCIsXG4gICAgICBcInNoaWJhdGEubWl5YWdpLmpwXCIsXG4gICAgICBcInNoaWNoaWthc2h1a3UubWl5YWdpLmpwXCIsXG4gICAgICBcInNoaWthbWEubWl5YWdpLmpwXCIsXG4gICAgICBcInNoaW9nYW1hLm1peWFnaS5qcFwiLFxuICAgICAgXCJzaGlyb2lzaGkubWl5YWdpLmpwXCIsXG4gICAgICBcInRhZ2Fqby5taXlhZ2kuanBcIixcbiAgICAgIFwidGFpd2EubWl5YWdpLmpwXCIsXG4gICAgICBcInRvbWUubWl5YWdpLmpwXCIsXG4gICAgICBcInRvbWl5YS5taXlhZ2kuanBcIixcbiAgICAgIFwid2FrdXlhLm1peWFnaS5qcFwiLFxuICAgICAgXCJ3YXRhcmkubWl5YWdpLmpwXCIsXG4gICAgICBcInlhbWFtb3RvLm1peWFnaS5qcFwiLFxuICAgICAgXCJ6YW8ubWl5YWdpLmpwXCIsXG4gICAgICBcImF5YS5taXlhemFraS5qcFwiLFxuICAgICAgXCJlYmluby5taXlhemFraS5qcFwiLFxuICAgICAgXCJnb2thc2UubWl5YXpha2kuanBcIixcbiAgICAgIFwiaHl1Z2EubWl5YXpha2kuanBcIixcbiAgICAgIFwia2Fkb2dhd2EubWl5YXpha2kuanBcIixcbiAgICAgIFwia2F3YW1pbmFtaS5taXlhemFraS5qcFwiLFxuICAgICAgXCJraWpvLm1peWF6YWtpLmpwXCIsXG4gICAgICBcImtpdGFnYXdhLm1peWF6YWtpLmpwXCIsXG4gICAgICBcImtpdGFrYXRhLm1peWF6YWtpLmpwXCIsXG4gICAgICBcImtpdGF1cmEubWl5YXpha2kuanBcIixcbiAgICAgIFwia29iYXlhc2hpLm1peWF6YWtpLmpwXCIsXG4gICAgICBcImt1bml0b21pLm1peWF6YWtpLmpwXCIsXG4gICAgICBcImt1c2hpbWEubWl5YXpha2kuanBcIixcbiAgICAgIFwibWltYXRhLm1peWF6YWtpLmpwXCIsXG4gICAgICBcIm1peWFrb25vam8ubWl5YXpha2kuanBcIixcbiAgICAgIFwibWl5YXpha2kubWl5YXpha2kuanBcIixcbiAgICAgIFwibW9yb3RzdWthLm1peWF6YWtpLmpwXCIsXG4gICAgICBcIm5pY2hpbmFuLm1peWF6YWtpLmpwXCIsXG4gICAgICBcIm5pc2hpbWVyYS5taXlhemFraS5qcFwiLFxuICAgICAgXCJub2Jlb2thLm1peWF6YWtpLmpwXCIsXG4gICAgICBcInNhaXRvLm1peWF6YWtpLmpwXCIsXG4gICAgICBcInNoaWliYS5taXlhemFraS5qcFwiLFxuICAgICAgXCJzaGludG9taS5taXlhemFraS5qcFwiLFxuICAgICAgXCJ0YWthaGFydS5taXlhemFraS5qcFwiLFxuICAgICAgXCJ0YWthbmFiZS5taXlhemFraS5qcFwiLFxuICAgICAgXCJ0YWthemFraS5taXlhemFraS5qcFwiLFxuICAgICAgXCJ0c3Vuby5taXlhemFraS5qcFwiLFxuICAgICAgXCJhY2hpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJhZ2VtYXRzdS5uYWdhbm8uanBcIixcbiAgICAgIFwiYW5hbi5uYWdhbm8uanBcIixcbiAgICAgIFwiYW9raS5uYWdhbm8uanBcIixcbiAgICAgIFwiYXNhaGkubmFnYW5vLmpwXCIsXG4gICAgICBcImF6dW1pbm8ubmFnYW5vLmpwXCIsXG4gICAgICBcImNoaWt1aG9rdS5uYWdhbm8uanBcIixcbiAgICAgIFwiY2hpa3VtYS5uYWdhbm8uanBcIixcbiAgICAgIFwiY2hpbm8ubmFnYW5vLmpwXCIsXG4gICAgICBcImZ1amltaS5uYWdhbm8uanBcIixcbiAgICAgIFwiaGFrdWJhLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJoYXJhLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJoaXJheWEubmFnYW5vLmpwXCIsXG4gICAgICBcImlpZGEubmFnYW5vLmpwXCIsXG4gICAgICBcImlpamltYS5uYWdhbm8uanBcIixcbiAgICAgIFwiaWl5YW1hLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJpaXp1bmEubmFnYW5vLmpwXCIsXG4gICAgICBcImlrZWRhLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJpa3VzYWthLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJpbmEubmFnYW5vLmpwXCIsXG4gICAgICBcImthcnVpemF3YS5uYWdhbm8uanBcIixcbiAgICAgIFwia2F3YWthbWkubmFnYW5vLmpwXCIsXG4gICAgICBcImtpc28ubmFnYW5vLmpwXCIsXG4gICAgICBcImtpc29mdWt1c2hpbWEubmFnYW5vLmpwXCIsXG4gICAgICBcImtpdGFhaWtpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJrb21hZ2FuZS5uYWdhbm8uanBcIixcbiAgICAgIFwia29tb3JvLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJtYXRzdWthd2EubmFnYW5vLmpwXCIsXG4gICAgICBcIm1hdHN1bW90by5uYWdhbm8uanBcIixcbiAgICAgIFwibWlhc2EubmFnYW5vLmpwXCIsXG4gICAgICBcIm1pbmFtaWFpa2kubmFnYW5vLmpwXCIsXG4gICAgICBcIm1pbmFtaW1ha2kubmFnYW5vLmpwXCIsXG4gICAgICBcIm1pbmFtaW1pbm93YS5uYWdhbm8uanBcIixcbiAgICAgIFwibWlub3dhLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJtaXlhZGEubmFnYW5vLmpwXCIsXG4gICAgICBcIm1peW90YS5uYWdhbm8uanBcIixcbiAgICAgIFwibW9jaGl6dWtpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJuYWdhbm8ubmFnYW5vLmpwXCIsXG4gICAgICBcIm5hZ2F3YS5uYWdhbm8uanBcIixcbiAgICAgIFwibmFnaXNvLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJuYWthZ2F3YS5uYWdhbm8uanBcIixcbiAgICAgIFwibmFrYW5vLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJub3phd2FvbnNlbi5uYWdhbm8uanBcIixcbiAgICAgIFwib2J1c2UubmFnYW5vLmpwXCIsXG4gICAgICBcIm9nYXdhLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJva2F5YS5uYWdhbm8uanBcIixcbiAgICAgIFwib21hY2hpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJvbWkubmFnYW5vLmpwXCIsXG4gICAgICBcIm9va3V3YS5uYWdhbm8uanBcIixcbiAgICAgIFwib29zaGlrYS5uYWdhbm8uanBcIixcbiAgICAgIFwib3Rha2kubmFnYW5vLmpwXCIsXG4gICAgICBcIm90YXJpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJzYWthZS5uYWdhbm8uanBcIixcbiAgICAgIFwic2FrYWtpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJzYWt1Lm5hZ2Fuby5qcFwiLFxuICAgICAgXCJzYWt1aG8ubmFnYW5vLmpwXCIsXG4gICAgICBcInNoaW1vc3V3YS5uYWdhbm8uanBcIixcbiAgICAgIFwic2hpbmFub21hY2hpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJzaGlvamlyaS5uYWdhbm8uanBcIixcbiAgICAgIFwic3V3YS5uYWdhbm8uanBcIixcbiAgICAgIFwic3V6YWthLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJ0YWthZ2kubmFnYW5vLmpwXCIsXG4gICAgICBcInRha2Ftb3JpLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJ0YWtheWFtYS5uYWdhbm8uanBcIixcbiAgICAgIFwidGF0ZXNoaW5hLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJ0YXRzdW5vLm5hZ2Fuby5qcFwiLFxuICAgICAgXCJ0b2dha3VzaGkubmFnYW5vLmpwXCIsXG4gICAgICBcInRvZ3VyYS5uYWdhbm8uanBcIixcbiAgICAgIFwidG9taS5uYWdhbm8uanBcIixcbiAgICAgIFwidWVkYS5uYWdhbm8uanBcIixcbiAgICAgIFwid2FkYS5uYWdhbm8uanBcIixcbiAgICAgIFwieWFtYWdhdGEubmFnYW5vLmpwXCIsXG4gICAgICBcInlhbWFub3VjaGkubmFnYW5vLmpwXCIsXG4gICAgICBcInlhc2FrYS5uYWdhbm8uanBcIixcbiAgICAgIFwieWFzdW9rYS5uYWdhbm8uanBcIixcbiAgICAgIFwiY2hpaml3YS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJmdXRzdS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJnb3RvLm5hZ2FzYWtpLmpwXCIsXG4gICAgICBcImhhc2FtaS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJoaXJhZG8ubmFnYXNha2kuanBcIixcbiAgICAgIFwiaWtpLm5hZ2FzYWtpLmpwXCIsXG4gICAgICBcImlzYWhheWEubmFnYXNha2kuanBcIixcbiAgICAgIFwia2F3YXRhbmEubmFnYXNha2kuanBcIixcbiAgICAgIFwia3VjaGlub3RzdS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJtYXRzdXVyYS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJuYWdhc2FraS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJvYmFtYS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJvbXVyYS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJvc2V0by5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJzYWlrYWkubmFnYXNha2kuanBcIixcbiAgICAgIFwic2FzZWJvLm5hZ2FzYWtpLmpwXCIsXG4gICAgICBcInNlaWhpLm5hZ2FzYWtpLmpwXCIsXG4gICAgICBcInNoaW1hYmFyYS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJzaGlua2FtaWdvdG8ubmFnYXNha2kuanBcIixcbiAgICAgIFwidG9naXRzdS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJ0c3VzaGltYS5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJ1bnplbi5uYWdhc2FraS5qcFwiLFxuICAgICAgXCJhbmRvLm5hcmEuanBcIixcbiAgICAgIFwiZ29zZS5uYXJhLmpwXCIsXG4gICAgICBcImhlZ3VyaS5uYXJhLmpwXCIsXG4gICAgICBcImhpZ2FzaGl5b3NoaW5vLm5hcmEuanBcIixcbiAgICAgIFwiaWthcnVnYS5uYXJhLmpwXCIsXG4gICAgICBcImlrb21hLm5hcmEuanBcIixcbiAgICAgIFwia2FtaWtpdGF5YW1hLm5hcmEuanBcIixcbiAgICAgIFwia2FubWFraS5uYXJhLmpwXCIsXG4gICAgICBcImthc2hpYmEubmFyYS5qcFwiLFxuICAgICAgXCJrYXNoaWhhcmEubmFyYS5qcFwiLFxuICAgICAgXCJrYXRzdXJhZ2kubmFyYS5qcFwiLFxuICAgICAgXCJrYXdhaS5uYXJhLmpwXCIsXG4gICAgICBcImthd2FrYW1pLm5hcmEuanBcIixcbiAgICAgIFwia2F3YW5pc2hpLm5hcmEuanBcIixcbiAgICAgIFwia29yeW8ubmFyYS5qcFwiLFxuICAgICAgXCJrdXJvdGFraS5uYXJhLmpwXCIsXG4gICAgICBcIm1pdHN1ZS5uYXJhLmpwXCIsXG4gICAgICBcIm1peWFrZS5uYXJhLmpwXCIsXG4gICAgICBcIm5hcmEubmFyYS5qcFwiLFxuICAgICAgXCJub3NlZ2F3YS5uYXJhLmpwXCIsXG4gICAgICBcIm9qaS5uYXJhLmpwXCIsXG4gICAgICBcIm91ZGEubmFyYS5qcFwiLFxuICAgICAgXCJveW9kby5uYXJhLmpwXCIsXG4gICAgICBcInNha3VyYWkubmFyYS5qcFwiLFxuICAgICAgXCJzYW5nby5uYXJhLmpwXCIsXG4gICAgICBcInNoaW1vaWNoaS5uYXJhLmpwXCIsXG4gICAgICBcInNoaW1va2l0YXlhbWEubmFyYS5qcFwiLFxuICAgICAgXCJzaGluam8ubmFyYS5qcFwiLFxuICAgICAgXCJzb25pLm5hcmEuanBcIixcbiAgICAgIFwidGFrYXRvcmkubmFyYS5qcFwiLFxuICAgICAgXCJ0YXdhcmFtb3RvLm5hcmEuanBcIixcbiAgICAgIFwidGVua2F3YS5uYXJhLmpwXCIsXG4gICAgICBcInRlbnJpLm5hcmEuanBcIixcbiAgICAgIFwidWRhLm5hcmEuanBcIixcbiAgICAgIFwieWFtYXRva29yaXlhbWEubmFyYS5qcFwiLFxuICAgICAgXCJ5YW1hdG90YWthZGEubmFyYS5qcFwiLFxuICAgICAgXCJ5YW1hem9lLm5hcmEuanBcIixcbiAgICAgIFwieW9zaGluby5uYXJhLmpwXCIsXG4gICAgICBcImFnYS5uaWlnYXRhLmpwXCIsXG4gICAgICBcImFnYW5vLm5paWdhdGEuanBcIixcbiAgICAgIFwiZ29zZW4ubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJpdG9pZ2F3YS5uaWlnYXRhLmpwXCIsXG4gICAgICBcIml6dW1vemFraS5uaWlnYXRhLmpwXCIsXG4gICAgICBcImpvZXRzdS5uaWlnYXRhLmpwXCIsXG4gICAgICBcImthbW8ubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJrYXJpd2EubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJrYXNoaXdhemFraS5uaWlnYXRhLmpwXCIsXG4gICAgICBcIm1pbmFtaXVvbnVtYS5uaWlnYXRhLmpwXCIsXG4gICAgICBcIm1pdHN1a2UubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJtdWlrYS5uaWlnYXRhLmpwXCIsXG4gICAgICBcIm11cmFrYW1pLm5paWdhdGEuanBcIixcbiAgICAgIFwibXlva28ubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJuYWdhb2thLm5paWdhdGEuanBcIixcbiAgICAgIFwibmlpZ2F0YS5uaWlnYXRhLmpwXCIsXG4gICAgICBcIm9qaXlhLm5paWdhdGEuanBcIixcbiAgICAgIFwib21pLm5paWdhdGEuanBcIixcbiAgICAgIFwic2Fkby5uaWlnYXRhLmpwXCIsXG4gICAgICBcInNhbmpvLm5paWdhdGEuanBcIixcbiAgICAgIFwic2Vpcm8ubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJzZWlyb3UubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJzZWtpa2F3YS5uaWlnYXRhLmpwXCIsXG4gICAgICBcInNoaWJhdGEubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ0YWdhbWkubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ0YWluYWkubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ0b2NoaW8ubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ0b2thbWFjaGkubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ0c3ViYW1lLm5paWdhdGEuanBcIixcbiAgICAgIFwidHN1bmFuLm5paWdhdGEuanBcIixcbiAgICAgIFwidW9udW1hLm5paWdhdGEuanBcIixcbiAgICAgIFwieWFoaWtvLm5paWdhdGEuanBcIixcbiAgICAgIFwieW9pdGEubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJ5dXphd2EubmlpZ2F0YS5qcFwiLFxuICAgICAgXCJiZXBwdS5vaXRhLmpwXCIsXG4gICAgICBcImJ1bmdvb25vLm9pdGEuanBcIixcbiAgICAgIFwiYnVuZ290YWthZGEub2l0YS5qcFwiLFxuICAgICAgXCJoYXNhbWEub2l0YS5qcFwiLFxuICAgICAgXCJoaWppLm9pdGEuanBcIixcbiAgICAgIFwiaGltZXNoaW1hLm9pdGEuanBcIixcbiAgICAgIFwiaGl0YS5vaXRhLmpwXCIsXG4gICAgICBcImthbWl0c3VlLm9pdGEuanBcIixcbiAgICAgIFwia29rb25vZS5vaXRhLmpwXCIsXG4gICAgICBcImt1anUub2l0YS5qcFwiLFxuICAgICAgXCJrdW5pc2FraS5vaXRhLmpwXCIsXG4gICAgICBcImt1c3Uub2l0YS5qcFwiLFxuICAgICAgXCJvaXRhLm9pdGEuanBcIixcbiAgICAgIFwic2Fpa2kub2l0YS5qcFwiLFxuICAgICAgXCJ0YWtldGEub2l0YS5qcFwiLFxuICAgICAgXCJ0c3VrdW1pLm9pdGEuanBcIixcbiAgICAgIFwidXNhLm9pdGEuanBcIixcbiAgICAgIFwidXN1a2kub2l0YS5qcFwiLFxuICAgICAgXCJ5dWZ1Lm9pdGEuanBcIixcbiAgICAgIFwiYWthaXdhLm9rYXlhbWEuanBcIixcbiAgICAgIFwiYXNha3VjaGkub2theWFtYS5qcFwiLFxuICAgICAgXCJiaXplbi5va2F5YW1hLmpwXCIsXG4gICAgICBcImhheWFzaGltYS5va2F5YW1hLmpwXCIsXG4gICAgICBcImliYXJhLm9rYXlhbWEuanBcIixcbiAgICAgIFwia2FnYW1pbm8ub2theWFtYS5qcFwiLFxuICAgICAgXCJrYXNhb2thLm9rYXlhbWEuanBcIixcbiAgICAgIFwia2liaWNodW8ub2theWFtYS5qcFwiLFxuICAgICAgXCJrdW1lbmFuLm9rYXlhbWEuanBcIixcbiAgICAgIFwia3VyYXNoaWtpLm9rYXlhbWEuanBcIixcbiAgICAgIFwibWFuaXdhLm9rYXlhbWEuanBcIixcbiAgICAgIFwibWlzYWtpLm9rYXlhbWEuanBcIixcbiAgICAgIFwibmFnaS5va2F5YW1hLmpwXCIsXG4gICAgICBcIm5paW1pLm9rYXlhbWEuanBcIixcbiAgICAgIFwibmlzaGlhd2FrdXJhLm9rYXlhbWEuanBcIixcbiAgICAgIFwib2theWFtYS5va2F5YW1hLmpwXCIsXG4gICAgICBcInNhdG9zaG8ub2theWFtYS5qcFwiLFxuICAgICAgXCJzZXRvdWNoaS5va2F5YW1hLmpwXCIsXG4gICAgICBcInNoaW5qby5va2F5YW1hLmpwXCIsXG4gICAgICBcInNob28ub2theWFtYS5qcFwiLFxuICAgICAgXCJzb2phLm9rYXlhbWEuanBcIixcbiAgICAgIFwidGFrYWhhc2hpLm9rYXlhbWEuanBcIixcbiAgICAgIFwidGFtYW5vLm9rYXlhbWEuanBcIixcbiAgICAgIFwidHN1eWFtYS5va2F5YW1hLmpwXCIsXG4gICAgICBcIndha2Uub2theWFtYS5qcFwiLFxuICAgICAgXCJ5YWthZ2Uub2theWFtYS5qcFwiLFxuICAgICAgXCJhZ3VuaS5va2luYXdhLmpwXCIsXG4gICAgICBcImdpbm93YW4ub2tpbmF3YS5qcFwiLFxuICAgICAgXCJnaW5vemEub2tpbmF3YS5qcFwiLFxuICAgICAgXCJndXNoaWthbWkub2tpbmF3YS5qcFwiLFxuICAgICAgXCJoYWViYXJ1Lm9raW5hd2EuanBcIixcbiAgICAgIFwiaGlnYXNoaS5va2luYXdhLmpwXCIsXG4gICAgICBcImhpcmFyYS5va2luYXdhLmpwXCIsXG4gICAgICBcImloZXlhLm9raW5hd2EuanBcIixcbiAgICAgIFwiaXNoaWdha2kub2tpbmF3YS5qcFwiLFxuICAgICAgXCJpc2hpa2F3YS5va2luYXdhLmpwXCIsXG4gICAgICBcIml0b21hbi5va2luYXdhLmpwXCIsXG4gICAgICBcIml6ZW5hLm9raW5hd2EuanBcIixcbiAgICAgIFwia2FkZW5hLm9raW5hd2EuanBcIixcbiAgICAgIFwia2luLm9raW5hd2EuanBcIixcbiAgICAgIFwia2l0YWRhaXRvLm9raW5hd2EuanBcIixcbiAgICAgIFwia2l0YW5ha2FndXN1a3Uub2tpbmF3YS5qcFwiLFxuICAgICAgXCJrdW1lamltYS5va2luYXdhLmpwXCIsXG4gICAgICBcImt1bmlnYW1pLm9raW5hd2EuanBcIixcbiAgICAgIFwibWluYW1pZGFpdG8ub2tpbmF3YS5qcFwiLFxuICAgICAgXCJtb3RvYnUub2tpbmF3YS5qcFwiLFxuICAgICAgXCJuYWdvLm9raW5hd2EuanBcIixcbiAgICAgIFwibmFoYS5va2luYXdhLmpwXCIsXG4gICAgICBcIm5ha2FndXN1a3Uub2tpbmF3YS5qcFwiLFxuICAgICAgXCJuYWtpamluLm9raW5hd2EuanBcIixcbiAgICAgIFwibmFuam8ub2tpbmF3YS5qcFwiLFxuICAgICAgXCJuaXNoaWhhcmEub2tpbmF3YS5qcFwiLFxuICAgICAgXCJvZ2ltaS5va2luYXdhLmpwXCIsXG4gICAgICBcIm9raW5hd2Eub2tpbmF3YS5qcFwiLFxuICAgICAgXCJvbm5hLm9raW5hd2EuanBcIixcbiAgICAgIFwic2hpbW9qaS5va2luYXdhLmpwXCIsXG4gICAgICBcInRha2V0b21pLm9raW5hd2EuanBcIixcbiAgICAgIFwidGFyYW1hLm9raW5hd2EuanBcIixcbiAgICAgIFwidG9rYXNoaWtpLm9raW5hd2EuanBcIixcbiAgICAgIFwidG9taWd1c3VrdS5va2luYXdhLmpwXCIsXG4gICAgICBcInRvbmFraS5va2luYXdhLmpwXCIsXG4gICAgICBcInVyYXNvZS5va2luYXdhLmpwXCIsXG4gICAgICBcInVydW1hLm9raW5hd2EuanBcIixcbiAgICAgIFwieWFlc2Uub2tpbmF3YS5qcFwiLFxuICAgICAgXCJ5b21pdGFuLm9raW5hd2EuanBcIixcbiAgICAgIFwieW9uYWJhcnUub2tpbmF3YS5qcFwiLFxuICAgICAgXCJ5b25hZ3VuaS5va2luYXdhLmpwXCIsXG4gICAgICBcInphbWFtaS5va2luYXdhLmpwXCIsXG4gICAgICBcImFiZW5vLm9zYWthLmpwXCIsXG4gICAgICBcImNoaWhheWFha2FzYWthLm9zYWthLmpwXCIsXG4gICAgICBcImNodW8ub3Nha2EuanBcIixcbiAgICAgIFwiZGFpdG8ub3Nha2EuanBcIixcbiAgICAgIFwiZnVqaWlkZXJhLm9zYWthLmpwXCIsXG4gICAgICBcImhhYmlraW5vLm9zYWthLmpwXCIsXG4gICAgICBcImhhbm5hbi5vc2FrYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpb3Nha2Eub3Nha2EuanBcIixcbiAgICAgIFwiaGlnYXNoaXN1bWl5b3NoaS5vc2FrYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpeW9kb2dhd2Eub3Nha2EuanBcIixcbiAgICAgIFwiaGlyYWthdGEub3Nha2EuanBcIixcbiAgICAgIFwiaWJhcmFraS5vc2FrYS5qcFwiLFxuICAgICAgXCJpa2VkYS5vc2FrYS5qcFwiLFxuICAgICAgXCJpenVtaS5vc2FrYS5qcFwiLFxuICAgICAgXCJpenVtaW90c3Uub3Nha2EuanBcIixcbiAgICAgIFwiaXp1bWlzYW5vLm9zYWthLmpwXCIsXG4gICAgICBcImthZG9tYS5vc2FrYS5qcFwiLFxuICAgICAgXCJrYWl6dWthLm9zYWthLmpwXCIsXG4gICAgICBcImthbmFuLm9zYWthLmpwXCIsXG4gICAgICBcImthc2hpd2FyYS5vc2FrYS5qcFwiLFxuICAgICAgXCJrYXRhbm8ub3Nha2EuanBcIixcbiAgICAgIFwia2F3YWNoaW5hZ2Fuby5vc2FrYS5qcFwiLFxuICAgICAgXCJraXNoaXdhZGEub3Nha2EuanBcIixcbiAgICAgIFwia2l0YS5vc2FrYS5qcFwiLFxuICAgICAgXCJrdW1hdG9yaS5vc2FrYS5qcFwiLFxuICAgICAgXCJtYXRzdWJhcmEub3Nha2EuanBcIixcbiAgICAgIFwibWluYXRvLm9zYWthLmpwXCIsXG4gICAgICBcIm1pbm9oLm9zYWthLmpwXCIsXG4gICAgICBcIm1pc2FraS5vc2FrYS5qcFwiLFxuICAgICAgXCJtb3JpZ3VjaGkub3Nha2EuanBcIixcbiAgICAgIFwibmV5YWdhd2Eub3Nha2EuanBcIixcbiAgICAgIFwibmlzaGkub3Nha2EuanBcIixcbiAgICAgIFwibm9zZS5vc2FrYS5qcFwiLFxuICAgICAgXCJvc2FrYXNheWFtYS5vc2FrYS5qcFwiLFxuICAgICAgXCJzYWthaS5vc2FrYS5qcFwiLFxuICAgICAgXCJzYXlhbWEub3Nha2EuanBcIixcbiAgICAgIFwic2VubmFuLm9zYWthLmpwXCIsXG4gICAgICBcInNldHRzdS5vc2FrYS5qcFwiLFxuICAgICAgXCJzaGlqb25hd2F0ZS5vc2FrYS5qcFwiLFxuICAgICAgXCJzaGltYW1vdG8ub3Nha2EuanBcIixcbiAgICAgIFwic3VpdGEub3Nha2EuanBcIixcbiAgICAgIFwidGFkYW9rYS5vc2FrYS5qcFwiLFxuICAgICAgXCJ0YWlzaGkub3Nha2EuanBcIixcbiAgICAgIFwidGFqaXJpLm9zYWthLmpwXCIsXG4gICAgICBcInRha2Fpc2hpLm9zYWthLmpwXCIsXG4gICAgICBcInRha2F0c3VraS5vc2FrYS5qcFwiLFxuICAgICAgXCJ0b25kYWJheWFzaGkub3Nha2EuanBcIixcbiAgICAgIFwidG95b25ha2Eub3Nha2EuanBcIixcbiAgICAgIFwidG95b25vLm9zYWthLmpwXCIsXG4gICAgICBcInlhby5vc2FrYS5qcFwiLFxuICAgICAgXCJhcmlha2Uuc2FnYS5qcFwiLFxuICAgICAgXCJhcml0YS5zYWdhLmpwXCIsXG4gICAgICBcImZ1a3Vkb21pLnNhZ2EuanBcIixcbiAgICAgIFwiZ2Vua2FpLnNhZ2EuanBcIixcbiAgICAgIFwiaGFtYXRhbWEuc2FnYS5qcFwiLFxuICAgICAgXCJoaXplbi5zYWdhLmpwXCIsXG4gICAgICBcImltYXJpLnNhZ2EuanBcIixcbiAgICAgIFwia2FtaW1pbmUuc2FnYS5qcFwiLFxuICAgICAgXCJrYW56YWtpLnNhZ2EuanBcIixcbiAgICAgIFwia2FyYXRzdS5zYWdhLmpwXCIsXG4gICAgICBcImthc2hpbWEuc2FnYS5qcFwiLFxuICAgICAgXCJraXRhZ2F0YS5zYWdhLmpwXCIsXG4gICAgICBcImtpdGFoYXRhLnNhZ2EuanBcIixcbiAgICAgIFwia2l5YW1hLnNhZ2EuanBcIixcbiAgICAgIFwia291aG9rdS5zYWdhLmpwXCIsXG4gICAgICBcImt5dXJhZ2kuc2FnYS5qcFwiLFxuICAgICAgXCJuaXNoaWFyaXRhLnNhZ2EuanBcIixcbiAgICAgIFwib2dpLnNhZ2EuanBcIixcbiAgICAgIFwib21hY2hpLnNhZ2EuanBcIixcbiAgICAgIFwib3VjaGkuc2FnYS5qcFwiLFxuICAgICAgXCJzYWdhLnNhZ2EuanBcIixcbiAgICAgIFwic2hpcm9pc2hpLnNhZ2EuanBcIixcbiAgICAgIFwidGFrdS5zYWdhLmpwXCIsXG4gICAgICBcInRhcmEuc2FnYS5qcFwiLFxuICAgICAgXCJ0b3N1LnNhZ2EuanBcIixcbiAgICAgIFwieW9zaGlub2dhcmkuc2FnYS5qcFwiLFxuICAgICAgXCJhcmFrYXdhLnNhaXRhbWEuanBcIixcbiAgICAgIFwiYXNha2Euc2FpdGFtYS5qcFwiLFxuICAgICAgXCJjaGljaGlidS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImZ1amltaS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImZ1amltaW5vLnNhaXRhbWEuanBcIixcbiAgICAgIFwiZnVrYXlhLnNhaXRhbWEuanBcIixcbiAgICAgIFwiaGFubm8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJoYW55dS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImhhc3VkYS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImhhdG9nYXlhLnNhaXRhbWEuanBcIixcbiAgICAgIFwiaGF0b3lhbWEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJoaWRha2Euc2FpdGFtYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpY2hpY2hpYnUuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpbWF0c3V5YW1hLnNhaXRhbWEuanBcIixcbiAgICAgIFwiaG9uam8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJpbmEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJpcnVtYS5zYWl0YW1hLmpwXCIsXG4gICAgICBcIml3YXRzdWtpLnNhaXRhbWEuanBcIixcbiAgICAgIFwia2FtaWl6dW1pLnNhaXRhbWEuanBcIixcbiAgICAgIFwia2FtaWthd2Euc2FpdGFtYS5qcFwiLFxuICAgICAgXCJrYW1pc2F0by5zYWl0YW1hLmpwXCIsXG4gICAgICBcImthc3VrYWJlLnNhaXRhbWEuanBcIixcbiAgICAgIFwia2F3YWdvZS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImthd2FndWNoaS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImthd2FqaW1hLnNhaXRhbWEuanBcIixcbiAgICAgIFwia2F6by5zYWl0YW1hLmpwXCIsXG4gICAgICBcImtpdGFtb3RvLnNhaXRhbWEuanBcIixcbiAgICAgIFwia29zaGlnYXlhLnNhaXRhbWEuanBcIixcbiAgICAgIFwia291bm9zdS5zYWl0YW1hLmpwXCIsXG4gICAgICBcImt1a2kuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJrdW1hZ2F5YS5zYWl0YW1hLmpwXCIsXG4gICAgICBcIm1hdHN1YnVzaGkuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJtaW5hbm8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJtaXNhdG8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJtaXlhc2hpcm8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJtaXlvc2hpLnNhaXRhbWEuanBcIixcbiAgICAgIFwibW9yb3lhbWEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJuYWdhdG9yby5zYWl0YW1hLmpwXCIsXG4gICAgICBcIm5hbWVnYXdhLnNhaXRhbWEuanBcIixcbiAgICAgIFwibmlpemEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJvZ2Fuby5zYWl0YW1hLmpwXCIsXG4gICAgICBcIm9nYXdhLnNhaXRhbWEuanBcIixcbiAgICAgIFwib2dvc2Uuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJva2VnYXdhLnNhaXRhbWEuanBcIixcbiAgICAgIFwib21peWEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJvdGFraS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInJhbnphbi5zYWl0YW1hLmpwXCIsXG4gICAgICBcInJ5b2thbWkuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJzYWl0YW1hLnNhaXRhbWEuanBcIixcbiAgICAgIFwic2FrYWRvLnNhaXRhbWEuanBcIixcbiAgICAgIFwic2F0dGUuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJzYXlhbWEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJzaGlraS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInNoaXJhb2thLnNhaXRhbWEuanBcIixcbiAgICAgIFwic29rYS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInN1Z2l0by5zYWl0YW1hLmpwXCIsXG4gICAgICBcInRvZGEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ0b2tpZ2F3YS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInRva29yb3phd2Euc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ0c3VydWdhc2hpbWEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ1cmF3YS5zYWl0YW1hLmpwXCIsXG4gICAgICBcIndhcmFiaS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInlhc2hpby5zYWl0YW1hLmpwXCIsXG4gICAgICBcInlva296ZS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInlvbm8uc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ5b3JpaS5zYWl0YW1hLmpwXCIsXG4gICAgICBcInlvc2hpZGEuc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ5b3NoaWthd2Euc2FpdGFtYS5qcFwiLFxuICAgICAgXCJ5b3NoaW1pLnNhaXRhbWEuanBcIixcbiAgICAgIFwiYWlzaG8uc2hpZ2EuanBcIixcbiAgICAgIFwiZ2Ftby5zaGlnYS5qcFwiLFxuICAgICAgXCJoaWdhc2hpb21pLnNoaWdhLmpwXCIsXG4gICAgICBcImhpa29uZS5zaGlnYS5qcFwiLFxuICAgICAgXCJrb2thLnNoaWdhLmpwXCIsXG4gICAgICBcImtvbmFuLnNoaWdhLmpwXCIsXG4gICAgICBcImtvc2VpLnNoaWdhLmpwXCIsXG4gICAgICBcImtvdG8uc2hpZ2EuanBcIixcbiAgICAgIFwia3VzYXRzdS5zaGlnYS5qcFwiLFxuICAgICAgXCJtYWliYXJhLnNoaWdhLmpwXCIsXG4gICAgICBcIm1vcml5YW1hLnNoaWdhLmpwXCIsXG4gICAgICBcIm5hZ2FoYW1hLnNoaWdhLmpwXCIsXG4gICAgICBcIm5pc2hpYXphaS5zaGlnYS5qcFwiLFxuICAgICAgXCJub3RvZ2F3YS5zaGlnYS5qcFwiLFxuICAgICAgXCJvbWloYWNoaW1hbi5zaGlnYS5qcFwiLFxuICAgICAgXCJvdHN1LnNoaWdhLmpwXCIsXG4gICAgICBcInJpdHRvLnNoaWdhLmpwXCIsXG4gICAgICBcInJ5dW9oLnNoaWdhLmpwXCIsXG4gICAgICBcInRha2FzaGltYS5zaGlnYS5qcFwiLFxuICAgICAgXCJ0YWthdHN1a2kuc2hpZ2EuanBcIixcbiAgICAgIFwidG9yYWhpbWUuc2hpZ2EuanBcIixcbiAgICAgIFwidG95b3NhdG8uc2hpZ2EuanBcIixcbiAgICAgIFwieWFzdS5zaGlnYS5qcFwiLFxuICAgICAgXCJha2FnaS5zaGltYW5lLmpwXCIsXG4gICAgICBcImFtYS5zaGltYW5lLmpwXCIsXG4gICAgICBcImdvdHN1LnNoaW1hbmUuanBcIixcbiAgICAgIFwiaGFtYWRhLnNoaW1hbmUuanBcIixcbiAgICAgIFwiaGlnYXNoaWl6dW1vLnNoaW1hbmUuanBcIixcbiAgICAgIFwiaGlrYXdhLnNoaW1hbmUuanBcIixcbiAgICAgIFwiaGlraW1pLnNoaW1hbmUuanBcIixcbiAgICAgIFwiaXp1bW8uc2hpbWFuZS5qcFwiLFxuICAgICAgXCJrYWtpbm9raS5zaGltYW5lLmpwXCIsXG4gICAgICBcIm1hc3VkYS5zaGltYW5lLmpwXCIsXG4gICAgICBcIm1hdHN1ZS5zaGltYW5lLmpwXCIsXG4gICAgICBcIm1pc2F0by5zaGltYW5lLmpwXCIsXG4gICAgICBcIm5pc2hpbm9zaGltYS5zaGltYW5lLmpwXCIsXG4gICAgICBcIm9oZGEuc2hpbWFuZS5qcFwiLFxuICAgICAgXCJva2lub3NoaW1hLnNoaW1hbmUuanBcIixcbiAgICAgIFwib2t1aXp1bW8uc2hpbWFuZS5qcFwiLFxuICAgICAgXCJzaGltYW5lLnNoaW1hbmUuanBcIixcbiAgICAgIFwidGFtYXl1LnNoaW1hbmUuanBcIixcbiAgICAgIFwidHN1d2Fuby5zaGltYW5lLmpwXCIsXG4gICAgICBcInVubmFuLnNoaW1hbmUuanBcIixcbiAgICAgIFwieWFrdW1vLnNoaW1hbmUuanBcIixcbiAgICAgIFwieWFzdWdpLnNoaW1hbmUuanBcIixcbiAgICAgIFwieWF0c3VrYS5zaGltYW5lLmpwXCIsXG4gICAgICBcImFyYWkuc2hpenVva2EuanBcIixcbiAgICAgIFwiYXRhbWkuc2hpenVva2EuanBcIixcbiAgICAgIFwiZnVqaS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJmdWppZWRhLnNoaXp1b2thLmpwXCIsXG4gICAgICBcImZ1amlrYXdhLnNoaXp1b2thLmpwXCIsXG4gICAgICBcImZ1amlub21peWEuc2hpenVva2EuanBcIixcbiAgICAgIFwiZnVrdXJvaS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJnb3RlbWJhLnNoaXp1b2thLmpwXCIsXG4gICAgICBcImhhaWJhcmEuc2hpenVva2EuanBcIixcbiAgICAgIFwiaGFtYW1hdHN1LnNoaXp1b2thLmpwXCIsXG4gICAgICBcImhpZ2FzaGlpenUuc2hpenVva2EuanBcIixcbiAgICAgIFwiaXRvLnNoaXp1b2thLmpwXCIsXG4gICAgICBcIml3YXRhLnNoaXp1b2thLmpwXCIsXG4gICAgICBcIml6dS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJpenVub2t1bmkuc2hpenVva2EuanBcIixcbiAgICAgIFwia2FrZWdhd2Euc2hpenVva2EuanBcIixcbiAgICAgIFwia2FubmFtaS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJrYXdhbmVob24uc2hpenVva2EuanBcIixcbiAgICAgIFwia2F3YXp1LnNoaXp1b2thLmpwXCIsXG4gICAgICBcImtpa3VnYXdhLnNoaXp1b2thLmpwXCIsXG4gICAgICBcImtvc2FpLnNoaXp1b2thLmpwXCIsXG4gICAgICBcIm1ha2lub2hhcmEuc2hpenVva2EuanBcIixcbiAgICAgIFwibWF0c3V6YWtpLnNoaXp1b2thLmpwXCIsXG4gICAgICBcIm1pbmFtaWl6dS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJtaXNoaW1hLnNoaXp1b2thLmpwXCIsXG4gICAgICBcIm1vcmltYWNoaS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJuaXNoaWl6dS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJudW1henUuc2hpenVva2EuanBcIixcbiAgICAgIFwib21hZXpha2kuc2hpenVva2EuanBcIixcbiAgICAgIFwic2hpbWFkYS5zaGl6dW9rYS5qcFwiLFxuICAgICAgXCJzaGltaXp1LnNoaXp1b2thLmpwXCIsXG4gICAgICBcInNoaW1vZGEuc2hpenVva2EuanBcIixcbiAgICAgIFwic2hpenVva2Euc2hpenVva2EuanBcIixcbiAgICAgIFwic3Vzb25vLnNoaXp1b2thLmpwXCIsXG4gICAgICBcInlhaXp1LnNoaXp1b2thLmpwXCIsXG4gICAgICBcInlvc2hpZGEuc2hpenVva2EuanBcIixcbiAgICAgIFwiYXNoaWthZ2EudG9jaGlnaS5qcFwiLFxuICAgICAgXCJiYXRvLnRvY2hpZ2kuanBcIixcbiAgICAgIFwiaGFnYS50b2NoaWdpLmpwXCIsXG4gICAgICBcImljaGlrYWkudG9jaGlnaS5qcFwiLFxuICAgICAgXCJpd2FmdW5lLnRvY2hpZ2kuanBcIixcbiAgICAgIFwia2FtaW5va2F3YS50b2NoaWdpLmpwXCIsXG4gICAgICBcImthbnVtYS50b2NoaWdpLmpwXCIsXG4gICAgICBcImthcmFzdXlhbWEudG9jaGlnaS5qcFwiLFxuICAgICAgXCJrdXJvaXNvLnRvY2hpZ2kuanBcIixcbiAgICAgIFwibWFzaGlrby50b2NoaWdpLmpwXCIsXG4gICAgICBcIm1pYnUudG9jaGlnaS5qcFwiLFxuICAgICAgXCJtb2thLnRvY2hpZ2kuanBcIixcbiAgICAgIFwibW90ZWdpLnRvY2hpZ2kuanBcIixcbiAgICAgIFwibmFzdS50b2NoaWdpLmpwXCIsXG4gICAgICBcIm5hc3VzaGlvYmFyYS50b2NoaWdpLmpwXCIsXG4gICAgICBcIm5pa2tvLnRvY2hpZ2kuanBcIixcbiAgICAgIFwibmlzaGlrYXRhLnRvY2hpZ2kuanBcIixcbiAgICAgIFwibm9naS50b2NoaWdpLmpwXCIsXG4gICAgICBcIm9oaXJhLnRvY2hpZ2kuanBcIixcbiAgICAgIFwib2h0YXdhcmEudG9jaGlnaS5qcFwiLFxuICAgICAgXCJveWFtYS50b2NoaWdpLmpwXCIsXG4gICAgICBcInNha3VyYS50b2NoaWdpLmpwXCIsXG4gICAgICBcInNhbm8udG9jaGlnaS5qcFwiLFxuICAgICAgXCJzaGltb3RzdWtlLnRvY2hpZ2kuanBcIixcbiAgICAgIFwic2hpb3lhLnRvY2hpZ2kuanBcIixcbiAgICAgIFwidGFrYW5lemF3YS50b2NoaWdpLmpwXCIsXG4gICAgICBcInRvY2hpZ2kudG9jaGlnaS5qcFwiLFxuICAgICAgXCJ0c3VnYS50b2NoaWdpLmpwXCIsXG4gICAgICBcInVqaWllLnRvY2hpZ2kuanBcIixcbiAgICAgIFwidXRzdW5vbWl5YS50b2NoaWdpLmpwXCIsXG4gICAgICBcInlhaXRhLnRvY2hpZ2kuanBcIixcbiAgICAgIFwiYWl6dW1pLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJhbmFuLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJpY2hpYmEudG9rdXNoaW1hLmpwXCIsXG4gICAgICBcIml0YW5vLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJrYWluYW4udG9rdXNoaW1hLmpwXCIsXG4gICAgICBcImtvbWF0c3VzaGltYS50b2t1c2hpbWEuanBcIixcbiAgICAgIFwibWF0c3VzaGlnZS50b2t1c2hpbWEuanBcIixcbiAgICAgIFwibWltYS50b2t1c2hpbWEuanBcIixcbiAgICAgIFwibWluYW1pLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJtaXlvc2hpLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJtdWdpLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJuYWthZ2F3YS50b2t1c2hpbWEuanBcIixcbiAgICAgIFwibmFydXRvLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJzYW5hZ29jaGkudG9rdXNoaW1hLmpwXCIsXG4gICAgICBcInNoaXNoaWt1aS50b2t1c2hpbWEuanBcIixcbiAgICAgIFwidG9rdXNoaW1hLnRva3VzaGltYS5qcFwiLFxuICAgICAgXCJ3YWppa2kudG9rdXNoaW1hLmpwXCIsXG4gICAgICBcImFkYWNoaS50b2t5by5qcFwiLFxuICAgICAgXCJha2lydW5vLnRva3lvLmpwXCIsXG4gICAgICBcImFraXNoaW1hLnRva3lvLmpwXCIsXG4gICAgICBcImFvZ2FzaGltYS50b2t5by5qcFwiLFxuICAgICAgXCJhcmFrYXdhLnRva3lvLmpwXCIsXG4gICAgICBcImJ1bmt5by50b2t5by5qcFwiLFxuICAgICAgXCJjaGl5b2RhLnRva3lvLmpwXCIsXG4gICAgICBcImNob2Z1LnRva3lvLmpwXCIsXG4gICAgICBcImNodW8udG9reW8uanBcIixcbiAgICAgIFwiZWRvZ2F3YS50b2t5by5qcFwiLFxuICAgICAgXCJmdWNodS50b2t5by5qcFwiLFxuICAgICAgXCJmdXNzYS50b2t5by5qcFwiLFxuICAgICAgXCJoYWNoaWpvLnRva3lvLmpwXCIsXG4gICAgICBcImhhY2hpb2ppLnRva3lvLmpwXCIsXG4gICAgICBcImhhbXVyYS50b2t5by5qcFwiLFxuICAgICAgXCJoaWdhc2hpa3VydW1lLnRva3lvLmpwXCIsXG4gICAgICBcImhpZ2FzaGltdXJheWFtYS50b2t5by5qcFwiLFxuICAgICAgXCJoaWdhc2hpeWFtYXRvLnRva3lvLmpwXCIsXG4gICAgICBcImhpbm8udG9reW8uanBcIixcbiAgICAgIFwiaGlub2RlLnRva3lvLmpwXCIsXG4gICAgICBcImhpbm9oYXJhLnRva3lvLmpwXCIsXG4gICAgICBcImluYWdpLnRva3lvLmpwXCIsXG4gICAgICBcIml0YWJhc2hpLnRva3lvLmpwXCIsXG4gICAgICBcImthdHN1c2hpa2EudG9reW8uanBcIixcbiAgICAgIFwia2l0YS50b2t5by5qcFwiLFxuICAgICAgXCJraXlvc2UudG9reW8uanBcIixcbiAgICAgIFwia29kYWlyYS50b2t5by5qcFwiLFxuICAgICAgXCJrb2dhbmVpLnRva3lvLmpwXCIsXG4gICAgICBcImtva3VidW5qaS50b2t5by5qcFwiLFxuICAgICAgXCJrb21hZS50b2t5by5qcFwiLFxuICAgICAgXCJrb3RvLnRva3lvLmpwXCIsXG4gICAgICBcImtvdXp1c2hpbWEudG9reW8uanBcIixcbiAgICAgIFwia3VuaXRhY2hpLnRva3lvLmpwXCIsXG4gICAgICBcIm1hY2hpZGEudG9reW8uanBcIixcbiAgICAgIFwibWVndXJvLnRva3lvLmpwXCIsXG4gICAgICBcIm1pbmF0by50b2t5by5qcFwiLFxuICAgICAgXCJtaXRha2EudG9reW8uanBcIixcbiAgICAgIFwibWl6dWhvLnRva3lvLmpwXCIsXG4gICAgICBcIm11c2FzaGltdXJheWFtYS50b2t5by5qcFwiLFxuICAgICAgXCJtdXNhc2hpbm8udG9reW8uanBcIixcbiAgICAgIFwibmFrYW5vLnRva3lvLmpwXCIsXG4gICAgICBcIm5lcmltYS50b2t5by5qcFwiLFxuICAgICAgXCJvZ2FzYXdhcmEudG9reW8uanBcIixcbiAgICAgIFwib2t1dGFtYS50b2t5by5qcFwiLFxuICAgICAgXCJvbWUudG9reW8uanBcIixcbiAgICAgIFwib3NoaW1hLnRva3lvLmpwXCIsXG4gICAgICBcIm90YS50b2t5by5qcFwiLFxuICAgICAgXCJzZXRhZ2F5YS50b2t5by5qcFwiLFxuICAgICAgXCJzaGlidXlhLnRva3lvLmpwXCIsXG4gICAgICBcInNoaW5hZ2F3YS50b2t5by5qcFwiLFxuICAgICAgXCJzaGluanVrdS50b2t5by5qcFwiLFxuICAgICAgXCJzdWdpbmFtaS50b2t5by5qcFwiLFxuICAgICAgXCJzdW1pZGEudG9reW8uanBcIixcbiAgICAgIFwidGFjaGlrYXdhLnRva3lvLmpwXCIsXG4gICAgICBcInRhaXRvLnRva3lvLmpwXCIsXG4gICAgICBcInRhbWEudG9reW8uanBcIixcbiAgICAgIFwidG9zaGltYS50b2t5by5qcFwiLFxuICAgICAgXCJjaGl6dS50b3R0b3JpLmpwXCIsXG4gICAgICBcImhpbm8udG90dG9yaS5qcFwiLFxuICAgICAgXCJrYXdhaGFyYS50b3R0b3JpLmpwXCIsXG4gICAgICBcImtvZ2UudG90dG9yaS5qcFwiLFxuICAgICAgXCJrb3RvdXJhLnRvdHRvcmkuanBcIixcbiAgICAgIFwibWlzYXNhLnRvdHRvcmkuanBcIixcbiAgICAgIFwibmFuYnUudG90dG9yaS5qcFwiLFxuICAgICAgXCJuaWNoaW5hbi50b3R0b3JpLmpwXCIsXG4gICAgICBcInNha2FpbWluYXRvLnRvdHRvcmkuanBcIixcbiAgICAgIFwidG90dG9yaS50b3R0b3JpLmpwXCIsXG4gICAgICBcIndha2FzYS50b3R0b3JpLmpwXCIsXG4gICAgICBcInlhenUudG90dG9yaS5qcFwiLFxuICAgICAgXCJ5b25hZ28udG90dG9yaS5qcFwiLFxuICAgICAgXCJhc2FoaS50b3lhbWEuanBcIixcbiAgICAgIFwiZnVjaHUudG95YW1hLmpwXCIsXG4gICAgICBcImZ1a3VtaXRzdS50b3lhbWEuanBcIixcbiAgICAgIFwiZnVuYWhhc2hpLnRveWFtYS5qcFwiLFxuICAgICAgXCJoaW1pLnRveWFtYS5qcFwiLFxuICAgICAgXCJpbWl6dS50b3lhbWEuanBcIixcbiAgICAgIFwiaW5hbWkudG95YW1hLmpwXCIsXG4gICAgICBcImpvaGFuYS50b3lhbWEuanBcIixcbiAgICAgIFwia2FtaWljaGkudG95YW1hLmpwXCIsXG4gICAgICBcImt1cm9iZS50b3lhbWEuanBcIixcbiAgICAgIFwibmFrYW5paWthd2EudG95YW1hLmpwXCIsXG4gICAgICBcIm5hbWVyaWthd2EudG95YW1hLmpwXCIsXG4gICAgICBcIm5hbnRvLnRveWFtYS5qcFwiLFxuICAgICAgXCJueXV6ZW4udG95YW1hLmpwXCIsXG4gICAgICBcIm95YWJlLnRveWFtYS5qcFwiLFxuICAgICAgXCJ0YWlyYS50b3lhbWEuanBcIixcbiAgICAgIFwidGFrYW9rYS50b3lhbWEuanBcIixcbiAgICAgIFwidGF0ZXlhbWEudG95YW1hLmpwXCIsXG4gICAgICBcInRvZ2EudG95YW1hLmpwXCIsXG4gICAgICBcInRvbmFtaS50b3lhbWEuanBcIixcbiAgICAgIFwidG95YW1hLnRveWFtYS5qcFwiLFxuICAgICAgXCJ1bmF6dWtpLnRveWFtYS5qcFwiLFxuICAgICAgXCJ1b3p1LnRveWFtYS5qcFwiLFxuICAgICAgXCJ5YW1hZGEudG95YW1hLmpwXCIsXG4gICAgICBcImFyaWRhLndha2F5YW1hLmpwXCIsXG4gICAgICBcImFyaWRhZ2F3YS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJnb2JvLndha2F5YW1hLmpwXCIsXG4gICAgICBcImhhc2hpbW90by53YWtheWFtYS5qcFwiLFxuICAgICAgXCJoaWRha2Eud2FrYXlhbWEuanBcIixcbiAgICAgIFwiaGlyb2dhd2Eud2FrYXlhbWEuanBcIixcbiAgICAgIFwiaW5hbWkud2FrYXlhbWEuanBcIixcbiAgICAgIFwiaXdhZGUud2FrYXlhbWEuanBcIixcbiAgICAgIFwia2FpbmFuLndha2F5YW1hLmpwXCIsXG4gICAgICBcImthbWl0b25kYS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJrYXRzdXJhZ2kud2FrYXlhbWEuanBcIixcbiAgICAgIFwia2ltaW5vLndha2F5YW1hLmpwXCIsXG4gICAgICBcImtpbm9rYXdhLndha2F5YW1hLmpwXCIsXG4gICAgICBcImtpdGF5YW1hLndha2F5YW1hLmpwXCIsXG4gICAgICBcImtveWEud2FrYXlhbWEuanBcIixcbiAgICAgIFwia296YS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJrb3phZ2F3YS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJrdWRveWFtYS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJrdXNoaW1vdG8ud2FrYXlhbWEuanBcIixcbiAgICAgIFwibWloYW1hLndha2F5YW1hLmpwXCIsXG4gICAgICBcIm1pc2F0by53YWtheWFtYS5qcFwiLFxuICAgICAgXCJuYWNoaWthdHN1dXJhLndha2F5YW1hLmpwXCIsXG4gICAgICBcInNoaW5ndS53YWtheWFtYS5qcFwiLFxuICAgICAgXCJzaGlyYWhhbWEud2FrYXlhbWEuanBcIixcbiAgICAgIFwidGFpamkud2FrYXlhbWEuanBcIixcbiAgICAgIFwidGFuYWJlLndha2F5YW1hLmpwXCIsXG4gICAgICBcIndha2F5YW1hLndha2F5YW1hLmpwXCIsXG4gICAgICBcInl1YXNhLndha2F5YW1hLmpwXCIsXG4gICAgICBcInl1cmEud2FrYXlhbWEuanBcIixcbiAgICAgIFwiYXNhaGkueWFtYWdhdGEuanBcIixcbiAgICAgIFwiZnVuYWdhdGEueWFtYWdhdGEuanBcIixcbiAgICAgIFwiaGlnYXNoaW5lLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcImlpZGUueWFtYWdhdGEuanBcIixcbiAgICAgIFwia2Fob2t1LnlhbWFnYXRhLmpwXCIsXG4gICAgICBcImthbWlub3lhbWEueWFtYWdhdGEuanBcIixcbiAgICAgIFwia2FuZXlhbWEueWFtYWdhdGEuanBcIixcbiAgICAgIFwia2F3YW5pc2hpLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm1hbXVyb2dhd2EueWFtYWdhdGEuanBcIixcbiAgICAgIFwibWlrYXdhLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm11cmF5YW1hLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm5hZ2FpLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm5ha2F5YW1hLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm5hbnlvLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm5pc2hpa2F3YS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJvYmFuYXphd2EueWFtYWdhdGEuanBcIixcbiAgICAgIFwib2UueWFtYWdhdGEuanBcIixcbiAgICAgIFwib2d1bmkueWFtYWdhdGEuanBcIixcbiAgICAgIFwib2hrdXJhLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcIm9pc2hpZGEueWFtYWdhdGEuanBcIixcbiAgICAgIFwic2FnYWUueWFtYWdhdGEuanBcIixcbiAgICAgIFwic2FrYXRhLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcInNha2VnYXdhLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcInNoaW5qby55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJzaGlyYXRha2EueWFtYWdhdGEuanBcIixcbiAgICAgIFwic2hvbmFpLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcInRha2FoYXRhLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcInRlbmRvLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcInRvemF3YS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJ0c3VydW9rYS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJ5YW1hZ2F0YS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJ5YW1hbm9iZS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJ5b25lemF3YS55YW1hZ2F0YS5qcFwiLFxuICAgICAgXCJ5dXphLnlhbWFnYXRhLmpwXCIsXG4gICAgICBcImFidS55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwiaGFnaS55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwiaGlrYXJpLnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJob2Z1LnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJpd2FrdW5pLnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJrdWRhbWF0c3UueWFtYWd1Y2hpLmpwXCIsXG4gICAgICBcIm1pdG91LnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJuYWdhdG8ueWFtYWd1Y2hpLmpwXCIsXG4gICAgICBcIm9zaGltYS55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwic2hpbW9ub3Nla2kueWFtYWd1Y2hpLmpwXCIsXG4gICAgICBcInNodW5hbi55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwidGFidXNlLnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJ0b2t1eWFtYS55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwidG95b3RhLnlhbWFndWNoaS5qcFwiLFxuICAgICAgXCJ1YmUueWFtYWd1Y2hpLmpwXCIsXG4gICAgICBcInl1dS55YW1hZ3VjaGkuanBcIixcbiAgICAgIFwiY2h1by55YW1hbmFzaGkuanBcIixcbiAgICAgIFwiZG9zaGkueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcImZ1ZWZ1a2kueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcImZ1amlrYXdhLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJmdWppa2F3YWd1Y2hpa28ueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcImZ1aml5b3NoaWRhLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJoYXlha2F3YS55YW1hbmFzaGkuanBcIixcbiAgICAgIFwiaG9rdXRvLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJpY2hpa2F3YW1pc2F0by55YW1hbmFzaGkuanBcIixcbiAgICAgIFwia2FpLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJrb2Z1LnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJrb3NodS55YW1hbmFzaGkuanBcIixcbiAgICAgIFwia29zdWdlLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJtaW5hbWktYWxwcy55YW1hbmFzaGkuanBcIixcbiAgICAgIFwibWlub2J1LnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJuYWthbWljaGkueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcIm5hbmJ1LnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJuYXJ1c2F3YS55YW1hbmFzaGkuanBcIixcbiAgICAgIFwibmlyYXNha2kueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcIm5pc2hpa2F0c3VyYS55YW1hbmFzaGkuanBcIixcbiAgICAgIFwib3NoaW5vLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJvdHN1a2kueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcInNob3dhLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJ0YWJheWFtYS55YW1hbmFzaGkuanBcIixcbiAgICAgIFwidHN1cnUueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcInVlbm9oYXJhLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJ5YW1hbmFrYWtvLnlhbWFuYXNoaS5qcFwiLFxuICAgICAgXCJ5YW1hbmFzaGkueWFtYW5hc2hpLmpwXCIsXG4gICAgICBcImtlXCIsXG4gICAgICBcImFjLmtlXCIsXG4gICAgICBcImNvLmtlXCIsXG4gICAgICBcImdvLmtlXCIsXG4gICAgICBcImluZm8ua2VcIixcbiAgICAgIFwibWUua2VcIixcbiAgICAgIFwibW9iaS5rZVwiLFxuICAgICAgXCJuZS5rZVwiLFxuICAgICAgXCJvci5rZVwiLFxuICAgICAgXCJzYy5rZVwiLFxuICAgICAgXCJrZ1wiLFxuICAgICAgXCJvcmcua2dcIixcbiAgICAgIFwibmV0LmtnXCIsXG4gICAgICBcImNvbS5rZ1wiLFxuICAgICAgXCJlZHUua2dcIixcbiAgICAgIFwiZ292LmtnXCIsXG4gICAgICBcIm1pbC5rZ1wiLFxuICAgICAgXCIqLmtoXCIsXG4gICAgICBcImtpXCIsXG4gICAgICBcImVkdS5raVwiLFxuICAgICAgXCJiaXoua2lcIixcbiAgICAgIFwibmV0LmtpXCIsXG4gICAgICBcIm9yZy5raVwiLFxuICAgICAgXCJnb3Yua2lcIixcbiAgICAgIFwiaW5mby5raVwiLFxuICAgICAgXCJjb20ua2lcIixcbiAgICAgIFwia21cIixcbiAgICAgIFwib3JnLmttXCIsXG4gICAgICBcIm5vbS5rbVwiLFxuICAgICAgXCJnb3Yua21cIixcbiAgICAgIFwicHJkLmttXCIsXG4gICAgICBcInRtLmttXCIsXG4gICAgICBcImVkdS5rbVwiLFxuICAgICAgXCJtaWwua21cIixcbiAgICAgIFwiYXNzLmttXCIsXG4gICAgICBcImNvbS5rbVwiLFxuICAgICAgXCJjb29wLmttXCIsXG4gICAgICBcImFzc28ua21cIixcbiAgICAgIFwicHJlc3NlLmttXCIsXG4gICAgICBcIm1lZGVjaW4ua21cIixcbiAgICAgIFwibm90YWlyZXMua21cIixcbiAgICAgIFwicGhhcm1hY2llbnMua21cIixcbiAgICAgIFwidmV0ZXJpbmFpcmUua21cIixcbiAgICAgIFwiZ291di5rbVwiLFxuICAgICAgXCJrblwiLFxuICAgICAgXCJuZXQua25cIixcbiAgICAgIFwib3JnLmtuXCIsXG4gICAgICBcImVkdS5rblwiLFxuICAgICAgXCJnb3Yua25cIixcbiAgICAgIFwia3BcIixcbiAgICAgIFwiY29tLmtwXCIsXG4gICAgICBcImVkdS5rcFwiLFxuICAgICAgXCJnb3Yua3BcIixcbiAgICAgIFwib3JnLmtwXCIsXG4gICAgICBcInJlcC5rcFwiLFxuICAgICAgXCJ0cmEua3BcIixcbiAgICAgIFwia3JcIixcbiAgICAgIFwiYWMua3JcIixcbiAgICAgIFwiY28ua3JcIixcbiAgICAgIFwiZXMua3JcIixcbiAgICAgIFwiZ28ua3JcIixcbiAgICAgIFwiaHMua3JcIixcbiAgICAgIFwia2cua3JcIixcbiAgICAgIFwibWlsLmtyXCIsXG4gICAgICBcIm1zLmtyXCIsXG4gICAgICBcIm5lLmtyXCIsXG4gICAgICBcIm9yLmtyXCIsXG4gICAgICBcInBlLmtyXCIsXG4gICAgICBcInJlLmtyXCIsXG4gICAgICBcInNjLmtyXCIsXG4gICAgICBcImJ1c2FuLmtyXCIsXG4gICAgICBcImNodW5nYnVrLmtyXCIsXG4gICAgICBcImNodW5nbmFtLmtyXCIsXG4gICAgICBcImRhZWd1LmtyXCIsXG4gICAgICBcImRhZWplb24ua3JcIixcbiAgICAgIFwiZ2FuZ3dvbi5rclwiLFxuICAgICAgXCJnd2FuZ2p1LmtyXCIsXG4gICAgICBcImd5ZW9uZ2J1ay5rclwiLFxuICAgICAgXCJneWVvbmdnaS5rclwiLFxuICAgICAgXCJneWVvbmduYW0ua3JcIixcbiAgICAgIFwiaW5jaGVvbi5rclwiLFxuICAgICAgXCJqZWp1LmtyXCIsXG4gICAgICBcImplb25idWsua3JcIixcbiAgICAgIFwiamVvbm5hbS5rclwiLFxuICAgICAgXCJzZW91bC5rclwiLFxuICAgICAgXCJ1bHNhbi5rclwiLFxuICAgICAgXCJrd1wiLFxuICAgICAgXCJjb20ua3dcIixcbiAgICAgIFwiZWR1Lmt3XCIsXG4gICAgICBcImVtYi5rd1wiLFxuICAgICAgXCJnb3Yua3dcIixcbiAgICAgIFwiaW5kLmt3XCIsXG4gICAgICBcIm5ldC5rd1wiLFxuICAgICAgXCJvcmcua3dcIixcbiAgICAgIFwia3lcIixcbiAgICAgIFwiY29tLmt5XCIsXG4gICAgICBcImVkdS5reVwiLFxuICAgICAgXCJuZXQua3lcIixcbiAgICAgIFwib3JnLmt5XCIsXG4gICAgICBcImt6XCIsXG4gICAgICBcIm9yZy5relwiLFxuICAgICAgXCJlZHUua3pcIixcbiAgICAgIFwibmV0Lmt6XCIsXG4gICAgICBcImdvdi5relwiLFxuICAgICAgXCJtaWwua3pcIixcbiAgICAgIFwiY29tLmt6XCIsXG4gICAgICBcImxhXCIsXG4gICAgICBcImludC5sYVwiLFxuICAgICAgXCJuZXQubGFcIixcbiAgICAgIFwiaW5mby5sYVwiLFxuICAgICAgXCJlZHUubGFcIixcbiAgICAgIFwiZ292LmxhXCIsXG4gICAgICBcInBlci5sYVwiLFxuICAgICAgXCJjb20ubGFcIixcbiAgICAgIFwib3JnLmxhXCIsXG4gICAgICBcImxiXCIsXG4gICAgICBcImNvbS5sYlwiLFxuICAgICAgXCJlZHUubGJcIixcbiAgICAgIFwiZ292LmxiXCIsXG4gICAgICBcIm5ldC5sYlwiLFxuICAgICAgXCJvcmcubGJcIixcbiAgICAgIFwibGNcIixcbiAgICAgIFwiY29tLmxjXCIsXG4gICAgICBcIm5ldC5sY1wiLFxuICAgICAgXCJjby5sY1wiLFxuICAgICAgXCJvcmcubGNcIixcbiAgICAgIFwiZWR1LmxjXCIsXG4gICAgICBcImdvdi5sY1wiLFxuICAgICAgXCJsaVwiLFxuICAgICAgXCJsa1wiLFxuICAgICAgXCJnb3YubGtcIixcbiAgICAgIFwic2NoLmxrXCIsXG4gICAgICBcIm5ldC5sa1wiLFxuICAgICAgXCJpbnQubGtcIixcbiAgICAgIFwiY29tLmxrXCIsXG4gICAgICBcIm9yZy5sa1wiLFxuICAgICAgXCJlZHUubGtcIixcbiAgICAgIFwibmdvLmxrXCIsXG4gICAgICBcInNvYy5sa1wiLFxuICAgICAgXCJ3ZWIubGtcIixcbiAgICAgIFwibHRkLmxrXCIsXG4gICAgICBcImFzc24ubGtcIixcbiAgICAgIFwiZ3JwLmxrXCIsXG4gICAgICBcImhvdGVsLmxrXCIsXG4gICAgICBcImFjLmxrXCIsXG4gICAgICBcImxyXCIsXG4gICAgICBcImNvbS5sclwiLFxuICAgICAgXCJlZHUubHJcIixcbiAgICAgIFwiZ292LmxyXCIsXG4gICAgICBcIm9yZy5sclwiLFxuICAgICAgXCJuZXQubHJcIixcbiAgICAgIFwibHNcIixcbiAgICAgIFwiYWMubHNcIixcbiAgICAgIFwiYml6LmxzXCIsXG4gICAgICBcImNvLmxzXCIsXG4gICAgICBcImVkdS5sc1wiLFxuICAgICAgXCJnb3YubHNcIixcbiAgICAgIFwiaW5mby5sc1wiLFxuICAgICAgXCJuZXQubHNcIixcbiAgICAgIFwib3JnLmxzXCIsXG4gICAgICBcInNjLmxzXCIsXG4gICAgICBcImx0XCIsXG4gICAgICBcImdvdi5sdFwiLFxuICAgICAgXCJsdVwiLFxuICAgICAgXCJsdlwiLFxuICAgICAgXCJjb20ubHZcIixcbiAgICAgIFwiZWR1Lmx2XCIsXG4gICAgICBcImdvdi5sdlwiLFxuICAgICAgXCJvcmcubHZcIixcbiAgICAgIFwibWlsLmx2XCIsXG4gICAgICBcImlkLmx2XCIsXG4gICAgICBcIm5ldC5sdlwiLFxuICAgICAgXCJhc24ubHZcIixcbiAgICAgIFwiY29uZi5sdlwiLFxuICAgICAgXCJseVwiLFxuICAgICAgXCJjb20ubHlcIixcbiAgICAgIFwibmV0Lmx5XCIsXG4gICAgICBcImdvdi5seVwiLFxuICAgICAgXCJwbGMubHlcIixcbiAgICAgIFwiZWR1Lmx5XCIsXG4gICAgICBcInNjaC5seVwiLFxuICAgICAgXCJtZWQubHlcIixcbiAgICAgIFwib3JnLmx5XCIsXG4gICAgICBcImlkLmx5XCIsXG4gICAgICBcIm1hXCIsXG4gICAgICBcImNvLm1hXCIsXG4gICAgICBcIm5ldC5tYVwiLFxuICAgICAgXCJnb3YubWFcIixcbiAgICAgIFwib3JnLm1hXCIsXG4gICAgICBcImFjLm1hXCIsXG4gICAgICBcInByZXNzLm1hXCIsXG4gICAgICBcIm1jXCIsXG4gICAgICBcInRtLm1jXCIsXG4gICAgICBcImFzc28ubWNcIixcbiAgICAgIFwibWRcIixcbiAgICAgIFwibWVcIixcbiAgICAgIFwiY28ubWVcIixcbiAgICAgIFwibmV0Lm1lXCIsXG4gICAgICBcIm9yZy5tZVwiLFxuICAgICAgXCJlZHUubWVcIixcbiAgICAgIFwiYWMubWVcIixcbiAgICAgIFwiZ292Lm1lXCIsXG4gICAgICBcIml0cy5tZVwiLFxuICAgICAgXCJwcml2Lm1lXCIsXG4gICAgICBcIm1nXCIsXG4gICAgICBcIm9yZy5tZ1wiLFxuICAgICAgXCJub20ubWdcIixcbiAgICAgIFwiZ292Lm1nXCIsXG4gICAgICBcInByZC5tZ1wiLFxuICAgICAgXCJ0bS5tZ1wiLFxuICAgICAgXCJlZHUubWdcIixcbiAgICAgIFwibWlsLm1nXCIsXG4gICAgICBcImNvbS5tZ1wiLFxuICAgICAgXCJjby5tZ1wiLFxuICAgICAgXCJtaFwiLFxuICAgICAgXCJtaWxcIixcbiAgICAgIFwibWtcIixcbiAgICAgIFwiY29tLm1rXCIsXG4gICAgICBcIm9yZy5ta1wiLFxuICAgICAgXCJuZXQubWtcIixcbiAgICAgIFwiZWR1Lm1rXCIsXG4gICAgICBcImdvdi5ta1wiLFxuICAgICAgXCJpbmYubWtcIixcbiAgICAgIFwibmFtZS5ta1wiLFxuICAgICAgXCJtbFwiLFxuICAgICAgXCJjb20ubWxcIixcbiAgICAgIFwiZWR1Lm1sXCIsXG4gICAgICBcImdvdXYubWxcIixcbiAgICAgIFwiZ292Lm1sXCIsXG4gICAgICBcIm5ldC5tbFwiLFxuICAgICAgXCJvcmcubWxcIixcbiAgICAgIFwicHJlc3NlLm1sXCIsXG4gICAgICBcIioubW1cIixcbiAgICAgIFwibW5cIixcbiAgICAgIFwiZ292Lm1uXCIsXG4gICAgICBcImVkdS5tblwiLFxuICAgICAgXCJvcmcubW5cIixcbiAgICAgIFwibW9cIixcbiAgICAgIFwiY29tLm1vXCIsXG4gICAgICBcIm5ldC5tb1wiLFxuICAgICAgXCJvcmcubW9cIixcbiAgICAgIFwiZWR1Lm1vXCIsXG4gICAgICBcImdvdi5tb1wiLFxuICAgICAgXCJtb2JpXCIsXG4gICAgICBcIm1wXCIsXG4gICAgICBcIm1xXCIsXG4gICAgICBcIm1yXCIsXG4gICAgICBcImdvdi5tclwiLFxuICAgICAgXCJtc1wiLFxuICAgICAgXCJjb20ubXNcIixcbiAgICAgIFwiZWR1Lm1zXCIsXG4gICAgICBcImdvdi5tc1wiLFxuICAgICAgXCJuZXQubXNcIixcbiAgICAgIFwib3JnLm1zXCIsXG4gICAgICBcIm10XCIsXG4gICAgICBcImNvbS5tdFwiLFxuICAgICAgXCJlZHUubXRcIixcbiAgICAgIFwibmV0Lm10XCIsXG4gICAgICBcIm9yZy5tdFwiLFxuICAgICAgXCJtdVwiLFxuICAgICAgXCJjb20ubXVcIixcbiAgICAgIFwibmV0Lm11XCIsXG4gICAgICBcIm9yZy5tdVwiLFxuICAgICAgXCJnb3YubXVcIixcbiAgICAgIFwiYWMubXVcIixcbiAgICAgIFwiY28ubXVcIixcbiAgICAgIFwib3IubXVcIixcbiAgICAgIFwibXVzZXVtXCIsXG4gICAgICBcImFjYWRlbXkubXVzZXVtXCIsXG4gICAgICBcImFncmljdWx0dXJlLm11c2V1bVwiLFxuICAgICAgXCJhaXIubXVzZXVtXCIsXG4gICAgICBcImFpcmd1YXJkLm11c2V1bVwiLFxuICAgICAgXCJhbGFiYW1hLm11c2V1bVwiLFxuICAgICAgXCJhbGFza2EubXVzZXVtXCIsXG4gICAgICBcImFtYmVyLm11c2V1bVwiLFxuICAgICAgXCJhbWJ1bGFuY2UubXVzZXVtXCIsXG4gICAgICBcImFtZXJpY2FuLm11c2V1bVwiLFxuICAgICAgXCJhbWVyaWNhbmEubXVzZXVtXCIsXG4gICAgICBcImFtZXJpY2FuYW50aXF1ZXMubXVzZXVtXCIsXG4gICAgICBcImFtZXJpY2FuYXJ0Lm11c2V1bVwiLFxuICAgICAgXCJhbXN0ZXJkYW0ubXVzZXVtXCIsXG4gICAgICBcImFuZC5tdXNldW1cIixcbiAgICAgIFwiYW5uZWZyYW5rLm11c2V1bVwiLFxuICAgICAgXCJhbnRocm8ubXVzZXVtXCIsXG4gICAgICBcImFudGhyb3BvbG9neS5tdXNldW1cIixcbiAgICAgIFwiYW50aXF1ZXMubXVzZXVtXCIsXG4gICAgICBcImFxdWFyaXVtLm11c2V1bVwiLFxuICAgICAgXCJhcmJvcmV0dW0ubXVzZXVtXCIsXG4gICAgICBcImFyY2hhZW9sb2dpY2FsLm11c2V1bVwiLFxuICAgICAgXCJhcmNoYWVvbG9neS5tdXNldW1cIixcbiAgICAgIFwiYXJjaGl0ZWN0dXJlLm11c2V1bVwiLFxuICAgICAgXCJhcnQubXVzZXVtXCIsXG4gICAgICBcImFydGFuZGRlc2lnbi5tdXNldW1cIixcbiAgICAgIFwiYXJ0Y2VudGVyLm11c2V1bVwiLFxuICAgICAgXCJhcnRkZWNvLm11c2V1bVwiLFxuICAgICAgXCJhcnRlZHVjYXRpb24ubXVzZXVtXCIsXG4gICAgICBcImFydGdhbGxlcnkubXVzZXVtXCIsXG4gICAgICBcImFydHMubXVzZXVtXCIsXG4gICAgICBcImFydHNhbmRjcmFmdHMubXVzZXVtXCIsXG4gICAgICBcImFzbWF0YXJ0Lm11c2V1bVwiLFxuICAgICAgXCJhc3Nhc3NpbmF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJhc3Npc2kubXVzZXVtXCIsXG4gICAgICBcImFzc29jaWF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJhc3Ryb25vbXkubXVzZXVtXCIsXG4gICAgICBcImF0bGFudGEubXVzZXVtXCIsXG4gICAgICBcImF1c3Rpbi5tdXNldW1cIixcbiAgICAgIFwiYXVzdHJhbGlhLm11c2V1bVwiLFxuICAgICAgXCJhdXRvbW90aXZlLm11c2V1bVwiLFxuICAgICAgXCJhdmlhdGlvbi5tdXNldW1cIixcbiAgICAgIFwiYXhpcy5tdXNldW1cIixcbiAgICAgIFwiYmFkYWpvei5tdXNldW1cIixcbiAgICAgIFwiYmFnaGRhZC5tdXNldW1cIixcbiAgICAgIFwiYmFobi5tdXNldW1cIixcbiAgICAgIFwiYmFsZS5tdXNldW1cIixcbiAgICAgIFwiYmFsdGltb3JlLm11c2V1bVwiLFxuICAgICAgXCJiYXJjZWxvbmEubXVzZXVtXCIsXG4gICAgICBcImJhc2ViYWxsLm11c2V1bVwiLFxuICAgICAgXCJiYXNlbC5tdXNldW1cIixcbiAgICAgIFwiYmF0aHMubXVzZXVtXCIsXG4gICAgICBcImJhdWVybi5tdXNldW1cIixcbiAgICAgIFwiYmVhdXhhcnRzLm11c2V1bVwiLFxuICAgICAgXCJiZWVsZGVuZ2VsdWlkLm11c2V1bVwiLFxuICAgICAgXCJiZWxsZXZ1ZS5tdXNldW1cIixcbiAgICAgIFwiYmVyZ2JhdS5tdXNldW1cIixcbiAgICAgIFwiYmVya2VsZXkubXVzZXVtXCIsXG4gICAgICBcImJlcmxpbi5tdXNldW1cIixcbiAgICAgIFwiYmVybi5tdXNldW1cIixcbiAgICAgIFwiYmlibGUubXVzZXVtXCIsXG4gICAgICBcImJpbGJhby5tdXNldW1cIixcbiAgICAgIFwiYmlsbC5tdXNldW1cIixcbiAgICAgIFwiYmlyZGFydC5tdXNldW1cIixcbiAgICAgIFwiYmlydGhwbGFjZS5tdXNldW1cIixcbiAgICAgIFwiYm9ubi5tdXNldW1cIixcbiAgICAgIFwiYm9zdG9uLm11c2V1bVwiLFxuICAgICAgXCJib3RhbmljYWwubXVzZXVtXCIsXG4gICAgICBcImJvdGFuaWNhbGdhcmRlbi5tdXNldW1cIixcbiAgICAgIFwiYm90YW5pY2dhcmRlbi5tdXNldW1cIixcbiAgICAgIFwiYm90YW55Lm11c2V1bVwiLFxuICAgICAgXCJicmFuZHl3aW5ldmFsbGV5Lm11c2V1bVwiLFxuICAgICAgXCJicmFzaWwubXVzZXVtXCIsXG4gICAgICBcImJyaXN0b2wubXVzZXVtXCIsXG4gICAgICBcImJyaXRpc2gubXVzZXVtXCIsXG4gICAgICBcImJyaXRpc2hjb2x1bWJpYS5tdXNldW1cIixcbiAgICAgIFwiYnJvYWRjYXN0Lm11c2V1bVwiLFxuICAgICAgXCJicnVuZWwubXVzZXVtXCIsXG4gICAgICBcImJydXNzZWwubXVzZXVtXCIsXG4gICAgICBcImJydXNzZWxzLm11c2V1bVwiLFxuICAgICAgXCJicnV4ZWxsZXMubXVzZXVtXCIsXG4gICAgICBcImJ1aWxkaW5nLm11c2V1bVwiLFxuICAgICAgXCJidXJnaG9mLm11c2V1bVwiLFxuICAgICAgXCJidXMubXVzZXVtXCIsXG4gICAgICBcImJ1c2hleS5tdXNldW1cIixcbiAgICAgIFwiY2FkYXF1ZXMubXVzZXVtXCIsXG4gICAgICBcImNhbGlmb3JuaWEubXVzZXVtXCIsXG4gICAgICBcImNhbWJyaWRnZS5tdXNldW1cIixcbiAgICAgIFwiY2FuLm11c2V1bVwiLFxuICAgICAgXCJjYW5hZGEubXVzZXVtXCIsXG4gICAgICBcImNhcGVicmV0b24ubXVzZXVtXCIsXG4gICAgICBcImNhcnJpZXIubXVzZXVtXCIsXG4gICAgICBcImNhcnRvb25hcnQubXVzZXVtXCIsXG4gICAgICBcImNhc2FkZWxhbW9uZWRhLm11c2V1bVwiLFxuICAgICAgXCJjYXN0bGUubXVzZXVtXCIsXG4gICAgICBcImNhc3RyZXMubXVzZXVtXCIsXG4gICAgICBcImNlbHRpYy5tdXNldW1cIixcbiAgICAgIFwiY2VudGVyLm11c2V1bVwiLFxuICAgICAgXCJjaGF0dGFub29nYS5tdXNldW1cIixcbiAgICAgIFwiY2hlbHRlbmhhbS5tdXNldW1cIixcbiAgICAgIFwiY2hlc2FwZWFrZWJheS5tdXNldW1cIixcbiAgICAgIFwiY2hpY2Fnby5tdXNldW1cIixcbiAgICAgIFwiY2hpbGRyZW4ubXVzZXVtXCIsXG4gICAgICBcImNoaWxkcmVucy5tdXNldW1cIixcbiAgICAgIFwiY2hpbGRyZW5zZ2FyZGVuLm11c2V1bVwiLFxuICAgICAgXCJjaGlyb3ByYWN0aWMubXVzZXVtXCIsXG4gICAgICBcImNob2NvbGF0ZS5tdXNldW1cIixcbiAgICAgIFwiY2hyaXN0aWFuc2J1cmcubXVzZXVtXCIsXG4gICAgICBcImNpbmNpbm5hdGkubXVzZXVtXCIsXG4gICAgICBcImNpbmVtYS5tdXNldW1cIixcbiAgICAgIFwiY2lyY3VzLm11c2V1bVwiLFxuICAgICAgXCJjaXZpbGlzYXRpb24ubXVzZXVtXCIsXG4gICAgICBcImNpdmlsaXphdGlvbi5tdXNldW1cIixcbiAgICAgIFwiY2l2aWx3YXIubXVzZXVtXCIsXG4gICAgICBcImNsaW50b24ubXVzZXVtXCIsXG4gICAgICBcImNsb2NrLm11c2V1bVwiLFxuICAgICAgXCJjb2FsLm11c2V1bVwiLFxuICAgICAgXCJjb2FzdGFsZGVmZW5jZS5tdXNldW1cIixcbiAgICAgIFwiY29keS5tdXNldW1cIixcbiAgICAgIFwiY29sZHdhci5tdXNldW1cIixcbiAgICAgIFwiY29sbGVjdGlvbi5tdXNldW1cIixcbiAgICAgIFwiY29sb25pYWx3aWxsaWFtc2J1cmcubXVzZXVtXCIsXG4gICAgICBcImNvbG9yYWRvcGxhdGVhdS5tdXNldW1cIixcbiAgICAgIFwiY29sdW1iaWEubXVzZXVtXCIsXG4gICAgICBcImNvbHVtYnVzLm11c2V1bVwiLFxuICAgICAgXCJjb21tdW5pY2F0aW9uLm11c2V1bVwiLFxuICAgICAgXCJjb21tdW5pY2F0aW9ucy5tdXNldW1cIixcbiAgICAgIFwiY29tbXVuaXR5Lm11c2V1bVwiLFxuICAgICAgXCJjb21wdXRlci5tdXNldW1cIixcbiAgICAgIFwiY29tcHV0ZXJoaXN0b3J5Lm11c2V1bVwiLFxuICAgICAgXCJjb211bmljYVxceEU3XFx4RjVlcy5tdXNldW1cIixcbiAgICAgIFwiY29udGVtcG9yYXJ5Lm11c2V1bVwiLFxuICAgICAgXCJjb250ZW1wb3JhcnlhcnQubXVzZXVtXCIsXG4gICAgICBcImNvbnZlbnQubXVzZXVtXCIsXG4gICAgICBcImNvcGVuaGFnZW4ubXVzZXVtXCIsXG4gICAgICBcImNvcnBvcmF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJjb3JyZWlvcy1lLXRlbGVjb211bmljYVxceEU3XFx4RjVlcy5tdXNldW1cIixcbiAgICAgIFwiY29ydmV0dGUubXVzZXVtXCIsXG4gICAgICBcImNvc3R1bWUubXVzZXVtXCIsXG4gICAgICBcImNvdW50cnllc3RhdGUubXVzZXVtXCIsXG4gICAgICBcImNvdW50eS5tdXNldW1cIixcbiAgICAgIFwiY3JhZnRzLm11c2V1bVwiLFxuICAgICAgXCJjcmFuYnJvb2subXVzZXVtXCIsXG4gICAgICBcImNyZWF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJjdWx0dXJhbC5tdXNldW1cIixcbiAgICAgIFwiY3VsdHVyYWxjZW50ZXIubXVzZXVtXCIsXG4gICAgICBcImN1bHR1cmUubXVzZXVtXCIsXG4gICAgICBcImN5YmVyLm11c2V1bVwiLFxuICAgICAgXCJjeW1ydS5tdXNldW1cIixcbiAgICAgIFwiZGFsaS5tdXNldW1cIixcbiAgICAgIFwiZGFsbGFzLm11c2V1bVwiLFxuICAgICAgXCJkYXRhYmFzZS5tdXNldW1cIixcbiAgICAgIFwiZGRyLm11c2V1bVwiLFxuICAgICAgXCJkZWNvcmF0aXZlYXJ0cy5tdXNldW1cIixcbiAgICAgIFwiZGVsYXdhcmUubXVzZXVtXCIsXG4gICAgICBcImRlbG1lbmhvcnN0Lm11c2V1bVwiLFxuICAgICAgXCJkZW5tYXJrLm11c2V1bVwiLFxuICAgICAgXCJkZXBvdC5tdXNldW1cIixcbiAgICAgIFwiZGVzaWduLm11c2V1bVwiLFxuICAgICAgXCJkZXRyb2l0Lm11c2V1bVwiLFxuICAgICAgXCJkaW5vc2F1ci5tdXNldW1cIixcbiAgICAgIFwiZGlzY292ZXJ5Lm11c2V1bVwiLFxuICAgICAgXCJkb2xscy5tdXNldW1cIixcbiAgICAgIFwiZG9ub3N0aWEubXVzZXVtXCIsXG4gICAgICBcImR1cmhhbS5tdXNldW1cIixcbiAgICAgIFwiZWFzdGFmcmljYS5tdXNldW1cIixcbiAgICAgIFwiZWFzdGNvYXN0Lm11c2V1bVwiLFxuICAgICAgXCJlZHVjYXRpb24ubXVzZXVtXCIsXG4gICAgICBcImVkdWNhdGlvbmFsLm11c2V1bVwiLFxuICAgICAgXCJlZ3lwdGlhbi5tdXNldW1cIixcbiAgICAgIFwiZWlzZW5iYWhuLm11c2V1bVwiLFxuICAgICAgXCJlbGJ1cmcubXVzZXVtXCIsXG4gICAgICBcImVsdmVuZHJlbGwubXVzZXVtXCIsXG4gICAgICBcImVtYnJvaWRlcnkubXVzZXVtXCIsXG4gICAgICBcImVuY3ljbG9wZWRpYy5tdXNldW1cIixcbiAgICAgIFwiZW5nbGFuZC5tdXNldW1cIixcbiAgICAgIFwiZW50b21vbG9neS5tdXNldW1cIixcbiAgICAgIFwiZW52aXJvbm1lbnQubXVzZXVtXCIsXG4gICAgICBcImVudmlyb25tZW50YWxjb25zZXJ2YXRpb24ubXVzZXVtXCIsXG4gICAgICBcImVwaWxlcHN5Lm11c2V1bVwiLFxuICAgICAgXCJlc3NleC5tdXNldW1cIixcbiAgICAgIFwiZXN0YXRlLm11c2V1bVwiLFxuICAgICAgXCJldGhub2xvZ3kubXVzZXVtXCIsXG4gICAgICBcImV4ZXRlci5tdXNldW1cIixcbiAgICAgIFwiZXhoaWJpdGlvbi5tdXNldW1cIixcbiAgICAgIFwiZmFtaWx5Lm11c2V1bVwiLFxuICAgICAgXCJmYXJtLm11c2V1bVwiLFxuICAgICAgXCJmYXJtZXF1aXBtZW50Lm11c2V1bVwiLFxuICAgICAgXCJmYXJtZXJzLm11c2V1bVwiLFxuICAgICAgXCJmYXJtc3RlYWQubXVzZXVtXCIsXG4gICAgICBcImZpZWxkLm11c2V1bVwiLFxuICAgICAgXCJmaWd1ZXJlcy5tdXNldW1cIixcbiAgICAgIFwiZmlsYXRlbGlhLm11c2V1bVwiLFxuICAgICAgXCJmaWxtLm11c2V1bVwiLFxuICAgICAgXCJmaW5lYXJ0Lm11c2V1bVwiLFxuICAgICAgXCJmaW5lYXJ0cy5tdXNldW1cIixcbiAgICAgIFwiZmlubGFuZC5tdXNldW1cIixcbiAgICAgIFwiZmxhbmRlcnMubXVzZXVtXCIsXG4gICAgICBcImZsb3JpZGEubXVzZXVtXCIsXG4gICAgICBcImZvcmNlLm11c2V1bVwiLFxuICAgICAgXCJmb3J0bWlzc291bGEubXVzZXVtXCIsXG4gICAgICBcImZvcnR3b3J0aC5tdXNldW1cIixcbiAgICAgIFwiZm91bmRhdGlvbi5tdXNldW1cIixcbiAgICAgIFwiZnJhbmNhaXNlLm11c2V1bVwiLFxuICAgICAgXCJmcmFua2Z1cnQubXVzZXVtXCIsXG4gICAgICBcImZyYW56aXNrYW5lci5tdXNldW1cIixcbiAgICAgIFwiZnJlZW1hc29ucnkubXVzZXVtXCIsXG4gICAgICBcImZyZWlidXJnLm11c2V1bVwiLFxuICAgICAgXCJmcmlib3VyZy5tdXNldW1cIixcbiAgICAgIFwiZnJvZy5tdXNldW1cIixcbiAgICAgIFwiZnVuZGFjaW8ubXVzZXVtXCIsXG4gICAgICBcImZ1cm5pdHVyZS5tdXNldW1cIixcbiAgICAgIFwiZ2FsbGVyeS5tdXNldW1cIixcbiAgICAgIFwiZ2FyZGVuLm11c2V1bVwiLFxuICAgICAgXCJnYXRld2F5Lm11c2V1bVwiLFxuICAgICAgXCJnZWVsdmluY2subXVzZXVtXCIsXG4gICAgICBcImdlbW9sb2dpY2FsLm11c2V1bVwiLFxuICAgICAgXCJnZW9sb2d5Lm11c2V1bVwiLFxuICAgICAgXCJnZW9yZ2lhLm11c2V1bVwiLFxuICAgICAgXCJnaWVzc2VuLm11c2V1bVwiLFxuICAgICAgXCJnbGFzLm11c2V1bVwiLFxuICAgICAgXCJnbGFzcy5tdXNldW1cIixcbiAgICAgIFwiZ29yZ2UubXVzZXVtXCIsXG4gICAgICBcImdyYW5kcmFwaWRzLm11c2V1bVwiLFxuICAgICAgXCJncmF6Lm11c2V1bVwiLFxuICAgICAgXCJndWVybnNleS5tdXNldW1cIixcbiAgICAgIFwiaGFsbG9mZmFtZS5tdXNldW1cIixcbiAgICAgIFwiaGFtYnVyZy5tdXNldW1cIixcbiAgICAgIFwiaGFuZHNvbi5tdXNldW1cIixcbiAgICAgIFwiaGFydmVzdGNlbGVicmF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJoYXdhaWkubXVzZXVtXCIsXG4gICAgICBcImhlYWx0aC5tdXNldW1cIixcbiAgICAgIFwiaGVpbWF0dW5kdWhyZW4ubXVzZXVtXCIsXG4gICAgICBcImhlbGxhcy5tdXNldW1cIixcbiAgICAgIFwiaGVsc2lua2kubXVzZXVtXCIsXG4gICAgICBcImhlbWJ5Z2RzZm9yYnVuZC5tdXNldW1cIixcbiAgICAgIFwiaGVyaXRhZ2UubXVzZXVtXCIsXG4gICAgICBcImhpc3RvaXJlLm11c2V1bVwiLFxuICAgICAgXCJoaXN0b3JpY2FsLm11c2V1bVwiLFxuICAgICAgXCJoaXN0b3JpY2Fsc29jaWV0eS5tdXNldW1cIixcbiAgICAgIFwiaGlzdG9yaWNob3VzZXMubXVzZXVtXCIsXG4gICAgICBcImhpc3RvcmlzY2gubXVzZXVtXCIsXG4gICAgICBcImhpc3RvcmlzY2hlcy5tdXNldW1cIixcbiAgICAgIFwiaGlzdG9yeS5tdXNldW1cIixcbiAgICAgIFwiaGlzdG9yeW9mc2NpZW5jZS5tdXNldW1cIixcbiAgICAgIFwiaG9yb2xvZ3kubXVzZXVtXCIsXG4gICAgICBcImhvdXNlLm11c2V1bVwiLFxuICAgICAgXCJodW1hbml0aWVzLm11c2V1bVwiLFxuICAgICAgXCJpbGx1c3RyYXRpb24ubXVzZXVtXCIsXG4gICAgICBcImltYWdlYW5kc291bmQubXVzZXVtXCIsXG4gICAgICBcImluZGlhbi5tdXNldW1cIixcbiAgICAgIFwiaW5kaWFuYS5tdXNldW1cIixcbiAgICAgIFwiaW5kaWFuYXBvbGlzLm11c2V1bVwiLFxuICAgICAgXCJpbmRpYW5tYXJrZXQubXVzZXVtXCIsXG4gICAgICBcImludGVsbGlnZW5jZS5tdXNldW1cIixcbiAgICAgIFwiaW50ZXJhY3RpdmUubXVzZXVtXCIsXG4gICAgICBcImlyYXEubXVzZXVtXCIsXG4gICAgICBcImlyb24ubXVzZXVtXCIsXG4gICAgICBcImlzbGVvZm1hbi5tdXNldW1cIixcbiAgICAgIFwiamFtaXNvbi5tdXNldW1cIixcbiAgICAgIFwiamVmZmVyc29uLm11c2V1bVwiLFxuICAgICAgXCJqZXJ1c2FsZW0ubXVzZXVtXCIsXG4gICAgICBcImpld2VscnkubXVzZXVtXCIsXG4gICAgICBcImpld2lzaC5tdXNldW1cIixcbiAgICAgIFwiamV3aXNoYXJ0Lm11c2V1bVwiLFxuICAgICAgXCJqZmsubXVzZXVtXCIsXG4gICAgICBcImpvdXJuYWxpc20ubXVzZXVtXCIsXG4gICAgICBcImp1ZGFpY2EubXVzZXVtXCIsXG4gICAgICBcImp1ZHlnYXJsYW5kLm11c2V1bVwiLFxuICAgICAgXCJqdWVkaXNjaGVzLm11c2V1bVwiLFxuICAgICAgXCJqdWlmLm11c2V1bVwiLFxuICAgICAgXCJrYXJhdGUubXVzZXVtXCIsXG4gICAgICBcImthcmlrYXR1ci5tdXNldW1cIixcbiAgICAgIFwia2lkcy5tdXNldW1cIixcbiAgICAgIFwia29lYmVuaGF2bi5tdXNldW1cIixcbiAgICAgIFwia29lbG4ubXVzZXVtXCIsXG4gICAgICBcImt1bnN0Lm11c2V1bVwiLFxuICAgICAgXCJrdW5zdHNhbW1sdW5nLm11c2V1bVwiLFxuICAgICAgXCJrdW5zdHVuZGRlc2lnbi5tdXNldW1cIixcbiAgICAgIFwibGFib3IubXVzZXVtXCIsXG4gICAgICBcImxhYm91ci5tdXNldW1cIixcbiAgICAgIFwibGFqb2xsYS5tdXNldW1cIixcbiAgICAgIFwibGFuY2FzaGlyZS5tdXNldW1cIixcbiAgICAgIFwibGFuZGVzLm11c2V1bVwiLFxuICAgICAgXCJsYW5zLm11c2V1bVwiLFxuICAgICAgXCJsXFx4RTRucy5tdXNldW1cIixcbiAgICAgIFwibGFyc3Nvbi5tdXNldW1cIixcbiAgICAgIFwibGV3aXNtaWxsZXIubXVzZXVtXCIsXG4gICAgICBcImxpbmNvbG4ubXVzZXVtXCIsXG4gICAgICBcImxpbnoubXVzZXVtXCIsXG4gICAgICBcImxpdmluZy5tdXNldW1cIixcbiAgICAgIFwibGl2aW5naGlzdG9yeS5tdXNldW1cIixcbiAgICAgIFwibG9jYWxoaXN0b3J5Lm11c2V1bVwiLFxuICAgICAgXCJsb25kb24ubXVzZXVtXCIsXG4gICAgICBcImxvc2FuZ2VsZXMubXVzZXVtXCIsXG4gICAgICBcImxvdXZyZS5tdXNldW1cIixcbiAgICAgIFwibG95YWxpc3QubXVzZXVtXCIsXG4gICAgICBcImx1Y2VybmUubXVzZXVtXCIsXG4gICAgICBcImx1eGVtYm91cmcubXVzZXVtXCIsXG4gICAgICBcImx1emVybi5tdXNldW1cIixcbiAgICAgIFwibWFkLm11c2V1bVwiLFxuICAgICAgXCJtYWRyaWQubXVzZXVtXCIsXG4gICAgICBcIm1hbGxvcmNhLm11c2V1bVwiLFxuICAgICAgXCJtYW5jaGVzdGVyLm11c2V1bVwiLFxuICAgICAgXCJtYW5zaW9uLm11c2V1bVwiLFxuICAgICAgXCJtYW5zaW9ucy5tdXNldW1cIixcbiAgICAgIFwibWFueC5tdXNldW1cIixcbiAgICAgIFwibWFyYnVyZy5tdXNldW1cIixcbiAgICAgIFwibWFyaXRpbWUubXVzZXVtXCIsXG4gICAgICBcIm1hcml0aW1vLm11c2V1bVwiLFxuICAgICAgXCJtYXJ5bGFuZC5tdXNldW1cIixcbiAgICAgIFwibWFyeWxodXJzdC5tdXNldW1cIixcbiAgICAgIFwibWVkaWEubXVzZXVtXCIsXG4gICAgICBcIm1lZGljYWwubXVzZXVtXCIsXG4gICAgICBcIm1lZGl6aW5oaXN0b3Jpc2NoZXMubXVzZXVtXCIsXG4gICAgICBcIm1lZXJlcy5tdXNldW1cIixcbiAgICAgIFwibWVtb3JpYWwubXVzZXVtXCIsXG4gICAgICBcIm1lc2F2ZXJkZS5tdXNldW1cIixcbiAgICAgIFwibWljaGlnYW4ubXVzZXVtXCIsXG4gICAgICBcIm1pZGF0bGFudGljLm11c2V1bVwiLFxuICAgICAgXCJtaWxpdGFyeS5tdXNldW1cIixcbiAgICAgIFwibWlsbC5tdXNldW1cIixcbiAgICAgIFwibWluZXJzLm11c2V1bVwiLFxuICAgICAgXCJtaW5pbmcubXVzZXVtXCIsXG4gICAgICBcIm1pbm5lc290YS5tdXNldW1cIixcbiAgICAgIFwibWlzc2lsZS5tdXNldW1cIixcbiAgICAgIFwibWlzc291bGEubXVzZXVtXCIsXG4gICAgICBcIm1vZGVybi5tdXNldW1cIixcbiAgICAgIFwibW9tYS5tdXNldW1cIixcbiAgICAgIFwibW9uZXkubXVzZXVtXCIsXG4gICAgICBcIm1vbm1vdXRoLm11c2V1bVwiLFxuICAgICAgXCJtb250aWNlbGxvLm11c2V1bVwiLFxuICAgICAgXCJtb250cmVhbC5tdXNldW1cIixcbiAgICAgIFwibW9zY293Lm11c2V1bVwiLFxuICAgICAgXCJtb3RvcmN5Y2xlLm11c2V1bVwiLFxuICAgICAgXCJtdWVuY2hlbi5tdXNldW1cIixcbiAgICAgIFwibXVlbnN0ZXIubXVzZXVtXCIsXG4gICAgICBcIm11bGhvdXNlLm11c2V1bVwiLFxuICAgICAgXCJtdW5jaWUubXVzZXVtXCIsXG4gICAgICBcIm11c2VldC5tdXNldW1cIixcbiAgICAgIFwibXVzZXVtY2VudGVyLm11c2V1bVwiLFxuICAgICAgXCJtdXNldW12ZXJlbmlnaW5nLm11c2V1bVwiLFxuICAgICAgXCJtdXNpYy5tdXNldW1cIixcbiAgICAgIFwibmF0aW9uYWwubXVzZXVtXCIsXG4gICAgICBcIm5hdGlvbmFsZmlyZWFybXMubXVzZXVtXCIsXG4gICAgICBcIm5hdGlvbmFsaGVyaXRhZ2UubXVzZXVtXCIsXG4gICAgICBcIm5hdGl2ZWFtZXJpY2FuLm11c2V1bVwiLFxuICAgICAgXCJuYXR1cmFsaGlzdG9yeS5tdXNldW1cIixcbiAgICAgIFwibmF0dXJhbGhpc3RvcnltdXNldW0ubXVzZXVtXCIsXG4gICAgICBcIm5hdHVyYWxzY2llbmNlcy5tdXNldW1cIixcbiAgICAgIFwibmF0dXJlLm11c2V1bVwiLFxuICAgICAgXCJuYXR1cmhpc3RvcmlzY2hlcy5tdXNldW1cIixcbiAgICAgIFwibmF0dXVyd2V0ZW5zY2hhcHBlbi5tdXNldW1cIixcbiAgICAgIFwibmF1bWJ1cmcubXVzZXVtXCIsXG4gICAgICBcIm5hdmFsLm11c2V1bVwiLFxuICAgICAgXCJuZWJyYXNrYS5tdXNldW1cIixcbiAgICAgIFwibmV1ZXMubXVzZXVtXCIsXG4gICAgICBcIm5ld2hhbXBzaGlyZS5tdXNldW1cIixcbiAgICAgIFwibmV3amVyc2V5Lm11c2V1bVwiLFxuICAgICAgXCJuZXdtZXhpY28ubXVzZXVtXCIsXG4gICAgICBcIm5ld3BvcnQubXVzZXVtXCIsXG4gICAgICBcIm5ld3NwYXBlci5tdXNldW1cIixcbiAgICAgIFwibmV3eW9yay5tdXNldW1cIixcbiAgICAgIFwibmllcGNlLm11c2V1bVwiLFxuICAgICAgXCJub3Jmb2xrLm11c2V1bVwiLFxuICAgICAgXCJub3J0aC5tdXNldW1cIixcbiAgICAgIFwibnJ3Lm11c2V1bVwiLFxuICAgICAgXCJueWMubXVzZXVtXCIsXG4gICAgICBcIm55bnkubXVzZXVtXCIsXG4gICAgICBcIm9jZWFub2dyYXBoaWMubXVzZXVtXCIsXG4gICAgICBcIm9jZWFub2dyYXBoaXF1ZS5tdXNldW1cIixcbiAgICAgIFwib21haGEubXVzZXVtXCIsXG4gICAgICBcIm9ubGluZS5tdXNldW1cIixcbiAgICAgIFwib250YXJpby5tdXNldW1cIixcbiAgICAgIFwib3BlbmFpci5tdXNldW1cIixcbiAgICAgIFwib3JlZ29uLm11c2V1bVwiLFxuICAgICAgXCJvcmVnb250cmFpbC5tdXNldW1cIixcbiAgICAgIFwib3RhZ28ubXVzZXVtXCIsXG4gICAgICBcIm94Zm9yZC5tdXNldW1cIixcbiAgICAgIFwicGFjaWZpYy5tdXNldW1cIixcbiAgICAgIFwicGFkZXJib3JuLm11c2V1bVwiLFxuICAgICAgXCJwYWxhY2UubXVzZXVtXCIsXG4gICAgICBcInBhbGVvLm11c2V1bVwiLFxuICAgICAgXCJwYWxtc3ByaW5ncy5tdXNldW1cIixcbiAgICAgIFwicGFuYW1hLm11c2V1bVwiLFxuICAgICAgXCJwYXJpcy5tdXNldW1cIixcbiAgICAgIFwicGFzYWRlbmEubXVzZXVtXCIsXG4gICAgICBcInBoYXJtYWN5Lm11c2V1bVwiLFxuICAgICAgXCJwaGlsYWRlbHBoaWEubXVzZXVtXCIsXG4gICAgICBcInBoaWxhZGVscGhpYWFyZWEubXVzZXVtXCIsXG4gICAgICBcInBoaWxhdGVseS5tdXNldW1cIixcbiAgICAgIFwicGhvZW5peC5tdXNldW1cIixcbiAgICAgIFwicGhvdG9ncmFwaHkubXVzZXVtXCIsXG4gICAgICBcInBpbG90cy5tdXNldW1cIixcbiAgICAgIFwicGl0dHNidXJnaC5tdXNldW1cIixcbiAgICAgIFwicGxhbmV0YXJpdW0ubXVzZXVtXCIsXG4gICAgICBcInBsYW50YXRpb24ubXVzZXVtXCIsXG4gICAgICBcInBsYW50cy5tdXNldW1cIixcbiAgICAgIFwicGxhemEubXVzZXVtXCIsXG4gICAgICBcInBvcnRhbC5tdXNldW1cIixcbiAgICAgIFwicG9ydGxhbmQubXVzZXVtXCIsXG4gICAgICBcInBvcnRsbGlnYXQubXVzZXVtXCIsXG4gICAgICBcInBvc3RzLWFuZC10ZWxlY29tbXVuaWNhdGlvbnMubXVzZXVtXCIsXG4gICAgICBcInByZXNlcnZhdGlvbi5tdXNldW1cIixcbiAgICAgIFwicHJlc2lkaW8ubXVzZXVtXCIsXG4gICAgICBcInByZXNzLm11c2V1bVwiLFxuICAgICAgXCJwcm9qZWN0Lm11c2V1bVwiLFxuICAgICAgXCJwdWJsaWMubXVzZXVtXCIsXG4gICAgICBcInB1Ym9sLm11c2V1bVwiLFxuICAgICAgXCJxdWViZWMubXVzZXVtXCIsXG4gICAgICBcInJhaWxyb2FkLm11c2V1bVwiLFxuICAgICAgXCJyYWlsd2F5Lm11c2V1bVwiLFxuICAgICAgXCJyZXNlYXJjaC5tdXNldW1cIixcbiAgICAgIFwicmVzaXN0YW5jZS5tdXNldW1cIixcbiAgICAgIFwicmlvZGVqYW5laXJvLm11c2V1bVwiLFxuICAgICAgXCJyb2NoZXN0ZXIubXVzZXVtXCIsXG4gICAgICBcInJvY2thcnQubXVzZXVtXCIsXG4gICAgICBcInJvbWEubXVzZXVtXCIsXG4gICAgICBcInJ1c3NpYS5tdXNldW1cIixcbiAgICAgIFwic2FpbnRsb3Vpcy5tdXNldW1cIixcbiAgICAgIFwic2FsZW0ubXVzZXVtXCIsXG4gICAgICBcInNhbHZhZG9yZGFsaS5tdXNldW1cIixcbiAgICAgIFwic2FsemJ1cmcubXVzZXVtXCIsXG4gICAgICBcInNhbmRpZWdvLm11c2V1bVwiLFxuICAgICAgXCJzYW5mcmFuY2lzY28ubXVzZXVtXCIsXG4gICAgICBcInNhbnRhYmFyYmFyYS5tdXNldW1cIixcbiAgICAgIFwic2FudGFjcnV6Lm11c2V1bVwiLFxuICAgICAgXCJzYW50YWZlLm11c2V1bVwiLFxuICAgICAgXCJzYXNrYXRjaGV3YW4ubXVzZXVtXCIsXG4gICAgICBcInNhdHgubXVzZXVtXCIsXG4gICAgICBcInNhdmFubmFoZ2EubXVzZXVtXCIsXG4gICAgICBcInNjaGxlc2lzY2hlcy5tdXNldW1cIixcbiAgICAgIFwic2Nob2VuYnJ1bm4ubXVzZXVtXCIsXG4gICAgICBcInNjaG9rb2xhZGVuLm11c2V1bVwiLFxuICAgICAgXCJzY2hvb2wubXVzZXVtXCIsXG4gICAgICBcInNjaHdlaXoubXVzZXVtXCIsXG4gICAgICBcInNjaWVuY2UubXVzZXVtXCIsXG4gICAgICBcInNjaWVuY2VhbmRoaXN0b3J5Lm11c2V1bVwiLFxuICAgICAgXCJzY2llbmNlYW5kaW5kdXN0cnkubXVzZXVtXCIsXG4gICAgICBcInNjaWVuY2VjZW50ZXIubXVzZXVtXCIsXG4gICAgICBcInNjaWVuY2VjZW50ZXJzLm11c2V1bVwiLFxuICAgICAgXCJzY2llbmNlLWZpY3Rpb24ubXVzZXVtXCIsXG4gICAgICBcInNjaWVuY2VoaXN0b3J5Lm11c2V1bVwiLFxuICAgICAgXCJzY2llbmNlcy5tdXNldW1cIixcbiAgICAgIFwic2NpZW5jZXNuYXR1cmVsbGVzLm11c2V1bVwiLFxuICAgICAgXCJzY290bGFuZC5tdXNldW1cIixcbiAgICAgIFwic2VhcG9ydC5tdXNldW1cIixcbiAgICAgIFwic2V0dGxlbWVudC5tdXNldW1cIixcbiAgICAgIFwic2V0dGxlcnMubXVzZXVtXCIsXG4gICAgICBcInNoZWxsLm11c2V1bVwiLFxuICAgICAgXCJzaGVyYnJvb2tlLm11c2V1bVwiLFxuICAgICAgXCJzaWJlbmlrLm11c2V1bVwiLFxuICAgICAgXCJzaWxrLm11c2V1bVwiLFxuICAgICAgXCJza2kubXVzZXVtXCIsXG4gICAgICBcInNrb2xlLm11c2V1bVwiLFxuICAgICAgXCJzb2NpZXR5Lm11c2V1bVwiLFxuICAgICAgXCJzb2xvZ25lLm11c2V1bVwiLFxuICAgICAgXCJzb3VuZGFuZHZpc2lvbi5tdXNldW1cIixcbiAgICAgIFwic291dGhjYXJvbGluYS5tdXNldW1cIixcbiAgICAgIFwic291dGh3ZXN0Lm11c2V1bVwiLFxuICAgICAgXCJzcGFjZS5tdXNldW1cIixcbiAgICAgIFwic3B5Lm11c2V1bVwiLFxuICAgICAgXCJzcXVhcmUubXVzZXVtXCIsXG4gICAgICBcInN0YWR0Lm11c2V1bVwiLFxuICAgICAgXCJzdGFsYmFucy5tdXNldW1cIixcbiAgICAgIFwic3Rhcm5iZXJnLm11c2V1bVwiLFxuICAgICAgXCJzdGF0ZS5tdXNldW1cIixcbiAgICAgIFwic3RhdGVvZmRlbGF3YXJlLm11c2V1bVwiLFxuICAgICAgXCJzdGF0aW9uLm11c2V1bVwiLFxuICAgICAgXCJzdGVhbS5tdXNldW1cIixcbiAgICAgIFwic3RlaWVybWFyay5tdXNldW1cIixcbiAgICAgIFwic3Rqb2huLm11c2V1bVwiLFxuICAgICAgXCJzdG9ja2hvbG0ubXVzZXVtXCIsXG4gICAgICBcInN0cGV0ZXJzYnVyZy5tdXNldW1cIixcbiAgICAgIFwic3R1dHRnYXJ0Lm11c2V1bVwiLFxuICAgICAgXCJzdWlzc2UubXVzZXVtXCIsXG4gICAgICBcInN1cmdlb25zaGFsbC5tdXNldW1cIixcbiAgICAgIFwic3VycmV5Lm11c2V1bVwiLFxuICAgICAgXCJzdml6emVyYS5tdXNldW1cIixcbiAgICAgIFwic3dlZGVuLm11c2V1bVwiLFxuICAgICAgXCJzeWRuZXkubXVzZXVtXCIsXG4gICAgICBcInRhbmsubXVzZXVtXCIsXG4gICAgICBcInRjbS5tdXNldW1cIixcbiAgICAgIFwidGVjaG5vbG9neS5tdXNldW1cIixcbiAgICAgIFwidGVsZWtvbW11bmlrYXRpb24ubXVzZXVtXCIsXG4gICAgICBcInRlbGV2aXNpb24ubXVzZXVtXCIsXG4gICAgICBcInRleGFzLm11c2V1bVwiLFxuICAgICAgXCJ0ZXh0aWxlLm11c2V1bVwiLFxuICAgICAgXCJ0aGVhdGVyLm11c2V1bVwiLFxuICAgICAgXCJ0aW1lLm11c2V1bVwiLFxuICAgICAgXCJ0aW1la2VlcGluZy5tdXNldW1cIixcbiAgICAgIFwidG9wb2xvZ3kubXVzZXVtXCIsXG4gICAgICBcInRvcmluby5tdXNldW1cIixcbiAgICAgIFwidG91Y2gubXVzZXVtXCIsXG4gICAgICBcInRvd24ubXVzZXVtXCIsXG4gICAgICBcInRyYW5zcG9ydC5tdXNldW1cIixcbiAgICAgIFwidHJlZS5tdXNldW1cIixcbiAgICAgIFwidHJvbGxleS5tdXNldW1cIixcbiAgICAgIFwidHJ1c3QubXVzZXVtXCIsXG4gICAgICBcInRydXN0ZWUubXVzZXVtXCIsXG4gICAgICBcInVocmVuLm11c2V1bVwiLFxuICAgICAgXCJ1bG0ubXVzZXVtXCIsXG4gICAgICBcInVuZGVyc2VhLm11c2V1bVwiLFxuICAgICAgXCJ1bml2ZXJzaXR5Lm11c2V1bVwiLFxuICAgICAgXCJ1c2EubXVzZXVtXCIsXG4gICAgICBcInVzYW50aXF1ZXMubXVzZXVtXCIsXG4gICAgICBcInVzYXJ0cy5tdXNldW1cIixcbiAgICAgIFwidXNjb3VudHJ5ZXN0YXRlLm11c2V1bVwiLFxuICAgICAgXCJ1c2N1bHR1cmUubXVzZXVtXCIsXG4gICAgICBcInVzZGVjb3JhdGl2ZWFydHMubXVzZXVtXCIsXG4gICAgICBcInVzZ2FyZGVuLm11c2V1bVwiLFxuICAgICAgXCJ1c2hpc3RvcnkubXVzZXVtXCIsXG4gICAgICBcInVzaHVhaWEubXVzZXVtXCIsXG4gICAgICBcInVzbGl2aW5naGlzdG9yeS5tdXNldW1cIixcbiAgICAgIFwidXRhaC5tdXNldW1cIixcbiAgICAgIFwidXZpYy5tdXNldW1cIixcbiAgICAgIFwidmFsbGV5Lm11c2V1bVwiLFxuICAgICAgXCJ2YW50YWEubXVzZXVtXCIsXG4gICAgICBcInZlcnNhaWxsZXMubXVzZXVtXCIsXG4gICAgICBcInZpa2luZy5tdXNldW1cIixcbiAgICAgIFwidmlsbGFnZS5tdXNldW1cIixcbiAgICAgIFwidmlyZ2luaWEubXVzZXVtXCIsXG4gICAgICBcInZpcnR1YWwubXVzZXVtXCIsXG4gICAgICBcInZpcnR1ZWwubXVzZXVtXCIsXG4gICAgICBcInZsYWFuZGVyZW4ubXVzZXVtXCIsXG4gICAgICBcInZvbGtlbmt1bmRlLm11c2V1bVwiLFxuICAgICAgXCJ3YWxlcy5tdXNldW1cIixcbiAgICAgIFwid2FsbG9uaWUubXVzZXVtXCIsXG4gICAgICBcIndhci5tdXNldW1cIixcbiAgICAgIFwid2FzaGluZ3RvbmRjLm11c2V1bVwiLFxuICAgICAgXCJ3YXRjaGFuZGNsb2NrLm11c2V1bVwiLFxuICAgICAgXCJ3YXRjaC1hbmQtY2xvY2subXVzZXVtXCIsXG4gICAgICBcIndlc3Rlcm4ubXVzZXVtXCIsXG4gICAgICBcIndlc3RmYWxlbi5tdXNldW1cIixcbiAgICAgIFwid2hhbGluZy5tdXNldW1cIixcbiAgICAgIFwid2lsZGxpZmUubXVzZXVtXCIsXG4gICAgICBcIndpbGxpYW1zYnVyZy5tdXNldW1cIixcbiAgICAgIFwid2luZG1pbGwubXVzZXVtXCIsXG4gICAgICBcIndvcmtzaG9wLm11c2V1bVwiLFxuICAgICAgXCJ5b3JrLm11c2V1bVwiLFxuICAgICAgXCJ5b3Jrc2hpcmUubXVzZXVtXCIsXG4gICAgICBcInlvc2VtaXRlLm11c2V1bVwiLFxuICAgICAgXCJ5b3V0aC5tdXNldW1cIixcbiAgICAgIFwiem9vbG9naWNhbC5tdXNldW1cIixcbiAgICAgIFwiem9vbG9neS5tdXNldW1cIixcbiAgICAgIFwiXFx1MDVEOVxcdTA1RThcXHUwNUQ1XFx1MDVFOVxcdTA1RENcXHUwNUQ5XFx1MDVERC5tdXNldW1cIixcbiAgICAgIFwiXFx1MDQzOFxcdTA0M0FcXHUwNDNFXFx1MDQzQy5tdXNldW1cIixcbiAgICAgIFwibXZcIixcbiAgICAgIFwiYWVyby5tdlwiLFxuICAgICAgXCJiaXoubXZcIixcbiAgICAgIFwiY29tLm12XCIsXG4gICAgICBcImNvb3AubXZcIixcbiAgICAgIFwiZWR1Lm12XCIsXG4gICAgICBcImdvdi5tdlwiLFxuICAgICAgXCJpbmZvLm12XCIsXG4gICAgICBcImludC5tdlwiLFxuICAgICAgXCJtaWwubXZcIixcbiAgICAgIFwibXVzZXVtLm12XCIsXG4gICAgICBcIm5hbWUubXZcIixcbiAgICAgIFwibmV0Lm12XCIsXG4gICAgICBcIm9yZy5tdlwiLFxuICAgICAgXCJwcm8ubXZcIixcbiAgICAgIFwibXdcIixcbiAgICAgIFwiYWMubXdcIixcbiAgICAgIFwiYml6Lm13XCIsXG4gICAgICBcImNvLm13XCIsXG4gICAgICBcImNvbS5td1wiLFxuICAgICAgXCJjb29wLm13XCIsXG4gICAgICBcImVkdS5td1wiLFxuICAgICAgXCJnb3YubXdcIixcbiAgICAgIFwiaW50Lm13XCIsXG4gICAgICBcIm11c2V1bS5td1wiLFxuICAgICAgXCJuZXQubXdcIixcbiAgICAgIFwib3JnLm13XCIsXG4gICAgICBcIm14XCIsXG4gICAgICBcImNvbS5teFwiLFxuICAgICAgXCJvcmcubXhcIixcbiAgICAgIFwiZ29iLm14XCIsXG4gICAgICBcImVkdS5teFwiLFxuICAgICAgXCJuZXQubXhcIixcbiAgICAgIFwibXlcIixcbiAgICAgIFwiYml6Lm15XCIsXG4gICAgICBcImNvbS5teVwiLFxuICAgICAgXCJlZHUubXlcIixcbiAgICAgIFwiZ292Lm15XCIsXG4gICAgICBcIm1pbC5teVwiLFxuICAgICAgXCJuYW1lLm15XCIsXG4gICAgICBcIm5ldC5teVwiLFxuICAgICAgXCJvcmcubXlcIixcbiAgICAgIFwibXpcIixcbiAgICAgIFwiYWMubXpcIixcbiAgICAgIFwiYWR2Lm16XCIsXG4gICAgICBcImNvLm16XCIsXG4gICAgICBcImVkdS5telwiLFxuICAgICAgXCJnb3YubXpcIixcbiAgICAgIFwibWlsLm16XCIsXG4gICAgICBcIm5ldC5telwiLFxuICAgICAgXCJvcmcubXpcIixcbiAgICAgIFwibmFcIixcbiAgICAgIFwiaW5mby5uYVwiLFxuICAgICAgXCJwcm8ubmFcIixcbiAgICAgIFwibmFtZS5uYVwiLFxuICAgICAgXCJzY2hvb2wubmFcIixcbiAgICAgIFwib3IubmFcIixcbiAgICAgIFwiZHIubmFcIixcbiAgICAgIFwidXMubmFcIixcbiAgICAgIFwibXgubmFcIixcbiAgICAgIFwiY2EubmFcIixcbiAgICAgIFwiaW4ubmFcIixcbiAgICAgIFwiY2MubmFcIixcbiAgICAgIFwidHYubmFcIixcbiAgICAgIFwid3MubmFcIixcbiAgICAgIFwibW9iaS5uYVwiLFxuICAgICAgXCJjby5uYVwiLFxuICAgICAgXCJjb20ubmFcIixcbiAgICAgIFwib3JnLm5hXCIsXG4gICAgICBcIm5hbWVcIixcbiAgICAgIFwibmNcIixcbiAgICAgIFwiYXNzby5uY1wiLFxuICAgICAgXCJub20ubmNcIixcbiAgICAgIFwibmVcIixcbiAgICAgIFwibmV0XCIsXG4gICAgICBcIm5mXCIsXG4gICAgICBcImNvbS5uZlwiLFxuICAgICAgXCJuZXQubmZcIixcbiAgICAgIFwicGVyLm5mXCIsXG4gICAgICBcInJlYy5uZlwiLFxuICAgICAgXCJ3ZWIubmZcIixcbiAgICAgIFwiYXJ0cy5uZlwiLFxuICAgICAgXCJmaXJtLm5mXCIsXG4gICAgICBcImluZm8ubmZcIixcbiAgICAgIFwib3RoZXIubmZcIixcbiAgICAgIFwic3RvcmUubmZcIixcbiAgICAgIFwibmdcIixcbiAgICAgIFwiY29tLm5nXCIsXG4gICAgICBcImVkdS5uZ1wiLFxuICAgICAgXCJnb3YubmdcIixcbiAgICAgIFwiaS5uZ1wiLFxuICAgICAgXCJtaWwubmdcIixcbiAgICAgIFwibW9iaS5uZ1wiLFxuICAgICAgXCJuYW1lLm5nXCIsXG4gICAgICBcIm5ldC5uZ1wiLFxuICAgICAgXCJvcmcubmdcIixcbiAgICAgIFwic2NoLm5nXCIsXG4gICAgICBcIm5pXCIsXG4gICAgICBcImFjLm5pXCIsXG4gICAgICBcImJpei5uaVwiLFxuICAgICAgXCJjby5uaVwiLFxuICAgICAgXCJjb20ubmlcIixcbiAgICAgIFwiZWR1Lm5pXCIsXG4gICAgICBcImdvYi5uaVwiLFxuICAgICAgXCJpbi5uaVwiLFxuICAgICAgXCJpbmZvLm5pXCIsXG4gICAgICBcImludC5uaVwiLFxuICAgICAgXCJtaWwubmlcIixcbiAgICAgIFwibmV0Lm5pXCIsXG4gICAgICBcIm5vbS5uaVwiLFxuICAgICAgXCJvcmcubmlcIixcbiAgICAgIFwid2ViLm5pXCIsXG4gICAgICBcIm5sXCIsXG4gICAgICBcIm5vXCIsXG4gICAgICBcImZocy5ub1wiLFxuICAgICAgXCJ2Z3Mubm9cIixcbiAgICAgIFwiZnlsa2VzYmlibC5ub1wiLFxuICAgICAgXCJmb2xrZWJpYmwubm9cIixcbiAgICAgIFwibXVzZXVtLm5vXCIsXG4gICAgICBcImlkcmV0dC5ub1wiLFxuICAgICAgXCJwcml2Lm5vXCIsXG4gICAgICBcIm1pbC5ub1wiLFxuICAgICAgXCJzdGF0Lm5vXCIsXG4gICAgICBcImRlcC5ub1wiLFxuICAgICAgXCJrb21tdW5lLm5vXCIsXG4gICAgICBcImhlcmFkLm5vXCIsXG4gICAgICBcImFhLm5vXCIsXG4gICAgICBcImFoLm5vXCIsXG4gICAgICBcImJ1Lm5vXCIsXG4gICAgICBcImZtLm5vXCIsXG4gICAgICBcImhsLm5vXCIsXG4gICAgICBcImhtLm5vXCIsXG4gICAgICBcImphbi1tYXllbi5ub1wiLFxuICAgICAgXCJtci5ub1wiLFxuICAgICAgXCJubC5ub1wiLFxuICAgICAgXCJudC5ub1wiLFxuICAgICAgXCJvZi5ub1wiLFxuICAgICAgXCJvbC5ub1wiLFxuICAgICAgXCJvc2xvLm5vXCIsXG4gICAgICBcInJsLm5vXCIsXG4gICAgICBcInNmLm5vXCIsXG4gICAgICBcInN0Lm5vXCIsXG4gICAgICBcInN2YWxiYXJkLm5vXCIsXG4gICAgICBcInRtLm5vXCIsXG4gICAgICBcInRyLm5vXCIsXG4gICAgICBcInZhLm5vXCIsXG4gICAgICBcInZmLm5vXCIsXG4gICAgICBcImdzLmFhLm5vXCIsXG4gICAgICBcImdzLmFoLm5vXCIsXG4gICAgICBcImdzLmJ1Lm5vXCIsXG4gICAgICBcImdzLmZtLm5vXCIsXG4gICAgICBcImdzLmhsLm5vXCIsXG4gICAgICBcImdzLmhtLm5vXCIsXG4gICAgICBcImdzLmphbi1tYXllbi5ub1wiLFxuICAgICAgXCJncy5tci5ub1wiLFxuICAgICAgXCJncy5ubC5ub1wiLFxuICAgICAgXCJncy5udC5ub1wiLFxuICAgICAgXCJncy5vZi5ub1wiLFxuICAgICAgXCJncy5vbC5ub1wiLFxuICAgICAgXCJncy5vc2xvLm5vXCIsXG4gICAgICBcImdzLnJsLm5vXCIsXG4gICAgICBcImdzLnNmLm5vXCIsXG4gICAgICBcImdzLnN0Lm5vXCIsXG4gICAgICBcImdzLnN2YWxiYXJkLm5vXCIsXG4gICAgICBcImdzLnRtLm5vXCIsXG4gICAgICBcImdzLnRyLm5vXCIsXG4gICAgICBcImdzLnZhLm5vXCIsXG4gICAgICBcImdzLnZmLm5vXCIsXG4gICAgICBcImFrcmVoYW1uLm5vXCIsXG4gICAgICBcIlxceEU1a3JlaGFtbi5ub1wiLFxuICAgICAgXCJhbGdhcmQubm9cIixcbiAgICAgIFwiXFx4RTVsZ1xceEU1cmQubm9cIixcbiAgICAgIFwiYXJuYS5ub1wiLFxuICAgICAgXCJicnVtdW5kZGFsLm5vXCIsXG4gICAgICBcImJyeW5lLm5vXCIsXG4gICAgICBcImJyb25ub3lzdW5kLm5vXCIsXG4gICAgICBcImJyXFx4RjhublxceEY4eXN1bmQubm9cIixcbiAgICAgIFwiZHJvYmFrLm5vXCIsXG4gICAgICBcImRyXFx4RjhiYWsubm9cIixcbiAgICAgIFwiZWdlcnN1bmQubm9cIixcbiAgICAgIFwiZmV0c3VuZC5ub1wiLFxuICAgICAgXCJmbG9yby5ub1wiLFxuICAgICAgXCJmbG9yXFx4Rjgubm9cIixcbiAgICAgIFwiZnJlZHJpa3N0YWQubm9cIixcbiAgICAgIFwiaG9ra3N1bmQubm9cIixcbiAgICAgIFwiaG9uZWZvc3Mubm9cIixcbiAgICAgIFwiaFxceEY4bmVmb3NzLm5vXCIsXG4gICAgICBcImplc3NoZWltLm5vXCIsXG4gICAgICBcImpvcnBlbGFuZC5ub1wiLFxuICAgICAgXCJqXFx4RjhycGVsYW5kLm5vXCIsXG4gICAgICBcImtpcmtlbmVzLm5vXCIsXG4gICAgICBcImtvcGVydmlrLm5vXCIsXG4gICAgICBcImtyb2tzdGFkZWx2YS5ub1wiLFxuICAgICAgXCJsYW5nZXZhZy5ub1wiLFxuICAgICAgXCJsYW5nZXZcXHhFNWcubm9cIixcbiAgICAgIFwibGVpcnZpay5ub1wiLFxuICAgICAgXCJtam9uZGFsZW4ubm9cIixcbiAgICAgIFwibWpcXHhGOG5kYWxlbi5ub1wiLFxuICAgICAgXCJtby1pLXJhbmEubm9cIixcbiAgICAgIFwibW9zam9lbi5ub1wiLFxuICAgICAgXCJtb3NqXFx4Rjhlbi5ub1wiLFxuICAgICAgXCJuZXNvZGR0YW5nZW4ubm9cIixcbiAgICAgIFwib3JrYW5nZXIubm9cIixcbiAgICAgIFwib3NveXJvLm5vXCIsXG4gICAgICBcIm9zXFx4Rjh5cm8ubm9cIixcbiAgICAgIFwicmFob2x0Lm5vXCIsXG4gICAgICBcInJcXHhFNWhvbHQubm9cIixcbiAgICAgIFwic2FuZG5lc3Nqb2VuLm5vXCIsXG4gICAgICBcInNhbmRuZXNzalxceEY4ZW4ubm9cIixcbiAgICAgIFwic2tlZHNtb2tvcnNldC5ub1wiLFxuICAgICAgXCJzbGF0dHVtLm5vXCIsXG4gICAgICBcInNwamVsa2F2aWsubm9cIixcbiAgICAgIFwic3RhdGhlbGxlLm5vXCIsXG4gICAgICBcInN0YXZlcm4ubm9cIixcbiAgICAgIFwic3Rqb3JkYWxzaGFsc2VuLm5vXCIsXG4gICAgICBcInN0alxceEY4cmRhbHNoYWxzZW4ubm9cIixcbiAgICAgIFwidGFuYW5nZXIubm9cIixcbiAgICAgIFwidHJhbmJ5Lm5vXCIsXG4gICAgICBcInZvc3NldmFuZ2VuLm5vXCIsXG4gICAgICBcImFmam9yZC5ub1wiLFxuICAgICAgXCJcXHhFNWZqb3JkLm5vXCIsXG4gICAgICBcImFnZGVuZXMubm9cIixcbiAgICAgIFwiYWwubm9cIixcbiAgICAgIFwiXFx4RTVsLm5vXCIsXG4gICAgICBcImFsZXN1bmQubm9cIixcbiAgICAgIFwiXFx4RTVsZXN1bmQubm9cIixcbiAgICAgIFwiYWxzdGFoYXVnLm5vXCIsXG4gICAgICBcImFsdGEubm9cIixcbiAgICAgIFwiXFx4RTFsdFxceEUxLm5vXCIsXG4gICAgICBcImFsYWhlYWRqdS5ub1wiLFxuICAgICAgXCJcXHhFMWxhaGVhZGp1Lm5vXCIsXG4gICAgICBcImFsdmRhbC5ub1wiLFxuICAgICAgXCJhbWxpLm5vXCIsXG4gICAgICBcIlxceEU1bWxpLm5vXCIsXG4gICAgICBcImFtb3Qubm9cIixcbiAgICAgIFwiXFx4RTVtb3Qubm9cIixcbiAgICAgIFwiYW5kZWJ1Lm5vXCIsXG4gICAgICBcImFuZG95Lm5vXCIsXG4gICAgICBcImFuZFxceEY4eS5ub1wiLFxuICAgICAgXCJhbmRhc3VvbG8ubm9cIixcbiAgICAgIFwiYXJkYWwubm9cIixcbiAgICAgIFwiXFx4RTVyZGFsLm5vXCIsXG4gICAgICBcImFyZW1hcmsubm9cIixcbiAgICAgIFwiYXJlbmRhbC5ub1wiLFxuICAgICAgXCJcXHhFNXMubm9cIixcbiAgICAgIFwiYXNlcmFsLm5vXCIsXG4gICAgICBcIlxceEU1c2VyYWwubm9cIixcbiAgICAgIFwiYXNrZXIubm9cIixcbiAgICAgIFwiYXNraW0ubm9cIixcbiAgICAgIFwiYXNrdm9sbC5ub1wiLFxuICAgICAgXCJhc2tveS5ub1wiLFxuICAgICAgXCJhc2tcXHhGOHkubm9cIixcbiAgICAgIFwiYXNuZXMubm9cIixcbiAgICAgIFwiXFx4RTVzbmVzLm5vXCIsXG4gICAgICBcImF1ZG5lZGFsbi5ub1wiLFxuICAgICAgXCJhdWtyYS5ub1wiLFxuICAgICAgXCJhdXJlLm5vXCIsXG4gICAgICBcImF1cmxhbmQubm9cIixcbiAgICAgIFwiYXVyc2tvZy1ob2xhbmQubm9cIixcbiAgICAgIFwiYXVyc2tvZy1oXFx4RjhsYW5kLm5vXCIsXG4gICAgICBcImF1c3Rldm9sbC5ub1wiLFxuICAgICAgXCJhdXN0cmhlaW0ubm9cIixcbiAgICAgIFwiYXZlcm95Lm5vXCIsXG4gICAgICBcImF2ZXJcXHhGOHkubm9cIixcbiAgICAgIFwiYmFsZXN0cmFuZC5ub1wiLFxuICAgICAgXCJiYWxsYW5nZW4ubm9cIixcbiAgICAgIFwiYmFsYXQubm9cIixcbiAgICAgIFwiYlxceEUxbFxceEUxdC5ub1wiLFxuICAgICAgXCJiYWxzZmpvcmQubm9cIixcbiAgICAgIFwiYmFoY2NhdnVvdG5hLm5vXCIsXG4gICAgICBcImJcXHhFMWhjY2F2dW90bmEubm9cIixcbiAgICAgIFwiYmFtYmxlLm5vXCIsXG4gICAgICBcImJhcmR1Lm5vXCIsXG4gICAgICBcImJlYXJkdS5ub1wiLFxuICAgICAgXCJiZWlhcm4ubm9cIixcbiAgICAgIFwiYmFqZGRhci5ub1wiLFxuICAgICAgXCJiXFx4RTFqZGRhci5ub1wiLFxuICAgICAgXCJiYWlkYXIubm9cIixcbiAgICAgIFwiYlxceEUxaWRcXHhFMXIubm9cIixcbiAgICAgIFwiYmVyZy5ub1wiLFxuICAgICAgXCJiZXJnZW4ubm9cIixcbiAgICAgIFwiYmVybGV2YWcubm9cIixcbiAgICAgIFwiYmVybGV2XFx4RTVnLm5vXCIsXG4gICAgICBcImJlYXJhbHZhaGtpLm5vXCIsXG4gICAgICBcImJlYXJhbHZcXHhFMWhraS5ub1wiLFxuICAgICAgXCJiaW5kYWwubm9cIixcbiAgICAgIFwiYmlya2VuZXMubm9cIixcbiAgICAgIFwiYmphcmtveS5ub1wiLFxuICAgICAgXCJiamFya1xceEY4eS5ub1wiLFxuICAgICAgXCJiamVya3JlaW0ubm9cIixcbiAgICAgIFwiYmp1Z24ubm9cIixcbiAgICAgIFwiYm9kby5ub1wiLFxuICAgICAgXCJib2RcXHhGOC5ub1wiLFxuICAgICAgXCJiYWRhZGRqYS5ub1wiLFxuICAgICAgXCJiXFx4RTVkXFx4RTVkZGpcXHhFNS5ub1wiLFxuICAgICAgXCJidWRlamp1Lm5vXCIsXG4gICAgICBcImJva24ubm9cIixcbiAgICAgIFwiYnJlbWFuZ2VyLm5vXCIsXG4gICAgICBcImJyb25ub3kubm9cIixcbiAgICAgIFwiYnJcXHhGOG5uXFx4Rjh5Lm5vXCIsXG4gICAgICBcImJ5Z2xhbmQubm9cIixcbiAgICAgIFwiYnlrbGUubm9cIixcbiAgICAgIFwiYmFydW0ubm9cIixcbiAgICAgIFwiYlxceEU2cnVtLm5vXCIsXG4gICAgICBcImJvLnRlbGVtYXJrLm5vXCIsXG4gICAgICBcImJcXHhGOC50ZWxlbWFyay5ub1wiLFxuICAgICAgXCJiby5ub3JkbGFuZC5ub1wiLFxuICAgICAgXCJiXFx4Rjgubm9yZGxhbmQubm9cIixcbiAgICAgIFwiYmlldmF0Lm5vXCIsXG4gICAgICBcImJpZXZcXHhFMXQubm9cIixcbiAgICAgIFwiYm9tbG8ubm9cIixcbiAgICAgIFwiYlxceEY4bWxvLm5vXCIsXG4gICAgICBcImJhdHNmam9yZC5ub1wiLFxuICAgICAgXCJiXFx4RTV0c2Zqb3JkLm5vXCIsXG4gICAgICBcImJhaGNhdnVvdG5hLm5vXCIsXG4gICAgICBcImJcXHhFMWhjYXZ1b3RuYS5ub1wiLFxuICAgICAgXCJkb3ZyZS5ub1wiLFxuICAgICAgXCJkcmFtbWVuLm5vXCIsXG4gICAgICBcImRyYW5nZWRhbC5ub1wiLFxuICAgICAgXCJkeXJveS5ub1wiLFxuICAgICAgXCJkeXJcXHhGOHkubm9cIixcbiAgICAgIFwiZG9ubmEubm9cIixcbiAgICAgIFwiZFxceEY4bm5hLm5vXCIsXG4gICAgICBcImVpZC5ub1wiLFxuICAgICAgXCJlaWRmam9yZC5ub1wiLFxuICAgICAgXCJlaWRzYmVyZy5ub1wiLFxuICAgICAgXCJlaWRza29nLm5vXCIsXG4gICAgICBcImVpZHN2b2xsLm5vXCIsXG4gICAgICBcImVpZ2Vyc3VuZC5ub1wiLFxuICAgICAgXCJlbHZlcnVtLm5vXCIsXG4gICAgICBcImVuZWJha2subm9cIixcbiAgICAgIFwiZW5nZXJkYWwubm9cIixcbiAgICAgIFwiZXRuZS5ub1wiLFxuICAgICAgXCJldG5lZGFsLm5vXCIsXG4gICAgICBcImV2ZW5lcy5ub1wiLFxuICAgICAgXCJldmVuYXNzaS5ub1wiLFxuICAgICAgXCJldmVuXFx4RTFcXHUwMTYxXFx1MDE2MWkubm9cIixcbiAgICAgIFwiZXZqZS1vZy1ob3JubmVzLm5vXCIsXG4gICAgICBcImZhcnN1bmQubm9cIixcbiAgICAgIFwiZmF1c2tlLm5vXCIsXG4gICAgICBcImZ1b3Nza28ubm9cIixcbiAgICAgIFwiZnVvaXNrdS5ub1wiLFxuICAgICAgXCJmZWRqZS5ub1wiLFxuICAgICAgXCJmZXQubm9cIixcbiAgICAgIFwiZmlubm95Lm5vXCIsXG4gICAgICBcImZpbm5cXHhGOHkubm9cIixcbiAgICAgIFwiZml0amFyLm5vXCIsXG4gICAgICBcImZqYWxlci5ub1wiLFxuICAgICAgXCJmamVsbC5ub1wiLFxuICAgICAgXCJmbGFrc3RhZC5ub1wiLFxuICAgICAgXCJmbGF0YW5nZXIubm9cIixcbiAgICAgIFwiZmxla2tlZmpvcmQubm9cIixcbiAgICAgIFwiZmxlc2Jlcmcubm9cIixcbiAgICAgIFwiZmxvcmEubm9cIixcbiAgICAgIFwiZmxhLm5vXCIsXG4gICAgICBcImZsXFx4RTUubm9cIixcbiAgICAgIFwiZm9sbGRhbC5ub1wiLFxuICAgICAgXCJmb3JzYW5kLm5vXCIsXG4gICAgICBcImZvc25lcy5ub1wiLFxuICAgICAgXCJmcmVpLm5vXCIsXG4gICAgICBcImZyb2duLm5vXCIsXG4gICAgICBcImZyb2xhbmQubm9cIixcbiAgICAgIFwiZnJvc3RhLm5vXCIsXG4gICAgICBcImZyYW5hLm5vXCIsXG4gICAgICBcImZyXFx4RTZuYS5ub1wiLFxuICAgICAgXCJmcm95YS5ub1wiLFxuICAgICAgXCJmclxceEY4eWEubm9cIixcbiAgICAgIFwiZnVzYS5ub1wiLFxuICAgICAgXCJmeXJlc2RhbC5ub1wiLFxuICAgICAgXCJmb3JkZS5ub1wiLFxuICAgICAgXCJmXFx4RjhyZGUubm9cIixcbiAgICAgIFwiZ2FtdmlrLm5vXCIsXG4gICAgICBcImdhbmdhdmlpa2Eubm9cIixcbiAgICAgIFwiZ1xceEUxXFx1MDE0Qmdhdmlpa2Eubm9cIixcbiAgICAgIFwiZ2F1bGFyLm5vXCIsXG4gICAgICBcImdhdXNkYWwubm9cIixcbiAgICAgIFwiZ2lsZGVza2FsLm5vXCIsXG4gICAgICBcImdpbGRlc2tcXHhFNWwubm9cIixcbiAgICAgIFwiZ2lza2Uubm9cIixcbiAgICAgIFwiZ2plbW5lcy5ub1wiLFxuICAgICAgXCJnamVyZHJ1bS5ub1wiLFxuICAgICAgXCJnamVyc3RhZC5ub1wiLFxuICAgICAgXCJnamVzZGFsLm5vXCIsXG4gICAgICBcImdqb3Zpay5ub1wiLFxuICAgICAgXCJnalxceEY4dmlrLm5vXCIsXG4gICAgICBcImdsb3BwZW4ubm9cIixcbiAgICAgIFwiZ29sLm5vXCIsXG4gICAgICBcImdyYW4ubm9cIixcbiAgICAgIFwiZ3JhbmUubm9cIixcbiAgICAgIFwiZ3JhbnZpbi5ub1wiLFxuICAgICAgXCJncmF0YW5nZW4ubm9cIixcbiAgICAgIFwiZ3JpbXN0YWQubm9cIixcbiAgICAgIFwiZ3Jvbmcubm9cIixcbiAgICAgIFwia3JhYW5naGtlLm5vXCIsXG4gICAgICBcImtyXFx4RTVhbmdoa2Uubm9cIixcbiAgICAgIFwiZ3J1ZS5ub1wiLFxuICAgICAgXCJndWxlbi5ub1wiLFxuICAgICAgXCJoYWRzZWwubm9cIixcbiAgICAgIFwiaGFsZGVuLm5vXCIsXG4gICAgICBcImhhbHNhLm5vXCIsXG4gICAgICBcImhhbWFyLm5vXCIsXG4gICAgICBcImhhbWFyb3kubm9cIixcbiAgICAgIFwiaGFibWVyLm5vXCIsXG4gICAgICBcImhcXHhFMWJtZXIubm9cIixcbiAgICAgIFwiaGFwbWlyLm5vXCIsXG4gICAgICBcImhcXHhFMXBtaXIubm9cIixcbiAgICAgIFwiaGFtbWVyZmVzdC5ub1wiLFxuICAgICAgXCJoYW1tYXJmZWFzdGEubm9cIixcbiAgICAgIFwiaFxceEUxbW1cXHhFMXJmZWFzdGEubm9cIixcbiAgICAgIFwiaGFyYW0ubm9cIixcbiAgICAgIFwiaGFyZWlkLm5vXCIsXG4gICAgICBcImhhcnN0YWQubm9cIixcbiAgICAgIFwiaGFzdmlrLm5vXCIsXG4gICAgICBcImFrbm9sdW9rdGEubm9cIixcbiAgICAgIFwiXFx4RTFrXFx1MDE0Qm9sdW9rdGEubm9cIixcbiAgICAgIFwiaGF0dGZqZWxsZGFsLm5vXCIsXG4gICAgICBcImFhcmJvcnRlLm5vXCIsXG4gICAgICBcImhhdWdlc3VuZC5ub1wiLFxuICAgICAgXCJoZW1uZS5ub1wiLFxuICAgICAgXCJoZW1uZXMubm9cIixcbiAgICAgIFwiaGVtc2VkYWwubm9cIixcbiAgICAgIFwiaGVyb3kubW9yZS1vZy1yb21zZGFsLm5vXCIsXG4gICAgICBcImhlclxceEY4eS5tXFx4RjhyZS1vZy1yb21zZGFsLm5vXCIsXG4gICAgICBcImhlcm95Lm5vcmRsYW5kLm5vXCIsXG4gICAgICBcImhlclxceEY4eS5ub3JkbGFuZC5ub1wiLFxuICAgICAgXCJoaXRyYS5ub1wiLFxuICAgICAgXCJoamFydGRhbC5ub1wiLFxuICAgICAgXCJoamVsbWVsYW5kLm5vXCIsXG4gICAgICBcImhvYm9sLm5vXCIsXG4gICAgICBcImhvYlxceEY4bC5ub1wiLFxuICAgICAgXCJob2Yubm9cIixcbiAgICAgIFwiaG9sLm5vXCIsXG4gICAgICBcImhvbGUubm9cIixcbiAgICAgIFwiaG9sbWVzdHJhbmQubm9cIixcbiAgICAgIFwiaG9sdGFsZW4ubm9cIixcbiAgICAgIFwiaG9sdFxceEU1bGVuLm5vXCIsXG4gICAgICBcImhvcm5pbmRhbC5ub1wiLFxuICAgICAgXCJob3J0ZW4ubm9cIixcbiAgICAgIFwiaHVyZGFsLm5vXCIsXG4gICAgICBcImh1cnVtLm5vXCIsXG4gICAgICBcImh2YWxlci5ub1wiLFxuICAgICAgXCJoeWxsZXN0YWQubm9cIixcbiAgICAgIFwiaGFnZWJvc3RhZC5ub1wiLFxuICAgICAgXCJoXFx4RTZnZWJvc3RhZC5ub1wiLFxuICAgICAgXCJob3lhbmdlci5ub1wiLFxuICAgICAgXCJoXFx4Rjh5YW5nZXIubm9cIixcbiAgICAgIFwiaG95bGFuZGV0Lm5vXCIsXG4gICAgICBcImhcXHhGOHlsYW5kZXQubm9cIixcbiAgICAgIFwiaGEubm9cIixcbiAgICAgIFwiaFxceEU1Lm5vXCIsXG4gICAgICBcImliZXN0YWQubm9cIixcbiAgICAgIFwiaW5kZXJveS5ub1wiLFxuICAgICAgXCJpbmRlclxceEY4eS5ub1wiLFxuICAgICAgXCJpdmVsYW5kLm5vXCIsXG4gICAgICBcImpldm5ha2VyLm5vXCIsXG4gICAgICBcImpvbmRhbC5ub1wiLFxuICAgICAgXCJqb2xzdGVyLm5vXCIsXG4gICAgICBcImpcXHhGOGxzdGVyLm5vXCIsXG4gICAgICBcImthcmFzam9rLm5vXCIsXG4gICAgICBcImthcmFzam9oa2Eubm9cIixcbiAgICAgIFwia1xceEUxclxceEUxXFx1MDE2MWpvaGthLm5vXCIsXG4gICAgICBcImthcmxzb3kubm9cIixcbiAgICAgIFwiZ2Fsc2Eubm9cIixcbiAgICAgIFwiZ1xceEUxbHNcXHhFMS5ub1wiLFxuICAgICAgXCJrYXJtb3kubm9cIixcbiAgICAgIFwia2FybVxceEY4eS5ub1wiLFxuICAgICAgXCJrYXV0b2tlaW5vLm5vXCIsXG4gICAgICBcImd1b3ZkYWdlYWlkbnUubm9cIixcbiAgICAgIFwia2xlcHAubm9cIixcbiAgICAgIFwia2xhYnUubm9cIixcbiAgICAgIFwia2xcXHhFNmJ1Lm5vXCIsXG4gICAgICBcImtvbmdzYmVyZy5ub1wiLFxuICAgICAgXCJrb25nc3Zpbmdlci5ub1wiLFxuICAgICAgXCJrcmFnZXJvLm5vXCIsXG4gICAgICBcImtyYWdlclxceEY4Lm5vXCIsXG4gICAgICBcImtyaXN0aWFuc2FuZC5ub1wiLFxuICAgICAgXCJrcmlzdGlhbnN1bmQubm9cIixcbiAgICAgIFwia3JvZHNoZXJhZC5ub1wiLFxuICAgICAgXCJrclxceEY4ZHNoZXJhZC5ub1wiLFxuICAgICAgXCJrdmFsc3VuZC5ub1wiLFxuICAgICAgXCJyYWhra2VyYXZqdS5ub1wiLFxuICAgICAgXCJyXFx4RTFoa2tlclxceEUxdmp1Lm5vXCIsXG4gICAgICBcImt2YW0ubm9cIixcbiAgICAgIFwia3ZpbmVzZGFsLm5vXCIsXG4gICAgICBcImt2aW5uaGVyYWQubm9cIixcbiAgICAgIFwia3ZpdGVzZWlkLm5vXCIsXG4gICAgICBcImt2aXRzb3kubm9cIixcbiAgICAgIFwia3ZpdHNcXHhGOHkubm9cIixcbiAgICAgIFwia3ZhZmpvcmQubm9cIixcbiAgICAgIFwia3ZcXHhFNmZqb3JkLm5vXCIsXG4gICAgICBcImdpZWh0YXZ1b2F0bmEubm9cIixcbiAgICAgIFwia3ZhbmFuZ2VuLm5vXCIsXG4gICAgICBcImt2XFx4RTZuYW5nZW4ubm9cIixcbiAgICAgIFwibmF2dW90bmEubm9cIixcbiAgICAgIFwiblxceEUxdnVvdG5hLm5vXCIsXG4gICAgICBcImthZmpvcmQubm9cIixcbiAgICAgIFwia1xceEU1ZmpvcmQubm9cIixcbiAgICAgIFwiZ2FpdnVvdG5hLm5vXCIsXG4gICAgICBcImdcXHhFMWl2dW90bmEubm9cIixcbiAgICAgIFwibGFydmlrLm5vXCIsXG4gICAgICBcImxhdmFuZ2VuLm5vXCIsXG4gICAgICBcImxhdmFnaXMubm9cIixcbiAgICAgIFwibG9hYmF0Lm5vXCIsXG4gICAgICBcImxvYWJcXHhFMXQubm9cIixcbiAgICAgIFwibGViZXNieS5ub1wiLFxuICAgICAgXCJkYXZ2ZXNpaWRhLm5vXCIsXG4gICAgICBcImxlaWthbmdlci5ub1wiLFxuICAgICAgXCJsZWlyZmpvcmQubm9cIixcbiAgICAgIFwibGVrYS5ub1wiLFxuICAgICAgXCJsZWtzdmlrLm5vXCIsXG4gICAgICBcImxlbnZpay5ub1wiLFxuICAgICAgXCJsZWFuZ2F2aWlrYS5ub1wiLFxuICAgICAgXCJsZWFcXHUwMTRCZ2F2aWlrYS5ub1wiLFxuICAgICAgXCJsZXNqYS5ub1wiLFxuICAgICAgXCJsZXZhbmdlci5ub1wiLFxuICAgICAgXCJsaWVyLm5vXCIsXG4gICAgICBcImxpZXJuZS5ub1wiLFxuICAgICAgXCJsaWxsZWhhbW1lci5ub1wiLFxuICAgICAgXCJsaWxsZXNhbmQubm9cIixcbiAgICAgIFwibGluZGVzbmVzLm5vXCIsXG4gICAgICBcImxpbmRhcy5ub1wiLFxuICAgICAgXCJsaW5kXFx4RTVzLm5vXCIsXG4gICAgICBcImxvbS5ub1wiLFxuICAgICAgXCJsb3BwYS5ub1wiLFxuICAgICAgXCJsYWhwcGkubm9cIixcbiAgICAgIFwibFxceEUxaHBwaS5ub1wiLFxuICAgICAgXCJsdW5kLm5vXCIsXG4gICAgICBcImx1bm5lci5ub1wiLFxuICAgICAgXCJsdXJveS5ub1wiLFxuICAgICAgXCJsdXJcXHhGOHkubm9cIixcbiAgICAgIFwibHVzdGVyLm5vXCIsXG4gICAgICBcImx5bmdkYWwubm9cIixcbiAgICAgIFwibHluZ2VuLm5vXCIsXG4gICAgICBcIml2Z3Uubm9cIixcbiAgICAgIFwibGFyZGFsLm5vXCIsXG4gICAgICBcImxlcmRhbC5ub1wiLFxuICAgICAgXCJsXFx4RTZyZGFsLm5vXCIsXG4gICAgICBcImxvZGluZ2VuLm5vXCIsXG4gICAgICBcImxcXHhGOGRpbmdlbi5ub1wiLFxuICAgICAgXCJsb3JlbnNrb2cubm9cIixcbiAgICAgIFwibFxceEY4cmVuc2tvZy5ub1wiLFxuICAgICAgXCJsb3Rlbi5ub1wiLFxuICAgICAgXCJsXFx4Rjh0ZW4ubm9cIixcbiAgICAgIFwibWFsdmlrLm5vXCIsXG4gICAgICBcIm1hc295Lm5vXCIsXG4gICAgICBcIm1cXHhFNXNcXHhGOHkubm9cIixcbiAgICAgIFwibXVvc2F0Lm5vXCIsXG4gICAgICBcIm11b3NcXHhFMXQubm9cIixcbiAgICAgIFwibWFuZGFsLm5vXCIsXG4gICAgICBcIm1hcmtlci5ub1wiLFxuICAgICAgXCJtYXJuYXJkYWwubm9cIixcbiAgICAgIFwibWFzZmpvcmRlbi5ub1wiLFxuICAgICAgXCJtZWxhbmQubm9cIixcbiAgICAgIFwibWVsZGFsLm5vXCIsXG4gICAgICBcIm1lbGh1cy5ub1wiLFxuICAgICAgXCJtZWxveS5ub1wiLFxuICAgICAgXCJtZWxcXHhGOHkubm9cIixcbiAgICAgIFwibWVyYWtlci5ub1wiLFxuICAgICAgXCJtZXJcXHhFNWtlci5ub1wiLFxuICAgICAgXCJtb2FyZWtlLm5vXCIsXG4gICAgICBcIm1vXFx4RTVyZWtlLm5vXCIsXG4gICAgICBcIm1pZHN1bmQubm9cIixcbiAgICAgIFwibWlkdHJlLWdhdWxkYWwubm9cIixcbiAgICAgIFwibW9kYWxlbi5ub1wiLFxuICAgICAgXCJtb2R1bS5ub1wiLFxuICAgICAgXCJtb2xkZS5ub1wiLFxuICAgICAgXCJtb3NrZW5lcy5ub1wiLFxuICAgICAgXCJtb3NzLm5vXCIsXG4gICAgICBcIm1vc3Zpay5ub1wiLFxuICAgICAgXCJtYWxzZWx2Lm5vXCIsXG4gICAgICBcIm1cXHhFNWxzZWx2Lm5vXCIsXG4gICAgICBcIm1hbGF0dnVvcG1pLm5vXCIsXG4gICAgICBcIm1cXHhFMWxhdHZ1b3BtaS5ub1wiLFxuICAgICAgXCJuYW1kYWxzZWlkLm5vXCIsXG4gICAgICBcImFlanJpZS5ub1wiLFxuICAgICAgXCJuYW1zb3Mubm9cIixcbiAgICAgIFwibmFtc3Nrb2dhbi5ub1wiLFxuICAgICAgXCJuYWFtZXNqZXZ1ZW1pZS5ub1wiLFxuICAgICAgXCJuXFx4RTVcXHhFNW1lc2pldnVlbWllLm5vXCIsXG4gICAgICBcImxhYWtlc3Z1ZW1pZS5ub1wiLFxuICAgICAgXCJuYW5uZXN0YWQubm9cIixcbiAgICAgIFwibmFydmlrLm5vXCIsXG4gICAgICBcIm5hcnZpaWthLm5vXCIsXG4gICAgICBcIm5hdXN0ZGFsLm5vXCIsXG4gICAgICBcIm5lZHJlLWVpa2VyLm5vXCIsXG4gICAgICBcIm5lcy5ha2Vyc2h1cy5ub1wiLFxuICAgICAgXCJuZXMuYnVza2VydWQubm9cIixcbiAgICAgIFwibmVzbmEubm9cIixcbiAgICAgIFwibmVzb2RkZW4ubm9cIixcbiAgICAgIFwibmVzc2VieS5ub1wiLFxuICAgICAgXCJ1bmphcmdhLm5vXCIsXG4gICAgICBcInVualxceEUxcmdhLm5vXCIsXG4gICAgICBcIm5lc3NldC5ub1wiLFxuICAgICAgXCJuaXNzZWRhbC5ub1wiLFxuICAgICAgXCJuaXR0ZWRhbC5ub1wiLFxuICAgICAgXCJub3JkLWF1cmRhbC5ub1wiLFxuICAgICAgXCJub3JkLWZyb24ubm9cIixcbiAgICAgIFwibm9yZC1vZGFsLm5vXCIsXG4gICAgICBcIm5vcmRkYWwubm9cIixcbiAgICAgIFwibm9yZGthcHAubm9cIixcbiAgICAgIFwiZGF2dmVuamFyZ2Eubm9cIixcbiAgICAgIFwiZGF2dmVualxceEUxcmdhLm5vXCIsXG4gICAgICBcIm5vcmRyZS1sYW5kLm5vXCIsXG4gICAgICBcIm5vcmRyZWlzYS5ub1wiLFxuICAgICAgXCJyYWlzYS5ub1wiLFxuICAgICAgXCJyXFx4RTFpc2Eubm9cIixcbiAgICAgIFwibm9yZS1vZy11dmRhbC5ub1wiLFxuICAgICAgXCJub3RvZGRlbi5ub1wiLFxuICAgICAgXCJuYXJveS5ub1wiLFxuICAgICAgXCJuXFx4RTZyXFx4Rjh5Lm5vXCIsXG4gICAgICBcIm5vdHRlcm95Lm5vXCIsXG4gICAgICBcIm5cXHhGOHR0ZXJcXHhGOHkubm9cIixcbiAgICAgIFwib2RkYS5ub1wiLFxuICAgICAgXCJva3NuZXMubm9cIixcbiAgICAgIFwiXFx4Rjhrc25lcy5ub1wiLFxuICAgICAgXCJvcHBkYWwubm9cIixcbiAgICAgIFwib3BwZWdhcmQubm9cIixcbiAgICAgIFwib3BwZWdcXHhFNXJkLm5vXCIsXG4gICAgICBcIm9ya2RhbC5ub1wiLFxuICAgICAgXCJvcmxhbmQubm9cIixcbiAgICAgIFwiXFx4RjhybGFuZC5ub1wiLFxuICAgICAgXCJvcnNrb2cubm9cIixcbiAgICAgIFwiXFx4Rjhyc2tvZy5ub1wiLFxuICAgICAgXCJvcnN0YS5ub1wiLFxuICAgICAgXCJcXHhGOHJzdGEubm9cIixcbiAgICAgIFwib3MuaGVkbWFyay5ub1wiLFxuICAgICAgXCJvcy5ob3JkYWxhbmQubm9cIixcbiAgICAgIFwib3Nlbi5ub1wiLFxuICAgICAgXCJvc3Rlcm95Lm5vXCIsXG4gICAgICBcIm9zdGVyXFx4Rjh5Lm5vXCIsXG4gICAgICBcIm9zdHJlLXRvdGVuLm5vXCIsXG4gICAgICBcIlxceEY4c3RyZS10b3Rlbi5ub1wiLFxuICAgICAgXCJvdmVyaGFsbGEubm9cIixcbiAgICAgIFwib3ZyZS1laWtlci5ub1wiLFxuICAgICAgXCJcXHhGOHZyZS1laWtlci5ub1wiLFxuICAgICAgXCJveWVyLm5vXCIsXG4gICAgICBcIlxceEY4eWVyLm5vXCIsXG4gICAgICBcIm95Z2FyZGVuLm5vXCIsXG4gICAgICBcIlxceEY4eWdhcmRlbi5ub1wiLFxuICAgICAgXCJveXN0cmUtc2xpZHJlLm5vXCIsXG4gICAgICBcIlxceEY4eXN0cmUtc2xpZHJlLm5vXCIsXG4gICAgICBcInBvcnNhbmdlci5ub1wiLFxuICAgICAgXCJwb3JzYW5ndS5ub1wiLFxuICAgICAgXCJwb3JzXFx4RTFcXHUwMTRCZ3Uubm9cIixcbiAgICAgIFwicG9yc2dydW5uLm5vXCIsXG4gICAgICBcInJhZG95Lm5vXCIsXG4gICAgICBcInJhZFxceEY4eS5ub1wiLFxuICAgICAgXCJyYWtrZXN0YWQubm9cIixcbiAgICAgIFwicmFuYS5ub1wiLFxuICAgICAgXCJydW92YXQubm9cIixcbiAgICAgIFwicmFuZGFiZXJnLm5vXCIsXG4gICAgICBcInJhdW1hLm5vXCIsXG4gICAgICBcInJlbmRhbGVuLm5vXCIsXG4gICAgICBcInJlbm5lYnUubm9cIixcbiAgICAgIFwicmVubmVzb3kubm9cIixcbiAgICAgIFwicmVubmVzXFx4Rjh5Lm5vXCIsXG4gICAgICBcInJpbmRhbC5ub1wiLFxuICAgICAgXCJyaW5nZWJ1Lm5vXCIsXG4gICAgICBcInJpbmdlcmlrZS5ub1wiLFxuICAgICAgXCJyaW5nc2FrZXIubm9cIixcbiAgICAgIFwicmlzc2Eubm9cIixcbiAgICAgIFwicmlzb3Iubm9cIixcbiAgICAgIFwicmlzXFx4RjhyLm5vXCIsXG4gICAgICBcInJvYW4ubm9cIixcbiAgICAgIFwicm9sbGFnLm5vXCIsXG4gICAgICBcInJ5Z2dlLm5vXCIsXG4gICAgICBcInJhbGluZ2VuLm5vXCIsXG4gICAgICBcInJcXHhFNmxpbmdlbi5ub1wiLFxuICAgICAgXCJyb2RveS5ub1wiLFxuICAgICAgXCJyXFx4RjhkXFx4Rjh5Lm5vXCIsXG4gICAgICBcInJvbXNrb2cubm9cIixcbiAgICAgIFwiclxceEY4bXNrb2cubm9cIixcbiAgICAgIFwicm9yb3Mubm9cIixcbiAgICAgIFwiclxceEY4cm9zLm5vXCIsXG4gICAgICBcInJvc3Qubm9cIixcbiAgICAgIFwiclxceEY4c3Qubm9cIixcbiAgICAgIFwicm95a2VuLm5vXCIsXG4gICAgICBcInJcXHhGOHlrZW4ubm9cIixcbiAgICAgIFwicm95cnZpay5ub1wiLFxuICAgICAgXCJyXFx4Rjh5cnZpay5ub1wiLFxuICAgICAgXCJyYWRlLm5vXCIsXG4gICAgICBcInJcXHhFNWRlLm5vXCIsXG4gICAgICBcInNhbGFuZ2VuLm5vXCIsXG4gICAgICBcInNpZWxsYWsubm9cIixcbiAgICAgIFwic2FsdGRhbC5ub1wiLFxuICAgICAgXCJzYWxhdC5ub1wiLFxuICAgICAgXCJzXFx4RTFsXFx4RTF0Lm5vXCIsXG4gICAgICBcInNcXHhFMWxhdC5ub1wiLFxuICAgICAgXCJzYW1uYW5nZXIubm9cIixcbiAgICAgIFwic2FuZGUubW9yZS1vZy1yb21zZGFsLm5vXCIsXG4gICAgICBcInNhbmRlLm1cXHhGOHJlLW9nLXJvbXNkYWwubm9cIixcbiAgICAgIFwic2FuZGUudmVzdGZvbGQubm9cIixcbiAgICAgIFwic2FuZGVmam9yZC5ub1wiLFxuICAgICAgXCJzYW5kbmVzLm5vXCIsXG4gICAgICBcInNhbmRveS5ub1wiLFxuICAgICAgXCJzYW5kXFx4Rjh5Lm5vXCIsXG4gICAgICBcInNhcnBzYm9yZy5ub1wiLFxuICAgICAgXCJzYXVkYS5ub1wiLFxuICAgICAgXCJzYXVoZXJhZC5ub1wiLFxuICAgICAgXCJzZWwubm9cIixcbiAgICAgIFwic2VsYnUubm9cIixcbiAgICAgIFwic2VsamUubm9cIixcbiAgICAgIFwic2Vsam9yZC5ub1wiLFxuICAgICAgXCJzaWdkYWwubm9cIixcbiAgICAgIFwic2lsamFuLm5vXCIsXG4gICAgICBcInNpcmRhbC5ub1wiLFxuICAgICAgXCJza2F1bi5ub1wiLFxuICAgICAgXCJza2Vkc21vLm5vXCIsXG4gICAgICBcInNraS5ub1wiLFxuICAgICAgXCJza2llbi5ub1wiLFxuICAgICAgXCJza2lwdHZldC5ub1wiLFxuICAgICAgXCJza2plcnZveS5ub1wiLFxuICAgICAgXCJza2plcnZcXHhGOHkubm9cIixcbiAgICAgIFwic2tpZXJ2YS5ub1wiLFxuICAgICAgXCJza2llcnZcXHhFMS5ub1wiLFxuICAgICAgXCJza2phay5ub1wiLFxuICAgICAgXCJza2pcXHhFNWsubm9cIixcbiAgICAgIFwic2tvZGplLm5vXCIsXG4gICAgICBcInNrYW5sYW5kLm5vXCIsXG4gICAgICBcInNrXFx4RTVubGFuZC5ub1wiLFxuICAgICAgXCJza2FuaXQubm9cIixcbiAgICAgIFwic2tcXHhFMW5pdC5ub1wiLFxuICAgICAgXCJzbW9sYS5ub1wiLFxuICAgICAgXCJzbVxceEY4bGEubm9cIixcbiAgICAgIFwic25pbGxmam9yZC5ub1wiLFxuICAgICAgXCJzbmFzYS5ub1wiLFxuICAgICAgXCJzblxceEU1c2Eubm9cIixcbiAgICAgIFwic25vYXNhLm5vXCIsXG4gICAgICBcInNuYWFzZS5ub1wiLFxuICAgICAgXCJzblxceEU1YXNlLm5vXCIsXG4gICAgICBcInNvZ25kYWwubm9cIixcbiAgICAgIFwic29rbmRhbC5ub1wiLFxuICAgICAgXCJzb2xhLm5vXCIsXG4gICAgICBcInNvbHVuZC5ub1wiLFxuICAgICAgXCJzb25nZGFsZW4ubm9cIixcbiAgICAgIFwic29ydGxhbmQubm9cIixcbiAgICAgIFwic3B5ZGViZXJnLm5vXCIsXG4gICAgICBcInN0YW5nZS5ub1wiLFxuICAgICAgXCJzdGF2YW5nZXIubm9cIixcbiAgICAgIFwic3RlaWdlbi5ub1wiLFxuICAgICAgXCJzdGVpbmtqZXIubm9cIixcbiAgICAgIFwic3Rqb3JkYWwubm9cIixcbiAgICAgIFwic3RqXFx4RjhyZGFsLm5vXCIsXG4gICAgICBcInN0b2trZS5ub1wiLFxuICAgICAgXCJzdG9yLWVsdmRhbC5ub1wiLFxuICAgICAgXCJzdG9yZC5ub1wiLFxuICAgICAgXCJzdG9yZGFsLm5vXCIsXG4gICAgICBcInN0b3Jmam9yZC5ub1wiLFxuICAgICAgXCJvbWFzdnVvdG5hLm5vXCIsXG4gICAgICBcInN0cmFuZC5ub1wiLFxuICAgICAgXCJzdHJhbmRhLm5vXCIsXG4gICAgICBcInN0cnluLm5vXCIsXG4gICAgICBcInN1bGEubm9cIixcbiAgICAgIFwic3VsZGFsLm5vXCIsXG4gICAgICBcInN1bmQubm9cIixcbiAgICAgIFwic3VubmRhbC5ub1wiLFxuICAgICAgXCJzdXJuYWRhbC5ub1wiLFxuICAgICAgXCJzdmVpby5ub1wiLFxuICAgICAgXCJzdmVsdmlrLm5vXCIsXG4gICAgICBcInN5a2t5bHZlbi5ub1wiLFxuICAgICAgXCJzb2duZS5ub1wiLFxuICAgICAgXCJzXFx4RjhnbmUubm9cIixcbiAgICAgIFwic29tbmEubm9cIixcbiAgICAgIFwic1xceEY4bW5hLm5vXCIsXG4gICAgICBcInNvbmRyZS1sYW5kLm5vXCIsXG4gICAgICBcInNcXHhGOG5kcmUtbGFuZC5ub1wiLFxuICAgICAgXCJzb3ItYXVyZGFsLm5vXCIsXG4gICAgICBcInNcXHhGOHItYXVyZGFsLm5vXCIsXG4gICAgICBcInNvci1mcm9uLm5vXCIsXG4gICAgICBcInNcXHhGOHItZnJvbi5ub1wiLFxuICAgICAgXCJzb3Itb2RhbC5ub1wiLFxuICAgICAgXCJzXFx4RjhyLW9kYWwubm9cIixcbiAgICAgIFwic29yLXZhcmFuZ2VyLm5vXCIsXG4gICAgICBcInNcXHhGOHItdmFyYW5nZXIubm9cIixcbiAgICAgIFwibWF0dGEtdmFyamphdC5ub1wiLFxuICAgICAgXCJtXFx4RTF0dGEtdlxceEUxcmpqYXQubm9cIixcbiAgICAgIFwic29yZm9sZC5ub1wiLFxuICAgICAgXCJzXFx4RjhyZm9sZC5ub1wiLFxuICAgICAgXCJzb3JyZWlzYS5ub1wiLFxuICAgICAgXCJzXFx4RjhycmVpc2Eubm9cIixcbiAgICAgIFwic29ydW0ubm9cIixcbiAgICAgIFwic1xceEY4cnVtLm5vXCIsXG4gICAgICBcInRhbmEubm9cIixcbiAgICAgIFwiZGVhdG51Lm5vXCIsXG4gICAgICBcInRpbWUubm9cIixcbiAgICAgIFwidGluZ3ZvbGwubm9cIixcbiAgICAgIFwidGlubi5ub1wiLFxuICAgICAgXCJ0amVsZHN1bmQubm9cIixcbiAgICAgIFwiZGllbGRkYW51b3JyaS5ub1wiLFxuICAgICAgXCJ0am9tZS5ub1wiLFxuICAgICAgXCJ0alxceEY4bWUubm9cIixcbiAgICAgIFwidG9ra2Uubm9cIixcbiAgICAgIFwidG9sZ2Eubm9cIixcbiAgICAgIFwidG9yc2tlbi5ub1wiLFxuICAgICAgXCJ0cmFub3kubm9cIixcbiAgICAgIFwidHJhblxceEY4eS5ub1wiLFxuICAgICAgXCJ0cm9tc28ubm9cIixcbiAgICAgIFwidHJvbXNcXHhGOC5ub1wiLFxuICAgICAgXCJ0cm9tc2Eubm9cIixcbiAgICAgIFwicm9tc2Eubm9cIixcbiAgICAgIFwidHJvbmRoZWltLm5vXCIsXG4gICAgICBcInRyb2FuZGluLm5vXCIsXG4gICAgICBcInRyeXNpbC5ub1wiLFxuICAgICAgXCJ0cmFuYS5ub1wiLFxuICAgICAgXCJ0clxceEU2bmEubm9cIixcbiAgICAgIFwidHJvZ3N0YWQubm9cIixcbiAgICAgIFwidHJcXHhGOGdzdGFkLm5vXCIsXG4gICAgICBcInR2ZWRlc3RyYW5kLm5vXCIsXG4gICAgICBcInR5ZGFsLm5vXCIsXG4gICAgICBcInR5bnNldC5ub1wiLFxuICAgICAgXCJ0eXNmam9yZC5ub1wiLFxuICAgICAgXCJkaXZ0YXN2dW9kbmEubm9cIixcbiAgICAgIFwiZGl2dHRhc3Z1b3RuYS5ub1wiLFxuICAgICAgXCJ0eXNuZXMubm9cIixcbiAgICAgIFwidHlzdmFyLm5vXCIsXG4gICAgICBcInR5c3ZcXHhFNnIubm9cIixcbiAgICAgIFwidG9uc2Jlcmcubm9cIixcbiAgICAgIFwidFxceEY4bnNiZXJnLm5vXCIsXG4gICAgICBcInVsbGVuc2FrZXIubm9cIixcbiAgICAgIFwidWxsZW5zdmFuZy5ub1wiLFxuICAgICAgXCJ1bHZpay5ub1wiLFxuICAgICAgXCJ1dHNpcmEubm9cIixcbiAgICAgIFwidmFkc28ubm9cIixcbiAgICAgIFwidmFkc1xceEY4Lm5vXCIsXG4gICAgICBcImNhaGNlc3VvbG8ubm9cIixcbiAgICAgIFwiXFx1MDEwRFxceEUxaGNlc3VvbG8ubm9cIixcbiAgICAgIFwidmFrc2RhbC5ub1wiLFxuICAgICAgXCJ2YWxsZS5ub1wiLFxuICAgICAgXCJ2YW5nLm5vXCIsXG4gICAgICBcInZhbnlsdmVuLm5vXCIsXG4gICAgICBcInZhcmRvLm5vXCIsXG4gICAgICBcInZhcmRcXHhGOC5ub1wiLFxuICAgICAgXCJ2YXJnZ2F0Lm5vXCIsXG4gICAgICBcInZcXHhFMXJnZ1xceEUxdC5ub1wiLFxuICAgICAgXCJ2ZWZzbi5ub1wiLFxuICAgICAgXCJ2YWFwc3RlLm5vXCIsXG4gICAgICBcInZlZ2Eubm9cIixcbiAgICAgIFwidmVnYXJzaGVpLm5vXCIsXG4gICAgICBcInZlZ1xceEU1cnNoZWkubm9cIixcbiAgICAgIFwidmVubmVzbGEubm9cIixcbiAgICAgIFwidmVyZGFsLm5vXCIsXG4gICAgICBcInZlcnJhbi5ub1wiLFxuICAgICAgXCJ2ZXN0Ynkubm9cIixcbiAgICAgIFwidmVzdG5lcy5ub1wiLFxuICAgICAgXCJ2ZXN0cmUtc2xpZHJlLm5vXCIsXG4gICAgICBcInZlc3RyZS10b3Rlbi5ub1wiLFxuICAgICAgXCJ2ZXN0dmFnb3kubm9cIixcbiAgICAgIFwidmVzdHZcXHhFNWdcXHhGOHkubm9cIixcbiAgICAgIFwidmV2ZWxzdGFkLm5vXCIsXG4gICAgICBcInZpay5ub1wiLFxuICAgICAgXCJ2aWtuYS5ub1wiLFxuICAgICAgXCJ2aW5kYWZqb3JkLm5vXCIsXG4gICAgICBcInZvbGRhLm5vXCIsXG4gICAgICBcInZvc3Mubm9cIixcbiAgICAgIFwidmFyb3kubm9cIixcbiAgICAgIFwidlxceEU2clxceEY4eS5ub1wiLFxuICAgICAgXCJ2YWdhbi5ub1wiLFxuICAgICAgXCJ2XFx4RTVnYW4ubm9cIixcbiAgICAgIFwidm9hZ2F0Lm5vXCIsXG4gICAgICBcInZhZ3NveS5ub1wiLFxuICAgICAgXCJ2XFx4RTVnc1xceEY4eS5ub1wiLFxuICAgICAgXCJ2YWdhLm5vXCIsXG4gICAgICBcInZcXHhFNWdcXHhFNS5ub1wiLFxuICAgICAgXCJ2YWxlci5vc3Rmb2xkLm5vXCIsXG4gICAgICBcInZcXHhFNWxlci5cXHhGOHN0Zm9sZC5ub1wiLFxuICAgICAgXCJ2YWxlci5oZWRtYXJrLm5vXCIsXG4gICAgICBcInZcXHhFNWxlci5oZWRtYXJrLm5vXCIsXG4gICAgICBcIioubnBcIixcbiAgICAgIFwibnJcIixcbiAgICAgIFwiYml6Lm5yXCIsXG4gICAgICBcImluZm8ubnJcIixcbiAgICAgIFwiZ292Lm5yXCIsXG4gICAgICBcImVkdS5uclwiLFxuICAgICAgXCJvcmcubnJcIixcbiAgICAgIFwibmV0Lm5yXCIsXG4gICAgICBcImNvbS5uclwiLFxuICAgICAgXCJudVwiLFxuICAgICAgXCJuelwiLFxuICAgICAgXCJhYy5uelwiLFxuICAgICAgXCJjby5uelwiLFxuICAgICAgXCJjcmkubnpcIixcbiAgICAgIFwiZ2Vlay5uelwiLFxuICAgICAgXCJnZW4ubnpcIixcbiAgICAgIFwiZ292dC5uelwiLFxuICAgICAgXCJoZWFsdGgubnpcIixcbiAgICAgIFwiaXdpLm56XCIsXG4gICAgICBcImtpd2kubnpcIixcbiAgICAgIFwibWFvcmkubnpcIixcbiAgICAgIFwibWlsLm56XCIsXG4gICAgICBcIm1cXHUwMTAxb3JpLm56XCIsXG4gICAgICBcIm5ldC5uelwiLFxuICAgICAgXCJvcmcubnpcIixcbiAgICAgIFwicGFybGlhbWVudC5uelwiLFxuICAgICAgXCJzY2hvb2wubnpcIixcbiAgICAgIFwib21cIixcbiAgICAgIFwiY28ub21cIixcbiAgICAgIFwiY29tLm9tXCIsXG4gICAgICBcImVkdS5vbVwiLFxuICAgICAgXCJnb3Yub21cIixcbiAgICAgIFwibWVkLm9tXCIsXG4gICAgICBcIm11c2V1bS5vbVwiLFxuICAgICAgXCJuZXQub21cIixcbiAgICAgIFwib3JnLm9tXCIsXG4gICAgICBcInByby5vbVwiLFxuICAgICAgXCJvbmlvblwiLFxuICAgICAgXCJvcmdcIixcbiAgICAgIFwicGFcIixcbiAgICAgIFwiYWMucGFcIixcbiAgICAgIFwiZ29iLnBhXCIsXG4gICAgICBcImNvbS5wYVwiLFxuICAgICAgXCJvcmcucGFcIixcbiAgICAgIFwic2xkLnBhXCIsXG4gICAgICBcImVkdS5wYVwiLFxuICAgICAgXCJuZXQucGFcIixcbiAgICAgIFwiaW5nLnBhXCIsXG4gICAgICBcImFiby5wYVwiLFxuICAgICAgXCJtZWQucGFcIixcbiAgICAgIFwibm9tLnBhXCIsXG4gICAgICBcInBlXCIsXG4gICAgICBcImVkdS5wZVwiLFxuICAgICAgXCJnb2IucGVcIixcbiAgICAgIFwibm9tLnBlXCIsXG4gICAgICBcIm1pbC5wZVwiLFxuICAgICAgXCJvcmcucGVcIixcbiAgICAgIFwiY29tLnBlXCIsXG4gICAgICBcIm5ldC5wZVwiLFxuICAgICAgXCJwZlwiLFxuICAgICAgXCJjb20ucGZcIixcbiAgICAgIFwib3JnLnBmXCIsXG4gICAgICBcImVkdS5wZlwiLFxuICAgICAgXCIqLnBnXCIsXG4gICAgICBcInBoXCIsXG4gICAgICBcImNvbS5waFwiLFxuICAgICAgXCJuZXQucGhcIixcbiAgICAgIFwib3JnLnBoXCIsXG4gICAgICBcImdvdi5waFwiLFxuICAgICAgXCJlZHUucGhcIixcbiAgICAgIFwibmdvLnBoXCIsXG4gICAgICBcIm1pbC5waFwiLFxuICAgICAgXCJpLnBoXCIsXG4gICAgICBcInBrXCIsXG4gICAgICBcImNvbS5wa1wiLFxuICAgICAgXCJuZXQucGtcIixcbiAgICAgIFwiZWR1LnBrXCIsXG4gICAgICBcIm9yZy5wa1wiLFxuICAgICAgXCJmYW0ucGtcIixcbiAgICAgIFwiYml6LnBrXCIsXG4gICAgICBcIndlYi5wa1wiLFxuICAgICAgXCJnb3YucGtcIixcbiAgICAgIFwiZ29iLnBrXCIsXG4gICAgICBcImdvay5wa1wiLFxuICAgICAgXCJnb24ucGtcIixcbiAgICAgIFwiZ29wLnBrXCIsXG4gICAgICBcImdvcy5wa1wiLFxuICAgICAgXCJpbmZvLnBrXCIsXG4gICAgICBcInBsXCIsXG4gICAgICBcImNvbS5wbFwiLFxuICAgICAgXCJuZXQucGxcIixcbiAgICAgIFwib3JnLnBsXCIsXG4gICAgICBcImFpZC5wbFwiLFxuICAgICAgXCJhZ3JvLnBsXCIsXG4gICAgICBcImF0bS5wbFwiLFxuICAgICAgXCJhdXRvLnBsXCIsXG4gICAgICBcImJpei5wbFwiLFxuICAgICAgXCJlZHUucGxcIixcbiAgICAgIFwiZ21pbmEucGxcIixcbiAgICAgIFwiZ3NtLnBsXCIsXG4gICAgICBcImluZm8ucGxcIixcbiAgICAgIFwibWFpbC5wbFwiLFxuICAgICAgXCJtaWFzdGEucGxcIixcbiAgICAgIFwibWVkaWEucGxcIixcbiAgICAgIFwibWlsLnBsXCIsXG4gICAgICBcIm5pZXJ1Y2hvbW9zY2kucGxcIixcbiAgICAgIFwibm9tLnBsXCIsXG4gICAgICBcInBjLnBsXCIsXG4gICAgICBcInBvd2lhdC5wbFwiLFxuICAgICAgXCJwcml2LnBsXCIsXG4gICAgICBcInJlYWxlc3RhdGUucGxcIixcbiAgICAgIFwicmVsLnBsXCIsXG4gICAgICBcInNleC5wbFwiLFxuICAgICAgXCJzaG9wLnBsXCIsXG4gICAgICBcInNrbGVwLnBsXCIsXG4gICAgICBcInNvcy5wbFwiLFxuICAgICAgXCJzemtvbGEucGxcIixcbiAgICAgIFwidGFyZ2kucGxcIixcbiAgICAgIFwidG0ucGxcIixcbiAgICAgIFwidG91cmlzbS5wbFwiLFxuICAgICAgXCJ0cmF2ZWwucGxcIixcbiAgICAgIFwidHVyeXN0eWthLnBsXCIsXG4gICAgICBcImdvdi5wbFwiLFxuICAgICAgXCJhcC5nb3YucGxcIixcbiAgICAgIFwiaWMuZ292LnBsXCIsXG4gICAgICBcImlzLmdvdi5wbFwiLFxuICAgICAgXCJ1cy5nb3YucGxcIixcbiAgICAgIFwia21wc3AuZ292LnBsXCIsXG4gICAgICBcImtwcHNwLmdvdi5wbFwiLFxuICAgICAgXCJrd3BzcC5nb3YucGxcIixcbiAgICAgIFwicHNwLmdvdi5wbFwiLFxuICAgICAgXCJ3c2tyLmdvdi5wbFwiLFxuICAgICAgXCJrd3AuZ292LnBsXCIsXG4gICAgICBcIm13Lmdvdi5wbFwiLFxuICAgICAgXCJ1Zy5nb3YucGxcIixcbiAgICAgIFwidW0uZ292LnBsXCIsXG4gICAgICBcInVtaWcuZ292LnBsXCIsXG4gICAgICBcInVnaW0uZ292LnBsXCIsXG4gICAgICBcInVwb3cuZ292LnBsXCIsXG4gICAgICBcInV3Lmdvdi5wbFwiLFxuICAgICAgXCJzdGFyb3N0d28uZ292LnBsXCIsXG4gICAgICBcInBhLmdvdi5wbFwiLFxuICAgICAgXCJwby5nb3YucGxcIixcbiAgICAgIFwicHNzZS5nb3YucGxcIixcbiAgICAgIFwicHVwLmdvdi5wbFwiLFxuICAgICAgXCJyemd3Lmdvdi5wbFwiLFxuICAgICAgXCJzYS5nb3YucGxcIixcbiAgICAgIFwic28uZ292LnBsXCIsXG4gICAgICBcInNyLmdvdi5wbFwiLFxuICAgICAgXCJ3c2EuZ292LnBsXCIsXG4gICAgICBcInNrby5nb3YucGxcIixcbiAgICAgIFwidXpzLmdvdi5wbFwiLFxuICAgICAgXCJ3aWloLmdvdi5wbFwiLFxuICAgICAgXCJ3aW5iLmdvdi5wbFwiLFxuICAgICAgXCJwaW5iLmdvdi5wbFwiLFxuICAgICAgXCJ3aW9zLmdvdi5wbFwiLFxuICAgICAgXCJ3aXRkLmdvdi5wbFwiLFxuICAgICAgXCJ3em1pdXcuZ292LnBsXCIsXG4gICAgICBcInBpdy5nb3YucGxcIixcbiAgICAgIFwid2l3Lmdvdi5wbFwiLFxuICAgICAgXCJncml3Lmdvdi5wbFwiLFxuICAgICAgXCJ3aWYuZ292LnBsXCIsXG4gICAgICBcIm91bS5nb3YucGxcIixcbiAgICAgIFwic2RuLmdvdi5wbFwiLFxuICAgICAgXCJ6cC5nb3YucGxcIixcbiAgICAgIFwidXBwby5nb3YucGxcIixcbiAgICAgIFwibXVwLmdvdi5wbFwiLFxuICAgICAgXCJ3dW96Lmdvdi5wbFwiLFxuICAgICAgXCJrb25zdWxhdC5nb3YucGxcIixcbiAgICAgIFwib2lybS5nb3YucGxcIixcbiAgICAgIFwiYXVndXN0b3cucGxcIixcbiAgICAgIFwiYmFiaWEtZ29yYS5wbFwiLFxuICAgICAgXCJiZWR6aW4ucGxcIixcbiAgICAgIFwiYmVza2lkeS5wbFwiLFxuICAgICAgXCJiaWFsb3dpZXphLnBsXCIsXG4gICAgICBcImJpYWx5c3Rvay5wbFwiLFxuICAgICAgXCJiaWVsYXdhLnBsXCIsXG4gICAgICBcImJpZXN6Y3phZHkucGxcIixcbiAgICAgIFwiYm9sZXNsYXdpZWMucGxcIixcbiAgICAgIFwiYnlkZ29zemN6LnBsXCIsXG4gICAgICBcImJ5dG9tLnBsXCIsXG4gICAgICBcImNpZXN6eW4ucGxcIixcbiAgICAgIFwiY3plbGFkei5wbFwiLFxuICAgICAgXCJjemVzdC5wbFwiLFxuICAgICAgXCJkbHVnb2xla2EucGxcIixcbiAgICAgIFwiZWxibGFnLnBsXCIsXG4gICAgICBcImVsay5wbFwiLFxuICAgICAgXCJnbG9nb3cucGxcIixcbiAgICAgIFwiZ25pZXpuby5wbFwiLFxuICAgICAgXCJnb3JsaWNlLnBsXCIsXG4gICAgICBcImdyYWpld28ucGxcIixcbiAgICAgIFwiaWxhd2EucGxcIixcbiAgICAgIFwiamF3b3J6bm8ucGxcIixcbiAgICAgIFwiamVsZW5pYS1nb3JhLnBsXCIsXG4gICAgICBcImpnb3JhLnBsXCIsXG4gICAgICBcImthbGlzei5wbFwiLFxuICAgICAgXCJrYXppbWllcnotZG9sbnkucGxcIixcbiAgICAgIFwia2FycGFjei5wbFwiLFxuICAgICAgXCJrYXJ0dXp5LnBsXCIsXG4gICAgICBcImthc3p1YnkucGxcIixcbiAgICAgIFwia2F0b3dpY2UucGxcIixcbiAgICAgIFwia2Vwbm8ucGxcIixcbiAgICAgIFwia2V0cnp5bi5wbFwiLFxuICAgICAgXCJrbG9kemtvLnBsXCIsXG4gICAgICBcImtvYmllcnp5Y2UucGxcIixcbiAgICAgIFwia29sb2JyemVnLnBsXCIsXG4gICAgICBcImtvbmluLnBsXCIsXG4gICAgICBcImtvbnNrb3dvbGEucGxcIixcbiAgICAgIFwia3V0bm8ucGxcIixcbiAgICAgIFwibGFweS5wbFwiLFxuICAgICAgXCJsZWJvcmsucGxcIixcbiAgICAgIFwibGVnbmljYS5wbFwiLFxuICAgICAgXCJsZXphanNrLnBsXCIsXG4gICAgICBcImxpbWFub3dhLnBsXCIsXG4gICAgICBcImxvbXphLnBsXCIsXG4gICAgICBcImxvd2ljei5wbFwiLFxuICAgICAgXCJsdWJpbi5wbFwiLFxuICAgICAgXCJsdWtvdy5wbFwiLFxuICAgICAgXCJtYWxib3JrLnBsXCIsXG4gICAgICBcIm1hbG9wb2xza2EucGxcIixcbiAgICAgIFwibWF6b3dzemUucGxcIixcbiAgICAgIFwibWF6dXJ5LnBsXCIsXG4gICAgICBcIm1pZWxlYy5wbFwiLFxuICAgICAgXCJtaWVsbm8ucGxcIixcbiAgICAgIFwibXJhZ293by5wbFwiLFxuICAgICAgXCJuYWtsby5wbFwiLFxuICAgICAgXCJub3dhcnVkYS5wbFwiLFxuICAgICAgXCJueXNhLnBsXCIsXG4gICAgICBcIm9sYXdhLnBsXCIsXG4gICAgICBcIm9sZWNrby5wbFwiLFxuICAgICAgXCJvbGt1c3oucGxcIixcbiAgICAgIFwib2xzenR5bi5wbFwiLFxuICAgICAgXCJvcG9jem5vLnBsXCIsXG4gICAgICBcIm9wb2xlLnBsXCIsXG4gICAgICBcIm9zdHJvZGEucGxcIixcbiAgICAgIFwib3N0cm9sZWthLnBsXCIsXG4gICAgICBcIm9zdHJvd2llYy5wbFwiLFxuICAgICAgXCJvc3Ryb3d3bGtwLnBsXCIsXG4gICAgICBcInBpbGEucGxcIixcbiAgICAgIFwicGlzei5wbFwiLFxuICAgICAgXCJwb2RoYWxlLnBsXCIsXG4gICAgICBcInBvZGxhc2llLnBsXCIsXG4gICAgICBcInBvbGtvd2ljZS5wbFwiLFxuICAgICAgXCJwb21vcnplLnBsXCIsXG4gICAgICBcInBvbW9yc2tpZS5wbFwiLFxuICAgICAgXCJwcm9jaG93aWNlLnBsXCIsXG4gICAgICBcInBydXN6a293LnBsXCIsXG4gICAgICBcInByemV3b3Jzay5wbFwiLFxuICAgICAgXCJwdWxhd3kucGxcIixcbiAgICAgIFwicmFkb20ucGxcIixcbiAgICAgIFwicmF3YS1tYXoucGxcIixcbiAgICAgIFwicnlibmlrLnBsXCIsXG4gICAgICBcInJ6ZXN6b3cucGxcIixcbiAgICAgIFwic2Fub2sucGxcIixcbiAgICAgIFwic2VqbnkucGxcIixcbiAgICAgIFwic2xhc2sucGxcIixcbiAgICAgIFwic2x1cHNrLnBsXCIsXG4gICAgICBcInNvc25vd2llYy5wbFwiLFxuICAgICAgXCJzdGFsb3dhLXdvbGEucGxcIixcbiAgICAgIFwic2tvY3pvdy5wbFwiLFxuICAgICAgXCJzdGFyYWNob3dpY2UucGxcIixcbiAgICAgIFwic3RhcmdhcmQucGxcIixcbiAgICAgIFwic3V3YWxraS5wbFwiLFxuICAgICAgXCJzd2lkbmljYS5wbFwiLFxuICAgICAgXCJzd2llYm9kemluLnBsXCIsXG4gICAgICBcInN3aW5vdWpzY2llLnBsXCIsXG4gICAgICBcInN6Y3plY2luLnBsXCIsXG4gICAgICBcInN6Y3p5dG5vLnBsXCIsXG4gICAgICBcInRhcm5vYnJ6ZWcucGxcIixcbiAgICAgIFwidGdvcnkucGxcIixcbiAgICAgIFwidHVyZWsucGxcIixcbiAgICAgIFwidHljaHkucGxcIixcbiAgICAgIFwidXN0a2EucGxcIixcbiAgICAgIFwid2FsYnJ6eWNoLnBsXCIsXG4gICAgICBcIndhcm1pYS5wbFwiLFxuICAgICAgXCJ3YXJzemF3YS5wbFwiLFxuICAgICAgXCJ3YXcucGxcIixcbiAgICAgIFwid2Vncm93LnBsXCIsXG4gICAgICBcIndpZWx1bi5wbFwiLFxuICAgICAgXCJ3bG9jbC5wbFwiLFxuICAgICAgXCJ3bG9jbGF3ZWsucGxcIixcbiAgICAgIFwid29kemlzbGF3LnBsXCIsXG4gICAgICBcIndvbG9taW4ucGxcIixcbiAgICAgIFwid3JvY2xhdy5wbFwiLFxuICAgICAgXCJ6YWNocG9tb3IucGxcIixcbiAgICAgIFwiemFnYW4ucGxcIixcbiAgICAgIFwiemFyb3cucGxcIixcbiAgICAgIFwiemdvcmEucGxcIixcbiAgICAgIFwiemdvcnplbGVjLnBsXCIsXG4gICAgICBcInBtXCIsXG4gICAgICBcInBuXCIsXG4gICAgICBcImdvdi5wblwiLFxuICAgICAgXCJjby5wblwiLFxuICAgICAgXCJvcmcucG5cIixcbiAgICAgIFwiZWR1LnBuXCIsXG4gICAgICBcIm5ldC5wblwiLFxuICAgICAgXCJwb3N0XCIsXG4gICAgICBcInByXCIsXG4gICAgICBcImNvbS5wclwiLFxuICAgICAgXCJuZXQucHJcIixcbiAgICAgIFwib3JnLnByXCIsXG4gICAgICBcImdvdi5wclwiLFxuICAgICAgXCJlZHUucHJcIixcbiAgICAgIFwiaXNsYS5wclwiLFxuICAgICAgXCJwcm8ucHJcIixcbiAgICAgIFwiYml6LnByXCIsXG4gICAgICBcImluZm8ucHJcIixcbiAgICAgIFwibmFtZS5wclwiLFxuICAgICAgXCJlc3QucHJcIixcbiAgICAgIFwicHJvZi5wclwiLFxuICAgICAgXCJhYy5wclwiLFxuICAgICAgXCJwcm9cIixcbiAgICAgIFwiYWFhLnByb1wiLFxuICAgICAgXCJhY2EucHJvXCIsXG4gICAgICBcImFjY3QucHJvXCIsXG4gICAgICBcImF2b2NhdC5wcm9cIixcbiAgICAgIFwiYmFyLnByb1wiLFxuICAgICAgXCJjcGEucHJvXCIsXG4gICAgICBcImVuZy5wcm9cIixcbiAgICAgIFwianVyLnByb1wiLFxuICAgICAgXCJsYXcucHJvXCIsXG4gICAgICBcIm1lZC5wcm9cIixcbiAgICAgIFwicmVjaHQucHJvXCIsXG4gICAgICBcInBzXCIsXG4gICAgICBcImVkdS5wc1wiLFxuICAgICAgXCJnb3YucHNcIixcbiAgICAgIFwic2VjLnBzXCIsXG4gICAgICBcInBsby5wc1wiLFxuICAgICAgXCJjb20ucHNcIixcbiAgICAgIFwib3JnLnBzXCIsXG4gICAgICBcIm5ldC5wc1wiLFxuICAgICAgXCJwdFwiLFxuICAgICAgXCJuZXQucHRcIixcbiAgICAgIFwiZ292LnB0XCIsXG4gICAgICBcIm9yZy5wdFwiLFxuICAgICAgXCJlZHUucHRcIixcbiAgICAgIFwiaW50LnB0XCIsXG4gICAgICBcInB1YmwucHRcIixcbiAgICAgIFwiY29tLnB0XCIsXG4gICAgICBcIm5vbWUucHRcIixcbiAgICAgIFwicHdcIixcbiAgICAgIFwiY28ucHdcIixcbiAgICAgIFwibmUucHdcIixcbiAgICAgIFwib3IucHdcIixcbiAgICAgIFwiZWQucHdcIixcbiAgICAgIFwiZ28ucHdcIixcbiAgICAgIFwiYmVsYXUucHdcIixcbiAgICAgIFwicHlcIixcbiAgICAgIFwiY29tLnB5XCIsXG4gICAgICBcImNvb3AucHlcIixcbiAgICAgIFwiZWR1LnB5XCIsXG4gICAgICBcImdvdi5weVwiLFxuICAgICAgXCJtaWwucHlcIixcbiAgICAgIFwibmV0LnB5XCIsXG4gICAgICBcIm9yZy5weVwiLFxuICAgICAgXCJxYVwiLFxuICAgICAgXCJjb20ucWFcIixcbiAgICAgIFwiZWR1LnFhXCIsXG4gICAgICBcImdvdi5xYVwiLFxuICAgICAgXCJtaWwucWFcIixcbiAgICAgIFwibmFtZS5xYVwiLFxuICAgICAgXCJuZXQucWFcIixcbiAgICAgIFwib3JnLnFhXCIsXG4gICAgICBcInNjaC5xYVwiLFxuICAgICAgXCJyZVwiLFxuICAgICAgXCJhc3NvLnJlXCIsXG4gICAgICBcImNvbS5yZVwiLFxuICAgICAgXCJub20ucmVcIixcbiAgICAgIFwicm9cIixcbiAgICAgIFwiYXJ0cy5yb1wiLFxuICAgICAgXCJjb20ucm9cIixcbiAgICAgIFwiZmlybS5yb1wiLFxuICAgICAgXCJpbmZvLnJvXCIsXG4gICAgICBcIm5vbS5yb1wiLFxuICAgICAgXCJudC5yb1wiLFxuICAgICAgXCJvcmcucm9cIixcbiAgICAgIFwicmVjLnJvXCIsXG4gICAgICBcInN0b3JlLnJvXCIsXG4gICAgICBcInRtLnJvXCIsXG4gICAgICBcInd3dy5yb1wiLFxuICAgICAgXCJyc1wiLFxuICAgICAgXCJhYy5yc1wiLFxuICAgICAgXCJjby5yc1wiLFxuICAgICAgXCJlZHUucnNcIixcbiAgICAgIFwiZ292LnJzXCIsXG4gICAgICBcImluLnJzXCIsXG4gICAgICBcIm9yZy5yc1wiLFxuICAgICAgXCJydVwiLFxuICAgICAgXCJyd1wiLFxuICAgICAgXCJhYy5yd1wiLFxuICAgICAgXCJjby5yd1wiLFxuICAgICAgXCJjb29wLnJ3XCIsXG4gICAgICBcImdvdi5yd1wiLFxuICAgICAgXCJtaWwucndcIixcbiAgICAgIFwibmV0LnJ3XCIsXG4gICAgICBcIm9yZy5yd1wiLFxuICAgICAgXCJzYVwiLFxuICAgICAgXCJjb20uc2FcIixcbiAgICAgIFwibmV0LnNhXCIsXG4gICAgICBcIm9yZy5zYVwiLFxuICAgICAgXCJnb3Yuc2FcIixcbiAgICAgIFwibWVkLnNhXCIsXG4gICAgICBcInB1Yi5zYVwiLFxuICAgICAgXCJlZHUuc2FcIixcbiAgICAgIFwic2NoLnNhXCIsXG4gICAgICBcInNiXCIsXG4gICAgICBcImNvbS5zYlwiLFxuICAgICAgXCJlZHUuc2JcIixcbiAgICAgIFwiZ292LnNiXCIsXG4gICAgICBcIm5ldC5zYlwiLFxuICAgICAgXCJvcmcuc2JcIixcbiAgICAgIFwic2NcIixcbiAgICAgIFwiY29tLnNjXCIsXG4gICAgICBcImdvdi5zY1wiLFxuICAgICAgXCJuZXQuc2NcIixcbiAgICAgIFwib3JnLnNjXCIsXG4gICAgICBcImVkdS5zY1wiLFxuICAgICAgXCJzZFwiLFxuICAgICAgXCJjb20uc2RcIixcbiAgICAgIFwibmV0LnNkXCIsXG4gICAgICBcIm9yZy5zZFwiLFxuICAgICAgXCJlZHUuc2RcIixcbiAgICAgIFwibWVkLnNkXCIsXG4gICAgICBcInR2LnNkXCIsXG4gICAgICBcImdvdi5zZFwiLFxuICAgICAgXCJpbmZvLnNkXCIsXG4gICAgICBcInNlXCIsXG4gICAgICBcImEuc2VcIixcbiAgICAgIFwiYWMuc2VcIixcbiAgICAgIFwiYi5zZVwiLFxuICAgICAgXCJiZC5zZVwiLFxuICAgICAgXCJicmFuZC5zZVwiLFxuICAgICAgXCJjLnNlXCIsXG4gICAgICBcImQuc2VcIixcbiAgICAgIFwiZS5zZVwiLFxuICAgICAgXCJmLnNlXCIsXG4gICAgICBcImZoLnNlXCIsXG4gICAgICBcImZoc2suc2VcIixcbiAgICAgIFwiZmh2LnNlXCIsXG4gICAgICBcImcuc2VcIixcbiAgICAgIFwiaC5zZVwiLFxuICAgICAgXCJpLnNlXCIsXG4gICAgICBcImsuc2VcIixcbiAgICAgIFwia29tZm9yYi5zZVwiLFxuICAgICAgXCJrb21tdW5hbGZvcmJ1bmQuc2VcIixcbiAgICAgIFwia29tdnV4LnNlXCIsXG4gICAgICBcImwuc2VcIixcbiAgICAgIFwibGFuYmliLnNlXCIsXG4gICAgICBcIm0uc2VcIixcbiAgICAgIFwibi5zZVwiLFxuICAgICAgXCJuYXR1cmJydWtzZ3ltbi5zZVwiLFxuICAgICAgXCJvLnNlXCIsXG4gICAgICBcIm9yZy5zZVwiLFxuICAgICAgXCJwLnNlXCIsXG4gICAgICBcInBhcnRpLnNlXCIsXG4gICAgICBcInBwLnNlXCIsXG4gICAgICBcInByZXNzLnNlXCIsXG4gICAgICBcInIuc2VcIixcbiAgICAgIFwicy5zZVwiLFxuICAgICAgXCJ0LnNlXCIsXG4gICAgICBcInRtLnNlXCIsXG4gICAgICBcInUuc2VcIixcbiAgICAgIFwidy5zZVwiLFxuICAgICAgXCJ4LnNlXCIsXG4gICAgICBcInkuc2VcIixcbiAgICAgIFwiei5zZVwiLFxuICAgICAgXCJzZ1wiLFxuICAgICAgXCJjb20uc2dcIixcbiAgICAgIFwibmV0LnNnXCIsXG4gICAgICBcIm9yZy5zZ1wiLFxuICAgICAgXCJnb3Yuc2dcIixcbiAgICAgIFwiZWR1LnNnXCIsXG4gICAgICBcInBlci5zZ1wiLFxuICAgICAgXCJzaFwiLFxuICAgICAgXCJjb20uc2hcIixcbiAgICAgIFwibmV0LnNoXCIsXG4gICAgICBcImdvdi5zaFwiLFxuICAgICAgXCJvcmcuc2hcIixcbiAgICAgIFwibWlsLnNoXCIsXG4gICAgICBcInNpXCIsXG4gICAgICBcInNqXCIsXG4gICAgICBcInNrXCIsXG4gICAgICBcInNsXCIsXG4gICAgICBcImNvbS5zbFwiLFxuICAgICAgXCJuZXQuc2xcIixcbiAgICAgIFwiZWR1LnNsXCIsXG4gICAgICBcImdvdi5zbFwiLFxuICAgICAgXCJvcmcuc2xcIixcbiAgICAgIFwic21cIixcbiAgICAgIFwic25cIixcbiAgICAgIFwiYXJ0LnNuXCIsXG4gICAgICBcImNvbS5zblwiLFxuICAgICAgXCJlZHUuc25cIixcbiAgICAgIFwiZ291di5zblwiLFxuICAgICAgXCJvcmcuc25cIixcbiAgICAgIFwicGVyc28uc25cIixcbiAgICAgIFwidW5pdi5zblwiLFxuICAgICAgXCJzb1wiLFxuICAgICAgXCJjb20uc29cIixcbiAgICAgIFwiZWR1LnNvXCIsXG4gICAgICBcImdvdi5zb1wiLFxuICAgICAgXCJtZS5zb1wiLFxuICAgICAgXCJuZXQuc29cIixcbiAgICAgIFwib3JnLnNvXCIsXG4gICAgICBcInNyXCIsXG4gICAgICBcInNzXCIsXG4gICAgICBcImJpei5zc1wiLFxuICAgICAgXCJjb20uc3NcIixcbiAgICAgIFwiZWR1LnNzXCIsXG4gICAgICBcImdvdi5zc1wiLFxuICAgICAgXCJtZS5zc1wiLFxuICAgICAgXCJuZXQuc3NcIixcbiAgICAgIFwib3JnLnNzXCIsXG4gICAgICBcInNjaC5zc1wiLFxuICAgICAgXCJzdFwiLFxuICAgICAgXCJjby5zdFwiLFxuICAgICAgXCJjb20uc3RcIixcbiAgICAgIFwiY29uc3VsYWRvLnN0XCIsXG4gICAgICBcImVkdS5zdFwiLFxuICAgICAgXCJlbWJhaXhhZGEuc3RcIixcbiAgICAgIFwibWlsLnN0XCIsXG4gICAgICBcIm5ldC5zdFwiLFxuICAgICAgXCJvcmcuc3RcIixcbiAgICAgIFwicHJpbmNpcGUuc3RcIixcbiAgICAgIFwic2FvdG9tZS5zdFwiLFxuICAgICAgXCJzdG9yZS5zdFwiLFxuICAgICAgXCJzdVwiLFxuICAgICAgXCJzdlwiLFxuICAgICAgXCJjb20uc3ZcIixcbiAgICAgIFwiZWR1LnN2XCIsXG4gICAgICBcImdvYi5zdlwiLFxuICAgICAgXCJvcmcuc3ZcIixcbiAgICAgIFwicmVkLnN2XCIsXG4gICAgICBcInN4XCIsXG4gICAgICBcImdvdi5zeFwiLFxuICAgICAgXCJzeVwiLFxuICAgICAgXCJlZHUuc3lcIixcbiAgICAgIFwiZ292LnN5XCIsXG4gICAgICBcIm5ldC5zeVwiLFxuICAgICAgXCJtaWwuc3lcIixcbiAgICAgIFwiY29tLnN5XCIsXG4gICAgICBcIm9yZy5zeVwiLFxuICAgICAgXCJzelwiLFxuICAgICAgXCJjby5zelwiLFxuICAgICAgXCJhYy5zelwiLFxuICAgICAgXCJvcmcuc3pcIixcbiAgICAgIFwidGNcIixcbiAgICAgIFwidGRcIixcbiAgICAgIFwidGVsXCIsXG4gICAgICBcInRmXCIsXG4gICAgICBcInRnXCIsXG4gICAgICBcInRoXCIsXG4gICAgICBcImFjLnRoXCIsXG4gICAgICBcImNvLnRoXCIsXG4gICAgICBcImdvLnRoXCIsXG4gICAgICBcImluLnRoXCIsXG4gICAgICBcIm1pLnRoXCIsXG4gICAgICBcIm5ldC50aFwiLFxuICAgICAgXCJvci50aFwiLFxuICAgICAgXCJ0alwiLFxuICAgICAgXCJhYy50alwiLFxuICAgICAgXCJiaXoudGpcIixcbiAgICAgIFwiY28udGpcIixcbiAgICAgIFwiY29tLnRqXCIsXG4gICAgICBcImVkdS50alwiLFxuICAgICAgXCJnby50alwiLFxuICAgICAgXCJnb3YudGpcIixcbiAgICAgIFwiaW50LnRqXCIsXG4gICAgICBcIm1pbC50alwiLFxuICAgICAgXCJuYW1lLnRqXCIsXG4gICAgICBcIm5ldC50alwiLFxuICAgICAgXCJuaWMudGpcIixcbiAgICAgIFwib3JnLnRqXCIsXG4gICAgICBcInRlc3QudGpcIixcbiAgICAgIFwid2ViLnRqXCIsXG4gICAgICBcInRrXCIsXG4gICAgICBcInRsXCIsXG4gICAgICBcImdvdi50bFwiLFxuICAgICAgXCJ0bVwiLFxuICAgICAgXCJjb20udG1cIixcbiAgICAgIFwiY28udG1cIixcbiAgICAgIFwib3JnLnRtXCIsXG4gICAgICBcIm5ldC50bVwiLFxuICAgICAgXCJub20udG1cIixcbiAgICAgIFwiZ292LnRtXCIsXG4gICAgICBcIm1pbC50bVwiLFxuICAgICAgXCJlZHUudG1cIixcbiAgICAgIFwidG5cIixcbiAgICAgIFwiY29tLnRuXCIsXG4gICAgICBcImVucy50blwiLFxuICAgICAgXCJmaW4udG5cIixcbiAgICAgIFwiZ292LnRuXCIsXG4gICAgICBcImluZC50blwiLFxuICAgICAgXCJpbmZvLnRuXCIsXG4gICAgICBcImludGwudG5cIixcbiAgICAgIFwibWluY29tLnRuXCIsXG4gICAgICBcIm5hdC50blwiLFxuICAgICAgXCJuZXQudG5cIixcbiAgICAgIFwib3JnLnRuXCIsXG4gICAgICBcInBlcnNvLnRuXCIsXG4gICAgICBcInRvdXJpc20udG5cIixcbiAgICAgIFwidG9cIixcbiAgICAgIFwiY29tLnRvXCIsXG4gICAgICBcImdvdi50b1wiLFxuICAgICAgXCJuZXQudG9cIixcbiAgICAgIFwib3JnLnRvXCIsXG4gICAgICBcImVkdS50b1wiLFxuICAgICAgXCJtaWwudG9cIixcbiAgICAgIFwidHJcIixcbiAgICAgIFwiYXYudHJcIixcbiAgICAgIFwiYmJzLnRyXCIsXG4gICAgICBcImJlbC50clwiLFxuICAgICAgXCJiaXoudHJcIixcbiAgICAgIFwiY29tLnRyXCIsXG4gICAgICBcImRyLnRyXCIsXG4gICAgICBcImVkdS50clwiLFxuICAgICAgXCJnZW4udHJcIixcbiAgICAgIFwiZ292LnRyXCIsXG4gICAgICBcImluZm8udHJcIixcbiAgICAgIFwibWlsLnRyXCIsXG4gICAgICBcImsxMi50clwiLFxuICAgICAgXCJrZXAudHJcIixcbiAgICAgIFwibmFtZS50clwiLFxuICAgICAgXCJuZXQudHJcIixcbiAgICAgIFwib3JnLnRyXCIsXG4gICAgICBcInBvbC50clwiLFxuICAgICAgXCJ0ZWwudHJcIixcbiAgICAgIFwidHNrLnRyXCIsXG4gICAgICBcInR2LnRyXCIsXG4gICAgICBcIndlYi50clwiLFxuICAgICAgXCJuYy50clwiLFxuICAgICAgXCJnb3YubmMudHJcIixcbiAgICAgIFwidHRcIixcbiAgICAgIFwiY28udHRcIixcbiAgICAgIFwiY29tLnR0XCIsXG4gICAgICBcIm9yZy50dFwiLFxuICAgICAgXCJuZXQudHRcIixcbiAgICAgIFwiYml6LnR0XCIsXG4gICAgICBcImluZm8udHRcIixcbiAgICAgIFwicHJvLnR0XCIsXG4gICAgICBcImludC50dFwiLFxuICAgICAgXCJjb29wLnR0XCIsXG4gICAgICBcImpvYnMudHRcIixcbiAgICAgIFwibW9iaS50dFwiLFxuICAgICAgXCJ0cmF2ZWwudHRcIixcbiAgICAgIFwibXVzZXVtLnR0XCIsXG4gICAgICBcImFlcm8udHRcIixcbiAgICAgIFwibmFtZS50dFwiLFxuICAgICAgXCJnb3YudHRcIixcbiAgICAgIFwiZWR1LnR0XCIsXG4gICAgICBcInR2XCIsXG4gICAgICBcInR3XCIsXG4gICAgICBcImVkdS50d1wiLFxuICAgICAgXCJnb3YudHdcIixcbiAgICAgIFwibWlsLnR3XCIsXG4gICAgICBcImNvbS50d1wiLFxuICAgICAgXCJuZXQudHdcIixcbiAgICAgIFwib3JnLnR3XCIsXG4gICAgICBcImlkdi50d1wiLFxuICAgICAgXCJnYW1lLnR3XCIsXG4gICAgICBcImViaXoudHdcIixcbiAgICAgIFwiY2x1Yi50d1wiLFxuICAgICAgXCJcXHU3REIyXFx1OERFRi50d1wiLFxuICAgICAgXCJcXHU3RDQ0XFx1N0U1NC50d1wiLFxuICAgICAgXCJcXHU1NTQ2XFx1Njk2RC50d1wiLFxuICAgICAgXCJ0elwiLFxuICAgICAgXCJhYy50elwiLFxuICAgICAgXCJjby50elwiLFxuICAgICAgXCJnby50elwiLFxuICAgICAgXCJob3RlbC50elwiLFxuICAgICAgXCJpbmZvLnR6XCIsXG4gICAgICBcIm1lLnR6XCIsXG4gICAgICBcIm1pbC50elwiLFxuICAgICAgXCJtb2JpLnR6XCIsXG4gICAgICBcIm5lLnR6XCIsXG4gICAgICBcIm9yLnR6XCIsXG4gICAgICBcInNjLnR6XCIsXG4gICAgICBcInR2LnR6XCIsXG4gICAgICBcInVhXCIsXG4gICAgICBcImNvbS51YVwiLFxuICAgICAgXCJlZHUudWFcIixcbiAgICAgIFwiZ292LnVhXCIsXG4gICAgICBcImluLnVhXCIsXG4gICAgICBcIm5ldC51YVwiLFxuICAgICAgXCJvcmcudWFcIixcbiAgICAgIFwiY2hlcmthc3N5LnVhXCIsXG4gICAgICBcImNoZXJrYXN5LnVhXCIsXG4gICAgICBcImNoZXJuaWdvdi51YVwiLFxuICAgICAgXCJjaGVybmloaXYudWFcIixcbiAgICAgIFwiY2hlcm5pdnRzaS51YVwiLFxuICAgICAgXCJjaGVybm92dHN5LnVhXCIsXG4gICAgICBcImNrLnVhXCIsXG4gICAgICBcImNuLnVhXCIsXG4gICAgICBcImNyLnVhXCIsXG4gICAgICBcImNyaW1lYS51YVwiLFxuICAgICAgXCJjdi51YVwiLFxuICAgICAgXCJkbi51YVwiLFxuICAgICAgXCJkbmVwcm9wZXRyb3Zzay51YVwiLFxuICAgICAgXCJkbmlwcm9wZXRyb3Zzay51YVwiLFxuICAgICAgXCJkb25ldHNrLnVhXCIsXG4gICAgICBcImRwLnVhXCIsXG4gICAgICBcImlmLnVhXCIsXG4gICAgICBcIml2YW5vLWZyYW5raXZzay51YVwiLFxuICAgICAgXCJraC51YVwiLFxuICAgICAgXCJraGFya2l2LnVhXCIsXG4gICAgICBcImtoYXJrb3YudWFcIixcbiAgICAgIFwia2hlcnNvbi51YVwiLFxuICAgICAgXCJraG1lbG5pdHNraXkudWFcIixcbiAgICAgIFwia2htZWxueXRza3lpLnVhXCIsXG4gICAgICBcImtpZXYudWFcIixcbiAgICAgIFwia2lyb3ZvZ3JhZC51YVwiLFxuICAgICAgXCJrbS51YVwiLFxuICAgICAgXCJrci51YVwiLFxuICAgICAgXCJrcnltLnVhXCIsXG4gICAgICBcImtzLnVhXCIsXG4gICAgICBcImt2LnVhXCIsXG4gICAgICBcImt5aXYudWFcIixcbiAgICAgIFwibGcudWFcIixcbiAgICAgIFwibHQudWFcIixcbiAgICAgIFwibHVnYW5zay51YVwiLFxuICAgICAgXCJsdXRzay51YVwiLFxuICAgICAgXCJsdi51YVwiLFxuICAgICAgXCJsdml2LnVhXCIsXG4gICAgICBcIm1rLnVhXCIsXG4gICAgICBcIm15a29sYWl2LnVhXCIsXG4gICAgICBcIm5pa29sYWV2LnVhXCIsXG4gICAgICBcIm9kLnVhXCIsXG4gICAgICBcIm9kZXNhLnVhXCIsXG4gICAgICBcIm9kZXNzYS51YVwiLFxuICAgICAgXCJwbC51YVwiLFxuICAgICAgXCJwb2x0YXZhLnVhXCIsXG4gICAgICBcInJpdm5lLnVhXCIsXG4gICAgICBcInJvdm5vLnVhXCIsXG4gICAgICBcInJ2LnVhXCIsXG4gICAgICBcInNiLnVhXCIsXG4gICAgICBcInNlYmFzdG9wb2wudWFcIixcbiAgICAgIFwic2V2YXN0b3BvbC51YVwiLFxuICAgICAgXCJzbS51YVwiLFxuICAgICAgXCJzdW15LnVhXCIsXG4gICAgICBcInRlLnVhXCIsXG4gICAgICBcInRlcm5vcGlsLnVhXCIsXG4gICAgICBcInV6LnVhXCIsXG4gICAgICBcInV6aGdvcm9kLnVhXCIsXG4gICAgICBcInZpbm5pY2EudWFcIixcbiAgICAgIFwidmlubnl0c2lhLnVhXCIsXG4gICAgICBcInZuLnVhXCIsXG4gICAgICBcInZvbHluLnVhXCIsXG4gICAgICBcInlhbHRhLnVhXCIsXG4gICAgICBcInphcG9yaXpoemhlLnVhXCIsXG4gICAgICBcInphcG9yaXpoemhpYS51YVwiLFxuICAgICAgXCJ6aGl0b21pci51YVwiLFxuICAgICAgXCJ6aHl0b215ci51YVwiLFxuICAgICAgXCJ6cC51YVwiLFxuICAgICAgXCJ6dC51YVwiLFxuICAgICAgXCJ1Z1wiLFxuICAgICAgXCJjby51Z1wiLFxuICAgICAgXCJvci51Z1wiLFxuICAgICAgXCJhYy51Z1wiLFxuICAgICAgXCJzYy51Z1wiLFxuICAgICAgXCJnby51Z1wiLFxuICAgICAgXCJuZS51Z1wiLFxuICAgICAgXCJjb20udWdcIixcbiAgICAgIFwib3JnLnVnXCIsXG4gICAgICBcInVrXCIsXG4gICAgICBcImFjLnVrXCIsXG4gICAgICBcImNvLnVrXCIsXG4gICAgICBcImdvdi51a1wiLFxuICAgICAgXCJsdGQudWtcIixcbiAgICAgIFwibWUudWtcIixcbiAgICAgIFwibmV0LnVrXCIsXG4gICAgICBcIm5ocy51a1wiLFxuICAgICAgXCJvcmcudWtcIixcbiAgICAgIFwicGxjLnVrXCIsXG4gICAgICBcInBvbGljZS51a1wiLFxuICAgICAgXCIqLnNjaC51a1wiLFxuICAgICAgXCJ1c1wiLFxuICAgICAgXCJkbmkudXNcIixcbiAgICAgIFwiZmVkLnVzXCIsXG4gICAgICBcImlzYS51c1wiLFxuICAgICAgXCJraWRzLnVzXCIsXG4gICAgICBcIm5zbi51c1wiLFxuICAgICAgXCJhay51c1wiLFxuICAgICAgXCJhbC51c1wiLFxuICAgICAgXCJhci51c1wiLFxuICAgICAgXCJhcy51c1wiLFxuICAgICAgXCJhei51c1wiLFxuICAgICAgXCJjYS51c1wiLFxuICAgICAgXCJjby51c1wiLFxuICAgICAgXCJjdC51c1wiLFxuICAgICAgXCJkYy51c1wiLFxuICAgICAgXCJkZS51c1wiLFxuICAgICAgXCJmbC51c1wiLFxuICAgICAgXCJnYS51c1wiLFxuICAgICAgXCJndS51c1wiLFxuICAgICAgXCJoaS51c1wiLFxuICAgICAgXCJpYS51c1wiLFxuICAgICAgXCJpZC51c1wiLFxuICAgICAgXCJpbC51c1wiLFxuICAgICAgXCJpbi51c1wiLFxuICAgICAgXCJrcy51c1wiLFxuICAgICAgXCJreS51c1wiLFxuICAgICAgXCJsYS51c1wiLFxuICAgICAgXCJtYS51c1wiLFxuICAgICAgXCJtZC51c1wiLFxuICAgICAgXCJtZS51c1wiLFxuICAgICAgXCJtaS51c1wiLFxuICAgICAgXCJtbi51c1wiLFxuICAgICAgXCJtby51c1wiLFxuICAgICAgXCJtcy51c1wiLFxuICAgICAgXCJtdC51c1wiLFxuICAgICAgXCJuYy51c1wiLFxuICAgICAgXCJuZC51c1wiLFxuICAgICAgXCJuZS51c1wiLFxuICAgICAgXCJuaC51c1wiLFxuICAgICAgXCJuai51c1wiLFxuICAgICAgXCJubS51c1wiLFxuICAgICAgXCJudi51c1wiLFxuICAgICAgXCJueS51c1wiLFxuICAgICAgXCJvaC51c1wiLFxuICAgICAgXCJvay51c1wiLFxuICAgICAgXCJvci51c1wiLFxuICAgICAgXCJwYS51c1wiLFxuICAgICAgXCJwci51c1wiLFxuICAgICAgXCJyaS51c1wiLFxuICAgICAgXCJzYy51c1wiLFxuICAgICAgXCJzZC51c1wiLFxuICAgICAgXCJ0bi51c1wiLFxuICAgICAgXCJ0eC51c1wiLFxuICAgICAgXCJ1dC51c1wiLFxuICAgICAgXCJ2aS51c1wiLFxuICAgICAgXCJ2dC51c1wiLFxuICAgICAgXCJ2YS51c1wiLFxuICAgICAgXCJ3YS51c1wiLFxuICAgICAgXCJ3aS51c1wiLFxuICAgICAgXCJ3di51c1wiLFxuICAgICAgXCJ3eS51c1wiLFxuICAgICAgXCJrMTIuYWsudXNcIixcbiAgICAgIFwiazEyLmFsLnVzXCIsXG4gICAgICBcImsxMi5hci51c1wiLFxuICAgICAgXCJrMTIuYXMudXNcIixcbiAgICAgIFwiazEyLmF6LnVzXCIsXG4gICAgICBcImsxMi5jYS51c1wiLFxuICAgICAgXCJrMTIuY28udXNcIixcbiAgICAgIFwiazEyLmN0LnVzXCIsXG4gICAgICBcImsxMi5kYy51c1wiLFxuICAgICAgXCJrMTIuZGUudXNcIixcbiAgICAgIFwiazEyLmZsLnVzXCIsXG4gICAgICBcImsxMi5nYS51c1wiLFxuICAgICAgXCJrMTIuZ3UudXNcIixcbiAgICAgIFwiazEyLmlhLnVzXCIsXG4gICAgICBcImsxMi5pZC51c1wiLFxuICAgICAgXCJrMTIuaWwudXNcIixcbiAgICAgIFwiazEyLmluLnVzXCIsXG4gICAgICBcImsxMi5rcy51c1wiLFxuICAgICAgXCJrMTIua3kudXNcIixcbiAgICAgIFwiazEyLmxhLnVzXCIsXG4gICAgICBcImsxMi5tYS51c1wiLFxuICAgICAgXCJrMTIubWQudXNcIixcbiAgICAgIFwiazEyLm1lLnVzXCIsXG4gICAgICBcImsxMi5taS51c1wiLFxuICAgICAgXCJrMTIubW4udXNcIixcbiAgICAgIFwiazEyLm1vLnVzXCIsXG4gICAgICBcImsxMi5tcy51c1wiLFxuICAgICAgXCJrMTIubXQudXNcIixcbiAgICAgIFwiazEyLm5jLnVzXCIsXG4gICAgICBcImsxMi5uZS51c1wiLFxuICAgICAgXCJrMTIubmgudXNcIixcbiAgICAgIFwiazEyLm5qLnVzXCIsXG4gICAgICBcImsxMi5ubS51c1wiLFxuICAgICAgXCJrMTIubnYudXNcIixcbiAgICAgIFwiazEyLm55LnVzXCIsXG4gICAgICBcImsxMi5vaC51c1wiLFxuICAgICAgXCJrMTIub2sudXNcIixcbiAgICAgIFwiazEyLm9yLnVzXCIsXG4gICAgICBcImsxMi5wYS51c1wiLFxuICAgICAgXCJrMTIucHIudXNcIixcbiAgICAgIFwiazEyLnNjLnVzXCIsXG4gICAgICBcImsxMi50bi51c1wiLFxuICAgICAgXCJrMTIudHgudXNcIixcbiAgICAgIFwiazEyLnV0LnVzXCIsXG4gICAgICBcImsxMi52aS51c1wiLFxuICAgICAgXCJrMTIudnQudXNcIixcbiAgICAgIFwiazEyLnZhLnVzXCIsXG4gICAgICBcImsxMi53YS51c1wiLFxuICAgICAgXCJrMTIud2kudXNcIixcbiAgICAgIFwiazEyLnd5LnVzXCIsXG4gICAgICBcImNjLmFrLnVzXCIsXG4gICAgICBcImNjLmFsLnVzXCIsXG4gICAgICBcImNjLmFyLnVzXCIsXG4gICAgICBcImNjLmFzLnVzXCIsXG4gICAgICBcImNjLmF6LnVzXCIsXG4gICAgICBcImNjLmNhLnVzXCIsXG4gICAgICBcImNjLmNvLnVzXCIsXG4gICAgICBcImNjLmN0LnVzXCIsXG4gICAgICBcImNjLmRjLnVzXCIsXG4gICAgICBcImNjLmRlLnVzXCIsXG4gICAgICBcImNjLmZsLnVzXCIsXG4gICAgICBcImNjLmdhLnVzXCIsXG4gICAgICBcImNjLmd1LnVzXCIsXG4gICAgICBcImNjLmhpLnVzXCIsXG4gICAgICBcImNjLmlhLnVzXCIsXG4gICAgICBcImNjLmlkLnVzXCIsXG4gICAgICBcImNjLmlsLnVzXCIsXG4gICAgICBcImNjLmluLnVzXCIsXG4gICAgICBcImNjLmtzLnVzXCIsXG4gICAgICBcImNjLmt5LnVzXCIsXG4gICAgICBcImNjLmxhLnVzXCIsXG4gICAgICBcImNjLm1hLnVzXCIsXG4gICAgICBcImNjLm1kLnVzXCIsXG4gICAgICBcImNjLm1lLnVzXCIsXG4gICAgICBcImNjLm1pLnVzXCIsXG4gICAgICBcImNjLm1uLnVzXCIsXG4gICAgICBcImNjLm1vLnVzXCIsXG4gICAgICBcImNjLm1zLnVzXCIsXG4gICAgICBcImNjLm10LnVzXCIsXG4gICAgICBcImNjLm5jLnVzXCIsXG4gICAgICBcImNjLm5kLnVzXCIsXG4gICAgICBcImNjLm5lLnVzXCIsXG4gICAgICBcImNjLm5oLnVzXCIsXG4gICAgICBcImNjLm5qLnVzXCIsXG4gICAgICBcImNjLm5tLnVzXCIsXG4gICAgICBcImNjLm52LnVzXCIsXG4gICAgICBcImNjLm55LnVzXCIsXG4gICAgICBcImNjLm9oLnVzXCIsXG4gICAgICBcImNjLm9rLnVzXCIsXG4gICAgICBcImNjLm9yLnVzXCIsXG4gICAgICBcImNjLnBhLnVzXCIsXG4gICAgICBcImNjLnByLnVzXCIsXG4gICAgICBcImNjLnJpLnVzXCIsXG4gICAgICBcImNjLnNjLnVzXCIsXG4gICAgICBcImNjLnNkLnVzXCIsXG4gICAgICBcImNjLnRuLnVzXCIsXG4gICAgICBcImNjLnR4LnVzXCIsXG4gICAgICBcImNjLnV0LnVzXCIsXG4gICAgICBcImNjLnZpLnVzXCIsXG4gICAgICBcImNjLnZ0LnVzXCIsXG4gICAgICBcImNjLnZhLnVzXCIsXG4gICAgICBcImNjLndhLnVzXCIsXG4gICAgICBcImNjLndpLnVzXCIsXG4gICAgICBcImNjLnd2LnVzXCIsXG4gICAgICBcImNjLnd5LnVzXCIsXG4gICAgICBcImxpYi5hay51c1wiLFxuICAgICAgXCJsaWIuYWwudXNcIixcbiAgICAgIFwibGliLmFyLnVzXCIsXG4gICAgICBcImxpYi5hcy51c1wiLFxuICAgICAgXCJsaWIuYXoudXNcIixcbiAgICAgIFwibGliLmNhLnVzXCIsXG4gICAgICBcImxpYi5jby51c1wiLFxuICAgICAgXCJsaWIuY3QudXNcIixcbiAgICAgIFwibGliLmRjLnVzXCIsXG4gICAgICBcImxpYi5mbC51c1wiLFxuICAgICAgXCJsaWIuZ2EudXNcIixcbiAgICAgIFwibGliLmd1LnVzXCIsXG4gICAgICBcImxpYi5oaS51c1wiLFxuICAgICAgXCJsaWIuaWEudXNcIixcbiAgICAgIFwibGliLmlkLnVzXCIsXG4gICAgICBcImxpYi5pbC51c1wiLFxuICAgICAgXCJsaWIuaW4udXNcIixcbiAgICAgIFwibGliLmtzLnVzXCIsXG4gICAgICBcImxpYi5reS51c1wiLFxuICAgICAgXCJsaWIubGEudXNcIixcbiAgICAgIFwibGliLm1hLnVzXCIsXG4gICAgICBcImxpYi5tZC51c1wiLFxuICAgICAgXCJsaWIubWUudXNcIixcbiAgICAgIFwibGliLm1pLnVzXCIsXG4gICAgICBcImxpYi5tbi51c1wiLFxuICAgICAgXCJsaWIubW8udXNcIixcbiAgICAgIFwibGliLm1zLnVzXCIsXG4gICAgICBcImxpYi5tdC51c1wiLFxuICAgICAgXCJsaWIubmMudXNcIixcbiAgICAgIFwibGliLm5kLnVzXCIsXG4gICAgICBcImxpYi5uZS51c1wiLFxuICAgICAgXCJsaWIubmgudXNcIixcbiAgICAgIFwibGliLm5qLnVzXCIsXG4gICAgICBcImxpYi5ubS51c1wiLFxuICAgICAgXCJsaWIubnYudXNcIixcbiAgICAgIFwibGliLm55LnVzXCIsXG4gICAgICBcImxpYi5vaC51c1wiLFxuICAgICAgXCJsaWIub2sudXNcIixcbiAgICAgIFwibGliLm9yLnVzXCIsXG4gICAgICBcImxpYi5wYS51c1wiLFxuICAgICAgXCJsaWIucHIudXNcIixcbiAgICAgIFwibGliLnJpLnVzXCIsXG4gICAgICBcImxpYi5zYy51c1wiLFxuICAgICAgXCJsaWIuc2QudXNcIixcbiAgICAgIFwibGliLnRuLnVzXCIsXG4gICAgICBcImxpYi50eC51c1wiLFxuICAgICAgXCJsaWIudXQudXNcIixcbiAgICAgIFwibGliLnZpLnVzXCIsXG4gICAgICBcImxpYi52dC51c1wiLFxuICAgICAgXCJsaWIudmEudXNcIixcbiAgICAgIFwibGliLndhLnVzXCIsXG4gICAgICBcImxpYi53aS51c1wiLFxuICAgICAgXCJsaWIud3kudXNcIixcbiAgICAgIFwicHZ0LmsxMi5tYS51c1wiLFxuICAgICAgXCJjaHRyLmsxMi5tYS51c1wiLFxuICAgICAgXCJwYXJvY2guazEyLm1hLnVzXCIsXG4gICAgICBcImFubi1hcmJvci5taS51c1wiLFxuICAgICAgXCJjb2cubWkudXNcIixcbiAgICAgIFwiZHN0Lm1pLnVzXCIsXG4gICAgICBcImVhdG9uLm1pLnVzXCIsXG4gICAgICBcImdlbi5taS51c1wiLFxuICAgICAgXCJtdXMubWkudXNcIixcbiAgICAgIFwidGVjLm1pLnVzXCIsXG4gICAgICBcIndhc2h0ZW5hdy5taS51c1wiLFxuICAgICAgXCJ1eVwiLFxuICAgICAgXCJjb20udXlcIixcbiAgICAgIFwiZWR1LnV5XCIsXG4gICAgICBcImd1Yi51eVwiLFxuICAgICAgXCJtaWwudXlcIixcbiAgICAgIFwibmV0LnV5XCIsXG4gICAgICBcIm9yZy51eVwiLFxuICAgICAgXCJ1elwiLFxuICAgICAgXCJjby51elwiLFxuICAgICAgXCJjb20udXpcIixcbiAgICAgIFwibmV0LnV6XCIsXG4gICAgICBcIm9yZy51elwiLFxuICAgICAgXCJ2YVwiLFxuICAgICAgXCJ2Y1wiLFxuICAgICAgXCJjb20udmNcIixcbiAgICAgIFwibmV0LnZjXCIsXG4gICAgICBcIm9yZy52Y1wiLFxuICAgICAgXCJnb3YudmNcIixcbiAgICAgIFwibWlsLnZjXCIsXG4gICAgICBcImVkdS52Y1wiLFxuICAgICAgXCJ2ZVwiLFxuICAgICAgXCJhcnRzLnZlXCIsXG4gICAgICBcImJpYi52ZVwiLFxuICAgICAgXCJjby52ZVwiLFxuICAgICAgXCJjb20udmVcIixcbiAgICAgIFwiZTEyLnZlXCIsXG4gICAgICBcImVkdS52ZVwiLFxuICAgICAgXCJmaXJtLnZlXCIsXG4gICAgICBcImdvYi52ZVwiLFxuICAgICAgXCJnb3YudmVcIixcbiAgICAgIFwiaW5mby52ZVwiLFxuICAgICAgXCJpbnQudmVcIixcbiAgICAgIFwibWlsLnZlXCIsXG4gICAgICBcIm5ldC52ZVwiLFxuICAgICAgXCJub20udmVcIixcbiAgICAgIFwib3JnLnZlXCIsXG4gICAgICBcInJhci52ZVwiLFxuICAgICAgXCJyZWMudmVcIixcbiAgICAgIFwic3RvcmUudmVcIixcbiAgICAgIFwidGVjLnZlXCIsXG4gICAgICBcIndlYi52ZVwiLFxuICAgICAgXCJ2Z1wiLFxuICAgICAgXCJ2aVwiLFxuICAgICAgXCJjby52aVwiLFxuICAgICAgXCJjb20udmlcIixcbiAgICAgIFwiazEyLnZpXCIsXG4gICAgICBcIm5ldC52aVwiLFxuICAgICAgXCJvcmcudmlcIixcbiAgICAgIFwidm5cIixcbiAgICAgIFwiY29tLnZuXCIsXG4gICAgICBcIm5ldC52blwiLFxuICAgICAgXCJvcmcudm5cIixcbiAgICAgIFwiZWR1LnZuXCIsXG4gICAgICBcImdvdi52blwiLFxuICAgICAgXCJpbnQudm5cIixcbiAgICAgIFwiYWMudm5cIixcbiAgICAgIFwiYml6LnZuXCIsXG4gICAgICBcImluZm8udm5cIixcbiAgICAgIFwibmFtZS52blwiLFxuICAgICAgXCJwcm8udm5cIixcbiAgICAgIFwiaGVhbHRoLnZuXCIsXG4gICAgICBcInZ1XCIsXG4gICAgICBcImNvbS52dVwiLFxuICAgICAgXCJlZHUudnVcIixcbiAgICAgIFwibmV0LnZ1XCIsXG4gICAgICBcIm9yZy52dVwiLFxuICAgICAgXCJ3ZlwiLFxuICAgICAgXCJ3c1wiLFxuICAgICAgXCJjb20ud3NcIixcbiAgICAgIFwibmV0LndzXCIsXG4gICAgICBcIm9yZy53c1wiLFxuICAgICAgXCJnb3Yud3NcIixcbiAgICAgIFwiZWR1LndzXCIsXG4gICAgICBcInl0XCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ1XFx1MDYyN1xcdTA2MzFcXHUwNjI3XFx1MDYyQVwiLFxuICAgICAgXCJcXHUwNTcwXFx1MDU2MVxcdTA1NzVcIixcbiAgICAgIFwiXFx1MDlBQ1xcdTA5QkVcXHUwOTgyXFx1MDlCMlxcdTA5QkVcIixcbiAgICAgIFwiXFx1MDQzMVxcdTA0MzNcIixcbiAgICAgIFwiXFx1MDYyN1xcdTA2NDRcXHUwNjI4XFx1MDYyRFxcdTA2MzFcXHUwNjRBXFx1MDY0NlwiLFxuICAgICAgXCJcXHUwNDMxXFx1MDQzNVxcdTA0M0JcIixcbiAgICAgIFwiXFx1NEUyRFxcdTU2RkRcIixcbiAgICAgIFwiXFx1NEUyRFxcdTU3MEJcIixcbiAgICAgIFwiXFx1MDYyN1xcdTA2NDRcXHUwNjJDXFx1MDYzMlxcdTA2MjdcXHUwNjI2XFx1MDYzMVwiLFxuICAgICAgXCJcXHUwNjQ1XFx1MDYzNVxcdTA2MzFcIixcbiAgICAgIFwiXFx1MDQzNVxcdTA0NEVcIixcbiAgICAgIFwiXFx1MDNCNVxcdTAzQzVcIixcbiAgICAgIFwiXFx1MDY0NVxcdTA2NDhcXHUwNjMxXFx1MDY0QVxcdTA2MkFcXHUwNjI3XFx1MDY0NlxcdTA2NEFcXHUwNjI3XCIsXG4gICAgICBcIlxcdTEwRDJcXHUxMEQ0XCIsXG4gICAgICBcIlxcdTAzQjVcXHUwM0JCXCIsXG4gICAgICBcIlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTUxNkNcXHU1M0Y4LlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTY1NTlcXHU4MEIyLlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTY1M0ZcXHU1RTlDLlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTUwMEJcXHU0RUJBLlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTdEQjJcXHU3RDYxLlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTdENDRcXHU3RTU0LlxcdTk5OTlcXHU2RTJGXCIsXG4gICAgICBcIlxcdTBDQURcXHUwQ0JFXFx1MENCMFxcdTBDQTRcIixcbiAgICAgIFwiXFx1MEIyRFxcdTBCM0VcXHUwQjMwXFx1MEIyNFwiLFxuICAgICAgXCJcXHUwOUFEXFx1MDlCRVxcdTA5RjBcXHUwOUE0XCIsXG4gICAgICBcIlxcdTA5MkRcXHUwOTNFXFx1MDkzMFxcdTA5MjRcXHUwOTJFXFx1MDk0RFwiLFxuICAgICAgXCJcXHUwOTJEXFx1MDkzRVxcdTA5MzBcXHUwOTRCXFx1MDkyNFwiLFxuICAgICAgXCJcXHUwNjgwXFx1MDYyN1xcdTA2MzFcXHUwNjJBXCIsXG4gICAgICBcIlxcdTBEMkRcXHUwRDNFXFx1MEQzMFxcdTBEMjRcXHUwRDAyXCIsXG4gICAgICBcIlxcdTA5MkRcXHUwOTNFXFx1MDkzMFxcdTA5MjRcIixcbiAgICAgIFwiXFx1MDYyOFxcdTA2MjdcXHUwNjMxXFx1MDYyQVwiLFxuICAgICAgXCJcXHUwNjI4XFx1MDZCRVxcdTA2MjdcXHUwNjMxXFx1MDYyQVwiLFxuICAgICAgXCJcXHUwQzJEXFx1MEMzRVxcdTBDMzBcXHUwQzI0XFx1MEM0RFwiLFxuICAgICAgXCJcXHUwQUFEXFx1MEFCRVxcdTBBQjBcXHUwQUE0XCIsXG4gICAgICBcIlxcdTBBMkRcXHUwQTNFXFx1MEEzMFxcdTBBMjRcIixcbiAgICAgIFwiXFx1MDlBRFxcdTA5QkVcXHUwOUIwXFx1MDlBNFwiLFxuICAgICAgXCJcXHUwQjg3XFx1MEJBOFxcdTBCQ0RcXHUwQkE0XFx1MEJCRlxcdTBCQUZcXHUwQkJFXCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNkNDXFx1MDYzMVxcdTA2MjdcXHUwNjQ2XCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjRBXFx1MDYzMVxcdTA2MjdcXHUwNjQ2XCIsXG4gICAgICBcIlxcdTA2MzlcXHUwNjMxXFx1MDYyN1xcdTA2NDJcIixcbiAgICAgIFwiXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MkZcXHUwNjQ2XCIsXG4gICAgICBcIlxcdUQ1NUNcXHVBRDZEXCIsXG4gICAgICBcIlxcdTA0OUJcXHUwNDMwXFx1MDQzN1wiLFxuICAgICAgXCJcXHUwRUE1XFx1MEVCMlxcdTBFQTdcIixcbiAgICAgIFwiXFx1MERCRFxcdTBEODJcXHUwRDlBXFx1MERDRlwiLFxuICAgICAgXCJcXHUwQjg3XFx1MEJCMlxcdTBCOTlcXHUwQkNEXFx1MEI5NVxcdTBCQzhcIixcbiAgICAgIFwiXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYzQVxcdTA2MzFcXHUwNjI4XCIsXG4gICAgICBcIlxcdTA0M0NcXHUwNDNBXFx1MDQzNFwiLFxuICAgICAgXCJcXHUwNDNDXFx1MDQzRVxcdTA0M0RcIixcbiAgICAgIFwiXFx1NkZCM1xcdTk1ODBcIixcbiAgICAgIFwiXFx1NkZCM1xcdTk1RThcIixcbiAgICAgIFwiXFx1MDY0NVxcdTA2NDRcXHUwNjRBXFx1MDYzM1xcdTA2NEFcXHUwNjI3XCIsXG4gICAgICBcIlxcdTA2MzlcXHUwNjQ1XFx1MDYyN1xcdTA2NDZcIixcbiAgICAgIFwiXFx1MDY3RVxcdTA2MjdcXHUwNkE5XFx1MDYzM1xcdTA2MkFcXHUwNjI3XFx1MDY0NlwiLFxuICAgICAgXCJcXHUwNjdFXFx1MDYyN1xcdTA2NDNcXHUwNjMzXFx1MDYyQVxcdTA2MjdcXHUwNjQ2XCIsXG4gICAgICBcIlxcdTA2NDFcXHUwNjQ0XFx1MDYzM1xcdTA2MzdcXHUwNjRBXFx1MDY0NlwiLFxuICAgICAgXCJcXHUwNDQxXFx1MDQ0MFxcdTA0MzFcIixcbiAgICAgIFwiXFx1MDQzRlxcdTA0NDAuXFx1MDQ0MVxcdTA0NDBcXHUwNDMxXCIsXG4gICAgICBcIlxcdTA0M0VcXHUwNDQwXFx1MDQzMy5cXHUwNDQxXFx1MDQ0MFxcdTA0MzFcIixcbiAgICAgIFwiXFx1MDQzRVxcdTA0MzFcXHUwNDQwLlxcdTA0NDFcXHUwNDQwXFx1MDQzMVwiLFxuICAgICAgXCJcXHUwNDNFXFx1MDQzNC5cXHUwNDQxXFx1MDQ0MFxcdTA0MzFcIixcbiAgICAgIFwiXFx1MDQ0M1xcdTA0M0ZcXHUwNDQwLlxcdTA0NDFcXHUwNDQwXFx1MDQzMVwiLFxuICAgICAgXCJcXHUwNDMwXFx1MDQzQS5cXHUwNDQxXFx1MDQ0MFxcdTA0MzFcIixcbiAgICAgIFwiXFx1MDQ0MFxcdTA0NDRcIixcbiAgICAgIFwiXFx1MDY0MlxcdTA2MzdcXHUwNjMxXCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzM1xcdTA2MzlcXHUwNjQ4XFx1MDYyRlxcdTA2NEFcXHUwNjI5XCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzM1xcdTA2MzlcXHUwNjQ4XFx1MDYyRlxcdTA2Q0NcXHUwNjI5XCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzM1xcdTA2MzlcXHUwNjQ4XFx1MDYyRlxcdTA2Q0NcXHUwNkMzXCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzM1xcdTA2MzlcXHUwNjQ4XFx1MDYyRlxcdTA2NEFcXHUwNjQ3XCIsXG4gICAgICBcIlxcdTA2MzNcXHUwNjQ4XFx1MDYyRlxcdTA2MjdcXHUwNjQ2XCIsXG4gICAgICBcIlxcdTY1QjBcXHU1MkEwXFx1NTc2MVwiLFxuICAgICAgXCJcXHUwQjlBXFx1MEJCRlxcdTBCOTlcXHUwQkNEXFx1MEI5NVxcdTBCQUFcXHUwQkNEXFx1MEJBQVxcdTBCQzJcXHUwQkIwXFx1MEJDRFwiLFxuICAgICAgXCJcXHUwNjMzXFx1MDY0OFxcdTA2MzFcXHUwNjRBXFx1MDYyOVwiLFxuICAgICAgXCJcXHUwNjMzXFx1MDY0OFxcdTA2MzFcXHUwNjRBXFx1MDYyN1wiLFxuICAgICAgXCJcXHUwRTQ0XFx1MEUxN1xcdTBFMjJcIixcbiAgICAgIFwiXFx1MEUyOFxcdTBFMzZcXHUwRTAxXFx1MEUyOVxcdTBFMzIuXFx1MEU0NFxcdTBFMTdcXHUwRTIyXCIsXG4gICAgICBcIlxcdTBFMThcXHUwRTM4XFx1MEUyM1xcdTBFMDFcXHUwRTM0XFx1MEUwOC5cXHUwRTQ0XFx1MEUxN1xcdTBFMjJcIixcbiAgICAgIFwiXFx1MEUyM1xcdTBFMzFcXHUwRTEwXFx1MEUxQVxcdTBFMzJcXHUwRTI1LlxcdTBFNDRcXHUwRTE3XFx1MEUyMlwiLFxuICAgICAgXCJcXHUwRTE3XFx1MEUyQlxcdTBFMzJcXHUwRTIzLlxcdTBFNDRcXHUwRTE3XFx1MEUyMlwiLFxuICAgICAgXCJcXHUwRTQwXFx1MEUxOVxcdTBFNDdcXHUwRTE1LlxcdTBFNDRcXHUwRTE3XFx1MEUyMlwiLFxuICAgICAgXCJcXHUwRTJEXFx1MEUwN1xcdTBFMDRcXHUwRTRDXFx1MEUwMVxcdTBFMjMuXFx1MEU0NFxcdTBFMTdcXHUwRTIyXCIsXG4gICAgICBcIlxcdTA2MkFcXHUwNjQ4XFx1MDY0NlxcdTA2MzNcIixcbiAgICAgIFwiXFx1NTNGMFxcdTcwNjNcIixcbiAgICAgIFwiXFx1NTNGMFxcdTZFN0VcIixcbiAgICAgIFwiXFx1ODFGQVxcdTcwNjNcIixcbiAgICAgIFwiXFx1MDQ0M1xcdTA0M0FcXHUwNDQwXCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjQ0XFx1MDY0QVxcdTA2NDVcXHUwNjQ2XCIsXG4gICAgICBcInh4eFwiLFxuICAgICAgXCJ5ZVwiLFxuICAgICAgXCJjb20ueWVcIixcbiAgICAgIFwiZWR1LnllXCIsXG4gICAgICBcImdvdi55ZVwiLFxuICAgICAgXCJuZXQueWVcIixcbiAgICAgIFwibWlsLnllXCIsXG4gICAgICBcIm9yZy55ZVwiLFxuICAgICAgXCJhYy56YVwiLFxuICAgICAgXCJhZ3JpYy56YVwiLFxuICAgICAgXCJhbHQuemFcIixcbiAgICAgIFwiY28uemFcIixcbiAgICAgIFwiZWR1LnphXCIsXG4gICAgICBcImdvdi56YVwiLFxuICAgICAgXCJncm9uZGFyLnphXCIsXG4gICAgICBcImxhdy56YVwiLFxuICAgICAgXCJtaWwuemFcIixcbiAgICAgIFwibmV0LnphXCIsXG4gICAgICBcIm5nby56YVwiLFxuICAgICAgXCJuaWMuemFcIixcbiAgICAgIFwibmlzLnphXCIsXG4gICAgICBcIm5vbS56YVwiLFxuICAgICAgXCJvcmcuemFcIixcbiAgICAgIFwic2Nob29sLnphXCIsXG4gICAgICBcInRtLnphXCIsXG4gICAgICBcIndlYi56YVwiLFxuICAgICAgXCJ6bVwiLFxuICAgICAgXCJhYy56bVwiLFxuICAgICAgXCJiaXouem1cIixcbiAgICAgIFwiY28uem1cIixcbiAgICAgIFwiY29tLnptXCIsXG4gICAgICBcImVkdS56bVwiLFxuICAgICAgXCJnb3Yuem1cIixcbiAgICAgIFwiaW5mby56bVwiLFxuICAgICAgXCJtaWwuem1cIixcbiAgICAgIFwibmV0LnptXCIsXG4gICAgICBcIm9yZy56bVwiLFxuICAgICAgXCJzY2guem1cIixcbiAgICAgIFwiendcIixcbiAgICAgIFwiYWMuendcIixcbiAgICAgIFwiY28uendcIixcbiAgICAgIFwiZ292Lnp3XCIsXG4gICAgICBcIm1pbC56d1wiLFxuICAgICAgXCJvcmcuendcIixcbiAgICAgIFwiYWFhXCIsXG4gICAgICBcImFhcnBcIixcbiAgICAgIFwiYWJhcnRoXCIsXG4gICAgICBcImFiYlwiLFxuICAgICAgXCJhYmJvdHRcIixcbiAgICAgIFwiYWJidmllXCIsXG4gICAgICBcImFiY1wiLFxuICAgICAgXCJhYmxlXCIsXG4gICAgICBcImFib2dhZG9cIixcbiAgICAgIFwiYWJ1ZGhhYmlcIixcbiAgICAgIFwiYWNhZGVteVwiLFxuICAgICAgXCJhY2NlbnR1cmVcIixcbiAgICAgIFwiYWNjb3VudGFudFwiLFxuICAgICAgXCJhY2NvdW50YW50c1wiLFxuICAgICAgXCJhY29cIixcbiAgICAgIFwiYWN0b3JcIixcbiAgICAgIFwiYWRhY1wiLFxuICAgICAgXCJhZHNcIixcbiAgICAgIFwiYWR1bHRcIixcbiAgICAgIFwiYWVnXCIsXG4gICAgICBcImFldG5hXCIsXG4gICAgICBcImFmbFwiLFxuICAgICAgXCJhZnJpY2FcIixcbiAgICAgIFwiYWdha2hhblwiLFxuICAgICAgXCJhZ2VuY3lcIixcbiAgICAgIFwiYWlnXCIsXG4gICAgICBcImFpcmJ1c1wiLFxuICAgICAgXCJhaXJmb3JjZVwiLFxuICAgICAgXCJhaXJ0ZWxcIixcbiAgICAgIFwiYWtkblwiLFxuICAgICAgXCJhbGZhcm9tZW9cIixcbiAgICAgIFwiYWxpYmFiYVwiLFxuICAgICAgXCJhbGlwYXlcIixcbiAgICAgIFwiYWxsZmluYW56XCIsXG4gICAgICBcImFsbHN0YXRlXCIsXG4gICAgICBcImFsbHlcIixcbiAgICAgIFwiYWxzYWNlXCIsXG4gICAgICBcImFsc3RvbVwiLFxuICAgICAgXCJhbWF6b25cIixcbiAgICAgIFwiYW1lcmljYW5leHByZXNzXCIsXG4gICAgICBcImFtZXJpY2FuZmFtaWx5XCIsXG4gICAgICBcImFtZXhcIixcbiAgICAgIFwiYW1mYW1cIixcbiAgICAgIFwiYW1pY2FcIixcbiAgICAgIFwiYW1zdGVyZGFtXCIsXG4gICAgICBcImFuYWx5dGljc1wiLFxuICAgICAgXCJhbmRyb2lkXCIsXG4gICAgICBcImFucXVhblwiLFxuICAgICAgXCJhbnpcIixcbiAgICAgIFwiYW9sXCIsXG4gICAgICBcImFwYXJ0bWVudHNcIixcbiAgICAgIFwiYXBwXCIsXG4gICAgICBcImFwcGxlXCIsXG4gICAgICBcImFxdWFyZWxsZVwiLFxuICAgICAgXCJhcmFiXCIsXG4gICAgICBcImFyYW1jb1wiLFxuICAgICAgXCJhcmNoaVwiLFxuICAgICAgXCJhcm15XCIsXG4gICAgICBcImFydFwiLFxuICAgICAgXCJhcnRlXCIsXG4gICAgICBcImFzZGFcIixcbiAgICAgIFwiYXNzb2NpYXRlc1wiLFxuICAgICAgXCJhdGhsZXRhXCIsXG4gICAgICBcImF0dG9ybmV5XCIsXG4gICAgICBcImF1Y3Rpb25cIixcbiAgICAgIFwiYXVkaVwiLFxuICAgICAgXCJhdWRpYmxlXCIsXG4gICAgICBcImF1ZGlvXCIsXG4gICAgICBcImF1c3Bvc3RcIixcbiAgICAgIFwiYXV0aG9yXCIsXG4gICAgICBcImF1dG9cIixcbiAgICAgIFwiYXV0b3NcIixcbiAgICAgIFwiYXZpYW5jYVwiLFxuICAgICAgXCJhd3NcIixcbiAgICAgIFwiYXhhXCIsXG4gICAgICBcImF6dXJlXCIsXG4gICAgICBcImJhYnlcIixcbiAgICAgIFwiYmFpZHVcIixcbiAgICAgIFwiYmFuYW1leFwiLFxuICAgICAgXCJiYW5hbmFyZXB1YmxpY1wiLFxuICAgICAgXCJiYW5kXCIsXG4gICAgICBcImJhbmtcIixcbiAgICAgIFwiYmFyXCIsXG4gICAgICBcImJhcmNlbG9uYVwiLFxuICAgICAgXCJiYXJjbGF5Y2FyZFwiLFxuICAgICAgXCJiYXJjbGF5c1wiLFxuICAgICAgXCJiYXJlZm9vdFwiLFxuICAgICAgXCJiYXJnYWluc1wiLFxuICAgICAgXCJiYXNlYmFsbFwiLFxuICAgICAgXCJiYXNrZXRiYWxsXCIsXG4gICAgICBcImJhdWhhdXNcIixcbiAgICAgIFwiYmF5ZXJuXCIsXG4gICAgICBcImJiY1wiLFxuICAgICAgXCJiYnRcIixcbiAgICAgIFwiYmJ2YVwiLFxuICAgICAgXCJiY2dcIixcbiAgICAgIFwiYmNuXCIsXG4gICAgICBcImJlYXRzXCIsXG4gICAgICBcImJlYXV0eVwiLFxuICAgICAgXCJiZWVyXCIsXG4gICAgICBcImJlbnRsZXlcIixcbiAgICAgIFwiYmVybGluXCIsXG4gICAgICBcImJlc3RcIixcbiAgICAgIFwiYmVzdGJ1eVwiLFxuICAgICAgXCJiZXRcIixcbiAgICAgIFwiYmhhcnRpXCIsXG4gICAgICBcImJpYmxlXCIsXG4gICAgICBcImJpZFwiLFxuICAgICAgXCJiaWtlXCIsXG4gICAgICBcImJpbmdcIixcbiAgICAgIFwiYmluZ29cIixcbiAgICAgIFwiYmlvXCIsXG4gICAgICBcImJsYWNrXCIsXG4gICAgICBcImJsYWNrZnJpZGF5XCIsXG4gICAgICBcImJsb2NrYnVzdGVyXCIsXG4gICAgICBcImJsb2dcIixcbiAgICAgIFwiYmxvb21iZXJnXCIsXG4gICAgICBcImJsdWVcIixcbiAgICAgIFwiYm1zXCIsXG4gICAgICBcImJtd1wiLFxuICAgICAgXCJibnBwYXJpYmFzXCIsXG4gICAgICBcImJvYXRzXCIsXG4gICAgICBcImJvZWhyaW5nZXJcIixcbiAgICAgIFwiYm9mYVwiLFxuICAgICAgXCJib21cIixcbiAgICAgIFwiYm9uZFwiLFxuICAgICAgXCJib29cIixcbiAgICAgIFwiYm9va1wiLFxuICAgICAgXCJib29raW5nXCIsXG4gICAgICBcImJvc2NoXCIsXG4gICAgICBcImJvc3Rpa1wiLFxuICAgICAgXCJib3N0b25cIixcbiAgICAgIFwiYm90XCIsXG4gICAgICBcImJvdXRpcXVlXCIsXG4gICAgICBcImJveFwiLFxuICAgICAgXCJicmFkZXNjb1wiLFxuICAgICAgXCJicmlkZ2VzdG9uZVwiLFxuICAgICAgXCJicm9hZHdheVwiLFxuICAgICAgXCJicm9rZXJcIixcbiAgICAgIFwiYnJvdGhlclwiLFxuICAgICAgXCJicnVzc2Vsc1wiLFxuICAgICAgXCJidWdhdHRpXCIsXG4gICAgICBcImJ1aWxkXCIsXG4gICAgICBcImJ1aWxkZXJzXCIsXG4gICAgICBcImJ1c2luZXNzXCIsXG4gICAgICBcImJ1eVwiLFxuICAgICAgXCJidXp6XCIsXG4gICAgICBcImJ6aFwiLFxuICAgICAgXCJjYWJcIixcbiAgICAgIFwiY2FmZVwiLFxuICAgICAgXCJjYWxcIixcbiAgICAgIFwiY2FsbFwiLFxuICAgICAgXCJjYWx2aW5rbGVpblwiLFxuICAgICAgXCJjYW1cIixcbiAgICAgIFwiY2FtZXJhXCIsXG4gICAgICBcImNhbXBcIixcbiAgICAgIFwiY2FuY2VycmVzZWFyY2hcIixcbiAgICAgIFwiY2Fub25cIixcbiAgICAgIFwiY2FwZXRvd25cIixcbiAgICAgIFwiY2FwaXRhbFwiLFxuICAgICAgXCJjYXBpdGFsb25lXCIsXG4gICAgICBcImNhclwiLFxuICAgICAgXCJjYXJhdmFuXCIsXG4gICAgICBcImNhcmRzXCIsXG4gICAgICBcImNhcmVcIixcbiAgICAgIFwiY2FyZWVyXCIsXG4gICAgICBcImNhcmVlcnNcIixcbiAgICAgIFwiY2Fyc1wiLFxuICAgICAgXCJjYXNhXCIsXG4gICAgICBcImNhc2VcIixcbiAgICAgIFwiY2FzaFwiLFxuICAgICAgXCJjYXNpbm9cIixcbiAgICAgIFwiY2F0ZXJpbmdcIixcbiAgICAgIFwiY2F0aG9saWNcIixcbiAgICAgIFwiY2JhXCIsXG4gICAgICBcImNiblwiLFxuICAgICAgXCJjYnJlXCIsXG4gICAgICBcImNic1wiLFxuICAgICAgXCJjZW50ZXJcIixcbiAgICAgIFwiY2VvXCIsXG4gICAgICBcImNlcm5cIixcbiAgICAgIFwiY2ZhXCIsXG4gICAgICBcImNmZFwiLFxuICAgICAgXCJjaGFuZWxcIixcbiAgICAgIFwiY2hhbm5lbFwiLFxuICAgICAgXCJjaGFyaXR5XCIsXG4gICAgICBcImNoYXNlXCIsXG4gICAgICBcImNoYXRcIixcbiAgICAgIFwiY2hlYXBcIixcbiAgICAgIFwiY2hpbnRhaVwiLFxuICAgICAgXCJjaHJpc3RtYXNcIixcbiAgICAgIFwiY2hyb21lXCIsXG4gICAgICBcImNodXJjaFwiLFxuICAgICAgXCJjaXByaWFuaVwiLFxuICAgICAgXCJjaXJjbGVcIixcbiAgICAgIFwiY2lzY29cIixcbiAgICAgIFwiY2l0YWRlbFwiLFxuICAgICAgXCJjaXRpXCIsXG4gICAgICBcImNpdGljXCIsXG4gICAgICBcImNpdHlcIixcbiAgICAgIFwiY2l0eWVhdHNcIixcbiAgICAgIFwiY2xhaW1zXCIsXG4gICAgICBcImNsZWFuaW5nXCIsXG4gICAgICBcImNsaWNrXCIsXG4gICAgICBcImNsaW5pY1wiLFxuICAgICAgXCJjbGluaXF1ZVwiLFxuICAgICAgXCJjbG90aGluZ1wiLFxuICAgICAgXCJjbG91ZFwiLFxuICAgICAgXCJjbHViXCIsXG4gICAgICBcImNsdWJtZWRcIixcbiAgICAgIFwiY29hY2hcIixcbiAgICAgIFwiY29kZXNcIixcbiAgICAgIFwiY29mZmVlXCIsXG4gICAgICBcImNvbGxlZ2VcIixcbiAgICAgIFwiY29sb2duZVwiLFxuICAgICAgXCJjb21jYXN0XCIsXG4gICAgICBcImNvbW1iYW5rXCIsXG4gICAgICBcImNvbW11bml0eVwiLFxuICAgICAgXCJjb21wYW55XCIsXG4gICAgICBcImNvbXBhcmVcIixcbiAgICAgIFwiY29tcHV0ZXJcIixcbiAgICAgIFwiY29tc2VjXCIsXG4gICAgICBcImNvbmRvc1wiLFxuICAgICAgXCJjb25zdHJ1Y3Rpb25cIixcbiAgICAgIFwiY29uc3VsdGluZ1wiLFxuICAgICAgXCJjb250YWN0XCIsXG4gICAgICBcImNvbnRyYWN0b3JzXCIsXG4gICAgICBcImNvb2tpbmdcIixcbiAgICAgIFwiY29va2luZ2NoYW5uZWxcIixcbiAgICAgIFwiY29vbFwiLFxuICAgICAgXCJjb3JzaWNhXCIsXG4gICAgICBcImNvdW50cnlcIixcbiAgICAgIFwiY291cG9uXCIsXG4gICAgICBcImNvdXBvbnNcIixcbiAgICAgIFwiY291cnNlc1wiLFxuICAgICAgXCJjcGFcIixcbiAgICAgIFwiY3JlZGl0XCIsXG4gICAgICBcImNyZWRpdGNhcmRcIixcbiAgICAgIFwiY3JlZGl0dW5pb25cIixcbiAgICAgIFwiY3JpY2tldFwiLFxuICAgICAgXCJjcm93blwiLFxuICAgICAgXCJjcnNcIixcbiAgICAgIFwiY3J1aXNlXCIsXG4gICAgICBcImNydWlzZXNcIixcbiAgICAgIFwiY3Vpc2luZWxsYVwiLFxuICAgICAgXCJjeW1ydVwiLFxuICAgICAgXCJjeW91XCIsXG4gICAgICBcImRhYnVyXCIsXG4gICAgICBcImRhZFwiLFxuICAgICAgXCJkYW5jZVwiLFxuICAgICAgXCJkYXRhXCIsXG4gICAgICBcImRhdGVcIixcbiAgICAgIFwiZGF0aW5nXCIsXG4gICAgICBcImRhdHN1blwiLFxuICAgICAgXCJkYXlcIixcbiAgICAgIFwiZGNsa1wiLFxuICAgICAgXCJkZHNcIixcbiAgICAgIFwiZGVhbFwiLFxuICAgICAgXCJkZWFsZXJcIixcbiAgICAgIFwiZGVhbHNcIixcbiAgICAgIFwiZGVncmVlXCIsXG4gICAgICBcImRlbGl2ZXJ5XCIsXG4gICAgICBcImRlbGxcIixcbiAgICAgIFwiZGVsb2l0dGVcIixcbiAgICAgIFwiZGVsdGFcIixcbiAgICAgIFwiZGVtb2NyYXRcIixcbiAgICAgIFwiZGVudGFsXCIsXG4gICAgICBcImRlbnRpc3RcIixcbiAgICAgIFwiZGVzaVwiLFxuICAgICAgXCJkZXNpZ25cIixcbiAgICAgIFwiZGV2XCIsXG4gICAgICBcImRobFwiLFxuICAgICAgXCJkaWFtb25kc1wiLFxuICAgICAgXCJkaWV0XCIsXG4gICAgICBcImRpZ2l0YWxcIixcbiAgICAgIFwiZGlyZWN0XCIsXG4gICAgICBcImRpcmVjdG9yeVwiLFxuICAgICAgXCJkaXNjb3VudFwiLFxuICAgICAgXCJkaXNjb3ZlclwiLFxuICAgICAgXCJkaXNoXCIsXG4gICAgICBcImRpeVwiLFxuICAgICAgXCJkbnBcIixcbiAgICAgIFwiZG9jc1wiLFxuICAgICAgXCJkb2N0b3JcIixcbiAgICAgIFwiZG9nXCIsXG4gICAgICBcImRvbWFpbnNcIixcbiAgICAgIFwiZG90XCIsXG4gICAgICBcImRvd25sb2FkXCIsXG4gICAgICBcImRyaXZlXCIsXG4gICAgICBcImR0dlwiLFxuICAgICAgXCJkdWJhaVwiLFxuICAgICAgXCJkdW5sb3BcIixcbiAgICAgIFwiZHVwb250XCIsXG4gICAgICBcImR1cmJhblwiLFxuICAgICAgXCJkdmFnXCIsXG4gICAgICBcImR2clwiLFxuICAgICAgXCJlYXJ0aFwiLFxuICAgICAgXCJlYXRcIixcbiAgICAgIFwiZWNvXCIsXG4gICAgICBcImVkZWthXCIsXG4gICAgICBcImVkdWNhdGlvblwiLFxuICAgICAgXCJlbWFpbFwiLFxuICAgICAgXCJlbWVyY2tcIixcbiAgICAgIFwiZW5lcmd5XCIsXG4gICAgICBcImVuZ2luZWVyXCIsXG4gICAgICBcImVuZ2luZWVyaW5nXCIsXG4gICAgICBcImVudGVycHJpc2VzXCIsXG4gICAgICBcImVwc29uXCIsXG4gICAgICBcImVxdWlwbWVudFwiLFxuICAgICAgXCJlcmljc3NvblwiLFxuICAgICAgXCJlcm5pXCIsXG4gICAgICBcImVzcVwiLFxuICAgICAgXCJlc3RhdGVcIixcbiAgICAgIFwiZXRpc2FsYXRcIixcbiAgICAgIFwiZXVyb3Zpc2lvblwiLFxuICAgICAgXCJldXNcIixcbiAgICAgIFwiZXZlbnRzXCIsXG4gICAgICBcImV4Y2hhbmdlXCIsXG4gICAgICBcImV4cGVydFwiLFxuICAgICAgXCJleHBvc2VkXCIsXG4gICAgICBcImV4cHJlc3NcIixcbiAgICAgIFwiZXh0cmFzcGFjZVwiLFxuICAgICAgXCJmYWdlXCIsXG4gICAgICBcImZhaWxcIixcbiAgICAgIFwiZmFpcndpbmRzXCIsXG4gICAgICBcImZhaXRoXCIsXG4gICAgICBcImZhbWlseVwiLFxuICAgICAgXCJmYW5cIixcbiAgICAgIFwiZmFuc1wiLFxuICAgICAgXCJmYXJtXCIsXG4gICAgICBcImZhcm1lcnNcIixcbiAgICAgIFwiZmFzaGlvblwiLFxuICAgICAgXCJmYXN0XCIsXG4gICAgICBcImZlZGV4XCIsXG4gICAgICBcImZlZWRiYWNrXCIsXG4gICAgICBcImZlcnJhcmlcIixcbiAgICAgIFwiZmVycmVyb1wiLFxuICAgICAgXCJmaWF0XCIsXG4gICAgICBcImZpZGVsaXR5XCIsXG4gICAgICBcImZpZG9cIixcbiAgICAgIFwiZmlsbVwiLFxuICAgICAgXCJmaW5hbFwiLFxuICAgICAgXCJmaW5hbmNlXCIsXG4gICAgICBcImZpbmFuY2lhbFwiLFxuICAgICAgXCJmaXJlXCIsXG4gICAgICBcImZpcmVzdG9uZVwiLFxuICAgICAgXCJmaXJtZGFsZVwiLFxuICAgICAgXCJmaXNoXCIsXG4gICAgICBcImZpc2hpbmdcIixcbiAgICAgIFwiZml0XCIsXG4gICAgICBcImZpdG5lc3NcIixcbiAgICAgIFwiZmxpY2tyXCIsXG4gICAgICBcImZsaWdodHNcIixcbiAgICAgIFwiZmxpclwiLFxuICAgICAgXCJmbG9yaXN0XCIsXG4gICAgICBcImZsb3dlcnNcIixcbiAgICAgIFwiZmx5XCIsXG4gICAgICBcImZvb1wiLFxuICAgICAgXCJmb29kXCIsXG4gICAgICBcImZvb2RuZXR3b3JrXCIsXG4gICAgICBcImZvb3RiYWxsXCIsXG4gICAgICBcImZvcmRcIixcbiAgICAgIFwiZm9yZXhcIixcbiAgICAgIFwiZm9yc2FsZVwiLFxuICAgICAgXCJmb3J1bVwiLFxuICAgICAgXCJmb3VuZGF0aW9uXCIsXG4gICAgICBcImZveFwiLFxuICAgICAgXCJmcmVlXCIsXG4gICAgICBcImZyZXNlbml1c1wiLFxuICAgICAgXCJmcmxcIixcbiAgICAgIFwiZnJvZ2Fuc1wiLFxuICAgICAgXCJmcm9udGRvb3JcIixcbiAgICAgIFwiZnJvbnRpZXJcIixcbiAgICAgIFwiZnRyXCIsXG4gICAgICBcImZ1aml0c3VcIixcbiAgICAgIFwiZnVuXCIsXG4gICAgICBcImZ1bmRcIixcbiAgICAgIFwiZnVybml0dXJlXCIsXG4gICAgICBcImZ1dGJvbFwiLFxuICAgICAgXCJmeWlcIixcbiAgICAgIFwiZ2FsXCIsXG4gICAgICBcImdhbGxlcnlcIixcbiAgICAgIFwiZ2FsbG9cIixcbiAgICAgIFwiZ2FsbHVwXCIsXG4gICAgICBcImdhbWVcIixcbiAgICAgIFwiZ2FtZXNcIixcbiAgICAgIFwiZ2FwXCIsXG4gICAgICBcImdhcmRlblwiLFxuICAgICAgXCJnYXlcIixcbiAgICAgIFwiZ2JpelwiLFxuICAgICAgXCJnZG5cIixcbiAgICAgIFwiZ2VhXCIsXG4gICAgICBcImdlbnRcIixcbiAgICAgIFwiZ2VudGluZ1wiLFxuICAgICAgXCJnZW9yZ2VcIixcbiAgICAgIFwiZ2dlZVwiLFxuICAgICAgXCJnaWZ0XCIsXG4gICAgICBcImdpZnRzXCIsXG4gICAgICBcImdpdmVzXCIsXG4gICAgICBcImdpdmluZ1wiLFxuICAgICAgXCJnbGFzc1wiLFxuICAgICAgXCJnbGVcIixcbiAgICAgIFwiZ2xvYmFsXCIsXG4gICAgICBcImdsb2JvXCIsXG4gICAgICBcImdtYWlsXCIsXG4gICAgICBcImdtYmhcIixcbiAgICAgIFwiZ21vXCIsXG4gICAgICBcImdteFwiLFxuICAgICAgXCJnb2RhZGR5XCIsXG4gICAgICBcImdvbGRcIixcbiAgICAgIFwiZ29sZHBvaW50XCIsXG4gICAgICBcImdvbGZcIixcbiAgICAgIFwiZ29vXCIsXG4gICAgICBcImdvb2R5ZWFyXCIsXG4gICAgICBcImdvb2dcIixcbiAgICAgIFwiZ29vZ2xlXCIsXG4gICAgICBcImdvcFwiLFxuICAgICAgXCJnb3RcIixcbiAgICAgIFwiZ3JhaW5nZXJcIixcbiAgICAgIFwiZ3JhcGhpY3NcIixcbiAgICAgIFwiZ3JhdGlzXCIsXG4gICAgICBcImdyZWVuXCIsXG4gICAgICBcImdyaXBlXCIsXG4gICAgICBcImdyb2NlcnlcIixcbiAgICAgIFwiZ3JvdXBcIixcbiAgICAgIFwiZ3VhcmRpYW5cIixcbiAgICAgIFwiZ3VjY2lcIixcbiAgICAgIFwiZ3VnZVwiLFxuICAgICAgXCJndWlkZVwiLFxuICAgICAgXCJndWl0YXJzXCIsXG4gICAgICBcImd1cnVcIixcbiAgICAgIFwiaGFpclwiLFxuICAgICAgXCJoYW1idXJnXCIsXG4gICAgICBcImhhbmdvdXRcIixcbiAgICAgIFwiaGF1c1wiLFxuICAgICAgXCJoYm9cIixcbiAgICAgIFwiaGRmY1wiLFxuICAgICAgXCJoZGZjYmFua1wiLFxuICAgICAgXCJoZWFsdGhcIixcbiAgICAgIFwiaGVhbHRoY2FyZVwiLFxuICAgICAgXCJoZWxwXCIsXG4gICAgICBcImhlbHNpbmtpXCIsXG4gICAgICBcImhlcmVcIixcbiAgICAgIFwiaGVybWVzXCIsXG4gICAgICBcImhndHZcIixcbiAgICAgIFwiaGlwaG9wXCIsXG4gICAgICBcImhpc2FtaXRzdVwiLFxuICAgICAgXCJoaXRhY2hpXCIsXG4gICAgICBcImhpdlwiLFxuICAgICAgXCJoa3RcIixcbiAgICAgIFwiaG9ja2V5XCIsXG4gICAgICBcImhvbGRpbmdzXCIsXG4gICAgICBcImhvbGlkYXlcIixcbiAgICAgIFwiaG9tZWRlcG90XCIsXG4gICAgICBcImhvbWVnb29kc1wiLFxuICAgICAgXCJob21lc1wiLFxuICAgICAgXCJob21lc2Vuc2VcIixcbiAgICAgIFwiaG9uZGFcIixcbiAgICAgIFwiaG9yc2VcIixcbiAgICAgIFwiaG9zcGl0YWxcIixcbiAgICAgIFwiaG9zdFwiLFxuICAgICAgXCJob3N0aW5nXCIsXG4gICAgICBcImhvdFwiLFxuICAgICAgXCJob3RlbGVzXCIsXG4gICAgICBcImhvdGVsc1wiLFxuICAgICAgXCJob3RtYWlsXCIsXG4gICAgICBcImhvdXNlXCIsXG4gICAgICBcImhvd1wiLFxuICAgICAgXCJoc2JjXCIsXG4gICAgICBcImh1Z2hlc1wiLFxuICAgICAgXCJoeWF0dFwiLFxuICAgICAgXCJoeXVuZGFpXCIsXG4gICAgICBcImlibVwiLFxuICAgICAgXCJpY2JjXCIsXG4gICAgICBcImljZVwiLFxuICAgICAgXCJpY3VcIixcbiAgICAgIFwiaWVlZVwiLFxuICAgICAgXCJpZm1cIixcbiAgICAgIFwiaWthbm9cIixcbiAgICAgIFwiaW1hbWF0XCIsXG4gICAgICBcImltZGJcIixcbiAgICAgIFwiaW1tb1wiLFxuICAgICAgXCJpbW1vYmlsaWVuXCIsXG4gICAgICBcImluY1wiLFxuICAgICAgXCJpbmR1c3RyaWVzXCIsXG4gICAgICBcImluZmluaXRpXCIsXG4gICAgICBcImluZ1wiLFxuICAgICAgXCJpbmtcIixcbiAgICAgIFwiaW5zdGl0dXRlXCIsXG4gICAgICBcImluc3VyYW5jZVwiLFxuICAgICAgXCJpbnN1cmVcIixcbiAgICAgIFwiaW50ZXJuYXRpb25hbFwiLFxuICAgICAgXCJpbnR1aXRcIixcbiAgICAgIFwiaW52ZXN0bWVudHNcIixcbiAgICAgIFwiaXBpcmFuZ2FcIixcbiAgICAgIFwiaXJpc2hcIixcbiAgICAgIFwiaXNtYWlsaVwiLFxuICAgICAgXCJpc3RcIixcbiAgICAgIFwiaXN0YW5idWxcIixcbiAgICAgIFwiaXRhdVwiLFxuICAgICAgXCJpdHZcIixcbiAgICAgIFwiamFndWFyXCIsXG4gICAgICBcImphdmFcIixcbiAgICAgIFwiamNiXCIsXG4gICAgICBcImplZXBcIixcbiAgICAgIFwiamV0enRcIixcbiAgICAgIFwiamV3ZWxyeVwiLFxuICAgICAgXCJqaW9cIixcbiAgICAgIFwiamxsXCIsXG4gICAgICBcImptcFwiLFxuICAgICAgXCJqbmpcIixcbiAgICAgIFwiam9idXJnXCIsXG4gICAgICBcImpvdFwiLFxuICAgICAgXCJqb3lcIixcbiAgICAgIFwianBtb3JnYW5cIixcbiAgICAgIFwianByc1wiLFxuICAgICAgXCJqdWVnb3NcIixcbiAgICAgIFwianVuaXBlclwiLFxuICAgICAgXCJrYXVmZW5cIixcbiAgICAgIFwia2RkaVwiLFxuICAgICAgXCJrZXJyeWhvdGVsc1wiLFxuICAgICAgXCJrZXJyeWxvZ2lzdGljc1wiLFxuICAgICAgXCJrZXJyeXByb3BlcnRpZXNcIixcbiAgICAgIFwia2ZoXCIsXG4gICAgICBcImtpYVwiLFxuICAgICAgXCJraWRzXCIsXG4gICAgICBcImtpbVwiLFxuICAgICAgXCJraW5kZXJcIixcbiAgICAgIFwia2luZGxlXCIsXG4gICAgICBcImtpdGNoZW5cIixcbiAgICAgIFwia2l3aVwiLFxuICAgICAgXCJrb2VsblwiLFxuICAgICAgXCJrb21hdHN1XCIsXG4gICAgICBcImtvc2hlclwiLFxuICAgICAgXCJrcG1nXCIsXG4gICAgICBcImtwblwiLFxuICAgICAgXCJrcmRcIixcbiAgICAgIFwia3JlZFwiLFxuICAgICAgXCJrdW9rZ3JvdXBcIixcbiAgICAgIFwia3lvdG9cIixcbiAgICAgIFwibGFjYWl4YVwiLFxuICAgICAgXCJsYW1ib3JnaGluaVwiLFxuICAgICAgXCJsYW1lclwiLFxuICAgICAgXCJsYW5jYXN0ZXJcIixcbiAgICAgIFwibGFuY2lhXCIsXG4gICAgICBcImxhbmRcIixcbiAgICAgIFwibGFuZHJvdmVyXCIsXG4gICAgICBcImxhbnhlc3NcIixcbiAgICAgIFwibGFzYWxsZVwiLFxuICAgICAgXCJsYXRcIixcbiAgICAgIFwibGF0aW5vXCIsXG4gICAgICBcImxhdHJvYmVcIixcbiAgICAgIFwibGF3XCIsXG4gICAgICBcImxhd3llclwiLFxuICAgICAgXCJsZHNcIixcbiAgICAgIFwibGVhc2VcIixcbiAgICAgIFwibGVjbGVyY1wiLFxuICAgICAgXCJsZWZyYWtcIixcbiAgICAgIFwibGVnYWxcIixcbiAgICAgIFwibGVnb1wiLFxuICAgICAgXCJsZXh1c1wiLFxuICAgICAgXCJsZ2J0XCIsXG4gICAgICBcImxpZGxcIixcbiAgICAgIFwibGlmZVwiLFxuICAgICAgXCJsaWZlaW5zdXJhbmNlXCIsXG4gICAgICBcImxpZmVzdHlsZVwiLFxuICAgICAgXCJsaWdodGluZ1wiLFxuICAgICAgXCJsaWtlXCIsXG4gICAgICBcImxpbGx5XCIsXG4gICAgICBcImxpbWl0ZWRcIixcbiAgICAgIFwibGltb1wiLFxuICAgICAgXCJsaW5jb2xuXCIsXG4gICAgICBcImxpbmRlXCIsXG4gICAgICBcImxpbmtcIixcbiAgICAgIFwibGlwc3lcIixcbiAgICAgIFwibGl2ZVwiLFxuICAgICAgXCJsaXZpbmdcIixcbiAgICAgIFwibGxjXCIsXG4gICAgICBcImxscFwiLFxuICAgICAgXCJsb2FuXCIsXG4gICAgICBcImxvYW5zXCIsXG4gICAgICBcImxvY2tlclwiLFxuICAgICAgXCJsb2N1c1wiLFxuICAgICAgXCJsb2Z0XCIsXG4gICAgICBcImxvbFwiLFxuICAgICAgXCJsb25kb25cIixcbiAgICAgIFwibG90dGVcIixcbiAgICAgIFwibG90dG9cIixcbiAgICAgIFwibG92ZVwiLFxuICAgICAgXCJscGxcIixcbiAgICAgIFwibHBsZmluYW5jaWFsXCIsXG4gICAgICBcImx0ZFwiLFxuICAgICAgXCJsdGRhXCIsXG4gICAgICBcImx1bmRiZWNrXCIsXG4gICAgICBcImx1eGVcIixcbiAgICAgIFwibHV4dXJ5XCIsXG4gICAgICBcIm1hY3lzXCIsXG4gICAgICBcIm1hZHJpZFwiLFxuICAgICAgXCJtYWlmXCIsXG4gICAgICBcIm1haXNvblwiLFxuICAgICAgXCJtYWtldXBcIixcbiAgICAgIFwibWFuXCIsXG4gICAgICBcIm1hbmFnZW1lbnRcIixcbiAgICAgIFwibWFuZ29cIixcbiAgICAgIFwibWFwXCIsXG4gICAgICBcIm1hcmtldFwiLFxuICAgICAgXCJtYXJrZXRpbmdcIixcbiAgICAgIFwibWFya2V0c1wiLFxuICAgICAgXCJtYXJyaW90dFwiLFxuICAgICAgXCJtYXJzaGFsbHNcIixcbiAgICAgIFwibWFzZXJhdGlcIixcbiAgICAgIFwibWF0dGVsXCIsXG4gICAgICBcIm1iYVwiLFxuICAgICAgXCJtY2tpbnNleVwiLFxuICAgICAgXCJtZWRcIixcbiAgICAgIFwibWVkaWFcIixcbiAgICAgIFwibWVldFwiLFxuICAgICAgXCJtZWxib3VybmVcIixcbiAgICAgIFwibWVtZVwiLFxuICAgICAgXCJtZW1vcmlhbFwiLFxuICAgICAgXCJtZW5cIixcbiAgICAgIFwibWVudVwiLFxuICAgICAgXCJtZXJja21zZFwiLFxuICAgICAgXCJtaWFtaVwiLFxuICAgICAgXCJtaWNyb3NvZnRcIixcbiAgICAgIFwibWluaVwiLFxuICAgICAgXCJtaW50XCIsXG4gICAgICBcIm1pdFwiLFxuICAgICAgXCJtaXRzdWJpc2hpXCIsXG4gICAgICBcIm1sYlwiLFxuICAgICAgXCJtbHNcIixcbiAgICAgIFwibW1hXCIsXG4gICAgICBcIm1vYmlsZVwiLFxuICAgICAgXCJtb2RhXCIsXG4gICAgICBcIm1vZVwiLFxuICAgICAgXCJtb2lcIixcbiAgICAgIFwibW9tXCIsXG4gICAgICBcIm1vbmFzaFwiLFxuICAgICAgXCJtb25leVwiLFxuICAgICAgXCJtb25zdGVyXCIsXG4gICAgICBcIm1vcm1vblwiLFxuICAgICAgXCJtb3J0Z2FnZVwiLFxuICAgICAgXCJtb3Njb3dcIixcbiAgICAgIFwibW90b1wiLFxuICAgICAgXCJtb3RvcmN5Y2xlc1wiLFxuICAgICAgXCJtb3ZcIixcbiAgICAgIFwibW92aWVcIixcbiAgICAgIFwibXNkXCIsXG4gICAgICBcIm10blwiLFxuICAgICAgXCJtdHJcIixcbiAgICAgIFwibXVzaWNcIixcbiAgICAgIFwibXV0dWFsXCIsXG4gICAgICBcIm5hYlwiLFxuICAgICAgXCJuYWdveWFcIixcbiAgICAgIFwibmF0dXJhXCIsXG4gICAgICBcIm5hdnlcIixcbiAgICAgIFwibmJhXCIsXG4gICAgICBcIm5lY1wiLFxuICAgICAgXCJuZXRiYW5rXCIsXG4gICAgICBcIm5ldGZsaXhcIixcbiAgICAgIFwibmV0d29ya1wiLFxuICAgICAgXCJuZXVzdGFyXCIsXG4gICAgICBcIm5ld1wiLFxuICAgICAgXCJuZXdzXCIsXG4gICAgICBcIm5leHRcIixcbiAgICAgIFwibmV4dGRpcmVjdFwiLFxuICAgICAgXCJuZXh1c1wiLFxuICAgICAgXCJuZmxcIixcbiAgICAgIFwibmdvXCIsXG4gICAgICBcIm5oa1wiLFxuICAgICAgXCJuaWNvXCIsXG4gICAgICBcIm5pa2VcIixcbiAgICAgIFwibmlrb25cIixcbiAgICAgIFwibmluamFcIixcbiAgICAgIFwibmlzc2FuXCIsXG4gICAgICBcIm5pc3NheVwiLFxuICAgICAgXCJub2tpYVwiLFxuICAgICAgXCJub3J0aHdlc3Rlcm5tdXR1YWxcIixcbiAgICAgIFwibm9ydG9uXCIsXG4gICAgICBcIm5vd1wiLFxuICAgICAgXCJub3dydXpcIixcbiAgICAgIFwibm93dHZcIixcbiAgICAgIFwibnJhXCIsXG4gICAgICBcIm5yd1wiLFxuICAgICAgXCJudHRcIixcbiAgICAgIFwibnljXCIsXG4gICAgICBcIm9iaVwiLFxuICAgICAgXCJvYnNlcnZlclwiLFxuICAgICAgXCJvZmZpY2VcIixcbiAgICAgIFwib2tpbmF3YVwiLFxuICAgICAgXCJvbGF5YW5cIixcbiAgICAgIFwib2xheWFuZ3JvdXBcIixcbiAgICAgIFwib2xkbmF2eVwiLFxuICAgICAgXCJvbGxvXCIsXG4gICAgICBcIm9tZWdhXCIsXG4gICAgICBcIm9uZVwiLFxuICAgICAgXCJvbmdcIixcbiAgICAgIFwib25sXCIsXG4gICAgICBcIm9ubGluZVwiLFxuICAgICAgXCJvb29cIixcbiAgICAgIFwib3BlblwiLFxuICAgICAgXCJvcmFjbGVcIixcbiAgICAgIFwib3JhbmdlXCIsXG4gICAgICBcIm9yZ2FuaWNcIixcbiAgICAgIFwib3JpZ2luc1wiLFxuICAgICAgXCJvc2FrYVwiLFxuICAgICAgXCJvdHN1a2FcIixcbiAgICAgIFwib3R0XCIsXG4gICAgICBcIm92aFwiLFxuICAgICAgXCJwYWdlXCIsXG4gICAgICBcInBhbmFzb25pY1wiLFxuICAgICAgXCJwYXJpc1wiLFxuICAgICAgXCJwYXJzXCIsXG4gICAgICBcInBhcnRuZXJzXCIsXG4gICAgICBcInBhcnRzXCIsXG4gICAgICBcInBhcnR5XCIsXG4gICAgICBcInBhc3NhZ2Vuc1wiLFxuICAgICAgXCJwYXlcIixcbiAgICAgIFwicGNjd1wiLFxuICAgICAgXCJwZXRcIixcbiAgICAgIFwicGZpemVyXCIsXG4gICAgICBcInBoYXJtYWN5XCIsXG4gICAgICBcInBoZFwiLFxuICAgICAgXCJwaGlsaXBzXCIsXG4gICAgICBcInBob25lXCIsXG4gICAgICBcInBob3RvXCIsXG4gICAgICBcInBob3RvZ3JhcGh5XCIsXG4gICAgICBcInBob3Rvc1wiLFxuICAgICAgXCJwaHlzaW9cIixcbiAgICAgIFwicGljc1wiLFxuICAgICAgXCJwaWN0ZXRcIixcbiAgICAgIFwicGljdHVyZXNcIixcbiAgICAgIFwicGlkXCIsXG4gICAgICBcInBpblwiLFxuICAgICAgXCJwaW5nXCIsXG4gICAgICBcInBpbmtcIixcbiAgICAgIFwicGlvbmVlclwiLFxuICAgICAgXCJwaXp6YVwiLFxuICAgICAgXCJwbGFjZVwiLFxuICAgICAgXCJwbGF5XCIsXG4gICAgICBcInBsYXlzdGF0aW9uXCIsXG4gICAgICBcInBsdW1iaW5nXCIsXG4gICAgICBcInBsdXNcIixcbiAgICAgIFwicG5jXCIsXG4gICAgICBcInBvaGxcIixcbiAgICAgIFwicG9rZXJcIixcbiAgICAgIFwicG9saXRpZVwiLFxuICAgICAgXCJwb3JuXCIsXG4gICAgICBcInByYW1lcmljYVwiLFxuICAgICAgXCJwcmF4aVwiLFxuICAgICAgXCJwcmVzc1wiLFxuICAgICAgXCJwcmltZVwiLFxuICAgICAgXCJwcm9kXCIsXG4gICAgICBcInByb2R1Y3Rpb25zXCIsXG4gICAgICBcInByb2ZcIixcbiAgICAgIFwicHJvZ3Jlc3NpdmVcIixcbiAgICAgIFwicHJvbW9cIixcbiAgICAgIFwicHJvcGVydGllc1wiLFxuICAgICAgXCJwcm9wZXJ0eVwiLFxuICAgICAgXCJwcm90ZWN0aW9uXCIsXG4gICAgICBcInBydVwiLFxuICAgICAgXCJwcnVkZW50aWFsXCIsXG4gICAgICBcInB1YlwiLFxuICAgICAgXCJwd2NcIixcbiAgICAgIFwicXBvblwiLFxuICAgICAgXCJxdWViZWNcIixcbiAgICAgIFwicXVlc3RcIixcbiAgICAgIFwicmFjaW5nXCIsXG4gICAgICBcInJhZGlvXCIsXG4gICAgICBcInJlYWRcIixcbiAgICAgIFwicmVhbGVzdGF0ZVwiLFxuICAgICAgXCJyZWFsdG9yXCIsXG4gICAgICBcInJlYWx0eVwiLFxuICAgICAgXCJyZWNpcGVzXCIsXG4gICAgICBcInJlZFwiLFxuICAgICAgXCJyZWRzdG9uZVwiLFxuICAgICAgXCJyZWR1bWJyZWxsYVwiLFxuICAgICAgXCJyZWhhYlwiLFxuICAgICAgXCJyZWlzZVwiLFxuICAgICAgXCJyZWlzZW5cIixcbiAgICAgIFwicmVpdFwiLFxuICAgICAgXCJyZWxpYW5jZVwiLFxuICAgICAgXCJyZW5cIixcbiAgICAgIFwicmVudFwiLFxuICAgICAgXCJyZW50YWxzXCIsXG4gICAgICBcInJlcGFpclwiLFxuICAgICAgXCJyZXBvcnRcIixcbiAgICAgIFwicmVwdWJsaWNhblwiLFxuICAgICAgXCJyZXN0XCIsXG4gICAgICBcInJlc3RhdXJhbnRcIixcbiAgICAgIFwicmV2aWV3XCIsXG4gICAgICBcInJldmlld3NcIixcbiAgICAgIFwicmV4cm90aFwiLFxuICAgICAgXCJyaWNoXCIsXG4gICAgICBcInJpY2hhcmRsaVwiLFxuICAgICAgXCJyaWNvaFwiLFxuICAgICAgXCJyaWxcIixcbiAgICAgIFwicmlvXCIsXG4gICAgICBcInJpcFwiLFxuICAgICAgXCJyb2NoZXJcIixcbiAgICAgIFwicm9ja3NcIixcbiAgICAgIFwicm9kZW9cIixcbiAgICAgIFwicm9nZXJzXCIsXG4gICAgICBcInJvb21cIixcbiAgICAgIFwicnN2cFwiLFxuICAgICAgXCJydWdieVwiLFxuICAgICAgXCJydWhyXCIsXG4gICAgICBcInJ1blwiLFxuICAgICAgXCJyd2VcIixcbiAgICAgIFwicnl1a3l1XCIsXG4gICAgICBcInNhYXJsYW5kXCIsXG4gICAgICBcInNhZmVcIixcbiAgICAgIFwic2FmZXR5XCIsXG4gICAgICBcInNha3VyYVwiLFxuICAgICAgXCJzYWxlXCIsXG4gICAgICBcInNhbG9uXCIsXG4gICAgICBcInNhbXNjbHViXCIsXG4gICAgICBcInNhbXN1bmdcIixcbiAgICAgIFwic2FuZHZpa1wiLFxuICAgICAgXCJzYW5kdmlrY29yb21hbnRcIixcbiAgICAgIFwic2Fub2ZpXCIsXG4gICAgICBcInNhcFwiLFxuICAgICAgXCJzYXJsXCIsXG4gICAgICBcInNhc1wiLFxuICAgICAgXCJzYXZlXCIsXG4gICAgICBcInNheG9cIixcbiAgICAgIFwic2JpXCIsXG4gICAgICBcInNic1wiLFxuICAgICAgXCJzY2FcIixcbiAgICAgIFwic2NiXCIsXG4gICAgICBcInNjaGFlZmZsZXJcIixcbiAgICAgIFwic2NobWlkdFwiLFxuICAgICAgXCJzY2hvbGFyc2hpcHNcIixcbiAgICAgIFwic2Nob29sXCIsXG4gICAgICBcInNjaHVsZVwiLFxuICAgICAgXCJzY2h3YXJ6XCIsXG4gICAgICBcInNjaWVuY2VcIixcbiAgICAgIFwic2NvdFwiLFxuICAgICAgXCJzZWFyY2hcIixcbiAgICAgIFwic2VhdFwiLFxuICAgICAgXCJzZWN1cmVcIixcbiAgICAgIFwic2VjdXJpdHlcIixcbiAgICAgIFwic2Vla1wiLFxuICAgICAgXCJzZWxlY3RcIixcbiAgICAgIFwic2VuZXJcIixcbiAgICAgIFwic2VydmljZXNcIixcbiAgICAgIFwic2VzXCIsXG4gICAgICBcInNldmVuXCIsXG4gICAgICBcInNld1wiLFxuICAgICAgXCJzZXhcIixcbiAgICAgIFwic2V4eVwiLFxuICAgICAgXCJzZnJcIixcbiAgICAgIFwic2hhbmdyaWxhXCIsXG4gICAgICBcInNoYXJwXCIsXG4gICAgICBcInNoYXdcIixcbiAgICAgIFwic2hlbGxcIixcbiAgICAgIFwic2hpYVwiLFxuICAgICAgXCJzaGlrc2hhXCIsXG4gICAgICBcInNob2VzXCIsXG4gICAgICBcInNob3BcIixcbiAgICAgIFwic2hvcHBpbmdcIixcbiAgICAgIFwic2hvdWppXCIsXG4gICAgICBcInNob3dcIixcbiAgICAgIFwic2hvd3RpbWVcIixcbiAgICAgIFwic2lsa1wiLFxuICAgICAgXCJzaW5hXCIsXG4gICAgICBcInNpbmdsZXNcIixcbiAgICAgIFwic2l0ZVwiLFxuICAgICAgXCJza2lcIixcbiAgICAgIFwic2tpblwiLFxuICAgICAgXCJza3lcIixcbiAgICAgIFwic2t5cGVcIixcbiAgICAgIFwic2xpbmdcIixcbiAgICAgIFwic21hcnRcIixcbiAgICAgIFwic21pbGVcIixcbiAgICAgIFwic25jZlwiLFxuICAgICAgXCJzb2NjZXJcIixcbiAgICAgIFwic29jaWFsXCIsXG4gICAgICBcInNvZnRiYW5rXCIsXG4gICAgICBcInNvZnR3YXJlXCIsXG4gICAgICBcInNvaHVcIixcbiAgICAgIFwic29sYXJcIixcbiAgICAgIFwic29sdXRpb25zXCIsXG4gICAgICBcInNvbmdcIixcbiAgICAgIFwic29ueVwiLFxuICAgICAgXCJzb3lcIixcbiAgICAgIFwic3BhXCIsXG4gICAgICBcInNwYWNlXCIsXG4gICAgICBcInNwb3J0XCIsXG4gICAgICBcInNwb3RcIixcbiAgICAgIFwic3JsXCIsXG4gICAgICBcInN0YWRhXCIsXG4gICAgICBcInN0YXBsZXNcIixcbiAgICAgIFwic3RhclwiLFxuICAgICAgXCJzdGF0ZWJhbmtcIixcbiAgICAgIFwic3RhdGVmYXJtXCIsXG4gICAgICBcInN0Y1wiLFxuICAgICAgXCJzdGNncm91cFwiLFxuICAgICAgXCJzdG9ja2hvbG1cIixcbiAgICAgIFwic3RvcmFnZVwiLFxuICAgICAgXCJzdG9yZVwiLFxuICAgICAgXCJzdHJlYW1cIixcbiAgICAgIFwic3R1ZGlvXCIsXG4gICAgICBcInN0dWR5XCIsXG4gICAgICBcInN0eWxlXCIsXG4gICAgICBcInN1Y2tzXCIsXG4gICAgICBcInN1cHBsaWVzXCIsXG4gICAgICBcInN1cHBseVwiLFxuICAgICAgXCJzdXBwb3J0XCIsXG4gICAgICBcInN1cmZcIixcbiAgICAgIFwic3VyZ2VyeVwiLFxuICAgICAgXCJzdXp1a2lcIixcbiAgICAgIFwic3dhdGNoXCIsXG4gICAgICBcInN3aXNzXCIsXG4gICAgICBcInN5ZG5leVwiLFxuICAgICAgXCJzeXN0ZW1zXCIsXG4gICAgICBcInRhYlwiLFxuICAgICAgXCJ0YWlwZWlcIixcbiAgICAgIFwidGFsa1wiLFxuICAgICAgXCJ0YW9iYW9cIixcbiAgICAgIFwidGFyZ2V0XCIsXG4gICAgICBcInRhdGFtb3RvcnNcIixcbiAgICAgIFwidGF0YXJcIixcbiAgICAgIFwidGF0dG9vXCIsXG4gICAgICBcInRheFwiLFxuICAgICAgXCJ0YXhpXCIsXG4gICAgICBcInRjaVwiLFxuICAgICAgXCJ0ZGtcIixcbiAgICAgIFwidGVhbVwiLFxuICAgICAgXCJ0ZWNoXCIsXG4gICAgICBcInRlY2hub2xvZ3lcIixcbiAgICAgIFwidGVtYXNla1wiLFxuICAgICAgXCJ0ZW5uaXNcIixcbiAgICAgIFwidGV2YVwiLFxuICAgICAgXCJ0aGRcIixcbiAgICAgIFwidGhlYXRlclwiLFxuICAgICAgXCJ0aGVhdHJlXCIsXG4gICAgICBcInRpYWFcIixcbiAgICAgIFwidGlja2V0c1wiLFxuICAgICAgXCJ0aWVuZGFcIixcbiAgICAgIFwidGlmZmFueVwiLFxuICAgICAgXCJ0aXBzXCIsXG4gICAgICBcInRpcmVzXCIsXG4gICAgICBcInRpcm9sXCIsXG4gICAgICBcInRqbWF4eFwiLFxuICAgICAgXCJ0anhcIixcbiAgICAgIFwidGttYXh4XCIsXG4gICAgICBcInRtYWxsXCIsXG4gICAgICBcInRvZGF5XCIsXG4gICAgICBcInRva3lvXCIsXG4gICAgICBcInRvb2xzXCIsXG4gICAgICBcInRvcFwiLFxuICAgICAgXCJ0b3JheVwiLFxuICAgICAgXCJ0b3NoaWJhXCIsXG4gICAgICBcInRvdGFsXCIsXG4gICAgICBcInRvdXJzXCIsXG4gICAgICBcInRvd25cIixcbiAgICAgIFwidG95b3RhXCIsXG4gICAgICBcInRveXNcIixcbiAgICAgIFwidHJhZGVcIixcbiAgICAgIFwidHJhZGluZ1wiLFxuICAgICAgXCJ0cmFpbmluZ1wiLFxuICAgICAgXCJ0cmF2ZWxcIixcbiAgICAgIFwidHJhdmVsY2hhbm5lbFwiLFxuICAgICAgXCJ0cmF2ZWxlcnNcIixcbiAgICAgIFwidHJhdmVsZXJzaW5zdXJhbmNlXCIsXG4gICAgICBcInRydXN0XCIsXG4gICAgICBcInRydlwiLFxuICAgICAgXCJ0dWJlXCIsXG4gICAgICBcInR1aVwiLFxuICAgICAgXCJ0dW5lc1wiLFxuICAgICAgXCJ0dXNodVwiLFxuICAgICAgXCJ0dnNcIixcbiAgICAgIFwidWJhbmtcIixcbiAgICAgIFwidWJzXCIsXG4gICAgICBcInVuaWNvbVwiLFxuICAgICAgXCJ1bml2ZXJzaXR5XCIsXG4gICAgICBcInVub1wiLFxuICAgICAgXCJ1b2xcIixcbiAgICAgIFwidXBzXCIsXG4gICAgICBcInZhY2F0aW9uc1wiLFxuICAgICAgXCJ2YW5hXCIsXG4gICAgICBcInZhbmd1YXJkXCIsXG4gICAgICBcInZlZ2FzXCIsXG4gICAgICBcInZlbnR1cmVzXCIsXG4gICAgICBcInZlcmlzaWduXCIsXG4gICAgICBcInZlcnNpY2hlcnVuZ1wiLFxuICAgICAgXCJ2ZXRcIixcbiAgICAgIFwidmlhamVzXCIsXG4gICAgICBcInZpZGVvXCIsXG4gICAgICBcInZpZ1wiLFxuICAgICAgXCJ2aWtpbmdcIixcbiAgICAgIFwidmlsbGFzXCIsXG4gICAgICBcInZpblwiLFxuICAgICAgXCJ2aXBcIixcbiAgICAgIFwidmlyZ2luXCIsXG4gICAgICBcInZpc2FcIixcbiAgICAgIFwidmlzaW9uXCIsXG4gICAgICBcInZpdmFcIixcbiAgICAgIFwidml2b1wiLFxuICAgICAgXCJ2bGFhbmRlcmVuXCIsXG4gICAgICBcInZvZGthXCIsXG4gICAgICBcInZvbGtzd2FnZW5cIixcbiAgICAgIFwidm9sdm9cIixcbiAgICAgIFwidm90ZVwiLFxuICAgICAgXCJ2b3RpbmdcIixcbiAgICAgIFwidm90b1wiLFxuICAgICAgXCJ2b3lhZ2VcIixcbiAgICAgIFwidnVlbG9zXCIsXG4gICAgICBcIndhbGVzXCIsXG4gICAgICBcIndhbG1hcnRcIixcbiAgICAgIFwid2FsdGVyXCIsXG4gICAgICBcIndhbmdcIixcbiAgICAgIFwid2FuZ2dvdVwiLFxuICAgICAgXCJ3YXRjaFwiLFxuICAgICAgXCJ3YXRjaGVzXCIsXG4gICAgICBcIndlYXRoZXJcIixcbiAgICAgIFwid2VhdGhlcmNoYW5uZWxcIixcbiAgICAgIFwid2ViY2FtXCIsXG4gICAgICBcIndlYmVyXCIsXG4gICAgICBcIndlYnNpdGVcIixcbiAgICAgIFwid2VkZGluZ1wiLFxuICAgICAgXCJ3ZWlib1wiLFxuICAgICAgXCJ3ZWlyXCIsXG4gICAgICBcIndob3N3aG9cIixcbiAgICAgIFwid2llblwiLFxuICAgICAgXCJ3aWtpXCIsXG4gICAgICBcIndpbGxpYW1oaWxsXCIsXG4gICAgICBcIndpblwiLFxuICAgICAgXCJ3aW5kb3dzXCIsXG4gICAgICBcIndpbmVcIixcbiAgICAgIFwid2lubmVyc1wiLFxuICAgICAgXCJ3bWVcIixcbiAgICAgIFwid29sdGVyc2tsdXdlclwiLFxuICAgICAgXCJ3b29kc2lkZVwiLFxuICAgICAgXCJ3b3JrXCIsXG4gICAgICBcIndvcmtzXCIsXG4gICAgICBcIndvcmxkXCIsXG4gICAgICBcIndvd1wiLFxuICAgICAgXCJ3dGNcIixcbiAgICAgIFwid3RmXCIsXG4gICAgICBcInhib3hcIixcbiAgICAgIFwieGVyb3hcIixcbiAgICAgIFwieGZpbml0eVwiLFxuICAgICAgXCJ4aWh1YW5cIixcbiAgICAgIFwieGluXCIsXG4gICAgICBcIlxcdTA5MTVcXHUwOTQ5XFx1MDkyRVwiLFxuICAgICAgXCJcXHUzMEJCXFx1MzBGQ1xcdTMwRUJcIixcbiAgICAgIFwiXFx1NEY1QlxcdTVDNzFcIixcbiAgICAgIFwiXFx1NjE0OFxcdTU1ODRcIixcbiAgICAgIFwiXFx1OTZDNlxcdTU2RTJcIixcbiAgICAgIFwiXFx1NTcyOFxcdTdFQkZcIixcbiAgICAgIFwiXFx1NzBCOVxcdTc3MEJcIixcbiAgICAgIFwiXFx1MEUwNFxcdTBFMkRcXHUwRTIxXCIsXG4gICAgICBcIlxcdTUxNkJcXHU1MzY2XCIsXG4gICAgICBcIlxcdTA2NDVcXHUwNjQ4XFx1MDY0MlxcdTA2MzlcIixcbiAgICAgIFwiXFx1NTE2Q1xcdTc2Q0FcIixcbiAgICAgIFwiXFx1NTE2Q1xcdTUzRjhcIixcbiAgICAgIFwiXFx1OTk5OVxcdTY4M0NcXHU5MUNDXFx1NjJDOVwiLFxuICAgICAgXCJcXHU3RjUxXFx1N0FEOVwiLFxuICAgICAgXCJcXHU3OUZCXFx1NTJBOFwiLFxuICAgICAgXCJcXHU2MjExXFx1NzIzMVxcdTRGNjBcIixcbiAgICAgIFwiXFx1MDQzQ1xcdTA0M0VcXHUwNDQxXFx1MDQzQVxcdTA0MzJcXHUwNDMwXCIsXG4gICAgICBcIlxcdTA0M0FcXHUwNDMwXFx1MDQ0MlxcdTA0M0VcXHUwNDNCXFx1MDQzOFxcdTA0M0FcIixcbiAgICAgIFwiXFx1MDQzRVxcdTA0M0RcXHUwNDNCXFx1MDQzMFxcdTA0MzlcXHUwNDNEXCIsXG4gICAgICBcIlxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcIixcbiAgICAgIFwiXFx1ODA1NFxcdTkwMUFcIixcbiAgICAgIFwiXFx1MDVFN1xcdTA1RDVcXHUwNUREXCIsXG4gICAgICBcIlxcdTY1RjZcXHU1QzFBXCIsXG4gICAgICBcIlxcdTVGQUVcXHU1MzVBXCIsXG4gICAgICBcIlxcdTZERTFcXHU5QTZDXFx1OTUyMVwiLFxuICAgICAgXCJcXHUzMEQ1XFx1MzBBMVxcdTMwQzNcXHUzMEI3XFx1MzBFN1xcdTMwRjNcIixcbiAgICAgIFwiXFx1MDQzRVxcdTA0NDBcXHUwNDMzXCIsXG4gICAgICBcIlxcdTA5MjhcXHUwOTQ3XFx1MDkxRlwiLFxuICAgICAgXCJcXHUzMEI5XFx1MzBDOFxcdTMwQTJcIixcbiAgICAgIFwiXFx1MzBBMlxcdTMwREVcXHUzMEJFXFx1MzBGM1wiLFxuICAgICAgXCJcXHVDMEJDXFx1QzEzMVwiLFxuICAgICAgXCJcXHU1NTQ2XFx1NjgwN1wiLFxuICAgICAgXCJcXHU1NTQ2XFx1NUU5N1wiLFxuICAgICAgXCJcXHU1NTQ2XFx1NTdDRVwiLFxuICAgICAgXCJcXHUwNDM0XFx1MDQzNVxcdTA0NDJcXHUwNDM4XCIsXG4gICAgICBcIlxcdTMwRERcXHUzMEE0XFx1MzBGM1xcdTMwQzhcIixcbiAgICAgIFwiXFx1NjVCMFxcdTk1RkJcIixcbiAgICAgIFwiXFx1NUJCNlxcdTk2RkJcIixcbiAgICAgIFwiXFx1MDY0M1xcdTA2NDhcXHUwNjQ1XCIsXG4gICAgICBcIlxcdTRFMkRcXHU2NTg3XFx1N0Y1MVwiLFxuICAgICAgXCJcXHU0RTJEXFx1NEZFMVwiLFxuICAgICAgXCJcXHU1QTMxXFx1NEU1MFwiLFxuICAgICAgXCJcXHU4QzM3XFx1NkI0Q1wiLFxuICAgICAgXCJcXHU5NkZCXFx1OEEwQVxcdTc2QzhcXHU3OUQxXCIsXG4gICAgICBcIlxcdThEMkRcXHU3MjY5XCIsXG4gICAgICBcIlxcdTMwQUZcXHUzMEU5XFx1MzBBNlxcdTMwQzlcIixcbiAgICAgIFwiXFx1OTAxQVxcdThDQTlcIixcbiAgICAgIFwiXFx1N0Y1MVxcdTVFOTdcIixcbiAgICAgIFwiXFx1MDkzOFxcdTA5MDJcXHUwOTE3XFx1MDkyMFxcdTA5MjhcIixcbiAgICAgIFwiXFx1OTkxMFxcdTUzODVcIixcbiAgICAgIFwiXFx1N0Y1MVxcdTdFRENcIixcbiAgICAgIFwiXFx1MDQzQVxcdTA0M0VcXHUwNDNDXCIsXG4gICAgICBcIlxcdTRFOUFcXHU5QTZDXFx1OTAwQVwiLFxuICAgICAgXCJcXHU4QkZBXFx1NTdGQVxcdTRFOUFcIixcbiAgICAgIFwiXFx1OThERlxcdTU0QzFcIixcbiAgICAgIFwiXFx1OThERVxcdTUyMjlcXHU2RDY2XCIsXG4gICAgICBcIlxcdTYyNEJcXHU2NzNBXCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2NDVcXHUwNjQzXFx1MDY0OFwiLFxuICAgICAgXCJcXHUwNjI3XFx1MDY0NFxcdTA2MzlcXHUwNjQ0XFx1MDY0QVxcdTA2MjdcXHUwNjQ2XCIsXG4gICAgICBcIlxcdTA2MjdcXHUwNjJBXFx1MDYzNVxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MkFcIixcbiAgICAgIFwiXFx1MDYyOFxcdTA2MjdcXHUwNjMyXFx1MDYyN1xcdTA2MzFcIixcbiAgICAgIFwiXFx1MDYyN1xcdTA2MjhcXHUwNjQ4XFx1MDYzOFxcdTA2MjhcXHUwNjRBXCIsXG4gICAgICBcIlxcdTA2NDNcXHUwNjI3XFx1MDYyQlxcdTA2NDhcXHUwNjQ0XFx1MDY0QVxcdTA2NDNcIixcbiAgICAgIFwiXFx1MDY0N1xcdTA2NDVcXHUwNjMxXFx1MDYyN1xcdTA2NDdcIixcbiAgICAgIFwiXFx1QjJGN1xcdUNFRjRcIixcbiAgICAgIFwiXFx1NjUzRlxcdTVFOUNcIixcbiAgICAgIFwiXFx1MDYzNFxcdTA2MjhcXHUwNjQzXFx1MDYyOVwiLFxuICAgICAgXCJcXHUwNjI4XFx1MDY0QVxcdTA2MkFcXHUwNjQzXCIsXG4gICAgICBcIlxcdTA2MzlcXHUwNjMxXFx1MDYyOFwiLFxuICAgICAgXCJcXHU2NzNBXFx1Njc4NFwiLFxuICAgICAgXCJcXHU3RUM0XFx1N0VDN1xcdTY3M0FcXHU2Nzg0XCIsXG4gICAgICBcIlxcdTUwNjVcXHU1RUI3XCIsXG4gICAgICBcIlxcdTYyREJcXHU4MDU4XCIsXG4gICAgICBcIlxcdTA0NDBcXHUwNDQzXFx1MDQ0MVwiLFxuICAgICAgXCJcXHU1OTI3XFx1NjJGRlwiLFxuICAgICAgXCJcXHUzMDdGXFx1MzA5M1xcdTMwNkFcIixcbiAgICAgIFwiXFx1MzBCMFxcdTMwRkNcXHUzMEIwXFx1MzBFQlwiLFxuICAgICAgXCJcXHU0RTE2XFx1NzU0Q1wiLFxuICAgICAgXCJcXHU2NkY4XFx1N0M0RFwiLFxuICAgICAgXCJcXHU3RjUxXFx1NTc0MFwiLFxuICAgICAgXCJcXHVCMkY3XFx1QjEzN1wiLFxuICAgICAgXCJcXHUzMEIzXFx1MzBFMFwiLFxuICAgICAgXCJcXHU1OTI5XFx1NEUzQlxcdTY1NTlcIixcbiAgICAgIFwiXFx1NkUzOFxcdTYyMEZcIixcbiAgICAgIFwidmVybVxceEY2Z2Vuc2JlcmF0ZXJcIixcbiAgICAgIFwidmVybVxceEY2Z2Vuc2JlcmF0dW5nXCIsXG4gICAgICBcIlxcdTRGMDFcXHU0RTFBXCIsXG4gICAgICBcIlxcdTRGRTFcXHU2MDZGXCIsXG4gICAgICBcIlxcdTU2MDlcXHU5MUNDXFx1NTkyN1xcdTkxNTJcXHU1RTk3XCIsXG4gICAgICBcIlxcdTU2MDlcXHU5MUNDXCIsXG4gICAgICBcIlxcdTVFN0ZcXHU0RTFDXCIsXG4gICAgICBcIlxcdTY1M0ZcXHU1MkExXCIsXG4gICAgICBcInh5elwiLFxuICAgICAgXCJ5YWNodHNcIixcbiAgICAgIFwieWFob29cIixcbiAgICAgIFwieWFtYXh1blwiLFxuICAgICAgXCJ5YW5kZXhcIixcbiAgICAgIFwieW9kb2Jhc2hpXCIsXG4gICAgICBcInlvZ2FcIixcbiAgICAgIFwieW9rb2hhbWFcIixcbiAgICAgIFwieW91XCIsXG4gICAgICBcInlvdXR1YmVcIixcbiAgICAgIFwieXVuXCIsXG4gICAgICBcInphcHBvc1wiLFxuICAgICAgXCJ6YXJhXCIsXG4gICAgICBcInplcm9cIixcbiAgICAgIFwiemlwXCIsXG4gICAgICBcInpvbmVcIixcbiAgICAgIFwienVlcmljaFwiLFxuICAgICAgXCJjYy51YVwiLFxuICAgICAgXCJpbmYudWFcIixcbiAgICAgIFwibHRkLnVhXCIsXG4gICAgICBcIjYxMS50b1wiLFxuICAgICAgXCJncmFwaG94LnVzXCIsXG4gICAgICBcIiouZGV2Y2RuYWNjZXNzby5jb21cIixcbiAgICAgIFwiYWRvYmVhZW1jbG91ZC5jb21cIixcbiAgICAgIFwiKi5kZXYuYWRvYmVhZW1jbG91ZC5jb21cIixcbiAgICAgIFwiaGx4LmxpdmVcIixcbiAgICAgIFwiYWRvYmVhZW1jbG91ZC5uZXRcIixcbiAgICAgIFwiaGx4LnBhZ2VcIixcbiAgICAgIFwiaGx4My5wYWdlXCIsXG4gICAgICBcImJlZXAucGxcIixcbiAgICAgIFwiYWlya2l0YXBwcy5jb21cIixcbiAgICAgIFwiYWlya2l0YXBwcy1hdS5jb21cIixcbiAgICAgIFwiYWlya2l0YXBwcy5ldVwiLFxuICAgICAgXCJhaXZlbmNsb3VkLmNvbVwiLFxuICAgICAgXCJiYXJzeS5jYVwiLFxuICAgICAgXCIqLmNvbXB1dGUuZXN0YXRlXCIsXG4gICAgICBcIiouYWxjZXMubmV0d29ya1wiLFxuICAgICAgXCJrYXNzZXJ2ZXIuY29tXCIsXG4gICAgICBcImFsdGVydmlzdGEub3JnXCIsXG4gICAgICBcImFsd2F5c2RhdGEubmV0XCIsXG4gICAgICBcImNsb3VkZnJvbnQubmV0XCIsXG4gICAgICBcIiouY29tcHV0ZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcIiouY29tcHV0ZS0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiKi5jb21wdXRlLmFtYXpvbmF3cy5jb20uY25cIixcbiAgICAgIFwidXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiY24tbm9ydGgtMS5lYi5hbWF6b25hd3MuY29tLmNuXCIsXG4gICAgICBcImNuLW5vcnRod2VzdC0xLmViLmFtYXpvbmF3cy5jb20uY25cIixcbiAgICAgIFwiZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiYXAtbm9ydGhlYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiYXAtbm9ydGhlYXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiYXAtbm9ydGhlYXN0LTMuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiYXAtc291dGgtMS5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCJhcC1zb3V0aGVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCJhcC1zb3V0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCJjYS1jZW50cmFsLTEuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiZXUtY2VudHJhbC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tXCIsXG4gICAgICBcImV1LXdlc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCJldS13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwiZXUtd2VzdC0zLmVsYXN0aWNiZWFuc3RhbGsuY29tXCIsXG4gICAgICBcInNhLWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCJ1cy1lYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwidXMtZWFzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tXCIsXG4gICAgICBcInVzLWdvdi13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb21cIixcbiAgICAgIFwidXMtd2VzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tXCIsXG4gICAgICBcInVzLXdlc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbVwiLFxuICAgICAgXCIqLmVsYi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcIiouZWxiLmFtYXpvbmF3cy5jb20uY25cIixcbiAgICAgIFwiYXdzZ2xvYmFsYWNjZWxlcmF0b3IuY29tXCIsXG4gICAgICBcInMzLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy1hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLWFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy1hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLWFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtZXUtd2VzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtZXUtd2VzdC0zLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtZXh0ZXJuYWwtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLWZpcHMtdXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXNhLWVhc3QtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy11cy13ZXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy11cy13ZXN0LTIuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5jbi1ub3J0aC0xLmFtYXpvbmF3cy5jb20uY25cIixcbiAgICAgIFwiczMuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5kdWFsc3RhY2suY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLmR1YWxzdGFjay5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5kdWFsc3RhY2suZXUtd2VzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLmR1YWxzdGFjay5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy5kdWFsc3RhY2sudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMuZHVhbHN0YWNrLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXdlYnNpdGUtdXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS11cy13ZXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy13ZWJzaXRlLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXdlYnNpdGUtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy13ZWJzaXRlLWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXdlYnNpdGUtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS1zYS1lYXN0LTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy13ZWJzaXRlLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy13ZWJzaXRlLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInMzLXdlYnNpdGUuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiczMtd2Vic2l0ZS5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzMy13ZWJzaXRlLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInQzbDNwMHJ0Lm5ldFwiLFxuICAgICAgXCJ0ZWxlLmFtdW5lLm9yZ1wiLFxuICAgICAgXCJhcGlnZWUuaW9cIixcbiAgICAgIFwic2lpaXRlcy5jb21cIixcbiAgICAgIFwiYXBwc3BhY2Vob3N0ZWQuY29tXCIsXG4gICAgICBcImFwcHNwYWNldXNlcmNvbnRlbnQuY29tXCIsXG4gICAgICBcImFwcHVkby5uZXRcIixcbiAgICAgIFwib24tYXB0aWJsZS5jb21cIixcbiAgICAgIFwidXNlci5hc2VpbmV0Lm5lLmpwXCIsXG4gICAgICBcImd2LnZjXCIsXG4gICAgICBcImQuZ3YudmNcIixcbiAgICAgIFwidXNlci5wYXJ0eS5ldXNcIixcbiAgICAgIFwicGltaWVudGEub3JnXCIsXG4gICAgICBcInBvaXZyb24ub3JnXCIsXG4gICAgICBcInBvdGFnZXIub3JnXCIsXG4gICAgICBcInN3ZWV0cGVwcGVyLm9yZ1wiLFxuICAgICAgXCJteWFzdXN0b3IuY29tXCIsXG4gICAgICBcImNkbi5wcm9kLmF0bGFzc2lhbi1kZXYubmV0XCIsXG4gICAgICBcInRyYW5zbGF0ZWQucGFnZVwiLFxuICAgICAgXCJteWZyaXR6Lm5ldFwiLFxuICAgICAgXCJvbmF2c3RhY2submV0XCIsXG4gICAgICBcIiouYXdkZXYuY2FcIixcbiAgICAgIFwiKi5hZHZpc29yLndzXCIsXG4gICAgICBcImVjb21tZXJjZS1zaG9wLnBsXCIsXG4gICAgICBcImItZGF0YS5pb1wiLFxuICAgICAgXCJiYWNrcGxhbmVhcHAuaW9cIixcbiAgICAgIFwiYmFsZW5hLWRldmljZXMuY29tXCIsXG4gICAgICBcInJzLmJhXCIsXG4gICAgICBcIiouYmFuemFpLmNsb3VkXCIsXG4gICAgICBcImFwcC5iYW56YWljbG91ZC5pb1wiLFxuICAgICAgXCIqLmJhY2t5YXJkcy5iYW56YWljbG91ZC5pb1wiLFxuICAgICAgXCJiYXNlLmVjXCIsXG4gICAgICBcIm9mZmljaWFsLmVjXCIsXG4gICAgICBcImJ1eXNob3AuanBcIixcbiAgICAgIFwiZmFzaGlvbnN0b3JlLmpwXCIsXG4gICAgICBcImhhbmRjcmFmdGVkLmpwXCIsXG4gICAgICBcImthd2FpaXNob3AuanBcIixcbiAgICAgIFwic3VwZXJzYWxlLmpwXCIsXG4gICAgICBcInRoZXNob3AuanBcIixcbiAgICAgIFwic2hvcHNlbGVjdC5uZXRcIixcbiAgICAgIFwiYmFzZS5zaG9wXCIsXG4gICAgICBcIiouYmVnZXQuYXBwXCIsXG4gICAgICBcImJldGFpbmFib3guY29tXCIsXG4gICAgICBcImJuci5sYVwiLFxuICAgICAgXCJiaXRidWNrZXQuaW9cIixcbiAgICAgIFwiYmxhY2tiYXVkY2RuLm5ldFwiLFxuICAgICAgXCJvZi5qZVwiLFxuICAgICAgXCJibHVlYml0ZS5pb1wiLFxuICAgICAgXCJib29tbGEubmV0XCIsXG4gICAgICBcImJvdXRpci5jb21cIixcbiAgICAgIFwiYm94ZnVzZS5pb1wiLFxuICAgICAgXCJzcXVhcmU3LmNoXCIsXG4gICAgICBcImJwbGFjZWQuY29tXCIsXG4gICAgICBcImJwbGFjZWQuZGVcIixcbiAgICAgIFwic3F1YXJlNy5kZVwiLFxuICAgICAgXCJicGxhY2VkLm5ldFwiLFxuICAgICAgXCJzcXVhcmU3Lm5ldFwiLFxuICAgICAgXCJzaG9wLmJyZW5kbHkucnNcIixcbiAgICAgIFwiYnJvd3NlcnNhZmV0eW1hcmsuaW9cIixcbiAgICAgIFwidWswLmJpZ3YuaW9cIixcbiAgICAgIFwiZGguYnl0ZW1hcmsuY28udWtcIixcbiAgICAgIFwidm0uYnl0ZW1hcmsuY28udWtcIixcbiAgICAgIFwiY2FmanMuY29tXCIsXG4gICAgICBcIm15Y2QuZXVcIixcbiAgICAgIFwiZHJyLmFjXCIsXG4gICAgICBcInV3dS5haVwiLFxuICAgICAgXCJjYXJyZC5jb1wiLFxuICAgICAgXCJjcmQuY29cIixcbiAgICAgIFwianUubXBcIixcbiAgICAgIFwiYWUub3JnXCIsXG4gICAgICBcImJyLmNvbVwiLFxuICAgICAgXCJjbi5jb21cIixcbiAgICAgIFwiY29tLmRlXCIsXG4gICAgICBcImNvbS5zZVwiLFxuICAgICAgXCJkZS5jb21cIixcbiAgICAgIFwiZXUuY29tXCIsXG4gICAgICBcImdiLm5ldFwiLFxuICAgICAgXCJodS5uZXRcIixcbiAgICAgIFwianAubmV0XCIsXG4gICAgICBcImpwbi5jb21cIixcbiAgICAgIFwibWV4LmNvbVwiLFxuICAgICAgXCJydS5jb21cIixcbiAgICAgIFwic2EuY29tXCIsXG4gICAgICBcInNlLm5ldFwiLFxuICAgICAgXCJ1ay5jb21cIixcbiAgICAgIFwidWsubmV0XCIsXG4gICAgICBcInVzLmNvbVwiLFxuICAgICAgXCJ6YS5ielwiLFxuICAgICAgXCJ6YS5jb21cIixcbiAgICAgIFwiYXIuY29tXCIsXG4gICAgICBcImh1LmNvbVwiLFxuICAgICAgXCJrci5jb21cIixcbiAgICAgIFwibm8uY29tXCIsXG4gICAgICBcInFjLmNvbVwiLFxuICAgICAgXCJ1eS5jb21cIixcbiAgICAgIFwiYWZyaWNhLmNvbVwiLFxuICAgICAgXCJnci5jb21cIixcbiAgICAgIFwiaW4ubmV0XCIsXG4gICAgICBcIndlYi5pblwiLFxuICAgICAgXCJ1cy5vcmdcIixcbiAgICAgIFwiY28uY29tXCIsXG4gICAgICBcImF1cy5iYXNrZXRiYWxsXCIsXG4gICAgICBcIm56LmJhc2tldGJhbGxcIixcbiAgICAgIFwicmFkaW8uYW1cIixcbiAgICAgIFwicmFkaW8uZm1cIixcbiAgICAgIFwiYy5sYVwiLFxuICAgICAgXCJjZXJ0bWdyLm9yZ1wiLFxuICAgICAgXCJjeC51YVwiLFxuICAgICAgXCJkaXNjb3Vyc2UuZ3JvdXBcIixcbiAgICAgIFwiZGlzY291cnNlLnRlYW1cIixcbiAgICAgIFwiY2xldmVyYXBwcy5pb1wiLFxuICAgICAgXCJjbGVyay5hcHBcIixcbiAgICAgIFwiY2xlcmtzdGFnZS5hcHBcIixcbiAgICAgIFwiKi5sY2wuZGV2XCIsXG4gICAgICBcIioubGNsc3RhZ2UuZGV2XCIsXG4gICAgICBcIiouc3RnLmRldlwiLFxuICAgICAgXCIqLnN0Z3N0YWdlLmRldlwiLFxuICAgICAgXCJjbGlja3Jpc2luZy5uZXRcIixcbiAgICAgIFwiYzY2Lm1lXCIsXG4gICAgICBcImNsb3VkNjYud3NcIixcbiAgICAgIFwiY2xvdWQ2Ni56b25lXCIsXG4gICAgICBcImpkZXZjbG91ZC5jb21cIixcbiAgICAgIFwid3BkZXZjbG91ZC5jb21cIixcbiAgICAgIFwiY2xvdWRhY2Nlc3MuaG9zdFwiLFxuICAgICAgXCJmcmVlc2l0ZS5ob3N0XCIsXG4gICAgICBcImNsb3VkYWNjZXNzLm5ldFwiLFxuICAgICAgXCJjbG91ZGNvbnRyb2xsZWQuY29tXCIsXG4gICAgICBcImNsb3VkY29udHJvbGFwcC5jb21cIixcbiAgICAgIFwiKi5jbG91ZGVyYS5zaXRlXCIsXG4gICAgICBcInBhZ2VzLmRldlwiLFxuICAgICAgXCJ0cnljbG91ZGZsYXJlLmNvbVwiLFxuICAgICAgXCJ3b3JrZXJzLmRldlwiLFxuICAgICAgXCJ3bmV4dC5hcHBcIixcbiAgICAgIFwiY28uY2FcIixcbiAgICAgIFwiKi5vdGFwLmNvXCIsXG4gICAgICBcImNvLmN6XCIsXG4gICAgICBcImMuY2RuNzcub3JnXCIsXG4gICAgICBcImNkbjc3LXNzbC5uZXRcIixcbiAgICAgIFwici5jZG43Ny5uZXRcIixcbiAgICAgIFwicnNjLmNkbjc3Lm9yZ1wiLFxuICAgICAgXCJzc2wub3JpZ2luLmNkbjc3LXNlY3VyZS5vcmdcIixcbiAgICAgIFwiY2xvdWRucy5hc2lhXCIsXG4gICAgICBcImNsb3VkbnMuYml6XCIsXG4gICAgICBcImNsb3VkbnMuY2x1YlwiLFxuICAgICAgXCJjbG91ZG5zLmNjXCIsXG4gICAgICBcImNsb3VkbnMuZXVcIixcbiAgICAgIFwiY2xvdWRucy5pblwiLFxuICAgICAgXCJjbG91ZG5zLmluZm9cIixcbiAgICAgIFwiY2xvdWRucy5vcmdcIixcbiAgICAgIFwiY2xvdWRucy5wcm9cIixcbiAgICAgIFwiY2xvdWRucy5wd1wiLFxuICAgICAgXCJjbG91ZG5zLnVzXCIsXG4gICAgICBcImNucHkuZ2RuXCIsXG4gICAgICBcImNvZGViZXJnLnBhZ2VcIixcbiAgICAgIFwiY28ubmxcIixcbiAgICAgIFwiY28ubm9cIixcbiAgICAgIFwid2ViaG9zdGluZy5iZVwiLFxuICAgICAgXCJob3N0aW5nLWNsdXN0ZXIubmxcIixcbiAgICAgIFwiYWMucnVcIixcbiAgICAgIFwiZWR1LnJ1XCIsXG4gICAgICBcImdvdi5ydVwiLFxuICAgICAgXCJpbnQucnVcIixcbiAgICAgIFwibWlsLnJ1XCIsXG4gICAgICBcInRlc3QucnVcIixcbiAgICAgIFwiZHluLmNvc2lkbnMuZGVcIixcbiAgICAgIFwiZHluYW1pc2NoZXMtZG5zLmRlXCIsXG4gICAgICBcImRuc3VwZGF0ZXIuZGVcIixcbiAgICAgIFwiaW50ZXJuZXQtZG5zLmRlXCIsXG4gICAgICBcImwtby1nLWktbi5kZVwiLFxuICAgICAgXCJkeW5hbWljLWRucy5pbmZvXCIsXG4gICAgICBcImZlc3RlLWlwLm5ldFwiLFxuICAgICAgXCJrbngtc2VydmVyLm5ldFwiLFxuICAgICAgXCJzdGF0aWMtYWNjZXNzLm5ldFwiLFxuICAgICAgXCJyZWFsbS5jelwiLFxuICAgICAgXCIqLmNyeXB0b25vbWljLm5ldFwiLFxuICAgICAgXCJjdXBjYWtlLmlzXCIsXG4gICAgICBcImN1cnYuZGV2XCIsXG4gICAgICBcIiouY3VzdG9tZXItb2NpLmNvbVwiLFxuICAgICAgXCIqLm9jaS5jdXN0b21lci1vY2kuY29tXCIsXG4gICAgICBcIioub2NwLmN1c3RvbWVyLW9jaS5jb21cIixcbiAgICAgIFwiKi5vY3MuY3VzdG9tZXItb2NpLmNvbVwiLFxuICAgICAgXCJjeW9uLmxpbmtcIixcbiAgICAgIFwiY3lvbi5zaXRlXCIsXG4gICAgICBcImZud2suc2l0ZVwiLFxuICAgICAgXCJmb2xpb25ldHdvcmsuc2l0ZVwiLFxuICAgICAgXCJwbGF0Zm9ybTAuYXBwXCIsXG4gICAgICBcImRhcGxpZS5tZVwiLFxuICAgICAgXCJsb2NhbGhvc3QuZGFwbGllLm1lXCIsXG4gICAgICBcImRhdHRvbG9jYWwuY29tXCIsXG4gICAgICBcImRhdHRvcmVsYXkuY29tXCIsXG4gICAgICBcImRhdHRvd2ViLmNvbVwiLFxuICAgICAgXCJteWRhdHRvLmNvbVwiLFxuICAgICAgXCJkYXR0b2xvY2FsLm5ldFwiLFxuICAgICAgXCJteWRhdHRvLm5ldFwiLFxuICAgICAgXCJiaXouZGtcIixcbiAgICAgIFwiY28uZGtcIixcbiAgICAgIFwiZmlybS5ka1wiLFxuICAgICAgXCJyZWcuZGtcIixcbiAgICAgIFwic3RvcmUuZGtcIixcbiAgICAgIFwiZHluZG5zLmRhcHBub2RlLmlvXCIsXG4gICAgICBcIiouZGFwcHMuZWFydGhcIixcbiAgICAgIFwiKi5ienouZGFwcHMuZWFydGhcIixcbiAgICAgIFwiYnVpbHR3aXRoZGFyay5jb21cIixcbiAgICAgIFwiZGVtby5kYXRhZGV0ZWN0LmNvbVwiLFxuICAgICAgXCJpbnN0YW5jZS5kYXRhZGV0ZWN0LmNvbVwiLFxuICAgICAgXCJlZGdlc3RhY2subWVcIixcbiAgICAgIFwiZGRuczUuY29tXCIsXG4gICAgICBcImRlYmlhbi5uZXRcIixcbiAgICAgIFwiZGVuby5kZXZcIixcbiAgICAgIFwiZGVuby1zdGFnaW5nLmRldlwiLFxuICAgICAgXCJkZWR5bi5pb1wiLFxuICAgICAgXCJkZXRhLmFwcFwiLFxuICAgICAgXCJkZXRhLmRldlwiLFxuICAgICAgXCIqLnJzcy5teS5pZFwiLFxuICAgICAgXCIqLmRpaGVyLnNvbHV0aW9uc1wiLFxuICAgICAgXCJkaXNjb3Jkc2F5cy5jb21cIixcbiAgICAgIFwiZGlzY29yZHNlei5jb21cIixcbiAgICAgIFwiam96aS5iaXpcIixcbiAgICAgIFwiZG5zaG9tZS5kZVwiLFxuICAgICAgXCJvbmxpbmUudGhcIixcbiAgICAgIFwic2hvcC50aFwiLFxuICAgICAgXCJkcmF5ZGRucy5jb21cIixcbiAgICAgIFwic2hvcGFyZW5hLnBsXCIsXG4gICAgICBcImRyZWFtaG9zdGVycy5jb21cIixcbiAgICAgIFwibXlkcm9iby5jb21cIixcbiAgICAgIFwiZHJ1ZC5pb1wiLFxuICAgICAgXCJkcnVkLnVzXCIsXG4gICAgICBcImR1Y2tkbnMub3JnXCIsXG4gICAgICBcImJpcC5zaFwiLFxuICAgICAgXCJiaXRicmlkZ2UubmV0XCIsXG4gICAgICBcImR5LmZpXCIsXG4gICAgICBcInR1bmsub3JnXCIsXG4gICAgICBcImR5bmRucy1hdC1ob21lLmNvbVwiLFxuICAgICAgXCJkeW5kbnMtYXQtd29yay5jb21cIixcbiAgICAgIFwiZHluZG5zLWJsb2cuY29tXCIsXG4gICAgICBcImR5bmRucy1mcmVlLmNvbVwiLFxuICAgICAgXCJkeW5kbnMtaG9tZS5jb21cIixcbiAgICAgIFwiZHluZG5zLWlwLmNvbVwiLFxuICAgICAgXCJkeW5kbnMtbWFpbC5jb21cIixcbiAgICAgIFwiZHluZG5zLW9mZmljZS5jb21cIixcbiAgICAgIFwiZHluZG5zLXBpY3MuY29tXCIsXG4gICAgICBcImR5bmRucy1yZW1vdGUuY29tXCIsXG4gICAgICBcImR5bmRucy1zZXJ2ZXIuY29tXCIsXG4gICAgICBcImR5bmRucy13ZWIuY29tXCIsXG4gICAgICBcImR5bmRucy13aWtpLmNvbVwiLFxuICAgICAgXCJkeW5kbnMtd29yay5jb21cIixcbiAgICAgIFwiZHluZG5zLmJpelwiLFxuICAgICAgXCJkeW5kbnMuaW5mb1wiLFxuICAgICAgXCJkeW5kbnMub3JnXCIsXG4gICAgICBcImR5bmRucy50dlwiLFxuICAgICAgXCJhdC1iYW5kLWNhbXAubmV0XCIsXG4gICAgICBcImF0aC5jeFwiLFxuICAgICAgXCJiYXJyZWwtb2Yta25vd2xlZGdlLmluZm9cIixcbiAgICAgIFwiYmFycmVsbC1vZi1rbm93bGVkZ2UuaW5mb1wiLFxuICAgICAgXCJiZXR0ZXItdGhhbi50dlwiLFxuICAgICAgXCJibG9nZG5zLmNvbVwiLFxuICAgICAgXCJibG9nZG5zLm5ldFwiLFxuICAgICAgXCJibG9nZG5zLm9yZ1wiLFxuICAgICAgXCJibG9nc2l0ZS5vcmdcIixcbiAgICAgIFwiYm9sZGx5Z29pbmdub3doZXJlLm9yZ1wiLFxuICAgICAgXCJicm9rZS1pdC5uZXRcIixcbiAgICAgIFwiYnV5c2hvdXNlcy5uZXRcIixcbiAgICAgIFwiY2VjaGlyZS5jb21cIixcbiAgICAgIFwiZG5zYWxpYXMuY29tXCIsXG4gICAgICBcImRuc2FsaWFzLm5ldFwiLFxuICAgICAgXCJkbnNhbGlhcy5vcmdcIixcbiAgICAgIFwiZG5zZG9qby5jb21cIixcbiAgICAgIFwiZG5zZG9qby5uZXRcIixcbiAgICAgIFwiZG5zZG9qby5vcmdcIixcbiAgICAgIFwiZG9lcy1pdC5uZXRcIixcbiAgICAgIFwiZG9lc250ZXhpc3QuY29tXCIsXG4gICAgICBcImRvZXNudGV4aXN0Lm9yZ1wiLFxuICAgICAgXCJkb250ZXhpc3QuY29tXCIsXG4gICAgICBcImRvbnRleGlzdC5uZXRcIixcbiAgICAgIFwiZG9udGV4aXN0Lm9yZ1wiLFxuICAgICAgXCJkb29tZG5zLmNvbVwiLFxuICAgICAgXCJkb29tZG5zLm9yZ1wiLFxuICAgICAgXCJkdnJkbnMub3JnXCIsXG4gICAgICBcImR5bi1vLXNhdXIuY29tXCIsXG4gICAgICBcImR5bmFsaWFzLmNvbVwiLFxuICAgICAgXCJkeW5hbGlhcy5uZXRcIixcbiAgICAgIFwiZHluYWxpYXMub3JnXCIsXG4gICAgICBcImR5bmF0aG9tZS5uZXRcIixcbiAgICAgIFwiZHluZG5zLndzXCIsXG4gICAgICBcImVuZG9maW50ZXJuZXQubmV0XCIsXG4gICAgICBcImVuZG9maW50ZXJuZXQub3JnXCIsXG4gICAgICBcImVuZG9mdGhlaW50ZXJuZXQub3JnXCIsXG4gICAgICBcImVzdC1hLWxhLW1haXNvbi5jb21cIixcbiAgICAgIFwiZXN0LWEtbGEtbWFzaW9uLmNvbVwiLFxuICAgICAgXCJlc3QtbGUtcGF0cm9uLmNvbVwiLFxuICAgICAgXCJlc3QtbW9uLWJsb2d1ZXVyLmNvbVwiLFxuICAgICAgXCJmb3ItYmV0dGVyLmJpelwiLFxuICAgICAgXCJmb3ItbW9yZS5iaXpcIixcbiAgICAgIFwiZm9yLW91ci5pbmZvXCIsXG4gICAgICBcImZvci1zb21lLmJpelwiLFxuICAgICAgXCJmb3ItdGhlLmJpelwiLFxuICAgICAgXCJmb3Jnb3QuaGVyLm5hbWVcIixcbiAgICAgIFwiZm9yZ290Lmhpcy5uYW1lXCIsXG4gICAgICBcImZyb20tYWsuY29tXCIsXG4gICAgICBcImZyb20tYWwuY29tXCIsXG4gICAgICBcImZyb20tYXIuY29tXCIsXG4gICAgICBcImZyb20tYXoubmV0XCIsXG4gICAgICBcImZyb20tY2EuY29tXCIsXG4gICAgICBcImZyb20tY28ubmV0XCIsXG4gICAgICBcImZyb20tY3QuY29tXCIsXG4gICAgICBcImZyb20tZGMuY29tXCIsXG4gICAgICBcImZyb20tZGUuY29tXCIsXG4gICAgICBcImZyb20tZmwuY29tXCIsXG4gICAgICBcImZyb20tZ2EuY29tXCIsXG4gICAgICBcImZyb20taGkuY29tXCIsXG4gICAgICBcImZyb20taWEuY29tXCIsXG4gICAgICBcImZyb20taWQuY29tXCIsXG4gICAgICBcImZyb20taWwuY29tXCIsXG4gICAgICBcImZyb20taW4uY29tXCIsXG4gICAgICBcImZyb20ta3MuY29tXCIsXG4gICAgICBcImZyb20ta3kuY29tXCIsXG4gICAgICBcImZyb20tbGEubmV0XCIsXG4gICAgICBcImZyb20tbWEuY29tXCIsXG4gICAgICBcImZyb20tbWQuY29tXCIsXG4gICAgICBcImZyb20tbWUub3JnXCIsXG4gICAgICBcImZyb20tbWkuY29tXCIsXG4gICAgICBcImZyb20tbW4uY29tXCIsXG4gICAgICBcImZyb20tbW8uY29tXCIsXG4gICAgICBcImZyb20tbXMuY29tXCIsXG4gICAgICBcImZyb20tbXQuY29tXCIsXG4gICAgICBcImZyb20tbmMuY29tXCIsXG4gICAgICBcImZyb20tbmQuY29tXCIsXG4gICAgICBcImZyb20tbmUuY29tXCIsXG4gICAgICBcImZyb20tbmguY29tXCIsXG4gICAgICBcImZyb20tbmouY29tXCIsXG4gICAgICBcImZyb20tbm0uY29tXCIsXG4gICAgICBcImZyb20tbnYuY29tXCIsXG4gICAgICBcImZyb20tbnkubmV0XCIsXG4gICAgICBcImZyb20tb2guY29tXCIsXG4gICAgICBcImZyb20tb2suY29tXCIsXG4gICAgICBcImZyb20tb3IuY29tXCIsXG4gICAgICBcImZyb20tcGEuY29tXCIsXG4gICAgICBcImZyb20tcHIuY29tXCIsXG4gICAgICBcImZyb20tcmkuY29tXCIsXG4gICAgICBcImZyb20tc2MuY29tXCIsXG4gICAgICBcImZyb20tc2QuY29tXCIsXG4gICAgICBcImZyb20tdG4uY29tXCIsXG4gICAgICBcImZyb20tdHguY29tXCIsXG4gICAgICBcImZyb20tdXQuY29tXCIsXG4gICAgICBcImZyb20tdmEuY29tXCIsXG4gICAgICBcImZyb20tdnQuY29tXCIsXG4gICAgICBcImZyb20td2EuY29tXCIsXG4gICAgICBcImZyb20td2kuY29tXCIsXG4gICAgICBcImZyb20td3YuY29tXCIsXG4gICAgICBcImZyb20td3kuY29tXCIsXG4gICAgICBcImZ0cGFjY2Vzcy5jY1wiLFxuICAgICAgXCJmdWV0dGVydGRhc25ldHouZGVcIixcbiAgICAgIFwiZ2FtZS1ob3N0Lm9yZ1wiLFxuICAgICAgXCJnYW1lLXNlcnZlci5jY1wiLFxuICAgICAgXCJnZXRteWlwLmNvbVwiLFxuICAgICAgXCJnZXRzLWl0Lm5ldFwiLFxuICAgICAgXCJnby5keW5kbnMub3JnXCIsXG4gICAgICBcImdvdGRucy5jb21cIixcbiAgICAgIFwiZ290ZG5zLm9yZ1wiLFxuICAgICAgXCJncm9rcy10aGUuaW5mb1wiLFxuICAgICAgXCJncm9rcy10aGlzLmluZm9cIixcbiAgICAgIFwiaGFtLXJhZGlvLW9wLm5ldFwiLFxuICAgICAgXCJoZXJlLWZvci1tb3JlLmluZm9cIixcbiAgICAgIFwiaG9iYnktc2l0ZS5jb21cIixcbiAgICAgIFwiaG9iYnktc2l0ZS5vcmdcIixcbiAgICAgIFwiaG9tZS5keW5kbnMub3JnXCIsXG4gICAgICBcImhvbWVkbnMub3JnXCIsXG4gICAgICBcImhvbWVmdHAubmV0XCIsXG4gICAgICBcImhvbWVmdHAub3JnXCIsXG4gICAgICBcImhvbWVpcC5uZXRcIixcbiAgICAgIFwiaG9tZWxpbnV4LmNvbVwiLFxuICAgICAgXCJob21lbGludXgubmV0XCIsXG4gICAgICBcImhvbWVsaW51eC5vcmdcIixcbiAgICAgIFwiaG9tZXVuaXguY29tXCIsXG4gICAgICBcImhvbWV1bml4Lm5ldFwiLFxuICAgICAgXCJob21ldW5peC5vcmdcIixcbiAgICAgIFwiaWFtYWxsYW1hLmNvbVwiLFxuICAgICAgXCJpbi10aGUtYmFuZC5uZXRcIixcbiAgICAgIFwiaXMtYS1hbmFyY2hpc3QuY29tXCIsXG4gICAgICBcImlzLWEtYmxvZ2dlci5jb21cIixcbiAgICAgIFwiaXMtYS1ib29ra2VlcGVyLmNvbVwiLFxuICAgICAgXCJpcy1hLWJydWluc2Zhbi5vcmdcIixcbiAgICAgIFwiaXMtYS1idWxscy1mYW4uY29tXCIsXG4gICAgICBcImlzLWEtY2FuZGlkYXRlLm9yZ1wiLFxuICAgICAgXCJpcy1hLWNhdGVyZXIuY29tXCIsXG4gICAgICBcImlzLWEtY2VsdGljc2Zhbi5vcmdcIixcbiAgICAgIFwiaXMtYS1jaGVmLmNvbVwiLFxuICAgICAgXCJpcy1hLWNoZWYubmV0XCIsXG4gICAgICBcImlzLWEtY2hlZi5vcmdcIixcbiAgICAgIFwiaXMtYS1jb25zZXJ2YXRpdmUuY29tXCIsXG4gICAgICBcImlzLWEtY3BhLmNvbVwiLFxuICAgICAgXCJpcy1hLWN1YmljbGUtc2xhdmUuY29tXCIsXG4gICAgICBcImlzLWEtZGVtb2NyYXQuY29tXCIsXG4gICAgICBcImlzLWEtZGVzaWduZXIuY29tXCIsXG4gICAgICBcImlzLWEtZG9jdG9yLmNvbVwiLFxuICAgICAgXCJpcy1hLWZpbmFuY2lhbGFkdmlzb3IuY29tXCIsXG4gICAgICBcImlzLWEtZ2Vlay5jb21cIixcbiAgICAgIFwiaXMtYS1nZWVrLm5ldFwiLFxuICAgICAgXCJpcy1hLWdlZWsub3JnXCIsXG4gICAgICBcImlzLWEtZ3JlZW4uY29tXCIsXG4gICAgICBcImlzLWEtZ3VydS5jb21cIixcbiAgICAgIFwiaXMtYS1oYXJkLXdvcmtlci5jb21cIixcbiAgICAgIFwiaXMtYS1odW50ZXIuY29tXCIsXG4gICAgICBcImlzLWEta25pZ2h0Lm9yZ1wiLFxuICAgICAgXCJpcy1hLWxhbmRzY2FwZXIuY29tXCIsXG4gICAgICBcImlzLWEtbGF3eWVyLmNvbVwiLFxuICAgICAgXCJpcy1hLWxpYmVyYWwuY29tXCIsXG4gICAgICBcImlzLWEtbGliZXJ0YXJpYW4uY29tXCIsXG4gICAgICBcImlzLWEtbGludXgtdXNlci5vcmdcIixcbiAgICAgIFwiaXMtYS1sbGFtYS5jb21cIixcbiAgICAgIFwiaXMtYS1tdXNpY2lhbi5jb21cIixcbiAgICAgIFwiaXMtYS1uYXNjYXJmYW4uY29tXCIsXG4gICAgICBcImlzLWEtbnVyc2UuY29tXCIsXG4gICAgICBcImlzLWEtcGFpbnRlci5jb21cIixcbiAgICAgIFwiaXMtYS1wYXRzZmFuLm9yZ1wiLFxuICAgICAgXCJpcy1hLXBlcnNvbmFsdHJhaW5lci5jb21cIixcbiAgICAgIFwiaXMtYS1waG90b2dyYXBoZXIuY29tXCIsXG4gICAgICBcImlzLWEtcGxheWVyLmNvbVwiLFxuICAgICAgXCJpcy1hLXJlcHVibGljYW4uY29tXCIsXG4gICAgICBcImlzLWEtcm9ja3N0YXIuY29tXCIsXG4gICAgICBcImlzLWEtc29jaWFsaXN0LmNvbVwiLFxuICAgICAgXCJpcy1hLXNveGZhbi5vcmdcIixcbiAgICAgIFwiaXMtYS1zdHVkZW50LmNvbVwiLFxuICAgICAgXCJpcy1hLXRlYWNoZXIuY29tXCIsXG4gICAgICBcImlzLWEtdGVjaGllLmNvbVwiLFxuICAgICAgXCJpcy1hLXRoZXJhcGlzdC5jb21cIixcbiAgICAgIFwiaXMtYW4tYWNjb3VudGFudC5jb21cIixcbiAgICAgIFwiaXMtYW4tYWN0b3IuY29tXCIsXG4gICAgICBcImlzLWFuLWFjdHJlc3MuY29tXCIsXG4gICAgICBcImlzLWFuLWFuYXJjaGlzdC5jb21cIixcbiAgICAgIFwiaXMtYW4tYXJ0aXN0LmNvbVwiLFxuICAgICAgXCJpcy1hbi1lbmdpbmVlci5jb21cIixcbiAgICAgIFwiaXMtYW4tZW50ZXJ0YWluZXIuY29tXCIsXG4gICAgICBcImlzLWJ5LnVzXCIsXG4gICAgICBcImlzLWNlcnRpZmllZC5jb21cIixcbiAgICAgIFwiaXMtZm91bmQub3JnXCIsXG4gICAgICBcImlzLWdvbmUuY29tXCIsXG4gICAgICBcImlzLWludG8tYW5pbWUuY29tXCIsXG4gICAgICBcImlzLWludG8tY2Fycy5jb21cIixcbiAgICAgIFwiaXMtaW50by1jYXJ0b29ucy5jb21cIixcbiAgICAgIFwiaXMtaW50by1nYW1lcy5jb21cIixcbiAgICAgIFwiaXMtbGVldC5jb21cIixcbiAgICAgIFwiaXMtbG9zdC5vcmdcIixcbiAgICAgIFwiaXMtbm90LWNlcnRpZmllZC5jb21cIixcbiAgICAgIFwiaXMtc2F2ZWQub3JnXCIsXG4gICAgICBcImlzLXNsaWNrLmNvbVwiLFxuICAgICAgXCJpcy11YmVybGVldC5jb21cIixcbiAgICAgIFwiaXMtdmVyeS1iYWQub3JnXCIsXG4gICAgICBcImlzLXZlcnktZXZpbC5vcmdcIixcbiAgICAgIFwiaXMtdmVyeS1nb29kLm9yZ1wiLFxuICAgICAgXCJpcy12ZXJ5LW5pY2Uub3JnXCIsXG4gICAgICBcImlzLXZlcnktc3dlZXQub3JnXCIsXG4gICAgICBcImlzLXdpdGgtdGhlYmFuZC5jb21cIixcbiAgICAgIFwiaXNhLWdlZWsuY29tXCIsXG4gICAgICBcImlzYS1nZWVrLm5ldFwiLFxuICAgICAgXCJpc2EtZ2Vlay5vcmdcIixcbiAgICAgIFwiaXNhLWhvY2tleW51dC5jb21cIixcbiAgICAgIFwiaXNzbWFydGVydGhhbnlvdS5jb21cIixcbiAgICAgIFwiaXN0ZWluZ2Vlay5kZVwiLFxuICAgICAgXCJpc3RtZWluLmRlXCIsXG4gICAgICBcImtpY2tzLWFzcy5uZXRcIixcbiAgICAgIFwia2lja3MtYXNzLm9yZ1wiLFxuICAgICAgXCJrbm93c2l0YWxsLmluZm9cIixcbiAgICAgIFwibGFuZC00LXNhbGUudXNcIixcbiAgICAgIFwibGVidGltbmV0ei5kZVwiLFxuICAgICAgXCJsZWl0dW5nc2VuLmRlXCIsXG4gICAgICBcImxpa2VzLXBpZS5jb21cIixcbiAgICAgIFwibGlrZXNjYW5keS5jb21cIixcbiAgICAgIFwibWVyc2VpbmUubnVcIixcbiAgICAgIFwibWluZS5udVwiLFxuICAgICAgXCJtaXNjb25mdXNlZC5vcmdcIixcbiAgICAgIFwibXlwZXRzLndzXCIsXG4gICAgICBcIm15cGhvdG9zLmNjXCIsXG4gICAgICBcIm5lYXQtdXJsLmNvbVwiLFxuICAgICAgXCJvZmZpY2Utb24tdGhlLm5ldFwiLFxuICAgICAgXCJvbi10aGUtd2ViLnR2XCIsXG4gICAgICBcInBvZHpvbmUubmV0XCIsXG4gICAgICBcInBvZHpvbmUub3JnXCIsXG4gICAgICBcInJlYWRteWJsb2cub3JnXCIsXG4gICAgICBcInNhdmVzLXRoZS13aGFsZXMuY29tXCIsXG4gICAgICBcInNjcmFwcGVyLXNpdGUubmV0XCIsXG4gICAgICBcInNjcmFwcGluZy5jY1wiLFxuICAgICAgXCJzZWxmaXAuYml6XCIsXG4gICAgICBcInNlbGZpcC5jb21cIixcbiAgICAgIFwic2VsZmlwLmluZm9cIixcbiAgICAgIFwic2VsZmlwLm5ldFwiLFxuICAgICAgXCJzZWxmaXAub3JnXCIsXG4gICAgICBcInNlbGxzLWZvci1sZXNzLmNvbVwiLFxuICAgICAgXCJzZWxscy1mb3ItdS5jb21cIixcbiAgICAgIFwic2VsbHMtaXQubmV0XCIsXG4gICAgICBcInNlbGxzeW91cmhvbWUub3JnXCIsXG4gICAgICBcInNlcnZlYmJzLmNvbVwiLFxuICAgICAgXCJzZXJ2ZWJicy5uZXRcIixcbiAgICAgIFwic2VydmViYnMub3JnXCIsXG4gICAgICBcInNlcnZlZnRwLm5ldFwiLFxuICAgICAgXCJzZXJ2ZWZ0cC5vcmdcIixcbiAgICAgIFwic2VydmVnYW1lLm9yZ1wiLFxuICAgICAgXCJzaGFja25ldC5udVwiLFxuICAgICAgXCJzaW1wbGUtdXJsLmNvbVwiLFxuICAgICAgXCJzcGFjZS10by1yZW50LmNvbVwiLFxuICAgICAgXCJzdHVmZi00LXNhbGUub3JnXCIsXG4gICAgICBcInN0dWZmLTQtc2FsZS51c1wiLFxuICAgICAgXCJ0ZWFjaGVzLXlvZ2EuY29tXCIsXG4gICAgICBcInRocnVoZXJlLm5ldFwiLFxuICAgICAgXCJ0cmFldW10Z2VyYWRlLmRlXCIsXG4gICAgICBcIndlYmhvcC5iaXpcIixcbiAgICAgIFwid2ViaG9wLmluZm9cIixcbiAgICAgIFwid2ViaG9wLm5ldFwiLFxuICAgICAgXCJ3ZWJob3Aub3JnXCIsXG4gICAgICBcIndvcnNlLXRoYW4udHZcIixcbiAgICAgIFwid3JpdGVzdGhpc2Jsb2cuY29tXCIsXG4gICAgICBcImRkbnNzLmRlXCIsXG4gICAgICBcImR5bi5kZG5zcy5kZVwiLFxuICAgICAgXCJkeW5kbnMuZGRuc3MuZGVcIixcbiAgICAgIFwiZHluZG5zMS5kZVwiLFxuICAgICAgXCJkeW4taXAyNC5kZVwiLFxuICAgICAgXCJob21lLXdlYnNlcnZlci5kZVwiLFxuICAgICAgXCJkeW4uaG9tZS13ZWJzZXJ2ZXIuZGVcIixcbiAgICAgIFwibXlob21lLXNlcnZlci5kZVwiLFxuICAgICAgXCJkZG5zcy5vcmdcIixcbiAgICAgIFwiZGVmaW5pbWEubmV0XCIsXG4gICAgICBcImRlZmluaW1hLmlvXCIsXG4gICAgICBcIm9uZGlnaXRhbG9jZWFuLmFwcFwiLFxuICAgICAgXCIqLmRpZ2l0YWxvY2VhbnNwYWNlcy5jb21cIixcbiAgICAgIFwiYmNpLmRuc3RyYWNlLnByb1wiLFxuICAgICAgXCJkZG5zZnJlZS5jb21cIixcbiAgICAgIFwiZGRuc2dlZWsuY29tXCIsXG4gICAgICBcImdpaXplLmNvbVwiLFxuICAgICAgXCJnbGVlemUuY29tXCIsXG4gICAgICBcImtvem93LmNvbVwiLFxuICAgICAgXCJsb3NleW91cmlwLmNvbVwiLFxuICAgICAgXCJvb2d1eS5jb21cIixcbiAgICAgIFwidGhld29ya3BjLmNvbVwiLFxuICAgICAgXCJjYXNhY2FtLm5ldFwiLFxuICAgICAgXCJkeW51Lm5ldFwiLFxuICAgICAgXCJhY2Nlc3NjYW0ub3JnXCIsXG4gICAgICBcImNhbWR2ci5vcmdcIixcbiAgICAgIFwiZnJlZWRkbnMub3JnXCIsXG4gICAgICBcIm15d2lyZS5vcmdcIixcbiAgICAgIFwid2VicmVkaXJlY3Qub3JnXCIsXG4gICAgICBcIm15ZGRucy5yb2Nrc1wiLFxuICAgICAgXCJibG9nc2l0ZS54eXpcIixcbiAgICAgIFwiZHludjYubmV0XCIsXG4gICAgICBcImU0LmN6XCIsXG4gICAgICBcImVlcm8ub25saW5lXCIsXG4gICAgICBcImVlcm8tc3RhZ2Uub25saW5lXCIsXG4gICAgICBcImVsZW1lbnRvci5jbG91ZFwiLFxuICAgICAgXCJlbGVtZW50b3IuY29vbFwiLFxuICAgICAgXCJlbi1yb290LmZyXCIsXG4gICAgICBcIm15dHVsZWFwLmNvbVwiLFxuICAgICAgXCJ0dWxlYXAtcGFydG5lcnMuY29tXCIsXG4gICAgICBcImVuY3IuYXBwXCIsXG4gICAgICBcImVuY29yZWFwaS5jb21cIixcbiAgICAgIFwib25yZWQub25lXCIsXG4gICAgICBcInN0YWdpbmcub25yZWQub25lXCIsXG4gICAgICBcImV1LmVuY293YXkuY2xvdWRcIixcbiAgICAgIFwiZXUub3JnXCIsXG4gICAgICBcImFsLmV1Lm9yZ1wiLFxuICAgICAgXCJhc3NvLmV1Lm9yZ1wiLFxuICAgICAgXCJhdC5ldS5vcmdcIixcbiAgICAgIFwiYXUuZXUub3JnXCIsXG4gICAgICBcImJlLmV1Lm9yZ1wiLFxuICAgICAgXCJiZy5ldS5vcmdcIixcbiAgICAgIFwiY2EuZXUub3JnXCIsXG4gICAgICBcImNkLmV1Lm9yZ1wiLFxuICAgICAgXCJjaC5ldS5vcmdcIixcbiAgICAgIFwiY24uZXUub3JnXCIsXG4gICAgICBcImN5LmV1Lm9yZ1wiLFxuICAgICAgXCJjei5ldS5vcmdcIixcbiAgICAgIFwiZGUuZXUub3JnXCIsXG4gICAgICBcImRrLmV1Lm9yZ1wiLFxuICAgICAgXCJlZHUuZXUub3JnXCIsXG4gICAgICBcImVlLmV1Lm9yZ1wiLFxuICAgICAgXCJlcy5ldS5vcmdcIixcbiAgICAgIFwiZmkuZXUub3JnXCIsXG4gICAgICBcImZyLmV1Lm9yZ1wiLFxuICAgICAgXCJnci5ldS5vcmdcIixcbiAgICAgIFwiaHIuZXUub3JnXCIsXG4gICAgICBcImh1LmV1Lm9yZ1wiLFxuICAgICAgXCJpZS5ldS5vcmdcIixcbiAgICAgIFwiaWwuZXUub3JnXCIsXG4gICAgICBcImluLmV1Lm9yZ1wiLFxuICAgICAgXCJpbnQuZXUub3JnXCIsXG4gICAgICBcImlzLmV1Lm9yZ1wiLFxuICAgICAgXCJpdC5ldS5vcmdcIixcbiAgICAgIFwianAuZXUub3JnXCIsXG4gICAgICBcImtyLmV1Lm9yZ1wiLFxuICAgICAgXCJsdC5ldS5vcmdcIixcbiAgICAgIFwibHUuZXUub3JnXCIsXG4gICAgICBcImx2LmV1Lm9yZ1wiLFxuICAgICAgXCJtYy5ldS5vcmdcIixcbiAgICAgIFwibWUuZXUub3JnXCIsXG4gICAgICBcIm1rLmV1Lm9yZ1wiLFxuICAgICAgXCJtdC5ldS5vcmdcIixcbiAgICAgIFwibXkuZXUub3JnXCIsXG4gICAgICBcIm5ldC5ldS5vcmdcIixcbiAgICAgIFwibmcuZXUub3JnXCIsXG4gICAgICBcIm5sLmV1Lm9yZ1wiLFxuICAgICAgXCJuby5ldS5vcmdcIixcbiAgICAgIFwibnouZXUub3JnXCIsXG4gICAgICBcInBhcmlzLmV1Lm9yZ1wiLFxuICAgICAgXCJwbC5ldS5vcmdcIixcbiAgICAgIFwicHQuZXUub3JnXCIsXG4gICAgICBcInEtYS5ldS5vcmdcIixcbiAgICAgIFwicm8uZXUub3JnXCIsXG4gICAgICBcInJ1LmV1Lm9yZ1wiLFxuICAgICAgXCJzZS5ldS5vcmdcIixcbiAgICAgIFwic2kuZXUub3JnXCIsXG4gICAgICBcInNrLmV1Lm9yZ1wiLFxuICAgICAgXCJ0ci5ldS5vcmdcIixcbiAgICAgIFwidWsuZXUub3JnXCIsXG4gICAgICBcInVzLmV1Lm9yZ1wiLFxuICAgICAgXCJldXJvZGlyLnJ1XCIsXG4gICAgICBcImV1LTEuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcImV1LTIuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcImV1LTMuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcImV1LTQuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcInVzLTEuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcInVzLTIuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcInVzLTMuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcInVzLTQuZXZlbm5vZGUuY29tXCIsXG4gICAgICBcInR3bWFpbC5jY1wiLFxuICAgICAgXCJ0d21haWwubmV0XCIsXG4gICAgICBcInR3bWFpbC5vcmdcIixcbiAgICAgIFwibXltYWlsZXIuY29tLnR3XCIsXG4gICAgICBcInVybC50d1wiLFxuICAgICAgXCJvbmZhYnJpY2EuY29tXCIsXG4gICAgICBcImFwcHMuZmJzYnguY29tXCIsXG4gICAgICBcInJ1Lm5ldFwiLFxuICAgICAgXCJhZHlnZXlhLnJ1XCIsXG4gICAgICBcImJhc2hraXJpYS5ydVwiLFxuICAgICAgXCJiaXIucnVcIixcbiAgICAgIFwiY2JnLnJ1XCIsXG4gICAgICBcImNvbS5ydVwiLFxuICAgICAgXCJkYWdlc3Rhbi5ydVwiLFxuICAgICAgXCJncm96bnkucnVcIixcbiAgICAgIFwia2FsbXlraWEucnVcIixcbiAgICAgIFwia3VzdGFuYWkucnVcIixcbiAgICAgIFwibWFyaW5lLnJ1XCIsXG4gICAgICBcIm1vcmRvdmlhLnJ1XCIsXG4gICAgICBcIm1zay5ydVwiLFxuICAgICAgXCJteXRpcy5ydVwiLFxuICAgICAgXCJuYWxjaGlrLnJ1XCIsXG4gICAgICBcIm5vdi5ydVwiLFxuICAgICAgXCJweWF0aWdvcnNrLnJ1XCIsXG4gICAgICBcInNwYi5ydVwiLFxuICAgICAgXCJ2bGFkaWthdmthei5ydVwiLFxuICAgICAgXCJ2bGFkaW1pci5ydVwiLFxuICAgICAgXCJhYmtoYXppYS5zdVwiLFxuICAgICAgXCJhZHlnZXlhLnN1XCIsXG4gICAgICBcImFrdHl1Ymluc2suc3VcIixcbiAgICAgIFwiYXJraGFuZ2Vsc2suc3VcIixcbiAgICAgIFwiYXJtZW5pYS5zdVwiLFxuICAgICAgXCJhc2hnYWJhZC5zdVwiLFxuICAgICAgXCJhemVyYmFpamFuLnN1XCIsXG4gICAgICBcImJhbGFzaG92LnN1XCIsXG4gICAgICBcImJhc2hraXJpYS5zdVwiLFxuICAgICAgXCJicnlhbnNrLnN1XCIsXG4gICAgICBcImJ1a2hhcmEuc3VcIixcbiAgICAgIFwiY2hpbWtlbnQuc3VcIixcbiAgICAgIFwiZGFnZXN0YW4uc3VcIixcbiAgICAgIFwiZWFzdC1rYXpha2hzdGFuLnN1XCIsXG4gICAgICBcImV4bmV0LnN1XCIsXG4gICAgICBcImdlb3JnaWEuc3VcIixcbiAgICAgIFwiZ3Jvem55LnN1XCIsXG4gICAgICBcIml2YW5vdm8uc3VcIixcbiAgICAgIFwiamFtYnlsLnN1XCIsXG4gICAgICBcImthbG15a2lhLnN1XCIsXG4gICAgICBcImthbHVnYS5zdVwiLFxuICAgICAgXCJrYXJhY29sLnN1XCIsXG4gICAgICBcImthcmFnYW5kYS5zdVwiLFxuICAgICAgXCJrYXJlbGlhLnN1XCIsXG4gICAgICBcImtoYWthc3NpYS5zdVwiLFxuICAgICAgXCJrcmFzbm9kYXIuc3VcIixcbiAgICAgIFwia3VyZ2FuLnN1XCIsXG4gICAgICBcImt1c3RhbmFpLnN1XCIsXG4gICAgICBcImxlbnVnLnN1XCIsXG4gICAgICBcIm1hbmd5c2hsYWsuc3VcIixcbiAgICAgIFwibW9yZG92aWEuc3VcIixcbiAgICAgIFwibXNrLnN1XCIsXG4gICAgICBcIm11cm1hbnNrLnN1XCIsXG4gICAgICBcIm5hbGNoaWsuc3VcIixcbiAgICAgIFwibmF2b2kuc3VcIixcbiAgICAgIFwibm9ydGgta2F6YWtoc3Rhbi5zdVwiLFxuICAgICAgXCJub3Yuc3VcIixcbiAgICAgIFwib2JuaW5zay5zdVwiLFxuICAgICAgXCJwZW56YS5zdVwiLFxuICAgICAgXCJwb2tyb3Zzay5zdVwiLFxuICAgICAgXCJzb2NoaS5zdVwiLFxuICAgICAgXCJzcGIuc3VcIixcbiAgICAgIFwidGFzaGtlbnQuc3VcIixcbiAgICAgIFwidGVybWV6LnN1XCIsXG4gICAgICBcInRvZ2xpYXR0aS5zdVwiLFxuICAgICAgXCJ0cm9pdHNrLnN1XCIsXG4gICAgICBcInRzZWxpbm9ncmFkLnN1XCIsXG4gICAgICBcInR1bGEuc3VcIixcbiAgICAgIFwidHV2YS5zdVwiLFxuICAgICAgXCJ2bGFkaWthdmthei5zdVwiLFxuICAgICAgXCJ2bGFkaW1pci5zdVwiLFxuICAgICAgXCJ2b2xvZ2RhLnN1XCIsXG4gICAgICBcImNoYW5uZWxzZHZyLm5ldFwiLFxuICAgICAgXCJ1LmNoYW5uZWxzZHZyLm5ldFwiLFxuICAgICAgXCJlZGdlY29tcHV0ZS5hcHBcIixcbiAgICAgIFwiZmFzdGx5LXRlcnJhcml1bS5jb21cIixcbiAgICAgIFwiZmFzdGx5bGIubmV0XCIsXG4gICAgICBcIm1hcC5mYXN0bHlsYi5uZXRcIixcbiAgICAgIFwiZnJlZXRscy5mYXN0bHkubmV0XCIsXG4gICAgICBcIm1hcC5mYXN0bHkubmV0XCIsXG4gICAgICBcImEucHJvZC5mYXN0bHkubmV0XCIsXG4gICAgICBcImdsb2JhbC5wcm9kLmZhc3RseS5uZXRcIixcbiAgICAgIFwiYS5zc2wuZmFzdGx5Lm5ldFwiLFxuICAgICAgXCJiLnNzbC5mYXN0bHkubmV0XCIsXG4gICAgICBcImdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwiLFxuICAgICAgXCJmYXN0dnBzLXNlcnZlci5jb21cIixcbiAgICAgIFwiZmFzdHZwcy5ob3N0XCIsXG4gICAgICBcIm15ZmFzdC5ob3N0XCIsXG4gICAgICBcImZhc3R2cHMuc2l0ZVwiLFxuICAgICAgXCJteWZhc3Quc3BhY2VcIixcbiAgICAgIFwiZmVkb3JhaW5mcmFjbG91ZC5vcmdcIixcbiAgICAgIFwiZmVkb3JhcGVvcGxlLm9yZ1wiLFxuICAgICAgXCJjbG91ZC5mZWRvcmFwcm9qZWN0Lm9yZ1wiLFxuICAgICAgXCJhcHAub3MuZmVkb3JhcHJvamVjdC5vcmdcIixcbiAgICAgIFwiYXBwLm9zLnN0Zy5mZWRvcmFwcm9qZWN0Lm9yZ1wiLFxuICAgICAgXCJjb25uLnVrXCIsXG4gICAgICBcImNvcHJvLnVrXCIsXG4gICAgICBcImhvc3AudWtcIixcbiAgICAgIFwibXlkb2Jpc3MuY29tXCIsXG4gICAgICBcImZoLW11ZW5zdGVyLmlvXCIsXG4gICAgICBcImZpbGVnZWFyLm1lXCIsXG4gICAgICBcImZpbGVnZWFyLWF1Lm1lXCIsXG4gICAgICBcImZpbGVnZWFyLWRlLm1lXCIsXG4gICAgICBcImZpbGVnZWFyLWdiLm1lXCIsXG4gICAgICBcImZpbGVnZWFyLWllLm1lXCIsXG4gICAgICBcImZpbGVnZWFyLWpwLm1lXCIsXG4gICAgICBcImZpbGVnZWFyLXNnLm1lXCIsXG4gICAgICBcImZpcmViYXNlYXBwLmNvbVwiLFxuICAgICAgXCJmaXJld2ViLmFwcFwiLFxuICAgICAgXCJmbGFwLmlkXCIsXG4gICAgICBcIm9uZmxhc2hkcml2ZS5hcHBcIixcbiAgICAgIFwiZmxkcnYuY29tXCIsXG4gICAgICBcImZseS5kZXZcIixcbiAgICAgIFwiZWRnZWFwcC5uZXRcIixcbiAgICAgIFwic2h3LmlvXCIsXG4gICAgICBcImZseW5uaG9zdGluZy5uZXRcIixcbiAgICAgIFwiZm9yZ2VibG9ja3MuY29tXCIsXG4gICAgICBcImlkLmZvcmdlcm9jay5pb1wiLFxuICAgICAgXCJmcmFtZXIuYXBwXCIsXG4gICAgICBcImZyYW1lcmNhbnZhcy5jb21cIixcbiAgICAgIFwiKi5mcnVza3kuZGVcIixcbiAgICAgIFwicmF2cGFnZS5jby5pbFwiLFxuICAgICAgXCIwZS52Y1wiLFxuICAgICAgXCJmcmVlYm94LW9zLmNvbVwiLFxuICAgICAgXCJmcmVlYm94b3MuY29tXCIsXG4gICAgICBcImZieC1vcy5mclwiLFxuICAgICAgXCJmYnhvcy5mclwiLFxuICAgICAgXCJmcmVlYm94LW9zLmZyXCIsXG4gICAgICBcImZyZWVib3hvcy5mclwiLFxuICAgICAgXCJmcmVlZGVza3RvcC5vcmdcIixcbiAgICAgIFwiZnJlZW15aXAuY29tXCIsXG4gICAgICBcIndpZW4uZnVua2ZldWVyLmF0XCIsXG4gICAgICBcIiouZnV0dXJlY21zLmF0XCIsXG4gICAgICBcIiouZXguZnV0dXJlY21zLmF0XCIsXG4gICAgICBcIiouaW4uZnV0dXJlY21zLmF0XCIsXG4gICAgICBcImZ1dHVyZWhvc3RpbmcuYXRcIixcbiAgICAgIFwiZnV0dXJlbWFpbGluZy5hdFwiLFxuICAgICAgXCIqLmV4Lm9ydHNpbmZvLmF0XCIsXG4gICAgICBcIioua3VuZGVuLm9ydHNpbmZvLmF0XCIsXG4gICAgICBcIiouc3RhdGljcy5jbG91ZFwiLFxuICAgICAgXCJpbmRlcGVuZGVudC1jb21taXNzaW9uLnVrXCIsXG4gICAgICBcImluZGVwZW5kZW50LWlucXVlc3QudWtcIixcbiAgICAgIFwiaW5kZXBlbmRlbnQtaW5xdWlyeS51a1wiLFxuICAgICAgXCJpbmRlcGVuZGVudC1wYW5lbC51a1wiLFxuICAgICAgXCJpbmRlcGVuZGVudC1yZXZpZXcudWtcIixcbiAgICAgIFwicHVibGljLWlucXVpcnkudWtcIixcbiAgICAgIFwicm95YWwtY29tbWlzc2lvbi51a1wiLFxuICAgICAgXCJjYW1wYWlnbi5nb3YudWtcIixcbiAgICAgIFwic2VydmljZS5nb3YudWtcIixcbiAgICAgIFwiYXBpLmdvdi51a1wiLFxuICAgICAgXCJnZWhpcm4ubmUuanBcIixcbiAgICAgIFwidXNlcmNvbnRlbnQuanBcIixcbiAgICAgIFwiZ2VudGFwcHMuY29tXCIsXG4gICAgICBcImdlbnRsZW50YXBpcy5jb21cIixcbiAgICAgIFwibGFiLm1zXCIsXG4gICAgICBcImNkbi1lZGdlcy5uZXRcIixcbiAgICAgIFwiZ2hvc3QuaW9cIixcbiAgICAgIFwiZ3NqLmJ6XCIsXG4gICAgICBcImdpdGh1YnVzZXJjb250ZW50LmNvbVwiLFxuICAgICAgXCJnaXRodWJwcmV2aWV3LmRldlwiLFxuICAgICAgXCJnaXRodWIuaW9cIixcbiAgICAgIFwiZ2l0bGFiLmlvXCIsXG4gICAgICBcImdpdGFwcC5zaVwiLFxuICAgICAgXCJnaXRwYWdlLnNpXCIsXG4gICAgICBcImdsaXRjaC5tZVwiLFxuICAgICAgXCJub2cuY29tbXVuaXR5XCIsXG4gICAgICBcImNvLnJvXCIsXG4gICAgICBcInNob3Aucm9cIixcbiAgICAgIFwibG9saXBvcC5pb1wiLFxuICAgICAgXCJhbmdyeS5qcFwiLFxuICAgICAgXCJiYWJ5Ymx1ZS5qcFwiLFxuICAgICAgXCJiYWJ5bWlsay5qcFwiLFxuICAgICAgXCJiYWNrZHJvcC5qcFwiLFxuICAgICAgXCJiYW1iaW5hLmpwXCIsXG4gICAgICBcImJpdHRlci5qcFwiLFxuICAgICAgXCJibHVzaC5qcFwiLFxuICAgICAgXCJib28uanBcIixcbiAgICAgIFwiYm95LmpwXCIsXG4gICAgICBcImJveWZyaWVuZC5qcFwiLFxuICAgICAgXCJidXQuanBcIixcbiAgICAgIFwiY2FuZHlwb3AuanBcIixcbiAgICAgIFwiY2Fwb28uanBcIixcbiAgICAgIFwiY2F0Zm9vZC5qcFwiLFxuICAgICAgXCJjaGVhcC5qcFwiLFxuICAgICAgXCJjaGljYXBwYS5qcFwiLFxuICAgICAgXCJjaGlsbG91dC5qcFwiLFxuICAgICAgXCJjaGlwcy5qcFwiLFxuICAgICAgXCJjaG93ZGVyLmpwXCIsXG4gICAgICBcImNodS5qcFwiLFxuICAgICAgXCJjaWFvLmpwXCIsXG4gICAgICBcImNvY290dGUuanBcIixcbiAgICAgIFwiY29vbGJsb2cuanBcIixcbiAgICAgIFwiY3Jhbmt5LmpwXCIsXG4gICAgICBcImN1dGVnaXJsLmpwXCIsXG4gICAgICBcImRhYS5qcFwiLFxuICAgICAgXCJkZWNhLmpwXCIsXG4gICAgICBcImRlY2kuanBcIixcbiAgICAgIFwiZGlnaWNrLmpwXCIsXG4gICAgICBcImVnb2lzbS5qcFwiLFxuICAgICAgXCJmYWtlZnVyLmpwXCIsXG4gICAgICBcImZlbS5qcFwiLFxuICAgICAgXCJmbGllci5qcFwiLFxuICAgICAgXCJmbG9wcHkuanBcIixcbiAgICAgIFwiZm9vbC5qcFwiLFxuICAgICAgXCJmcmVuY2hraXNzLmpwXCIsXG4gICAgICBcImdpcmxmcmllbmQuanBcIixcbiAgICAgIFwiZ2lybHkuanBcIixcbiAgICAgIFwiZ2xvb215LmpwXCIsXG4gICAgICBcImdvbm5hLmpwXCIsXG4gICAgICBcImdyZWF0ZXIuanBcIixcbiAgICAgIFwiaGFjY2EuanBcIixcbiAgICAgIFwiaGVhdnkuanBcIixcbiAgICAgIFwiaGVyLmpwXCIsXG4gICAgICBcImhpaG8uanBcIixcbiAgICAgIFwiaGlwcHkuanBcIixcbiAgICAgIFwiaG9seS5qcFwiLFxuICAgICAgXCJodW5ncnkuanBcIixcbiAgICAgIFwiaWN1cnVzLmpwXCIsXG4gICAgICBcIml0aWdvLmpwXCIsXG4gICAgICBcImplbGx5YmVhbi5qcFwiLFxuICAgICAgXCJraWtpcmFyYS5qcFwiLFxuICAgICAgXCJraWxsLmpwXCIsXG4gICAgICBcImtpbG8uanBcIixcbiAgICAgIFwia3Vyb24uanBcIixcbiAgICAgIFwibGl0dGxlc3Rhci5qcFwiLFxuICAgICAgXCJsb2xpcG9wbWMuanBcIixcbiAgICAgIFwibG9saXRhcHVuay5qcFwiLFxuICAgICAgXCJsb21vLmpwXCIsXG4gICAgICBcImxvdmVwb3AuanBcIixcbiAgICAgIFwibG92ZXNpY2suanBcIixcbiAgICAgIFwibWFpbi5qcFwiLFxuICAgICAgXCJtb2RzLmpwXCIsXG4gICAgICBcIm1vbmQuanBcIixcbiAgICAgIFwibW9uZ29saWFuLmpwXCIsXG4gICAgICBcIm1vby5qcFwiLFxuICAgICAgXCJuYW1hc3RlLmpwXCIsXG4gICAgICBcIm5pa2l0YS5qcFwiLFxuICAgICAgXCJub2J1c2hpLmpwXCIsXG4gICAgICBcIm5vb3IuanBcIixcbiAgICAgIFwib29wcy5qcFwiLFxuICAgICAgXCJwYXJhbGxlbC5qcFwiLFxuICAgICAgXCJwYXJhc2l0ZS5qcFwiLFxuICAgICAgXCJwZWNvcmkuanBcIixcbiAgICAgIFwicGVld2VlLmpwXCIsXG4gICAgICBcInBlbm5lLmpwXCIsXG4gICAgICBcInBlcHBlci5qcFwiLFxuICAgICAgXCJwZXJtYS5qcFwiLFxuICAgICAgXCJwaWdib2F0LmpwXCIsXG4gICAgICBcInBpbm9rby5qcFwiLFxuICAgICAgXCJwdW55dS5qcFwiLFxuICAgICAgXCJwdXB1LmpwXCIsXG4gICAgICBcInB1c3N5Y2F0LmpwXCIsXG4gICAgICBcInB5YS5qcFwiLFxuICAgICAgXCJyYWluZHJvcC5qcFwiLFxuICAgICAgXCJyZWFkeW1hZGUuanBcIixcbiAgICAgIFwic2FkaXN0LmpwXCIsXG4gICAgICBcInNjaG9vbGJ1cy5qcFwiLFxuICAgICAgXCJzZWNyZXQuanBcIixcbiAgICAgIFwic3RhYmEuanBcIixcbiAgICAgIFwic3RyaXBwZXIuanBcIixcbiAgICAgIFwic3ViLmpwXCIsXG4gICAgICBcInN1bm55ZGF5LmpwXCIsXG4gICAgICBcInRoaWNrLmpwXCIsXG4gICAgICBcInRvbmtvdHN1LmpwXCIsXG4gICAgICBcInVuZGVyLmpwXCIsXG4gICAgICBcInVwcGVyLmpwXCIsXG4gICAgICBcInZlbHZldC5qcFwiLFxuICAgICAgXCJ2ZXJzZS5qcFwiLFxuICAgICAgXCJ2ZXJzdXMuanBcIixcbiAgICAgIFwidml2aWFuLmpwXCIsXG4gICAgICBcIndhdHNvbi5qcFwiLFxuICAgICAgXCJ3ZWJsaWtlLmpwXCIsXG4gICAgICBcIndoaXRlc25vdy5qcFwiLFxuICAgICAgXCJ6b21iaWUuanBcIixcbiAgICAgIFwiaGV0ZW1sLm5ldFwiLFxuICAgICAgXCJjbG91ZGFwcHMuZGlnaXRhbFwiLFxuICAgICAgXCJsb25kb24uY2xvdWRhcHBzLmRpZ2l0YWxcIixcbiAgICAgIFwicHltbnQudWtcIixcbiAgICAgIFwiaG9tZW9mZmljZS5nb3YudWtcIixcbiAgICAgIFwicm8uaW1cIixcbiAgICAgIFwiZ29pcC5kZVwiLFxuICAgICAgXCJydW4uYXBwXCIsXG4gICAgICBcImEucnVuLmFwcFwiLFxuICAgICAgXCJ3ZWIuYXBwXCIsXG4gICAgICBcIiouMGVtbS5jb21cIixcbiAgICAgIFwiYXBwc3BvdC5jb21cIixcbiAgICAgIFwiKi5yLmFwcHNwb3QuY29tXCIsXG4gICAgICBcImNvZGVzcG90LmNvbVwiLFxuICAgICAgXCJnb29nbGVhcGlzLmNvbVwiLFxuICAgICAgXCJnb29nbGVjb2RlLmNvbVwiLFxuICAgICAgXCJwYWdlc3BlZWRtb2JpbGl6ZXIuY29tXCIsXG4gICAgICBcInB1Ymxpc2hwcm94eS5jb21cIixcbiAgICAgIFwid2l0aGdvb2dsZS5jb21cIixcbiAgICAgIFwid2l0aHlvdXR1YmUuY29tXCIsXG4gICAgICBcIiouZ2F0ZXdheS5kZXZcIixcbiAgICAgIFwiY2xvdWQuZ29vZ1wiLFxuICAgICAgXCJ0cmFuc2xhdGUuZ29vZ1wiLFxuICAgICAgXCIqLnVzZXJjb250ZW50Lmdvb2dcIixcbiAgICAgIFwiY2xvdWRmdW5jdGlvbnMubmV0XCIsXG4gICAgICBcImJsb2dzcG90LmFlXCIsXG4gICAgICBcImJsb2dzcG90LmFsXCIsXG4gICAgICBcImJsb2dzcG90LmFtXCIsXG4gICAgICBcImJsb2dzcG90LmJhXCIsXG4gICAgICBcImJsb2dzcG90LmJlXCIsXG4gICAgICBcImJsb2dzcG90LmJnXCIsXG4gICAgICBcImJsb2dzcG90LmJqXCIsXG4gICAgICBcImJsb2dzcG90LmNhXCIsXG4gICAgICBcImJsb2dzcG90LmNmXCIsXG4gICAgICBcImJsb2dzcG90LmNoXCIsXG4gICAgICBcImJsb2dzcG90LmNsXCIsXG4gICAgICBcImJsb2dzcG90LmNvLmF0XCIsXG4gICAgICBcImJsb2dzcG90LmNvLmlkXCIsXG4gICAgICBcImJsb2dzcG90LmNvLmlsXCIsXG4gICAgICBcImJsb2dzcG90LmNvLmtlXCIsXG4gICAgICBcImJsb2dzcG90LmNvLm56XCIsXG4gICAgICBcImJsb2dzcG90LmNvLnVrXCIsXG4gICAgICBcImJsb2dzcG90LmNvLnphXCIsXG4gICAgICBcImJsb2dzcG90LmNvbVwiLFxuICAgICAgXCJibG9nc3BvdC5jb20uYXJcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY29tLmF1XCIsXG4gICAgICBcImJsb2dzcG90LmNvbS5iclwiLFxuICAgICAgXCJibG9nc3BvdC5jb20uYnlcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY29tLmNvXCIsXG4gICAgICBcImJsb2dzcG90LmNvbS5jeVwiLFxuICAgICAgXCJibG9nc3BvdC5jb20uZWVcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY29tLmVnXCIsXG4gICAgICBcImJsb2dzcG90LmNvbS5lc1wiLFxuICAgICAgXCJibG9nc3BvdC5jb20ubXRcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY29tLm5nXCIsXG4gICAgICBcImJsb2dzcG90LmNvbS50clwiLFxuICAgICAgXCJibG9nc3BvdC5jb20udXlcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY3ZcIixcbiAgICAgIFwiYmxvZ3Nwb3QuY3pcIixcbiAgICAgIFwiYmxvZ3Nwb3QuZGVcIixcbiAgICAgIFwiYmxvZ3Nwb3QuZGtcIixcbiAgICAgIFwiYmxvZ3Nwb3QuZmlcIixcbiAgICAgIFwiYmxvZ3Nwb3QuZnJcIixcbiAgICAgIFwiYmxvZ3Nwb3QuZ3JcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaGtcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaHJcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaHVcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaWVcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaW5cIixcbiAgICAgIFwiYmxvZ3Nwb3QuaXNcIixcbiAgICAgIFwiYmxvZ3Nwb3QuaXRcIixcbiAgICAgIFwiYmxvZ3Nwb3QuanBcIixcbiAgICAgIFwiYmxvZ3Nwb3Qua3JcIixcbiAgICAgIFwiYmxvZ3Nwb3QubGlcIixcbiAgICAgIFwiYmxvZ3Nwb3QubHRcIixcbiAgICAgIFwiYmxvZ3Nwb3QubHVcIixcbiAgICAgIFwiYmxvZ3Nwb3QubWRcIixcbiAgICAgIFwiYmxvZ3Nwb3QubWtcIixcbiAgICAgIFwiYmxvZ3Nwb3QubXJcIixcbiAgICAgIFwiYmxvZ3Nwb3QubXhcIixcbiAgICAgIFwiYmxvZ3Nwb3QubXlcIixcbiAgICAgIFwiYmxvZ3Nwb3QubmxcIixcbiAgICAgIFwiYmxvZ3Nwb3Qubm9cIixcbiAgICAgIFwiYmxvZ3Nwb3QucGVcIixcbiAgICAgIFwiYmxvZ3Nwb3QucHRcIixcbiAgICAgIFwiYmxvZ3Nwb3QucWFcIixcbiAgICAgIFwiYmxvZ3Nwb3QucmVcIixcbiAgICAgIFwiYmxvZ3Nwb3Qucm9cIixcbiAgICAgIFwiYmxvZ3Nwb3QucnNcIixcbiAgICAgIFwiYmxvZ3Nwb3QucnVcIixcbiAgICAgIFwiYmxvZ3Nwb3Quc2VcIixcbiAgICAgIFwiYmxvZ3Nwb3Quc2dcIixcbiAgICAgIFwiYmxvZ3Nwb3Quc2lcIixcbiAgICAgIFwiYmxvZ3Nwb3Quc2tcIixcbiAgICAgIFwiYmxvZ3Nwb3Quc25cIixcbiAgICAgIFwiYmxvZ3Nwb3QudGRcIixcbiAgICAgIFwiYmxvZ3Nwb3QudHdcIixcbiAgICAgIFwiYmxvZ3Nwb3QudWdcIixcbiAgICAgIFwiYmxvZ3Nwb3Qudm5cIixcbiAgICAgIFwiZ291cGlsZS5mclwiLFxuICAgICAgXCJnb3YubmxcIixcbiAgICAgIFwiYXdzbXBwbC5jb21cIixcbiAgICAgIFwiZ1xceEZDbnN0aWdiZXN0ZWxsZW4uZGVcIixcbiAgICAgIFwiZ1xceEZDbnN0aWdsaWVmZXJuLmRlXCIsXG4gICAgICBcImZpbi5jaVwiLFxuICAgICAgXCJmcmVlLmhyXCIsXG4gICAgICBcImNhYS5saVwiLFxuICAgICAgXCJ1YS5yc1wiLFxuICAgICAgXCJjb25mLnNlXCIsXG4gICAgICBcImhzLnpvbmVcIixcbiAgICAgIFwiaHMucnVuXCIsXG4gICAgICBcImhhc2hiYW5nLnNoXCIsXG4gICAgICBcImhhc3VyYS5hcHBcIixcbiAgICAgIFwiaGFzdXJhLWFwcC5pb1wiLFxuICAgICAgXCJwYWdlcy5pdC5ocy1oZWlsYnJvbm4uZGVcIixcbiAgICAgIFwiaGVwZm9yZ2Uub3JnXCIsXG4gICAgICBcImhlcm9rdWFwcC5jb21cIixcbiAgICAgIFwiaGVyb2t1c3NsLmNvbVwiLFxuICAgICAgXCJyYXZlbmRiLmNsb3VkXCIsXG4gICAgICBcIm15cmF2ZW5kYi5jb21cIixcbiAgICAgIFwicmF2ZW5kYi5jb21tdW5pdHlcIixcbiAgICAgIFwicmF2ZW5kYi5tZVwiLFxuICAgICAgXCJkZXZlbG9wbWVudC5ydW5cIixcbiAgICAgIFwicmF2ZW5kYi5ydW5cIixcbiAgICAgIFwiaG9tZXNrbGVwLnBsXCIsXG4gICAgICBcInNlY2Fhcy5oa1wiLFxuICAgICAgXCJob3BsaXguc2hvcFwiLFxuICAgICAgXCJvcnguYml6XCIsXG4gICAgICBcImJpei5nbFwiLFxuICAgICAgXCJjb2wubmdcIixcbiAgICAgIFwiZmlybS5uZ1wiLFxuICAgICAgXCJnZW4ubmdcIixcbiAgICAgIFwibHRkLm5nXCIsXG4gICAgICBcIm5nby5uZ1wiLFxuICAgICAgXCJlZHUuc2NvdFwiLFxuICAgICAgXCJzY2guc29cIixcbiAgICAgIFwiaG9zdHlob3N0aW5nLmlvXCIsXG4gICAgICBcImhcXHhFNGtraW5lbi5maVwiLFxuICAgICAgXCIqLm1vb25zY2FsZS5pb1wiLFxuICAgICAgXCJtb29uc2NhbGUubmV0XCIsXG4gICAgICBcImlraS5maVwiLFxuICAgICAgXCJpYnhvcy5pdFwiLFxuICAgICAgXCJpbGlhZGJveG9zLml0XCIsXG4gICAgICBcImltcGVydHJpeGNkbi5jb21cIixcbiAgICAgIFwiaW1wZXJ0cml4LmNvbVwiLFxuICAgICAgXCJzbXVzaGNkbi5jb21cIixcbiAgICAgIFwid3Bob3N0ZWRtYWlsLmNvbVwiLFxuICAgICAgXCJ3cG11Y2RuLmNvbVwiLFxuICAgICAgXCJ0ZW1wdXJsLmhvc3RcIixcbiAgICAgIFwid3BtdWRldi5ob3N0XCIsXG4gICAgICBcImR5bi1iZXJsaW4uZGVcIixcbiAgICAgIFwiaW4tYmVybGluLmRlXCIsXG4gICAgICBcImluLWJyYi5kZVwiLFxuICAgICAgXCJpbi1idXR0ZXIuZGVcIixcbiAgICAgIFwiaW4tZHNsLmRlXCIsXG4gICAgICBcImluLWRzbC5uZXRcIixcbiAgICAgIFwiaW4tZHNsLm9yZ1wiLFxuICAgICAgXCJpbi12cG4uZGVcIixcbiAgICAgIFwiaW4tdnBuLm5ldFwiLFxuICAgICAgXCJpbi12cG4ub3JnXCIsXG4gICAgICBcImJpei5hdFwiLFxuICAgICAgXCJpbmZvLmF0XCIsXG4gICAgICBcImluZm8uY3hcIixcbiAgICAgIFwiYWMubGVnLmJyXCIsXG4gICAgICBcImFsLmxlZy5iclwiLFxuICAgICAgXCJhbS5sZWcuYnJcIixcbiAgICAgIFwiYXAubGVnLmJyXCIsXG4gICAgICBcImJhLmxlZy5iclwiLFxuICAgICAgXCJjZS5sZWcuYnJcIixcbiAgICAgIFwiZGYubGVnLmJyXCIsXG4gICAgICBcImVzLmxlZy5iclwiLFxuICAgICAgXCJnby5sZWcuYnJcIixcbiAgICAgIFwibWEubGVnLmJyXCIsXG4gICAgICBcIm1nLmxlZy5iclwiLFxuICAgICAgXCJtcy5sZWcuYnJcIixcbiAgICAgIFwibXQubGVnLmJyXCIsXG4gICAgICBcInBhLmxlZy5iclwiLFxuICAgICAgXCJwYi5sZWcuYnJcIixcbiAgICAgIFwicGUubGVnLmJyXCIsXG4gICAgICBcInBpLmxlZy5iclwiLFxuICAgICAgXCJwci5sZWcuYnJcIixcbiAgICAgIFwicmoubGVnLmJyXCIsXG4gICAgICBcInJuLmxlZy5iclwiLFxuICAgICAgXCJyby5sZWcuYnJcIixcbiAgICAgIFwicnIubGVnLmJyXCIsXG4gICAgICBcInJzLmxlZy5iclwiLFxuICAgICAgXCJzYy5sZWcuYnJcIixcbiAgICAgIFwic2UubGVnLmJyXCIsXG4gICAgICBcInNwLmxlZy5iclwiLFxuICAgICAgXCJ0by5sZWcuYnJcIixcbiAgICAgIFwicGl4b2xpbm8uY29tXCIsXG4gICAgICBcIm5hNHUucnVcIixcbiAgICAgIFwiaW9wc3lzLnNlXCIsXG4gICAgICBcImlwaWZvbnkubmV0XCIsXG4gICAgICBcImlzZXJ2c2NodWxlLmRlXCIsXG4gICAgICBcIm1laW4taXNlcnYuZGVcIixcbiAgICAgIFwic2NodWxwbGF0dGZvcm0uZGVcIixcbiAgICAgIFwic2NodWxzZXJ2ZXIuZGVcIixcbiAgICAgIFwidGVzdC1pc2Vydi5kZVwiLFxuICAgICAgXCJpc2Vydi5kZXZcIixcbiAgICAgIFwiaW9iYi5uZXRcIixcbiAgICAgIFwibWVsLmNsb3VkbGV0cy5jb20uYXVcIixcbiAgICAgIFwiY2xvdWQuaW50ZXJob3N0c29sdXRpb25zLmJlXCIsXG4gICAgICBcInVzZXJzLnNjYWxlLnZpcnR1YWxjbG91ZC5jb20uYnJcIixcbiAgICAgIFwibXljbG91ZC5ieVwiLFxuICAgICAgXCJhbHAxLmFlLmZsb3cuY2hcIixcbiAgICAgIFwiYXBwZW5naW5lLmZsb3cuY2hcIixcbiAgICAgIFwiZXMtMS5heGFybmV0LmNsb3VkXCIsXG4gICAgICBcImRpYWRlbS5jbG91ZFwiLFxuICAgICAgXCJ2aXAuamVsYXN0aWMuY2xvdWRcIixcbiAgICAgIFwiamVsZS5jbG91ZFwiLFxuICAgICAgXCJpdDEuZXVyLmFydWJhLmplbnYtYXJ1YmEuY2xvdWRcIixcbiAgICAgIFwiaXQxLmplbnYtYXJ1YmEuY2xvdWRcIixcbiAgICAgIFwia2VsaXdlYi5jbG91ZFwiLFxuICAgICAgXCJjcy5rZWxpd2ViLmNsb3VkXCIsXG4gICAgICBcIm94YS5jbG91ZFwiLFxuICAgICAgXCJ0bi5veGEuY2xvdWRcIixcbiAgICAgIFwidWsub3hhLmNsb3VkXCIsXG4gICAgICBcInByaW1ldGVsLmNsb3VkXCIsXG4gICAgICBcInVrLnByaW1ldGVsLmNsb3VkXCIsXG4gICAgICBcImNhLnJlY2xhaW0uY2xvdWRcIixcbiAgICAgIFwidWsucmVjbGFpbS5jbG91ZFwiLFxuICAgICAgXCJ1cy5yZWNsYWltLmNsb3VkXCIsXG4gICAgICBcImNoLnRyZW5kaG9zdGluZy5jbG91ZFwiLFxuICAgICAgXCJkZS50cmVuZGhvc3RpbmcuY2xvdWRcIixcbiAgICAgIFwiamVsZS5jbHViXCIsXG4gICAgICBcImFtc2NvbXB1dGUuY29tXCIsXG4gICAgICBcImNsaWNrZXRjbG91ZC5jb21cIixcbiAgICAgIFwiZG9wYWFzLmNvbVwiLFxuICAgICAgXCJoaWRvcmEuY29tXCIsXG4gICAgICBcInBhYXMuaG9zdGVkLWJ5LXByZXZpZGVyLmNvbVwiLFxuICAgICAgXCJyYWctY2xvdWQuaG9zdGV1ci5jb21cIixcbiAgICAgIFwicmFnLWNsb3VkLWNoLmhvc3RldXIuY29tXCIsXG4gICAgICBcImpjbG91ZC5pay1zZXJ2ZXIuY29tXCIsXG4gICAgICBcImpjbG91ZC12ZXItanBjLmlrLXNlcnZlci5jb21cIixcbiAgICAgIFwiZGVtby5qZWxhc3RpYy5jb21cIixcbiAgICAgIFwia2lsYXRpcm9uLmNvbVwiLFxuICAgICAgXCJwYWFzLm1hc3NpdmVncmlkLmNvbVwiLFxuICAgICAgXCJqZWQud2FmYWljbG91ZC5jb21cIixcbiAgICAgIFwibG9uLndhZmFpY2xvdWQuY29tXCIsXG4gICAgICBcInJ5ZC53YWZhaWNsb3VkLmNvbVwiLFxuICAgICAgXCJqLnNjYWxlZm9yY2UuY29tLmN5XCIsXG4gICAgICBcImplbGFzdGljLmRvZ2Fkby5ldVwiLFxuICAgICAgXCJmaS5jbG91ZHBsYXRmb3JtLmZpXCIsXG4gICAgICBcImRlbW8uZGF0YWNlbnRlci5maVwiLFxuICAgICAgXCJwYWFzLmRhdGFjZW50ZXIuZmlcIixcbiAgICAgIFwiamVsZS5ob3N0XCIsXG4gICAgICBcIm1pcmNsb3VkLmhvc3RcIixcbiAgICAgIFwicGFhcy5iZWVieXRlLmlvXCIsXG4gICAgICBcInNla2QxLmJlZWJ5dGVhcHAuaW9cIixcbiAgICAgIFwiamVsZS5pb1wiLFxuICAgICAgXCJjbG91ZC1mcjEudW5pc3BhY2UuaW9cIixcbiAgICAgIFwiamMubmVlbi5pdFwiLFxuICAgICAgXCJjbG91ZC5qZWxhc3RpYy5vcGVuLnRpbS5pdFwiLFxuICAgICAgXCJqY2xvdWQua3pcIixcbiAgICAgIFwidXBhYXMua2F6dGVsZXBvcnQua3pcIixcbiAgICAgIFwiY2xvdWRqaWZmeS5uZXRcIixcbiAgICAgIFwiZnJhMS1kZS5jbG91ZGppZmZ5Lm5ldFwiLFxuICAgICAgXCJ3ZXN0MS11cy5jbG91ZGppZmZ5Lm5ldFwiLFxuICAgICAgXCJqbHMtc3RvMS5lbGFzdHgubmV0XCIsXG4gICAgICBcImpscy1zdG8yLmVsYXN0eC5uZXRcIixcbiAgICAgIFwiamxzLXN0bzMuZWxhc3R4Lm5ldFwiLFxuICAgICAgXCJmYXN0c3RhY2tzLm5ldFwiLFxuICAgICAgXCJmci0xLnBhYXMubWFzc2l2ZWdyaWQubmV0XCIsXG4gICAgICBcImxvbi0xLnBhYXMubWFzc2l2ZWdyaWQubmV0XCIsXG4gICAgICBcImxvbi0yLnBhYXMubWFzc2l2ZWdyaWQubmV0XCIsXG4gICAgICBcIm55LTEucGFhcy5tYXNzaXZlZ3JpZC5uZXRcIixcbiAgICAgIFwibnktMi5wYWFzLm1hc3NpdmVncmlkLm5ldFwiLFxuICAgICAgXCJzZy0xLnBhYXMubWFzc2l2ZWdyaWQubmV0XCIsXG4gICAgICBcImplbGFzdGljLnNhdmVpbmNsb3VkLm5ldFwiLFxuICAgICAgXCJub3JkZXN0ZS1pZGMuc2F2ZWluY2xvdWQubmV0XCIsXG4gICAgICBcImouc2NhbGVmb3JjZS5uZXRcIixcbiAgICAgIFwiamVsYXN0aWMudHN1a2FlcnUubmV0XCIsXG4gICAgICBcInNkc2Nsb3VkLnBsXCIsXG4gICAgICBcInVuaWNsb3VkLnBsXCIsXG4gICAgICBcIm1pcmNsb3VkLnJ1XCIsXG4gICAgICBcImplbGFzdGljLnJlZ3J1aG9zdGluZy5ydVwiLFxuICAgICAgXCJlbnNjYWxlZC5zZ1wiLFxuICAgICAgXCJqZWxlLnNpdGVcIixcbiAgICAgIFwiamVsYXN0aWMudGVhbVwiLFxuICAgICAgXCJvcmFuZ2VjbG91ZC50blwiLFxuICAgICAgXCJqLmxheWVyc2hpZnQuY28udWtcIixcbiAgICAgIFwicGh4LmVuc2NhbGVkLnVzXCIsXG4gICAgICBcIm1pcmNsb3VkLnVzXCIsXG4gICAgICBcIm15amluby5ydVwiLFxuICAgICAgXCIqLmhvc3RpbmcubXlqaW5vLnJ1XCIsXG4gICAgICBcIioubGFuZGluZy5teWppbm8ucnVcIixcbiAgICAgIFwiKi5zcGVjdHJ1bS5teWppbm8ucnVcIixcbiAgICAgIFwiKi52cHMubXlqaW5vLnJ1XCIsXG4gICAgICBcImpvdGVsdWx1LmNsb3VkXCIsXG4gICAgICBcIioudHJpdG9uLnpvbmVcIixcbiAgICAgIFwiKi5jbnMuam95ZW50LmNvbVwiLFxuICAgICAgXCJqcy5vcmdcIixcbiAgICAgIFwia2Fhcy5nZ1wiLFxuICAgICAgXCJraHBsYXkubmxcIixcbiAgICAgIFwia3Rpc3RvcnkuY29tXCIsXG4gICAgICBcImthcHNpLmZpXCIsXG4gICAgICBcImtleW1hY2hpbmUuZGVcIixcbiAgICAgIFwia2luZ2hvc3QubmV0XCIsXG4gICAgICBcInVuaTUubmV0XCIsXG4gICAgICBcImtuaWdodHBvaW50LnN5c3RlbXNcIixcbiAgICAgIFwia29vYmluLmV2ZW50c1wiLFxuICAgICAgXCJveWEudG9cIixcbiAgICAgIFwia3VsZXV2ZW4uY2xvdWRcIixcbiAgICAgIFwiZXpwcm94eS5rdWxldXZlbi5iZVwiLFxuICAgICAgXCJjby5rcmRcIixcbiAgICAgIFwiZWR1LmtyZFwiLFxuICAgICAgXCJrcmVsbGlhbi5uZXRcIixcbiAgICAgIFwid2VidGhpbmdzLmlvXCIsXG4gICAgICBcImdpdC1yZXBvcy5kZVwiLFxuICAgICAgXCJsY3ViZS1zZXJ2ZXIuZGVcIixcbiAgICAgIFwic3ZuLXJlcG9zLmRlXCIsXG4gICAgICBcImxlYWRwYWdlcy5jb1wiLFxuICAgICAgXCJscGFnZXMuY29cIixcbiAgICAgIFwibHB1c2VyY29udGVudC5jb21cIixcbiAgICAgIFwibGVsdXguc2l0ZVwiLFxuICAgICAgXCJjby5idXNpbmVzc1wiLFxuICAgICAgXCJjby5lZHVjYXRpb25cIixcbiAgICAgIFwiY28uZXZlbnRzXCIsXG4gICAgICBcImNvLmZpbmFuY2lhbFwiLFxuICAgICAgXCJjby5uZXR3b3JrXCIsXG4gICAgICBcImNvLnBsYWNlXCIsXG4gICAgICBcImNvLnRlY2hub2xvZ3lcIixcbiAgICAgIFwiYXBwLmxtcG0uY29tXCIsXG4gICAgICBcImxpbmt5YXJkLmNsb3VkXCIsXG4gICAgICBcImxpbmt5YXJkLWNsb3VkLmNoXCIsXG4gICAgICBcIm1lbWJlcnMubGlub2RlLmNvbVwiLFxuICAgICAgXCIqLm5vZGViYWxhbmNlci5saW5vZGUuY29tXCIsXG4gICAgICBcIioubGlub2Rlb2JqZWN0cy5jb21cIixcbiAgICAgIFwiaXAubGlub2RldXNlcmNvbnRlbnQuY29tXCIsXG4gICAgICBcIndlLmJzXCIsXG4gICAgICBcIioudXNlci5sb2NhbGNlcnQuZGV2XCIsXG4gICAgICBcImxvY2Fsem9uZS54eXpcIixcbiAgICAgIFwibG9naW5saW5lLmFwcFwiLFxuICAgICAgXCJsb2dpbmxpbmUuZGV2XCIsXG4gICAgICBcImxvZ2lubGluZS5pb1wiLFxuICAgICAgXCJsb2dpbmxpbmUuc2VydmljZXNcIixcbiAgICAgIFwibG9naW5saW5lLnNpdGVcIixcbiAgICAgIFwic2VydmVycy5ydW5cIixcbiAgICAgIFwibG9obXVzLm1lXCIsXG4gICAgICBcImtyYXNuaWsucGxcIixcbiAgICAgIFwibGVjem5hLnBsXCIsXG4gICAgICBcImx1YmFydG93LnBsXCIsXG4gICAgICBcImx1Ymxpbi5wbFwiLFxuICAgICAgXCJwb25pYXRvd2EucGxcIixcbiAgICAgIFwic3dpZG5pay5wbFwiLFxuICAgICAgXCJnbHVnLm9yZy51a1wiLFxuICAgICAgXCJsdWcub3JnLnVrXCIsXG4gICAgICBcImx1Z3Mub3JnLnVrXCIsXG4gICAgICBcImJhcnN5LmJnXCIsXG4gICAgICBcImJhcnN5LmNvLnVrXCIsXG4gICAgICBcImJhcnN5b25saW5lLmNvLnVrXCIsXG4gICAgICBcImJhcnN5Y2VudGVyLmNvbVwiLFxuICAgICAgXCJiYXJzeW9ubGluZS5jb21cIixcbiAgICAgIFwiYmFyc3kuY2x1YlwiLFxuICAgICAgXCJiYXJzeS5kZVwiLFxuICAgICAgXCJiYXJzeS5ldVwiLFxuICAgICAgXCJiYXJzeS5pblwiLFxuICAgICAgXCJiYXJzeS5pbmZvXCIsXG4gICAgICBcImJhcnN5LmlvXCIsXG4gICAgICBcImJhcnN5Lm1lXCIsXG4gICAgICBcImJhcnN5Lm1lbnVcIixcbiAgICAgIFwiYmFyc3kubW9iaVwiLFxuICAgICAgXCJiYXJzeS5uZXRcIixcbiAgICAgIFwiYmFyc3kub25saW5lXCIsXG4gICAgICBcImJhcnN5Lm9yZ1wiLFxuICAgICAgXCJiYXJzeS5wcm9cIixcbiAgICAgIFwiYmFyc3kucHViXCIsXG4gICAgICBcImJhcnN5LnJvXCIsXG4gICAgICBcImJhcnN5LnNob3BcIixcbiAgICAgIFwiYmFyc3kuc2l0ZVwiLFxuICAgICAgXCJiYXJzeS5zdXBwb3J0XCIsXG4gICAgICBcImJhcnN5LnVrXCIsXG4gICAgICBcIioubWFnZW50b3NpdGUuY2xvdWRcIixcbiAgICAgIFwibWF5Zmlyc3QuaW5mb1wiLFxuICAgICAgXCJtYXlmaXJzdC5vcmdcIixcbiAgICAgIFwiaGIuY2xkbWFpbC5ydVwiLFxuICAgICAgXCJjbi52dVwiLFxuICAgICAgXCJtYXplcGxheS5jb21cIixcbiAgICAgIFwibWNwZS5tZVwiLFxuICAgICAgXCJtY2Rpci5tZVwiLFxuICAgICAgXCJtY2Rpci5ydVwiLFxuICAgICAgXCJtY3ByZS5ydVwiLFxuICAgICAgXCJ2cHMubWNkaXIucnVcIixcbiAgICAgIFwibWVkaWF0ZWNoLmJ5XCIsXG4gICAgICBcIm1lZGlhdGVjaC5kZXZcIixcbiAgICAgIFwiaHJhLmhlYWx0aFwiLFxuICAgICAgXCJtaW5pc2VydmVyLmNvbVwiLFxuICAgICAgXCJtZW1zZXQubmV0XCIsXG4gICAgICBcIm1lc3NlcmxpLmFwcFwiLFxuICAgICAgXCIqLmNsb3VkLm1ldGFjZW50cnVtLmN6XCIsXG4gICAgICBcImN1c3RvbS5tZXRhY2VudHJ1bS5jelwiLFxuICAgICAgXCJmbHQuY2xvdWQubXVuaS5jelwiLFxuICAgICAgXCJ1c3IuY2xvdWQubXVuaS5jelwiLFxuICAgICAgXCJtZXRlb3JhcHAuY29tXCIsXG4gICAgICBcImV1Lm1ldGVvcmFwcC5jb21cIixcbiAgICAgIFwiY28ucGxcIixcbiAgICAgIFwiKi5henVyZWNvbnRhaW5lci5pb1wiLFxuICAgICAgXCJhenVyZXdlYnNpdGVzLm5ldFwiLFxuICAgICAgXCJhenVyZS1tb2JpbGUubmV0XCIsXG4gICAgICBcImNsb3VkYXBwLm5ldFwiLFxuICAgICAgXCJhenVyZXN0YXRpY2FwcHMubmV0XCIsXG4gICAgICBcIjEuYXp1cmVzdGF0aWNhcHBzLm5ldFwiLFxuICAgICAgXCJjZW50cmFsdXMuYXp1cmVzdGF0aWNhcHBzLm5ldFwiLFxuICAgICAgXCJlYXN0YXNpYS5henVyZXN0YXRpY2FwcHMubmV0XCIsXG4gICAgICBcImVhc3R1czIuYXp1cmVzdGF0aWNhcHBzLm5ldFwiLFxuICAgICAgXCJ3ZXN0ZXVyb3BlLmF6dXJlc3RhdGljYXBwcy5uZXRcIixcbiAgICAgIFwid2VzdHVzMi5henVyZXN0YXRpY2FwcHMubmV0XCIsXG4gICAgICBcImNzeC5jY1wiLFxuICAgICAgXCJtaW50ZXJlLnNpdGVcIixcbiAgICAgIFwiZm9ydGUuaWRcIixcbiAgICAgIFwibW96aWxsYS1pb3Qub3JnXCIsXG4gICAgICBcImJtb2F0dGFjaG1lbnRzLm9yZ1wiLFxuICAgICAgXCJuZXQucnVcIixcbiAgICAgIFwib3JnLnJ1XCIsXG4gICAgICBcInBwLnJ1XCIsXG4gICAgICBcImhvc3RlZHBpLmNvbVwiLFxuICAgICAgXCJjdXN0b21lci5teXRoaWMtYmVhc3RzLmNvbVwiLFxuICAgICAgXCJjYXJhY2FsLm15dGhpYy1iZWFzdHMuY29tXCIsXG4gICAgICBcImZlbnRpZ2VyLm15dGhpYy1iZWFzdHMuY29tXCIsXG4gICAgICBcImx5bngubXl0aGljLWJlYXN0cy5jb21cIixcbiAgICAgIFwib2NlbG90Lm15dGhpYy1iZWFzdHMuY29tXCIsXG4gICAgICBcIm9uY2lsbGEubXl0aGljLWJlYXN0cy5jb21cIixcbiAgICAgIFwib256YS5teXRoaWMtYmVhc3RzLmNvbVwiLFxuICAgICAgXCJzcGhpbngubXl0aGljLWJlYXN0cy5jb21cIixcbiAgICAgIFwidnMubXl0aGljLWJlYXN0cy5jb21cIixcbiAgICAgIFwieC5teXRoaWMtYmVhc3RzLmNvbVwiLFxuICAgICAgXCJ5YWxpLm15dGhpYy1iZWFzdHMuY29tXCIsXG4gICAgICBcImN1c3QucmV0cm9zbnViLmNvLnVrXCIsXG4gICAgICBcInVpLm5hYnUuY2FzYVwiLFxuICAgICAgXCJwb255LmNsdWJcIixcbiAgICAgIFwib2YuZmFzaGlvblwiLFxuICAgICAgXCJpbi5sb25kb25cIixcbiAgICAgIFwib2YubG9uZG9uXCIsXG4gICAgICBcImZyb20ubWFya2V0aW5nXCIsXG4gICAgICBcIndpdGgubWFya2V0aW5nXCIsXG4gICAgICBcImZvci5tZW5cIixcbiAgICAgIFwicmVwYWlyLm1lblwiLFxuICAgICAgXCJhbmQubW9tXCIsXG4gICAgICBcImZvci5tb21cIixcbiAgICAgIFwiZm9yLm9uZVwiLFxuICAgICAgXCJ1bmRlci5vbmVcIixcbiAgICAgIFwiZm9yLnNhbGVcIixcbiAgICAgIFwidGhhdC53aW5cIixcbiAgICAgIFwiZnJvbS53b3JrXCIsXG4gICAgICBcInRvLndvcmtcIixcbiAgICAgIFwiY2xvdWQubm9zcGFtcHJveHkuY29tXCIsXG4gICAgICBcIm5ldGxpZnkuYXBwXCIsXG4gICAgICBcIjR1LmNvbVwiLFxuICAgICAgXCJuZ3Jvay5pb1wiLFxuICAgICAgXCJuaC1zZXJ2LmNvLnVrXCIsXG4gICAgICBcIm5mc2hvc3QuY29tXCIsXG4gICAgICBcIiouZGV2ZWxvcGVyLmFwcFwiLFxuICAgICAgXCJub29wLmFwcFwiLFxuICAgICAgXCIqLm5vcnRoZmxhbmsuYXBwXCIsXG4gICAgICBcIiouYnVpbGQucnVuXCIsXG4gICAgICBcIiouY29kZS5ydW5cIixcbiAgICAgIFwiKi5kYXRhYmFzZS5ydW5cIixcbiAgICAgIFwiKi5taWdyYXRpb24ucnVuXCIsXG4gICAgICBcIm5vdGljZWFibGUubmV3c1wiLFxuICAgICAgXCJkbnNraW5nLmNoXCIsXG4gICAgICBcIm15cGkuY29cIixcbiAgICAgIFwibjR0LmNvXCIsXG4gICAgICBcIjAwMXd3dy5jb21cIixcbiAgICAgIFwiZGRuc2xpdmUuY29tXCIsXG4gICAgICBcIm15aXBob3N0LmNvbVwiLFxuICAgICAgXCJmb3J1bXouaW5mb1wiLFxuICAgICAgXCIxNi1iLml0XCIsXG4gICAgICBcIjMyLWIuaXRcIixcbiAgICAgIFwiNjQtYi5pdFwiLFxuICAgICAgXCJzb3VuZGNhc3QubWVcIixcbiAgICAgIFwidGNwNC5tZVwiLFxuICAgICAgXCJkbnN1cC5uZXRcIixcbiAgICAgIFwiaGljYW0ubmV0XCIsXG4gICAgICBcIm5vdy1kbnMubmV0XCIsXG4gICAgICBcIm93bmlwLm5ldFwiLFxuICAgICAgXCJ2cG5kbnMubmV0XCIsXG4gICAgICBcImR5bnNlcnYub3JnXCIsXG4gICAgICBcIm5vdy1kbnMub3JnXCIsXG4gICAgICBcIng0NDMucHdcIixcbiAgICAgIFwibm93LWRucy50b3BcIixcbiAgICAgIFwibnRkbGwudG9wXCIsXG4gICAgICBcImZyZWVkZG5zLnVzXCIsXG4gICAgICBcImNyYWZ0aW5nLnh5elwiLFxuICAgICAgXCJ6YXB0by54eXpcIixcbiAgICAgIFwibnN1cGRhdGUuaW5mb1wiLFxuICAgICAgXCJuZXJkcG9sLm92aFwiLFxuICAgICAgXCJibG9nc3l0ZS5jb21cIixcbiAgICAgIFwiYnJhc2lsaWEubWVcIixcbiAgICAgIFwiY2FibGUtbW9kZW0ub3JnXCIsXG4gICAgICBcImNpc2NvZnJlYWsuY29tXCIsXG4gICAgICBcImNvbGxlZ2VmYW4ub3JnXCIsXG4gICAgICBcImNvdWNocG90YXRvZnJpZXMub3JnXCIsXG4gICAgICBcImRhbW5zZXJ2ZXIuY29tXCIsXG4gICAgICBcImRkbnMubWVcIixcbiAgICAgIFwiZGl0Y2h5b3VyaXAuY29tXCIsXG4gICAgICBcImRuc2Zvci5tZVwiLFxuICAgICAgXCJkbnNpc2tpbmt5LmNvbVwiLFxuICAgICAgXCJkdnJjYW0uaW5mb1wiLFxuICAgICAgXCJkeW5ucy5jb21cIixcbiAgICAgIFwiZWF0aW5nLW9yZ2FuaWMubmV0XCIsXG4gICAgICBcImZhbnRhc3lsZWFndWUuY2NcIixcbiAgICAgIFwiZ2Vla2dhbGF4eS5jb21cIixcbiAgICAgIFwiZ29sZmZhbi51c1wiLFxuICAgICAgXCJoZWFsdGgtY2FyZXJlZm9ybS5jb21cIixcbiAgICAgIFwiaG9tZXNlY3VyaXR5bWFjLmNvbVwiLFxuICAgICAgXCJob21lc2VjdXJpdHlwYy5jb21cIixcbiAgICAgIFwiaG9wdG8ubWVcIixcbiAgICAgIFwiaWxvdmVjb2xsZWdlLmluZm9cIixcbiAgICAgIFwibG9naW50by5tZVwiLFxuICAgICAgXCJtbGJmYW4ub3JnXCIsXG4gICAgICBcIm1tYWZhbi5iaXpcIixcbiAgICAgIFwibXlhY3RpdmVkaXJlY3RvcnkuY29tXCIsXG4gICAgICBcIm15ZGlzc2VudC5uZXRcIixcbiAgICAgIFwibXllZmZlY3QubmV0XCIsXG4gICAgICBcIm15bWVkaWFwYy5uZXRcIixcbiAgICAgIFwibXlwc3gubmV0XCIsXG4gICAgICBcIm15c2VjdXJpdHljYW1lcmEuY29tXCIsXG4gICAgICBcIm15c2VjdXJpdHljYW1lcmEubmV0XCIsXG4gICAgICBcIm15c2VjdXJpdHljYW1lcmEub3JnXCIsXG4gICAgICBcIm5ldC1mcmVha3MuY29tXCIsXG4gICAgICBcIm5mbGZhbi5vcmdcIixcbiAgICAgIFwibmhsZmFuLm5ldFwiLFxuICAgICAgXCJuby1pcC5jYVwiLFxuICAgICAgXCJuby1pcC5jby51a1wiLFxuICAgICAgXCJuby1pcC5uZXRcIixcbiAgICAgIFwibm9pcC51c1wiLFxuICAgICAgXCJvbnRoZXdpZmkuY29tXCIsXG4gICAgICBcInBnYWZhbi5uZXRcIixcbiAgICAgIFwicG9pbnQydGhpcy5jb21cIixcbiAgICAgIFwicG9pbnR0by51c1wiLFxuICAgICAgXCJwcml2YXRpemVoZWFsdGhpbnN1cmFuY2UubmV0XCIsXG4gICAgICBcInF1aWNrc3l0ZXMuY29tXCIsXG4gICAgICBcInJlYWQtYm9va3Mub3JnXCIsXG4gICAgICBcInNlY3VyaXR5dGFjdGljcy5jb21cIixcbiAgICAgIFwic2VydmVleGNoYW5nZS5jb21cIixcbiAgICAgIFwic2VydmVodW1vdXIuY29tXCIsXG4gICAgICBcInNlcnZlcDJwLmNvbVwiLFxuICAgICAgXCJzZXJ2ZXNhcmNhc20uY29tXCIsXG4gICAgICBcInN0dWZmdG9yZWFkLmNvbVwiLFxuICAgICAgXCJ1ZmNmYW4ub3JnXCIsXG4gICAgICBcInVudXN1YWxwZXJzb24uY29tXCIsXG4gICAgICBcIndvcmtpc2JvcmluZy5jb21cIixcbiAgICAgIFwiM3V0aWxpdGllcy5jb21cIixcbiAgICAgIFwiYm91bmNlbWUubmV0XCIsXG4gICAgICBcImRkbnMubmV0XCIsXG4gICAgICBcImRkbnNraW5nLmNvbVwiLFxuICAgICAgXCJnb3RkbnMuY2hcIixcbiAgICAgIFwiaG9wdG8ub3JnXCIsXG4gICAgICBcIm15ZnRwLmJpelwiLFxuICAgICAgXCJteWZ0cC5vcmdcIixcbiAgICAgIFwibXl2bmMuY29tXCIsXG4gICAgICBcIm5vLWlwLmJpelwiLFxuICAgICAgXCJuby1pcC5pbmZvXCIsXG4gICAgICBcIm5vLWlwLm9yZ1wiLFxuICAgICAgXCJub2lwLm1lXCIsXG4gICAgICBcInJlZGlyZWN0bWUubmV0XCIsXG4gICAgICBcInNlcnZlYmVlci5jb21cIixcbiAgICAgIFwic2VydmVibG9nLm5ldFwiLFxuICAgICAgXCJzZXJ2ZWNvdW50ZXJzdHJpa2UuY29tXCIsXG4gICAgICBcInNlcnZlZnRwLmNvbVwiLFxuICAgICAgXCJzZXJ2ZWdhbWUuY29tXCIsXG4gICAgICBcInNlcnZlaGFsZmxpZmUuY29tXCIsXG4gICAgICBcInNlcnZlaHR0cC5jb21cIixcbiAgICAgIFwic2VydmVpcmMuY29tXCIsXG4gICAgICBcInNlcnZlbWluZWNyYWZ0Lm5ldFwiLFxuICAgICAgXCJzZXJ2ZW1wMy5jb21cIixcbiAgICAgIFwic2VydmVwaWNzLmNvbVwiLFxuICAgICAgXCJzZXJ2ZXF1YWtlLmNvbVwiLFxuICAgICAgXCJzeXRlcy5uZXRcIixcbiAgICAgIFwid2ViaG9wLm1lXCIsXG4gICAgICBcInphcHRvLm9yZ1wiLFxuICAgICAgXCJzdGFnZS5ub2RlYXJ0LmlvXCIsXG4gICAgICBcInBjbG91ZC5ob3N0XCIsXG4gICAgICBcIm55Yy5tblwiLFxuICAgICAgXCJzdGF0aWMub2JzZXJ2YWJsZXVzZXJjb250ZW50LmNvbVwiLFxuICAgICAgXCJjeWEuZ2dcIixcbiAgICAgIFwib21nLmxvbFwiLFxuICAgICAgXCJjbG91ZHljbHVzdGVyLm5ldFwiLFxuICAgICAgXCJvbW5pd2Uuc2l0ZVwiLFxuICAgICAgXCJzZXJ2aWNlLm9uZVwiLFxuICAgICAgXCJuaWQuaW9cIixcbiAgICAgIFwib3BlbnNvY2lhbC5zaXRlXCIsXG4gICAgICBcIm9wZW5jcmFmdC5ob3N0aW5nXCIsXG4gICAgICBcIm9yc2l0ZXMuY29tXCIsXG4gICAgICBcIm9wZXJhdW5pdGUuY29tXCIsXG4gICAgICBcInRlY2gub3JhbmdlXCIsXG4gICAgICBcImF1dGhnZWFyLXN0YWdpbmcuY29tXCIsXG4gICAgICBcImF1dGhnZWFyYXBwcy5jb21cIixcbiAgICAgIFwic2t5Z2VhcmFwcC5jb21cIixcbiAgICAgIFwib3V0c3lzdGVtc2Nsb3VkLmNvbVwiLFxuICAgICAgXCIqLndlYnBhYXMub3ZoLm5ldFwiLFxuICAgICAgXCIqLmhvc3Rpbmcub3ZoLm5ldFwiLFxuICAgICAgXCJvd25wcm92aWRlci5jb21cIixcbiAgICAgIFwib3duLnBtXCIsXG4gICAgICBcIioub3dvLmNvZGVzXCIsXG4gICAgICBcIm94LnJzXCIsXG4gICAgICBcIm95LmxjXCIsXG4gICAgICBcInBnZm9nLmNvbVwiLFxuICAgICAgXCJwYWdlZnJvbnRhcHAuY29tXCIsXG4gICAgICBcInBhZ2V4bC5jb21cIixcbiAgICAgIFwiKi5wYXl3aGlybC5jb21cIixcbiAgICAgIFwiYmFyMC5uZXRcIixcbiAgICAgIFwiYmFyMS5uZXRcIixcbiAgICAgIFwiYmFyMi5uZXRcIixcbiAgICAgIFwicmR2LnRvXCIsXG4gICAgICBcImFydC5wbFwiLFxuICAgICAgXCJnbGl3aWNlLnBsXCIsXG4gICAgICBcImtyYWtvdy5wbFwiLFxuICAgICAgXCJwb3puYW4ucGxcIixcbiAgICAgIFwid3JvYy5wbFwiLFxuICAgICAgXCJ6YWtvcGFuZS5wbFwiLFxuICAgICAgXCJwYW50aGVvbnNpdGUuaW9cIixcbiAgICAgIFwiZ290cGFudGhlb24uY29tXCIsXG4gICAgICBcIm15cGVwLmxpbmtcIixcbiAgICAgIFwicGVyc3BlY3RhLmNsb3VkXCIsXG4gICAgICBcImxrMy5ydVwiLFxuICAgICAgXCJvbi13ZWIuZnJcIixcbiAgICAgIFwiYmMucGxhdGZvcm0uc2hcIixcbiAgICAgIFwiZW50LnBsYXRmb3JtLnNoXCIsXG4gICAgICBcImV1LnBsYXRmb3JtLnNoXCIsXG4gICAgICBcInVzLnBsYXRmb3JtLnNoXCIsXG4gICAgICBcIioucGxhdGZvcm1zaC5zaXRlXCIsXG4gICAgICBcIioudHN0LnNpdGVcIixcbiAgICAgIFwicGxhdHRlci1hcHAuY29tXCIsXG4gICAgICBcInBsYXR0ZXItYXBwLmRldlwiLFxuICAgICAgXCJwbGF0dGVycC51c1wiLFxuICAgICAgXCJwZG5zLnBhZ2VcIixcbiAgICAgIFwicGxlc2sucGFnZVwiLFxuICAgICAgXCJwbGVza25zLmNvbVwiLFxuICAgICAgXCJkeW41My5pb1wiLFxuICAgICAgXCJvbnBvcnRlci5ydW5cIixcbiAgICAgIFwiY28uYm5cIixcbiAgICAgIFwicG9zdG1hbi1lY2hvLmNvbVwiLFxuICAgICAgXCJwc3Rtbi5pb1wiLFxuICAgICAgXCJtb2NrLnBzdG1uLmlvXCIsXG4gICAgICBcImh0dHBiaW4ub3JnXCIsXG4gICAgICBcInByZXF1YWxpZnltZS50b2RheVwiLFxuICAgICAgXCJ4ZW4ucHJnbXIuY29tXCIsXG4gICAgICBcInByaXYuYXRcIixcbiAgICAgIFwicHJ2Y3kucGFnZVwiLFxuICAgICAgXCIqLmR3ZWIubGlua1wiLFxuICAgICAgXCJwcm90b25ldC5pb1wiLFxuICAgICAgXCJjaGlydXJnaWVucy1kZW50aXN0ZXMtZW4tZnJhbmNlLmZyXCIsXG4gICAgICBcImJ5ZW4uc2l0ZVwiLFxuICAgICAgXCJwdWJ0bHMub3JnXCIsXG4gICAgICBcInB5dGhvbmFueXdoZXJlLmNvbVwiLFxuICAgICAgXCJldS5weXRob25hbnl3aGVyZS5jb21cIixcbiAgICAgIFwicW90by5pb1wiLFxuICAgICAgXCJxdWFsaWZpb2FwcC5jb21cIixcbiAgICAgIFwicWJ1c2VyLmNvbVwiLFxuICAgICAgXCJjbG91ZHNpdGUuYnVpbGRlcnNcIixcbiAgICAgIFwiaW5zdGFuY2VzLnNwYXduLmNjXCIsXG4gICAgICBcImluc3RhbnRjbG91ZC5jblwiLFxuICAgICAgXCJyYXMucnVcIixcbiAgICAgIFwicWEyLmNvbVwiLFxuICAgICAgXCJxY3guaW9cIixcbiAgICAgIFwiKi5zeXMucWN4LmlvXCIsXG4gICAgICBcImRldi1teXFuYXBjbG91ZC5jb21cIixcbiAgICAgIFwiYWxwaGEtbXlxbmFwY2xvdWQuY29tXCIsXG4gICAgICBcIm15cW5hcGNsb3VkLmNvbVwiLFxuICAgICAgXCIqLnF1aXBlbGVtZW50cy5jb21cIixcbiAgICAgIFwidmFwb3IuY2xvdWRcIixcbiAgICAgIFwidmFwb3JjbG91ZC5pb1wiLFxuICAgICAgXCJyYWNrbWF6ZS5jb21cIixcbiAgICAgIFwicmFja21hemUubmV0XCIsXG4gICAgICBcImcudmJycGxzYnguaW9cIixcbiAgICAgIFwiKi5vbi1rM3MuaW9cIixcbiAgICAgIFwiKi5vbi1yYW5jaGVyLmNsb3VkXCIsXG4gICAgICBcIioub24tcmlvLmlvXCIsXG4gICAgICBcInJlYWR0aGVkb2NzLmlvXCIsXG4gICAgICBcInJoY2xvdWQuY29tXCIsXG4gICAgICBcImFwcC5yZW5kZXIuY29tXCIsXG4gICAgICBcIm9ucmVuZGVyLmNvbVwiLFxuICAgICAgXCJyZXBsLmNvXCIsXG4gICAgICBcImlkLnJlcGwuY29cIixcbiAgICAgIFwicmVwbC5ydW5cIixcbiAgICAgIFwicmVzaW5kZXZpY2UuaW9cIixcbiAgICAgIFwiZGV2aWNlcy5yZXNpbnN0YWdpbmcuaW9cIixcbiAgICAgIFwiaHpjLmlvXCIsXG4gICAgICBcIndlbGxiZWluZ3pvbmUuZXVcIixcbiAgICAgIFwid2VsbGJlaW5nem9uZS5jby51a1wiLFxuICAgICAgXCJhZGltby5jby51a1wiLFxuICAgICAgXCJpdGNvdWxkYmV3b3Iuc2VcIixcbiAgICAgIFwiZ2l0LXBhZ2VzLnJpdC5lZHVcIixcbiAgICAgIFwicm9ja3kucGFnZVwiLFxuICAgICAgXCJcXHUwNDMxXFx1MDQzOFxcdTA0MzcuXFx1MDQ0MFxcdTA0NDNcXHUwNDQxXCIsXG4gICAgICBcIlxcdTA0M0FcXHUwNDNFXFx1MDQzQy5cXHUwNDQwXFx1MDQ0M1xcdTA0NDFcIixcbiAgICAgIFwiXFx1MDQzQVxcdTA0NDBcXHUwNDRCXFx1MDQzQy5cXHUwNDQwXFx1MDQ0M1xcdTA0NDFcIixcbiAgICAgIFwiXFx1MDQzQ1xcdTA0MzhcXHUwNDQwLlxcdTA0NDBcXHUwNDQzXFx1MDQ0MVwiLFxuICAgICAgXCJcXHUwNDNDXFx1MDQ0MVxcdTA0M0EuXFx1MDQ0MFxcdTA0NDNcXHUwNDQxXCIsXG4gICAgICBcIlxcdTA0M0VcXHUwNDQwXFx1MDQzMy5cXHUwNDQwXFx1MDQ0M1xcdTA0NDFcIixcbiAgICAgIFwiXFx1MDQ0MVxcdTA0MzBcXHUwNDNDXFx1MDQzMFxcdTA0NDBcXHUwNDMwLlxcdTA0NDBcXHUwNDQzXFx1MDQ0MVwiLFxuICAgICAgXCJcXHUwNDQxXFx1MDQzRVxcdTA0NDdcXHUwNDM4LlxcdTA0NDBcXHUwNDQzXFx1MDQ0MVwiLFxuICAgICAgXCJcXHUwNDQxXFx1MDQzRlxcdTA0MzEuXFx1MDQ0MFxcdTA0NDNcXHUwNDQxXCIsXG4gICAgICBcIlxcdTA0NEYuXFx1MDQ0MFxcdTA0NDNcXHUwNDQxXCIsXG4gICAgICBcIiouYnVpbGRlci5jb2RlLmNvbVwiLFxuICAgICAgXCIqLmRldi1idWlsZGVyLmNvZGUuY29tXCIsXG4gICAgICBcIiouc3RnLWJ1aWxkZXIuY29kZS5jb21cIixcbiAgICAgIFwic2FuZGNhdHMuaW9cIixcbiAgICAgIFwibG9nb2lwLmRlXCIsXG4gICAgICBcImxvZ29pcC5jb21cIixcbiAgICAgIFwiZnItcGFyLTEuYmFyZW1ldGFsLnNjdy5jbG91ZFwiLFxuICAgICAgXCJmci1wYXItMi5iYXJlbWV0YWwuc2N3LmNsb3VkXCIsXG4gICAgICBcIm5sLWFtcy0xLmJhcmVtZXRhbC5zY3cuY2xvdWRcIixcbiAgICAgIFwiZm5jLmZyLXBhci5zY3cuY2xvdWRcIixcbiAgICAgIFwiZnVuY3Rpb25zLmZuYy5mci1wYXIuc2N3LmNsb3VkXCIsXG4gICAgICBcIms4cy5mci1wYXIuc2N3LmNsb3VkXCIsXG4gICAgICBcIm5vZGVzLms4cy5mci1wYXIuc2N3LmNsb3VkXCIsXG4gICAgICBcInMzLmZyLXBhci5zY3cuY2xvdWRcIixcbiAgICAgIFwiczMtd2Vic2l0ZS5mci1wYXIuc2N3LmNsb3VkXCIsXG4gICAgICBcIndobS5mci1wYXIuc2N3LmNsb3VkXCIsXG4gICAgICBcInByaXYuaW5zdGFuY2VzLnNjdy5jbG91ZFwiLFxuICAgICAgXCJwdWIuaW5zdGFuY2VzLnNjdy5jbG91ZFwiLFxuICAgICAgXCJrOHMuc2N3LmNsb3VkXCIsXG4gICAgICBcIms4cy5ubC1hbXMuc2N3LmNsb3VkXCIsXG4gICAgICBcIm5vZGVzLms4cy5ubC1hbXMuc2N3LmNsb3VkXCIsXG4gICAgICBcInMzLm5sLWFtcy5zY3cuY2xvdWRcIixcbiAgICAgIFwiczMtd2Vic2l0ZS5ubC1hbXMuc2N3LmNsb3VkXCIsXG4gICAgICBcIndobS5ubC1hbXMuc2N3LmNsb3VkXCIsXG4gICAgICBcIms4cy5wbC13YXcuc2N3LmNsb3VkXCIsXG4gICAgICBcIm5vZGVzLms4cy5wbC13YXcuc2N3LmNsb3VkXCIsXG4gICAgICBcInMzLnBsLXdhdy5zY3cuY2xvdWRcIixcbiAgICAgIFwiczMtd2Vic2l0ZS5wbC13YXcuc2N3LmNsb3VkXCIsXG4gICAgICBcInNjYWxlYm9vay5zY3cuY2xvdWRcIixcbiAgICAgIFwic21hcnRsYWJlbGluZy5zY3cuY2xvdWRcIixcbiAgICAgIFwiZGVkaWJveC5mclwiLFxuICAgICAgXCJzY2hva29rZWtzLm5ldFwiLFxuICAgICAgXCJnb3Yuc2NvdFwiLFxuICAgICAgXCJzZXJ2aWNlLmdvdi5zY290XCIsXG4gICAgICBcInNjcnlzZWMuY29tXCIsXG4gICAgICBcImZpcmV3YWxsLWdhdGV3YXkuY29tXCIsXG4gICAgICBcImZpcmV3YWxsLWdhdGV3YXkuZGVcIixcbiAgICAgIFwibXktZ2F0ZXdheS5kZVwiLFxuICAgICAgXCJteS1yb3V0ZXIuZGVcIixcbiAgICAgIFwic3BkbnMuZGVcIixcbiAgICAgIFwic3BkbnMuZXVcIixcbiAgICAgIFwiZmlyZXdhbGwtZ2F0ZXdheS5uZXRcIixcbiAgICAgIFwibXktZmlyZXdhbGwub3JnXCIsXG4gICAgICBcIm15ZmlyZXdhbGwub3JnXCIsXG4gICAgICBcInNwZG5zLm9yZ1wiLFxuICAgICAgXCJzZWlkYXQubmV0XCIsXG4gICAgICBcInNlbGxmeS5zdG9yZVwiLFxuICAgICAgXCJzZW5zZWVyaW5nLm5ldFwiLFxuICAgICAgXCJtaW5pc2l0ZS5tc1wiLFxuICAgICAgXCJtYWduZXQucGFnZVwiLFxuICAgICAgXCJiaXoudWFcIixcbiAgICAgIFwiY28udWFcIixcbiAgICAgIFwicHAudWFcIixcbiAgICAgIFwic2hpZnRjcnlwdG8uZGV2XCIsXG4gICAgICBcInNoaWZ0Y3J5cHRvLmlvXCIsXG4gICAgICBcInNoaWZ0ZWRpdC5pb1wiLFxuICAgICAgXCJteXNob3BibG9ja3MuY29tXCIsXG4gICAgICBcIm15c2hvcGlmeS5jb21cIixcbiAgICAgIFwic2hvcGl0c2l0ZS5jb21cIixcbiAgICAgIFwic2hvcHdhcmUuc3RvcmVcIixcbiAgICAgIFwibW8tc2llbWVucy5pb1wiLFxuICAgICAgXCIxa2FwcC5jb21cIixcbiAgICAgIFwiYXBwY2hpemkuY29tXCIsXG4gICAgICBcImFwcGxpbnppLmNvbVwiLFxuICAgICAgXCJzaW5hYXBwLmNvbVwiLFxuICAgICAgXCJ2aXBzaW5hYXBwLmNvbVwiLFxuICAgICAgXCJzaXRlbGVhZi5uZXRcIixcbiAgICAgIFwiYm91bnR5LWZ1bGwuY29tXCIsXG4gICAgICBcImFscGhhLmJvdW50eS1mdWxsLmNvbVwiLFxuICAgICAgXCJiZXRhLmJvdW50eS1mdWxsLmNvbVwiLFxuICAgICAgXCJzbWFsbC13ZWIub3JnXCIsXG4gICAgICBcInZwNC5tZVwiLFxuICAgICAgXCJ0cnktc25vd3Bsb3cuY29tXCIsXG4gICAgICBcInNyaHQuc2l0ZVwiLFxuICAgICAgXCJzdGFja2hlcm8tbmV0d29yay5jb21cIixcbiAgICAgIFwibXVzaWNpYW4uaW9cIixcbiAgICAgIFwibm92ZWNvcmUuc2l0ZVwiLFxuICAgICAgXCJzdGF0aWMubGFuZFwiLFxuICAgICAgXCJkZXYuc3RhdGljLmxhbmRcIixcbiAgICAgIFwic2l0ZXMuc3RhdGljLmxhbmRcIixcbiAgICAgIFwic3RvcmViYXNlLnN0b3JlXCIsXG4gICAgICBcInZwcy1ob3N0Lm5ldFwiLFxuICAgICAgXCJhdGwuamVsYXN0aWMudnBzLWhvc3QubmV0XCIsXG4gICAgICBcIm5qcy5qZWxhc3RpYy52cHMtaG9zdC5uZXRcIixcbiAgICAgIFwicmljLmplbGFzdGljLnZwcy1ob3N0Lm5ldFwiLFxuICAgICAgXCJwbGF5c3RhdGlvbi1jbG91ZC5jb21cIixcbiAgICAgIFwiYXBwcy5sYWlyLmlvXCIsXG4gICAgICBcIiouc3RvbG9zLmlvXCIsXG4gICAgICBcInNwYWNla2l0LmlvXCIsXG4gICAgICBcImN1c3RvbWVyLnNwZWVkcGFydG5lci5kZVwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuYXRcIixcbiAgICAgIFwibXlzcHJlYWRzaG9wLmNvbS5hdVwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuYmVcIixcbiAgICAgIFwibXlzcHJlYWRzaG9wLmNhXCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5jaFwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuY29tXCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5kZVwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuZGtcIixcbiAgICAgIFwibXlzcHJlYWRzaG9wLmVzXCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5maVwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuZnJcIixcbiAgICAgIFwibXlzcHJlYWRzaG9wLmllXCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5pdFwiLFxuICAgICAgXCJteXNwcmVhZHNob3AubmV0XCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5ubFwiLFxuICAgICAgXCJteXNwcmVhZHNob3Aubm9cIixcbiAgICAgIFwibXlzcHJlYWRzaG9wLnBsXCIsXG4gICAgICBcIm15c3ByZWFkc2hvcC5zZVwiLFxuICAgICAgXCJteXNwcmVhZHNob3AuY28udWtcIixcbiAgICAgIFwiYXBpLnN0ZGxpYi5jb21cIixcbiAgICAgIFwic3RvcmouZmFybVwiLFxuICAgICAgXCJ1dHdlbnRlLmlvXCIsXG4gICAgICBcInNvYy5zcmNmLm5ldFwiLFxuICAgICAgXCJ1c2VyLnNyY2YubmV0XCIsXG4gICAgICBcInRlbXAtZG5zLmNvbVwiLFxuICAgICAgXCJzdXBhYmFzZS5jb1wiLFxuICAgICAgXCJzdXBhYmFzZS5pblwiLFxuICAgICAgXCJzdXBhYmFzZS5uZXRcIixcbiAgICAgIFwic3UucGFiYS5zZVwiLFxuICAgICAgXCIqLnM1eS5pb1wiLFxuICAgICAgXCIqLnNlbnNpb3NpdGUuY2xvdWRcIixcbiAgICAgIFwic3luY2xvdWQuaXRcIixcbiAgICAgIFwiZHNjbG91ZC5iaXpcIixcbiAgICAgIFwiZGlyZWN0LnF1aWNrY29ubmVjdC5jblwiLFxuICAgICAgXCJkc215bmFzLmNvbVwiLFxuICAgICAgXCJmYW1pbHlkcy5jb21cIixcbiAgICAgIFwiZGlza3N0YXRpb24ubWVcIixcbiAgICAgIFwiZHNjbG91ZC5tZVwiLFxuICAgICAgXCJpMjM0Lm1lXCIsXG4gICAgICBcIm15ZHMubWVcIixcbiAgICAgIFwic3lub2xvZ3kubWVcIixcbiAgICAgIFwiZHNjbG91ZC5tb2JpXCIsXG4gICAgICBcImRzbXluYXMubmV0XCIsXG4gICAgICBcImZhbWlseWRzLm5ldFwiLFxuICAgICAgXCJkc215bmFzLm9yZ1wiLFxuICAgICAgXCJmYW1pbHlkcy5vcmdcIixcbiAgICAgIFwidnBucGx1cy50b1wiLFxuICAgICAgXCJkaXJlY3QucXVpY2tjb25uZWN0LnRvXCIsXG4gICAgICBcInRhYml0b3JkZXIuY28uaWxcIixcbiAgICAgIFwidGFpZnVuLWRucy5kZVwiLFxuICAgICAgXCJiZXRhLnRhaWxzY2FsZS5uZXRcIixcbiAgICAgIFwidHMubmV0XCIsXG4gICAgICBcImdkYS5wbFwiLFxuICAgICAgXCJnZGFuc2sucGxcIixcbiAgICAgIFwiZ2R5bmlhLnBsXCIsXG4gICAgICBcIm1lZC5wbFwiLFxuICAgICAgXCJzb3BvdC5wbFwiLFxuICAgICAgXCJzaXRlLnRiLWhvc3RpbmcuY29tXCIsXG4gICAgICBcImVkdWdpdC5pb1wiLFxuICAgICAgXCJzMy50ZWNraWRzLm9yZ1wiLFxuICAgICAgXCJ0ZWxlYml0LmFwcFwiLFxuICAgICAgXCJ0ZWxlYml0LmlvXCIsXG4gICAgICBcIioudGVsZWJpdC54eXpcIixcbiAgICAgIFwiZ3dpZGRsZS5jby51a1wiLFxuICAgICAgXCIqLmZpcmVuZXQuY2hcIixcbiAgICAgIFwiKi5zdmMuZmlyZW5ldC5jaFwiLFxuICAgICAgXCJyZXNlcnZkLmNvbVwiLFxuICAgICAgXCJ0aGluZ2R1c3RkYXRhLmNvbVwiLFxuICAgICAgXCJjdXN0LmRldi50aGluZ2R1c3QuaW9cIixcbiAgICAgIFwiY3VzdC5kaXNyZWMudGhpbmdkdXN0LmlvXCIsXG4gICAgICBcImN1c3QucHJvZC50aGluZ2R1c3QuaW9cIixcbiAgICAgIFwiY3VzdC50ZXN0aW5nLnRoaW5nZHVzdC5pb1wiLFxuICAgICAgXCJyZXNlcnZkLmRldi50aGluZ2R1c3QuaW9cIixcbiAgICAgIFwicmVzZXJ2ZC5kaXNyZWMudGhpbmdkdXN0LmlvXCIsXG4gICAgICBcInJlc2VydmQudGVzdGluZy50aGluZ2R1c3QuaW9cIixcbiAgICAgIFwidGlja2V0cy5pb1wiLFxuICAgICAgXCJhcnZvLm5ldHdvcmtcIixcbiAgICAgIFwiYXppbXV0aC5uZXR3b3JrXCIsXG4gICAgICBcInRsb24ubmV0d29ya1wiLFxuICAgICAgXCJ0b3Jwcm9qZWN0Lm5ldFwiLFxuICAgICAgXCJwYWdlcy50b3Jwcm9qZWN0Lm5ldFwiLFxuICAgICAgXCJibG94Y21zLmNvbVwiLFxuICAgICAgXCJ0b3dubmV3cy1zdGFnaW5nLmNvbVwiLFxuICAgICAgXCJ0Yml0cy5tZVwiLFxuICAgICAgXCIxMmhwLmF0XCIsXG4gICAgICBcIjJpeC5hdFwiLFxuICAgICAgXCI0bGltYS5hdFwiLFxuICAgICAgXCJsaW1hLWNpdHkuYXRcIixcbiAgICAgIFwiMTJocC5jaFwiLFxuICAgICAgXCIyaXguY2hcIixcbiAgICAgIFwiNGxpbWEuY2hcIixcbiAgICAgIFwibGltYS1jaXR5LmNoXCIsXG4gICAgICBcInRyYWZmaWNwbGV4LmNsb3VkXCIsXG4gICAgICBcImRlLmNvb2xcIixcbiAgICAgIFwiMTJocC5kZVwiLFxuICAgICAgXCIyaXguZGVcIixcbiAgICAgIFwiNGxpbWEuZGVcIixcbiAgICAgIFwibGltYS1jaXR5LmRlXCIsXG4gICAgICBcIjEzMzcucGljdHVyZXNcIixcbiAgICAgIFwiY2xhbi5yaXBcIixcbiAgICAgIFwibGltYS1jaXR5LnJvY2tzXCIsXG4gICAgICBcIndlYnNwYWNlLnJvY2tzXCIsXG4gICAgICBcImxpbWEuem9uZVwiLFxuICAgICAgXCIqLnRyYW5zdXJsLmJlXCIsXG4gICAgICBcIioudHJhbnN1cmwuZXVcIixcbiAgICAgIFwiKi50cmFuc3VybC5ubFwiLFxuICAgICAgXCJzaXRlLnRyYW5zaXAubWVcIixcbiAgICAgIFwidHV4ZmFtaWx5Lm9yZ1wiLFxuICAgICAgXCJkZC1kbnMuZGVcIixcbiAgICAgIFwiZGlza3N0YXRpb24uZXVcIixcbiAgICAgIFwiZGlza3N0YXRpb24ub3JnXCIsXG4gICAgICBcImRyYXktZG5zLmRlXCIsXG4gICAgICBcImRyYXlkbnMuZGVcIixcbiAgICAgIFwiZHluLXZwbi5kZVwiLFxuICAgICAgXCJkeW52cG4uZGVcIixcbiAgICAgIFwibWVpbi12aWdvci5kZVwiLFxuICAgICAgXCJteS12aWdvci5kZVwiLFxuICAgICAgXCJteS13YW4uZGVcIixcbiAgICAgIFwic3luby1kcy5kZVwiLFxuICAgICAgXCJzeW5vbG9neS1kaXNrc3RhdGlvbi5kZVwiLFxuICAgICAgXCJzeW5vbG9neS1kcy5kZVwiLFxuICAgICAgXCJ0eXBlZHJlYW0uYXBwXCIsXG4gICAgICBcInByby50eXBlZm9ybS5jb21cIixcbiAgICAgIFwidWJlci5zcGFjZVwiLFxuICAgICAgXCIqLnViZXJzcGFjZS5kZVwiLFxuICAgICAgXCJoay5jb21cIixcbiAgICAgIFwiaGsub3JnXCIsXG4gICAgICBcImx0ZC5oa1wiLFxuICAgICAgXCJpbmMuaGtcIixcbiAgICAgIFwibmFtZS5wbVwiLFxuICAgICAgXCJzY2gudGZcIixcbiAgICAgIFwiYml6LndmXCIsXG4gICAgICBcInNjaC53ZlwiLFxuICAgICAgXCJvcmcueXRcIixcbiAgICAgIFwidmlydHVhbHVzZXIuZGVcIixcbiAgICAgIFwidmlydHVhbC11c2VyLmRlXCIsXG4gICAgICBcInVwbGkuaW9cIixcbiAgICAgIFwidXJvd24uY2xvdWRcIixcbiAgICAgIFwiZG5zdXBkYXRlLmluZm9cIixcbiAgICAgIFwibGliLmRlLnVzXCIsXG4gICAgICBcIjIwMzguaW9cIixcbiAgICAgIFwidmVyY2VsLmFwcFwiLFxuICAgICAgXCJ2ZXJjZWwuZGV2XCIsXG4gICAgICBcIm5vdy5zaFwiLFxuICAgICAgXCJyb3V0ZXIubWFuYWdlbWVudFwiLFxuICAgICAgXCJ2LWluZm8uaW5mb1wiLFxuICAgICAgXCJ2b29ybG9wZXIuY2xvdWRcIixcbiAgICAgIFwibmVrby5hbVwiLFxuICAgICAgXCJueWFhLmFtXCIsXG4gICAgICBcImJlLmF4XCIsXG4gICAgICBcImNhdC5heFwiLFxuICAgICAgXCJlcy5heFwiLFxuICAgICAgXCJldS5heFwiLFxuICAgICAgXCJnZy5heFwiLFxuICAgICAgXCJtYy5heFwiLFxuICAgICAgXCJ1cy5heFwiLFxuICAgICAgXCJ4eS5heFwiLFxuICAgICAgXCJubC5jaVwiLFxuICAgICAgXCJ4eC5nbFwiLFxuICAgICAgXCJhcHAuZ3BcIixcbiAgICAgIFwiYmxvZy5ndFwiLFxuICAgICAgXCJkZS5ndFwiLFxuICAgICAgXCJ0by5ndFwiLFxuICAgICAgXCJiZS5neVwiLFxuICAgICAgXCJjYy5oblwiLFxuICAgICAgXCJibG9nLmtnXCIsXG4gICAgICBcImlvLmtnXCIsXG4gICAgICBcImpwLmtnXCIsXG4gICAgICBcInR2LmtnXCIsXG4gICAgICBcInVrLmtnXCIsXG4gICAgICBcInVzLmtnXCIsXG4gICAgICBcImRlLmxzXCIsXG4gICAgICBcImF0Lm1kXCIsXG4gICAgICBcImRlLm1kXCIsXG4gICAgICBcImpwLm1kXCIsXG4gICAgICBcInRvLm1kXCIsXG4gICAgICBcImluZGllLnBvcm5cIixcbiAgICAgIFwidnhsLnNoXCIsXG4gICAgICBcImNoLnRjXCIsXG4gICAgICBcIm1lLnRjXCIsXG4gICAgICBcIndlLnRjXCIsXG4gICAgICBcIm55YW4udG9cIixcbiAgICAgIFwiYXQudmdcIixcbiAgICAgIFwiYmxvZy52dVwiLFxuICAgICAgXCJkZXYudnVcIixcbiAgICAgIFwibWUudnVcIixcbiAgICAgIFwidi51YVwiLFxuICAgICAgXCIqLnZ1bHRyb2JqZWN0cy5jb21cIixcbiAgICAgIFwid2FmZmxlY2VsbC5jb21cIixcbiAgICAgIFwiKi53ZWJoYXJlLmRldlwiLFxuICAgICAgXCJyZXNlcnZlLW9ubGluZS5uZXRcIixcbiAgICAgIFwicmVzZXJ2ZS1vbmxpbmUuY29tXCIsXG4gICAgICBcImJvb2tvbmxpbmUuYXBwXCIsXG4gICAgICBcImhvdGVsd2l0aGZsaWdodC5jb21cIixcbiAgICAgIFwid2VkZXBsb3kuaW9cIixcbiAgICAgIFwid2VkZXBsb3kubWVcIixcbiAgICAgIFwid2VkZXBsb3kuc2hcIixcbiAgICAgIFwicmVtb3Rld2QuY29tXCIsXG4gICAgICBcInBhZ2VzLndpYXJkd2ViLmNvbVwiLFxuICAgICAgXCJ3bWZsYWJzLm9yZ1wiLFxuICAgICAgXCJ0b29sZm9yZ2Uub3JnXCIsXG4gICAgICBcIndtY2xvdWQub3JnXCIsXG4gICAgICBcInBhbmVsLmdnXCIsXG4gICAgICBcImRhZW1vbi5wYW5lbC5nZ1wiLFxuICAgICAgXCJtZXNzd2l0aGRucy5jb21cIixcbiAgICAgIFwid29sdGxhYi1kZW1vLmNvbVwiLFxuICAgICAgXCJteWZvcnVtLmNvbW11bml0eVwiLFxuICAgICAgXCJjb21tdW5pdHktcHJvLmRlXCIsXG4gICAgICBcImRpc2t1c3Npb25zYmVyZWljaC5kZVwiLFxuICAgICAgXCJjb21tdW5pdHktcHJvLm5ldFwiLFxuICAgICAgXCJtZWluZm9ydW0ubmV0XCIsXG4gICAgICBcImFmZmluaXR5bG90dGVyeS5vcmcudWtcIixcbiAgICAgIFwicmFmZmxlZW50cnkub3JnLnVrXCIsXG4gICAgICBcIndlZWtseWxvdHRlcnkub3JnLnVrXCIsXG4gICAgICBcIndwZW5naW5lcG93ZXJlZC5jb21cIixcbiAgICAgIFwianMud3BlbmdpbmVwb3dlcmVkLmNvbVwiLFxuICAgICAgXCJ3aXhzaXRlLmNvbVwiLFxuICAgICAgXCJlZGl0b3J4LmlvXCIsXG4gICAgICBcImhhbGYuaG9zdFwiLFxuICAgICAgXCJ4bmJheS5jb21cIixcbiAgICAgIFwidTIueG5iYXkuY29tXCIsXG4gICAgICBcInUyLWxvY2FsLnhuYmF5LmNvbVwiLFxuICAgICAgXCJjaXN0cm9uLm5sXCIsXG4gICAgICBcImRlbW9uLm5sXCIsXG4gICAgICBcInhzNGFsbC5zcGFjZVwiLFxuICAgICAgXCJ5YW5kZXhjbG91ZC5uZXRcIixcbiAgICAgIFwic3RvcmFnZS55YW5kZXhjbG91ZC5uZXRcIixcbiAgICAgIFwid2Vic2l0ZS55YW5kZXhjbG91ZC5uZXRcIixcbiAgICAgIFwib2ZmaWNpYWwuYWNhZGVteVwiLFxuICAgICAgXCJ5b2xhc2l0ZS5jb21cIixcbiAgICAgIFwieWJvLmZhaXRoXCIsXG4gICAgICBcInlvbWJvLm1lXCIsXG4gICAgICBcImhvbWVsaW5rLm9uZVwiLFxuICAgICAgXCJ5Ym8ucGFydHlcIixcbiAgICAgIFwieWJvLnJldmlld1wiLFxuICAgICAgXCJ5Ym8uc2NpZW5jZVwiLFxuICAgICAgXCJ5Ym8udHJhZGVcIixcbiAgICAgIFwieW5oLmZyXCIsXG4gICAgICBcIm5vaG9zdC5tZVwiLFxuICAgICAgXCJub2hvLnN0XCIsXG4gICAgICBcInphLm5ldFwiLFxuICAgICAgXCJ6YS5vcmdcIixcbiAgICAgIFwiYnNzLmRlc2lnblwiLFxuICAgICAgXCJiYXNpY3NlcnZlci5pb1wiLFxuICAgICAgXCJ2aXJ0dWFsc2VydmVyLmlvXCIsXG4gICAgICBcImVudGVycHJpc2VjbG91ZC5udVwiXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wc2wvaW5kZXguanNcbnZhciByZXF1aXJlX3BzbCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9wc2wvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIFB1bnljb2RlID0gcmVxdWlyZV9wdW55Y29kZSgpO1xuICAgIHZhciBpbnRlcm5hbHMgPSB7fTtcbiAgICBpbnRlcm5hbHMucnVsZXMgPSByZXF1aXJlX3J1bGVzKCkubWFwKGZ1bmN0aW9uKHJ1bGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJ1bGUsXG4gICAgICAgIHN1ZmZpeDogcnVsZS5yZXBsYWNlKC9eKFxcKlxcLnxcXCEpLywgXCJcIiksXG4gICAgICAgIHB1bnlTdWZmaXg6IC0xLFxuICAgICAgICB3aWxkY2FyZDogcnVsZS5jaGFyQXQoMCkgPT09IFwiKlwiLFxuICAgICAgICBleGNlcHRpb246IHJ1bGUuY2hhckF0KDApID09PSBcIiFcIlxuICAgICAgfTtcbiAgICB9KTtcbiAgICBpbnRlcm5hbHMuZW5kc1dpdGggPSBmdW5jdGlvbihzdHIsIHN1ZmZpeCkge1xuICAgICAgcmV0dXJuIHN0ci5pbmRleE9mKHN1ZmZpeCwgc3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICE9PSAtMTtcbiAgICB9O1xuICAgIGludGVybmFscy5maW5kUnVsZSA9IGZ1bmN0aW9uKGRvbWFpbikge1xuICAgICAgdmFyIHB1bnlEb21haW4gPSBQdW55Y29kZS50b0FTQ0lJKGRvbWFpbik7XG4gICAgICByZXR1cm4gaW50ZXJuYWxzLnJ1bGVzLnJlZHVjZShmdW5jdGlvbihtZW1vLCBydWxlKSB7XG4gICAgICAgIGlmIChydWxlLnB1bnlTdWZmaXggPT09IC0xKSB7XG4gICAgICAgICAgcnVsZS5wdW55U3VmZml4ID0gUHVueWNvZGUudG9BU0NJSShydWxlLnN1ZmZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpbnRlcm5hbHMuZW5kc1dpdGgocHVueURvbWFpbiwgXCIuXCIgKyBydWxlLnB1bnlTdWZmaXgpICYmIHB1bnlEb21haW4gIT09IHJ1bGUucHVueVN1ZmZpeCkge1xuICAgICAgICAgIHJldHVybiBtZW1vO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBydWxlO1xuICAgICAgfSwgbnVsbCk7XG4gICAgfTtcbiAgICBleHBvcnRzLmVycm9yQ29kZXMgPSB7XG4gICAgICBET01BSU5fVE9PX1NIT1JUOiBcIkRvbWFpbiBuYW1lIHRvbyBzaG9ydC5cIixcbiAgICAgIERPTUFJTl9UT09fTE9ORzogXCJEb21haW4gbmFtZSB0b28gbG9uZy4gSXQgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiAyNTUgY2hhcnMuXCIsXG4gICAgICBMQUJFTF9TVEFSVFNfV0lUSF9EQVNIOiBcIkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBub3Qgc3RhcnQgd2l0aCBhIGRhc2guXCIsXG4gICAgICBMQUJFTF9FTkRTX1dJVEhfREFTSDogXCJEb21haW4gbmFtZSBsYWJlbCBjYW4gbm90IGVuZCB3aXRoIGEgZGFzaC5cIixcbiAgICAgIExBQkVMX1RPT19MT05HOiBcIkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBtb3N0IDYzIGNoYXJzIGxvbmcuXCIsXG4gICAgICBMQUJFTF9UT09fU0hPUlQ6IFwiRG9tYWluIG5hbWUgbGFiZWwgc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcmFjdGVyIGxvbmcuXCIsXG4gICAgICBMQUJFTF9JTlZBTElEX0NIQVJTOiBcIkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3IgZGFzaGVzLlwiXG4gICAgfTtcbiAgICBpbnRlcm5hbHMudmFsaWRhdGUgPSBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgdmFyIGFzY2lpID0gUHVueWNvZGUudG9BU0NJSShpbnB1dCk7XG4gICAgICBpZiAoYXNjaWkubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm4gXCJET01BSU5fVE9PX1NIT1JUXCI7XG4gICAgICB9XG4gICAgICBpZiAoYXNjaWkubGVuZ3RoID4gMjU1KSB7XG4gICAgICAgIHJldHVybiBcIkRPTUFJTl9UT09fTE9OR1wiO1xuICAgICAgfVxuICAgICAgdmFyIGxhYmVscyA9IGFzY2lpLnNwbGl0KFwiLlwiKTtcbiAgICAgIHZhciBsYWJlbDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFiZWxzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGxhYmVsID0gbGFiZWxzW2ldO1xuICAgICAgICBpZiAoIWxhYmVsLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBcIkxBQkVMX1RPT19TSE9SVFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYWJlbC5sZW5ndGggPiA2Mykge1xuICAgICAgICAgIHJldHVybiBcIkxBQkVMX1RPT19MT05HXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhYmVsLmNoYXJBdCgwKSA9PT0gXCItXCIpIHtcbiAgICAgICAgICByZXR1cm4gXCJMQUJFTF9TVEFSVFNfV0lUSF9EQVNIXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhYmVsLmNoYXJBdChsYWJlbC5sZW5ndGggLSAxKSA9PT0gXCItXCIpIHtcbiAgICAgICAgICByZXR1cm4gXCJMQUJFTF9FTkRTX1dJVEhfREFTSFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmICghL15bYS16MC05XFwtXSskLy50ZXN0KGxhYmVsKSkge1xuICAgICAgICAgIHJldHVybiBcIkxBQkVMX0lOVkFMSURfQ0hBUlNcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5wYXJzZSA9IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEb21haW4gbmFtZSBtdXN0IGJlIGEgc3RyaW5nLlwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBkb21haW4gPSBpbnB1dC5zbGljZSgwKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGRvbWFpbi5jaGFyQXQoZG9tYWluLmxlbmd0aCAtIDEpID09PSBcIi5cIikge1xuICAgICAgICBkb21haW4gPSBkb21haW4uc2xpY2UoMCwgZG9tYWluLmxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgdmFyIGVycm9yID0gaW50ZXJuYWxzLnZhbGlkYXRlKGRvbWFpbik7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgbWVzc2FnZTogZXhwb3J0cy5lcnJvckNvZGVzW2Vycm9yXSxcbiAgICAgICAgICAgIGNvZGU6IGVycm9yXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmFyIHBhcnNlZCA9IHtcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRsZDogbnVsbCxcbiAgICAgICAgc2xkOiBudWxsLFxuICAgICAgICBkb21haW46IG51bGwsXG4gICAgICAgIHN1YmRvbWFpbjogbnVsbCxcbiAgICAgICAgbGlzdGVkOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBkb21haW5QYXJ0cyA9IGRvbWFpbi5zcGxpdChcIi5cIik7XG4gICAgICBpZiAoZG9tYWluUGFydHNbZG9tYWluUGFydHMubGVuZ3RoIC0gMV0gPT09IFwibG9jYWxcIikge1xuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgfVxuICAgICAgdmFyIGhhbmRsZVB1bnljb2RlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICghL3huLS0vLnRlc3QoZG9tYWluKSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnNlZC5kb21haW4pIHtcbiAgICAgICAgICBwYXJzZWQuZG9tYWluID0gUHVueWNvZGUudG9BU0NJSShwYXJzZWQuZG9tYWluKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyc2VkLnN1YmRvbWFpbikge1xuICAgICAgICAgIHBhcnNlZC5zdWJkb21haW4gPSBQdW55Y29kZS50b0FTQ0lJKHBhcnNlZC5zdWJkb21haW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICB9O1xuICAgICAgdmFyIHJ1bGUgPSBpbnRlcm5hbHMuZmluZFJ1bGUoZG9tYWluKTtcbiAgICAgIGlmICghcnVsZSkge1xuICAgICAgICBpZiAoZG9tYWluUGFydHMubGVuZ3RoIDwgMikge1xuICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VkLnRsZCA9IGRvbWFpblBhcnRzLnBvcCgpO1xuICAgICAgICBwYXJzZWQuc2xkID0gZG9tYWluUGFydHMucG9wKCk7XG4gICAgICAgIHBhcnNlZC5kb21haW4gPSBbcGFyc2VkLnNsZCwgcGFyc2VkLnRsZF0uam9pbihcIi5cIik7XG4gICAgICAgIGlmIChkb21haW5QYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgICBwYXJzZWQuc3ViZG9tYWluID0gZG9tYWluUGFydHMucG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhbmRsZVB1bnljb2RlKCk7XG4gICAgICB9XG4gICAgICBwYXJzZWQubGlzdGVkID0gdHJ1ZTtcbiAgICAgIHZhciB0bGRQYXJ0cyA9IHJ1bGUuc3VmZml4LnNwbGl0KFwiLlwiKTtcbiAgICAgIHZhciBwcml2YXRlUGFydHMgPSBkb21haW5QYXJ0cy5zbGljZSgwLCBkb21haW5QYXJ0cy5sZW5ndGggLSB0bGRQYXJ0cy5sZW5ndGgpO1xuICAgICAgaWYgKHJ1bGUuZXhjZXB0aW9uKSB7XG4gICAgICAgIHByaXZhdGVQYXJ0cy5wdXNoKHRsZFBhcnRzLnNoaWZ0KCkpO1xuICAgICAgfVxuICAgICAgcGFyc2VkLnRsZCA9IHRsZFBhcnRzLmpvaW4oXCIuXCIpO1xuICAgICAgaWYgKCFwcml2YXRlUGFydHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVQdW55Y29kZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHJ1bGUud2lsZGNhcmQpIHtcbiAgICAgICAgdGxkUGFydHMudW5zaGlmdChwcml2YXRlUGFydHMucG9wKCkpO1xuICAgICAgICBwYXJzZWQudGxkID0gdGxkUGFydHMuam9pbihcIi5cIik7XG4gICAgICB9XG4gICAgICBpZiAoIXByaXZhdGVQYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVB1bnljb2RlKCk7XG4gICAgICB9XG4gICAgICBwYXJzZWQuc2xkID0gcHJpdmF0ZVBhcnRzLnBvcCgpO1xuICAgICAgcGFyc2VkLmRvbWFpbiA9IFtwYXJzZWQuc2xkLCBwYXJzZWQudGxkXS5qb2luKFwiLlwiKTtcbiAgICAgIGlmIChwcml2YXRlUGFydHMubGVuZ3RoKSB7XG4gICAgICAgIHBhcnNlZC5zdWJkb21haW4gPSBwcml2YXRlUGFydHMuam9pbihcIi5cIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZGxlUHVueWNvZGUoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuZ2V0ID0gZnVuY3Rpb24oZG9tYWluKSB7XG4gICAgICBpZiAoIWRvbWFpbikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHBvcnRzLnBhcnNlKGRvbWFpbikuZG9tYWluIHx8IG51bGw7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzVmFsaWQgPSBmdW5jdGlvbihkb21haW4pIHtcbiAgICAgIHZhciBwYXJzZWQgPSBleHBvcnRzLnBhcnNlKGRvbWFpbik7XG4gICAgICByZXR1cm4gQm9vbGVhbihwYXJzZWQuZG9tYWluICYmIHBhcnNlZC5saXN0ZWQpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi9wdWJzdWZmaXgtcHNsLmpzXG52YXIgcmVxdWlyZV9wdWJzdWZmaXhfcHNsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3RvdWdoLWNvb2tpZS9saWIvcHVic3VmZml4LXBzbC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcHNsID0gcmVxdWlyZV9wc2woKTtcbiAgICB2YXIgU1BFQ0lBTF9VU0VfRE9NQUlOUyA9IFtcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwiZXhhbXBsZVwiLFxuICAgICAgXCJpbnZhbGlkXCIsXG4gICAgICBcImxvY2FsaG9zdFwiLFxuICAgICAgXCJ0ZXN0XCJcbiAgICBdO1xuICAgIHZhciBTUEVDSUFMX1RSRUFUTUVOVF9ET01BSU5TID0gW1wibG9jYWxob3N0XCIsIFwiaW52YWxpZFwiXTtcbiAgICBmdW5jdGlvbiBnZXRQdWJsaWNTdWZmaXgoZG9tYWluLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IGRvbWFpblBhcnRzID0gZG9tYWluLnNwbGl0KFwiLlwiKTtcbiAgICAgIGNvbnN0IHRvcExldmVsRG9tYWluID0gZG9tYWluUGFydHNbZG9tYWluUGFydHMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBhbGxvd1NwZWNpYWxVc2VEb21haW4gPSAhIW9wdGlvbnMuYWxsb3dTcGVjaWFsVXNlRG9tYWluO1xuICAgICAgY29uc3QgaWdub3JlRXJyb3IgPSAhIW9wdGlvbnMuaWdub3JlRXJyb3I7XG4gICAgICBpZiAoYWxsb3dTcGVjaWFsVXNlRG9tYWluICYmIFNQRUNJQUxfVVNFX0RPTUFJTlMuaW5jbHVkZXModG9wTGV2ZWxEb21haW4pKSB7XG4gICAgICAgIGlmIChkb21haW5QYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgY29uc3Qgc2Vjb25kTGV2ZWxEb21haW4gPSBkb21haW5QYXJ0c1tkb21haW5QYXJ0cy5sZW5ndGggLSAyXTtcbiAgICAgICAgICByZXR1cm4gYCR7c2Vjb25kTGV2ZWxEb21haW59LiR7dG9wTGV2ZWxEb21haW59YDtcbiAgICAgICAgfSBlbHNlIGlmIChTUEVDSUFMX1RSRUFUTUVOVF9ET01BSU5TLmluY2x1ZGVzKHRvcExldmVsRG9tYWluKSkge1xuICAgICAgICAgIHJldHVybiBgJHt0b3BMZXZlbERvbWFpbn1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWlnbm9yZUVycm9yICYmIFNQRUNJQUxfVVNFX0RPTUFJTlMuaW5jbHVkZXModG9wTGV2ZWxEb21haW4pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ29va2llIGhhcyBkb21haW4gc2V0IHRvIHRoZSBwdWJsaWMgc3VmZml4IFwiJHt0b3BMZXZlbERvbWFpbn1cIiB3aGljaCBpcyBhIHNwZWNpYWwgdXNlIGRvbWFpbi4gVG8gYWxsb3cgdGhpcywgY29uZmlndXJlIHlvdXIgQ29va2llSmFyIHdpdGgge2FsbG93U3BlY2lhbFVzZURvbWFpbjp0cnVlLCByZWplY3RQdWJsaWNTdWZmaXhlczogZmFsc2V9LmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwc2wuZ2V0KGRvbWFpbik7XG4gICAgfVxuICAgIGV4cG9ydHMuZ2V0UHVibGljU3VmZml4ID0gZ2V0UHVibGljU3VmZml4O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3RvdWdoLWNvb2tpZS9saWIvc3RvcmUuanNcbnZhciByZXF1aXJlX3N0b3JlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3RvdWdoLWNvb2tpZS9saWIvc3RvcmUuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIFN0b3JlID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3luY2hyb25vdXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZpbmRDb29raWUoZG9tYWluLCBwYXRoLCBrZXksIGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmRDb29raWUgaXMgbm90IGltcGxlbWVudGVkXCIpO1xuICAgICAgfVxuICAgICAgZmluZENvb2tpZXMoZG9tYWluLCBwYXRoLCBhbGxvd1NwZWNpYWxVc2VEb21haW4sIGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmRDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICAgIH1cbiAgICAgIHB1dENvb2tpZShjb29raWUsIGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInB1dENvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgICB9XG4gICAgICB1cGRhdGVDb29raWUob2xkQ29va2llLCBuZXdDb29raWUsIGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVwZGF0ZUNvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgICB9XG4gICAgICByZW1vdmVDb29raWUoZG9tYWluLCBwYXRoLCBrZXksIGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbW92ZUNvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgICB9XG4gICAgICByZW1vdmVDb29raWVzKGRvbWFpbiwgcGF0aCwgY2IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicmVtb3ZlQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgICB9XG4gICAgICByZW1vdmVBbGxDb29raWVzKGNiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbW92ZUFsbENvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkXCIpO1xuICAgICAgfVxuICAgICAgZ2V0QWxsQ29va2llcyhjYikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJnZXRBbGxDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCAodGhlcmVmb3JlIGphciBjYW5ub3QgYmUgc2VyaWFsaXplZClcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5TdG9yZSA9IFN0b3JlO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3VuaXZlcnNhbGlmeS9pbmRleC5qc1xudmFyIHJlcXVpcmVfdW5pdmVyc2FsaWZ5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3VuaXZlcnNhbGlmeS9pbmRleC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBleHBvcnRzLmZyb21DYWxsYmFjayA9IGZ1bmN0aW9uKGZuKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0gPT09IFwiZnVuY3Rpb25cIikgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoXSA9IChlcnIsIHJlcykgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhcmd1bWVudHMubGVuZ3RoKys7XG4gICAgICAgICAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBcIm5hbWVcIiwgeyB2YWx1ZTogZm4ubmFtZSB9KTtcbiAgICB9O1xuICAgIGV4cG9ydHMuZnJvbVByb21pc2UgPSBmdW5jdGlvbihmbikge1xuICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpIHtcbiAgICAgICAgY29uc3QgY2IgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodHlwZW9mIGNiICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBhcmd1bWVudHMubGVuZ3RoLS07XG4gICAgICAgICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKS50aGVuKChyKSA9PiBjYihudWxsLCByKSwgY2IpO1xuICAgICAgICB9XG4gICAgICB9LCBcIm5hbWVcIiwgeyB2YWx1ZTogZm4ubmFtZSB9KTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3RvdWdoLWNvb2tpZS9saWIvcGVybXV0ZURvbWFpbi5qc1xudmFyIHJlcXVpcmVfcGVybXV0ZURvbWFpbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL3Blcm11dGVEb21haW4uanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHB1YnN1ZmZpeCA9IHJlcXVpcmVfcHVic3VmZml4X3BzbCgpO1xuICAgIGZ1bmN0aW9uIHBlcm11dGVEb21haW4oZG9tYWluLCBhbGxvd1NwZWNpYWxVc2VEb21haW4pIHtcbiAgICAgIGNvbnN0IHB1YlN1ZiA9IHB1YnN1ZmZpeC5nZXRQdWJsaWNTdWZmaXgoZG9tYWluLCB7XG4gICAgICAgIGFsbG93U3BlY2lhbFVzZURvbWFpblxuICAgICAgfSk7XG4gICAgICBpZiAoIXB1YlN1Zikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwdWJTdWYgPT0gZG9tYWluKSB7XG4gICAgICAgIHJldHVybiBbZG9tYWluXTtcbiAgICAgIH1cbiAgICAgIGlmIChkb21haW4uc2xpY2UoLTEpID09IFwiLlwiKSB7XG4gICAgICAgIGRvbWFpbiA9IGRvbWFpbi5zbGljZSgwLCAtMSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwcmVmaXggPSBkb21haW4uc2xpY2UoMCwgLShwdWJTdWYubGVuZ3RoICsgMSkpO1xuICAgICAgY29uc3QgcGFydHMgPSBwcmVmaXguc3BsaXQoXCIuXCIpLnJldmVyc2UoKTtcbiAgICAgIGxldCBjdXIgPSBwdWJTdWY7XG4gICAgICBjb25zdCBwZXJtdXRhdGlvbnMgPSBbY3VyXTtcbiAgICAgIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgY3VyID0gYCR7cGFydHMuc2hpZnQoKX0uJHtjdXJ9YDtcbiAgICAgICAgcGVybXV0YXRpb25zLnB1c2goY3VyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwZXJtdXRhdGlvbnM7XG4gICAgfVxuICAgIGV4cG9ydHMucGVybXV0ZURvbWFpbiA9IHBlcm11dGVEb21haW47XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi9wYXRoTWF0Y2guanNcbnZhciByZXF1aXJlX3BhdGhNYXRjaCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL3BhdGhNYXRjaC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBmdW5jdGlvbiBwYXRoTWF0Y2gocmVxUGF0aCwgY29va2llUGF0aCkge1xuICAgICAgaWYgKGNvb2tpZVBhdGggPT09IHJlcVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHggPSByZXFQYXRoLmluZGV4T2YoY29va2llUGF0aCk7XG4gICAgICBpZiAoaWR4ID09PSAwKSB7XG4gICAgICAgIGlmIChjb29raWVQYXRoLnN1YnN0cigtMSkgPT09IFwiL1wiKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcVBhdGguc3Vic3RyKGNvb2tpZVBhdGgubGVuZ3RoLCAxKSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBleHBvcnRzLnBhdGhNYXRjaCA9IHBhdGhNYXRjaDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL3V0aWxIZWxwZXIuanNcbnZhciByZXF1aXJlX3V0aWxIZWxwZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi91dGlsSGVscGVyLmpzXCIoZXhwb3J0cykge1xuICAgIGZ1bmN0aW9uIHJlcXVpcmVVdGlsKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIF9fcmVxdWlyZShcInV0aWxcIik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsb29rdXBDdXN0b21JbnNwZWN0U3ltYm9sKCkge1xuICAgICAgcmV0dXJuIFN5bWJvbC5mb3IoXCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ5UmVhZGluZ0N1c3RvbVN5bWJvbEZyb21VdGlsSW5zcGVjdChvcHRpb25zKSB7XG4gICAgICBjb25zdCBfcmVxdWlyZVV0aWwgPSBvcHRpb25zLnJlcXVpcmVVdGlsIHx8IHJlcXVpcmVVdGlsO1xuICAgICAgY29uc3QgdXRpbCA9IF9yZXF1aXJlVXRpbCgpO1xuICAgICAgcmV0dXJuIHV0aWwgPyB1dGlsLmluc3BlY3QuY3VzdG9tIDogbnVsbDtcbiAgICB9XG4gICAgZXhwb3J0cy5nZXRVdGlsSW5zcGVjdCA9IGZ1bmN0aW9uIGdldFV0aWxJbnNwZWN0KGZhbGxiYWNrLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IF9yZXF1aXJlVXRpbCA9IG9wdGlvbnMucmVxdWlyZVV0aWwgfHwgcmVxdWlyZVV0aWw7XG4gICAgICBjb25zdCB1dGlsID0gX3JlcXVpcmVVdGlsKCk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gaW5zcGVjdCh2YWx1ZSwgc2hvd0hpZGRlbiwgZGVwdGgpIHtcbiAgICAgICAgcmV0dXJuIHV0aWwgPyB1dGlsLmluc3BlY3QodmFsdWUsIHNob3dIaWRkZW4sIGRlcHRoKSA6IGZhbGxiYWNrKHZhbHVlKTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBleHBvcnRzLmdldEN1c3RvbUluc3BlY3RTeW1ib2wgPSBmdW5jdGlvbiBnZXRDdXN0b21JbnNwZWN0U3ltYm9sKG9wdGlvbnMgPSB7fSkge1xuICAgICAgY29uc3QgX2xvb2t1cEN1c3RvbUluc3BlY3RTeW1ib2wgPSBvcHRpb25zLmxvb2t1cEN1c3RvbUluc3BlY3RTeW1ib2wgfHwgbG9va3VwQ3VzdG9tSW5zcGVjdFN5bWJvbDtcbiAgICAgIHJldHVybiBfbG9va3VwQ3VzdG9tSW5zcGVjdFN5bWJvbCgpIHx8IHRyeVJlYWRpbmdDdXN0b21TeW1ib2xGcm9tVXRpbEluc3BlY3Qob3B0aW9ucyk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL21lbXN0b3JlLmpzXG52YXIgcmVxdWlyZV9tZW1zdG9yZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL21lbXN0b3JlLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB7IGZyb21DYWxsYmFjayB9ID0gcmVxdWlyZV91bml2ZXJzYWxpZnkoKTtcbiAgICB2YXIgU3RvcmUgPSByZXF1aXJlX3N0b3JlKCkuU3RvcmU7XG4gICAgdmFyIHBlcm11dGVEb21haW4gPSByZXF1aXJlX3Blcm11dGVEb21haW4oKS5wZXJtdXRlRG9tYWluO1xuICAgIHZhciBwYXRoTWF0Y2ggPSByZXF1aXJlX3BhdGhNYXRjaCgpLnBhdGhNYXRjaDtcbiAgICB2YXIgeyBnZXRDdXN0b21JbnNwZWN0U3ltYm9sLCBnZXRVdGlsSW5zcGVjdCB9ID0gcmVxdWlyZV91dGlsSGVscGVyKCk7XG4gICAgdmFyIE1lbW9yeUNvb2tpZVN0b3JlID0gY2xhc3MgZXh0ZW5kcyBTdG9yZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zeW5jaHJvbm91cyA9IHRydWU7XG4gICAgICAgIHRoaXMuaWR4ID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGNvbnN0IGN1c3RvbUluc3BlY3RTeW1ib2wgPSBnZXRDdXN0b21JbnNwZWN0U3ltYm9sKCk7XG4gICAgICAgIGlmIChjdXN0b21JbnNwZWN0U3ltYm9sKSB7XG4gICAgICAgICAgdGhpc1tjdXN0b21JbnNwZWN0U3ltYm9sXSA9IHRoaXMuaW5zcGVjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW5zcGVjdCgpIHtcbiAgICAgICAgY29uc3QgdXRpbCA9IHsgaW5zcGVjdDogZ2V0VXRpbEluc3BlY3QoaW5zcGVjdEZhbGxiYWNrKSB9O1xuICAgICAgICByZXR1cm4gYHsgaWR4OiAke3V0aWwuaW5zcGVjdCh0aGlzLmlkeCwgZmFsc2UsIDIpfSB9YDtcbiAgICAgIH1cbiAgICAgIGZpbmRDb29raWUoZG9tYWluLCBwYXRoLCBrZXksIGNiKSB7XG4gICAgICAgIGlmICghdGhpcy5pZHhbZG9tYWluXSkge1xuICAgICAgICAgIHJldHVybiBjYihudWxsLCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pZHhbZG9tYWluXVtwYXRoXSkge1xuICAgICAgICAgIHJldHVybiBjYihudWxsLCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYihudWxsLCB0aGlzLmlkeFtkb21haW5dW3BhdGhdW2tleV0gfHwgbnVsbCk7XG4gICAgICB9XG4gICAgICBmaW5kQ29va2llcyhkb21haW4sIHBhdGgsIGFsbG93U3BlY2lhbFVzZURvbWFpbiwgY2IpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICAgICBpZiAodHlwZW9mIGFsbG93U3BlY2lhbFVzZURvbWFpbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgY2IgPSBhbGxvd1NwZWNpYWxVc2VEb21haW47XG4gICAgICAgICAgYWxsb3dTcGVjaWFsVXNlRG9tYWluID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRvbWFpbikge1xuICAgICAgICAgIHJldHVybiBjYihudWxsLCBbXSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhdGhNYXRjaGVyO1xuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICBwYXRoTWF0Y2hlciA9IGZ1bmN0aW9uIG1hdGNoQWxsKGRvbWFpbkluZGV4KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGN1clBhdGggaW4gZG9tYWluSW5kZXgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcGF0aEluZGV4ID0gZG9tYWluSW5kZXhbY3VyUGF0aF07XG4gICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHBhdGhJbmRleCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXRoSW5kZXhba2V5XSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhdGhNYXRjaGVyID0gZnVuY3Rpb24gbWF0Y2hSRkMoZG9tYWluSW5kZXgpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRvbWFpbkluZGV4KS5mb3JFYWNoKChjb29raWVQYXRoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChwYXRoTWF0Y2gocGF0aCwgY29va2llUGF0aCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoSW5kZXggPSBkb21haW5JbmRleFtjb29raWVQYXRoXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXRoSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXRoSW5kZXhba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvbWFpbnMgPSBwZXJtdXRlRG9tYWluKGRvbWFpbiwgYWxsb3dTcGVjaWFsVXNlRG9tYWluKSB8fCBbZG9tYWluXTtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5pZHg7XG4gICAgICAgIGRvbWFpbnMuZm9yRWFjaCgoY3VyRG9tYWluKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9tYWluSW5kZXggPSBpZHhbY3VyRG9tYWluXTtcbiAgICAgICAgICBpZiAoIWRvbWFpbkluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhdGhNYXRjaGVyKGRvbWFpbkluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNiKG51bGwsIHJlc3VsdHMpO1xuICAgICAgfVxuICAgICAgcHV0Q29va2llKGNvb2tpZSwgY2IpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlkeFtjb29raWUuZG9tYWluXSkge1xuICAgICAgICAgIHRoaXMuaWR4W2Nvb2tpZS5kb21haW5dID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlkeFtjb29raWUuZG9tYWluXVtjb29raWUucGF0aF0pIHtcbiAgICAgICAgICB0aGlzLmlkeFtjb29raWUuZG9tYWluXVtjb29raWUucGF0aF0gPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlkeFtjb29raWUuZG9tYWluXVtjb29raWUucGF0aF1bY29va2llLmtleV0gPSBjb29raWU7XG4gICAgICAgIGNiKG51bGwpO1xuICAgICAgfVxuICAgICAgdXBkYXRlQ29va2llKG9sZENvb2tpZSwgbmV3Q29va2llLCBjYikge1xuICAgICAgICB0aGlzLnB1dENvb2tpZShuZXdDb29raWUsIGNiKTtcbiAgICAgIH1cbiAgICAgIHJlbW92ZUNvb2tpZShkb21haW4sIHBhdGgsIGtleSwgY2IpIHtcbiAgICAgICAgaWYgKHRoaXMuaWR4W2RvbWFpbl0gJiYgdGhpcy5pZHhbZG9tYWluXVtwYXRoXSAmJiB0aGlzLmlkeFtkb21haW5dW3BhdGhdW2tleV0pIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5pZHhbZG9tYWluXVtwYXRoXVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIGNiKG51bGwpO1xuICAgICAgfVxuICAgICAgcmVtb3ZlQ29va2llcyhkb21haW4sIHBhdGgsIGNiKSB7XG4gICAgICAgIGlmICh0aGlzLmlkeFtkb21haW5dKSB7XG4gICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmlkeFtkb21haW5dW3BhdGhdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5pZHhbZG9tYWluXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNiKG51bGwpO1xuICAgICAgfVxuICAgICAgcmVtb3ZlQWxsQ29va2llcyhjYikge1xuICAgICAgICB0aGlzLmlkeCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICByZXR1cm4gY2IobnVsbCk7XG4gICAgICB9XG4gICAgICBnZXRBbGxDb29raWVzKGNiKSB7XG4gICAgICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5pZHg7XG4gICAgICAgIGNvbnN0IGRvbWFpbnMgPSBPYmplY3Qua2V5cyhpZHgpO1xuICAgICAgICBkb21haW5zLmZvckVhY2goKGRvbWFpbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGhzID0gT2JqZWN0LmtleXMoaWR4W2RvbWFpbl0pO1xuICAgICAgICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhpZHhbZG9tYWluXVtwYXRoXSk7XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29va2llcy5wdXNoKGlkeFtkb21haW5dW3BhdGhdW2tleV0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvb2tpZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgIHJldHVybiAoYS5jcmVhdGlvbkluZGV4IHx8IDApIC0gKGIuY3JlYXRpb25JbmRleCB8fCAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNiKG51bGwsIGNvb2tpZXMpO1xuICAgICAgfVxuICAgIH07XG4gICAgW1xuICAgICAgXCJmaW5kQ29va2llXCIsXG4gICAgICBcImZpbmRDb29raWVzXCIsXG4gICAgICBcInB1dENvb2tpZVwiLFxuICAgICAgXCJ1cGRhdGVDb29raWVcIixcbiAgICAgIFwicmVtb3ZlQ29va2llXCIsXG4gICAgICBcInJlbW92ZUNvb2tpZXNcIixcbiAgICAgIFwicmVtb3ZlQWxsQ29va2llc1wiLFxuICAgICAgXCJnZXRBbGxDb29raWVzXCJcbiAgICBdLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIE1lbW9yeUNvb2tpZVN0b3JlLnByb3RvdHlwZVtuYW1lXSA9IGZyb21DYWxsYmFjayhcbiAgICAgICAgTWVtb3J5Q29va2llU3RvcmUucHJvdG90eXBlW25hbWVdXG4gICAgICApO1xuICAgIH0pO1xuICAgIGV4cG9ydHMuTWVtb3J5Q29va2llU3RvcmUgPSBNZW1vcnlDb29raWVTdG9yZTtcbiAgICBmdW5jdGlvbiBpbnNwZWN0RmFsbGJhY2sodmFsKSB7XG4gICAgICBjb25zdCBkb21haW5zID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJbT2JqZWN0OiBudWxsIHByb3RvdHlwZV0ge31cIjtcbiAgICAgIH1cbiAgICAgIGxldCByZXN1bHQgPSBcIltPYmplY3Q6IG51bGwgcHJvdG90eXBlXSB7XFxuXCI7XG4gICAgICBPYmplY3Qua2V5cyh2YWwpLmZvckVhY2goKGRvbWFpbiwgaSkgPT4ge1xuICAgICAgICByZXN1bHQgKz0gZm9ybWF0RG9tYWluKGRvbWFpbiwgdmFsW2RvbWFpbl0pO1xuICAgICAgICBpZiAoaSA8IGRvbWFpbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHJlc3VsdCArPSBcIixcIjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gXCJcXG5cIjtcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0ICs9IFwifVwiO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0RG9tYWluKGRvbWFpbk5hbWUsIGRvbWFpblZhbHVlKSB7XG4gICAgICBjb25zdCBpbmRlbnQgPSBcIiAgXCI7XG4gICAgICBsZXQgcmVzdWx0ID0gYCR7aW5kZW50fScke2RvbWFpbk5hbWV9JzogW09iamVjdDogbnVsbCBwcm90b3R5cGVdIHtcbmA7XG4gICAgICBPYmplY3Qua2V5cyhkb21haW5WYWx1ZSkuZm9yRWFjaCgocGF0aCwgaSwgcGF0aHMpID0+IHtcbiAgICAgICAgcmVzdWx0ICs9IGZvcm1hdFBhdGgocGF0aCwgZG9tYWluVmFsdWVbcGF0aF0pO1xuICAgICAgICBpZiAoaSA8IHBhdGhzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZXN1bHQgKz0gXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9IFwiXFxuXCI7XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdCArPSBgJHtpbmRlbnR9fWA7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXRQYXRoKHBhdGhOYW1lLCBwYXRoVmFsdWUpIHtcbiAgICAgIGNvbnN0IGluZGVudCA9IFwiICAgIFwiO1xuICAgICAgbGV0IHJlc3VsdCA9IGAke2luZGVudH0nJHtwYXRoTmFtZX0nOiBbT2JqZWN0OiBudWxsIHByb3RvdHlwZV0ge1xuYDtcbiAgICAgIE9iamVjdC5rZXlzKHBhdGhWYWx1ZSkuZm9yRWFjaCgoY29va2llTmFtZSwgaSwgY29va2llTmFtZXMpID0+IHtcbiAgICAgICAgY29uc3QgY29va2llID0gcGF0aFZhbHVlW2Nvb2tpZU5hbWVdO1xuICAgICAgICByZXN1bHQgKz0gYCAgICAgICR7Y29va2llTmFtZX06ICR7Y29va2llLmluc3BlY3QoKX1gO1xuICAgICAgICBpZiAoaSA8IGNvb2tpZU5hbWVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZXN1bHQgKz0gXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9IFwiXFxuXCI7XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdCArPSBgJHtpbmRlbnR9fWA7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBleHBvcnRzLmluc3BlY3RGYWxsYmFjayA9IGluc3BlY3RGYWxsYmFjaztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL3ZhbGlkYXRvcnMuanNcbnZhciByZXF1aXJlX3ZhbGlkYXRvcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi92YWxpZGF0b3JzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgZnVuY3Rpb24gaXNGdW5jdGlvbihkYXRhKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGRhdGEgPT09IFwiZnVuY3Rpb25cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyhkYXRhKSB7XG4gICAgICByZXR1cm4gaXNTdHJpbmcoZGF0YSkgJiYgZGF0YSAhPT0gXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNEYXRlKGRhdGEpIHtcbiAgICAgIHJldHVybiBpc0luc3RhbmNlU3RyaWN0KGRhdGEsIERhdGUpICYmIGlzSW50ZWdlcihkYXRhLmdldFRpbWUoKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRW1wdHlTdHJpbmcoZGF0YSkge1xuICAgICAgcmV0dXJuIGRhdGEgPT09IFwiXCIgfHwgZGF0YSBpbnN0YW5jZW9mIFN0cmluZyAmJiBkYXRhLnRvU3RyaW5nKCkgPT09IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKGRhdGEpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiB8fCBkYXRhIGluc3RhbmNlb2YgU3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc09iamVjdChkYXRhKSB7XG4gICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbChkYXRhKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJbnN0YW5jZVN0cmljdChkYXRhLCBwcm90b3R5cGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgcHJvdG90eXBlO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpc1VybFN0cmluZ09yT2JqZWN0KGRhdGEpIHtcbiAgICAgIHJldHVybiBpc05vbkVtcHR5U3RyaW5nKGRhdGEpIHx8IGlzT2JqZWN0KGRhdGEpICYmIFwiaG9zdG5hbWVcIiBpbiBkYXRhICYmIFwicGF0aG5hbWVcIiBpbiBkYXRhICYmIFwicHJvdG9jb2xcIiBpbiBkYXRhIHx8IGlzSW5zdGFuY2VTdHJpY3QoZGF0YSwgVVJMKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJbnRlZ2VyKGRhdGEpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgZGF0YSA9PT0gXCJudW1iZXJcIiAmJiBkYXRhICUgMSA9PT0gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUoYm9vbCwgY2IsIG9wdGlvbnMpIHtcbiAgICAgIGlmICghaXNGdW5jdGlvbihjYikpIHtcbiAgICAgICAgb3B0aW9ucyA9IGNiO1xuICAgICAgICBjYiA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoIWlzT2JqZWN0KG9wdGlvbnMpKSBvcHRpb25zID0geyBFcnJvcjogXCJGYWlsZWQgQ2hlY2tcIiB9O1xuICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNiKG5ldyBQYXJhbWV0ZXJFcnJvcihvcHRpb25zKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcmFtZXRlckVycm9yKG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBQYXJhbWV0ZXJFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3Ige1xuICAgICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XG4gICAgICAgIHN1cGVyKC4uLnBhcmFtcyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLlBhcmFtZXRlckVycm9yID0gUGFyYW1ldGVyRXJyb3I7XG4gICAgZXhwb3J0cy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgICBleHBvcnRzLmlzTm9uRW1wdHlTdHJpbmcgPSBpc05vbkVtcHR5U3RyaW5nO1xuICAgIGV4cG9ydHMuaXNEYXRlID0gaXNEYXRlO1xuICAgIGV4cG9ydHMuaXNFbXB0eVN0cmluZyA9IGlzRW1wdHlTdHJpbmc7XG4gICAgZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nO1xuICAgIGV4cG9ydHMuaXNPYmplY3QgPSBpc09iamVjdDtcbiAgICBleHBvcnRzLmlzVXJsU3RyaW5nT3JPYmplY3QgPSBpc1VybFN0cmluZ09yT2JqZWN0O1xuICAgIGV4cG9ydHMudmFsaWRhdGUgPSB2YWxpZGF0ZTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL3ZlcnNpb24uanNcbnZhciByZXF1aXJlX3ZlcnNpb24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi92ZXJzaW9uLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBcIjQuMS40XCI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdG91Z2gtY29va2llL2xpYi9jb29raWUuanNcbnZhciByZXF1aXJlX2Nvb2tpZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90b3VnaC1jb29raWUvbGliL2Nvb2tpZS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcHVueWNvZGUgPSByZXF1aXJlX3B1bnljb2RlKCk7XG4gICAgdmFyIHVybFBhcnNlID0gcmVxdWlyZV91cmxfcGFyc2UoKTtcbiAgICB2YXIgcHVic3VmZml4ID0gcmVxdWlyZV9wdWJzdWZmaXhfcHNsKCk7XG4gICAgdmFyIFN0b3JlID0gcmVxdWlyZV9zdG9yZSgpLlN0b3JlO1xuICAgIHZhciBNZW1vcnlDb29raWVTdG9yZSA9IHJlcXVpcmVfbWVtc3RvcmUoKS5NZW1vcnlDb29raWVTdG9yZTtcbiAgICB2YXIgcGF0aE1hdGNoID0gcmVxdWlyZV9wYXRoTWF0Y2goKS5wYXRoTWF0Y2g7XG4gICAgdmFyIHZhbGlkYXRvcnMgPSByZXF1aXJlX3ZhbGlkYXRvcnMoKTtcbiAgICB2YXIgVkVSU0lPTiA9IHJlcXVpcmVfdmVyc2lvbigpO1xuICAgIHZhciB7IGZyb21DYWxsYmFjayB9ID0gcmVxdWlyZV91bml2ZXJzYWxpZnkoKTtcbiAgICB2YXIgeyBnZXRDdXN0b21JbnNwZWN0U3ltYm9sIH0gPSByZXF1aXJlX3V0aWxIZWxwZXIoKTtcbiAgICB2YXIgQ09PS0lFX09DVEVUUyA9IC9eW1xceDIxXFx4MjMtXFx4MkJcXHgyRC1cXHgzQVxceDNDLVxceDVCXFx4NUQtXFx4N0VdKyQvO1xuICAgIHZhciBDT05UUk9MX0NIQVJTID0gL1tcXHgwMC1cXHgxRl0vO1xuICAgIHZhciBURVJNSU5BVE9SUyA9IFtcIlxcblwiLCBcIlxcclwiLCBcIlxcMFwiXTtcbiAgICB2YXIgUEFUSF9WQUxVRSA9IC9bXFx4MjAtXFx4M0FcXHgzQy1cXHg3RV0rLztcbiAgICB2YXIgREFURV9ERUxJTSA9IC9bXFx4MDlcXHgyMC1cXHgyRlxceDNCLVxceDQwXFx4NUItXFx4NjBcXHg3Qi1cXHg3RV0vO1xuICAgIHZhciBNT05USF9UT19OVU0gPSB7XG4gICAgICBqYW46IDAsXG4gICAgICBmZWI6IDEsXG4gICAgICBtYXI6IDIsXG4gICAgICBhcHI6IDMsXG4gICAgICBtYXk6IDQsXG4gICAgICBqdW46IDUsXG4gICAgICBqdWw6IDYsXG4gICAgICBhdWc6IDcsXG4gICAgICBzZXA6IDgsXG4gICAgICBvY3Q6IDksXG4gICAgICBub3Y6IDEwLFxuICAgICAgZGVjOiAxMVxuICAgIH07XG4gICAgdmFyIE1BWF9USU1FID0gMjE0NzQ4MzY0N2UzO1xuICAgIHZhciBNSU5fVElNRSA9IDA7XG4gICAgdmFyIFNBTUVfU0lURV9DT05URVhUX1ZBTF9FUlIgPSAnSW52YWxpZCBzYW1lU2l0ZUNvbnRleHQgb3B0aW9uIGZvciBnZXRDb29raWVzKCk7IGV4cGVjdGVkIG9uZSBvZiBcInN0cmljdFwiLCBcImxheFwiLCBvciBcIm5vbmVcIic7XG4gICAgZnVuY3Rpb24gY2hlY2tTYW1lU2l0ZUNvbnRleHQodmFsdWUpIHtcbiAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc05vbkVtcHR5U3RyaW5nKHZhbHVlKSwgdmFsdWUpO1xuICAgICAgY29uc3QgY29udGV4dCA9IFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChjb250ZXh0ID09PSBcIm5vbmVcIiB8fCBjb250ZXh0ID09PSBcImxheFwiIHx8IGNvbnRleHQgPT09IFwic3RyaWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIFByZWZpeFNlY3VyaXR5RW51bSA9IE9iamVjdC5mcmVlemUoe1xuICAgICAgU0lMRU5UOiBcInNpbGVudFwiLFxuICAgICAgU1RSSUNUOiBcInN0cmljdFwiLFxuICAgICAgRElTQUJMRUQ6IFwidW5zYWZlLWRpc2FibGVkXCJcbiAgICB9KTtcbiAgICB2YXIgSVBfUkVHRVhfTE9XRVJDQVNFID0gLyg/Ol4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9JCl8KD86Xig/Oig/OlthLWZcXGRdezEsNH06KXs3fSg/OlthLWZcXGRdezEsNH18Oil8KD86W2EtZlxcZF17MSw0fTopezZ9KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKXszfXw6W2EtZlxcZF17MSw0fXw6KXwoPzpbYS1mXFxkXXsxLDR9Oil7NX0oPzo6KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKXszfXwoPzo6W2EtZlxcZF17MSw0fSl7MSwyfXw6KXwoPzpbYS1mXFxkXXsxLDR9Oil7NH0oPzooPzo6W2EtZlxcZF17MSw0fSl7MCwxfTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mXFxkXXsxLDR9KXsxLDN9fDopfCg/OlthLWZcXGRdezEsNH06KXszfSg/Oig/OjpbYS1mXFxkXXsxLDR9KXswLDJ9Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZcXGRdezEsNH0pezEsNH18Oil8KD86W2EtZlxcZF17MSw0fTopezJ9KD86KD86OlthLWZcXGRdezEsNH0pezAsM306KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKXszfXwoPzo6W2EtZlxcZF17MSw0fSl7MSw1fXw6KXwoPzpbYS1mXFxkXXsxLDR9Oil7MX0oPzooPzo6W2EtZlxcZF17MSw0fSl7MCw0fTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mXFxkXXsxLDR9KXsxLDZ9fDopfCg/OjooPzooPzo6W2EtZlxcZF17MSw0fSl7MCw1fTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mXFxkXXsxLDR9KXsxLDd9fDopKSkkKS87XG4gICAgdmFyIElQX1Y2X1JFR0VYID0gYFxuXFxcXFs/KD86XG4oPzpbYS1mQS1GXFxcXGRdezEsNH06KXs3fSg/OlthLWZBLUZcXFxcZF17MSw0fXw6KXxcbig/OlthLWZBLUZcXFxcZF17MSw0fTopezZ9KD86KD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSg/OlxcXFwuKD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSl7M318OlthLWZBLUZcXFxcZF17MSw0fXw6KXxcbig/OlthLWZBLUZcXFxcZF17MSw0fTopezV9KD86Oig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkoPzpcXFxcLig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkpezN9fCg/OjpbYS1mQS1GXFxcXGRdezEsNH0pezEsMn18Oil8XG4oPzpbYS1mQS1GXFxcXGRdezEsNH06KXs0fSg/Oig/OjpbYS1mQS1GXFxcXGRdezEsNH0pezAsMX06KD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSg/OlxcXFwuKD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSl7M318KD86OlthLWZBLUZcXFxcZF17MSw0fSl7MSwzfXw6KXxcbig/OlthLWZBLUZcXFxcZF17MSw0fTopezN9KD86KD86OlthLWZBLUZcXFxcZF17MSw0fSl7MCwyfTooPzoyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldXFxcXGR8XFxcXGQpKD86XFxcXC4oPzoyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldXFxcXGR8XFxcXGQpKXszfXwoPzo6W2EtZkEtRlxcXFxkXXsxLDR9KXsxLDR9fDopfFxuKD86W2EtZkEtRlxcXFxkXXsxLDR9Oil7Mn0oPzooPzo6W2EtZkEtRlxcXFxkXXsxLDR9KXswLDN9Oig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkoPzpcXFxcLig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkpezN9fCg/OjpbYS1mQS1GXFxcXGRdezEsNH0pezEsNX18Oil8XG4oPzpbYS1mQS1GXFxcXGRdezEsNH06KXsxfSg/Oig/OjpbYS1mQS1GXFxcXGRdezEsNH0pezAsNH06KD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSg/OlxcXFwuKD86MjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XVxcXFxkfFxcXFxkKSl7M318KD86OlthLWZBLUZcXFxcZF17MSw0fSl7MSw2fXw6KXxcbig/OjooPzooPzo6W2EtZkEtRlxcXFxkXXsxLDR9KXswLDV9Oig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkoPzpcXFxcLig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkpezN9fCg/OjpbYS1mQS1GXFxcXGRdezEsNH0pezEsN318OikpXG4pKD86JVswLTlhLXpBLVpdezEsfSk/XFxcXF0/XG5gLnJlcGxhY2UoL1xccypcXC9cXC8uKiQvZ20sIFwiXCIpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKS50cmltKCk7XG4gICAgdmFyIElQX1Y2X1JFR0VYX09CSkVDVCA9IG5ldyBSZWdFeHAoYF4ke0lQX1Y2X1JFR0VYfSRgKTtcbiAgICBmdW5jdGlvbiBwYXJzZURpZ2l0cyh0b2tlbiwgbWluRGlnaXRzLCBtYXhEaWdpdHMsIHRyYWlsaW5nT0spIHtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICB3aGlsZSAoY291bnQgPCB0b2tlbi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgYyA9IHRva2VuLmNoYXJDb2RlQXQoY291bnQpO1xuICAgICAgICBpZiAoYyA8PSA0NyB8fCBjID49IDU4KSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICAgIGlmIChjb3VudCA8IG1pbkRpZ2l0cyB8fCBjb3VudCA+IG1heERpZ2l0cykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICghdHJhaWxpbmdPSyAmJiBjb3VudCAhPSB0b2tlbi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyc2VJbnQodG9rZW4uc3Vic3RyKDAsIGNvdW50KSwgMTApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZVRpbWUodG9rZW4pIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gdG9rZW4uc3BsaXQoXCI6XCIpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gWzAsIDAsIDBdO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRyYWlsaW5nT0sgPSBpID09IDI7XG4gICAgICAgIGNvbnN0IG51bSA9IHBhcnNlRGlnaXRzKHBhcnRzW2ldLCAxLCAyLCB0cmFpbGluZ09LKTtcbiAgICAgICAgaWYgKG51bSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtpXSA9IG51bTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlTW9udGgodG9rZW4pIHtcbiAgICAgIHRva2VuID0gU3RyaW5nKHRva2VuKS5zdWJzdHIoMCwgMykudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG51bSA9IE1PTlRIX1RPX05VTVt0b2tlbl07XG4gICAgICByZXR1cm4gbnVtID49IDAgPyBudW0gOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZURhdGUoc3RyKSB7XG4gICAgICBpZiAoIXN0cikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB0b2tlbnMgPSBzdHIuc3BsaXQoREFURV9ERUxJTSk7XG4gICAgICBpZiAoIXRva2Vucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgaG91ciA9IG51bGw7XG4gICAgICBsZXQgbWludXRlID0gbnVsbDtcbiAgICAgIGxldCBzZWNvbmQgPSBudWxsO1xuICAgICAgbGV0IGRheU9mTW9udGggPSBudWxsO1xuICAgICAgbGV0IG1vbnRoID0gbnVsbDtcbiAgICAgIGxldCB5ZWFyID0gbnVsbDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldLnRyaW0oKTtcbiAgICAgICAgaWYgKCF0b2tlbi5sZW5ndGgpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAoc2Vjb25kID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcGFyc2VUaW1lKHRva2VuKTtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBob3VyID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgbWludXRlID0gcmVzdWx0WzFdO1xuICAgICAgICAgICAgc2Vjb25kID0gcmVzdWx0WzJdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXlPZk1vbnRoID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcGFyc2VEaWdpdHModG9rZW4sIDEsIDIsIHRydWUpO1xuICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mTW9udGggPSByZXN1bHQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbnRoID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcGFyc2VNb250aCh0b2tlbik7XG4gICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbW9udGggPSByZXN1bHQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHllYXIgPT09IG51bGwpIHtcbiAgICAgICAgICByZXN1bHQgPSBwYXJzZURpZ2l0cyh0b2tlbiwgMiwgNCwgdHJ1ZSk7XG4gICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgeWVhciA9IHJlc3VsdDtcbiAgICAgICAgICAgIGlmICh5ZWFyID49IDcwICYmIHllYXIgPD0gOTkpIHtcbiAgICAgICAgICAgICAgeWVhciArPSAxOTAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh5ZWFyID49IDAgJiYgeWVhciA8PSA2OSkge1xuICAgICAgICAgICAgICB5ZWFyICs9IDJlMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChkYXlPZk1vbnRoID09PSBudWxsIHx8IG1vbnRoID09PSBudWxsIHx8IHllYXIgPT09IG51bGwgfHwgc2Vjb25kID09PSBudWxsIHx8IGRheU9mTW9udGggPCAxIHx8IGRheU9mTW9udGggPiAzMSB8fCB5ZWFyIDwgMTYwMSB8fCBob3VyID4gMjMgfHwgbWludXRlID4gNTkgfHwgc2Vjb25kID4gNTkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBob3VyLCBtaW51dGUsIHNlY29uZCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc0RhdGUoZGF0ZSksIGRhdGUpO1xuICAgICAgcmV0dXJuIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2Fub25pY2FsRG9tYWluKHN0cikge1xuICAgICAgaWYgKHN0ciA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgc3RyID0gc3RyLnRyaW0oKS5yZXBsYWNlKC9eXFwuLywgXCJcIik7XG4gICAgICBpZiAoSVBfVjZfUkVHRVhfT0JKRUNULnRlc3Qoc3RyKSkge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShcIltcIiwgXCJcIikucmVwbGFjZShcIl1cIiwgXCJcIik7XG4gICAgICB9XG4gICAgICBpZiAocHVueWNvZGUgJiYgL1teXFx1MDAwMS1cXHUwMDdmXS8udGVzdChzdHIpKSB7XG4gICAgICAgIHN0ciA9IHB1bnljb2RlLnRvQVNDSUkoc3RyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZG9tYWluTWF0Y2goc3RyLCBkb21TdHIsIGNhbm9uaWNhbGl6ZSkge1xuICAgICAgaWYgKHN0ciA9PSBudWxsIHx8IGRvbVN0ciA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKGNhbm9uaWNhbGl6ZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgc3RyID0gY2Fub25pY2FsRG9tYWluKHN0cik7XG4gICAgICAgIGRvbVN0ciA9IGNhbm9uaWNhbERvbWFpbihkb21TdHIpO1xuICAgICAgfVxuICAgICAgaWYgKHN0ciA9PSBkb21TdHIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHggPSBzdHIubGFzdEluZGV4T2YoZG9tU3RyKTtcbiAgICAgIGlmIChpZHggPD0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoc3RyLmxlbmd0aCAhPT0gZG9tU3RyLmxlbmd0aCArIGlkeCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoc3RyLnN1YnN0cihpZHggLSAxLCAxKSAhPT0gXCIuXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKElQX1JFR0VYX0xPV0VSQ0FTRS50ZXN0KHN0cikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmF1bHRQYXRoKHBhdGgpIHtcbiAgICAgIGlmICghcGF0aCB8fCBwYXRoLnN1YnN0cigwLCAxKSAhPT0gXCIvXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiL1wiO1xuICAgICAgfVxuICAgICAgaWYgKHBhdGggPT09IFwiL1wiKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfVxuICAgICAgY29uc3QgcmlnaHRTbGFzaCA9IHBhdGgubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgaWYgKHJpZ2h0U2xhc2ggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFwiL1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgcmlnaHRTbGFzaCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyaW1UZXJtaW5hdG9yKHN0cikge1xuICAgICAgaWYgKHZhbGlkYXRvcnMuaXNFbXB0eVN0cmluZyhzdHIpKSByZXR1cm4gc3RyO1xuICAgICAgZm9yIChsZXQgdCA9IDA7IHQgPCBURVJNSU5BVE9SUy5sZW5ndGg7IHQrKykge1xuICAgICAgICBjb25zdCB0ZXJtaW5hdG9ySWR4ID0gc3RyLmluZGV4T2YoVEVSTUlOQVRPUlNbdF0pO1xuICAgICAgICBpZiAodGVybWluYXRvcklkeCAhPT0gLTEpIHtcbiAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyKDAsIHRlcm1pbmF0b3JJZHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUNvb2tpZVBhaXIoY29va2llUGFpciwgbG9vc2VNb2RlKSB7XG4gICAgICBjb29raWVQYWlyID0gdHJpbVRlcm1pbmF0b3IoY29va2llUGFpcik7XG4gICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNTdHJpbmcoY29va2llUGFpciksIGNvb2tpZVBhaXIpO1xuICAgICAgbGV0IGZpcnN0RXEgPSBjb29raWVQYWlyLmluZGV4T2YoXCI9XCIpO1xuICAgICAgaWYgKGxvb3NlTW9kZSkge1xuICAgICAgICBpZiAoZmlyc3RFcSA9PT0gMCkge1xuICAgICAgICAgIGNvb2tpZVBhaXIgPSBjb29raWVQYWlyLnN1YnN0cigxKTtcbiAgICAgICAgICBmaXJzdEVxID0gY29va2llUGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZpcnN0RXEgPD0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGNvb2tpZU5hbWUsIGNvb2tpZVZhbHVlO1xuICAgICAgaWYgKGZpcnN0RXEgPD0gMCkge1xuICAgICAgICBjb29raWVOYW1lID0gXCJcIjtcbiAgICAgICAgY29va2llVmFsdWUgPSBjb29raWVQYWlyLnRyaW0oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvb2tpZU5hbWUgPSBjb29raWVQYWlyLnN1YnN0cigwLCBmaXJzdEVxKS50cmltKCk7XG4gICAgICAgIGNvb2tpZVZhbHVlID0gY29va2llUGFpci5zdWJzdHIoZmlyc3RFcSArIDEpLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIGlmIChDT05UUk9MX0NIQVJTLnRlc3QoY29va2llTmFtZSkgfHwgQ09OVFJPTF9DSEFSUy50ZXN0KGNvb2tpZVZhbHVlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjID0gbmV3IENvb2tpZSgpO1xuICAgICAgYy5rZXkgPSBjb29raWVOYW1lO1xuICAgICAgYy52YWx1ZSA9IGNvb2tpZVZhbHVlO1xuICAgICAgcmV0dXJuIGM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0aW9ucykge1xuICAgICAgaWYgKCFvcHRpb25zIHx8IHR5cGVvZiBvcHRpb25zICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWxpZGF0b3JzLmlzRW1wdHlTdHJpbmcoc3RyKSB8fCAhdmFsaWRhdG9ycy5pc1N0cmluZyhzdHIpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgc3RyID0gc3RyLnRyaW0oKTtcbiAgICAgIGNvbnN0IGZpcnN0U2VtaSA9IHN0ci5pbmRleE9mKFwiO1wiKTtcbiAgICAgIGNvbnN0IGNvb2tpZVBhaXIgPSBmaXJzdFNlbWkgPT09IC0xID8gc3RyIDogc3RyLnN1YnN0cigwLCBmaXJzdFNlbWkpO1xuICAgICAgY29uc3QgYyA9IHBhcnNlQ29va2llUGFpcihjb29raWVQYWlyLCAhIW9wdGlvbnMubG9vc2UpO1xuICAgICAgaWYgKCFjKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChmaXJzdFNlbWkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiBjO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5wYXJzZWQgPSBzdHIuc2xpY2UoZmlyc3RTZW1pICsgMSkudHJpbSgpO1xuICAgICAgaWYgKHVucGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvb2tpZV9hdnMgPSB1bnBhcnNlZC5zcGxpdChcIjtcIik7XG4gICAgICB3aGlsZSAoY29va2llX2F2cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgYXYgPSBjb29raWVfYXZzLnNoaWZ0KCkudHJpbSgpO1xuICAgICAgICBpZiAoYXYubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXZfc2VwID0gYXYuaW5kZXhPZihcIj1cIik7XG4gICAgICAgIGxldCBhdl9rZXksIGF2X3ZhbHVlO1xuICAgICAgICBpZiAoYXZfc2VwID09PSAtMSkge1xuICAgICAgICAgIGF2X2tleSA9IGF2O1xuICAgICAgICAgIGF2X3ZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdl9rZXkgPSBhdi5zdWJzdHIoMCwgYXZfc2VwKTtcbiAgICAgICAgICBhdl92YWx1ZSA9IGF2LnN1YnN0cihhdl9zZXAgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBhdl9rZXkgPSBhdl9rZXkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChhdl92YWx1ZSkge1xuICAgICAgICAgIGF2X3ZhbHVlID0gYXZfdmFsdWUudHJpbSgpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYXZfa2V5KSB7XG4gICAgICAgICAgY2FzZSBcImV4cGlyZXNcIjpcbiAgICAgICAgICAgIGlmIChhdl92YWx1ZSkge1xuICAgICAgICAgICAgICBjb25zdCBleHAgPSBwYXJzZURhdGUoYXZfdmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoZXhwKSB7XG4gICAgICAgICAgICAgICAgYy5leHBpcmVzID0gZXhwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibWF4LWFnZVwiOlxuICAgICAgICAgICAgaWYgKGF2X3ZhbHVlKSB7XG4gICAgICAgICAgICAgIGlmICgvXi0/WzAtOV0rJC8udGVzdChhdl92YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHBhcnNlSW50KGF2X3ZhbHVlLCAxMCk7XG4gICAgICAgICAgICAgICAgYy5zZXRNYXhBZ2UoZGVsdGEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiZG9tYWluXCI6XG4gICAgICAgICAgICBpZiAoYXZfdmFsdWUpIHtcbiAgICAgICAgICAgICAgY29uc3QgZG9tYWluID0gYXZfdmFsdWUudHJpbSgpLnJlcGxhY2UoL15cXC4vLCBcIlwiKTtcbiAgICAgICAgICAgICAgaWYgKGRvbWFpbikge1xuICAgICAgICAgICAgICAgIGMuZG9tYWluID0gZG9tYWluLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgICAgICBjLnBhdGggPSBhdl92YWx1ZSAmJiBhdl92YWx1ZVswXSA9PT0gXCIvXCIgPyBhdl92YWx1ZSA6IG51bGw7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwic2VjdXJlXCI6XG4gICAgICAgICAgICBjLnNlY3VyZSA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiaHR0cG9ubHlcIjpcbiAgICAgICAgICAgIGMuaHR0cE9ubHkgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInNhbWVzaXRlXCI6XG4gICAgICAgICAgICBjb25zdCBlbmZvcmNlbWVudCA9IGF2X3ZhbHVlID8gYXZfdmFsdWUudG9Mb3dlckNhc2UoKSA6IFwiXCI7XG4gICAgICAgICAgICBzd2l0Y2ggKGVuZm9yY2VtZW50KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJzdHJpY3RcIjpcbiAgICAgICAgICAgICAgICBjLnNhbWVTaXRlID0gXCJzdHJpY3RcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcImxheFwiOlxuICAgICAgICAgICAgICAgIGMuc2FtZVNpdGUgPSBcImxheFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwibm9uZVwiOlxuICAgICAgICAgICAgICAgIGMuc2FtZVNpdGUgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjLnNhbWVTaXRlID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGMuZXh0ZW5zaW9ucyA9IGMuZXh0ZW5zaW9ucyB8fCBbXTtcbiAgICAgICAgICAgIGMuZXh0ZW5zaW9ucy5wdXNoKGF2KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTZWN1cmVQcmVmaXhDb25kaXRpb25NZXQoY29va2llKSB7XG4gICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNPYmplY3QoY29va2llKSwgY29va2llKTtcbiAgICAgIHJldHVybiAhY29va2llLmtleS5zdGFydHNXaXRoKFwiX19TZWN1cmUtXCIpIHx8IGNvb2tpZS5zZWN1cmU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSG9zdFByZWZpeENvbmRpdGlvbk1ldChjb29raWUpIHtcbiAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc09iamVjdChjb29raWUpKTtcbiAgICAgIHJldHVybiAhY29va2llLmtleS5zdGFydHNXaXRoKFwiX19Ib3N0LVwiKSB8fCBjb29raWUuc2VjdXJlICYmIGNvb2tpZS5ob3N0T25seSAmJiBjb29raWUucGF0aCAhPSBudWxsICYmIGNvb2tpZS5wYXRoID09PSBcIi9cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24ganNvblBhcnNlKHN0cikge1xuICAgICAgbGV0IG9iajtcbiAgICAgIHRyeSB7XG4gICAgICAgIG9iaiA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tSlNPTihzdHIpIHtcbiAgICAgIGlmICghc3RyIHx8IHZhbGlkYXRvcnMuaXNFbXB0eVN0cmluZyhzdHIpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgbGV0IG9iajtcbiAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIG9iaiA9IGpzb25QYXJzZShzdHIpO1xuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqID0gc3RyO1xuICAgICAgfVxuICAgICAgY29uc3QgYyA9IG5ldyBDb29raWUoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQ29va2llLnNlcmlhbGl6YWJsZVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcHJvcCA9IENvb2tpZS5zZXJpYWxpemFibGVQcm9wZXJ0aWVzW2ldO1xuICAgICAgICBpZiAob2JqW3Byb3BdID09PSB2b2lkIDAgfHwgb2JqW3Byb3BdID09PSBjb29raWVEZWZhdWx0c1twcm9wXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wID09PSBcImV4cGlyZXNcIiB8fCBwcm9wID09PSBcImNyZWF0aW9uXCIgfHwgcHJvcCA9PT0gXCJsYXN0QWNjZXNzZWRcIikge1xuICAgICAgICAgIGlmIChvYmpbcHJvcF0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNbcHJvcF0gPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjW3Byb3BdID0gb2JqW3Byb3BdID09IFwiSW5maW5pdHlcIiA/IFwiSW5maW5pdHlcIiA6IG5ldyBEYXRlKG9ialtwcm9wXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNbcHJvcF0gPSBvYmpbcHJvcF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb29raWVDb21wYXJlKGEsIGIpIHtcbiAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc09iamVjdChhKSwgYSk7XG4gICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNPYmplY3QoYiksIGIpO1xuICAgICAgbGV0IGNtcCA9IDA7XG4gICAgICBjb25zdCBhUGF0aExlbiA9IGEucGF0aCA/IGEucGF0aC5sZW5ndGggOiAwO1xuICAgICAgY29uc3QgYlBhdGhMZW4gPSBiLnBhdGggPyBiLnBhdGgubGVuZ3RoIDogMDtcbiAgICAgIGNtcCA9IGJQYXRoTGVuIC0gYVBhdGhMZW47XG4gICAgICBpZiAoY21wICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBjbXA7XG4gICAgICB9XG4gICAgICBjb25zdCBhVGltZSA9IGEuY3JlYXRpb24gPyBhLmNyZWF0aW9uLmdldFRpbWUoKSA6IE1BWF9USU1FO1xuICAgICAgY29uc3QgYlRpbWUgPSBiLmNyZWF0aW9uID8gYi5jcmVhdGlvbi5nZXRUaW1lKCkgOiBNQVhfVElNRTtcbiAgICAgIGNtcCA9IGFUaW1lIC0gYlRpbWU7XG4gICAgICBpZiAoY21wICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBjbXA7XG4gICAgICB9XG4gICAgICBjbXAgPSBhLmNyZWF0aW9uSW5kZXggLSBiLmNyZWF0aW9uSW5kZXg7XG4gICAgICByZXR1cm4gY21wO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJtdXRlUGF0aChwYXRoKSB7XG4gICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNTdHJpbmcocGF0aCkpO1xuICAgICAgaWYgKHBhdGggPT09IFwiL1wiKSB7XG4gICAgICAgIHJldHVybiBbXCIvXCJdO1xuICAgICAgfVxuICAgICAgY29uc3QgcGVybXV0YXRpb25zID0gW3BhdGhdO1xuICAgICAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBsaW5kZXggPSBwYXRoLmxhc3RJbmRleE9mKFwiL1wiKTtcbiAgICAgICAgaWYgKGxpbmRleCA9PT0gMCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cigwLCBsaW5kZXgpO1xuICAgICAgICBwZXJtdXRhdGlvbnMucHVzaChwYXRoKTtcbiAgICAgIH1cbiAgICAgIHBlcm11dGF0aW9ucy5wdXNoKFwiL1wiKTtcbiAgICAgIHJldHVybiBwZXJtdXRhdGlvbnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvb2tpZUNvbnRleHQodXJsKSB7XG4gICAgICBpZiAodXJsIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBkZWNvZGVVUkkodXJsKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVybFBhcnNlKHVybCk7XG4gICAgfVxuICAgIHZhciBjb29raWVEZWZhdWx0cyA9IHtcbiAgICAgIC8vIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgUkZDIGhhcyB0aGVtOlxuICAgICAga2V5OiBcIlwiLFxuICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICBleHBpcmVzOiBcIkluZmluaXR5XCIsXG4gICAgICBtYXhBZ2U6IG51bGwsXG4gICAgICBkb21haW46IG51bGwsXG4gICAgICBwYXRoOiBudWxsLFxuICAgICAgc2VjdXJlOiBmYWxzZSxcbiAgICAgIGh0dHBPbmx5OiBmYWxzZSxcbiAgICAgIGV4dGVuc2lvbnM6IG51bGwsXG4gICAgICAvLyBzZXQgYnkgdGhlIENvb2tpZUphcjpcbiAgICAgIGhvc3RPbmx5OiBudWxsLFxuICAgICAgcGF0aElzRGVmYXVsdDogbnVsbCxcbiAgICAgIGNyZWF0aW9uOiBudWxsLFxuICAgICAgbGFzdEFjY2Vzc2VkOiBudWxsLFxuICAgICAgc2FtZVNpdGU6IHZvaWQgMFxuICAgIH07XG4gICAgdmFyIENvb2tpZSA9IGNsYXNzIF9Db29raWUge1xuICAgICAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUluc3BlY3RTeW1ib2wgPSBnZXRDdXN0b21JbnNwZWN0U3ltYm9sKCk7XG4gICAgICAgIGlmIChjdXN0b21JbnNwZWN0U3ltYm9sKSB7XG4gICAgICAgICAgdGhpc1tjdXN0b21JbnNwZWN0U3ltYm9sXSA9IHRoaXMuaW5zcGVjdDtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvb2tpZURlZmF1bHRzLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5jcmVhdGlvbiA9IHRoaXMuY3JlYXRpb24gfHwgLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcImNyZWF0aW9uSW5kZXhcIiwge1xuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgLy8gaW1wb3J0YW50IGZvciBhc3NlcnQuZGVlcEVxdWFsIGNoZWNrc1xuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiArK19Db29raWUuY29va2llc0NyZWF0ZWRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpbnNwZWN0KCkge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBob3N0T25seSA9IHRoaXMuaG9zdE9ubHkgIT0gbnVsbCA/IHRoaXMuaG9zdE9ubHkgOiBcIj9cIjtcbiAgICAgICAgY29uc3QgY3JlYXRlQWdlID0gdGhpcy5jcmVhdGlvbiA/IGAke25vdyAtIHRoaXMuY3JlYXRpb24uZ2V0VGltZSgpfW1zYCA6IFwiP1wiO1xuICAgICAgICBjb25zdCBhY2Nlc3NBZ2UgPSB0aGlzLmxhc3RBY2Nlc3NlZCA/IGAke25vdyAtIHRoaXMubGFzdEFjY2Vzc2VkLmdldFRpbWUoKX1tc2AgOiBcIj9cIjtcbiAgICAgICAgcmV0dXJuIGBDb29raWU9XCIke3RoaXMudG9TdHJpbmcoKX07IGhvc3RPbmx5PSR7aG9zdE9ubHl9OyBhQWdlPSR7YWNjZXNzQWdlfTsgY0FnZT0ke2NyZWF0ZUFnZX1cImA7XG4gICAgICB9XG4gICAgICB0b0pTT04oKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgX0Nvb2tpZS5zZXJpYWxpemFibGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgaWYgKHRoaXNbcHJvcF0gPT09IGNvb2tpZURlZmF1bHRzW3Byb3BdKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByb3AgPT09IFwiZXhwaXJlc1wiIHx8IHByb3AgPT09IFwiY3JlYXRpb25cIiB8fCBwcm9wID09PSBcImxhc3RBY2Nlc3NlZFwiKSB7XG4gICAgICAgICAgICBpZiAodGhpc1twcm9wXSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBvYmpbcHJvcF0gPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JqW3Byb3BdID0gdGhpc1twcm9wXSA9PSBcIkluZmluaXR5XCIgPyBcIkluZmluaXR5XCIgOiB0aGlzW3Byb3BdLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9wID09PSBcIm1heEFnZVwiKSB7XG4gICAgICAgICAgICBpZiAodGhpc1twcm9wXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBvYmpbcHJvcF0gPSB0aGlzW3Byb3BdID09IEluZmluaXR5IHx8IHRoaXNbcHJvcF0gPT0gLUluZmluaXR5ID8gdGhpc1twcm9wXS50b1N0cmluZygpIDogdGhpc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXNbcHJvcF0gIT09IGNvb2tpZURlZmF1bHRzW3Byb3BdKSB7XG4gICAgICAgICAgICAgIG9ialtwcm9wXSA9IHRoaXNbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9XG4gICAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIGZyb21KU09OKHRoaXMudG9KU09OKCkpO1xuICAgICAgfVxuICAgICAgdmFsaWRhdGUoKSB7XG4gICAgICAgIGlmICghQ09PS0lFX09DVEVUUy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV4cGlyZXMgIT0gSW5maW5pdHkgJiYgISh0aGlzLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlKSAmJiAhcGFyc2VEYXRlKHRoaXMuZXhwaXJlcykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWF4QWdlICE9IG51bGwgJiYgdGhpcy5tYXhBZ2UgPD0gMCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXRoICE9IG51bGwgJiYgIVBBVEhfVkFMVUUudGVzdCh0aGlzLnBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNkb21haW4gPSB0aGlzLmNkb21haW4oKTtcbiAgICAgICAgaWYgKGNkb21haW4pIHtcbiAgICAgICAgICBpZiAoY2RvbWFpbi5tYXRjaCgvXFwuJC8pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHB1YnN1ZmZpeC5nZXRQdWJsaWNTdWZmaXgoY2RvbWFpbik7XG4gICAgICAgICAgaWYgKHN1ZmZpeCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgc2V0RXhwaXJlcyhleHApIHtcbiAgICAgICAgaWYgKGV4cCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICB0aGlzLmV4cGlyZXMgPSBleHA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5leHBpcmVzID0gcGFyc2VEYXRlKGV4cCkgfHwgXCJJbmZpbml0eVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXRNYXhBZ2UoYWdlKSB7XG4gICAgICAgIGlmIChhZ2UgPT09IEluZmluaXR5IHx8IGFnZSA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgdGhpcy5tYXhBZ2UgPSBhZ2UudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1heEFnZSA9IGFnZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29va2llU3RyaW5nKCkge1xuICAgICAgICBsZXQgdmFsID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgdmFsID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5rZXkgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmtleX09JHt2YWx9YDtcbiAgICAgIH1cbiAgICAgIC8vIGdpdmVzIFNldC1Db29raWUgaGVhZGVyIGZvcm1hdFxuICAgICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIGxldCBzdHIgPSB0aGlzLmNvb2tpZVN0cmluZygpO1xuICAgICAgICBpZiAodGhpcy5leHBpcmVzICE9IEluZmluaXR5KSB7XG4gICAgICAgICAgaWYgKHRoaXMuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHN0ciArPSBgOyBFeHBpcmVzPSR7Zm9ybWF0RGF0ZSh0aGlzLmV4cGlyZXMpfWA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0ciArPSBgOyBFeHBpcmVzPSR7dGhpcy5leHBpcmVzfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1heEFnZSAhPSBudWxsICYmIHRoaXMubWF4QWdlICE9IEluZmluaXR5KSB7XG4gICAgICAgICAgc3RyICs9IGA7IE1heC1BZ2U9JHt0aGlzLm1heEFnZX1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRvbWFpbiAmJiAhdGhpcy5ob3N0T25seSkge1xuICAgICAgICAgIHN0ciArPSBgOyBEb21haW49JHt0aGlzLmRvbWFpbn1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgICAgICBzdHIgKz0gYDsgUGF0aD0ke3RoaXMucGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlY3VyZSkge1xuICAgICAgICAgIHN0ciArPSBcIjsgU2VjdXJlXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaHR0cE9ubHkpIHtcbiAgICAgICAgICBzdHIgKz0gXCI7IEh0dHBPbmx5XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2FtZVNpdGUgJiYgdGhpcy5zYW1lU2l0ZSAhPT0gXCJub25lXCIpIHtcbiAgICAgICAgICBjb25zdCBzc0Nhbm9uID0gX0Nvb2tpZS5zYW1lU2l0ZUNhbm9uaWNhbFt0aGlzLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCldO1xuICAgICAgICAgIHN0ciArPSBgOyBTYW1lU2l0ZT0ke3NzQ2Fub24gPyBzc0Nhbm9uIDogdGhpcy5zYW1lU2l0ZX1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV4dGVuc2lvbnMpIHtcbiAgICAgICAgICB0aGlzLmV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0KSA9PiB7XG4gICAgICAgICAgICBzdHIgKz0gYDsgJHtleHR9YDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgfVxuICAgICAgLy8gVFRMKCkgcGFydGlhbGx5IHJlcGxhY2VzIHRoZSBcImV4cGlyeS10aW1lXCIgcGFydHMgb2YgUzUuMyBzdGVwIDMgKHNldENvb2tpZSgpXG4gICAgICAvLyBlbHNld2hlcmUpXG4gICAgICAvLyBTNS4zIHNheXMgdG8gZ2l2ZSB0aGUgXCJsYXRlc3QgcmVwcmVzZW50YWJsZSBkYXRlXCIgZm9yIHdoaWNoIHdlIHVzZSBJbmZpbml0eVxuICAgICAgLy8gRm9yIFwiZXhwaXJlZFwiIHdlIHVzZSAwXG4gICAgICBUVEwobm93KSB7XG4gICAgICAgIGlmICh0aGlzLm1heEFnZSAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubWF4QWdlIDw9IDAgPyAwIDogdGhpcy5tYXhBZ2UgKiAxZTM7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGV4cGlyZXMgPSB0aGlzLmV4cGlyZXM7XG4gICAgICAgIGlmIChleHBpcmVzICE9IEluZmluaXR5KSB7XG4gICAgICAgICAgaWYgKCEoZXhwaXJlcyBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICBleHBpcmVzID0gcGFyc2VEYXRlKGV4cGlyZXMpIHx8IEluZmluaXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwaXJlcyA9PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZXhwaXJlcy5nZXRUaW1lKCkgLSAobm93IHx8IERhdGUubm93KCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBJbmZpbml0eTtcbiAgICAgIH1cbiAgICAgIC8vIGV4cGlyeVRpbWUoKSByZXBsYWNlcyB0aGUgXCJleHBpcnktdGltZVwiIHBhcnRzIG9mIFM1LjMgc3RlcCAzIChzZXRDb29raWUoKVxuICAgICAgLy8gZWxzZXdoZXJlKVxuICAgICAgZXhwaXJ5VGltZShub3cpIHtcbiAgICAgICAgaWYgKHRoaXMubWF4QWdlICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGl2ZVRvID0gbm93IHx8IHRoaXMuY3JlYXRpb24gfHwgLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgICAgICAgY29uc3QgYWdlID0gdGhpcy5tYXhBZ2UgPD0gMCA/IC1JbmZpbml0eSA6IHRoaXMubWF4QWdlICogMWUzO1xuICAgICAgICAgIHJldHVybiByZWxhdGl2ZVRvLmdldFRpbWUoKSArIGFnZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leHBpcmVzID09IEluZmluaXR5KSB7XG4gICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGlyZXMuZ2V0VGltZSgpO1xuICAgICAgfVxuICAgICAgLy8gZXhwaXJ5RGF0ZSgpIHJlcGxhY2VzIHRoZSBcImV4cGlyeS10aW1lXCIgcGFydHMgb2YgUzUuMyBzdGVwIDMgKHNldENvb2tpZSgpXG4gICAgICAvLyBlbHNld2hlcmUpLCBleGNlcHQgaXQgcmV0dXJucyBhIERhdGVcbiAgICAgIGV4cGlyeURhdGUobm93KSB7XG4gICAgICAgIGNvbnN0IG1pbGxpc2VjID0gdGhpcy5leHBpcnlUaW1lKG5vdyk7XG4gICAgICAgIGlmIChtaWxsaXNlYyA9PSBJbmZpbml0eSkge1xuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShNQVhfVElNRSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWlsbGlzZWMgPT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE1JTl9USU1FKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUobWlsbGlzZWMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBUaGlzIHJlcGxhY2VzIHRoZSBcInBlcnNpc3RlbnQtZmxhZ1wiIHBhcnRzIG9mIFM1LjMgc3RlcCAzXG4gICAgICBpc1BlcnNpc3RlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heEFnZSAhPSBudWxsIHx8IHRoaXMuZXhwaXJlcyAhPSBJbmZpbml0eTtcbiAgICAgIH1cbiAgICAgIC8vIE1vc3RseSBTNS4xLjIgYW5kIFM1LjIuMzpcbiAgICAgIGNhbm9uaWNhbGl6ZWREb21haW4oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbWFpbiA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbm9uaWNhbERvbWFpbih0aGlzLmRvbWFpbik7XG4gICAgICB9XG4gICAgICBjZG9tYWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5vbmljYWxpemVkRG9tYWluKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBDb29raWUuY29va2llc0NyZWF0ZWQgPSAwO1xuICAgIENvb2tpZS5wYXJzZSA9IHBhcnNlO1xuICAgIENvb2tpZS5mcm9tSlNPTiA9IGZyb21KU09OO1xuICAgIENvb2tpZS5zZXJpYWxpemFibGVQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoY29va2llRGVmYXVsdHMpO1xuICAgIENvb2tpZS5zYW1lU2l0ZUxldmVsID0ge1xuICAgICAgc3RyaWN0OiAzLFxuICAgICAgbGF4OiAyLFxuICAgICAgbm9uZTogMVxuICAgIH07XG4gICAgQ29va2llLnNhbWVTaXRlQ2Fub25pY2FsID0ge1xuICAgICAgc3RyaWN0OiBcIlN0cmljdFwiLFxuICAgICAgbGF4OiBcIkxheFwiXG4gICAgfTtcbiAgICBmdW5jdGlvbiBnZXROb3JtYWxpemVkUHJlZml4U2VjdXJpdHkocHJlZml4U2VjdXJpdHkpIHtcbiAgICAgIGlmIChwcmVmaXhTZWN1cml0eSAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmVmaXhTZWN1cml0eSA9IHByZWZpeFNlY3VyaXR5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHN3aXRjaCAobm9ybWFsaXplZFByZWZpeFNlY3VyaXR5KSB7XG4gICAgICAgICAgY2FzZSBQcmVmaXhTZWN1cml0eUVudW0uU1RSSUNUOlxuICAgICAgICAgIGNhc2UgUHJlZml4U2VjdXJpdHlFbnVtLlNJTEVOVDpcbiAgICAgICAgICBjYXNlIFByZWZpeFNlY3VyaXR5RW51bS5ESVNBQkxFRDpcbiAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkUHJlZml4U2VjdXJpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBQcmVmaXhTZWN1cml0eUVudW0uU0lMRU5UO1xuICAgIH1cbiAgICB2YXIgQ29va2llSmFyID0gY2xhc3MgX0Nvb2tpZUphciB7XG4gICAgICBjb25zdHJ1Y3RvcihzdG9yZSwgb3B0aW9ucyA9IHsgcmVqZWN0UHVibGljU3VmZml4ZXM6IHRydWUgfSkge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgb3B0aW9ucyA9IHsgcmVqZWN0UHVibGljU3VmZml4ZXM6IG9wdGlvbnMgfTtcbiAgICAgICAgfVxuICAgICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNPYmplY3Qob3B0aW9ucyksIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnJlamVjdFB1YmxpY1N1ZmZpeGVzID0gb3B0aW9ucy5yZWplY3RQdWJsaWNTdWZmaXhlcztcbiAgICAgICAgdGhpcy5lbmFibGVMb29zZU1vZGUgPSAhIW9wdGlvbnMubG9vc2VNb2RlO1xuICAgICAgICB0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbiA9IHR5cGVvZiBvcHRpb25zLmFsbG93U3BlY2lhbFVzZURvbWFpbiA9PT0gXCJib29sZWFuXCIgPyBvcHRpb25zLmFsbG93U3BlY2lhbFVzZURvbWFpbiA6IHRydWU7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZSB8fCBuZXcgTWVtb3J5Q29va2llU3RvcmUoKTtcbiAgICAgICAgdGhpcy5wcmVmaXhTZWN1cml0eSA9IGdldE5vcm1hbGl6ZWRQcmVmaXhTZWN1cml0eShvcHRpb25zLnByZWZpeFNlY3VyaXR5KTtcbiAgICAgICAgdGhpcy5fY2xvbmVTeW5jID0gc3luY1dyYXAoXCJjbG9uZVwiKTtcbiAgICAgICAgdGhpcy5faW1wb3J0Q29va2llc1N5bmMgPSBzeW5jV3JhcChcIl9pbXBvcnRDb29raWVzXCIpO1xuICAgICAgICB0aGlzLmdldENvb2tpZXNTeW5jID0gc3luY1dyYXAoXCJnZXRDb29raWVzXCIpO1xuICAgICAgICB0aGlzLmdldENvb2tpZVN0cmluZ1N5bmMgPSBzeW5jV3JhcChcImdldENvb2tpZVN0cmluZ1wiKTtcbiAgICAgICAgdGhpcy5nZXRTZXRDb29raWVTdHJpbmdzU3luYyA9IHN5bmNXcmFwKFwiZ2V0U2V0Q29va2llU3RyaW5nc1wiKTtcbiAgICAgICAgdGhpcy5yZW1vdmVBbGxDb29raWVzU3luYyA9IHN5bmNXcmFwKFwicmVtb3ZlQWxsQ29va2llc1wiKTtcbiAgICAgICAgdGhpcy5zZXRDb29raWVTeW5jID0gc3luY1dyYXAoXCJzZXRDb29raWVcIik7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplU3luYyA9IHN5bmNXcmFwKFwic2VyaWFsaXplXCIpO1xuICAgICAgfVxuICAgICAgc2V0Q29va2llKGNvb2tpZSwgdXJsLCBvcHRpb25zLCBjYikge1xuICAgICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNVcmxTdHJpbmdPck9iamVjdCh1cmwpLCBjYiwgb3B0aW9ucyk7XG4gICAgICAgIGxldCBlcnI7XG4gICAgICAgIGlmICh2YWxpZGF0b3JzLmlzRnVuY3Rpb24odXJsKSkge1xuICAgICAgICAgIGNiID0gdXJsO1xuICAgICAgICAgIHJldHVybiBjYihuZXcgRXJyb3IoXCJObyBVUkwgd2FzIHNwZWNpZmllZFwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGV4dCA9IGdldENvb2tpZUNvbnRleHQodXJsKTtcbiAgICAgICAgaWYgKHZhbGlkYXRvcnMuaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgICAgICAgIGNiID0gb3B0aW9ucztcbiAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdmFsaWRhdG9ycy52YWxpZGF0ZSh2YWxpZGF0b3JzLmlzRnVuY3Rpb24oY2IpLCBjYik7XG4gICAgICAgIGlmICghdmFsaWRhdG9ycy5pc05vbkVtcHR5U3RyaW5nKGNvb2tpZSkgJiYgIXZhbGlkYXRvcnMuaXNPYmplY3QoY29va2llKSAmJiBjb29raWUgaW5zdGFuY2VvZiBTdHJpbmcgJiYgY29va2llLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGNiKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhvc3QgPSBjYW5vbmljYWxEb21haW4oY29udGV4dC5ob3N0bmFtZSk7XG4gICAgICAgIGNvbnN0IGxvb3NlID0gb3B0aW9ucy5sb29zZSB8fCB0aGlzLmVuYWJsZUxvb3NlTW9kZTtcbiAgICAgICAgbGV0IHNhbWVTaXRlQ29udGV4dCA9IG51bGw7XG4gICAgICAgIGlmIChvcHRpb25zLnNhbWVTaXRlQ29udGV4dCkge1xuICAgICAgICAgIHNhbWVTaXRlQ29udGV4dCA9IGNoZWNrU2FtZVNpdGVDb250ZXh0KG9wdGlvbnMuc2FtZVNpdGVDb250ZXh0KTtcbiAgICAgICAgICBpZiAoIXNhbWVTaXRlQ29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGNiKG5ldyBFcnJvcihTQU1FX1NJVEVfQ09OVEVYVF9WQUxfRVJSKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgY29va2llID09PSBcInN0cmluZ1wiIHx8IGNvb2tpZSBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgIGNvb2tpZSA9IENvb2tpZS5wYXJzZShjb29raWUsIHsgbG9vc2UgfSk7XG4gICAgICAgICAgaWYgKCFjb29raWUpIHtcbiAgICAgICAgICAgIGVyciA9IG5ldyBFcnJvcihcIkNvb2tpZSBmYWlsZWQgdG8gcGFyc2VcIik7XG4gICAgICAgICAgICByZXR1cm4gY2Iob3B0aW9ucy5pZ25vcmVFcnJvciA/IG51bGwgOiBlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghKGNvb2tpZSBpbnN0YW5jZW9mIENvb2tpZSkpIHtcbiAgICAgICAgICBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcIkZpcnN0IGFyZ3VtZW50IHRvIHNldENvb2tpZSBtdXN0IGJlIGEgQ29va2llIG9iamVjdCBvciBzdHJpbmdcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGNiKG9wdGlvbnMuaWdub3JlRXJyb3IgPyBudWxsIDogZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3cgPSBvcHRpb25zLm5vdyB8fCAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMucmVqZWN0UHVibGljU3VmZml4ZXMgJiYgY29va2llLmRvbWFpbikge1xuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHB1YnN1ZmZpeC5nZXRQdWJsaWNTdWZmaXgoY29va2llLmNkb21haW4oKSwge1xuICAgICAgICAgICAgYWxsb3dTcGVjaWFsVXNlRG9tYWluOiB0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbixcbiAgICAgICAgICAgIGlnbm9yZUVycm9yOiBvcHRpb25zLmlnbm9yZUVycm9yXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHN1ZmZpeCA9PSBudWxsICYmICFJUF9WNl9SRUdFWF9PQkpFQ1QudGVzdChjb29raWUuZG9tYWluKSkge1xuICAgICAgICAgICAgZXJyID0gbmV3IEVycm9yKFwiQ29va2llIGhhcyBkb21haW4gc2V0IHRvIGEgcHVibGljIHN1ZmZpeFwiKTtcbiAgICAgICAgICAgIHJldHVybiBjYihvcHRpb25zLmlnbm9yZUVycm9yID8gbnVsbCA6IGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb29raWUuZG9tYWluKSB7XG4gICAgICAgICAgaWYgKCFkb21haW5NYXRjaChob3N0LCBjb29raWUuY2RvbWFpbigpLCBmYWxzZSkpIHtcbiAgICAgICAgICAgIGVyciA9IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYENvb2tpZSBub3QgaW4gdGhpcyBob3N0J3MgZG9tYWluLiBDb29raWU6JHtjb29raWUuY2RvbWFpbigpfSBSZXF1ZXN0OiR7aG9zdH1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIGNiKG9wdGlvbnMuaWdub3JlRXJyb3IgPyBudWxsIDogZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvb2tpZS5ob3N0T25seSA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb29raWUuaG9zdE9ubHkgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29va2llLmhvc3RPbmx5ID0gdHJ1ZTtcbiAgICAgICAgICBjb29raWUuZG9tYWluID0gaG9zdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvb2tpZS5wYXRoIHx8IGNvb2tpZS5wYXRoWzBdICE9PSBcIi9cIikge1xuICAgICAgICAgIGNvb2tpZS5wYXRoID0gZGVmYXVsdFBhdGgoY29udGV4dC5wYXRobmFtZSk7XG4gICAgICAgICAgY29va2llLnBhdGhJc0RlZmF1bHQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmh0dHAgPT09IGZhbHNlICYmIGNvb2tpZS5odHRwT25seSkge1xuICAgICAgICAgIGVyciA9IG5ldyBFcnJvcihcIkNvb2tpZSBpcyBIdHRwT25seSBhbmQgdGhpcyBpc24ndCBhbiBIVFRQIEFQSVwiKTtcbiAgICAgICAgICByZXR1cm4gY2Iob3B0aW9ucy5pZ25vcmVFcnJvciA/IG51bGwgOiBlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb29raWUuc2FtZVNpdGUgIT09IFwibm9uZVwiICYmIGNvb2tpZS5zYW1lU2l0ZSAhPT0gdm9pZCAwICYmIHNhbWVTaXRlQ29udGV4dCkge1xuICAgICAgICAgIGlmIChzYW1lU2l0ZUNvbnRleHQgPT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgICBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIFwiQ29va2llIGlzIFNhbWVTaXRlIGJ1dCB0aGlzIGlzIGEgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBjYihvcHRpb25zLmlnbm9yZUVycm9yID8gbnVsbCA6IGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlnbm9yZUVycm9yRm9yUHJlZml4U2VjdXJpdHkgPSB0aGlzLnByZWZpeFNlY3VyaXR5ID09PSBQcmVmaXhTZWN1cml0eUVudW0uU0lMRU5UO1xuICAgICAgICBjb25zdCBwcmVmaXhTZWN1cml0eURpc2FibGVkID0gdGhpcy5wcmVmaXhTZWN1cml0eSA9PT0gUHJlZml4U2VjdXJpdHlFbnVtLkRJU0FCTEVEO1xuICAgICAgICBpZiAoIXByZWZpeFNlY3VyaXR5RGlzYWJsZWQpIHtcbiAgICAgICAgICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICAgIGxldCBlcnJvck1zZztcbiAgICAgICAgICBpZiAoIWlzU2VjdXJlUHJlZml4Q29uZGl0aW9uTWV0KGNvb2tpZSkpIHtcbiAgICAgICAgICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgZXJyb3JNc2cgPSBcIkNvb2tpZSBoYXMgX19TZWN1cmUgcHJlZml4IGJ1dCBTZWN1cmUgYXR0cmlidXRlIGlzIG5vdCBzZXRcIjtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFpc0hvc3RQcmVmaXhDb25kaXRpb25NZXQoY29va2llKSkge1xuICAgICAgICAgICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICBlcnJvck1zZyA9IFwiQ29va2llIGhhcyBfX0hvc3QgcHJlZml4IGJ1dCBlaXRoZXIgU2VjdXJlIG9yIEhvc3RPbmx5IGF0dHJpYnV0ZSBpcyBub3Qgc2V0IG9yIFBhdGggaXMgbm90ICcvJ1wiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3JGb3VuZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNiKFxuICAgICAgICAgICAgICBvcHRpb25zLmlnbm9yZUVycm9yIHx8IGlnbm9yZUVycm9yRm9yUHJlZml4U2VjdXJpdHkgPyBudWxsIDogbmV3IEVycm9yKGVycm9yTXNnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RvcmUgPSB0aGlzLnN0b3JlO1xuICAgICAgICBpZiAoIXN0b3JlLnVwZGF0ZUNvb2tpZSkge1xuICAgICAgICAgIHN0b3JlLnVwZGF0ZUNvb2tpZSA9IGZ1bmN0aW9uKG9sZENvb2tpZSwgbmV3Q29va2llLCBjYjIpIHtcbiAgICAgICAgICAgIHRoaXMucHV0Q29va2llKG5ld0Nvb2tpZSwgY2IyKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHdpdGhDb29raWUoZXJyMiwgb2xkQ29va2llKSB7XG4gICAgICAgICAgaWYgKGVycjIpIHtcbiAgICAgICAgICAgIHJldHVybiBjYihlcnIyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV4dCA9IGZ1bmN0aW9uKGVycjMpIHtcbiAgICAgICAgICAgIGlmIChlcnIzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjYihlcnIzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNiKG51bGwsIGNvb2tpZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAob2xkQ29va2llKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5odHRwID09PSBmYWxzZSAmJiBvbGRDb29raWUuaHR0cE9ubHkpIHtcbiAgICAgICAgICAgICAgZXJyMiA9IG5ldyBFcnJvcihcIm9sZCBDb29raWUgaXMgSHR0cE9ubHkgYW5kIHRoaXMgaXNuJ3QgYW4gSFRUUCBBUElcIik7XG4gICAgICAgICAgICAgIHJldHVybiBjYihvcHRpb25zLmlnbm9yZUVycm9yID8gbnVsbCA6IGVycjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29va2llLmNyZWF0aW9uID0gb2xkQ29va2llLmNyZWF0aW9uO1xuICAgICAgICAgICAgY29va2llLmNyZWF0aW9uSW5kZXggPSBvbGRDb29raWUuY3JlYXRpb25JbmRleDtcbiAgICAgICAgICAgIGNvb2tpZS5sYXN0QWNjZXNzZWQgPSBub3c7XG4gICAgICAgICAgICBzdG9yZS51cGRhdGVDb29raWUob2xkQ29va2llLCBjb29raWUsIG5leHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb29raWUuY3JlYXRpb24gPSBjb29raWUubGFzdEFjY2Vzc2VkID0gbm93O1xuICAgICAgICAgICAgc3RvcmUucHV0Q29va2llKGNvb2tpZSwgbmV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0b3JlLmZpbmRDb29raWUoY29va2llLmRvbWFpbiwgY29va2llLnBhdGgsIGNvb2tpZS5rZXksIHdpdGhDb29raWUpO1xuICAgICAgfVxuICAgICAgLy8gUkZDNjM2NSBTNS40XG4gICAgICBnZXRDb29raWVzKHVybCwgb3B0aW9ucywgY2IpIHtcbiAgICAgICAgdmFsaWRhdG9ycy52YWxpZGF0ZSh2YWxpZGF0b3JzLmlzVXJsU3RyaW5nT3JPYmplY3QodXJsKSwgY2IsIHVybCk7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb29raWVDb250ZXh0KHVybCk7XG4gICAgICAgIGlmICh2YWxpZGF0b3JzLmlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICAgICAgICBjYiA9IG9wdGlvbnM7XG4gICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc09iamVjdChvcHRpb25zKSwgY2IsIG9wdGlvbnMpO1xuICAgICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNGdW5jdGlvbihjYiksIGNiKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IGNhbm9uaWNhbERvbWFpbihjb250ZXh0Lmhvc3RuYW1lKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IGNvbnRleHQucGF0aG5hbWUgfHwgXCIvXCI7XG4gICAgICAgIGxldCBzZWN1cmUgPSBvcHRpb25zLnNlY3VyZTtcbiAgICAgICAgaWYgKHNlY3VyZSA9PSBudWxsICYmIGNvbnRleHQucHJvdG9jb2wgJiYgKGNvbnRleHQucHJvdG9jb2wgPT0gXCJodHRwczpcIiB8fCBjb250ZXh0LnByb3RvY29sID09IFwid3NzOlwiKSkge1xuICAgICAgICAgIHNlY3VyZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNhbWVTaXRlTGV2ZWwgPSAwO1xuICAgICAgICBpZiAob3B0aW9ucy5zYW1lU2l0ZUNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCBzYW1lU2l0ZUNvbnRleHQgPSBjaGVja1NhbWVTaXRlQ29udGV4dChvcHRpb25zLnNhbWVTaXRlQ29udGV4dCk7XG4gICAgICAgICAgc2FtZVNpdGVMZXZlbCA9IENvb2tpZS5zYW1lU2l0ZUxldmVsW3NhbWVTaXRlQ29udGV4dF07XG4gICAgICAgICAgaWYgKCFzYW1lU2l0ZUxldmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IobmV3IEVycm9yKFNBTUVfU0lURV9DT05URVhUX1ZBTF9FUlIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGh0dHAgPSBvcHRpb25zLmh0dHA7XG4gICAgICAgIGlmIChodHRwID09IG51bGwpIHtcbiAgICAgICAgICBodHRwID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3cgPSBvcHRpb25zLm5vdyB8fCBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBleHBpcmVDaGVjayA9IG9wdGlvbnMuZXhwaXJlICE9PSBmYWxzZTtcbiAgICAgICAgY29uc3QgYWxsUGF0aHMgPSAhIW9wdGlvbnMuYWxsUGF0aHM7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgZnVuY3Rpb24gbWF0Y2hpbmdDb29raWUoYykge1xuICAgICAgICAgIGlmIChjLmhvc3RPbmx5KSB7XG4gICAgICAgICAgICBpZiAoYy5kb21haW4gIT0gaG9zdCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZG9tYWluTWF0Y2goaG9zdCwgYy5kb21haW4sIGZhbHNlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghYWxsUGF0aHMgJiYgIXBhdGhNYXRjaChwYXRoLCBjLnBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjLnNlY3VyZSAmJiAhc2VjdXJlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjLmh0dHBPbmx5ICYmICFodHRwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzYW1lU2l0ZUxldmVsKSB7XG4gICAgICAgICAgICBjb25zdCBjb29raWVMZXZlbCA9IENvb2tpZS5zYW1lU2l0ZUxldmVsW2Muc2FtZVNpdGUgfHwgXCJub25lXCJdO1xuICAgICAgICAgICAgaWYgKGNvb2tpZUxldmVsID4gc2FtZVNpdGVMZXZlbCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHBpcmVDaGVjayAmJiBjLmV4cGlyeVRpbWUoKSA8PSBub3cpIHtcbiAgICAgICAgICAgIHN0b3JlLnJlbW92ZUNvb2tpZShjLmRvbWFpbiwgYy5wYXRoLCBjLmtleSwgKCkgPT4ge1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN0b3JlLmZpbmRDb29raWVzKFxuICAgICAgICAgIGhvc3QsXG4gICAgICAgICAgYWxsUGF0aHMgPyBudWxsIDogcGF0aCxcbiAgICAgICAgICB0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbixcbiAgICAgICAgICAoZXJyLCBjb29raWVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29va2llcyA9IGNvb2tpZXMuZmlsdGVyKG1hdGNoaW5nQ29va2llKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNvcnQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGNvb2tpZXMgPSBjb29raWVzLnNvcnQoY29va2llQ29tcGFyZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBub3cyID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBjb29raWVzKSB7XG4gICAgICAgICAgICAgIGNvb2tpZS5sYXN0QWNjZXNzZWQgPSBub3cyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2IobnVsbCwgY29va2llcyk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZ2V0Q29va2llU3RyaW5nKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY2IgPSBhcmdzLnBvcCgpO1xuICAgICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNGdW5jdGlvbihjYiksIGNiKTtcbiAgICAgICAgY29uc3QgbmV4dCA9IGZ1bmN0aW9uKGVyciwgY29va2llcykge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGNiKGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNiKFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICBjb29raWVzLnNvcnQoY29va2llQ29tcGFyZSkubWFwKChjKSA9PiBjLmNvb2tpZVN0cmluZygpKS5qb2luKFwiOyBcIilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBhcmdzLnB1c2gobmV4dCk7XG4gICAgICAgIHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIGdldFNldENvb2tpZVN0cmluZ3MoLi4uYXJncykge1xuICAgICAgICBjb25zdCBjYiA9IGFyZ3MucG9wKCk7XG4gICAgICAgIHZhbGlkYXRvcnMudmFsaWRhdGUodmFsaWRhdG9ycy5pc0Z1bmN0aW9uKGNiKSwgY2IpO1xuICAgICAgICBjb25zdCBuZXh0ID0gZnVuY3Rpb24oZXJyLCBjb29raWVzKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgY2IoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2IoXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIGNvb2tpZXMubWFwKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGMudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBhcmdzLnB1c2gobmV4dCk7XG4gICAgICAgIHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHNlcmlhbGl6ZShjYikge1xuICAgICAgICB2YWxpZGF0b3JzLnZhbGlkYXRlKHZhbGlkYXRvcnMuaXNGdW5jdGlvbihjYiksIGNiKTtcbiAgICAgICAgbGV0IHR5cGUgPSB0aGlzLnN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIGlmICh2YWxpZGF0b3JzLmlzT2JqZWN0KHR5cGUpKSB7XG4gICAgICAgICAgdHlwZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHtcbiAgICAgICAgICAvLyBUaGUgdmVyc2lvbiBvZiB0b3VnaC1jb29raWUgdGhhdCBzZXJpYWxpemVkIHRoaXMgamFyLiBHZW5lcmFsbHkgYSBnb29kXG4gICAgICAgICAgLy8gcHJhY3RpY2Ugc2luY2UgZnV0dXJlIHZlcnNpb25zIGNhbiBtYWtlIGRhdGEgaW1wb3J0IGRlY2lzaW9ucyBiYXNlZCBvblxuICAgICAgICAgIC8vIGtub3duIHBhc3QgYmVoYXZpb3IuIFdoZW4vaWYgdGhpcyBtYXR0ZXJzLCB1c2UgYHNlbXZlcmAuXG4gICAgICAgICAgdmVyc2lvbjogYHRvdWdoLWNvb2tpZUAke1ZFUlNJT059YCxcbiAgICAgICAgICAvLyBhZGQgdGhlIHN0b3JlIHR5cGUsIHRvIG1ha2UgaHVtYW5zIGhhcHB5OlxuICAgICAgICAgIHN0b3JlVHlwZTogdHlwZSxcbiAgICAgICAgICAvLyBDb29raWVKYXIgY29uZmlndXJhdGlvbjpcbiAgICAgICAgICByZWplY3RQdWJsaWNTdWZmaXhlczogISF0aGlzLnJlamVjdFB1YmxpY1N1ZmZpeGVzLFxuICAgICAgICAgIGVuYWJsZUxvb3NlTW9kZTogISF0aGlzLmVuYWJsZUxvb3NlTW9kZSxcbiAgICAgICAgICBhbGxvd1NwZWNpYWxVc2VEb21haW46ICEhdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW4sXG4gICAgICAgICAgcHJlZml4U2VjdXJpdHk6IGdldE5vcm1hbGl6ZWRQcmVmaXhTZWN1cml0eSh0aGlzLnByZWZpeFNlY3VyaXR5KSxcbiAgICAgICAgICAvLyB0aGlzIGdldHMgZmlsbGVkIGZyb20gZ2V0QWxsQ29va2llczpcbiAgICAgICAgICBjb29raWVzOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoISh0aGlzLnN0b3JlLmdldEFsbENvb2tpZXMgJiYgdHlwZW9mIHRoaXMuc3RvcmUuZ2V0QWxsQ29va2llcyA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgICAgICAgIHJldHVybiBjYihcbiAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJzdG9yZSBkb2VzIG5vdCBzdXBwb3J0IGdldEFsbENvb2tpZXMgYW5kIGNhbm5vdCBiZSBzZXJpYWxpemVkXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcmUuZ2V0QWxsQ29va2llcygoZXJyLCBjb29raWVzKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlcmlhbGl6ZWQuY29va2llcyA9IGNvb2tpZXMubWFwKChjb29raWUpID0+IHtcbiAgICAgICAgICAgIGNvb2tpZSA9IGNvb2tpZSBpbnN0YW5jZW9mIENvb2tpZSA/IGNvb2tpZS50b0pTT04oKSA6IGNvb2tpZTtcbiAgICAgICAgICAgIGRlbGV0ZSBjb29raWUuY3JlYXRpb25JbmRleDtcbiAgICAgICAgICAgIHJldHVybiBjb29raWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGNiKG51bGwsIHNlcmlhbGl6ZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplU3luYygpO1xuICAgICAgfVxuICAgICAgLy8gdXNlIHRoZSBjbGFzcyBtZXRob2QgQ29va2llSmFyLmRlc2VyaWFsaXplIGluc3RlYWQgb2YgY2FsbGluZyB0aGlzIGRpcmVjdGx5XG4gICAgICBfaW1wb3J0Q29va2llcyhzZXJpYWxpemVkLCBjYikge1xuICAgICAgICBsZXQgY29va2llcyA9IHNlcmlhbGl6ZWQuY29va2llcztcbiAgICAgICAgaWYgKCFjb29raWVzIHx8ICFBcnJheS5pc0FycmF5KGNvb2tpZXMpKSB7XG4gICAgICAgICAgcmV0dXJuIGNiKG5ldyBFcnJvcihcInNlcmlhbGl6ZWQgamFyIGhhcyBubyBjb29raWVzIGFycmF5XCIpKTtcbiAgICAgICAgfVxuICAgICAgICBjb29raWVzID0gY29va2llcy5zbGljZSgpO1xuICAgICAgICBjb25zdCBwdXROZXh0ID0gKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IoZXJyLCB0aGlzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IGNvb2tpZTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29va2llID0gZnJvbUpTT04oY29va2llcy5zaGlmdCgpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IoZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb29raWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBwdXROZXh0KG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnN0b3JlLnB1dENvb2tpZShjb29raWUsIHB1dE5leHQpO1xuICAgICAgICB9O1xuICAgICAgICBwdXROZXh0KCk7XG4gICAgICB9XG4gICAgICBjbG9uZShuZXdTdG9yZSwgY2IpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjYiA9IG5ld1N0b3JlO1xuICAgICAgICAgIG5ld1N0b3JlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlcmlhbGl6ZSgoZXJyLCBzZXJpYWxpemVkKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9Db29raWVKYXIuZGVzZXJpYWxpemUoc2VyaWFsaXplZCwgbmV3U3RvcmUsIGNiKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjbG9uZVN5bmMobmV3U3RvcmUpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fY2xvbmVTeW5jKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFuZXdTdG9yZS5zeW5jaHJvbm91cykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiQ29va2llSmFyIGNsb25lIGRlc3RpbmF0aW9uIHN0b3JlIGlzIG5vdCBzeW5jaHJvbm91czsgdXNlIGFzeW5jIEFQSSBpbnN0ZWFkLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fY2xvbmVTeW5jKG5ld1N0b3JlKTtcbiAgICAgIH1cbiAgICAgIHJlbW92ZUFsbENvb2tpZXMoY2IpIHtcbiAgICAgICAgdmFsaWRhdG9ycy52YWxpZGF0ZSh2YWxpZGF0b3JzLmlzRnVuY3Rpb24oY2IpLCBjYik7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdG9yZS5yZW1vdmVBbGxDb29raWVzID09PSBcImZ1bmN0aW9uXCIgJiYgc3RvcmUucmVtb3ZlQWxsQ29va2llcyAhPT0gU3RvcmUucHJvdG90eXBlLnJlbW92ZUFsbENvb2tpZXMpIHtcbiAgICAgICAgICByZXR1cm4gc3RvcmUucmVtb3ZlQWxsQ29va2llcyhjYik7XG4gICAgICAgIH1cbiAgICAgICAgc3RvcmUuZ2V0QWxsQ29va2llcygoZXJyLCBjb29raWVzKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb29raWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgY29tcGxldGVkQ291bnQgPSAwO1xuICAgICAgICAgIGNvbnN0IHJlbW92ZUVycm9ycyA9IFtdO1xuICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUNvb2tpZUNiKHJlbW92ZUVycikge1xuICAgICAgICAgICAgaWYgKHJlbW92ZUVycikge1xuICAgICAgICAgICAgICByZW1vdmVFcnJvcnMucHVzaChyZW1vdmVFcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcGxldGVkQ291bnQrKztcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWRDb3VudCA9PT0gY29va2llcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNiKHJlbW92ZUVycm9ycy5sZW5ndGggPyByZW1vdmVFcnJvcnNbMF0gOiBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29va2llcy5mb3JFYWNoKChjb29raWUpID0+IHtcbiAgICAgICAgICAgIHN0b3JlLnJlbW92ZUNvb2tpZShcbiAgICAgICAgICAgICAgY29va2llLmRvbWFpbixcbiAgICAgICAgICAgICAgY29va2llLnBhdGgsXG4gICAgICAgICAgICAgIGNvb2tpZS5rZXksXG4gICAgICAgICAgICAgIHJlbW92ZUNvb2tpZUNiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHN0YXRpYyBkZXNlcmlhbGl6ZShzdHJPck9iaiwgc3RvcmUsIGNiKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgICAgY2IgPSBzdG9yZTtcbiAgICAgICAgICBzdG9yZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFsaWRhdG9ycy52YWxpZGF0ZSh2YWxpZGF0b3JzLmlzRnVuY3Rpb24oY2IpLCBjYik7XG4gICAgICAgIGxldCBzZXJpYWxpemVkO1xuICAgICAgICBpZiAodHlwZW9mIHN0ck9yT2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgc2VyaWFsaXplZCA9IGpzb25QYXJzZShzdHJPck9iaik7XG4gICAgICAgICAgaWYgKHNlcmlhbGl6ZWQgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKHNlcmlhbGl6ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXJpYWxpemVkID0gc3RyT3JPYmo7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgamFyID0gbmV3IF9Db29raWVKYXIoc3RvcmUsIHtcbiAgICAgICAgICByZWplY3RQdWJsaWNTdWZmaXhlczogc2VyaWFsaXplZC5yZWplY3RQdWJsaWNTdWZmaXhlcyxcbiAgICAgICAgICBsb29zZU1vZGU6IHNlcmlhbGl6ZWQuZW5hYmxlTG9vc2VNb2RlLFxuICAgICAgICAgIGFsbG93U3BlY2lhbFVzZURvbWFpbjogc2VyaWFsaXplZC5hbGxvd1NwZWNpYWxVc2VEb21haW4sXG4gICAgICAgICAgcHJlZml4U2VjdXJpdHk6IHNlcmlhbGl6ZWQucHJlZml4U2VjdXJpdHlcbiAgICAgICAgfSk7XG4gICAgICAgIGphci5faW1wb3J0Q29va2llcyhzZXJpYWxpemVkLCAoZXJyKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNiKG51bGwsIGphcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgc3RhdGljIGRlc2VyaWFsaXplU3luYyhzdHJPck9iaiwgc3RvcmUpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR5cGVvZiBzdHJPck9iaiA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2Uoc3RyT3JPYmopIDogc3RyT3JPYmo7XG4gICAgICAgIGNvbnN0IGphciA9IG5ldyBfQ29va2llSmFyKHN0b3JlLCB7XG4gICAgICAgICAgcmVqZWN0UHVibGljU3VmZml4ZXM6IHNlcmlhbGl6ZWQucmVqZWN0UHVibGljU3VmZml4ZXMsXG4gICAgICAgICAgbG9vc2VNb2RlOiBzZXJpYWxpemVkLmVuYWJsZUxvb3NlTW9kZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFqYXIuc3RvcmUuc3luY2hyb25vdXMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcIkNvb2tpZUphciBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBBUEkgaW5zdGVhZC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgamFyLl9pbXBvcnRDb29raWVzU3luYyhzZXJpYWxpemVkKTtcbiAgICAgICAgcmV0dXJuIGphcjtcbiAgICAgIH1cbiAgICB9O1xuICAgIENvb2tpZUphci5mcm9tSlNPTiA9IENvb2tpZUphci5kZXNlcmlhbGl6ZVN5bmM7XG4gICAgW1xuICAgICAgXCJfaW1wb3J0Q29va2llc1wiLFxuICAgICAgXCJjbG9uZVwiLFxuICAgICAgXCJnZXRDb29raWVzXCIsXG4gICAgICBcImdldENvb2tpZVN0cmluZ1wiLFxuICAgICAgXCJnZXRTZXRDb29raWVTdHJpbmdzXCIsXG4gICAgICBcInJlbW92ZUFsbENvb2tpZXNcIixcbiAgICAgIFwic2VyaWFsaXplXCIsXG4gICAgICBcInNldENvb2tpZVwiXG4gICAgXS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBDb29raWVKYXIucHJvdG90eXBlW25hbWVdID0gZnJvbUNhbGxiYWNrKENvb2tpZUphci5wcm90b3R5cGVbbmFtZV0pO1xuICAgIH0pO1xuICAgIENvb2tpZUphci5kZXNlcmlhbGl6ZSA9IGZyb21DYWxsYmFjayhDb29raWVKYXIuZGVzZXJpYWxpemUpO1xuICAgIGZ1bmN0aW9uIHN5bmNXcmFwKG1ldGhvZCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JlLnN5bmNocm9ub3VzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJDb29raWVKYXIgc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzeW5jRXJyLCBzeW5jUmVzdWx0O1xuICAgICAgICB0aGlzW21ldGhvZF0oLi4uYXJncywgKGVyciwgcmVzdWx0KSA9PiB7XG4gICAgICAgICAgc3luY0VyciA9IGVycjtcbiAgICAgICAgICBzeW5jUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHN5bmNFcnIpIHtcbiAgICAgICAgICB0aHJvdyBzeW5jRXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzeW5jUmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG4gICAgZXhwb3J0cy52ZXJzaW9uID0gVkVSU0lPTjtcbiAgICBleHBvcnRzLkNvb2tpZUphciA9IENvb2tpZUphcjtcbiAgICBleHBvcnRzLkNvb2tpZSA9IENvb2tpZTtcbiAgICBleHBvcnRzLlN0b3JlID0gU3RvcmU7XG4gICAgZXhwb3J0cy5NZW1vcnlDb29raWVTdG9yZSA9IE1lbW9yeUNvb2tpZVN0b3JlO1xuICAgIGV4cG9ydHMucGFyc2VEYXRlID0gcGFyc2VEYXRlO1xuICAgIGV4cG9ydHMuZm9ybWF0RGF0ZSA9IGZvcm1hdERhdGU7XG4gICAgZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuICAgIGV4cG9ydHMuZnJvbUpTT04gPSBmcm9tSlNPTjtcbiAgICBleHBvcnRzLmRvbWFpbk1hdGNoID0gZG9tYWluTWF0Y2g7XG4gICAgZXhwb3J0cy5kZWZhdWx0UGF0aCA9IGRlZmF1bHRQYXRoO1xuICAgIGV4cG9ydHMucGF0aE1hdGNoID0gcGF0aE1hdGNoO1xuICAgIGV4cG9ydHMuZ2V0UHVibGljU3VmZml4ID0gcHVic3VmZml4LmdldFB1YmxpY1N1ZmZpeDtcbiAgICBleHBvcnRzLmNvb2tpZUNvbXBhcmUgPSBjb29raWVDb21wYXJlO1xuICAgIGV4cG9ydHMucGVybXV0ZURvbWFpbiA9IHJlcXVpcmVfcGVybXV0ZURvbWFpbigpLnBlcm11dGVEb21haW47XG4gICAgZXhwb3J0cy5wZXJtdXRlUGF0aCA9IHBlcm11dGVQYXRoO1xuICAgIGV4cG9ydHMuY2Fub25pY2FsRG9tYWluID0gY2Fub25pY2FsRG9tYWluO1xuICAgIGV4cG9ydHMuUHJlZml4U2VjdXJpdHlFbnVtID0gUHJlZml4U2VjdXJpdHlFbnVtO1xuICAgIGV4cG9ydHMuUGFyYW1ldGVyRXJyb3IgPSB2YWxpZGF0b3JzLlBhcmFtZXRlckVycm9yO1xuICB9XG59KTtcblxuLy8gc291cmNlLmpzXG52YXIgaW1wb3J0X3RvdWdoX2Nvb2tpZSA9IF9fdG9FU00ocmVxdWlyZV9jb29raWUoKSwgMSk7XG52YXIgc291cmNlX2RlZmF1bHQgPSBpbXBvcnRfdG91Z2hfY29va2llLmRlZmF1bHQ7XG5leHBvcnQge1xuICBzb3VyY2VfZGVmYXVsdCBhcyBkZWZhdWx0XG59O1xuLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjpcblxudG91Z2gtY29va2llL2xpYi9wdWJzdWZmaXgtcHNsLmpzOlxuICAoKiFcbiAgICogQ29weXJpZ2h0IChjKSAyMDE4LCBTYWxlc2ZvcmNlLmNvbSwgSW5jLlxuICAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICAgKlxuICAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gICAqXG4gICAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAgICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAgICpcbiAgICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gICAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIFNhbGVzZm9yY2UuY29tIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXlcbiAgICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICAgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gICAqXG4gICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiXG4gICAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbiAgICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0VcbiAgICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRVxuICAgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SXG4gICAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GXG4gICAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTU1xuICAgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTlxuICAgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKVxuICAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRVxuICAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAgICopXG5cbnRvdWdoLWNvb2tpZS9saWIvc3RvcmUuanM6XG4gICgqIVxuICAgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIFNhbGVzZm9yY2UuY29tLCBJbmMuXG4gICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAqXG4gICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcbiAgICpcbiAgICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgKlxuICAgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAgICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gICAqXG4gICAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgU2FsZXNmb3JjZS5jb20gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heVxuICAgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0XG4gICAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAgICpcbiAgICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAgICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICAgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRVxuICAgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFXG4gICAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1JcbiAgICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0ZcbiAgICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTXG4gICAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOXG4gICAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpXG4gICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFXG4gICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICAgKilcblxudG91Z2gtY29va2llL2xpYi9wZXJtdXRlRG9tYWluLmpzOlxuICAoKiFcbiAgICogQ29weXJpZ2h0IChjKSAyMDE1LCBTYWxlc2ZvcmNlLmNvbSwgSW5jLlxuICAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICAgKlxuICAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gICAqXG4gICAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAgICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAgICpcbiAgICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gICAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIFNhbGVzZm9yY2UuY29tIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXlcbiAgICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICAgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gICAqXG4gICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiXG4gICAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbiAgICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0VcbiAgICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRVxuICAgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SXG4gICAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GXG4gICAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTU1xuICAgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTlxuICAgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKVxuICAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRVxuICAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAgICopXG5cbnRvdWdoLWNvb2tpZS9saWIvcGF0aE1hdGNoLmpzOlxuICAoKiFcbiAgICogQ29weXJpZ2h0IChjKSAyMDE1LCBTYWxlc2ZvcmNlLmNvbSwgSW5jLlxuICAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICAgKlxuICAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gICAqXG4gICAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAgICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAgICpcbiAgICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gICAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIFNhbGVzZm9yY2UuY29tIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXlcbiAgICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICAgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gICAqXG4gICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiXG4gICAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbiAgICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0VcbiAgICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRVxuICAgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SXG4gICAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GXG4gICAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTU1xuICAgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTlxuICAgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKVxuICAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRVxuICAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAgICopXG5cbnRvdWdoLWNvb2tpZS9saWIvbWVtc3RvcmUuanM6XG4gICgqIVxuICAgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIFNhbGVzZm9yY2UuY29tLCBJbmMuXG4gICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAqXG4gICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcbiAgICpcbiAgICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgKlxuICAgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAgICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gICAqXG4gICAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgU2FsZXNmb3JjZS5jb20gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heVxuICAgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0XG4gICAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAgICpcbiAgICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAgICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICAgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRVxuICAgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFXG4gICAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1JcbiAgICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0ZcbiAgICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTXG4gICAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOXG4gICAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpXG4gICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFXG4gICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICAgKilcblxudG91Z2gtY29va2llL2xpYi9jb29raWUuanM6XG4gICgqIVxuICAgKiBDb3B5cmlnaHQgKGMpIDIwMTUtMjAyMCwgU2FsZXNmb3JjZS5jb20sIEluYy5cbiAgICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAgICpcbiAgICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICAgKlxuICAgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gICAqXG4gICAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAgICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvblxuICAgKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBTYWxlc2ZvcmNlLmNvbSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5XG4gICAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXRcbiAgICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxuICAgKlxuICAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTIFwiQVMgSVNcIlxuICAgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFXG4gICAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFXG4gICAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkVcbiAgICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUlxuICAgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRlxuICAgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1NcbiAgICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU5cbiAgICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSlcbiAgICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEVcbiAgICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gICAqKVxuKi9cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@bundled-es-modules/tough-cookie/index-esm.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@emotion/hash/dist/hash.browser.esm.js": /*!*************************************************************!*\ !*** ./node_modules/@emotion/hash/dist/hash.browser.esm.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (murmurhash2_32_gc);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9oYXNoL2Rpc3QvaGFzaC5icm93c2VyLmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUVBQWUsaUJBQWlCLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BlbW90aW9uL2hhc2gvZGlzdC9oYXNoLmJyb3dzZXIuZXNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBtdXJtdXJoYXNoMiB2aWEgaHR0cHM6Ly9naXRodWIuY29tL2dhcnljb3VydC9tdXJtdXJoYXNoLWpzL2Jsb2IvbWFzdGVyL211cm11cmhhc2gyX2djLmpzXG5mdW5jdGlvbiBtdXJtdXJoYXNoMl8zMl9nYyhzdHIpIHtcbiAgdmFyIGwgPSBzdHIubGVuZ3RoLFxuICAgICAgaCA9IGwgXiBsLFxuICAgICAgaSA9IDAsXG4gICAgICBrO1xuXG4gIHdoaWxlIChsID49IDQpIHtcbiAgICBrID0gc3RyLmNoYXJDb2RlQXQoaSkgJiAweGZmIHwgKHN0ci5jaGFyQ29kZUF0KCsraSkgJiAweGZmKSA8PCA4IHwgKHN0ci5jaGFyQ29kZUF0KCsraSkgJiAweGZmKSA8PCAxNiB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMjQ7XG4gICAgayA9IChrICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKChrID4+PiAxNikgKiAweDViZDFlOTk1ICYgMHhmZmZmKSA8PCAxNik7XG4gICAgayBePSBrID4+PiAyNDtcbiAgICBrID0gKGsgJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoKGsgPj4+IDE2KSAqIDB4NWJkMWU5OTUgJiAweGZmZmYpIDw8IDE2KTtcbiAgICBoID0gKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoKGggPj4+IDE2KSAqIDB4NWJkMWU5OTUgJiAweGZmZmYpIDw8IDE2KSBeIGs7XG4gICAgbCAtPSA0O1xuICAgICsraTtcbiAgfVxuXG4gIHN3aXRjaCAobCkge1xuICAgIGNhc2UgMzpcbiAgICAgIGggXj0gKHN0ci5jaGFyQ29kZUF0KGkgKyAyKSAmIDB4ZmYpIDw8IDE2O1xuXG4gICAgY2FzZSAyOlxuICAgICAgaCBePSAoc3RyLmNoYXJDb2RlQXQoaSArIDEpICYgMHhmZikgPDwgODtcblxuICAgIGNhc2UgMTpcbiAgICAgIGggXj0gc3RyLmNoYXJDb2RlQXQoaSkgJiAweGZmO1xuICAgICAgaCA9IChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKChoID4+PiAxNikgKiAweDViZDFlOTk1ICYgMHhmZmZmKSA8PCAxNik7XG4gIH1cblxuICBoIF49IGggPj4+IDEzO1xuICBoID0gKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoKGggPj4+IDE2KSAqIDB4NWJkMWU5OTUgJiAweGZmZmYpIDw8IDE2KTtcbiAgaCBePSBoID4+PiAxNTtcbiAgcmV0dXJuIChoID4+PiAwKS50b1N0cmluZygzNik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG11cm11cmhhc2gyXzMyX2djO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@emotion/hash/dist/hash.browser.esm.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs": /*!******************************************************************!*\ !*** ./node_modules/@floating-ui/core/dist/floating-ui.core.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ computePosition: () => (/* binding */ computePosition),\n/* harmony export */ detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ rectToClientRect: () => (/* reexport safe */ _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n\n\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n const alignmentAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n const alignLength = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(alignmentAxis);\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n const coords = {\n x,\n y\n };\n const axis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n const length = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment), ...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) !== alignment)] : allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment || (autoAlignment ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAlignmentPlacement)(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const initialSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(initialPlacement);\n const isBasePlacement = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositePlacement)(initialPlacement)] : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getExpandedPlacements)(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxisPlacements)(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.left));\n const minY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.top));\n const maxX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.right));\n const maxY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(nativeClientRects));\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'left';\n const maxRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...clientRects.map(rect => rect.right));\n const minLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n const isVertical = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n const isYAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, 0);\n const xMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.right, 0);\n const yMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, 0);\n const yMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvY29yZS9kaXN0L2Zsb2F0aW5nLXVpLmNvcmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc1U7QUFDaFI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLG1CQUFtQiwrREFBVztBQUM5Qix3QkFBd0Isb0VBQWdCO0FBQ3hDLHNCQUFzQixpRUFBYTtBQUNuQyxlQUFlLDJEQUFPO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsZ0VBQVk7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDRCQUE0QjtBQUM5QztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyx1REFBRztBQUN6QyxxQ0FBcUMsdURBQUc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsdURBQUc7QUFDeEIscUJBQXFCLHVEQUFHO0FBQ3hCLHFCQUFxQix1REFBRztBQUN4QixxQkFBcUIsdURBQUc7QUFDeEI7QUFDQSxpRkFBaUYsdURBQUc7QUFDcEYsVUFBVTtBQUNWLG1GQUFtRix1REFBRztBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2NvcmUvZGlzdC9mbG9hdGluZy11aS5jb3JlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTaWRlQXhpcywgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QXhpc0xlbmd0aCwgZ2V0U2lkZSwgZ2V0QWxpZ25tZW50LCBldmFsdWF0ZSwgZ2V0UGFkZGluZ09iamVjdCwgcmVjdFRvQ2xpZW50UmVjdCwgbWluLCBjbGFtcCwgcGxhY2VtZW50cywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBzaWRlcywgbWF4LCBnZXRPcHBvc2l0ZUF4aXMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuZXhwb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWduTGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IHNpZGVBeGlzID09PSAneSc7XG4gIGNvbnN0IGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBmbG9hdGluZy53aWR0aCAvIDI7XG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbYWxpZ25MZW5ndGhdIC8gMiAtIGZsb2F0aW5nW2FsaWduTGVuZ3RoXSAvIDI7XG4gIGxldCBjb29yZHM7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZmxvYXRpbmcuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSBnaXZlbiByZWZlcmVuY2UgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSBhc3luYyAocmVmZXJlbmNlLCBmbG9hdGluZywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IHZhbGlkTWlkZGxld2FyZSA9IG1pZGRsZXdhcmUuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XG4gIGxldCByZWN0cyA9IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIHN0cmF0ZWd5XG4gIH0pO1xuICBsZXQge1xuICAgIHgsXG4gICAgeVxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcbiAgbGV0IHN0YXRlZnVsUGxhY2VtZW50ID0gcGxhY2VtZW50O1xuICBsZXQgbWlkZGxld2FyZURhdGEgPSB7fTtcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbGlkTWlkZGxld2FyZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBmblxuICAgIH0gPSB2YWxpZE1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcbiAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLFxuICAgICAgW25hbWVdOiB7XG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxuICAgICAgICAuLi5kYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAocmVzZXQgJiYgcmVzZXRDb3VudCA8PSA1MCkge1xuICAgICAgcmVzZXRDb3VudCsrO1xuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNldC5yZWN0cykge1xuICAgICAgICAgIHJlY3RzID0gcmVzZXQucmVjdHMgPT09IHRydWUgPyBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgZmxvYXRpbmcsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XG4gICAgICAgIH1cbiAgICAgICAgKHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHlcbiAgICAgICAgfSA9IGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KHJlY3RzLCBzdGF0ZWZ1bFBsYWNlbWVudCwgcnRsKSk7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgc3RyYXRlZ3ksXG4gICAgbWlkZGxld2FyZURhdGFcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhdGZvcm0sXG4gICAgcmVjdHMsXG4gICAgZWxlbWVudHMsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IHN0YXRlO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCByZWN0ID0gZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0cy5mbG9hdGluZy53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxuICB9IDogcmVjdHMucmVmZXJlbmNlO1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH0gOiB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCA/IGF3YWl0IHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9KSA6IHJlY3QpO1xuICByZXR1cm4ge1xuICAgIHRvcDogKGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGxlZnQ6IChjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQpIC8gb2Zmc2V0U2NhbGUueCxcbiAgICByaWdodDogKGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCkgLyBvZmZzZXRTY2FsZS54XG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gb3B0aW9ucyA9PiAoe1xuICBuYW1lOiAnYXJyb3cnLFxuICBvcHRpb25zLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbWlkZGxld2FyZURhdGFcbiAgICB9ID0gc3RhdGU7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZGRpbmcgPSAwXG4gICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKSB8fCB7fTtcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgIHgsXG4gICAgICB5XG4gICAgfTtcbiAgICBjb25zdCBheGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYXhpcyk7XG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcbiAgICBjb25zdCBpc1lBeGlzID0gYXhpcyA9PT0gJ3knO1xuICAgIGNvbnN0IG1pblByb3AgPSBpc1lBeGlzID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgY2xpZW50UHJvcCA9IGlzWUF4aXMgPyAnY2xpZW50SGVpZ2h0JyA6ICdjbGllbnRXaWR0aCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBhcnJvd09mZnNldFBhcmVudFtjbGllbnRQcm9wXSA6IDA7XG5cbiAgICAvLyBET00gcGxhdGZvcm0gY2FuIHJldHVybiBgd2luZG93YCBhcyB0aGUgYG9mZnNldFBhcmVudGAuXG4gICAgaWYgKCFjbGllbnRTaXplIHx8ICEoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGFycm93T2Zmc2V0UGFyZW50KSkpKSB7XG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7XG5cbiAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBsYXJnZSBlbm91Z2ggdGhhdCBpdCBjYXVzZXMgdGhlIGFycm93IHRvIG5vIGxvbmdlciBiZVxuICAgIC8vIGNlbnRlcmVkLCBtb2RpZnkgdGhlIHBhZGRpbmcgc28gdGhhdCBpdCBpcyBjZW50ZXJlZC5cbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xuICAgIGNvbnN0IG1pblBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttaW5Qcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XG4gICAgY29uc3QgbWF4UGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21heFByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpZiB0aGUgY2VudGVyXG4gICAgLy8gcG9pbnQgaXMgb3V0c2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCdzIGJvdW5kcy5cbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gbWF4UGFkZGluZztcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XG5cbiAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBhcnJvdydzIHBhZGRpbmcgY2F1c2VzIGl0IHRvXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgaXRzZWxmLiBUbyBlbnN1cmUgYHNoaWZ0KClgIGNvbnRpbnVlcyB0byB0YWtlIGFjdGlvbixcbiAgICAvLyBhIHNpbmdsZSByZXNldCBpcyBwZXJmb3JtZWQgd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcbiAgICBjb25zdCBhbGlnbm1lbnRPZmZzZXQgPSBzaG91bGRBZGRPZmZzZXQgPyBjZW50ZXIgPCBtaW4kMSA/IGNlbnRlciAtIG1pbiQxIDogY2VudGVyIC0gbWF4IDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtheGlzXTogb2Zmc2V0LFxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcbiAgICAgICAgLi4uKHNob3VsZEFkZE9mZnNldCAmJiB7XG4gICAgICAgICAgYWxpZ25tZW50T2Zmc2V0XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgcmVzZXQ6IHNob3VsZEFkZE9mZnNldFxuICAgIH07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRMaXN0KGFsaWdubWVudCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIHtcbiAgY29uc3QgYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudCA9IGFsaWdubWVudCA/IFsuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQpLCAuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9PSBhbGlnbm1lbnQpXSA6IGFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0U2lkZShwbGFjZW1lbnQpID09PSBwbGFjZW1lbnQpO1xuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCB8fCAoYXV0b0FsaWdubWVudCA/IGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkgIT09IHBsYWNlbWVudCA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMsXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICgoX21pZGRsZXdhcmVEYXRhJGF1dG9QID0gbWlkZGxld2FyZURhdGEuYXV0b1BsYWNlbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRhdXRvUC5pbmRleCkgfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgYWxpZ25tZW50U2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhjdXJyZW50UGxhY2VtZW50LCByZWN0cywgYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKTtcblxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgICBpZiAocGxhY2VtZW50ICE9PSBjdXJyZW50UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50cyQxWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMF1dLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1sxXV1dO1xuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xuICAgICAgICBwbGFjZW1lbnQ6IGN1cnJlbnRQbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93czogY3VycmVudE92ZXJmbG93c1xuICAgICAgfV07XG4gICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50cyQxW2N1cnJlbnRJbmRleCArIDFdO1xuXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxuICAgICAgaWYgKG5leHRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4ICsgMSxcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KGQucGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIFtkLnBsYWNlbWVudCwgYWxpZ25tZW50ICYmIGNyb3NzQXhpcyA/XG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgZC5vdmVyZmxvd3Muc2xpY2UoMCwgMikucmVkdWNlKChhY2MsIHYpID0+IGFjYyArIHYsIDApIDpcbiAgICAgICAgLy8gQ2hlY2sgb25seSB0aGUgbWFpbkF4aXMuXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XG4gICAgICB9KS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGUgPSBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UuZmlsdGVyKGQgPT4gZFsyXS5zbGljZSgwLFxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXG4gICAgICAvLyBzaWRlLlxuICAgICAgZ2V0QWxpZ25tZW50KGRbMF0pID8gMiA6IDMpLmV2ZXJ5KHYgPT4gdiA8PSAwKSk7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XG4gICAgICBpZiAocmVzZXRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmbGlwJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGFycm93LCBfbWlkZGxld2FyZURhdGEkZmxpcDtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxuICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneSA9ICdiZXN0Rml0JyxcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcbiAgICAgICAgZmxpcEFsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcblxuICAgICAgLy8gSWYgYSByZXNldCBieSB0aGUgYXJyb3cgd2FzIGNhdXNlZCBkdWUgdG8gYW4gYWxpZ25tZW50IG9mZnNldCBiZWluZ1xuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcbiAgICAgIC8vIHdvcmsuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI1NDkjaXNzdWVjb21tZW50LTE3MTk2MDE2NDNcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaW5pdGlhbFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoaW5pdGlhbFBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBnZXRTaWRlKGluaXRpYWxQbGFjZW1lbnQpID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gPSBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uICE9PSAnbm9uZSc7XG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50cy5wdXNoKC4uLmdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiwgcnRsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dzID0gW107XG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCk7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcbiAgICAgIH1cbiAgICAgIG92ZXJmbG93c0RhdGEgPSBbLi4ub3ZlcmZsb3dzRGF0YSwge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93c1xuICAgICAgfV07XG5cbiAgICAgIC8vIE9uZSBvciBtb3JlIHNpZGVzIGlzIG92ZXJmbG93aW5nLlxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKCgoX21pZGRsZXdhcmVEYXRhJGZsaXAyID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwMi5pbmRleCkgfHwgMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICAgIC8vIFRyeSBuZXh0IHBsYWNlbWVudCBhbmQgcmUtcnVuIHRoZSBsaWZlY3ljbGUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dzOiBvdmVyZmxvd3NEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0LCBmaW5kIHRoZSBjYW5kaWRhdGVzIHRoYXQgZml0IG9uIHRoZSBtYWluQXhpcyBzaWRlIG9mIG92ZXJmbG93LFxuICAgICAgICAvLyB0aGVuIGZpbmQgdGhlIHBsYWNlbWVudCB0aGF0IGZpdHMgdGhlIGJlc3Qgb24gdGhlIG1haW4gY3Jvc3NBeGlzIHNpZGUuXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcblxuICAgICAgICAvLyBPdGhlcndpc2UgZmFsbGJhY2suXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlc3RGaXQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjI7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlcjIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlQXhpcyA9IGdldFNpZGVBeGlzKGQucGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTaWRlQXhpcyA9PT0gaW5pdGlhbFNpZGVBeGlzIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZyBkaXJlY3Rpb25zIGZhdm9yaW5nIGdyZWF0ZXIgd2lkdGguXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTaWRlQXhpcyA9PT0gJ3knO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSkubWFwKGQgPT4gW2QucGxhY2VtZW50LCBkLm92ZXJmbG93cy5maWx0ZXIob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPiAwKS5yZWR1Y2UoKGFjYywgb3ZlcmZsb3cpID0+IGFjYyArIG92ZXJmbG93LCAwKV0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vdmVyZmxvd3NEYXRhJGZpbHRlcjJbMF07XG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsUGxhY2VtZW50JzpcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudCAhPT0gcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQsXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoXG4gIH07XG59XG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIHNpZGVzLnNvbWUoc2lkZSA9PiBvdmVyZmxvd1tzaWRlXSA+PSAwKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlY3RzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAncmVmZXJlbmNlSGlkZGVuJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgZXNjYXBlZDogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdSZWN0KHJlY3RzKSB7XG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gIGNvbnN0IG1pblkgPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC50b3ApKTtcbiAgY29uc3QgbWF4WCA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcbiAgcmV0dXJuIHtcbiAgICB4OiBtaW5YLFxuICAgIHk6IG1pblksXG4gICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgIGhlaWdodDogbWF4WSAtIG1pbllcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFJlY3RzQnlMaW5lKHJlY3RzKSB7XG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xuICBjb25zdCBncm91cHMgPSBbXTtcbiAgbGV0IHByZXZSZWN0ID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJlY3QgPSBzb3J0ZWRSZWN0c1tpXTtcbiAgICBpZiAoIXByZXZSZWN0IHx8IHJlY3QueSAtIHByZXZSZWN0LnkgPiBwcmV2UmVjdC5oZWlnaHQgLyAyKSB7XG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cHNbZ3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gocmVjdCk7XG4gICAgfVxuICAgIHByZXZSZWN0ID0gcmVjdDtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XG59XG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2lubGluZScsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIGVsZW1lbnRzLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFkZGluZyA9IDIsXG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gZ2V0UmVjdHNCeUxpbmUobmF0aXZlQ2xpZW50UmVjdHMpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSByZWN0VG9DbGllbnRSZWN0KGdldEJvdW5kaW5nUmVjdChuYXRpdmVDbGllbnRSZWN0cykpO1xuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgICBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcmVjdHMgYW5kIHRoZXkgYXJlIGRpc2pvaW5lZC5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHJlY3QgaW4gd2hpY2ggdGhlIHBvaW50IGlzIGZ1bGx5IGluc2lkZS5cbiAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSB8fCBmYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZXJlIGFyZSAyIG9yIG1vcmUgY29ubmVjdGVkIHJlY3RzLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICBpZiAoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXNMZWZ0U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ2xlZnQnO1xuICAgICAgICAgIGNvbnN0IG1heFJpZ2h0ID0gbWF4KC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xuICAgICAgICAgIGNvbnN0IG1lYXN1cmVSZWN0cyA9IGNsaWVudFJlY3RzLmZpbHRlcihyZWN0ID0+IGlzTGVmdFNpZGUgPyByZWN0LmxlZnQgPT09IG1pbkxlZnQgOiByZWN0LnJpZ2h0ID09PSBtYXhSaWdodCk7XG4gICAgICAgICAgY29uc3QgdG9wID0gbWVhc3VyZVJlY3RzWzBdLnRvcDtcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gbWluTGVmdDtcbiAgICAgICAgICBjb25zdCByaWdodCA9IG1heFJpZ2h0O1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB4OiBsZWZ0LFxuICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlY3RzLnJlZmVyZW5jZS54ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS54IHx8IHJlY3RzLnJlZmVyZW5jZS55ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS55IHx8IHJlY3RzLnJlZmVyZW5jZS53aWR0aCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2Uud2lkdGggfHwgcmVjdHMucmVmZXJlbmNlLmhlaWdodCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2UuaGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHJlY3RzOiByZXNldFJlY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIEZvciB0eXBlIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LCB0aGUgYE9mZnNldE9wdGlvbnNgIHR5cGUgd2FzIGFsc29cbi8vIERlcml2YWJsZS5cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50c1xuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGlzVmVydGljYWwgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gIGNvbnN0IG1haW5BeGlzTXVsdGkgPSBbJ2xlZnQnLCAndG9wJ10uaW5jbHVkZXMoc2lkZSkgPyAtMSA6IDE7XG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XG4gIGNvbnN0IHJhd1ZhbHVlID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUubWFpbkF4aXMgfHwgMCxcbiAgICBjcm9zc0F4aXM6IHJhd1ZhbHVlLmNyb3NzQXhpcyB8fCAwLFxuICAgIGFsaWdubWVudEF4aXM6IHJhd1ZhbHVlLmFsaWdubWVudEF4aXNcbiAgfTtcbiAgaWYgKGFsaWdubWVudCAmJiB0eXBlb2YgYWxpZ25tZW50QXhpcyA9PT0gJ251bWJlcicpIHtcbiAgICBjcm9zc0F4aXMgPSBhbGlnbm1lbnQgPT09ICdlbmQnID8gYWxpZ25tZW50QXhpcyAqIC0xIDogYWxpZ25tZW50QXhpcztcbiAgfVxuICByZXR1cm4gaXNWZXJ0aWNhbCA/IHtcbiAgICB4OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aSxcbiAgICB5OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGlcbiAgfSA6IHtcbiAgICB4OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGksXG4gICAgeTogY3Jvc3NBeGlzICogY3Jvc3NBeGlzTXVsdGlcbiAgfTtcbn1cblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSAwO1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ29mZnNldCcsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJGFycm93O1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCBkaWZmQ29vcmRzID0gYXdhaXQgY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAvLyBJZiB0aGUgcGxhY2VtZW50IGlzIHRoZSBzYW1lIGFuZCB0aGUgYXJyb3cgY2F1c2VkIGFuIGFsaWdubWVudCBvZmZzZXRcbiAgICAgIC8vIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIGNvb3JkaW5hdGVzLlxuICAgICAgaWYgKHBsYWNlbWVudCA9PT0gKChfbWlkZGxld2FyZURhdGEkb2Zmc2UgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UucGxhY2VtZW50KSAmJiAoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB4OiB4ICsgZGlmZkNvb3Jkcy54LFxuICAgICAgICB5OiB5ICsgZGlmZkNvb3Jkcy55LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4uZGlmZkNvb3JkcyxcbiAgICAgICAgICBwbGFjZW1lbnRcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NoaWZ0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudFxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgbGltaXRlciA9IHtcbiAgICAgICAgICBmbjogX3JlZiA9PiB7XG4gICAgICAgICAgICBsZXQge1xuICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICB5XG4gICAgICAgICAgICB9ID0gX3JlZjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBjb29yZHMgPSB7XG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH07XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMoZ2V0U2lkZShwbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgICAgIGNvbnN0IG1heFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gJ2JvdHRvbScgOiAncmlnaHQnO1xuICAgICAgICBjb25zdCBtaW4gPSBtYWluQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IG1haW5BeGlzQ29vcmQgLSBvdmVyZmxvd1ttYXhTaWRlXTtcbiAgICAgICAgbWFpbkF4aXNDb29yZCA9IGNsYW1wKG1pbiwgbWFpbkF4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBtaW5TaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IGNyb3NzQXhpcyA9PT0gJ3knID8gJ2JvdHRvbScgOiAncmlnaHQnO1xuICAgICAgICBjb25zdCBtaW4gPSBjcm9zc0F4aXNDb29yZCArIG92ZXJmbG93W21pblNpZGVdO1xuICAgICAgICBjb25zdCBtYXggPSBjcm9zc0F4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGNsYW1wKG1pbiwgY3Jvc3NBeGlzQ29vcmQsIG1heCk7XG4gICAgICB9XG4gICAgICBjb25zdCBsaW1pdGVkQ29vcmRzID0gbGltaXRlci5mbih7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbbWFpbkF4aXNdOiBtYWluQXhpc0Nvb3JkLFxuICAgICAgICBbY3Jvc3NBeGlzXTogY3Jvc3NBeGlzQ29vcmRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubGltaXRlZENvb3JkcyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHg6IGxpbWl0ZWRDb29yZHMueCAtIHgsXG4gICAgICAgICAgeTogbGltaXRlZENvb3Jkcy55IC0geSxcbiAgICAgICAgICBlbmFibGVkOiB7XG4gICAgICAgICAgICBbbWFpbkF4aXNdOiBjaGVja01haW5BeGlzLFxuICAgICAgICAgICAgW2Nyb3NzQXhpc106IGNoZWNrQ3Jvc3NBeGlzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4vKipcbiAqIEJ1aWx0LWluIGBsaW1pdGVyYCB0aGF0IHdpbGwgc3RvcCBgc2hpZnQoKWAgYXQgYSBjZXJ0YWluIHBvaW50LlxuICovXG5jb25zdCBsaW1pdFNoaWZ0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG9wdGlvbnMsXG4gICAgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgb2Zmc2V0ID0gMCxcbiAgICAgICAgbWFpbkF4aXM6IGNoZWNrTWFpbkF4aXMgPSB0cnVlLFxuICAgICAgICBjcm9zc0F4aXM6IGNoZWNrQ3Jvc3NBeGlzID0gdHJ1ZVxuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNyb3NzQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBtYWluQXhpcyA9IGdldE9wcG9zaXRlQXhpcyhjcm9zc0F4aXMpO1xuICAgICAgbGV0IG1haW5BeGlzQ29vcmQgPSBjb29yZHNbbWFpbkF4aXNdO1xuICAgICAgbGV0IGNyb3NzQXhpc0Nvb3JkID0gY29vcmRzW2Nyb3NzQXhpc107XG4gICAgICBjb25zdCByYXdPZmZzZXQgPSBldmFsdWF0ZShvZmZzZXQsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvbXB1dGVkT2Zmc2V0ID0gdHlwZW9mIHJhd09mZnNldCA9PT0gJ251bWJlcicgPyB7XG4gICAgICAgIG1haW5BeGlzOiByYXdPZmZzZXQsXG4gICAgICAgIGNyb3NzQXhpczogMFxuICAgICAgfSA6IHtcbiAgICAgICAgbWFpbkF4aXM6IDAsXG4gICAgICAgIGNyb3NzQXhpczogMCxcbiAgICAgICAgLi4ucmF3T2Zmc2V0XG4gICAgICB9O1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICAgICAgY29uc3QgbGltaXRNaW4gPSByZWN0cy5yZWZlcmVuY2VbbWFpbkF4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuICAgICAgICBjb25zdCBsaW1pdE1heCA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSAtIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuICAgICAgICBpZiAobWFpbkF4aXNDb29yZCA8IGxpbWl0TWluKSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWluO1xuICAgICAgICB9IGVsc2UgaWYgKG1haW5BeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIG1haW5BeGlzQ29vcmQgPSBsaW1pdE1heDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkb2Zmc2UsIF9taWRkbGV3YXJlRGF0YSRvZmZzZTI7XG4gICAgICAgIGNvbnN0IGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG4gICAgICAgIGNvbnN0IGlzT3JpZ2luU2lkZSA9IFsndG9wJywgJ2xlZnQnXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVtjcm9zc0F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIChpc09yaWdpblNpZGUgPyAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZVtjcm9zc0F4aXNdKSB8fCAwIDogMCkgKyAoaXNPcmlnaW5TaWRlID8gMCA6IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSArIChpc09yaWdpblNpZGUgPyAwIDogKChfbWlkZGxld2FyZURhdGEkb2Zmc2UyID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlMltjcm9zc0F4aXNdKSB8fCAwKSAtIChpc09yaWdpblNpZGUgPyBjb21wdXRlZE9mZnNldC5jcm9zc0F4aXMgOiAwKTtcbiAgICAgICAgaWYgKGNyb3NzQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGxpbWl0TWluO1xuICAgICAgICB9IGVsc2UgaWYgKGNyb3NzQXhpc0Nvb3JkID4gbGltaXRNYXgpIHtcbiAgICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbWFpbkF4aXNdOiBtYWluQXhpc0Nvb3JkLFxuICAgICAgICBbY3Jvc3NBeGlzXTogY3Jvc3NBeGlzQ29vcmRcbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdzaXplJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX3N0YXRlJG1pZGRsZXdhcmVEYXRhLCBfc3RhdGUkbWlkZGxld2FyZURhdGEyO1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgZWxlbWVudHNcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXBwbHkgPSAoKSA9PiB7fSxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGlzWUF4aXMgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICAgIH0gPSByZWN0cy5mbG9hdGluZztcbiAgICAgIGxldCBoZWlnaHRTaWRlO1xuICAgICAgbGV0IHdpZHRoU2lkZTtcbiAgICAgIGlmIChzaWRlID09PSAndG9wJyB8fCBzaWRlID09PSAnYm90dG9tJykge1xuICAgICAgICBoZWlnaHRTaWRlID0gc2lkZTtcbiAgICAgICAgd2lkdGhTaWRlID0gYWxpZ25tZW50ID09PSAoKGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKSkgPyAnc3RhcnQnIDogJ2VuZCcpID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpZHRoU2lkZSA9IHNpZGU7XG4gICAgICAgIGhlaWdodFNpZGUgPSBhbGlnbm1lbnQgPT09ICdlbmQnID8gJ3RvcCcgOiAnYm90dG9tJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heGltdW1DbGlwcGluZ0hlaWdodCA9IGhlaWdodCAtIG92ZXJmbG93LnRvcCAtIG92ZXJmbG93LmJvdHRvbTtcbiAgICAgIGNvbnN0IG1heGltdW1DbGlwcGluZ1dpZHRoID0gd2lkdGggLSBvdmVyZmxvdy5sZWZ0IC0gb3ZlcmZsb3cucmlnaHQ7XG4gICAgICBjb25zdCBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodCA9IG1pbihoZWlnaHQgLSBvdmVyZmxvd1toZWlnaHRTaWRlXSwgbWF4aW11bUNsaXBwaW5nSGVpZ2h0KTtcbiAgICAgIGNvbnN0IG92ZXJmbG93QXZhaWxhYmxlV2lkdGggPSBtaW4od2lkdGggLSBvdmVyZmxvd1t3aWR0aFNpZGVdLCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCk7XG4gICAgICBjb25zdCBub1NoaWZ0ID0gIXN0YXRlLm1pZGRsZXdhcmVEYXRhLnNoaWZ0O1xuICAgICAgbGV0IGF2YWlsYWJsZUhlaWdodCA9IG92ZXJmbG93QXZhaWxhYmxlSGVpZ2h0O1xuICAgICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gb3ZlcmZsb3dBdmFpbGFibGVXaWR0aDtcbiAgICAgIGlmICgoX3N0YXRlJG1pZGRsZXdhcmVEYXRhID0gc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQpICE9IG51bGwgJiYgX3N0YXRlJG1pZGRsZXdhcmVEYXRhLmVuYWJsZWQueCkge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCA9IG1heGltdW1DbGlwcGluZ1dpZHRoO1xuICAgICAgfVxuICAgICAgaWYgKChfc3RhdGUkbWlkZGxld2FyZURhdGEyID0gc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQpICE9IG51bGwgJiYgX3N0YXRlJG1pZGRsZXdhcmVEYXRhMi5lbmFibGVkLnkpIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gbWF4aW11bUNsaXBwaW5nSGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYgKG5vU2hpZnQgJiYgIWFsaWdubWVudCkge1xuICAgICAgICBjb25zdCB4TWluID0gbWF4KG92ZXJmbG93LmxlZnQsIDApO1xuICAgICAgICBjb25zdCB4TWF4ID0gbWF4KG92ZXJmbG93LnJpZ2h0LCAwKTtcbiAgICAgICAgY29uc3QgeU1pbiA9IG1heChvdmVyZmxvdy50b3AsIDApO1xuICAgICAgICBjb25zdCB5TWF4ID0gbWF4KG92ZXJmbG93LmJvdHRvbSwgMCk7XG4gICAgICAgIGlmIChpc1lBeGlzKSB7XG4gICAgICAgICAgYXZhaWxhYmxlV2lkdGggPSB3aWR0aCAtIDIgKiAoeE1pbiAhPT0gMCB8fCB4TWF4ICE9PSAwID8geE1pbiArIHhNYXggOiBtYXgob3ZlcmZsb3cubGVmdCwgb3ZlcmZsb3cucmlnaHQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBoZWlnaHQgLSAyICogKHlNaW4gIT09IDAgfHwgeU1heCAhPT0gMCA/IHlNaW4gKyB5TWF4IDogbWF4KG92ZXJmbG93LnRvcCwgb3ZlcmZsb3cuYm90dG9tKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IGFwcGx5KHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGF2YWlsYWJsZVdpZHRoLFxuICAgICAgICBhdmFpbGFibGVIZWlnaHRcbiAgICAgIH0pO1xuICAgICAgY29uc3QgbmV4dERpbWVuc2lvbnMgPSBhd2FpdCBwbGF0Zm9ybS5nZXREaW1lbnNpb25zKGVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgICAgIGlmICh3aWR0aCAhPT0gbmV4dERpbWVuc2lvbnMud2lkdGggfHwgaGVpZ2h0ICE9PSBuZXh0RGltZW5zaW9ucy5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcmVjdHM6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs": /*!****************************************************************!*\ !*** ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ autoUpdate: () => (/* binding */ autoUpdate),\n/* harmony export */ computePosition: () => (/* binding */ computePosition),\n/* harmony export */ detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ platform: () => (/* binding */ platform),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/core */ \"(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\");\n/* harmony import */ var _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n\n\n\n\n\nfunction getCssDimensions(element) {\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(width) !== offsetWidth || (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(domElement)) {\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.width) : rect.width) / width;\n let y = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\nfunction getVisualOffsets(element) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n if (includeScale) {\n if (offsetParent) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(domElement);\n const offsetWin = offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent) ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(currentIFrame);\n currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\n }\n }\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\n const topLayer = elements ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\n }\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n const scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element);\n const body = element.ownerDocument.body;\n const width = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(body).direction === 'rtl') {\n x += (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) ? getScale(element) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element));\n } else if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\n if (parentNode === stopNode || !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(parentNode) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(parentNode)) {\n return false;\n }\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(element, [], false).filter(el => (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(el) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed';\n let currentNode = elementIsFixed ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(currentNode) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(currentNode)) {\n const computedStyle = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentNode);\n const currentNodeIsContaining = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.top, accRect.top);\n accRect.right = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.right, accRect.right);\n accRect.bottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.bottom, accRect.bottom);\n accRect.left = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element)) {\n return win;\n }\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\n let svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\n while (svgOffsetParent && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(svgOffsetParent)) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTableElement)(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(offsetParent) && isStaticPositioned(offsetParent) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(offsetParent)) {\n return win;\n }\n return offsetParent || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getContainingBlock)(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(top);\n const insetRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientWidth - (left + width));\n const insetBottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientHeight - (top + height));\n const insetLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(0, (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(referenceEl) : []), ...(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.detectOverflow;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.offset;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.autoPlacement;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.shift;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.flip;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.size;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.hide;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.arrow;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.inline;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.limitShift;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.computePosition)(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5VDtBQUMvTztBQUNrUDtBQUM5UDs7QUFFOUQ7QUFDQSxjQUFjLHdFQUFnQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxRUFBYTtBQUNqQztBQUNBO0FBQ0EseUJBQXlCLHlEQUFLLDJCQUEyQix5REFBSztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsaUVBQVM7QUFDbkI7O0FBRUE7QUFDQTtBQUNBLE9BQU8scUVBQWE7QUFDcEIsV0FBVyxnRUFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZUFBZSx5REFBSztBQUNwQixlQUFlLHlEQUFLOztBQUVwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtCQUErQixnRUFBWTtBQUMzQztBQUNBLGNBQWMsaUVBQVM7QUFDdkIsT0FBTyxnRUFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsaUVBQVM7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxnRUFBWTtBQUMxQjtBQUNBO0FBQ0EsVUFBVSxpRUFBUztBQUNuQjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLDJIQUEySCxnRUFBWTtBQUN2STtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlFQUFTO0FBQ3pCLHNDQUFzQyxpRUFBUyxpQkFBaUIsaUVBQVM7QUFDekU7QUFDQSx3QkFBd0IsdUVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHdFQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGlFQUFTO0FBQzVCLHNCQUFzQix1RUFBZTtBQUNyQztBQUNBO0FBQ0EsU0FBUyxvRUFBZ0I7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHFFQUFhO0FBQ2xDO0FBQ0EsaUNBQWlDLDBFQUFrQjtBQUNuRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwwQkFBMEIsMEVBQWtCO0FBQzVDLDhCQUE4QixrRUFBVTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsZ0VBQVk7QUFDMUIsa0JBQWtCLGdFQUFZO0FBQzlCLGtDQUFrQyxxRUFBYTtBQUMvQztBQUNBLFFBQVEsbUVBQVcsNkJBQTZCLHlFQUFpQjtBQUNqRSxlQUFlLHFFQUFhO0FBQzVCO0FBQ0EsUUFBUSxxRUFBYTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4SEFBOEgsZ0VBQVk7QUFDMUk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMEVBQWtCO0FBQ2pDLGlCQUFpQixxRUFBYTtBQUM5QjtBQUNBLGdCQUFnQix1REFBRztBQUNuQixpQkFBaUIsdURBQUc7QUFDcEI7QUFDQTtBQUNBLE1BQU0sd0VBQWdCO0FBQ3RCLFNBQVMsdURBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyxpRUFBUztBQUN2QixlQUFlLDBFQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGdFQUFRO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHFFQUFhLGdDQUFnQyxnRUFBWTtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMkJBQTJCLDBFQUFrQjtBQUM3QyxJQUFJLFNBQVMsaUVBQVM7QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0VBQWdCO0FBQ3pCO0FBQ0E7QUFDQSxxQkFBcUIscUVBQWE7QUFDbEMsa0NBQWtDLGlFQUFTLGdCQUFnQiw2RUFBcUI7QUFDaEY7QUFDQTtBQUNBLFNBQVMsd0VBQWdCO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRFQUFvQixrQ0FBa0MsaUVBQVMsUUFBUSxtRUFBVztBQUNqRztBQUNBLHlCQUF5Qix3RUFBZ0I7QUFDekMscUNBQXFDLHFFQUFhOztBQUVsRDtBQUNBLFNBQVMsaUVBQVMsa0JBQWtCLDZFQUFxQjtBQUN6RCwwQkFBMEIsd0VBQWdCO0FBQzFDLG9DQUFvQyx5RUFBaUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0Esa1RBQWtULHlFQUFpQjtBQUNuVTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFFQUFhO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osc0VBQXNFLGtFQUFVO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHVEQUFHO0FBQ3JCLG9CQUFvQix1REFBRztBQUN2QixxQkFBcUIsdURBQUc7QUFDeEIsbUJBQW1CLHVEQUFHO0FBQ3RCO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0MscUVBQWE7QUFDL0MsMEJBQTBCLDBFQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0VBQVk7QUFDOUI7QUFDQSxRQUFRLG1FQUFXLDZCQUE2Qix5RUFBaUI7QUFDakUsZUFBZSxxRUFBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3SEFBd0gsZ0VBQVk7QUFDcEk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7O0FBRUE7QUFDQSxPQUFPLHFFQUFhLGFBQWEsd0VBQWdCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMEVBQWtCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsaUVBQVM7QUFDdkIsTUFBTSxrRUFBVTtBQUNoQjtBQUNBO0FBQ0EsT0FBTyxxRUFBYTtBQUNwQiwwQkFBMEIscUVBQWE7QUFDdkMsK0JBQStCLDZFQUFxQjtBQUNwRCxVQUFVLGlFQUFTO0FBQ25CO0FBQ0E7QUFDQSx3QkFBd0IscUVBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0VBQWM7QUFDdkM7QUFDQTtBQUNBLHNCQUFzQiw2RUFBcUIsdURBQXVELHlFQUFpQjtBQUNuSDtBQUNBO0FBQ0EseUJBQXlCLDBFQUFrQjtBQUMzQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDBFQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQix5REFBSztBQUMxQix1QkFBdUIseURBQUs7QUFDNUIsd0JBQXdCLHlEQUFLO0FBQzdCLHNCQUFzQix5REFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsdURBQUcsSUFBSSx1REFBRztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwwRUFBMEUsNEVBQW9CLHdCQUF3Qiw0RUFBb0I7QUFDMUk7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDZEQUFnQjs7QUFFdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHFEQUFROztBQUV2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNERBQWU7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG9EQUFPOztBQUVyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFNOztBQUVuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFNOztBQUVuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxtREFBTTs7QUFFbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsb0RBQU87O0FBRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHFEQUFROztBQUV2QjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseURBQVk7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGtFQUFpQjtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUU0SSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2RvbS9kaXN0L2Zsb2F0aW5nLXVpLmRvbS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCwgZGV0ZWN0T3ZlcmZsb3cgYXMgZGV0ZWN0T3ZlcmZsb3ckMSwgb2Zmc2V0IGFzIG9mZnNldCQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgc2hpZnQgYXMgc2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBoaWRlIGFzIGhpZGUkMSwgYXJyb3cgYXMgYXJyb3ckMSwgaW5saW5lIGFzIGlubGluZSQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgY29tcHV0ZVBvc2l0aW9uIGFzIGNvbXB1dGVQb3NpdGlvbiQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2NvcmUnO1xuaW1wb3J0IHsgcm91bmQsIGNyZWF0ZUNvb3JkcywgbWF4LCBtaW4sIGZsb29yIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcbmltcG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGlzSFRNTEVsZW1lbnQsIGlzRWxlbWVudCwgZ2V0V2luZG93LCBpc1dlYktpdCwgZ2V0RnJhbWVFbGVtZW50LCBnZXROb2RlU2Nyb2xsLCBnZXREb2N1bWVudEVsZW1lbnQsIGlzVG9wTGF5ZXIsIGdldE5vZGVOYW1lLCBpc092ZXJmbG93RWxlbWVudCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNDb250YWluaW5nQmxvY2ssIGlzVGFibGVFbGVtZW50LCBnZXRDb250YWluaW5nQmxvY2sgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcbmV4cG9ydCB7IGdldE92ZXJmbG93QW5jZXN0b3JzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5cbmZ1bmN0aW9uIGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAvLyBJbiB0ZXN0aW5nIGVudmlyb25tZW50cywgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMgYXJlIGVtcHR5XG4gIC8vIHN0cmluZ3MgZm9yIFNWRyBlbGVtZW50cywgcmV0dXJuaW5nIE5hTi4gRmFsbGJhY2sgdG8gYDBgIGluIHRoaXMgY2FzZS5cbiAgbGV0IHdpZHRoID0gcGFyc2VGbG9hdChjc3Mud2lkdGgpIHx8IDA7XG4gIGxldCBoZWlnaHQgPSBwYXJzZUZsb2F0KGNzcy5oZWlnaHQpIHx8IDA7XG4gIGNvbnN0IGhhc09mZnNldCA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IG9mZnNldFdpZHRoID0gaGFzT2Zmc2V0ID8gZWxlbWVudC5vZmZzZXRXaWR0aCA6IHdpZHRoO1xuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGhlaWdodDtcbiAgY29uc3Qgc2hvdWxkRmFsbGJhY2sgPSByb3VuZCh3aWR0aCkgIT09IG9mZnNldFdpZHRoIHx8IHJvdW5kKGhlaWdodCkgIT09IG9mZnNldEhlaWdodDtcbiAgaWYgKHNob3VsZEZhbGxiYWNrKSB7XG4gICAgd2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICBoZWlnaHQgPSBvZmZzZXRIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJDogc2hvdWxkRmFsbGJhY2tcbiAgfTtcbn1cblxuZnVuY3Rpb24gdW53cmFwRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiAhaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5jb250ZXh0RWxlbWVudCA6IGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFNjYWxlKGVsZW1lbnQpIHtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGlmICghaXNIVE1MRWxlbWVudChkb21FbGVtZW50KSkge1xuICAgIHJldHVybiBjcmVhdGVDb29yZHMoMSk7XG4gIH1cbiAgY29uc3QgcmVjdCA9IGRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhkb21FbGVtZW50KTtcbiAgbGV0IHggPSAoJCA/IHJvdW5kKHJlY3Qud2lkdGgpIDogcmVjdC53aWR0aCkgLyB3aWR0aDtcbiAgbGV0IHkgPSAoJCA/IHJvdW5kKHJlY3QuaGVpZ2h0KSA6IHJlY3QuaGVpZ2h0KSAvIGhlaWdodDtcblxuICAvLyAwLCBOYU4sIG9yIEluZmluaXR5IHNob3VsZCBhbHdheXMgZmFsbGJhY2sgdG8gMS5cblxuICBpZiAoIXggfHwgIU51bWJlci5pc0Zpbml0ZSh4KSkge1xuICAgIHggPSAxO1xuICB9XG4gIGlmICgheSB8fCAhTnVtYmVyLmlzRmluaXRlKHkpKSB7XG4gICAgeSA9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuY29uc3Qgbm9PZmZzZXRzID0gLyojX19QVVJFX18qL2NyZWF0ZUNvb3JkcygwKTtcbmZ1bmN0aW9uIGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmICghaXNXZWJLaXQoKSB8fCAhd2luLnZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIG5vT2Zmc2V0cztcbiAgfVxuICByZXR1cm4ge1xuICAgIHg6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0LFxuICAgIHk6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3BcbiAgfTtcbn1cbmZ1bmN0aW9uIHNob3VsZEFkZFZpc3VhbE9mZnNldHMoZWxlbWVudCwgaXNGaXhlZCwgZmxvYXRpbmdPZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWQgPSBmYWxzZTtcbiAgfVxuICBpZiAoIWZsb2F0aW5nT2Zmc2V0UGFyZW50IHx8IGlzRml4ZWQgJiYgZmxvYXRpbmdPZmZzZXRQYXJlbnQgIT09IGdldFdpbmRvdyhlbGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNGaXhlZDtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cbiAgaWYgKGlzRml4ZWRTdHJhdGVneSA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZFN0cmF0ZWd5ID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSB1bndyYXBFbGVtZW50KGVsZW1lbnQpO1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGlmIChpbmNsdWRlU2NhbGUpIHtcbiAgICBpZiAob2Zmc2V0UGFyZW50KSB7XG4gICAgICBpZiAoaXNFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCB2aXN1YWxPZmZzZXRzID0gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhkb21FbGVtZW50LCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkgPyBnZXRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDApO1xuICBsZXQgeCA9IChjbGllbnRSZWN0LmxlZnQgKyB2aXN1YWxPZmZzZXRzLngpIC8gc2NhbGUueDtcbiAgbGV0IHkgPSAoY2xpZW50UmVjdC50b3AgKyB2aXN1YWxPZmZzZXRzLnkpIC8gc2NhbGUueTtcbiAgbGV0IHdpZHRoID0gY2xpZW50UmVjdC53aWR0aCAvIHNjYWxlLng7XG4gIGxldCBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlLnk7XG4gIGlmIChkb21FbGVtZW50KSB7XG4gICAgY29uc3Qgd2luID0gZ2V0V2luZG93KGRvbUVsZW1lbnQpO1xuICAgIGNvbnN0IG9mZnNldFdpbiA9IG9mZnNldFBhcmVudCAmJiBpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSA/IGdldFdpbmRvdyhvZmZzZXRQYXJlbnQpIDogb2Zmc2V0UGFyZW50O1xuICAgIGxldCBjdXJyZW50V2luID0gd2luO1xuICAgIGxldCBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIHdoaWxlIChjdXJyZW50SUZyYW1lICYmIG9mZnNldFBhcmVudCAmJiBvZmZzZXRXaW4gIT09IGN1cnJlbnRXaW4pIHtcbiAgICAgIGNvbnN0IGlmcmFtZVNjYWxlID0gZ2V0U2NhbGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBpZnJhbWVSZWN0ID0gY3VycmVudElGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBsZWZ0ID0gaWZyYW1lUmVjdC5sZWZ0ICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50TGVmdCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdMZWZ0KSkgKiBpZnJhbWVTY2FsZS54O1xuICAgICAgY29uc3QgdG9wID0gaWZyYW1lUmVjdC50b3AgKyAoY3VycmVudElGcmFtZS5jbGllbnRUb3AgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nVG9wKSkgKiBpZnJhbWVTY2FsZS55O1xuICAgICAgeCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgeSAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgd2lkdGggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIGhlaWdodCAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgeCArPSBsZWZ0O1xuICAgICAgeSArPSB0b3A7XG4gICAgICBjdXJyZW50V2luID0gZ2V0V2luZG93KGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfSk7XG59XG5cbi8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbi8vIGluY29ycmVjdCBmb3IgUlRMLlxuZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50LCByZWN0KSB7XG4gIGNvbnN0IGxlZnRTY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpLnNjcm9sbExlZnQ7XG4gIGlmICghcmVjdCkge1xuICAgIHJldHVybiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpKS5sZWZ0ICsgbGVmdFNjcm9sbDtcbiAgfVxuICByZXR1cm4gcmVjdC5sZWZ0ICsgbGVmdFNjcm9sbDtcbn1cblxuZnVuY3Rpb24gZ2V0SFRNTE9mZnNldChkb2N1bWVudEVsZW1lbnQsIHNjcm9sbCwgaWdub3JlU2Nyb2xsYmFyWCkge1xuICBpZiAoaWdub3JlU2Nyb2xsYmFyWCA9PT0gdm9pZCAwKSB7XG4gICAgaWdub3JlU2Nyb2xsYmFyWCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGh0bWxSZWN0ID0gZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCB4ID0gaHRtbFJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gKGlnbm9yZVNjcm9sbGJhclggPyAwIDpcbiAgLy8gUlRMIDxib2R5PiBzY3JvbGxiYXIuXG4gIGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50LCBodG1sUmVjdCkpO1xuICBjb25zdCB5ID0gaHRtbFJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcDtcbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3QoX3JlZikge1xuICBsZXQge1xuICAgIGVsZW1lbnRzLFxuICAgIHJlY3QsXG4gICAgb2Zmc2V0UGFyZW50LFxuICAgIHN0cmF0ZWd5XG4gIH0gPSBfcmVmO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCB0b3BMYXllciA9IGVsZW1lbnRzID8gaXNUb3BMYXllcihlbGVtZW50cy5mbG9hdGluZykgOiBmYWxzZTtcbiAgaWYgKG9mZnNldFBhcmVudCA9PT0gZG9jdW1lbnRFbGVtZW50IHx8IHRvcExheWVyICYmIGlzRml4ZWQpIHtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuICBsZXQgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgb2Zmc2V0cyA9IGNyZWF0ZUNvb3JkcygwKTtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgaWYgKGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQpO1xuICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgPSBvZmZzZXRSZWN0LnkgKyBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH1cbiAgfVxuICBjb25zdCBodG1sT2Zmc2V0ID0gZG9jdW1lbnRFbGVtZW50ICYmICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCA/IGdldEhUTUxPZmZzZXQoZG9jdW1lbnRFbGVtZW50LCBzY3JvbGwsIHRydWUpIDogY3JlYXRlQ29vcmRzKDApO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiByZWN0LndpZHRoICogc2NhbGUueCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0ICogc2NhbGUueSxcbiAgICB4OiByZWN0LnggKiBzY2FsZS54IC0gc2Nyb2xsLnNjcm9sbExlZnQgKiBzY2FsZS54ICsgb2Zmc2V0cy54ICsgaHRtbE9mZnNldC54LFxuICAgIHk6IHJlY3QueSAqIHNjYWxlLnkgLSBzY3JvbGwuc2Nyb2xsVG9wICogc2NhbGUueSArIG9mZnNldHMueSArIGh0bWxPZmZzZXQueVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDbGllbnRSZWN0cyhlbGVtZW50KSB7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSk7XG59XG5cbi8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUuXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpO1xuICBjb25zdCBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5jbGllbnRIZWlnaHQpO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICBsZXQgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIGxldCB4ID0gMDtcbiAgbGV0IHkgPSAwO1xuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcbiAgICBpZiAoIXZpc3VhbFZpZXdwb3J0QmFzZWQgfHwgdmlzdWFsVmlld3BvcnRCYXNlZCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgaW5uZXIgY2xpZW50IHJlY3QsIHN1YnRyYWN0aW5nIHNjcm9sbGJhcnMgaWYgcHJlc2VudC5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICBjb25zdCBzY2FsZSA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgPyBnZXRTY2FsZShlbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgd2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoICogc2NhbGUueDtcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xuICBjb25zdCB4ID0gbGVmdCAqIHNjYWxlLng7XG4gIGNvbnN0IHkgPSB0b3AgKiBzY2FsZS55O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkge1xuICBsZXQgcmVjdDtcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZWN0ID0gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAnZG9jdW1lbnQnKSB7XG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xuICB9IGVsc2UgaWYgKGlzRWxlbWVudChjbGlwcGluZ0FuY2VzdG9yKSkge1xuICAgIHJlY3QgPSBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCk7XG4gICAgcmVjdCA9IHtcbiAgICAgIHg6IGNsaXBwaW5nQW5jZXN0b3IueCAtIHZpc3VhbE9mZnNldHMueCxcbiAgICAgIHk6IGNsaXBwaW5nQW5jZXN0b3IueSAtIHZpc3VhbE9mZnNldHMueSxcbiAgICAgIHdpZHRoOiBjbGlwcGluZ0FuY2VzdG9yLndpZHRoLFxuICAgICAgaGVpZ2h0OiBjbGlwcGluZ0FuY2VzdG9yLmhlaWdodFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3QocmVjdCk7XG59XG5mdW5jdGlvbiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgc3RvcE5vZGUpIHtcbiAgY29uc3QgcGFyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIGlmIChwYXJlbnROb2RlID09PSBzdG9wTm9kZSB8fCAhaXNFbGVtZW50KHBhcmVudE5vZGUpIHx8IGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnROb2RlKS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJyB8fCBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IocGFyZW50Tm9kZSwgc3RvcE5vZGUpO1xufVxuXG4vLyBBIFwiY2xpcHBpbmcgYW5jZXN0b3JcIiBpcyBhbiBgb3ZlcmZsb3dgIGVsZW1lbnQgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIGNoaWxkIGVsZW1lbnRzLiBUaGlzIHJldHVybnMgYWxsIGNsaXBwaW5nIGFuY2VzdG9yc1xuLy8gb2YgdGhlIGdpdmVuIGVsZW1lbnQgdXAgdGhlIHRyZWUuXG5mdW5jdGlvbiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgY2FjaGUpIHtcbiAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGUuZ2V0KGVsZW1lbnQpO1xuICBpZiAoY2FjaGVkUmVzdWx0KSB7XG4gICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgfVxuICBsZXQgcmVzdWx0ID0gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZWxlbWVudCwgW10sIGZhbHNlKS5maWx0ZXIoZWwgPT4gaXNFbGVtZW50KGVsKSAmJiBnZXROb2RlTmFtZShlbCkgIT09ICdib2R5Jyk7XG4gIGxldCBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gIGNvbnN0IGVsZW1lbnRJc0ZpeGVkID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJztcbiAgbGV0IGN1cnJlbnROb2RlID0gZWxlbWVudElzRml4ZWQgPyBnZXRQYXJlbnROb2RlKGVsZW1lbnQpIDogZWxlbWVudDtcblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jayNpZGVudGlmeWluZ190aGVfY29udGFpbmluZ19ibG9ja1xuICB3aGlsZSAoaXNFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnROb2RlKTtcbiAgICBjb25zdCBjdXJyZW50Tm9kZUlzQ29udGFpbmluZyA9IGlzQ29udGFpbmluZ0Jsb2NrKGN1cnJlbnROb2RlKTtcbiAgICBpZiAoIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkRHJvcEN1cnJlbnROb2RlID0gZWxlbWVudElzRml4ZWQgPyAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlIDogIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdzdGF0aWMnICYmICEhY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgJiYgWydhYnNvbHV0ZScsICdmaXhlZCddLmluY2x1ZGVzKGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlLnBvc2l0aW9uKSB8fCBpc092ZXJmbG93RWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihlbGVtZW50LCBjdXJyZW50Tm9kZSk7XG4gICAgaWYgKHNob3VsZERyb3BDdXJyZW50Tm9kZSkge1xuICAgICAgLy8gRHJvcCBub24tY29udGFpbmluZyBibG9ja3MuXG4gICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKGFuY2VzdG9yID0+IGFuY2VzdG9yICE9PSBjdXJyZW50Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlY29yZCBsYXN0IGNvbnRhaW5pbmcgYmxvY2sgZm9yIG5leHQgaXRlcmF0aW9uLlxuICAgICAgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlO1xuICAgIH1cbiAgICBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoY3VycmVudE5vZGUpO1xuICB9XG4gIGNhY2hlLnNldChlbGVtZW50LCByZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBhbmNlc3RvcnMuXG5mdW5jdGlvbiBnZXRDbGlwcGluZ1JlY3QoX3JlZikge1xuICBsZXQge1xuICAgIGVsZW1lbnQsXG4gICAgYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5LFxuICAgIHN0cmF0ZWd5XG4gIH0gPSBfcmVmO1xuICBjb25zdCBlbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nQW5jZXN0b3JzJyA/IGlzVG9wTGF5ZXIoZWxlbWVudCkgPyBbXSA6IGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyhlbGVtZW50LCB0aGlzLl9jKSA6IFtdLmNvbmNhdChib3VuZGFyeSk7XG4gIGNvbnN0IGNsaXBwaW5nQW5jZXN0b3JzID0gWy4uLmVsZW1lbnRDbGlwcGluZ0FuY2VzdG9ycywgcm9vdEJvdW5kYXJ5XTtcbiAgY29uc3QgZmlyc3RDbGlwcGluZ0FuY2VzdG9yID0gY2xpcHBpbmdBbmNlc3RvcnNbMF07XG4gIGNvbnN0IGNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nQW5jZXN0b3JzLnJlZHVjZSgoYWNjUmVjdCwgY2xpcHBpbmdBbmNlc3RvcikgPT4ge1xuICAgIGNvbnN0IHJlY3QgPSBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBmaXJzdENsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IGNsaXBwaW5nUmVjdC5yaWdodCAtIGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIGhlaWdodDogY2xpcHBpbmdSZWN0LmJvdHRvbSAtIGNsaXBwaW5nUmVjdC50b3AsXG4gICAgeDogY2xpcHBpbmdSZWN0LmxlZnQsXG4gICAgeTogY2xpcHBpbmdSZWN0LnRvcFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREaW1lbnNpb25zKGVsZW1lbnQpIHtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdFJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoZWxlbWVudCwgb2Zmc2V0UGFyZW50LCBzdHJhdGVneSkge1xuICBjb25zdCBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGlzRml4ZWQgPSBzdHJhdGVneSA9PT0gJ2ZpeGVkJztcbiAgY29uc3QgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCB0cnVlLCBpc0ZpeGVkLCBvZmZzZXRQYXJlbnQpO1xuICBsZXQgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50KSB7XG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgLy8gSWYgdGhlIDxib2R5PiBzY3JvbGxiYXIgYXBwZWFycyBvbiB0aGUgbGVmdCAoZS5nLiBSVEwgc3lzdGVtcykuIFVzZVxuICAgICAgLy8gRmlyZWZveCB3aXRoIGxheW91dC5zY3JvbGxiYXIuc2lkZSA9IDMgaW4gYWJvdXQ6Y29uZmlnIHRvIHRlc3QgdGhpcy5cbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgaHRtbE9mZnNldCA9IGRvY3VtZW50RWxlbWVudCAmJiAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQgPyBnZXRIVE1MT2Zmc2V0KGRvY3VtZW50RWxlbWVudCwgc2Nyb2xsKSA6IGNyZWF0ZUNvb3JkcygwKTtcbiAgY29uc3QgeCA9IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54IC0gaHRtbE9mZnNldC54O1xuICBjb25zdCB5ID0gcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55IC0gaHRtbE9mZnNldC55O1xuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGljUG9zaXRpb25lZChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJztcbn1cblxuZnVuY3Rpb24gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChwb2x5ZmlsbCkge1xuICAgIHJldHVybiBwb2x5ZmlsbChlbGVtZW50KTtcbiAgfVxuICBsZXQgcmF3T2Zmc2V0UGFyZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG5cbiAgLy8gRmlyZWZveCByZXR1cm5zIHRoZSA8aHRtbD4gZWxlbWVudCBhcyB0aGUgb2Zmc2V0UGFyZW50IGlmIGl0J3Mgbm9uLXN0YXRpYyxcbiAgLy8gd2hpbGUgQ2hyb21lIGFuZCBTYWZhcmkgcmV0dXJuIHRoZSA8Ym9keT4gZWxlbWVudC4gVGhlIDxib2R5PiBlbGVtZW50IG11c3RcbiAgLy8gYmUgdXNlZCB0byBwZXJmb3JtIHRoZSBjb3JyZWN0IGNhbGN1bGF0aW9ucyBldmVuIGlmIHRoZSA8aHRtbD4gZWxlbWVudCBpc1xuICAvLyBub24tc3RhdGljLlxuICBpZiAoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpID09PSByYXdPZmZzZXRQYXJlbnQpIHtcbiAgICByYXdPZmZzZXRQYXJlbnQgPSByYXdPZmZzZXRQYXJlbnQub3duZXJEb2N1bWVudC5ib2R5O1xuICB9XG4gIHJldHVybiByYXdPZmZzZXRQYXJlbnQ7XG59XG5cbi8vIEdldHMgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgcG9zaXRpb25lZCBlbGVtZW50LiBIYW5kbGVzIHNvbWUgZWRnZSBjYXNlcyxcbi8vIHN1Y2ggYXMgdGFibGUgYW5jZXN0b3JzIGFuZCBjcm9zcyBicm93c2VyIGJ1Z3MuXG5mdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCwgcG9seWZpbGwpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBpZiAoaXNUb3BMYXllcihlbGVtZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgbGV0IHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gICAgd2hpbGUgKHN2Z09mZnNldFBhcmVudCAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQoc3ZnT2Zmc2V0UGFyZW50KSAmJiAhaXNTdGF0aWNQb3NpdGlvbmVkKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHN2Z09mZnNldFBhcmVudDtcbiAgICAgIH1cbiAgICAgIHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoc3ZnT2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBsZXQgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCk7XG4gIHdoaWxlIChvZmZzZXRQYXJlbnQgJiYgaXNUYWJsZUVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSkge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50LCBwb2x5ZmlsbCk7XG4gIH1cbiAgaWYgKG9mZnNldFBhcmVudCAmJiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSAmJiAhaXNDb250YWluaW5nQmxvY2sob2Zmc2V0UGFyZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luO1xufVxuXG5jb25zdCBnZXRFbGVtZW50UmVjdHMgPSBhc3luYyBmdW5jdGlvbiAoZGF0YSkge1xuICBjb25zdCBnZXRPZmZzZXRQYXJlbnRGbiA9IHRoaXMuZ2V0T2Zmc2V0UGFyZW50IHx8IGdldE9mZnNldFBhcmVudDtcbiAgY29uc3QgZ2V0RGltZW5zaW9uc0ZuID0gdGhpcy5nZXREaW1lbnNpb25zO1xuICBjb25zdCBmbG9hdGluZ0RpbWVuc2lvbnMgPSBhd2FpdCBnZXREaW1lbnNpb25zRm4oZGF0YS5mbG9hdGluZyk7XG4gIHJldHVybiB7XG4gICAgcmVmZXJlbmNlOiBnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudChkYXRhLnJlZmVyZW5jZSwgYXdhaXQgZ2V0T2Zmc2V0UGFyZW50Rm4oZGF0YS5mbG9hdGluZyksIGRhdGEuc3RyYXRlZ3kpLFxuICAgIGZsb2F0aW5nOiB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICAgIHdpZHRoOiBmbG9hdGluZ0RpbWVuc2lvbnMud2lkdGgsXG4gICAgICBoZWlnaHQ6IGZsb2F0aW5nRGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBpc1JUTChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XG59XG5cbmNvbnN0IHBsYXRmb3JtID0ge1xuICBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCxcbiAgZ2V0RG9jdW1lbnRFbGVtZW50LFxuICBnZXRDbGlwcGluZ1JlY3QsXG4gIGdldE9mZnNldFBhcmVudCxcbiAgZ2V0RWxlbWVudFJlY3RzLFxuICBnZXRDbGllbnRSZWN0cyxcbiAgZ2V0RGltZW5zaW9ucyxcbiAgZ2V0U2NhbGUsXG4gIGlzRWxlbWVudCxcbiAgaXNSVExcbn07XG5cbmZ1bmN0aW9uIHJlY3RzQXJlRXF1YWwoYSwgYikge1xuICByZXR1cm4gYS54ID09PSBiLnggJiYgYS55ID09PSBiLnkgJiYgYS53aWR0aCA9PT0gYi53aWR0aCAmJiBhLmhlaWdodCA9PT0gYi5oZWlnaHQ7XG59XG5cbi8vIGh0dHBzOi8vc2FtdGhvci5hdS8yMDIxL29ic2VydmluZy1kb20vXG5mdW5jdGlvbiBvYnNlcnZlTW92ZShlbGVtZW50LCBvbk1vdmUpIHtcbiAgbGV0IGlvID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRJZDtcbiAgY29uc3Qgcm9vdCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICB2YXIgX2lvO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgIChfaW8gPSBpbykgPT0gbnVsbCB8fCBfaW8uZGlzY29ubmVjdCgpO1xuICAgIGlvID0gbnVsbDtcbiAgfVxuICBmdW5jdGlvbiByZWZyZXNoKHNraXAsIHRocmVzaG9sZCkge1xuICAgIGlmIChza2lwID09PSB2b2lkIDApIHtcbiAgICAgIHNraXAgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRocmVzaG9sZCA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJlc2hvbGQgPSAxO1xuICAgIH1cbiAgICBjbGVhbnVwKCk7XG4gICAgY29uc3QgZWxlbWVudFJlY3RGb3JSb290TWFyZ2luID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudFJlY3RGb3JSb290TWFyZ2luO1xuICAgIGlmICghc2tpcCkge1xuICAgICAgb25Nb3ZlKCk7XG4gICAgfVxuICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnNldFRvcCA9IGZsb29yKHRvcCk7XG4gICAgY29uc3QgaW5zZXRSaWdodCA9IGZsb29yKHJvb3QuY2xpZW50V2lkdGggLSAobGVmdCArIHdpZHRoKSk7XG4gICAgY29uc3QgaW5zZXRCb3R0b20gPSBmbG9vcihyb290LmNsaWVudEhlaWdodCAtICh0b3AgKyBoZWlnaHQpKTtcbiAgICBjb25zdCBpbnNldExlZnQgPSBmbG9vcihsZWZ0KTtcbiAgICBjb25zdCByb290TWFyZ2luID0gLWluc2V0VG9wICsgXCJweCBcIiArIC1pbnNldFJpZ2h0ICsgXCJweCBcIiArIC1pbnNldEJvdHRvbSArIFwicHggXCIgKyAtaW5zZXRMZWZ0ICsgXCJweFwiO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByb290TWFyZ2luLFxuICAgICAgdGhyZXNob2xkOiBtYXgoMCwgbWluKDEsIHRocmVzaG9sZCkpIHx8IDFcbiAgICB9O1xuICAgIGxldCBpc0ZpcnN0VXBkYXRlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBoYW5kbGVPYnNlcnZlKGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IHJhdGlvID0gZW50cmllc1swXS5pbnRlcnNlY3Rpb25SYXRpbztcbiAgICAgIGlmIChyYXRpbyAhPT0gdGhyZXNob2xkKSB7XG4gICAgICAgIGlmICghaXNGaXJzdFVwZGF0ZSkge1xuICAgICAgICAgIHJldHVybiByZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyYXRpbykge1xuICAgICAgICAgIC8vIElmIHRoZSByZWZlcmVuY2UgaXMgY2xpcHBlZCwgdGhlIHJhdGlvIGlzIDAuIFRocm90dGxlIHRoZSByZWZyZXNoXG4gICAgICAgICAgLy8gdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wIG9mIHVwZGF0ZXMuXG4gICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICByZWZyZXNoKGZhbHNlLCAxZS03KTtcbiAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWZyZXNoKGZhbHNlLCByYXRpbyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChyYXRpbyA9PT0gMSAmJiAhcmVjdHNBcmVFcXVhbChlbGVtZW50UmVjdEZvclJvb3RNYXJnaW4sIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKSB7XG4gICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBldmVuIHRob3VnaCB0aGUgcmF0aW8gaXMgcmVwb3J0ZWQgYXMgMSwgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaXMgbm90IGFjdHVhbGx5IGZ1bGx5IHdpdGhpbiB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyByb290XG4gICAgICAgIC8vIGFyZWEgYW55bW9yZS4gVGhpcyBjYW4gaGFwcGVuIHVuZGVyIHBlcmZvcm1hbmNlIGNvbnN0cmFpbnRzLiBUaGlzIG1heVxuICAgICAgICAvLyBiZSBhIGJ1ZyBpbiB0aGUgYnJvd3NlcidzIEludGVyc2VjdGlvbk9ic2VydmVyIGltcGxlbWVudGF0aW9uLiBUb1xuICAgICAgICAvLyB3b3JrIGFyb3VuZCB0aGlzLCB3ZSBjb21wYXJlIHRoZSBlbGVtZW50J3MgYm91bmRpbmcgcmVjdCBub3cgd2l0aFxuICAgICAgICAvLyB3aGF0IGl0IHdhcyBhdCB0aGUgdGltZSB3ZSBjcmVhdGVkIHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlci4gSWYgdGhleVxuICAgICAgICAvLyBhcmUgbm90IGVxdWFsIHRoZW4gdGhlIGVsZW1lbnQgbW92ZWQsIHNvIHdlIHJlZnJlc2guXG4gICAgICAgIHJlZnJlc2goKTtcbiAgICAgIH1cbiAgICAgIGlzRmlyc3RVcGRhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBPbGRlciBicm93c2VycyBkb24ndCBzdXBwb3J0IGEgYGRvY3VtZW50YCBhcyB0aGUgcm9vdCBhbmQgd2lsbCB0aHJvdyBhblxuICAgIC8vIGVycm9yLlxuICAgIHRyeSB7XG4gICAgICBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVPYnNlcnZlLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIC8vIEhhbmRsZSA8aWZyYW1lPnNcbiAgICAgICAgcm9vdDogcm9vdC5vd25lckRvY3VtZW50XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVPYnNlcnZlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaW8ub2JzZXJ2ZShlbGVtZW50KTtcbiAgfVxuICByZWZyZXNoKHRydWUpO1xuICByZXR1cm4gY2xlYW51cDtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoZW4gbmVjZXNzYXJ5LlxuICogU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgbW91bnRlZCBvbiB0aGUgRE9NIG9yXG4gKiB2aXNpYmxlIG9uIHRoZSBzY3JlZW4uXG4gKiBAcmV0dXJucyBjbGVhbnVwIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGludm9rZWQgd2hlbiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpc1xuICogcmVtb3ZlZCBmcm9tIHRoZSBET00gb3IgaGlkZGVuIGZyb20gdGhlIHNjcmVlbi5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvVXBkYXRlXG4gKi9cbmZ1bmN0aW9uIGF1dG9VcGRhdGUocmVmZXJlbmNlLCBmbG9hdGluZywgdXBkYXRlLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGFuY2VzdG9yU2Nyb2xsID0gdHJ1ZSxcbiAgICBhbmNlc3RvclJlc2l6ZSA9IHRydWUsXG4gICAgZWxlbWVudFJlc2l6ZSA9IHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJyxcbiAgICBsYXlvdXRTaGlmdCA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJyxcbiAgICBhbmltYXRpb25GcmFtZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCByZWZlcmVuY2VFbCA9IHVud3JhcEVsZW1lbnQocmVmZXJlbmNlKTtcbiAgY29uc3QgYW5jZXN0b3JzID0gYW5jZXN0b3JTY3JvbGwgfHwgYW5jZXN0b3JSZXNpemUgPyBbLi4uKHJlZmVyZW5jZUVsID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMocmVmZXJlbmNlRWwpIDogW10pLCAuLi5nZXRPdmVyZmxvd0FuY2VzdG9ycyhmbG9hdGluZyldIDogW107XG4gIGFuY2VzdG9ycy5mb3JFYWNoKGFuY2VzdG9yID0+IHtcbiAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUsIHtcbiAgICAgIHBhc3NpdmU6IHRydWVcbiAgICB9KTtcbiAgICBhbmNlc3RvclJlc2l6ZSAmJiBhbmNlc3Rvci5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpO1xuICB9KTtcbiAgY29uc3QgY2xlYW51cElvID0gcmVmZXJlbmNlRWwgJiYgbGF5b3V0U2hpZnQgPyBvYnNlcnZlTW92ZShyZWZlcmVuY2VFbCwgdXBkYXRlKSA6IG51bGw7XG4gIGxldCByZW9ic2VydmVGcmFtZSA9IC0xO1xuICBsZXQgcmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICBpZiAoZWxlbWVudFJlc2l6ZSkge1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKF9yZWYgPT4ge1xuICAgICAgbGV0IFtmaXJzdEVudHJ5XSA9IF9yZWY7XG4gICAgICBpZiAoZmlyc3RFbnRyeSAmJiBmaXJzdEVudHJ5LnRhcmdldCA9PT0gcmVmZXJlbmNlRWwgJiYgcmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgLy8gUHJldmVudCB1cGRhdGUgbG9vcHMgd2hlbiB1c2luZyB0aGUgYHNpemVgIG1pZGRsZXdhcmUuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMTc0MFxuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyZW9ic2VydmVGcmFtZSk7XG4gICAgICAgIHJlb2JzZXJ2ZUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyO1xuICAgICAgICAgIChfcmVzaXplT2JzZXJ2ZXIgPSByZXNpemVPYnNlcnZlcikgPT0gbnVsbCB8fCBfcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShmbG9hdGluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdXBkYXRlKCk7XG4gICAgfSk7XG4gICAgaWYgKHJlZmVyZW5jZUVsICYmICFhbmltYXRpb25GcmFtZSkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShyZWZlcmVuY2VFbCk7XG4gICAgfVxuICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICB9XG4gIGxldCBmcmFtZUlkO1xuICBsZXQgcHJldlJlZlJlY3QgPSBhbmltYXRpb25GcmFtZSA/IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpIDogbnVsbDtcbiAgaWYgKGFuaW1hdGlvbkZyYW1lKSB7XG4gICAgZnJhbWVMb29wKCk7XG4gIH1cbiAgZnVuY3Rpb24gZnJhbWVMb29wKCkge1xuICAgIGNvbnN0IG5leHRSZWZSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHJlZmVyZW5jZSk7XG4gICAgaWYgKHByZXZSZWZSZWN0ICYmICFyZWN0c0FyZUVxdWFsKHByZXZSZWZSZWN0LCBuZXh0UmVmUmVjdCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs": /*!****************************************************************************!*\ !*** ./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs ***! \****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ autoUpdate: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoUpdate),\n/* harmony export */ computePosition: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ platform: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.platform),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size),\n/* harmony export */ useFloating: () => (/* binding */ useFloating)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n\n\n\n\n\n\nvar index = typeof document !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_2__.useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_2__.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = react__WEBPACK_IMPORTED_MODULE_2__.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = react__WEBPACK_IMPORTED_MODULE_2__.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\n const [_floating, _setFloating] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\n const setReference = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const floatingRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const dataRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition)(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n react_dom__WEBPACK_IMPORTED_MODULE_3__.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.offset)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.shift)(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.limitShift)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.flip)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.size)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoPlacement)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.hide)(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.inline)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZPO0FBQzlIO0FBQ2hGO0FBQ29CO0FBQ2I7O0FBRXRDLDhDQUE4QyxrREFBZSxHQUFHLDRDQUFTOztBQUV6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixVQUFVO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFVBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyx5Q0FBWTtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQUk7QUFDVjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMEJBQTBCLDJDQUFjO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0EsR0FBRztBQUNILGtEQUFrRCwyQ0FBYztBQUNoRTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsMkNBQWM7QUFDcEQsb0NBQW9DLDJDQUFjO0FBQ2xELHVCQUF1Qiw4Q0FBaUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLDhDQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsdUJBQXVCLHlDQUFZO0FBQ25DLHNCQUFzQix5Q0FBWTtBQUNsQyxrQkFBa0IseUNBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOENBQWlCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGlFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnREFBa0I7QUFDMUI7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSCx1QkFBdUIseUNBQVk7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZUFBZSwwQ0FBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxtQkFBbUIsMENBQWE7QUFDaEM7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsMENBQWE7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsaUJBQWlCLHVEQUFPO0FBQ3hCO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVEQUFPO0FBQ3RCO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx3REFBUTtBQUNiO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHVEQUFPO0FBQ1o7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw0REFBWTtBQUNqQjtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHNEQUFNO0FBQ1g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxzREFBTTtBQUNYO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssK0RBQWU7QUFDcEI7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssc0RBQU07QUFDWDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx3REFBUTtBQUNiO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVpRyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3JlYWN0LWRvbS9kaXN0L2Zsb2F0aW5nLXVpLnJlYWN0LWRvbS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBhcnJvdyBhcyBhcnJvdyQyLCBvZmZzZXQgYXMgb2Zmc2V0JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGxpbWl0U2hpZnQgYXMgbGltaXRTaGlmdCQxLCBmbGlwIGFzIGZsaXAkMSwgc2l6ZSBhcyBzaXplJDEsIGF1dG9QbGFjZW1lbnQgYXMgYXV0b1BsYWNlbWVudCQxLCBoaWRlIGFzIGhpZGUkMSwgaW5saW5lIGFzIGlubGluZSQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5leHBvcnQgeyBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgcGxhdGZvcm0gfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxudmFyIGluZGV4ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuLy8gRm9yayBvZiBgZmFzdC1kZWVwLWVxdWFsYCB0aGF0IG9ubHkgZG9lcyB0aGUgY29tcGFyaXNvbnMgd2UgbmVlZCBhbmQgY29tcGFyZXNcbi8vIGZ1bmN0aW9uc1xuZnVuY3Rpb24gZGVlcEVxdWFsKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyAmJiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGxldCBsZW5ndGg7XG4gIGxldCBpO1xuICBsZXQga2V5cztcbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICAgIGlmICghZGVlcEVxdWFsKGFbaV0sIGJbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIGlmIChsZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGlmICghe30uaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgIGlmIChrZXkgPT09ICdfb3duZXInICYmIGEuJCR0eXBlb2YpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuXG5mdW5jdGlvbiBnZXREUFIoZWxlbWVudCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBjb25zdCB3aW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICByZXR1cm4gd2luLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbn1cblxuZnVuY3Rpb24gcm91bmRCeURQUihlbGVtZW50LCB2YWx1ZSkge1xuICBjb25zdCBkcHIgPSBnZXREUFIoZWxlbWVudCk7XG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogZHByKSAvIGRwcjtcbn1cblxuZnVuY3Rpb24gdXNlTGF0ZXN0UmVmKHZhbHVlKSB7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGEgZmxvYXRpbmcgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VGbG9hdGluZ1xuICovXG5mdW5jdGlvbiB1c2VGbG9hdGluZyhvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICBtaWRkbGV3YXJlID0gW10sXG4gICAgcGxhdGZvcm0sXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIHJlZmVyZW5jZTogZXh0ZXJuYWxSZWZlcmVuY2UsXG4gICAgICBmbG9hdGluZzogZXh0ZXJuYWxGbG9hdGluZ1xuICAgIH0gPSB7fSxcbiAgICB0cmFuc2Zvcm0gPSB0cnVlLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkLFxuICAgIG9wZW5cbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgc3RyYXRlZ3ksXG4gICAgcGxhY2VtZW50LFxuICAgIG1pZGRsZXdhcmVEYXRhOiB7fSxcbiAgICBpc1Bvc2l0aW9uZWQ6IGZhbHNlXG4gIH0pO1xuICBjb25zdCBbbGF0ZXN0TWlkZGxld2FyZSwgc2V0TGF0ZXN0TWlkZGxld2FyZV0gPSBSZWFjdC51c2VTdGF0ZShtaWRkbGV3YXJlKTtcbiAgaWYgKCFkZWVwRXF1YWwobGF0ZXN0TWlkZGxld2FyZSwgbWlkZGxld2FyZSkpIHtcbiAgICBzZXRMYXRlc3RNaWRkbGV3YXJlKG1pZGRsZXdhcmUpO1xuICB9XG4gIGNvbnN0IFtfcmVmZXJlbmNlLCBfc2V0UmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbX2Zsb2F0aW5nLCBfc2V0RmxvYXRpbmddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IHNldFJlZmVyZW5jZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGlmIChub2RlICE9PSByZWZlcmVuY2VSZWYuY3VycmVudCkge1xuICAgICAgcmVmZXJlbmNlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgX3NldFJlZmVyZW5jZShub2RlKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0RmxvYXRpbmcgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBpZiAobm9kZSAhPT0gZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBfc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgfVxuICB9LCBbXSk7XG4gIGNvbnN0IHJlZmVyZW5jZUVsID0gZXh0ZXJuYWxSZWZlcmVuY2UgfHwgX3JlZmVyZW5jZTtcbiAgY29uc3QgZmxvYXRpbmdFbCA9IGV4dGVybmFsRmxvYXRpbmcgfHwgX2Zsb2F0aW5nO1xuICBjb25zdCByZWZlcmVuY2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGZsb2F0aW5nUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKGRhdGEpO1xuICBjb25zdCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZCA9IHdoaWxlRWxlbWVudHNNb3VudGVkICE9IG51bGw7XG4gIGNvbnN0IHdoaWxlRWxlbWVudHNNb3VudGVkUmVmID0gdXNlTGF0ZXN0UmVmKHdoaWxlRWxlbWVudHNNb3VudGVkKTtcbiAgY29uc3QgcGxhdGZvcm1SZWYgPSB1c2VMYXRlc3RSZWYocGxhdGZvcm0pO1xuICBjb25zdCBvcGVuUmVmID0gdXNlTGF0ZXN0UmVmKG9wZW4pO1xuICBjb25zdCB1cGRhdGUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFyZWZlcmVuY2VSZWYuY3VycmVudCB8fCAhZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBwbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmU6IGxhdGVzdE1pZGRsZXdhcmVcbiAgICB9O1xuICAgIGlmIChwbGF0Zm9ybVJlZi5jdXJyZW50KSB7XG4gICAgICBjb25maWcucGxhdGZvcm0gPSBwbGF0Zm9ybVJlZi5jdXJyZW50O1xuICAgIH1cbiAgICBjb21wdXRlUG9zaXRpb24ocmVmZXJlbmNlUmVmLmN1cnJlbnQsIGZsb2F0aW5nUmVmLmN1cnJlbnQsIGNvbmZpZykudGhlbihkYXRhID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAvLyBUaGUgZmxvYXRpbmcgZWxlbWVudCdzIHBvc2l0aW9uIG1heSBiZSByZWNvbXB1dGVkIHdoaWxlIGl0J3MgY2xvc2VkXG4gICAgICAgIC8vIGJ1dCBzdGlsbCBtb3VudGVkIChzdWNoIGFzIHdoZW4gdHJhbnNpdGlvbmluZyBvdXQpLiBUbyBlbnN1cmVcbiAgICAgICAgLy8gYGlzUG9zaXRpb25lZGAgd2lsbCBiZSBgZmFsc2VgIGluaXRpYWxseSBvbiB0aGUgbmV4dCBvcGVuLCBhdm9pZFxuICAgICAgICAvLyBzZXR0aW5nIGl0IHRvIGB0cnVlYCB3aGVuIGBvcGVuID09PSBmYWxzZWAgKG11c3QgYmUgc3BlY2lmaWVkKS5cbiAgICAgICAgaXNQb3NpdGlvbmVkOiBvcGVuUmVmLmN1cnJlbnQgIT09IGZhbHNlXG4gICAgICB9O1xuICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmICFkZWVwRXF1YWwoZGF0YVJlZi5jdXJyZW50LCBmdWxsRGF0YSkpIHtcbiAgICAgICAgZGF0YVJlZi5jdXJyZW50ID0gZnVsbERhdGE7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgc2V0RGF0YShmdWxsRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbbGF0ZXN0TWlkZGxld2FyZSwgcGxhY2VtZW50LCBzdHJhdGVneSwgcGxhdGZvcm1SZWYsIG9wZW5SZWZdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChvcGVuID09PSBmYWxzZSAmJiBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICBzZXREYXRhKGRhdGEgPT4gKHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgaXNQb3NpdGlvbmVkOiBmYWxzZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgY29uc3QgaXNNb3VudGVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAocmVmZXJlbmNlRWwpIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlRWw7XG4gICAgaWYgKGZsb2F0aW5nRWwpIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBmbG9hdGluZ0VsO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiBmbG9hdGluZ0VsKSB7XG4gICAgICBpZiAod2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gd2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudChyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbCwgdXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSwgW3JlZmVyZW5jZUVsLCBmbG9hdGluZ0VsLCB1cGRhdGUsIHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZF0pO1xuICBjb25zdCByZWZzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlUmVmLFxuICAgIGZsb2F0aW5nOiBmbG9hdGluZ1JlZixcbiAgICBzZXRSZWZlcmVuY2UsXG4gICAgc2V0RmxvYXRpbmdcbiAgfSksIFtzZXRSZWZlcmVuY2UsIHNldEZsb2F0aW5nXSk7XG4gIGNvbnN0IGVsZW1lbnRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlRWwsXG4gICAgZmxvYXRpbmc6IGZsb2F0aW5nRWxcbiAgfSksIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbF0pO1xuICBjb25zdCBmbG9hdGluZ1N0eWxlcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxTdHlsZXMgPSB7XG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICBsZWZ0OiAwLFxuICAgICAgdG9wOiAwXG4gICAgfTtcbiAgICBpZiAoIWVsZW1lbnRzLmZsb2F0aW5nKSB7XG4gICAgICByZXR1cm4gaW5pdGlhbFN0eWxlcztcbiAgICB9XG4gICAgY29uc3QgeCA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueCk7XG4gICAgY29uc3QgeSA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueSk7XG4gICAgaWYgKHRyYW5zZm9ybSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5pdGlhbFN0eWxlcyxcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiLFxuICAgICAgICAuLi4oZ2V0RFBSKGVsZW1lbnRzLmZsb2F0aW5nKSA+PSAxLjUgJiYge1xuICAgICAgICAgIHdpbGxDaGFuZ2U6ICd0cmFuc2Zvcm0nXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IHN0cmF0ZWd5LFxuICAgICAgbGVmdDogeCxcbiAgICAgIHRvcDogeVxuICAgIH07XG4gIH0sIFtzdHJhdGVneSwgdHJhbnNmb3JtLCBlbGVtZW50cy5mbG9hdGluZywgZGF0YS54LCBkYXRhLnldKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5kYXRhLFxuICAgIHVwZGF0ZSxcbiAgICByZWZzLFxuICAgIGVsZW1lbnRzLFxuICAgIGZsb2F0aW5nU3R5bGVzXG4gIH0pLCBbZGF0YSwgdXBkYXRlLCByZWZzLCBlbGVtZW50cywgZmxvYXRpbmdTdHlsZXNdKTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93JDEgPSBvcHRpb25zID0+IHtcbiAgZnVuY3Rpb24gaXNSZWYodmFsdWUpIHtcbiAgICByZXR1cm4ge30uaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2N1cnJlbnQnKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdhcnJvdycsXG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBlbGVtZW50LFxuICAgICAgICBwYWRkaW5nXG4gICAgICB9ID0gdHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zKHN0YXRlKSA6IG9wdGlvbnM7XG4gICAgICBpZiAoZWxlbWVudCAmJiBpc1JlZihlbGVtZW50KSkge1xuICAgICAgICBpZiAoZWxlbWVudC5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJyb3ckMih7XG4gICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQsXG4gICAgICAgICAgICBwYWRkaW5nXG4gICAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBhcnJvdyQyKHtcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIHBhZGRpbmdcbiAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcbiAqIHNwZWNpZmllZCBheGVzLlxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gKi9cbmNvbnN0IG9mZnNldCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5vZmZzZXQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLnNoaWZ0JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4ubGltaXRTaGlmdCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5mbGlwJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0aGF0IGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IOKAlFxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxuICogd2lkdGggb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NpemVcbiAqL1xuY29uc3Qgc2l6ZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5zaXplJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmF1dG9QbGFjZW1lbnQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaGlkZSQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaW5saW5lJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogVGhpcyB3cmFwcyB0aGUgY29yZSBgYXJyb3dgIG1pZGRsZXdhcmUgdG8gYWxsb3cgUmVhY3QgcmVmcyBhcyB0aGUgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvd1xuICovXG5jb25zdCBhcnJvdyA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5hcnJvdyQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplLCB1c2VGbG9hdGluZyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs": /*!************************************************************************!*\ !*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle),\n/* harmony export */ getContainingBlock: () => (/* binding */ getContainingBlock),\n/* harmony export */ getDocumentElement: () => (/* binding */ getDocumentElement),\n/* harmony export */ getFrameElement: () => (/* binding */ getFrameElement),\n/* harmony export */ getNearestOverflowAncestor: () => (/* binding */ getNearestOverflowAncestor),\n/* harmony export */ getNodeName: () => (/* binding */ getNodeName),\n/* harmony export */ getNodeScroll: () => (/* binding */ getNodeScroll),\n/* harmony export */ getOverflowAncestors: () => (/* binding */ getOverflowAncestors),\n/* harmony export */ getParentNode: () => (/* binding */ getParentNode),\n/* harmony export */ getWindow: () => (/* binding */ getWindow),\n/* harmony export */ isContainingBlock: () => (/* binding */ isContainingBlock),\n/* harmony export */ isElement: () => (/* binding */ isElement),\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),\n/* harmony export */ isLastTraversableNode: () => (/* binding */ isLastTraversableNode),\n/* harmony export */ isNode: () => (/* binding */ isNode),\n/* harmony export */ isOverflowElement: () => (/* binding */ isOverflowElement),\n/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot),\n/* harmony export */ isTableElement: () => (/* binding */ isTableElement),\n/* harmony export */ isTopLayer: () => (/* binding */ isTopLayer),\n/* harmony export */ isWebKit: () => (/* binding */ isWebKit)\n/* harmony export */ });\nfunction hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdWIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGhhc1dpbmRvdygpIHtcbiAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xufVxuZnVuY3Rpb24gZ2V0Tm9kZU5hbWUobm9kZSkge1xuICBpZiAoaXNOb2RlKG5vZGUpKSB7XG4gICAgcmV0dXJuIChub2RlLm5vZGVOYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIC8vIE1vY2tlZCBub2RlcyBpbiB0ZXN0aW5nIGVudmlyb25tZW50cyBtYXkgbm90IGJlIGluc3RhbmNlcyBvZiBOb2RlLiBCeVxuICAvLyByZXR1cm5pbmcgYCNkb2N1bWVudGAgYW4gaW5maW5pdGUgbG9vcCB3b24ndCBvY2N1ci5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8yMzE3XG4gIHJldHVybiAnI2RvY3VtZW50Jztcbn1cbmZ1bmN0aW9uIGdldFdpbmRvdyhub2RlKSB7XG4gIHZhciBfbm9kZSRvd25lckRvY3VtZW50O1xuICByZXR1cm4gKG5vZGUgPT0gbnVsbCB8fCAoX25vZGUkb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8IHdpbmRvdztcbn1cbmZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChub2RlKSB7XG4gIHZhciBfcmVmO1xuICByZXR1cm4gKF9yZWYgPSAoaXNOb2RlKG5vZGUpID8gbm9kZS5vd25lckRvY3VtZW50IDogbm9kZS5kb2N1bWVudCkgfHwgd2luZG93LmRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX3JlZi5kb2N1bWVudEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc05vZGUodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBOb2RlIHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5Ob2RlO1xufVxuZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuSFRNTEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3QodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSB8fCB0eXBlb2YgU2hhZG93Um9vdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgU2hhZG93Um9vdCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuU2hhZG93Um9vdDtcbn1cbmZ1bmN0aW9uIGlzT3ZlcmZsb3dFbGVtZW50KGVsZW1lbnQpIHtcbiAgY29uc3Qge1xuICAgIG92ZXJmbG93LFxuICAgIG92ZXJmbG93WCxcbiAgICBvdmVyZmxvd1ksXG4gICAgZGlzcGxheVxuICB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgcmV0dXJuIC9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KG92ZXJmbG93ICsgb3ZlcmZsb3dZICsgb3ZlcmZsb3dYKSAmJiAhWydpbmxpbmUnLCAnY29udGVudHMnXS5pbmNsdWRlcyhkaXNwbGF5KTtcbn1cbmZ1bmN0aW9uIGlzVGFibGVFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIFsndGFibGUnLCAndGQnLCAndGgnXS5pbmNsdWRlcyhnZXROb2RlTmFtZShlbGVtZW50KSk7XG59XG5mdW5jdGlvbiBpc1RvcExheWVyKGVsZW1lbnQpIHtcbiAgcmV0dXJuIFsnOnBvcG92ZXItb3BlbicsICc6bW9kYWwnXS5zb21lKHNlbGVjdG9yID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcyhzZWxlY3Rvcik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0NvbnRhaW5pbmdCbG9jayhlbGVtZW50T3JDc3MpIHtcbiAgY29uc3Qgd2Via2l0ID0gaXNXZWJLaXQoKTtcbiAgY29uc3QgY3NzID0gaXNFbGVtZW50KGVsZW1lbnRPckNzcykgPyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRPckNzcykgOiBlbGVtZW50T3JDc3M7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10cmFuc2Zvcm1zLTIvI2luZGl2aWR1YWwtdHJhbnNmb3Jtc1xuICByZXR1cm4gWyd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlJywgJ3NjYWxlJywgJ3JvdGF0ZScsICdwZXJzcGVjdGl2ZSddLnNvbWUodmFsdWUgPT4gY3NzW3ZhbHVlXSA/IGNzc1t2YWx1ZV0gIT09ICdub25lJyA6IGZhbHNlKSB8fCAoY3NzLmNvbnRhaW5lclR5cGUgPyBjc3MuY29udGFpbmVyVHlwZSAhPT0gJ25vcm1hbCcgOiBmYWxzZSkgfHwgIXdlYmtpdCAmJiAoY3NzLmJhY2tkcm9wRmlsdGVyID8gY3NzLmJhY2tkcm9wRmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgIXdlYmtpdCAmJiAoY3NzLmZpbHRlciA/IGNzcy5maWx0ZXIgIT09ICdub25lJyA6IGZhbHNlKSB8fCBbJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUnLCAnc2NhbGUnLCAncm90YXRlJywgJ3BlcnNwZWN0aXZlJywgJ2ZpbHRlciddLnNvbWUodmFsdWUgPT4gKGNzcy53aWxsQ2hhbmdlIHx8ICcnKS5pbmNsdWRlcyh2YWx1ZSkpIHx8IFsncGFpbnQnLCAnbGF5b3V0JywgJ3N0cmljdCcsICdjb250ZW50J10uc29tZSh2YWx1ZSA9PiAoY3NzLmNvbnRhaW4gfHwgJycpLmluY2x1ZGVzKHZhbHVlKSk7XG59XG5mdW5jdGlvbiBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkge1xuICBsZXQgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBpZiAoaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIGlmIChpc1RvcExheWVyKGN1cnJlbnROb2RlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBpc1dlYktpdCgpIHtcbiAgaWYgKHR5cGVvZiBDU1MgPT09ICd1bmRlZmluZWQnIHx8ICFDU1Muc3VwcG9ydHMpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIENTUy5zdXBwb3J0cygnLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXInLCAnbm9uZScpO1xufVxuZnVuY3Rpb24gaXNMYXN0VHJhdmVyc2FibGVOb2RlKG5vZGUpIHtcbiAgcmV0dXJuIFsnaHRtbCcsICdib2R5JywgJyNkb2N1bWVudCddLmluY2x1ZGVzKGdldE5vZGVOYW1lKG5vZGUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0V2luZG93KGVsZW1lbnQpLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG59XG5mdW5jdGlvbiBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpIHtcbiAgaWYgKGlzRWxlbWVudChlbGVtZW50KSkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxMZWZ0OiBlbGVtZW50LnNjcm9sbExlZnQsXG4gICAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsWCxcbiAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsWVxuICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gIGlmIChnZXROb2RlTmFtZShub2RlKSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID1cbiAgLy8gU3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGUuXG4gIG5vZGUuYXNzaWduZWRTbG90IHx8XG4gIC8vIERPTSBFbGVtZW50IGRldGVjdGVkLlxuICBub2RlLnBhcmVudE5vZGUgfHxcbiAgLy8gU2hhZG93Um9vdCBkZXRlY3RlZC5cbiAgaXNTaGFkb3dSb290KG5vZGUpICYmIG5vZGUuaG9zdCB8fFxuICAvLyBGYWxsYmFjay5cbiAgZ2V0RG9jdW1lbnRFbGVtZW50KG5vZGUpO1xuICByZXR1cm4gaXNTaGFkb3dSb290KHJlc3VsdCkgPyByZXN1bHQuaG9zdCA6IHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yKG5vZGUpIHtcbiAgY29uc3QgcGFyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUobm9kZSk7XG4gIGlmIChpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50ID8gbm9kZS5vd25lckRvY3VtZW50LmJvZHkgOiBub2RlLmJvZHk7XG4gIH1cbiAgaWYgKGlzSFRNTEVsZW1lbnQocGFyZW50Tm9kZSkgJiYgaXNPdmVyZmxvd0VsZW1lbnQocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gcGFyZW50Tm9kZTtcbiAgfVxuICByZXR1cm4gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IocGFyZW50Tm9kZSk7XG59XG5mdW5jdGlvbiBnZXRPdmVyZmxvd0FuY2VzdG9ycyhub2RlLCBsaXN0LCB0cmF2ZXJzZUlmcmFtZXMpIHtcbiAgdmFyIF9ub2RlJG93bmVyRG9jdW1lbnQyO1xuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG4gIGlmICh0cmF2ZXJzZUlmcmFtZXMgPT09IHZvaWQgMCkge1xuICAgIHRyYXZlcnNlSWZyYW1lcyA9IHRydWU7XG4gIH1cbiAgY29uc3Qgc2Nyb2xsYWJsZUFuY2VzdG9yID0gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSk7XG4gIGNvbnN0IGlzQm9keSA9IHNjcm9sbGFibGVBbmNlc3RvciA9PT0gKChfbm9kZSRvd25lckRvY3VtZW50MiA9IG5vZGUub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJG93bmVyRG9jdW1lbnQyLmJvZHkpO1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsYWJsZUFuY2VzdG9yKTtcbiAgaWYgKGlzQm9keSkge1xuICAgIGNvbnN0IGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudCh3aW4pO1xuICAgIHJldHVybiBsaXN0LmNvbmNhdCh3aW4sIHdpbi52aXN1YWxWaWV3cG9ydCB8fCBbXSwgaXNPdmVyZmxvd0VsZW1lbnQoc2Nyb2xsYWJsZUFuY2VzdG9yKSA/IHNjcm9sbGFibGVBbmNlc3RvciA6IFtdLCBmcmFtZUVsZW1lbnQgJiYgdHJhdmVyc2VJZnJhbWVzID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZnJhbWVFbGVtZW50KSA6IFtdKTtcbiAgfVxuICByZXR1cm4gbGlzdC5jb25jYXQoc2Nyb2xsYWJsZUFuY2VzdG9yLCBnZXRPdmVyZmxvd0FuY2VzdG9ycyhzY3JvbGxhYmxlQW5jZXN0b3IsIFtdLCB0cmF2ZXJzZUlmcmFtZXMpKTtcbn1cbmZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudCh3aW4pIHtcbiAgcmV0dXJuIHdpbi5wYXJlbnQgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHdpbi5wYXJlbnQpID8gd2luLmZyYW1lRWxlbWVudCA6IG51bGw7XG59XG5cbmV4cG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGdldENvbnRhaW5pbmdCbG9jaywgZ2V0RG9jdW1lbnRFbGVtZW50LCBnZXRGcmFtZUVsZW1lbnQsIGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yLCBnZXROb2RlTmFtZSwgZ2V0Tm9kZVNjcm9sbCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGdldFdpbmRvdywgaXNDb250YWluaW5nQmxvY2ssIGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc05vZGUsIGlzT3ZlcmZsb3dFbGVtZW50LCBpc1NoYWRvd1Jvb3QsIGlzVGFibGVFbGVtZW50LCBpc1RvcExheWVyLCBpc1dlYktpdCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs": /*!********************************************************************!*\ !*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs ***! \********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alignments: () => (/* binding */ alignments),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ createCoords: () => (/* binding */ createCoords),\n/* harmony export */ evaluate: () => (/* binding */ evaluate),\n/* harmony export */ expandPaddingObject: () => (/* binding */ expandPaddingObject),\n/* harmony export */ floor: () => (/* binding */ floor),\n/* harmony export */ getAlignment: () => (/* binding */ getAlignment),\n/* harmony export */ getAlignmentAxis: () => (/* binding */ getAlignmentAxis),\n/* harmony export */ getAlignmentSides: () => (/* binding */ getAlignmentSides),\n/* harmony export */ getAxisLength: () => (/* binding */ getAxisLength),\n/* harmony export */ getExpandedPlacements: () => (/* binding */ getExpandedPlacements),\n/* harmony export */ getOppositeAlignmentPlacement: () => (/* binding */ getOppositeAlignmentPlacement),\n/* harmony export */ getOppositeAxis: () => (/* binding */ getOppositeAxis),\n/* harmony export */ getOppositeAxisPlacements: () => (/* binding */ getOppositeAxisPlacements),\n/* harmony export */ getOppositePlacement: () => (/* binding */ getOppositePlacement),\n/* harmony export */ getPaddingObject: () => (/* binding */ getPaddingObject),\n/* harmony export */ getSide: () => (/* binding */ getSide),\n/* harmony export */ getSideAxis: () => (/* binding */ getSideAxis),\n/* harmony export */ max: () => (/* binding */ max),\n/* harmony export */ min: () => (/* binding */ min),\n/* harmony export */ placements: () => (/* binding */ placements),\n/* harmony export */ rectToClientRect: () => (/* binding */ rectToClientRect),\n/* harmony export */ round: () => (/* binding */ round),\n/* harmony export */ sides: () => (/* binding */ sides)\n/* harmony export */ });\n/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXlXIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXN0b20gcG9zaXRpb25pbmcgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdmlydHVhbC1lbGVtZW50c1xuICovXG5cbmNvbnN0IHNpZGVzID0gWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXTtcbmNvbnN0IGFsaWdubWVudHMgPSBbJ3N0YXJ0JywgJ2VuZCddO1xuY29uc3QgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9zaWRlcy5yZWR1Y2UoKGFjYywgc2lkZSkgPT4gYWNjLmNvbmNhdChzaWRlLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzBdLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzFdKSwgW10pO1xuY29uc3QgbWluID0gTWF0aC5taW47XG5jb25zdCBtYXggPSBNYXRoLm1heDtcbmNvbnN0IHJvdW5kID0gTWF0aC5yb3VuZDtcbmNvbnN0IGZsb29yID0gTWF0aC5mbG9vcjtcbmNvbnN0IGNyZWF0ZUNvb3JkcyA9IHYgPT4gKHtcbiAgeDogdixcbiAgeTogdlxufSk7XG5jb25zdCBvcHBvc2l0ZVNpZGVNYXAgPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5jb25zdCBvcHBvc2l0ZUFsaWdubWVudE1hcCA9IHtcbiAgc3RhcnQ6ICdlbmQnLFxuICBlbmQ6ICdzdGFydCdcbn07XG5mdW5jdGlvbiBjbGFtcChzdGFydCwgdmFsdWUsIGVuZCkge1xuICByZXR1cm4gbWF4KHN0YXJ0LCBtaW4odmFsdWUsIGVuZCkpO1xufVxuZnVuY3Rpb24gZXZhbHVhdGUodmFsdWUsIHBhcmFtKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZShwYXJhbSkgOiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldFNpZGUocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzFdO1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBeGlzKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd4JyA/ICd5JyA6ICd4Jztcbn1cbmZ1bmN0aW9uIGdldEF4aXNMZW5ndGgoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xufVxuZnVuY3Rpb24gZ2V0U2lkZUF4aXMocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpID8gJ3knIDogJ3gnO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIGdldE9wcG9zaXRlQXhpcyhnZXRTaWRlQXhpcyhwbGFjZW1lbnQpKTtcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCkge1xuICBpZiAocnRsID09PSB2b2lkIDApIHtcbiAgICBydGwgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50QXhpcyA9IGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KTtcbiAgY29uc3QgbGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgbGV0IG1haW5BbGlnbm1lbnRTaWRlID0gYWxpZ25tZW50QXhpcyA9PT0gJ3gnID8gYWxpZ25tZW50ID09PSAocnRsID8gJ2VuZCcgOiAnc3RhcnQnKSA/ICdyaWdodCcgOiAnbGVmdCcgOiBhbGlnbm1lbnQgPT09ICdzdGFydCcgPyAnYm90dG9tJyA6ICd0b3AnO1xuICBpZiAocmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gPiByZWN0cy5mbG9hdGluZ1tsZW5ndGhdKSB7XG4gICAgbWFpbkFsaWdubWVudFNpZGUgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChtYWluQWxpZ25tZW50U2lkZSk7XG4gIH1cbiAgcmV0dXJuIFttYWluQWxpZ25tZW50U2lkZSwgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpXTtcbn1cbmZ1bmN0aW9uIGdldEV4cGFuZGVkUGxhY2VtZW50cyhwbGFjZW1lbnQpIHtcbiAgY29uc3Qgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvc3RhcnR8ZW5kL2csIGFsaWdubWVudCA9PiBvcHBvc2l0ZUFsaWdubWVudE1hcFthbGlnbm1lbnRdKTtcbn1cbmZ1bmN0aW9uIGdldFNpZGVMaXN0KHNpZGUsIGlzU3RhcnQsIHJ0bCkge1xuICBjb25zdCBsciA9IFsnbGVmdCcsICdyaWdodCddO1xuICBjb25zdCBybCA9IFsncmlnaHQnLCAnbGVmdCddO1xuICBjb25zdCB0YiA9IFsndG9wJywgJ2JvdHRvbSddO1xuICBjb25zdCBidCA9IFsnYm90dG9tJywgJ3RvcCddO1xuICBzd2l0Y2ggKHNpZGUpIHtcbiAgICBjYXNlICd0b3AnOlxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBpZiAocnRsKSByZXR1cm4gaXNTdGFydCA/IHJsIDogbHI7XG4gICAgICByZXR1cm4gaXNTdGFydCA/IGxyIDogcmw7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuIGlzU3RhcnQgPyB0YiA6IGJ0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW107XG4gIH1cbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMocGxhY2VtZW50LCBmbGlwQWxpZ25tZW50LCBkaXJlY3Rpb24sIHJ0bCkge1xuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgbGV0IGxpc3QgPSBnZXRTaWRlTGlzdChnZXRTaWRlKHBsYWNlbWVudCksIGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JywgcnRsKTtcbiAgaWYgKGFsaWdubWVudCkge1xuICAgIGxpc3QgPSBsaXN0Lm1hcChzaWRlID0+IHNpZGUgKyBcIi1cIiArIGFsaWdubWVudCk7XG4gICAgaWYgKGZsaXBBbGlnbm1lbnQpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChsaXN0Lm1hcChnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbGlzdDtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLCBzaWRlID0+IG9wcG9zaXRlU2lkZU1hcFtzaWRlXSk7XG59XG5mdW5jdGlvbiBleHBhbmRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgLi4ucGFkZGluZ1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFkZGluZ09iamVjdChwYWRkaW5nKSB7XG4gIHJldHVybiB0eXBlb2YgcGFkZGluZyAhPT0gJ251bWJlcicgPyBleHBhbmRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIDoge1xuICAgIHRvcDogcGFkZGluZyxcbiAgICByaWdodDogcGFkZGluZyxcbiAgICBib3R0b206IHBhZGRpbmcsXG4gICAgbGVmdDogcGFkZGluZ1xuICB9O1xufVxuZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH0gPSByZWN0O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB0b3A6IHksXG4gICAgbGVmdDogeCxcbiAgICByaWdodDogeCArIHdpZHRoLFxuICAgIGJvdHRvbTogeSArIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZXhwb3J0IHsgYWxpZ25tZW50cywgY2xhbXAsIGNyZWF0ZUNvb3JkcywgZXZhbHVhdGUsIGV4cGFuZFBhZGRpbmdPYmplY3QsIGZsb29yLCBnZXRBbGlnbm1lbnQsIGdldEFsaWdubWVudEF4aXMsIGdldEFsaWdubWVudFNpZGVzLCBnZXRBeGlzTGVuZ3RoLCBnZXRFeHBhbmRlZFBsYWNlbWVudHMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZUF4aXMsIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMsIGdldE9wcG9zaXRlUGxhY2VtZW50LCBnZXRQYWRkaW5nT2JqZWN0LCBnZXRTaWRlLCBnZXRTaWRlQXhpcywgbWF4LCBtaW4sIHBsYWNlbWVudHMsIHJlY3RUb0NsaWVudFJlY3QsIHJvdW5kLCBzaWRlcyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@hookform/resolvers/dist/resolvers.mjs": /*!*************************************************************!*\ !*** ./node_modules/@hookform/resolvers/dist/resolvers.mjs ***! \*************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toNestErrors: () => (/* binding */ r),\n/* harmony export */ validateFieldsNatively: () => (/* binding */ o)\n/* harmony export */ });\n/* harmony import */ var react_hook_form__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-hook-form */ \"(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\");\nconst s=(e,s,o)=>{if(e&&\"reportValidity\"in e){const r=(0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.get)(o,s);e.setCustomValidity(r&&r.message||\"\"),e.reportValidity()}},o=(t,e)=>{for(const o in e.fields){const r=e.fields[o];r&&r.ref&&\"reportValidity\"in r.ref?s(r.ref,o,t):r.refs&&r.refs.forEach(e=>s(e,o,t))}},r=(s,r)=>{r.shouldUseNativeValidation&&o(s,r);const f={};for(const o in s){const n=(0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.get)(r.fields,o),a=Object.assign(s[o]||{},{ref:n&&n.ref});if(i(r.names||Object.keys(s),o)){const s=Object.assign({},(0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.get)(f,o));(0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.set)(s,\"root\",a),(0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.set)(f,o,s)}else (0,react_hook_form__WEBPACK_IMPORTED_MODULE_0__.set)(f,o,a)}return f},i=(t,e)=>t.some(t=>t.startsWith(e+\".\"));\n//# sourceMappingURL=resolvers.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaG9va2Zvcm0vcmVzb2x2ZXJzL2Rpc3QvcmVzb2x2ZXJzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBK0Msa0JBQWtCLDRCQUE0QixRQUFRLG9EQUFDLE1BQU0sMERBQTBELFdBQVcseUJBQXlCLG9CQUFvQixxRkFBcUYsV0FBVyxvQ0FBb0MsV0FBVyxrQkFBa0IsUUFBUSxvREFBQyxxQ0FBcUMsRUFBRSxhQUFhLEVBQUUsaUNBQWlDLHdCQUF3QixDQUFDLG9EQUFDLE9BQU8sb0RBQUMsYUFBYSxvREFBQyxRQUFRLEtBQUssb0RBQUMsUUFBUSxTQUFTLHlDQUErRjtBQUM3b0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0Bob29rZm9ybS9yZXNvbHZlcnMvZGlzdC9yZXNvbHZlcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydHtnZXQgYXMgdCxzZXQgYXMgZX1mcm9tXCJyZWFjdC1ob29rLWZvcm1cIjtjb25zdCBzPShlLHMsbyk9PntpZihlJiZcInJlcG9ydFZhbGlkaXR5XCJpbiBlKXtjb25zdCByPXQobyxzKTtlLnNldEN1c3RvbVZhbGlkaXR5KHImJnIubWVzc2FnZXx8XCJcIiksZS5yZXBvcnRWYWxpZGl0eSgpfX0sbz0odCxlKT0+e2Zvcihjb25zdCBvIGluIGUuZmllbGRzKXtjb25zdCByPWUuZmllbGRzW29dO3ImJnIucmVmJiZcInJlcG9ydFZhbGlkaXR5XCJpbiByLnJlZj9zKHIucmVmLG8sdCk6ci5yZWZzJiZyLnJlZnMuZm9yRWFjaChlPT5zKGUsbyx0KSl9fSxyPShzLHIpPT57ci5zaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uJiZvKHMscik7Y29uc3QgZj17fTtmb3IoY29uc3QgbyBpbiBzKXtjb25zdCBuPXQoci5maWVsZHMsbyksYT1PYmplY3QuYXNzaWduKHNbb118fHt9LHtyZWY6biYmbi5yZWZ9KTtpZihpKHIubmFtZXN8fE9iamVjdC5rZXlzKHMpLG8pKXtjb25zdCBzPU9iamVjdC5hc3NpZ24oe30sdChmLG8pKTtlKHMsXCJyb290XCIsYSksZShmLG8scyl9ZWxzZSBlKGYsbyxhKX1yZXR1cm4gZn0saT0odCxlKT0+dC5zb21lKHQ9PnQuc3RhcnRzV2l0aChlK1wiLlwiKSk7ZXhwb3J0e3IgYXMgdG9OZXN0RXJyb3JzLG8gYXMgdmFsaWRhdGVGaWVsZHNOYXRpdmVseX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@hookform/resolvers/dist/resolvers.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@hookform/resolvers/zod/dist/zod.mjs": /*!***********************************************************!*\ !*** ./node_modules/@hookform/resolvers/zod/dist/zod.mjs ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ zodResolver: () => (/* binding */ t)\n/* harmony export */ });\n/* harmony import */ var _hookform_resolvers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @hookform/resolvers */ \"(app-pages-browser)/./node_modules/@hookform/resolvers/dist/resolvers.mjs\");\n/* harmony import */ var react_hook_form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-hook-form */ \"(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\");\nvar n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=(0,react_hook_form__WEBPACK_IMPORTED_MODULE_1__.appendErrors)(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&(0,_hookform_resolvers__WEBPACK_IMPORTED_MODULE_0__.validateFieldsNatively)({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:(0,_hookform_resolvers__WEBPACK_IMPORTED_MODULE_0__.toNestErrors)(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};\n//# sourceMappingURL=zod.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaG9va2Zvcm0vcmVzb2x2ZXJzL3pvZC9kaXN0L3pvZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQThILG9CQUFvQixhQUFhLFNBQVMsRUFBRSxtREFBbUQsK0JBQStCLGlDQUFpQyxNQUFNLCtCQUErQixXQUFXLGtCQUFrQix3REFBd0Qsb0NBQW9DLGlCQUFpQixFQUFFLEtBQUssZ0NBQWdDLEtBQUssNkRBQUMsNkNBQTZDLFVBQVUsU0FBUyxtQkFBbUIsd0JBQXdCLGtCQUFrQixJQUFJLHFDQUFxQyxJQUFJLHFGQUFxRixvQ0FBb0MsMkVBQUMsR0FBRyxLQUFLLFNBQVMsbUJBQW1CLEVBQUUsU0FBUyxZQUFZLG9DQUFvQyxlQUFlLGVBQWUsOENBQThDLFdBQVcsU0FBUyxRQUFRLGlFQUFDLHNFQUFzRSxRQUFRLEdBQUcsU0FBUyw0QkFBcUQ7QUFDcG5DIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AaG9va2Zvcm0vcmVzb2x2ZXJzL3pvZC9kaXN0L3pvZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0e3ZhbGlkYXRlRmllbGRzTmF0aXZlbHkgYXMgcix0b05lc3RFcnJvcnMgYXMgZX1mcm9tXCJAaG9va2Zvcm0vcmVzb2x2ZXJzXCI7aW1wb3J0e2FwcGVuZEVycm9ycyBhcyBvfWZyb21cInJlYWN0LWhvb2stZm9ybVwiO3ZhciBuPWZ1bmN0aW9uKHIsZSl7Zm9yKHZhciBuPXt9O3IubGVuZ3RoOyl7dmFyIHQ9clswXSxzPXQuY29kZSxpPXQubWVzc2FnZSxhPXQucGF0aC5qb2luKFwiLlwiKTtpZighblthXSlpZihcInVuaW9uRXJyb3JzXCJpbiB0KXt2YXIgdT10LnVuaW9uRXJyb3JzWzBdLmVycm9yc1swXTtuW2FdPXttZXNzYWdlOnUubWVzc2FnZSx0eXBlOnUuY29kZX19ZWxzZSBuW2FdPXttZXNzYWdlOmksdHlwZTpzfTtpZihcInVuaW9uRXJyb3JzXCJpbiB0JiZ0LnVuaW9uRXJyb3JzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3JzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHIucHVzaChlKX0pfSksZSl7dmFyIGM9blthXS50eXBlcyxmPWMmJmNbdC5jb2RlXTtuW2FdPW8oYSxlLG4scyxmP1tdLmNvbmNhdChmLHQubWVzc2FnZSk6dC5tZXNzYWdlKX1yLnNoaWZ0KCl9cmV0dXJuIG59LHQ9ZnVuY3Rpb24obyx0LHMpe3JldHVybiB2b2lkIDA9PT1zJiYocz17fSksZnVuY3Rpb24oaSxhLHUpe3RyeXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ1bmN0aW9uKGUsbil7dHJ5e3ZhciBhPVByb21pc2UucmVzb2x2ZShvW1wic3luY1wiPT09cy5tb2RlP1wicGFyc2VcIjpcInBhcnNlQXN5bmNcIl0oaSx0KSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdS5zaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uJiZyKHt9LHUpLHtlcnJvcnM6e30sdmFsdWVzOnMucmF3P2k6ZX19KX1jYXRjaChyKXtyZXR1cm4gbihyKX1yZXR1cm4gYSYmYS50aGVuP2EudGhlbih2b2lkIDAsbik6YX0oMCxmdW5jdGlvbihyKXtpZihmdW5jdGlvbihyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShudWxsPT1yP3ZvaWQgMDpyLmVycm9ycyl9KHIpKXJldHVybnt2YWx1ZXM6e30sZXJyb3JzOmUobihyLmVycm9ycywhdS5zaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uJiZcImFsbFwiPT09dS5jcml0ZXJpYU1vZGUpLHUpfTt0aHJvdyByfSkpfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19fTtleHBvcnR7dCBhcyB6b2RSZXNvbHZlcn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD16b2QubW9kdWxlLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@hookform/resolvers/zod/dist/zod.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-5UK33FSU.mjs": /*!*************************************************************************!*\ !*** ./node_modules/@mswjs/interceptors/lib/browser/chunk-5UK33FSU.mjs ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FetchResponse: () => (/* binding */ FetchResponse),\n/* harmony export */ IS_PATCHED_MODULE: () => (/* binding */ IS_PATCHED_MODULE)\n/* harmony export */ });\n// src/glossary.ts\nvar IS_PATCHED_MODULE = Symbol(\"isPatchedModule\");\n\n// src/utils/fetchUtils.ts\nvar _FetchResponse = class extends Response {\n static isConfigurableStatusCode(status) {\n return status >= 200 && status <= 599;\n }\n static isRedirectResponse(status) {\n return _FetchResponse.STATUS_CODES_WITH_REDIRECT.includes(status);\n }\n /**\n * Returns a boolean indicating whether the given response status\n * code represents a response that can have a body.\n */\n static isResponseWithBody(status) {\n return !_FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status);\n }\n static setUrl(url, response) {\n if (!url) {\n return;\n }\n if (response.url != \"\") {\n return;\n }\n Object.defineProperty(response, \"url\", {\n value: url,\n enumerable: true,\n configurable: true,\n writable: false\n });\n }\n /**\n * Parses the given raw HTTP headers into a Fetch API `Headers` instance.\n */\n static parseRawHeaders(rawHeaders) {\n const headers = new Headers();\n for (let line = 0; line < rawHeaders.length; line += 2) {\n headers.append(rawHeaders[line], rawHeaders[line + 1]);\n }\n return headers;\n }\n constructor(body, init = {}) {\n var _a;\n const status = (_a = init.status) != null ? _a : 200;\n const safeStatus = _FetchResponse.isConfigurableStatusCode(status) ? status : 200;\n const finalBody = _FetchResponse.isResponseWithBody(status) ? body : null;\n super(finalBody, {\n ...init,\n status: safeStatus\n });\n if (status !== safeStatus) {\n const stateSymbol = Object.getOwnPropertySymbols(this).find(\n (symbol) => symbol.description === \"state\"\n );\n if (stateSymbol) {\n const state = Reflect.get(this, stateSymbol);\n Reflect.set(state, \"status\", status);\n } else {\n Object.defineProperty(this, \"status\", {\n value: status,\n enumerable: true,\n configurable: true,\n writable: false\n });\n }\n }\n _FetchResponse.setUrl(init.url, this);\n }\n};\nvar FetchResponse = _FetchResponse;\n/**\n * Response status codes for responses that cannot have body.\n * @see https://fetch.spec.whatwg.org/#statuses\n */\nFetchResponse.STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304];\nFetchResponse.STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308];\n\n\n//# sourceMappingURL=chunk-5UK33FSU.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AbXN3anMvaW50ZXJjZXB0b3JzL2xpYi9icm93c2VyL2NodW5rLTVVSzMzRlNVLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiwwQkFBMEI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQG1zd2pzL2ludGVyY2VwdG9ycy9saWIvYnJvd3Nlci9jaHVuay01VUszM0ZTVS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2dsb3NzYXJ5LnRzXG52YXIgSVNfUEFUQ0hFRF9NT0RVTEUgPSBTeW1ib2woXCJpc1BhdGNoZWRNb2R1bGVcIik7XG5cbi8vIHNyYy91dGlscy9mZXRjaFV0aWxzLnRzXG52YXIgX0ZldGNoUmVzcG9uc2UgPSBjbGFzcyBleHRlbmRzIFJlc3BvbnNlIHtcbiAgc3RhdGljIGlzQ29uZmlndXJhYmxlU3RhdHVzQ29kZShzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPD0gNTk5O1xuICB9XG4gIHN0YXRpYyBpc1JlZGlyZWN0UmVzcG9uc2Uoc3RhdHVzKSB7XG4gICAgcmV0dXJuIF9GZXRjaFJlc3BvbnNlLlNUQVRVU19DT0RFU19XSVRIX1JFRElSRUNULmluY2x1ZGVzKHN0YXR1cyk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZ2l2ZW4gcmVzcG9uc2Ugc3RhdHVzXG4gICAqIGNvZGUgcmVwcmVzZW50cyBhIHJlc3BvbnNlIHRoYXQgY2FuIGhhdmUgYSBib2R5LlxuICAgKi9cbiAgc3RhdGljIGlzUmVzcG9uc2VXaXRoQm9keShzdGF0dXMpIHtcbiAgICByZXR1cm4gIV9GZXRjaFJlc3BvbnNlLlNUQVRVU19DT0RFU19XSVRIT1VUX0JPRFkuaW5jbHVkZXMoc3RhdHVzKTtcbiAgfVxuICBzdGF0aWMgc2V0VXJsKHVybCwgcmVzcG9uc2UpIHtcbiAgICBpZiAoIXVybCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UudXJsICE9IFwiXCIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcInVybFwiLCB7XG4gICAgICB2YWx1ZTogdXJsLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIGdpdmVuIHJhdyBIVFRQIGhlYWRlcnMgaW50byBhIEZldGNoIEFQSSBgSGVhZGVyc2AgaW5zdGFuY2UuXG4gICAqL1xuICBzdGF0aWMgcGFyc2VSYXdIZWFkZXJzKHJhd0hlYWRlcnMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICBmb3IgKGxldCBsaW5lID0gMDsgbGluZSA8IHJhd0hlYWRlcnMubGVuZ3RoOyBsaW5lICs9IDIpIHtcbiAgICAgIGhlYWRlcnMuYXBwZW5kKHJhd0hlYWRlcnNbbGluZV0sIHJhd0hlYWRlcnNbbGluZSArIDFdKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cbiAgY29uc3RydWN0b3IoYm9keSwgaW5pdCA9IHt9KSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHN0YXR1cyA9IChfYSA9IGluaXQuc3RhdHVzKSAhPSBudWxsID8gX2EgOiAyMDA7XG4gICAgY29uc3Qgc2FmZVN0YXR1cyA9IF9GZXRjaFJlc3BvbnNlLmlzQ29uZmlndXJhYmxlU3RhdHVzQ29kZShzdGF0dXMpID8gc3RhdHVzIDogMjAwO1xuICAgIGNvbnN0IGZpbmFsQm9keSA9IF9GZXRjaFJlc3BvbnNlLmlzUmVzcG9uc2VXaXRoQm9keShzdGF0dXMpID8gYm9keSA6IG51bGw7XG4gICAgc3VwZXIoZmluYWxCb2R5LCB7XG4gICAgICAuLi5pbml0LFxuICAgICAgc3RhdHVzOiBzYWZlU3RhdHVzXG4gICAgfSk7XG4gICAgaWYgKHN0YXR1cyAhPT0gc2FmZVN0YXR1cykge1xuICAgICAgY29uc3Qgc3RhdGVTeW1ib2wgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRoaXMpLmZpbmQoXG4gICAgICAgIChzeW1ib2wpID0+IHN5bWJvbC5kZXNjcmlwdGlvbiA9PT0gXCJzdGF0ZVwiXG4gICAgICApO1xuICAgICAgaWYgKHN0YXRlU3ltYm9sKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gUmVmbGVjdC5nZXQodGhpcywgc3RhdGVTeW1ib2wpO1xuICAgICAgICBSZWZsZWN0LnNldChzdGF0ZSwgXCJzdGF0dXNcIiwgc3RhdHVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcInN0YXR1c1wiLCB7XG4gICAgICAgICAgdmFsdWU6IHN0YXR1cyxcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIF9GZXRjaFJlc3BvbnNlLnNldFVybChpbml0LnVybCwgdGhpcyk7XG4gIH1cbn07XG52YXIgRmV0Y2hSZXNwb25zZSA9IF9GZXRjaFJlc3BvbnNlO1xuLyoqXG4gKiBSZXNwb25zZSBzdGF0dXMgY29kZXMgZm9yIHJlc3BvbnNlcyB0aGF0IGNhbm5vdCBoYXZlIGJvZHkuXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNzdGF0dXNlc1xuICovXG5GZXRjaFJlc3BvbnNlLlNUQVRVU19DT0RFU19XSVRIT1VUX0JPRFkgPSBbMTAxLCAxMDMsIDIwNCwgMjA1LCAzMDRdO1xuRmV0Y2hSZXNwb25zZS5TVEFUVVNfQ09ERVNfV0lUSF9SRURJUkVDVCA9IFszMDEsIDMwMiwgMzAzLCAzMDcsIDMwOF07XG5cbmV4cG9ydCB7XG4gIElTX1BBVENIRURfTU9EVUxFLFxuICBGZXRjaFJlc3BvbnNlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2h1bmstNVVLMzNGU1UubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-5UK33FSU.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs": /*!*************************************************************************!*\ !*** ./node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeBuffer: () => (/* binding */ decodeBuffer),\n/* harmony export */ encodeBuffer: () => (/* binding */ encodeBuffer),\n/* harmony export */ toArrayBuffer: () => (/* binding */ toArrayBuffer)\n/* harmony export */ });\n// src/utils/bufferUtils.ts\nvar encoder = new TextEncoder();\nfunction encodeBuffer(text) {\n return encoder.encode(text);\n}\nfunction decodeBuffer(buffer, encoding) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buffer);\n}\nfunction toArrayBuffer(array) {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n );\n}\n\n\n//# sourceMappingURL=chunk-6HYIRFX2.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AbXN3anMvaW50ZXJjZXB0b3JzL2xpYi9icm93c2VyL2NodW5rLTZIWUlSRlgyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBTUU7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQG1zd2pzL2ludGVyY2VwdG9ycy9saWIvYnJvd3Nlci9jaHVuay02SFlJUkZYMi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3V0aWxzL2J1ZmZlclV0aWxzLnRzXG52YXIgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuZnVuY3Rpb24gZW5jb2RlQnVmZmVyKHRleHQpIHtcbiAgcmV0dXJuIGVuY29kZXIuZW5jb2RlKHRleHQpO1xufVxuZnVuY3Rpb24gZGVjb2RlQnVmZmVyKGJ1ZmZlciwgZW5jb2RpbmcpIHtcbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZyk7XG4gIHJldHVybiBkZWNvZGVyLmRlY29kZShidWZmZXIpO1xufVxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlcihhcnJheSkge1xuICByZXR1cm4gYXJyYXkuYnVmZmVyLnNsaWNlKFxuICAgIGFycmF5LmJ5dGVPZmZzZXQsXG4gICAgYXJyYXkuYnl0ZU9mZnNldCArIGFycmF5LmJ5dGVMZW5ndGhcbiAgKTtcbn1cblxuZXhwb3J0IHtcbiAgZW5jb2RlQnVmZmVyLFxuICBkZWNvZGVCdWZmZXIsXG4gIHRvQXJyYXlCdWZmZXJcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaHVuay02SFlJUkZYMi5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs": /*!*************************************************************************!*\ !*** ./node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTERNAL_REQUEST_ID_HEADER_NAME: () => (/* binding */ INTERNAL_REQUEST_ID_HEADER_NAME),\n/* harmony export */ Interceptor: () => (/* binding */ Interceptor),\n/* harmony export */ InterceptorReadyState: () => (/* binding */ InterceptorReadyState),\n/* harmony export */ createRequestId: () => (/* binding */ createRequestId),\n/* harmony export */ deleteGlobalSymbol: () => (/* binding */ deleteGlobalSymbol),\n/* harmony export */ getGlobalSymbol: () => (/* binding */ getGlobalSymbol)\n/* harmony export */ });\n/* harmony import */ var _open_draft_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @open-draft/logger */ \"(app-pages-browser)/./node_modules/@open-draft/logger/lib/index.mjs\");\n/* harmony import */ var strict_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! strict-event-emitter */ \"(app-pages-browser)/./node_modules/strict-event-emitter/lib/index.mjs\");\n// src/Interceptor.ts\n\n\nvar INTERNAL_REQUEST_ID_HEADER_NAME = \"x-interceptors-internal-request-id\";\nfunction getGlobalSymbol(symbol) {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || void 0\n );\n}\nfunction setGlobalSymbol(symbol, value) {\n globalThis[symbol] = value;\n}\nfunction deleteGlobalSymbol(symbol) {\n delete globalThis[symbol];\n}\nvar InterceptorReadyState = /* @__PURE__ */ ((InterceptorReadyState2) => {\n InterceptorReadyState2[\"INACTIVE\"] = \"INACTIVE\";\n InterceptorReadyState2[\"APPLYING\"] = \"APPLYING\";\n InterceptorReadyState2[\"APPLIED\"] = \"APPLIED\";\n InterceptorReadyState2[\"DISPOSING\"] = \"DISPOSING\";\n InterceptorReadyState2[\"DISPOSED\"] = \"DISPOSED\";\n return InterceptorReadyState2;\n})(InterceptorReadyState || {});\nvar Interceptor = class {\n constructor(symbol) {\n this.symbol = symbol;\n this.readyState = \"INACTIVE\" /* INACTIVE */;\n this.emitter = new strict_event_emitter__WEBPACK_IMPORTED_MODULE_1__.Emitter();\n this.subscriptions = [];\n this.logger = new _open_draft_logger__WEBPACK_IMPORTED_MODULE_0__.Logger(symbol.description);\n this.emitter.setMaxListeners(0);\n this.logger.info(\"constructing the interceptor...\");\n }\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n checkEnvironment() {\n return true;\n }\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n apply() {\n const logger = this.logger.extend(\"apply\");\n logger.info(\"applying the interceptor...\");\n if (this.readyState === \"APPLIED\" /* APPLIED */) {\n logger.info(\"intercepted already applied!\");\n return;\n }\n const shouldApply = this.checkEnvironment();\n if (!shouldApply) {\n logger.info(\"the interceptor cannot be applied in this environment!\");\n return;\n }\n this.readyState = \"APPLYING\" /* APPLYING */;\n const runningInstance = this.getInstance();\n if (runningInstance) {\n logger.info(\"found a running instance, reusing...\");\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event);\n runningInstance.emitter.addListener(event, listener);\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener);\n logger.info('removed proxied \"%s\" listener!', event);\n });\n return this;\n };\n this.readyState = \"APPLIED\" /* APPLIED */;\n return;\n }\n logger.info(\"no running instance found, setting up a new instance...\");\n this.setup();\n this.setInstance();\n this.readyState = \"APPLIED\" /* APPLIED */;\n }\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n setup() {\n }\n /**\n * Listen to the interceptor's public events.\n */\n on(event, listener) {\n const logger = this.logger.extend(\"on\");\n if (this.readyState === \"DISPOSING\" /* DISPOSING */ || this.readyState === \"DISPOSED\" /* DISPOSED */) {\n logger.info(\"cannot listen to events, already disposed!\");\n return this;\n }\n logger.info('adding \"%s\" event listener:', event, listener);\n this.emitter.on(event, listener);\n return this;\n }\n once(event, listener) {\n this.emitter.once(event, listener);\n return this;\n }\n off(event, listener) {\n this.emitter.off(event, listener);\n return this;\n }\n removeAllListeners(event) {\n this.emitter.removeAllListeners(event);\n return this;\n }\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n dispose() {\n const logger = this.logger.extend(\"dispose\");\n if (this.readyState === \"DISPOSED\" /* DISPOSED */) {\n logger.info(\"cannot dispose, already disposed!\");\n return;\n }\n logger.info(\"disposing the interceptor...\");\n this.readyState = \"DISPOSING\" /* DISPOSING */;\n if (!this.getInstance()) {\n logger.info(\"no interceptors running, skipping dispose...\");\n return;\n }\n this.clearInstance();\n logger.info(\"global symbol deleted:\", getGlobalSymbol(this.symbol));\n if (this.subscriptions.length > 0) {\n logger.info(\"disposing of %d subscriptions...\", this.subscriptions.length);\n for (const dispose of this.subscriptions) {\n dispose();\n }\n this.subscriptions = [];\n logger.info(\"disposed of all subscriptions!\", this.subscriptions.length);\n }\n this.emitter.removeAllListeners();\n logger.info(\"destroyed the listener!\");\n this.readyState = \"DISPOSED\" /* DISPOSED */;\n }\n getInstance() {\n var _a;\n const instance = getGlobalSymbol(this.symbol);\n this.logger.info(\"retrieved global instance:\", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);\n return instance;\n }\n setInstance() {\n setGlobalSymbol(this.symbol, this);\n this.logger.info(\"set global instance!\", this.symbol.description);\n }\n clearInstance() {\n deleteGlobalSymbol(this.symbol);\n this.logger.info(\"cleared global instance!\", this.symbol.description);\n }\n};\n\n// src/createRequestId.ts\nfunction createRequestId() {\n return Math.random().toString(16).slice(2);\n}\n\n\n//# sourceMappingURL=chunk-QED3Q6Z2.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AbXN3anMvaW50ZXJjZXB0b3JzL2xpYi9icm93c2VyL2NodW5rLVFFRDNRNloyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQzRDO0FBQ0c7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNkJBQTZCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHlEQUFPO0FBQzlCO0FBQ0Esc0JBQXNCLHNEQUFNO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQVNFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0Btc3dqcy9pbnRlcmNlcHRvcnMvbGliL2Jyb3dzZXIvY2h1bmstUUVEM1E2WjIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9JbnRlcmNlcHRvci50c1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIkBvcGVuLWRyYWZ0L2xvZ2dlclwiO1xuaW1wb3J0IHsgRW1pdHRlciB9IGZyb20gXCJzdHJpY3QtZXZlbnQtZW1pdHRlclwiO1xudmFyIElOVEVSTkFMX1JFUVVFU1RfSURfSEVBREVSX05BTUUgPSBcIngtaW50ZXJjZXB0b3JzLWludGVybmFsLXJlcXVlc3QtaWRcIjtcbmZ1bmN0aW9uIGdldEdsb2JhbFN5bWJvbChzeW1ib2wpIHtcbiAgcmV0dXJuIChcbiAgICAvLyBAdHMtaWdub3JlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMjQ1ODdcbiAgICBnbG9iYWxUaGlzW3N5bWJvbF0gfHwgdm9pZCAwXG4gICk7XG59XG5mdW5jdGlvbiBzZXRHbG9iYWxTeW1ib2woc3ltYm9sLCB2YWx1ZSkge1xuICBnbG9iYWxUaGlzW3N5bWJvbF0gPSB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGRlbGV0ZUdsb2JhbFN5bWJvbChzeW1ib2wpIHtcbiAgZGVsZXRlIGdsb2JhbFRoaXNbc3ltYm9sXTtcbn1cbnZhciBJbnRlcmNlcHRvclJlYWR5U3RhdGUgPSAvKiBAX19QVVJFX18gKi8gKChJbnRlcmNlcHRvclJlYWR5U3RhdGUyKSA9PiB7XG4gIEludGVyY2VwdG9yUmVhZHlTdGF0ZTJbXCJJTkFDVElWRVwiXSA9IFwiSU5BQ1RJVkVcIjtcbiAgSW50ZXJjZXB0b3JSZWFkeVN0YXRlMltcIkFQUExZSU5HXCJdID0gXCJBUFBMWUlOR1wiO1xuICBJbnRlcmNlcHRvclJlYWR5U3RhdGUyW1wiQVBQTElFRFwiXSA9IFwiQVBQTElFRFwiO1xuICBJbnRlcmNlcHRvclJlYWR5U3RhdGUyW1wiRElTUE9TSU5HXCJdID0gXCJESVNQT1NJTkdcIjtcbiAgSW50ZXJjZXB0b3JSZWFkeVN0YXRlMltcIkRJU1BPU0VEXCJdID0gXCJESVNQT1NFRFwiO1xuICByZXR1cm4gSW50ZXJjZXB0b3JSZWFkeVN0YXRlMjtcbn0pKEludGVyY2VwdG9yUmVhZHlTdGF0ZSB8fCB7fSk7XG52YXIgSW50ZXJjZXB0b3IgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHN5bWJvbCkge1xuICAgIHRoaXMuc3ltYm9sID0gc3ltYm9sO1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiSU5BQ1RJVkVcIiAvKiBJTkFDVElWRSAqLztcbiAgICB0aGlzLmVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcihzeW1ib2wuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMuZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoMCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcImNvbnN0cnVjdGluZyB0aGUgaW50ZXJjZXB0b3IuLi5cIik7XG4gIH1cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGlzIGludGVyY2VwdG9yIGNhbiBiZSBhcHBsaWVkXG4gICAqIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxuICAgKi9cbiAgY2hlY2tFbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogQXBwbHkgdGhpcyBpbnRlcmNlcHRvciB0byB0aGUgY3VycmVudCBwcm9jZXNzLlxuICAgKiBSZXR1cm5zIGFuIGFscmVhZHkgcnVubmluZyBpbnRlcmNlcHRvciBpbnN0YW5jZSBpZiBpdCdzIHByZXNlbnQuXG4gICAqL1xuICBhcHBseSgpIHtcbiAgICBjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlci5leHRlbmQoXCJhcHBseVwiKTtcbiAgICBsb2dnZXIuaW5mbyhcImFwcGx5aW5nIHRoZSBpbnRlcmNlcHRvci4uLlwiKTtcbiAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSBcIkFQUExJRURcIiAvKiBBUFBMSUVEICovKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcImludGVyY2VwdGVkIGFscmVhZHkgYXBwbGllZCFcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZEFwcGx5ID0gdGhpcy5jaGVja0Vudmlyb25tZW50KCk7XG4gICAgaWYgKCFzaG91bGRBcHBseSkge1xuICAgICAgbG9nZ2VyLmluZm8oXCJ0aGUgaW50ZXJjZXB0b3IgY2Fubm90IGJlIGFwcGxpZWQgaW4gdGhpcyBlbnZpcm9ubWVudCFcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiQVBQTFlJTkdcIiAvKiBBUFBMWUlORyAqLztcbiAgICBjb25zdCBydW5uaW5nSW5zdGFuY2UgPSB0aGlzLmdldEluc3RhbmNlKCk7XG4gICAgaWYgKHJ1bm5pbmdJbnN0YW5jZSkge1xuICAgICAgbG9nZ2VyLmluZm8oXCJmb3VuZCBhIHJ1bm5pbmcgaW5zdGFuY2UsIHJldXNpbmcuLi5cIik7XG4gICAgICB0aGlzLm9uID0gKGV2ZW50LCBsaXN0ZW5lcikgPT4ge1xuICAgICAgICBsb2dnZXIuaW5mbygncHJveHlpbmcgdGhlIFwiJXNcIiBsaXN0ZW5lcicsIGV2ZW50KTtcbiAgICAgICAgcnVubmluZ0luc3RhbmNlLmVtaXR0ZXIuYWRkTGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgIHJ1bm5pbmdJbnN0YW5jZS5lbWl0dGVyLnJlbW92ZUxpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oJ3JlbW92ZWQgcHJveGllZCBcIiVzXCIgbGlzdGVuZXIhJywgZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJBUFBMSUVEXCIgLyogQVBQTElFRCAqLztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oXCJubyBydW5uaW5nIGluc3RhbmNlIGZvdW5kLCBzZXR0aW5nIHVwIGEgbmV3IGluc3RhbmNlLi4uXCIpO1xuICAgIHRoaXMuc2V0dXAoKTtcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XG4gICAgdGhpcy5yZWFkeVN0YXRlID0gXCJBUFBMSUVEXCIgLyogQVBQTElFRCAqLztcbiAgfVxuICAvKipcbiAgICogU2V0dXAgdGhlIG1vZHVsZSBhdWdtZW50cyBhbmQgc3R1YnMgbmVjZXNzYXJ5IGZvciB0aGlzIGludGVyY2VwdG9yLlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgcnVuIGlmIHRoZXJlJ3MgYSBydW5uaW5nIGludGVyY2VwdG9yIGluc3RhbmNlXG4gICAqIHRvIHByZXZlbnQgaW5zdGFudGlhdGluZyBhbiBpbnRlcmNlcHRvciBtdWx0aXBsZSB0aW1lcy5cbiAgICovXG4gIHNldHVwKCkge1xuICB9XG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gdGhlIGludGVyY2VwdG9yJ3MgcHVibGljIGV2ZW50cy5cbiAgICovXG4gIG9uKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMubG9nZ2VyLmV4dGVuZChcIm9uXCIpO1xuICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT09IFwiRElTUE9TSU5HXCIgLyogRElTUE9TSU5HICovIHx8IHRoaXMucmVhZHlTdGF0ZSA9PT0gXCJESVNQT1NFRFwiIC8qIERJU1BPU0VEICovKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcImNhbm5vdCBsaXN0ZW4gdG8gZXZlbnRzLCBhbHJlYWR5IGRpc3Bvc2VkIVwiKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBsb2dnZXIuaW5mbygnYWRkaW5nIFwiJXNcIiBldmVudCBsaXN0ZW5lcjonLCBldmVudCwgbGlzdGVuZXIpO1xuICAgIHRoaXMuZW1pdHRlci5vbihldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9uY2UoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5lbWl0dGVyLm9uY2UoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBvZmYoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5lbWl0dGVyLm9mZihldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJlbW92ZUFsbExpc3RlbmVycyhldmVudCkge1xuICAgIHRoaXMuZW1pdHRlci5yZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBEaXNwb3NlcyBvZiBhbnkgc2lkZS1lZmZlY3RzIHRoaXMgaW50ZXJjZXB0b3IgaGFzIGludHJvZHVjZWQuXG4gICAqL1xuICBkaXNwb3NlKCkge1xuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMubG9nZ2VyLmV4dGVuZChcImRpc3Bvc2VcIik7XG4gICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PT0gXCJESVNQT1NFRFwiIC8qIERJU1BPU0VEICovKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcImNhbm5vdCBkaXNwb3NlLCBhbHJlYWR5IGRpc3Bvc2VkIVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oXCJkaXNwb3NpbmcgdGhlIGludGVyY2VwdG9yLi4uXCIpO1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiRElTUE9TSU5HXCIgLyogRElTUE9TSU5HICovO1xuICAgIGlmICghdGhpcy5nZXRJbnN0YW5jZSgpKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcIm5vIGludGVyY2VwdG9ycyBydW5uaW5nLCBza2lwcGluZyBkaXNwb3NlLi4uXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsZWFySW5zdGFuY2UoKTtcbiAgICBsb2dnZXIuaW5mbyhcImdsb2JhbCBzeW1ib2wgZGVsZXRlZDpcIiwgZ2V0R2xvYmFsU3ltYm9sKHRoaXMuc3ltYm9sKSk7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcImRpc3Bvc2luZyBvZiAlZCBzdWJzY3JpcHRpb25zLi4uXCIsIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgICAgZm9yIChjb25zdCBkaXNwb3NlIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICBkaXNwb3NlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICAgIGxvZ2dlci5pbmZvKFwiZGlzcG9zZWQgb2YgYWxsIHN1YnNjcmlwdGlvbnMhXCIsIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgIH1cbiAgICB0aGlzLmVtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgbG9nZ2VyLmluZm8oXCJkZXN0cm95ZWQgdGhlIGxpc3RlbmVyIVwiKTtcbiAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIkRJU1BPU0VEXCIgLyogRElTUE9TRUQgKi87XG4gIH1cbiAgZ2V0SW5zdGFuY2UoKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0R2xvYmFsU3ltYm9sKHRoaXMuc3ltYm9sKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFwicmV0cmlldmVkIGdsb2JhbCBpbnN0YW5jZTpcIiwgKF9hID0gaW5zdGFuY2UgPT0gbnVsbCA/IHZvaWQgMCA6IGluc3RhbmNlLmNvbnN0cnVjdG9yKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG4gIHNldEluc3RhbmNlKCkge1xuICAgIHNldEdsb2JhbFN5bWJvbCh0aGlzLnN5bWJvbCwgdGhpcyk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcInNldCBnbG9iYWwgaW5zdGFuY2UhXCIsIHRoaXMuc3ltYm9sLmRlc2NyaXB0aW9uKTtcbiAgfVxuICBjbGVhckluc3RhbmNlKCkge1xuICAgIGRlbGV0ZUdsb2JhbFN5bWJvbCh0aGlzLnN5bWJvbCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcImNsZWFyZWQgZ2xvYmFsIGluc3RhbmNlIVwiLCB0aGlzLnN5bWJvbC5kZXNjcmlwdGlvbik7XG4gIH1cbn07XG5cbi8vIHNyYy9jcmVhdGVSZXF1ZXN0SWQudHNcbmZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RJZCgpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIpO1xufVxuXG5leHBvcnQge1xuICBJTlRFUk5BTF9SRVFVRVNUX0lEX0hFQURFUl9OQU1FLFxuICBnZXRHbG9iYWxTeW1ib2wsXG4gIGRlbGV0ZUdsb2JhbFN5bWJvbCxcbiAgSW50ZXJjZXB0b3JSZWFkeVN0YXRlLFxuICBJbnRlcmNlcHRvcixcbiAgY3JlYXRlUmVxdWVzdElkXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2h1bmstUUVEM1E2WjIubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/index.mjs": /*!****************************************************************!*\ !*** ./node_modules/@mswjs/interceptors/lib/browser/index.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BatchInterceptor: () => (/* binding */ BatchInterceptor),\n/* harmony export */ FetchResponse: () => (/* reexport safe */ _chunk_5UK33FSU_mjs__WEBPACK_IMPORTED_MODULE_1__.FetchResponse),\n/* harmony export */ INTERNAL_REQUEST_ID_HEADER_NAME: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.INTERNAL_REQUEST_ID_HEADER_NAME),\n/* harmony export */ IS_PATCHED_MODULE: () => (/* reexport safe */ _chunk_5UK33FSU_mjs__WEBPACK_IMPORTED_MODULE_1__.IS_PATCHED_MODULE),\n/* harmony export */ Interceptor: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.Interceptor),\n/* harmony export */ InterceptorReadyState: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.InterceptorReadyState),\n/* harmony export */ createRequestId: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.createRequestId),\n/* harmony export */ decodeBuffer: () => (/* reexport safe */ _chunk_6HYIRFX2_mjs__WEBPACK_IMPORTED_MODULE_0__.decodeBuffer),\n/* harmony export */ deleteGlobalSymbol: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.deleteGlobalSymbol),\n/* harmony export */ encodeBuffer: () => (/* reexport safe */ _chunk_6HYIRFX2_mjs__WEBPACK_IMPORTED_MODULE_0__.encodeBuffer),\n/* harmony export */ getCleanUrl: () => (/* binding */ getCleanUrl),\n/* harmony export */ getGlobalSymbol: () => (/* reexport safe */ _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.getGlobalSymbol)\n/* harmony export */ });\n/* harmony import */ var _chunk_6HYIRFX2_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chunk-6HYIRFX2.mjs */ \"(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs\");\n/* harmony import */ var _chunk_5UK33FSU_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chunk-5UK33FSU.mjs */ \"(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-5UK33FSU.mjs\");\n/* harmony import */ var _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./chunk-QED3Q6Z2.mjs */ \"(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs\");\n\n\n\n\n// src/BatchInterceptor.ts\nvar BatchInterceptor = class extends _chunk_QED3Q6Z2_mjs__WEBPACK_IMPORTED_MODULE_2__.Interceptor {\n constructor(options) {\n BatchInterceptor.symbol = Symbol(options.name);\n super(BatchInterceptor.symbol);\n this.interceptors = options.interceptors;\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info(\"applying all %d interceptors...\", this.interceptors.length);\n for (const interceptor of this.interceptors) {\n logger.info('applying \"%s\" interceptor...', interceptor.constructor.name);\n interceptor.apply();\n logger.info(\"adding interceptor dispose subscription\");\n this.subscriptions.push(() => interceptor.dispose());\n }\n }\n on(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.on(event, listener);\n }\n return this;\n }\n once(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.once(event, listener);\n }\n return this;\n }\n off(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.off(event, listener);\n }\n return this;\n }\n removeAllListeners(event) {\n for (const interceptors of this.interceptors) {\n interceptors.removeAllListeners(event);\n }\n return this;\n }\n};\n\n// src/utils/getCleanUrl.ts\nfunction getCleanUrl(url, isAbsolute = true) {\n return [isAbsolute && url.origin, url.pathname].filter(Boolean).join(\"\");\n}\n\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AbXN3anMvaW50ZXJjZXB0b3JzL2xpYi9icm93c2VyL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHOEI7QUFJQTtBQVFBOztBQUU5QjtBQUNBLHFDQUFxQyw0REFBVztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQWNFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0Btc3dqcy9pbnRlcmNlcHRvcnMvbGliL2Jyb3dzZXIvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRlY29kZUJ1ZmZlcixcbiAgZW5jb2RlQnVmZmVyXG59IGZyb20gXCIuL2NodW5rLTZIWUlSRlgyLm1qc1wiO1xuaW1wb3J0IHtcbiAgRmV0Y2hSZXNwb25zZSxcbiAgSVNfUEFUQ0hFRF9NT0RVTEVcbn0gZnJvbSBcIi4vY2h1bmstNVVLMzNGU1UubWpzXCI7XG5pbXBvcnQge1xuICBJTlRFUk5BTF9SRVFVRVNUX0lEX0hFQURFUl9OQU1FLFxuICBJbnRlcmNlcHRvcixcbiAgSW50ZXJjZXB0b3JSZWFkeVN0YXRlLFxuICBjcmVhdGVSZXF1ZXN0SWQsXG4gIGRlbGV0ZUdsb2JhbFN5bWJvbCxcbiAgZ2V0R2xvYmFsU3ltYm9sXG59IGZyb20gXCIuL2NodW5rLVFFRDNRNloyLm1qc1wiO1xuXG4vLyBzcmMvQmF0Y2hJbnRlcmNlcHRvci50c1xudmFyIEJhdGNoSW50ZXJjZXB0b3IgPSBjbGFzcyBleHRlbmRzIEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIEJhdGNoSW50ZXJjZXB0b3Iuc3ltYm9sID0gU3ltYm9sKG9wdGlvbnMubmFtZSk7XG4gICAgc3VwZXIoQmF0Y2hJbnRlcmNlcHRvci5zeW1ib2wpO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzID0gb3B0aW9ucy5pbnRlcmNlcHRvcnM7XG4gIH1cbiAgc2V0dXAoKSB7XG4gICAgY29uc3QgbG9nZ2VyID0gdGhpcy5sb2dnZXIuZXh0ZW5kKFwic2V0dXBcIik7XG4gICAgbG9nZ2VyLmluZm8oXCJhcHBseWluZyBhbGwgJWQgaW50ZXJjZXB0b3JzLi4uXCIsIHRoaXMuaW50ZXJjZXB0b3JzLmxlbmd0aCk7XG4gICAgZm9yIChjb25zdCBpbnRlcmNlcHRvciBvZiB0aGlzLmludGVyY2VwdG9ycykge1xuICAgICAgbG9nZ2VyLmluZm8oJ2FwcGx5aW5nIFwiJXNcIiBpbnRlcmNlcHRvci4uLicsIGludGVyY2VwdG9yLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgICAgaW50ZXJjZXB0b3IuYXBwbHkoKTtcbiAgICAgIGxvZ2dlci5pbmZvKFwiYWRkaW5nIGludGVyY2VwdG9yIGRpc3Bvc2Ugc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goKCkgPT4gaW50ZXJjZXB0b3IuZGlzcG9zZSgpKTtcbiAgICB9XG4gIH1cbiAgb24oZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgZm9yIChjb25zdCBpbnRlcmNlcHRvciBvZiB0aGlzLmludGVyY2VwdG9ycykge1xuICAgICAgaW50ZXJjZXB0b3Iub24oZXZlbnQsIGxpc3RlbmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb25jZShldmVudCwgbGlzdGVuZXIpIHtcbiAgICBmb3IgKGNvbnN0IGludGVyY2VwdG9yIG9mIHRoaXMuaW50ZXJjZXB0b3JzKSB7XG4gICAgICBpbnRlcmNlcHRvci5vbmNlKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9mZihldmVudCwgbGlzdGVuZXIpIHtcbiAgICBmb3IgKGNvbnN0IGludGVyY2VwdG9yIG9mIHRoaXMuaW50ZXJjZXB0b3JzKSB7XG4gICAgICBpbnRlcmNlcHRvci5vZmYoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcmVtb3ZlQWxsTGlzdGVuZXJzKGV2ZW50KSB7XG4gICAgZm9yIChjb25zdCBpbnRlcmNlcHRvcnMgb2YgdGhpcy5pbnRlcmNlcHRvcnMpIHtcbiAgICAgIGludGVyY2VwdG9ycy5yZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufTtcblxuLy8gc3JjL3V0aWxzL2dldENsZWFuVXJsLnRzXG5mdW5jdGlvbiBnZXRDbGVhblVybCh1cmwsIGlzQWJzb2x1dGUgPSB0cnVlKSB7XG4gIHJldHVybiBbaXNBYnNvbHV0ZSAmJiB1cmwub3JpZ2luLCB1cmwucGF0aG5hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKFwiXCIpO1xufVxuZXhwb3J0IHtcbiAgQmF0Y2hJbnRlcmNlcHRvcixcbiAgRmV0Y2hSZXNwb25zZSxcbiAgSU5URVJOQUxfUkVRVUVTVF9JRF9IRUFERVJfTkFNRSxcbiAgSVNfUEFUQ0hFRF9NT0RVTEUsXG4gIEludGVyY2VwdG9yLFxuICBJbnRlcmNlcHRvclJlYWR5U3RhdGUsXG4gIGNyZWF0ZVJlcXVlc3RJZCxcbiAgZGVjb2RlQnVmZmVyLFxuICBkZWxldGVHbG9iYWxTeW1ib2wsXG4gIGVuY29kZUJ1ZmZlcixcbiAgZ2V0Q2xlYW5VcmwsXG4gIGdldEdsb2JhbFN5bWJvbFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@open-draft/logger/lib/index.mjs": /*!*******************************************************!*\ !*** ./node_modules/@open-draft/logger/lib/index.mjs ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Logger: () => (/* binding */ Logger)\n/* harmony export */ });\n/* harmony import */ var is_node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-node-process */ \"(app-pages-browser)/./node_modules/is-node-process/lib/index.mjs\");\n/* harmony import */ var outvariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! outvariant */ \"(app-pages-browser)/./node_modules/outvariant/lib/index.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/index.ts\n\n\n\n// src/colors.ts\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\n\n// src/index.ts\nvar IS_NODE = (0,is_node_process__WEBPACK_IMPORTED_MODULE_0__.isNodeProcess)();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write((0,outvariant__WEBPACK_IMPORTED_MODULE_1__.format)(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write((0,outvariant__WEBPACK_IMPORTED_MODULE_1__.format)(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write((0,outvariant__WEBPACK_IMPORTED_MODULE_1__.format)(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ab3Blbi1kcmFmdC9sb2dnZXIvbGliL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTs7QUFFQTtBQUNnRDtBQUNaOztBQUVwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esb0JBQW9CLEtBQUs7QUFDekI7QUFDQTtBQUNBLG9CQUFvQixLQUFLO0FBQ3pCO0FBQ0E7QUFDQSxvQkFBb0IsS0FBSztBQUN6QjtBQUNBO0FBQ0Esb0JBQW9CLEtBQUs7QUFDekI7QUFDQTtBQUNBLG9CQUFvQixLQUFLO0FBQ3pCOztBQUVBO0FBQ0EsY0FBYyw4REFBYTtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsVUFBVTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFVBQVUsR0FBRyxPQUFPO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixVQUFVLEVBQUUsUUFBUSx1QkFBdUIsS0FBSztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixZQUFZO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsWUFBWTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFlBQVk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLE1BQU0sR0FBRyw0QkFBNEI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPLGNBQWMsa0RBQU07QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPLGNBQWMsa0RBQU07QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPLGNBQWMsa0RBQU07QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9Ab3Blbi1kcmFmdC9sb2dnZXIvbGliL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xuXG4vLyBzcmMvaW5kZXgudHNcbmltcG9ydCB7IGlzTm9kZVByb2Nlc3MgfSBmcm9tIFwiaXMtbm9kZS1wcm9jZXNzXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwib3V0dmFyaWFudFwiO1xuXG4vLyBzcmMvY29sb3JzLnRzXG52YXIgY29sb3JzX2V4cG9ydHMgPSB7fTtcbl9fZXhwb3J0KGNvbG9yc19leHBvcnRzLCB7XG4gIGJsdWU6ICgpID0+IGJsdWUsXG4gIGdyYXk6ICgpID0+IGdyYXksXG4gIGdyZWVuOiAoKSA9PiBncmVlbixcbiAgcmVkOiAoKSA9PiByZWQsXG4gIHllbGxvdzogKCkgPT4geWVsbG93XG59KTtcbmZ1bmN0aW9uIHllbGxvdyh0ZXh0KSB7XG4gIHJldHVybiBgXFx4MUJbMzNtJHt0ZXh0fVxceDFCWzBtYDtcbn1cbmZ1bmN0aW9uIGJsdWUodGV4dCkge1xuICByZXR1cm4gYFxceDFCWzM0bSR7dGV4dH1cXHgxQlswbWA7XG59XG5mdW5jdGlvbiBncmF5KHRleHQpIHtcbiAgcmV0dXJuIGBcXHgxQls5MG0ke3RleHR9XFx4MUJbMG1gO1xufVxuZnVuY3Rpb24gcmVkKHRleHQpIHtcbiAgcmV0dXJuIGBcXHgxQlszMW0ke3RleHR9XFx4MUJbMG1gO1xufVxuZnVuY3Rpb24gZ3JlZW4odGV4dCkge1xuICByZXR1cm4gYFxceDFCWzMybSR7dGV4dH1cXHgxQlswbWA7XG59XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIElTX05PREUgPSBpc05vZGVQcm9jZXNzKCk7XG52YXIgTG9nZ2VyID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihuYW1lKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnByZWZpeCA9IGBbJHt0aGlzLm5hbWV9XWA7XG4gICAgY29uc3QgTE9HR0VSX05BTUUgPSBnZXRWYXJpYWJsZShcIkRFQlVHXCIpO1xuICAgIGNvbnN0IExPR0dFUl9MRVZFTCA9IGdldFZhcmlhYmxlKFwiTE9HX0xFVkVMXCIpO1xuICAgIGNvbnN0IGlzTG9nZ2luZ0VuYWJsZWQgPSBMT0dHRVJfTkFNRSA9PT0gXCIxXCIgfHwgTE9HR0VSX05BTUUgPT09IFwidHJ1ZVwiIHx8IHR5cGVvZiBMT0dHRVJfTkFNRSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0aGlzLm5hbWUuc3RhcnRzV2l0aChMT0dHRVJfTkFNRSk7XG4gICAgaWYgKGlzTG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuZGVidWcgPSBpc0RlZmluZWRBbmROb3RFcXVhbHMoTE9HR0VSX0xFVkVMLCBcImRlYnVnXCIpID8gbm9vcCA6IHRoaXMuZGVidWc7XG4gICAgICB0aGlzLmluZm8gPSBpc0RlZmluZWRBbmROb3RFcXVhbHMoTE9HR0VSX0xFVkVMLCBcImluZm9cIikgPyBub29wIDogdGhpcy5pbmZvO1xuICAgICAgdGhpcy5zdWNjZXNzID0gaXNEZWZpbmVkQW5kTm90RXF1YWxzKExPR0dFUl9MRVZFTCwgXCJzdWNjZXNzXCIpID8gbm9vcCA6IHRoaXMuc3VjY2VzcztcbiAgICAgIHRoaXMud2FybmluZyA9IGlzRGVmaW5lZEFuZE5vdEVxdWFscyhMT0dHRVJfTEVWRUwsIFwid2FybmluZ1wiKSA/IG5vb3AgOiB0aGlzLndhcm5pbmc7XG4gICAgICB0aGlzLmVycm9yID0gaXNEZWZpbmVkQW5kTm90RXF1YWxzKExPR0dFUl9MRVZFTCwgXCJlcnJvclwiKSA/IG5vb3AgOiB0aGlzLmVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluZm8gPSBub29wO1xuICAgICAgdGhpcy5zdWNjZXNzID0gbm9vcDtcbiAgICAgIHRoaXMud2FybmluZyA9IG5vb3A7XG4gICAgICB0aGlzLmVycm9yID0gbm9vcDtcbiAgICAgIHRoaXMub25seSA9IG5vb3A7XG4gICAgfVxuICB9XG4gIHByZWZpeDtcbiAgZXh0ZW5kKGRvbWFpbikge1xuICAgIHJldHVybiBuZXcgTG9nZ2VyKGAke3RoaXMubmFtZX06JHtkb21haW59YCk7XG4gIH1cbiAgLyoqXG4gICAqIFByaW50IGEgZGVidWcgbWVzc2FnZS5cbiAgICogQGV4YW1wbGVcbiAgICogbG9nZ2VyLmRlYnVnKCdubyBkdXBsaWNhdGVzIGZvdW5kLCBjcmVhdGluZyBhIGRvY3VtZW50Li4uJylcbiAgICovXG4gIGRlYnVnKG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKSB7XG4gICAgdGhpcy5sb2dFbnRyeSh7XG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgICAgbWVzc2FnZTogZ3JheShtZXNzYWdlKSxcbiAgICAgIHBvc2l0aW9uYWxzLFxuICAgICAgcHJlZml4OiB0aGlzLnByZWZpeCxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICBwcmVmaXg6IFwiZ3JheVwiXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFByaW50IGFuIGluZm8gbWVzc2FnZS5cbiAgICogQGV4YW1wbGVcbiAgICogbG9nZ2VyLmluZm8oJ3N0YXJ0IHBhcnNpbmcuLi4nKVxuICAgKi9cbiAgaW5mbyhtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICAgIHRoaXMubG9nRW50cnkoe1xuICAgICAgbGV2ZWw6IFwiaW5mb1wiLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHBvc2l0aW9uYWxzLFxuICAgICAgcHJlZml4OiB0aGlzLnByZWZpeCxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICBwcmVmaXg6IFwiYmx1ZVwiXG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcGVyZm9ybWFuY2UyID0gbmV3IFBlcmZvcm1hbmNlRW50cnkoKTtcbiAgICByZXR1cm4gKG1lc3NhZ2UyLCAuLi5wb3NpdGlvbmFsczIpID0+IHtcbiAgICAgIHBlcmZvcm1hbmNlMi5tZWFzdXJlKCk7XG4gICAgICB0aGlzLmxvZ0VudHJ5KHtcbiAgICAgICAgbGV2ZWw6IFwiaW5mb1wiLFxuICAgICAgICBtZXNzYWdlOiBgJHttZXNzYWdlMn0gJHtncmF5KGAke3BlcmZvcm1hbmNlMi5kZWx0YVRpbWV9bXNgKX1gLFxuICAgICAgICBwb3NpdGlvbmFsczogcG9zaXRpb25hbHMyLFxuICAgICAgICBwcmVmaXg6IHRoaXMucHJlZml4LFxuICAgICAgICBjb2xvcnM6IHtcbiAgICAgICAgICBwcmVmaXg6IFwiYmx1ZVwiXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFByaW50IGEgc3VjY2VzcyBtZXNzYWdlLlxuICAgKiBAZXhhbXBsZVxuICAgKiBsb2dnZXIuc3VjY2Vzcygnc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgZG9jdW1lbnQnKVxuICAgKi9cbiAgc3VjY2VzcyhtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICAgIHRoaXMubG9nRW50cnkoe1xuICAgICAgbGV2ZWw6IFwiaW5mb1wiLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHBvc2l0aW9uYWxzLFxuICAgICAgcHJlZml4OiBgXFx1MjcxNCAke3RoaXMucHJlZml4fWAsXG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgdGltZXN0YW1wOiBcImdyZWVuXCIsXG4gICAgICAgIHByZWZpeDogXCJncmVlblwiXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFByaW50IGEgd2FybmluZy5cbiAgICogQGV4YW1wbGVcbiAgICogbG9nZ2VyLndhcm5pbmcoJ2ZvdW5kIGxlZ2FjeSBkb2N1bWVudCBmb3JtYXQnKVxuICAgKi9cbiAgd2FybmluZyhtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICAgIHRoaXMubG9nRW50cnkoe1xuICAgICAgbGV2ZWw6IFwid2FybmluZ1wiLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHBvc2l0aW9uYWxzLFxuICAgICAgcHJlZml4OiBgXFx1MjZBMCAke3RoaXMucHJlZml4fWAsXG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgdGltZXN0YW1wOiBcInllbGxvd1wiLFxuICAgICAgICBwcmVmaXg6IFwieWVsbG93XCJcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUHJpbnQgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICogQGV4YW1wbGVcbiAgICogbG9nZ2VyLmVycm9yKCdzb21ldGhpbmcgd2VudCB3cm9uZycpXG4gICAqL1xuICBlcnJvcihtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICAgIHRoaXMubG9nRW50cnkoe1xuICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBwb3NpdGlvbmFscyxcbiAgICAgIHByZWZpeDogYFxcdTI3MTYgJHt0aGlzLnByZWZpeH1gLFxuICAgICAgY29sb3JzOiB7XG4gICAgICAgIHRpbWVzdGFtcDogXCJyZWRcIixcbiAgICAgICAgcHJlZml4OiBcInJlZFwiXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGdpdmVuIGNhbGxiYWNrIG9ubHkgd2hlbiB0aGUgbG9nZ2luZyBpcyBlbmFibGVkLlxuICAgKiBUaGlzIGlzIHNraXBwZWQgaW4gaXRzIGVudGlyZXR5IGFuZCBoYXMgbm8gcnVudGltZSBjb3N0IG90aGVyd2lzZS5cbiAgICogVGhpcyBleGVjdXRlcyByZWdhcmRsZXNzIG9mIHRoZSBsb2cgbGV2ZWwuXG4gICAqIEBleGFtcGxlXG4gICAqIGxvZ2dlci5vbmx5KCgpID0+IHtcbiAgICogICBsb2dnZXIuaW5mbygnYWRkaXRpb25hbCBpbmZvJylcbiAgICogfSlcbiAgICovXG4gIG9ubHkoY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjaygpO1xuICB9XG4gIGNyZWF0ZUVudHJ5KGxldmVsLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpbWVzdGFtcDogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksXG4gICAgICBsZXZlbCxcbiAgICAgIG1lc3NhZ2VcbiAgICB9O1xuICB9XG4gIGxvZ0VudHJ5KGFyZ3MpIHtcbiAgICBjb25zdCB7XG4gICAgICBsZXZlbCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBwcmVmaXgsXG4gICAgICBjb2xvcnM6IGN1c3RvbUNvbG9ycyxcbiAgICAgIHBvc2l0aW9uYWxzID0gW11cbiAgICB9ID0gYXJncztcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuY3JlYXRlRW50cnkobGV2ZWwsIG1lc3NhZ2UpO1xuICAgIGNvbnN0IHRpbWVzdGFtcENvbG9yID0gY3VzdG9tQ29sb3JzPy50aW1lc3RhbXAgfHwgXCJncmF5XCI7XG4gICAgY29uc3QgcHJlZml4Q29sb3IgPSBjdXN0b21Db2xvcnM/LnByZWZpeCB8fCBcImdyYXlcIjtcbiAgICBjb25zdCBjb2xvcml6ZSA9IHtcbiAgICAgIHRpbWVzdGFtcDogY29sb3JzX2V4cG9ydHNbdGltZXN0YW1wQ29sb3JdLFxuICAgICAgcHJlZml4OiBjb2xvcnNfZXhwb3J0c1twcmVmaXhDb2xvcl1cbiAgICB9O1xuICAgIGNvbnN0IHdyaXRlID0gdGhpcy5nZXRXcml0ZXIobGV2ZWwpO1xuICAgIHdyaXRlKFxuICAgICAgW2NvbG9yaXplLnRpbWVzdGFtcCh0aGlzLmZvcm1hdFRpbWVzdGFtcChlbnRyeS50aW1lc3RhbXApKV0uY29uY2F0KHByZWZpeCAhPSBudWxsID8gY29sb3JpemUucHJlZml4KHByZWZpeCkgOiBbXSkuY29uY2F0KHNlcmlhbGl6ZUlucHV0KG1lc3NhZ2UpKS5qb2luKFwiIFwiKSxcbiAgICAgIC4uLnBvc2l0aW9uYWxzLm1hcChzZXJpYWxpemVJbnB1dClcbiAgICApO1xuICB9XG4gIGZvcm1hdFRpbWVzdGFtcCh0aW1lc3RhbXApIHtcbiAgICByZXR1cm4gYCR7dGltZXN0YW1wLnRvTG9jYWxlVGltZVN0cmluZyhcbiAgICAgIFwiZW4tR0JcIlxuICAgICl9OiR7dGltZXN0YW1wLmdldE1pbGxpc2Vjb25kcygpfWA7XG4gIH1cbiAgZ2V0V3JpdGVyKGxldmVsKSB7XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSBcImRlYnVnXCI6XG4gICAgICBjYXNlIFwic3VjY2Vzc1wiOlxuICAgICAgY2FzZSBcImluZm9cIjoge1xuICAgICAgICByZXR1cm4gbG9nO1xuICAgICAgfVxuICAgICAgY2FzZSBcIndhcm5pbmdcIjoge1xuICAgICAgICByZXR1cm4gd2FybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG52YXIgUGVyZm9ybWFuY2VFbnRyeSA9IGNsYXNzIHtcbiAgc3RhcnRUaW1lO1xuICBlbmRUaW1lO1xuICBkZWx0YVRpbWU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIH1cbiAgbWVhc3VyZSgpIHtcbiAgICB0aGlzLmVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBjb25zdCBkZWx0YVRpbWUgPSB0aGlzLmVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZTtcbiAgICB0aGlzLmRlbHRhVGltZSA9IGRlbHRhVGltZS50b0ZpeGVkKDIpO1xuICB9XG59O1xudmFyIG5vb3AgPSAoKSA9PiB2b2lkIDA7XG5mdW5jdGlvbiBsb2cobWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpIHtcbiAgaWYgKElTX05PREUpIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShmb3JtYXQobWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpICsgXCJcXG5cIik7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKTtcbn1cbmZ1bmN0aW9uIHdhcm4obWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpIHtcbiAgaWYgKElTX05PREUpIHtcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShmb3JtYXQobWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpICsgXCJcXG5cIik7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUud2FybihtZXNzYWdlLCAuLi5wb3NpdGlvbmFscyk7XG59XG5mdW5jdGlvbiBlcnJvcihtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICBpZiAoSVNfTk9ERSkge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGZvcm1hdChtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykgKyBcIlxcblwiKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc29sZS5lcnJvcihtZXNzYWdlLCAuLi5wb3NpdGlvbmFscyk7XG59XG5mdW5jdGlvbiBnZXRWYXJpYWJsZSh2YXJpYWJsZU5hbWUpIHtcbiAgaWYgKElTX05PREUpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnZbdmFyaWFibGVOYW1lXTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsVGhpc1t2YXJpYWJsZU5hbWVdPy50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gaXNEZWZpbmVkQW5kTm90RXF1YWxzKHZhbHVlLCBleHBlY3RlZCkge1xuICByZXR1cm4gdmFsdWUgIT09IHZvaWQgMCAmJiB2YWx1ZSAhPT0gZXhwZWN0ZWQ7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVJbnB1dChtZXNzYWdlKSB7XG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBcInVuZGVmaW5lZFwiO1xuICB9XG4gIGlmIChtZXNzYWdlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIFwibnVsbFwiO1xuICB9XG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gbWVzc2FnZS50b1N0cmluZygpO1xufVxuZXhwb3J0IHtcbiAgTG9nZ2VyXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@open-draft/logger/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs": /*!******************************************************!*\ !*** ./node_modules/@radix-ui/number/dist/index.mjs ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\n// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvbnVtYmVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9udW1iZXIvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvY29yZS9udW1iZXIvc3JjL251bWJlci50c1xuZnVuY3Rpb24gY2xhbXAodmFsdWUsIFttaW4sIG1heF0pIHtcbiAgcmV0dXJuIE1hdGgubWluKG1heCwgTWF0aC5tYXgobWluLCB2YWx1ZSkpO1xufVxuZXhwb3J0IHtcbiAgY2xhbXBcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs": /*!*********************************************************!*\ !*** ./node_modules/@radix-ui/primitive/dist/index.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeEventHandlers: () => (/* binding */ composeEventHandlers)\n/* harmony export */ });\n// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVFQUF1RSxrQ0FBa0MsSUFBSTtBQUM3RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvY29yZS9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9yaWdpbmFsRXZlbnRIYW5kbGVyLCBvdXJFdmVudEhhbmRsZXIsIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50KSB7XG4gICAgb3JpZ2luYWxFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgaWYgKGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9PT0gZmFsc2UgfHwgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IHtcbiAgY29tcG9zZUV2ZW50SGFuZGxlcnNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Action: () => (/* binding */ Action),\n/* harmony export */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger),\n/* harmony export */ Cancel: () => (/* binding */ Cancel),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Description: () => (/* binding */ Description2),\n/* harmony export */ Overlay: () => (/* binding */ Overlay2),\n/* harmony export */ Portal: () => (/* binding */ Portal2),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Title: () => (/* binding */ Title2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger2),\n/* harmony export */ createAlertDialogScope: () => (/* binding */ createAlertDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Action,AlertDialog,AlertDialogAction,AlertDialogCancel,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogTitle,AlertDialogTrigger,Cancel,Content,Description,Overlay,Portal,Root,Title,Trigger,createAlertDialogScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$();\n// packages/react/alert-dialog/src/AlertDialog.tsx\n\n\n\n\n\n\n\n\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(ROOT_NAME, [\n _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope\n]);\nvar useDialogScope = (0,_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope)();\nvar AlertDialog = (props)=>{\n _s();\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...dialogScope,\n ...alertDialogProps,\n modal: true\n });\n};\n_s(AlertDialog, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c = AlertDialog;\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ...dialogScope,\n ...triggerProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c2 = AlertDialogTrigger;\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props)=>{\n _s2();\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n ...dialogScope,\n ...portalProps\n });\n};\n_s2(AlertDialogPortal, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c3 = AlertDialogPortal;\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ...dialogScope,\n ...overlayProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c5 = AlertDialogOverlay;\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s4((props, forwardedRef)=>{\n _s4();\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, contentRef);\n const cancelRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.WarningProvider, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(AlertDialogContentProvider, {\n scope: __scopeAlertDialog,\n cancelRef,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(contentProps.onOpenAutoFocus, (event)=>{\n var _cancelRef_current;\n event.preventDefault();\n (_cancelRef_current = cancelRef.current) === null || _cancelRef_current === void 0 ? void 0 : _cancelRef_current.focus({\n preventScroll: true\n });\n }),\n onPointerDownOutside: (event)=>event.preventDefault(),\n onInteractOutside: (event)=>event.preventDefault(),\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__.Slottable, {\n children\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef\n })\n ]\n })\n })\n });\n}, \"VgRBSpPSE2H4I20qORuFRbe0uOY=\", false, function() {\n return [\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n})), \"VgRBSpPSE2H4I20qORuFRbe0uOY=\", false, function() {\n return [\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n});\n_c7 = AlertDialogContent;\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c8 = _s5((props, forwardedRef)=>{\n _s5();\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ...dialogScope,\n ...titleProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c9 = AlertDialogTitle;\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = /*#__PURE__*/ _s6(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c10 = _s6((props, forwardedRef)=>{\n _s6();\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ...dialogScope,\n ...descriptionProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c11 = AlertDialogDescription;\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...actionProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c13 = AlertDialogAction;\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, cancelRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...cancelProps,\n ref\n });\n}, \"ez9FFFRlK1Lb5sklgYcuczR5X3s=\", false, function() {\n return [\n useAlertDialogContentContext,\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n})), \"ez9FFFRlK1Lb5sklgYcuczR5X3s=\", false, function() {\n return [\n useAlertDialogContentContext,\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n});\n_c15 = AlertDialogCancel;\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = (param)=>{\n let { contentRef } = param;\n _s9();\n const MESSAGE = \"`\".concat(CONTENT_NAME, \"` requires a description for the component to be accessible for screen reader users.\\n\\nYou can add a description to the `\").concat(CONTENT_NAME, \"` by passing a `\").concat(DESCRIPTION_NAME, \"` component as a child, which also benefits sighted users by adding visible context to the dialog.\\n\\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `\").concat(CONTENT_NAME, \"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\\n\\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DescriptionWarning.useEffect\": ()=>{\n var _contentRef_current;\n const hasDescription = document.getElementById((_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.getAttribute(\"aria-describedby\"));\n if (!hasDescription) console.warn(MESSAGE);\n }\n }[\"DescriptionWarning.useEffect\"], [\n MESSAGE,\n contentRef\n ]);\n return null;\n};\n_s9(DescriptionWarning, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n_c16 = DescriptionWarning;\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16;\n$RefreshReg$(_c, \"AlertDialog\");\n$RefreshReg$(_c1, \"AlertDialogTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"AlertDialogTrigger\");\n$RefreshReg$(_c3, \"AlertDialogPortal\");\n$RefreshReg$(_c4, \"AlertDialogOverlay$React.forwardRef\");\n$RefreshReg$(_c5, \"AlertDialogOverlay\");\n$RefreshReg$(_c6, \"AlertDialogContent$React.forwardRef\");\n$RefreshReg$(_c7, \"AlertDialogContent\");\n$RefreshReg$(_c8, \"AlertDialogTitle$React.forwardRef\");\n$RefreshReg$(_c9, \"AlertDialogTitle\");\n$RefreshReg$(_c10, \"AlertDialogDescription$React.forwardRef\");\n$RefreshReg$(_c11, \"AlertDialogDescription\");\n$RefreshReg$(_c12, \"AlertDialogAction$React.forwardRef\");\n$RefreshReg$(_c13, \"AlertDialogAction\");\n$RefreshReg$(_c14, \"AlertDialogCancel$React.forwardRef\");\n$RefreshReg$(_c15, \"AlertDialogCancel\");\n$RefreshReg$(_c16, \"DescriptionWarning\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDWTtBQUNIO0FBQ0M7QUFDQztBQUNHO0FBQ1g7QUFzQmpCO0FBZFQsSUFBTSxZQUFZO0FBR2xCLElBQU0sQ0FBQywwQkFBMEIsc0JBQXNCLElBQUksMkVBQWtCLENBQUMsV0FBVztJQUN2RixxRUFBaUI7Q0FDbEI7QUFDRCxJQUFNLGlCQUFpQix5RUFBaUIsQ0FBQztBQUt6QyxrQkFBZ0QsQ0FBQzs7SUFDL0MsTUFBTSxFQUFFLG9CQUFvQixHQUFHLGlCQUFpQixJQUFJO0lBQ3BELE1BQU0sNkJBQTZCLGtCQUFrQjtJQUNyRCxPQUFPLHVFQUFpQiwwREFBaEI7UUFBc0IsR0FBRztRQUFjLEdBQUc7UUFBa0IsT0FBTztJQUFBLENBQU07QUFDbkY7OztRQUZzQjs7O0tBRmhCO0FBTU4sWUFBWSxjQUFjO0FBSzFCLElBQU0sZUFBZTtBQU1yQixJQUFNLHVDQUEyQix3REFDL0IsQ0FBQyxPQUE2Qzs7SUFDNUMsTUFBTSxFQUFFLG9CQUFvQixHQUFHLGFBQWEsSUFBSTtJQUNoRCxNQUFNLDZCQUE2QixrQkFBa0I7SUFDckQsT0FBTyx1RUFBaUIsNkRBQWhCO1FBQXlCLEdBQUc7UUFBYyxHQUFHO1FBQWMsS0FBSztJQUFBLENBQWM7QUFDeEY7Ozs7OztRQUZzQjs7OztBQUt4QixtQkFBbUIsY0FBYztBQU1qQyxJQUFNLGNBQWM7QUFLcEIsd0JBQTRELENBQzFEOztJQUVBLE1BQU0sRUFBRSxvQkFBb0IsR0FBRyxZQUFZLElBQUk7SUFDL0MsTUFBTSxjQUFjLGVBQWUsa0JBQWtCO0lBQ3JELE9BQU8sdUVBQWlCLDREQUFoQjtRQUF3QixHQUFHO1FBQWMsR0FBRztJQUFBLENBQWE7QUFDbkU7Ozs7OztNQU5NO0FBUU4sa0JBQWtCLGNBQWM7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a0JBQWtCO0lBQ3JELE1BQU0sTUFBTSw2RUFBZSxDQUFDLGNBQWMsU0FBUztJQUNuRCxPQUFPLHVFQUFpQiwyREFBaEI7UUFBdUIsR0FBRztRQUFjLEdBQUc7UUFBYTtJQUFBLENBQVU7QUFDNUU7Ozs7Ozs7O1FBSndCO1FBQ0Y7UUFDUix5RUFBZTs7OztBQUsvQixrQkFBa0IsY0FBYztBQVFoQyx5QkFBOEQ7UUFBQyxFQUFFLFdBQVcsTUFBTTs7SUFDaEYsTUFBTSxVQUFVLFdBQUssWUFBWSx1SUFFRSxZQUFZLDZCQUFxQixnQkFBZ0IsaVFBRWtGLE9BQVosWUFBWTtJQUloSzt3Q0FBVTs7WUFDZCxNQUFNLGlCQUFpQixTQUFTLGdCQUM5QixpQ0FBVyxtRkFBUyxhQUFhLGtCQUFrQjtZQUVyRCxJQUFJLENBQUMsZUFBZ0IsU0FBUSxLQUFLLE9BQU87UUFDM0M7dUNBQUc7UUFBQztRQUFTLFVBQVU7S0FBQztJQUV4QixPQUFPO0FBQ1Q7O09BakJNO0FBbUJOLElBQU1BLFFBQU87QUFDYixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFVBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFdBQVU7QUFDaEIsSUFBTSxTQUFTO0FBQ2YsSUFBTSxTQUFTO0FBQ2YsSUFBTUMsU0FBUTtBQUNkLElBQU1DLGVBQWMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL0FsZXJ0RGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlhbG9nJztcbmltcG9ydCB7IGNyZWF0ZURpYWxvZ1Njb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpYWxvZyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgU2xvdHRhYmxlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBST09UX05BTUUgPSAnQWxlcnREaWFsb2cnO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZUFsZXJ0RGlhbG9nPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVBbGVydERpYWxvZ0NvbnRleHQsIGNyZWF0ZUFsZXJ0RGlhbG9nU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFJPT1RfTkFNRSwgW1xuICBjcmVhdGVEaWFsb2dTY29wZSxcbl0pO1xuY29uc3QgdXNlRGlhbG9nU2NvcGUgPSBjcmVhdGVEaWFsb2dTY29wZSgpO1xuXG50eXBlIERpYWxvZ1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuUm9vdD47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dQcm9wcyBleHRlbmRzIE9taXQ8RGlhbG9nUHJvcHMsICdtb2RhbCc+IHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nOiBSZWFjdC5GQzxBbGVydERpYWxvZ1Byb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFsZXJ0RGlhbG9nUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gIHJldHVybiA8RGlhbG9nUHJpbWl0aXZlLlJvb3Qgey4uLmRpYWxvZ1Njb3BlfSB7Li4uYWxlcnREaWFsb2dQcm9wc30gbW9kYWw9e3RydWV9IC8+O1xufTtcblxuQWxlcnREaWFsb2cuZGlzcGxheU5hbWUgPSBST09UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuY29uc3QgVFJJR0dFUl9OQU1FID0gJ0FsZXJ0RGlhbG9nVHJpZ2dlcic7XG5cbnR5cGUgQWxlcnREaWFsb2dUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyPjtcbnR5cGUgRGlhbG9nVHJpZ2dlclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuVHJpZ2dlcj47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBEaWFsb2dUcmlnZ2VyUHJvcHMge31cblxuY29uc3QgQWxlcnREaWFsb2dUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxBbGVydERpYWxvZ1RyaWdnZXJFbGVtZW50LCBBbGVydERpYWxvZ1RyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuVHJpZ2dlciB7Li4uZGlhbG9nU2NvcGV9IHsuLi50cmlnZ2VyUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ1BvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdBbGVydERpYWxvZ1BvcnRhbCc7XG5cbnR5cGUgRGlhbG9nUG9ydGFsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWw+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nUG9ydGFsUHJvcHMgZXh0ZW5kcyBEaWFsb2dQb3J0YWxQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ1BvcnRhbDogUmVhY3QuRkM8QWxlcnREaWFsb2dQb3J0YWxQcm9wcz4gPSAoXG4gIHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1BvcnRhbFByb3BzPlxuKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5wb3J0YWxQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuUG9ydGFsIHsuLi5kaWFsb2dTY29wZX0gey4uLnBvcnRhbFByb3BzfSAvPjtcbn07XG5cbkFsZXJ0RGlhbG9nUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nT3ZlcmxheVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBPVkVSTEFZX05BTUUgPSAnQWxlcnREaWFsb2dPdmVybGF5JztcblxudHlwZSBBbGVydERpYWxvZ092ZXJsYXlFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+O1xudHlwZSBEaWFsb2dPdmVybGF5UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5PjtcbmludGVyZmFjZSBBbGVydERpYWxvZ092ZXJsYXlQcm9wcyBleHRlbmRzIERpYWxvZ092ZXJsYXlQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ092ZXJsYXkgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nT3ZlcmxheUVsZW1lbnQsIEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ092ZXJsYXlQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5IHsuLi5kaWFsb2dTY29wZX0gey4uLm92ZXJsYXlQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ092ZXJsYXkuZGlzcGxheU5hbWUgPSBPVkVSTEFZX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnQWxlcnREaWFsb2dDb250ZW50JztcblxudHlwZSBBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIGNhbmNlbFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxBbGVydERpYWxvZ0NhbmNlbEVsZW1lbnQgfCBudWxsPjtcbn07XG5cbmNvbnN0IFtBbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlciwgdXNlQWxlcnREaWFsb2dDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVBbGVydERpYWxvZ0NvbnRleHQ8QWxlcnREaWFsb2dDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG50eXBlIEFsZXJ0RGlhbG9nQ29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD47XG50eXBlIERpYWxvZ0NvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nQ29udGVudFByb3BzXG4gIGV4dGVuZHMgT21pdDxEaWFsb2dDb250ZW50UHJvcHMsICdvblBvaW50ZXJEb3duT3V0c2lkZScgfCAnb25JbnRlcmFjdE91dHNpZGUnPiB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nQ29udGVudEVsZW1lbnQsIEFsZXJ0RGlhbG9nQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ0NvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCBjaGlsZHJlbiwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgY29uc3QgY29udGVudFJlZiA9IFJlYWN0LnVzZVJlZjxBbGVydERpYWxvZ0NvbnRlbnRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZW50UmVmKTtcbiAgICBjb25zdCBjYW5jZWxSZWYgPSBSZWFjdC51c2VSZWY8QWxlcnREaWFsb2dDYW5jZWxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERpYWxvZ1ByaW1pdGl2ZS5XYXJuaW5nUHJvdmlkZXJcbiAgICAgICAgY29udGVudE5hbWU9e0NPTlRFTlRfTkFNRX1cbiAgICAgICAgdGl0bGVOYW1lPXtUSVRMRV9OQU1FfVxuICAgICAgICBkb2NzU2x1Zz1cImFsZXJ0LWRpYWxvZ1wiXG4gICAgICA+XG4gICAgICAgIDxBbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlciBzY29wZT17X19zY29wZUFsZXJ0RGlhbG9nfSBjYW5jZWxSZWY9e2NhbmNlbFJlZn0+XG4gICAgICAgICAgPERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICAgICAgICByb2xlPVwiYWxlcnRkaWFsb2dcIlxuICAgICAgICAgICAgey4uLmRpYWxvZ1Njb3BlfVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgb25PcGVuQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhjb250ZW50UHJvcHMub25PcGVuQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2FuY2VsUmVmLmN1cnJlbnQ/LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPXsoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qKlxuICAgICAgICAgICAgICogV2UgaGF2ZSB0byB1c2UgYFNsb3R0YWJsZWAgaGVyZSBhcyB3ZSBjYW5ub3Qgd3JhcCB0aGUgYEFsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyYFxuICAgICAgICAgICAgICogYXJvdW5kIGV2ZXJ5dGhpbmcsIG90aGVyd2lzZSB0aGUgYERlc2NyaXB0aW9uV2FybmluZ2Agd291bGQgYmUgcmVuZGVyZWQgc3RyYWlnaHQgYXdheS5cbiAgICAgICAgICAgICAqIFRoaXMgaXMgYmVjYXVzZSB3ZSB3YW50IHRoZSBhY2Nlc3NpYmlsaXR5IGNoZWNrcyB0byBydW4gb25seSBvbmNlIHRoZSBjb250ZW50IGlzIGFjdHVhbGx5XG4gICAgICAgICAgICAgKiBvcGVuIGFuZCB0aGF0IGJlaGF2aW91ciBpcyBhbHJlYWR5IGVuY2Fwc3VsYXRlZCBpbiBgRGlhbG9nQ29udGVudGAuXG4gICAgICAgICAgICAgKi99XG4gICAgICAgICAgICA8U2xvdHRhYmxlPntjaGlsZHJlbn08L1Nsb3R0YWJsZT5cbiAgICAgICAgICAgIHtwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAoXG4gICAgICAgICAgICAgIDxEZXNjcmlwdGlvbldhcm5pbmcgY29udGVudFJlZj17Y29udGVudFJlZn0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9EaWFsb2dQcmltaXRpdmUuQ29udGVudD5cbiAgICAgICAgPC9BbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlcj5cbiAgICAgIDwvRGlhbG9nUHJpbWl0aXZlLldhcm5pbmdQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nVGl0bGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVElUTEVfTkFNRSA9ICdBbGVydERpYWxvZ1RpdGxlJztcblxudHlwZSBBbGVydERpYWxvZ1RpdGxlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT47XG50eXBlIERpYWxvZ1RpdGxlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dUaXRsZVByb3BzIGV4dGVuZHMgRGlhbG9nVGl0bGVQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxBbGVydERpYWxvZ1RpdGxlRWxlbWVudCwgQWxlcnREaWFsb2dUaXRsZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1RpdGxlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4udGl0bGVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIHJldHVybiA8RGlhbG9nUHJpbWl0aXZlLlRpdGxlIHsuLi5kaWFsb2dTY29wZX0gey4uLnRpdGxlUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IFRJVExFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgREVTQ1JJUFRJT05fTkFNRSA9ICdBbGVydERpYWxvZ0Rlc2NyaXB0aW9uJztcblxudHlwZSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj47XG50eXBlIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dEZXNjcmlwdGlvblByb3BzIGV4dGVuZHMgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbkVsZW1lbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4uZGVzY3JpcHRpb25Qcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24gey4uLmRpYWxvZ1Njb3BlfSB7Li4uZGVzY3JpcHRpb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkFsZXJ0RGlhbG9nRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBERVNDUklQVElPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ0FjdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBQ1RJT05fTkFNRSA9ICdBbGVydERpYWxvZ0FjdGlvbic7XG5cbnR5cGUgQWxlcnREaWFsb2dBY3Rpb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNsb3NlPjtcbnR5cGUgRGlhbG9nQ2xvc2VQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNsb3NlPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ0FjdGlvblByb3BzIGV4dGVuZHMgRGlhbG9nQ2xvc2VQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0FjdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8QWxlcnREaWFsb2dBY3Rpb25FbGVtZW50LCBBbGVydERpYWxvZ0FjdGlvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ0FjdGlvblByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFjdGlvblByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuQ2xvc2Ugey4uLmRpYWxvZ1Njb3BlfSB7Li4uYWN0aW9uUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dBY3Rpb24uZGlzcGxheU5hbWUgPSBBQ1RJT05fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dDYW5jZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ0FOQ0VMX05BTUUgPSAnQWxlcnREaWFsb2dDYW5jZWwnO1xuXG50eXBlIEFsZXJ0RGlhbG9nQ2FuY2VsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5DbG9zZT47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dDYW5jZWxQcm9wcyBleHRlbmRzIERpYWxvZ0Nsb3NlUHJvcHMge31cblxuY29uc3QgQWxlcnREaWFsb2dDYW5jZWwgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nQ2FuY2VsRWxlbWVudCwgQWxlcnREaWFsb2dDYW5jZWxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dDYW5jZWxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5jYW5jZWxQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBjYW5jZWxSZWYgfSA9IHVzZUFsZXJ0RGlhbG9nQ29udGVudENvbnRleHQoQ0FOQ0VMX05BTUUsIF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIGNvbnN0IHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNhbmNlbFJlZik7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuQ2xvc2Ugey4uLmRpYWxvZ1Njb3BlfSB7Li4uY2FuY2VsUHJvcHN9IHJlZj17cmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dDYW5jZWwuZGlzcGxheU5hbWUgPSBDQU5DRUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIERlc2NyaXB0aW9uV2FybmluZ1Byb3BzID0ge1xuICBjb250ZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8QWxlcnREaWFsb2dDb250ZW50RWxlbWVudCB8IG51bGw+O1xufTtcblxuY29uc3QgRGVzY3JpcHRpb25XYXJuaW5nOiBSZWFjdC5GQzxEZXNjcmlwdGlvbldhcm5pbmdQcm9wcz4gPSAoeyBjb250ZW50UmVmIH0pID0+IHtcbiAgY29uc3QgTUVTU0FHRSA9IGBcXGAke0NPTlRFTlRfTkFNRX1cXGAgcmVxdWlyZXMgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuXG5Zb3UgY2FuIGFkZCBhIGRlc2NyaXB0aW9uIHRvIHRoZSBcXGAke0NPTlRFTlRfTkFNRX1cXGAgYnkgcGFzc2luZyBhIFxcYCR7REVTQ1JJUFRJT05fTkFNRX1cXGAgY29tcG9uZW50IGFzIGEgY2hpbGQsIHdoaWNoIGFsc28gYmVuZWZpdHMgc2lnaHRlZCB1c2VycyBieSBhZGRpbmcgdmlzaWJsZSBjb250ZXh0IHRvIHRoZSBkaWFsb2cuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHlvdXIgb3duIGNvbXBvbmVudCBhcyBhIGRlc2NyaXB0aW9uIGJ5IGFzc2lnbmluZyBpdCBhbiBcXGBpZFxcYCBhbmQgcGFzc2luZyB0aGUgc2FtZSB2YWx1ZSB0byB0aGUgXFxgYXJpYS1kZXNjcmliZWRieVxcYCBwcm9wIGluIFxcYCR7Q09OVEVOVF9OQU1FfVxcYC4gSWYgdGhlIGRlc2NyaXB0aW9uIGlzIGNvbmZ1c2luZyBvciBkdXBsaWNhdGl2ZSBmb3Igc2lnaHRlZCB1c2VycywgeW91IGNhbiB1c2UgdGhlIFxcYEByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW5cXGAgcHJpbWl0aXZlIGFzIGEgd3JhcHBlciBhcm91bmQgeW91ciBkZXNjcmlwdGlvbiBjb21wb25lbnQuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9yYWRpeC11aS5jb20vcHJpbWl0aXZlcy9kb2NzL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nYDtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICBjb250ZW50UmVmLmN1cnJlbnQ/LmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpIVxuICAgICk7XG4gICAgaWYgKCFoYXNEZXNjcmlwdGlvbikgY29uc29sZS53YXJuKE1FU1NBR0UpO1xuICB9LCBbTUVTU0FHRSwgY29udGVudFJlZl0pO1xuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgUm9vdCA9IEFsZXJ0RGlhbG9nO1xuY29uc3QgVHJpZ2dlciA9IEFsZXJ0RGlhbG9nVHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IEFsZXJ0RGlhbG9nUG9ydGFsO1xuY29uc3QgT3ZlcmxheSA9IEFsZXJ0RGlhbG9nT3ZlcmxheTtcbmNvbnN0IENvbnRlbnQgPSBBbGVydERpYWxvZ0NvbnRlbnQ7XG5jb25zdCBBY3Rpb24gPSBBbGVydERpYWxvZ0FjdGlvbjtcbmNvbnN0IENhbmNlbCA9IEFsZXJ0RGlhbG9nQ2FuY2VsO1xuY29uc3QgVGl0bGUgPSBBbGVydERpYWxvZ1RpdGxlO1xuY29uc3QgRGVzY3JpcHRpb24gPSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uO1xuXG5leHBvcnQge1xuICBjcmVhdGVBbGVydERpYWxvZ1Njb3BlLFxuICAvL1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyLFxuICBBbGVydERpYWxvZ1BvcnRhbCxcbiAgQWxlcnREaWFsb2dPdmVybGF5LFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nQWN0aW9uLFxuICBBbGVydERpYWxvZ0NhbmNlbCxcbiAgQWxlcnREaWFsb2dUaXRsZSxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbixcbiAgLy9cbiAgUm9vdCxcbiAgVHJpZ2dlcixcbiAgUG9ydGFsLFxuICBPdmVybGF5LFxuICBDb250ZW50LFxuICBBY3Rpb24sXG4gIENhbmNlbCxcbiAgVGl0bGUsXG4gIERlc2NyaXB0aW9uLFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgQWxlcnREaWFsb2dQcm9wcyxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyUHJvcHMsXG4gIEFsZXJ0RGlhbG9nUG9ydGFsUHJvcHMsXG4gIEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzLFxuICBBbGVydERpYWxvZ0NvbnRlbnRQcm9wcyxcbiAgQWxlcnREaWFsb2dBY3Rpb25Qcm9wcyxcbiAgQWxlcnREaWFsb2dDYW5jZWxQcm9wcyxcbiAgQWxlcnREaWFsb2dUaXRsZVByb3BzLFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbIlJvb3QiLCJUcmlnZ2VyIiwiUG9ydGFsIiwiT3ZlcmxheSIsIkNvbnRlbnQiLCJUaXRsZSIsIkRlc2NyaXB0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/dist/index.mjs": /*!******************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/dist/index.mjs ***! \******************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Close: () => (/* binding */ Close),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Description: () => (/* binding */ Description),\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger),\n/* harmony export */ Overlay: () => (/* binding */ Overlay),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Title: () => (/* binding */ Title),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ WarningProvider: () => (/* binding */ WarningProvider),\n/* harmony export */ createDialogScope: () => (/* binding */ createDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Close,Content,Description,Dialog,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogTitle,DialogTrigger,Overlay,Portal,Root,Title,Trigger,WarningProvider,createDialogScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$();\n// packages/react/dialog/src/Dialog.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props)=>{\n _s();\n const { __scopeDialog, children, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogProvider, {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n titleId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n descriptionId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Dialog.useCallback\": ()=>setOpen({\n \"Dialog.useCallback\": (prevOpen)=>!prevOpen\n }[\"Dialog.useCallback\"])\n }[\"Dialog.useCallback\"], [\n setOpen\n ]),\n modal,\n children\n });\n};\n_s(Dialog, \"/yuatmodaV7w4hyulEirYGxYW3g=\", false, function() {\n return [\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId\n ];\n});\n_c = Dialog;\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n });\n}, \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n})), \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n});\n_c2 = DialogTrigger;\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props)=>{\n _s2();\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeDialog,\n forceMount,\n children: react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, (child)=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children: child\n })\n }))\n });\n};\n_s2(DialogPortal, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c3 = DialogPortal;\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogOverlayImpl, {\n ...overlayProps,\n ref: forwardedRef\n })\n }) : null;\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c5 = DialogOverlay;\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return(// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__.Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ],\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.div, {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"auto\",\n ...overlayProps.style\n }\n })\n }));\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c6 = DialogOverlayImpl;\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c7 = _s5((props, forwardedRef)=>{\n _s5();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n });\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c8 = DialogContent;\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.contentRef, contentRef);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DialogContentModal.useEffect\": ()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_12__.hideOthers)(content);\n }\n }[\"DialogContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n event.preventDefault();\n (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault())\n });\n}, \"z0QlyWdXD1MaBi1+3AtBr2MuboI=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n}));\n_c9 = DialogContentModal;\nvar DialogContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerDownOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props_onCloseAutoFocus;\n (_props_onCloseAutoFocus = props.onCloseAutoFocus) === null || _props_onCloseAutoFocus === void 0 ? void 0 : _props_onCloseAutoFocus.call(props, event);\n if (!event.defaultPrevented) {\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props_onInteractOutside, _context_triggerRef_current;\n (_props_onInteractOutside = props.onInteractOutside) === null || _props_onInteractOutside === void 0 ? void 0 : _props_onInteractOutside.call(props, event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n });\n}, \"YrVQPDdDfWR20TF4ZFjbVSADLNA=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c10 = DialogContentNonModal;\nvar DialogContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, contentRef);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__.DismissableLayer, {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n })\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TitleWarning, {\n titleId: context.titleId\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef,\n descriptionId: context.descriptionId\n })\n ]\n })\n ]\n });\n}, \"wjdue5beIiufJExexORWgo6pOh0=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards\n ];\n}));\n_c11 = DialogContentImpl;\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.h2, {\n id: context.titleId,\n ...titleProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c13 = DialogTitle;\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.p, {\n id: context.descriptionId,\n ...descriptionProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c15 = DialogDescription;\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false))\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c17 = DialogClose;\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContext)(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = (param)=>{\n let { titleId } = param;\n _s12();\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = \"`\".concat(titleWarningContext.contentName, \"` requires a `\").concat(titleWarningContext.titleName, \"` for the component to be accessible for screen reader users.\\n\\nIf you want to hide the `\").concat(titleWarningContext.titleName, \"`, you can wrap it with our VisuallyHidden component.\\n\\nFor more information, see https://radix-ui.com/primitives/docs/components/\").concat(titleWarningContext.docsSlug);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TitleWarning.useEffect\": ()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }\n }[\"TitleWarning.useEffect\"], [\n MESSAGE,\n titleId\n ]);\n return null;\n};\n_s12(TitleWarning, \"GA0m2oeX5XXEaAUGtZZQs5ML670=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c18 = TitleWarning;\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = (param)=>{\n let { contentRef, descriptionId } = param;\n _s13();\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = \"Warning: Missing `Description` or `aria-describedby={undefined}` for {\".concat(descriptionWarningContext.contentName, \"}.\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DescriptionWarning.useEffect\": ()=>{\n var _contentRef_current;\n const describedById = (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }\n }[\"DescriptionWarning.useEffect\"], [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\n_s13(DescriptionWarning, \"udowy/X+0YeBLGtDTT18KC58FH0=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c19 = DescriptionWarning;\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19;\n$RefreshReg$(_c, \"Dialog\");\n$RefreshReg$(_c1, \"DialogTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogTrigger\");\n$RefreshReg$(_c3, \"DialogPortal\");\n$RefreshReg$(_c4, \"DialogOverlay$React.forwardRef\");\n$RefreshReg$(_c5, \"DialogOverlay\");\n$RefreshReg$(_c6, \"DialogOverlayImpl\");\n$RefreshReg$(_c7, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogContent\");\n$RefreshReg$(_c9, \"DialogContentModal\");\n$RefreshReg$(_c10, \"DialogContentNonModal\");\n$RefreshReg$(_c11, \"DialogContentImpl\");\n$RefreshReg$(_c12, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c13, \"DialogTitle\");\n$RefreshReg$(_c14, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c15, \"DialogDescription\");\n$RefreshReg$(_c16, \"DialogClose$React.forwardRef\");\n$RefreshReg$(_c17, \"DialogClose\");\n$RefreshReg$(_c18, \"TitleWarning\");\n$RefreshReg$(_c19, \"DescriptionWarning\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0w7QUFDa0I7QUFDNUI7QUFDZTtBQUNKO0FBQ047QUFDZTtBQUNqQjtBQUNDO0FBQ0s7QUFDRjtBQUNGO0FBQ047QUFxRGpCO0FBN0NKLElBQU0sY0FBYztBQUdwQixJQUFNLENBQUMscUJBQXFCLGlCQUFpQixJQUFJLDJFQUFrQixDQUFDLFdBQVc7QUFjL0UsSUFBTSxDQUFDLGdCQUFnQixnQkFBZ0IsSUFBSSxvQkFBd0MsV0FBVztBQVU5RixhQUFzQyxDQUFDOztJQUNyQyxNQUFNLEVBQ0osZUFDQSxVQUNBLE1BQU0sVUFDTixhQUNBLGNBQ0EsUUFBUSxNQUNWLEdBQUk7SUFDSixNQUFNLGFBQW1CLDBDQUEwQixJQUFJO0lBQ3ZELE1BQU0sYUFBbUIsMENBQTZCLElBQUk7SUFDMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxPQUFPLGlHQUF5QjtRQUNuRCxNQUFNO1FBQ04sYUFBYTtRQUNiLFVBQVU7SUFDWixDQUFDO0lBRUQsT0FDRSx1RUFBQztRQUNDLE9BQU87UUFDUDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxjQUFjO1FBQ2QsY0FBb0I7a0NBQVksSUFBTTswQ0FBUSxDQUFDLFdBQWEsQ0FBQyxRQUFROztpQ0FBRztZQUFDLE9BQU87U0FBQztRQUNqRjtRQUVDO0lBQUE7QUFHUDs7O1FBdEJrQyx3RkFBb0I7UUFXckMscURBQUssQ0FBQztRQUNSLHFEQUFLLENBQUM7UUFDQSxxREFBSzs7O0tBeEJwQjtBQW1DTixPQUFPLGNBQWM7QUFNckIsSUFBTSxlQUFlO0FBTXJCLElBQU0sa0NBQXNCLHdEQUMxQixDQUFDLE9BQXdDOztJ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QUFDVDs7O1FBYm9DOzs7T0FEOUI7QUFnQk4sSUFBTSxPQUFPO0FBQ2IsSUFBTSxVQUFVO0FBQ2hCLElBQU0sU0FBUztBQUNmLElBQU0sVUFBVTtBQUNoQixJQUFNLFVBQVU7QUFDaEIsSUFBTSxRQUFRO0FBQ2QsSUFBTSxjQUFjO0FBQ3BCLElBQU0sUUFBUSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1pZCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgRm9jdXNTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZSc7XG5pbXBvcnQgeyBQb3J0YWwgYXMgUG9ydGFsUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcnRhbCc7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmVzZW5jZSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUZvY3VzR3VhcmRzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkcyc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICdyZWFjdC1yZW1vdmUtc2Nyb2xsJztcbmltcG9ydCB7IGhpZGVPdGhlcnMgfSBmcm9tICdhcmlhLWhpZGRlbic7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRElBTE9HX05BTUUgPSAnRGlhbG9nJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVEaWFsb2c/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZURpYWxvZ0NvbnRleHQsIGNyZWF0ZURpYWxvZ1Njb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShESUFMT0dfTkFNRSk7XG5cbnR5cGUgRGlhbG9nQ29udGV4dFZhbHVlID0ge1xuICB0cmlnZ2VyUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudFJlZjogUmVhY3QuUmVmT2JqZWN0PERpYWxvZ0NvbnRlbnRFbGVtZW50IHwgbnVsbD47XG4gIGNvbnRlbnRJZDogc3RyaW5nO1xuICB0aXRsZUlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uSWQ6IHN0cmluZztcbiAgb3BlbjogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBvbk9wZW5Ub2dnbGUoKTogdm9pZDtcbiAgbW9kYWw6IGJvb2xlYW47XG59O1xuXG5jb25zdCBbRGlhbG9nUHJvdmlkZXIsIHVzZURpYWxvZ0NvbnRleHRdID0gY3JlYXRlRGlhbG9nQ29udGV4dDxEaWFsb2dDb250ZXh0VmFsdWU+KERJQUxPR19OQU1FKTtcblxuaW50ZXJmYWNlIERpYWxvZ1Byb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBkZWZhdWx0T3Blbj86IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZT8ob3BlbjogYm9vbGVhbik6IHZvaWQ7XG4gIG1vZGFsPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRGlhbG9nOiBSZWFjdC5GQzxEaWFsb2dQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1Byb3BzPikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZURpYWxvZyxcbiAgICBjaGlsZHJlbixcbiAgICBvcGVuOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0T3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgbW9kYWwgPSB0cnVlLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHRyaWdnZXJSZWYgPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmPERpYWxvZ0NvbnRlbnRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogb3BlblByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2UsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1Byb3ZpZGVyXG4gICAgICBzY29wZT17X19zY29wZURpYWxvZ31cbiAgICAgIHRyaWdnZXJSZWY9e3RyaWdnZXJSZWZ9XG4gICAgICBjb250ZW50UmVmPXtjb250ZW50UmVmfVxuICAgICAgY29udGVudElkPXt1c2VJZCgpfVxuICAgICAgdGl0bGVJZD17dXNlSWQoKX1cbiAgICAgIGRlc2NyaXB0aW9uSWQ9e3VzZUlkKCl9XG4gICAgICBvcGVuPXtvcGVufVxuICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgb25PcGVuVG9nZ2xlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRPcGVuKChwcmV2T3BlbikgPT4gIXByZXZPcGVuKSwgW3NldE9wZW5dKX1cbiAgICAgIG1vZGFsPXttb2RhbH1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9EaWFsb2dQcm92aWRlcj5cbiAgKTtcbn07XG5cbkRpYWxvZy5kaXNwbGF5TmFtZSA9IERJQUxPR19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dUcmlnZ2VyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRSSUdHRVJfTkFNRSA9ICdEaWFsb2dUcmlnZ2VyJztcblxudHlwZSBEaWFsb2dUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xudHlwZSBQcmltaXRpdmVCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgRGlhbG9nVHJpZ2dlclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgRGlhbG9nVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nVHJpZ2dlckVsZW1lbnQsIERpYWxvZ1RyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgY29tcG9zZWRUcmlnZ2VyUmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC50cmlnZ2VyUmVmKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByaW1pdGl2ZS5idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIGFyaWEtY29udHJvbHM9e2NvbnRleHQuY29udGVudElkfVxuICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICB7Li4udHJpZ2dlclByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkVHJpZ2dlclJlZn1cbiAgICAgICAgb25DbGljaz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgY29udGV4dC5vbk9wZW5Ub2dnbGUpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5EaWFsb2dUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dQb3J0YWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUE9SVEFMX05BTUUgPSAnRGlhbG9nUG9ydGFsJztcblxudHlwZSBQb3J0YWxDb250ZXh0VmFsdWUgPSB7IGZvcmNlTW91bnQ/OiB0cnVlIH07XG5jb25zdCBbUG9ydGFsUHJvdmlkZXIsIHVzZVBvcnRhbENvbnRleHRdID0gY3JlYXRlRGlhbG9nQ29udGV4dDxQb3J0YWxDb250ZXh0VmFsdWU+KFBPUlRBTF9OQU1FLCB7XG4gIGZvcmNlTW91bnQ6IHVuZGVmaW5lZCxcbn0pO1xuXG50eXBlIFBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3J0YWxQcmltaXRpdmU+O1xuaW50ZXJmYWNlIERpYWxvZ1BvcnRhbFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAqL1xuICBjb250YWluZXI/OiBQb3J0YWxQcm9wc1snY29udGFpbmVyJ107XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dQb3J0YWw6IFJlYWN0LkZDPERpYWxvZ1BvcnRhbFByb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nUG9ydGFsUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURpYWxvZywgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFBPUlRBTF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgcmV0dXJuIChcbiAgICA8UG9ydGFsUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVEaWFsb2d9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9PlxuICAgICAge1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiAoXG4gICAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgICAgPFBvcnRhbFByaW1pdGl2ZSBhc0NoaWxkIGNvbnRhaW5lcj17Y29udGFpbmVyfT5cbiAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICA8L1BvcnRhbFByaW1pdGl2ZT5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgICkpfVxuICAgIDwvUG9ydGFsUHJvdmlkZXI+XG4gICk7XG59O1xuXG5EaWFsb2dQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nT3ZlcmxheVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBPVkVSTEFZX05BTUUgPSAnRGlhbG9nT3ZlcmxheSc7XG5cbnR5cGUgRGlhbG9nT3ZlcmxheUVsZW1lbnQgPSBEaWFsb2dPdmVybGF5SW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nT3ZlcmxheVByb3BzIGV4dGVuZHMgRGlhbG9nT3ZlcmxheUltcGxQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dPdmVybGF5ID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dPdmVybGF5RWxlbWVudCwgRGlhbG9nT3ZlcmxheVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dPdmVybGF5UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4ub3ZlcmxheVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiBjb250ZXh0Lm1vZGFsID8gKFxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAgPERpYWxvZ092ZXJsYXlJbXBsIHsuLi5vdmVybGF5UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApIDogbnVsbDtcbiAgfVxuKTtcblxuRGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IE9WRVJMQVlfTkFNRTtcblxudHlwZSBEaWFsb2dPdmVybGF5SW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIERpYWxvZ092ZXJsYXlJbXBsUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dPdmVybGF5SW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nT3ZlcmxheUltcGxFbGVtZW50LCBEaWFsb2dPdmVybGF5SW1wbFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dPdmVybGF5SW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KE9WRVJMQVlfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIChcbiAgICAgIC8vIE1ha2Ugc3VyZSBgQ29udGVudGAgaXMgc2Nyb2xsYWJsZSBldmVuIHdoZW4gaXQgZG9lc24ndCBsaXZlIGluc2lkZSBgUmVtb3ZlU2Nyb2xsYFxuICAgICAgLy8gaWUuIHdoZW4gYE92ZXJsYXlgIGFuZCBgQ29udGVudGAgYXJlIHNpYmxpbmdzXG4gICAgICA8UmVtb3ZlU2Nyb2xsIGFzPXtTbG90fSBhbGxvd1BpbmNoWm9vbSBzaGFyZHM9e1tjb250ZXh0LmNvbnRlbnRSZWZdfT5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICAgIHsuLi5vdmVybGF5UHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgLy8gV2UgcmUtZW5hYmxlIHBvaW50ZXItZXZlbnRzIHByZXZlbnRlZCBieSBgRGlhbG9nLkNvbnRlbnRgIHRvIGFsbG93IHNjcm9sbGluZyB0aGUgb3ZlcmxheS5cbiAgICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnYXV0bycsIC4uLm92ZXJsYXlQcm9wcy5zdHlsZSB9fVxuICAgICAgICAvPlxuICAgICAgPC9SZW1vdmVTY3JvbGw+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnRGlhbG9nQ29udGVudCc7XG5cbnR5cGUgRGlhbG9nQ29udGVudEVsZW1lbnQgPSBEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nQ29udGVudFByb3BzIGV4dGVuZHMgRGlhbG9nQ29udGVudFR5cGVQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50RWxlbWVudCwgRGlhbG9nQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICB7Y29udGV4dC5tb2RhbCA/IChcbiAgICAgICAgICA8RGlhbG9nQ29udGVudE1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxEaWFsb2dDb250ZW50Tm9uTW9kYWwgey4uLmNvbnRlbnRQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXNlbmNlPlxuICAgICk7XG4gIH1cbik7XG5cbkRpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQgPSBEaWFsb2dDb250ZW50SW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nQ29udGVudFR5cGVQcm9wc1xuICBleHRlbmRzIE9taXQ8RGlhbG9nQ29udGVudEltcGxQcm9wcywgJ3RyYXBGb2N1cycgfCAnZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzJz4ge31cblxuY29uc3QgRGlhbG9nQ29udGVudE1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQsIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29udGVudFJlZiwgY29udGVudFJlZik7XG5cbiAgICAvLyBhcmlhLWhpZGUgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNvbnRlbnQgKGJldHRlciBzdXBwb3J0ZWQgZXF1aXZhbGVudCB0byBzZXR0aW5nIGFyaWEtbW9kYWwpXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaWFsb2dDb250ZW50SW1wbFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAvLyB3ZSBtYWtlIHN1cmUgZm9jdXMgaXNuJ3QgdHJhcHBlZCBvbmNlIGBEaWFsb2dDb250ZW50YCBoYXMgYmVlbiBjbG9zZWRcbiAgICAgICAgLy8gKGNsb3NlZCAhPT0gdW5tb3VudGVkIHdoZW4gYW5pbWF0aW5nIG91dClcbiAgICAgICAgdHJhcEZvY3VzPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c1xuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICB9KX1cbiAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd25PdXRzaWRlLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEV2ZW50ID0gZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQ7XG4gICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpc1JpZ2h0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMiB8fCBjdHJsTGVmdENsaWNrO1xuXG4gICAgICAgICAgLy8gSWYgdGhlIGV2ZW50IGlzIGEgcmlnaHQtY2xpY2ssIHdlIHNob3VsZG4ndCBjbG9zZSBiZWNhdXNlXG4gICAgICAgICAgLy8gaXQgaXMgZWZmZWN0aXZlbHkgYXMgaWYgd2UgcmlnaHQtY2xpY2tlZCB0aGUgYE92ZXJsYXlgLlxuICAgICAgICAgIGlmIChpc1JpZ2h0Q2xpY2spIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pfVxuICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgYGZvY3Vzb3V0YCBldmVudCBtYXkgc3RpbGwgaGFwcGVuLlxuICAgICAgICAvLyBXZSBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJpZ2dlciBvdXIgYG9uRGlzbWlzc2AgaW4gc3VjaCBjYXNlLlxuICAgICAgICBvbkZvY3VzT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c091dHNpZGUsIChldmVudCkgPT5cbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRGlhbG9nQ29udGVudE5vbk1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQsIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaWFsb2dDb250ZW50SW1wbFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICB0cmFwRm9jdXM9e2ZhbHNlfVxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM9e2ZhbHNlfVxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzPy4oZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBpZiAoIWhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQpIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgLy8gQWx3YXlzIHByZXZlbnQgYXV0byBmb2N1cyBiZWNhdXNlIHdlIGVpdGhlciBmb2N1cyBtYW51YWxseSBvciB3YW50IHVzZXIgYWdlbnQgZm9jdXNcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH19XG4gICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcblxuICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJkb3duJykge1xuICAgICAgICAgICAgICBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUHJldmVudCBkaXNtaXNzaW5nIHdoZW4gY2xpY2tpbmcgdGhlIHRyaWdnZXIuXG4gICAgICAgICAgLy8gQXMgdGhlIHRyaWdnZXIgaXMgYWxyZWFkeSBzZXR1cCB0byBjbG9zZSwgd2l0aG91dCBkb2luZyBzbyB3b3VsZFxuICAgICAgICAgIC8vIGNhdXNlIGl0IHRvIGNsb3NlIGFuZCBpbW1lZGlhdGVseSBvcGVuLlxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjb25zdCB0YXJnZXRJc1RyaWdnZXIgPSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uY29udGFpbnModGFyZ2V0KTtcbiAgICAgICAgICBpZiAodGFyZ2V0SXNUcmlnZ2VyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgLy8gT24gU2FmYXJpIGlmIHRoZSB0cmlnZ2VyIGlzIGluc2lkZSBhIGNvbnRhaW5lciB3aXRoIHRhYkluZGV4PXswfSwgd2hlbiBjbGlja2VkXG4gICAgICAgICAgLy8gd2Ugd2lsbCBnZXQgdGhlIHBvaW50ZXIgZG93biBvdXRzaWRlIGV2ZW50IG9uIHRoZSB0cmlnZ2VyLCBidXQgdGhlbiBhIHN1YnNlcXVlbnRcbiAgICAgICAgICAvLyBmb2N1cyBvdXRzaWRlIGV2ZW50IG9uIHRoZSBjb250YWluZXIsIHdlIGlnbm9yZSBhbnkgZm9jdXMgb3V0c2lkZSBldmVudCB3aGVuIHdlJ3ZlXG4gICAgICAgICAgLy8gYWxyZWFkeSBoYWQgYSBwb2ludGVyIGRvd24gb3V0c2lkZSBldmVudC5cbiAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gJ2ZvY3VzaW4nICYmIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIERpYWxvZ0NvbnRlbnRJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBGb2N1c1Njb3BlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEZvY3VzU2NvcGU+O1xuaW50ZXJmYWNlIERpYWxvZ0NvbnRlbnRJbXBsUHJvcHMgZXh0ZW5kcyBPbWl0PERpc21pc3NhYmxlTGF5ZXJQcm9wcywgJ29uRGlzbWlzcyc+IHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBmb2N1cyBjYW5ub3QgZXNjYXBlIHRoZSBgQ29udGVudGAgdmlhIGtleWJvYXJkLFxuICAgKiBwb2ludGVyLCBvciBhIHByb2dyYW1tYXRpYyBmb2N1cy5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgdHJhcEZvY3VzPzogRm9jdXNTY29wZVByb3BzWyd0cmFwcGVkJ107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBvcGVuLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25PcGVuQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvbk1vdW50QXV0b0ZvY3VzJ107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBjbG9zZS5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uQ2xvc2VBdXRvRm9jdXM/OiBGb2N1c1Njb3BlUHJvcHNbJ29uVW5tb3VudEF1dG9Gb2N1cyddO1xufVxuXG5jb25zdCBEaWFsb2dDb250ZW50SW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ29udGVudEltcGxFbGVtZW50LCBEaWFsb2dDb250ZW50SW1wbFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50SW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCB0cmFwRm9jdXMsIG9uT3BlbkF1dG9Gb2N1cywgb25DbG9zZUF1dG9Gb2N1cywgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBEaWFsb2dgIHdpbGwgYmVcbiAgICAvLyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBET00gKGJlY2F1c2Ugb2YgdGhlIGBQb3J0YWxgKVxuICAgIHVzZUZvY3VzR3VhcmRzKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEZvY3VzU2NvcGVcbiAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgbG9vcFxuICAgICAgICAgIHRyYXBwZWQ9e3RyYXBGb2N1c31cbiAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXtvbk9wZW5BdXRvRm9jdXN9XG4gICAgICAgICAgb25Vbm1vdW50QXV0b0ZvY3VzPXtvbkNsb3NlQXV0b0ZvY3VzfVxuICAgICAgICA+XG4gICAgICAgICAgPERpc21pc3NhYmxlTGF5ZXJcbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgaWQ9e2NvbnRleHQuY29udGVudElkfVxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Y29udGV4dC5kZXNjcmlwdGlvbklkfVxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtjb250ZXh0LnRpdGxlSWR9XG4gICAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgb25EaXNtaXNzPXsoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Gb2N1c1Njb3BlPlxuICAgICAgICB7cHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxUaXRsZVdhcm5pbmcgdGl0bGVJZD17Y29udGV4dC50aXRsZUlkfSAvPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uV2FybmluZyBjb250ZW50UmVmPXtjb250ZW50UmVmfSBkZXNjcmlwdGlvbklkPXtjb250ZXh0LmRlc2NyaXB0aW9uSWR9IC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dUaXRsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUSVRMRV9OQU1FID0gJ0RpYWxvZ1RpdGxlJztcblxudHlwZSBEaWFsb2dUaXRsZUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuaDI+O1xudHlwZSBQcmltaXRpdmVIZWFkaW5nMlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuaDI+O1xuaW50ZXJmYWNlIERpYWxvZ1RpdGxlUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVIZWFkaW5nMlByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dUaXRsZUVsZW1lbnQsIERpYWxvZ1RpdGxlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1RpdGxlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLnRpdGxlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFRJVExFX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiA8UHJpbWl0aXZlLmgyIGlkPXtjb250ZXh0LnRpdGxlSWR9IHsuLi50aXRsZVByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gVElUTEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nRGVzY3JpcHRpb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgREVTQ1JJUFRJT05fTkFNRSA9ICdEaWFsb2dEZXNjcmlwdGlvbic7XG5cbnR5cGUgRGlhbG9nRGVzY3JpcHRpb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnA+O1xudHlwZSBQcmltaXRpdmVQYXJhZ3JhcGhQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLnA+O1xuaW50ZXJmYWNlIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVQYXJhZ3JhcGhQcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dEZXNjcmlwdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nRGVzY3JpcHRpb25FbGVtZW50LCBEaWFsb2dEZXNjcmlwdGlvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dEZXNjcmlwdGlvblByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5kZXNjcmlwdGlvblByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChERVNDUklQVElPTl9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5wIGlkPXtjb250ZXh0LmRlc2NyaXB0aW9uSWR9IHsuLi5kZXNjcmlwdGlvblByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRpYWxvZ0Rlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gREVTQ1JJUFRJT05fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nQ2xvc2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ0xPU0VfTkFNRSA9ICdEaWFsb2dDbG9zZSc7XG5cbnR5cGUgRGlhbG9nQ2xvc2VFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgRGlhbG9nQ2xvc2VQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUJ1dHRvblByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ0Nsb3NlID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDbG9zZUVsZW1lbnQsIERpYWxvZ0Nsb3NlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0Nsb3NlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLmNsb3NlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENMT1NFX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgey4uLmNsb3NlUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSkpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5EaWFsb2dDbG9zZS5kaXNwbGF5TmFtZSA9IENMT1NFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0U3RhdGUob3BlbjogYm9vbGVhbikge1xuICByZXR1cm4gb3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnO1xufVxuXG5jb25zdCBUSVRMRV9XQVJOSU5HX05BTUUgPSAnRGlhbG9nVGl0bGVXYXJuaW5nJztcblxuY29uc3QgW1dhcm5pbmdQcm92aWRlciwgdXNlV2FybmluZ0NvbnRleHRdID0gY3JlYXRlQ29udGV4dChUSVRMRV9XQVJOSU5HX05BTUUsIHtcbiAgY29udGVudE5hbWU6IENPTlRFTlRfTkFNRSxcbiAgdGl0bGVOYW1lOiBUSVRMRV9OQU1FLFxuICBkb2NzU2x1ZzogJ2RpYWxvZycsXG59KTtcblxudHlwZSBUaXRsZVdhcm5pbmdQcm9wcyA9IHsgdGl0bGVJZD86IHN0cmluZyB9O1xuXG5jb25zdCBUaXRsZVdhcm5pbmc6IFJlYWN0LkZDPFRpdGxlV2FybmluZ1Byb3BzPiA9ICh7IHRpdGxlSWQgfSkgPT4ge1xuICBjb25zdCB0aXRsZVdhcm5pbmdDb250ZXh0ID0gdXNlV2FybmluZ0NvbnRleHQoVElUTEVfV0FSTklOR19OQU1FKTtcblxuICBjb25zdCBNRVNTQUdFID0gYFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC5jb250ZW50TmFtZX1cXGAgcmVxdWlyZXMgYSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuXG5JZiB5b3Ugd2FudCB0byBoaWRlIHRoZSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCwgeW91IGNhbiB3cmFwIGl0IHdpdGggb3VyIFZpc3VhbGx5SGlkZGVuIGNvbXBvbmVudC5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JhZGl4LXVpLmNvbS9wcmltaXRpdmVzL2RvY3MvY29tcG9uZW50cy8ke3RpdGxlV2FybmluZ0NvbnRleHQuZG9jc1NsdWd9YDtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aXRsZUlkKSB7XG4gICAgICBjb25zdCBoYXNUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpdGxlSWQpO1xuICAgICAgaWYgKCFoYXNUaXRsZSkgY29uc29sZS5lcnJvcihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCB0aXRsZUlkXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBERVNDUklQVElPTl9XQVJOSU5HX05BTUUgPSAnRGlhbG9nRGVzY3JpcHRpb25XYXJuaW5nJztcblxudHlwZSBEZXNjcmlwdGlvbldhcm5pbmdQcm9wcyA9IHtcbiAgY29udGVudFJlZjogUmVhY3QuUmVmT2JqZWN0PERpYWxvZ0NvbnRlbnRFbGVtZW50IHwgbnVsbD47XG4gIGRlc2NyaXB0aW9uSWQ/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBEZXNjcmlwdGlvbldhcm5pbmc6IFJlYWN0LkZDPERlc2NyaXB0aW9uV2FybmluZ1Byb3BzPiA9ICh7IGNvbnRlbnRSZWYsIGRlc2NyaXB0aW9uSWQgfSkgPT4ge1xuICBjb25zdCBkZXNjcmlwdGlvbldhcm5pbmdDb250ZXh0ID0gdXNlV2FybmluZ0NvbnRleHQoREVTQ1JJUFRJT05fV0FSTklOR19OQU1FKTtcbiAgY29uc3QgTUVTU0FHRSA9IGBXYXJuaW5nOiBNaXNzaW5nIFxcYERlc2NyaXB0aW9uXFxgIG9yIFxcYGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH1cXGAgZm9yIHske2Rlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQuY29udGVudE5hbWV9fS5gO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZCA9IGNvbnRlbnRSZWYuY3VycmVudD8uZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgLy8gaWYgd2UgaGF2ZSBhbiBpZCBhbmQgdGhlIHVzZXIgaGFzbid0IHNldCBhcmlhLWRlc2NyaWJlZGJ5PXt1bmRlZmluZWR9XG4gICAgaWYgKGRlc2NyaXB0aW9uSWQgJiYgZGVzY3JpYmVkQnlJZCkge1xuICAgICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXNjcmlwdGlvbklkKTtcbiAgICAgIGlmICghaGFzRGVzY3JpcHRpb24pIGNvbnNvbGUud2FybihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCBjb250ZW50UmVmLCBkZXNjcmlwdGlvbklkXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBSb290ID0gRGlhbG9nO1xuY29uc3QgVHJpZ2dlciA9IERpYWxvZ1RyaWdnZXI7XG5jb25zdCBQb3J0YWwgPSBEaWFsb2dQb3J0YWw7XG5jb25zdCBPdmVybGF5ID0gRGlhbG9nT3ZlcmxheTtcbmNvbnN0IENvbnRlbnQgPSBEaWFsb2dDb250ZW50O1xuY29uc3QgVGl0bGUgPSBEaWFsb2dUaXRsZTtcbmNvbnN0IERlc2NyaXB0aW9uID0gRGlhbG9nRGVzY3JpcHRpb247XG5jb25zdCBDbG9zZSA9IERpYWxvZ0Nsb3NlO1xuXG5leHBvcnQge1xuICBjcmVhdGVEaWFsb2dTY29wZSxcbiAgLy9cbiAgRGlhbG9nLFxuICBEaWFsb2dUcmlnZ2VyLFxuICBEaWFsb2dQb3J0YWwsXG4gIERpYWxvZ092ZXJsYXksXG4gIERpYWxvZ0NvbnRlbnQsXG4gIERpYWxvZ1RpdGxlLFxuICBEaWFsb2dEZXNjcmlwdGlvbixcbiAgRGlhbG9nQ2xvc2UsXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgT3ZlcmxheSxcbiAgQ29udGVudCxcbiAgVGl0bGUsXG4gIERlc2NyaXB0aW9uLFxuICBDbG9zZSxcbiAgLy9cbiAgV2FybmluZ1Byb3ZpZGVyLFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgRGlhbG9nUHJvcHMsXG4gIERpYWxvZ1RyaWdnZXJQcm9wcyxcbiAgRGlhbG9nUG9ydGFsUHJvcHMsXG4gIERpYWxvZ092ZXJsYXlQcm9wcyxcbiAgRGlhbG9nQ29udGVudFByb3BzLFxuICBEaWFsb2dUaXRsZVByb3BzLFxuICBEaWFsb2dEZXNjcmlwdGlvblByb3BzLFxuICBEaWFsb2dDbG9zZVByb3BzLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs": /*!***********************************************************!*\ !*** ./node_modules/@radix-ui/react-arrow/dist/index.mjs ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/arrow/src/Arrow.tsx\n\n\n\nvar NAME = \"Arrow\";\nvar Arrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUN1QjtBQUNkO0FBQ3hDO0FBQ0EsWUFBWSw2Q0FBZ0I7QUFDNUIsVUFBVSxrREFBa0Q7QUFDNUQseUJBQXlCLHNEQUFHO0FBQzVCLElBQUksZ0VBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxzREFBRyxjQUFjLDBCQUEwQjtBQUN0RztBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvYXJyb3cvc3JjL0Fycm93LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgTkFNRSA9IFwiQXJyb3dcIjtcbnZhciBBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgd2lkdGggPSAxMCwgaGVpZ2h0ID0gNSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFByaW1pdGl2ZS5zdmcsXG4gICAge1xuICAgICAgLi4uYXJyb3dQcm9wcyxcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB2aWV3Qm94OiBcIjAgMCAzMCAxMFwiLFxuICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogXCJub25lXCIsXG4gICAgICBjaGlsZHJlbjogcHJvcHMuYXNDaGlsZCA/IGNoaWxkcmVuIDogLyogQF9fUFVSRV9fICovIGpzeChcInBvbHlnb25cIiwgeyBwb2ludHM6IFwiMCwwIDMwLDAgMTUsMTBcIiB9KVxuICAgIH1cbiAgKTtcbn0pO1xuQXJyb3cuZGlzcGxheU5hbWUgPSBOQU1FO1xudmFyIFJvb3QgPSBBcnJvdztcbmV4cG9ydCB7XG4gIEFycm93LFxuICBSb290XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-avatar/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarFallback: () => (/* binding */ AvatarFallback),\n/* harmony export */ AvatarImage: () => (/* binding */ AvatarImage),\n/* harmony export */ Fallback: () => (/* binding */ Fallback),\n/* harmony export */ Image: () => (/* binding */ Image),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ createAvatarScope: () => (/* binding */ createAvatarScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Avatar,AvatarFallback,AvatarImage,Fallback,Image,Root,createAvatarScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/avatar/src/avatar.tsx\n\n\n\n\n\n\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"idle\");\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(AvatarProvider, {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.span, {\n ...avatarProps,\n ref: forwardedRef\n })\n });\n}, \"LArj5vvXGSJ1qfdOqtP5F0s7/3k=\")), \"LArj5vvXGSJ1qfdOqtP5F0s7/3k=\");\n_c1 = Avatar;\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeAvatar, src, onLoadingStatusChange = ()=>{}, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps.referrerPolicy);\n const handleLoadingStatusChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef)({\n \"AvatarImage.useCallbackRef[handleLoadingStatusChange]\": (status)=>{\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n }\n }[\"AvatarImage.useCallbackRef[handleLoadingStatusChange]\"]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__.useLayoutEffect)({\n \"AvatarImage.useLayoutEffect\": ()=>{\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }\n }[\"AvatarImage.useLayoutEffect\"], [\n imageLoadingStatus,\n handleLoadingStatusChange\n ]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.img, {\n ...imageProps,\n ref: forwardedRef,\n src\n }) : null;\n}, \"pLqDpzOvi4to5gZ7rBbQ5hdybXk=\", false, function() {\n return [\n useAvatarContext,\n useImageLoadingStatus,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef\n ];\n})), \"pLqDpzOvi4to5gZ7rBbQ5hdybXk=\", false, function() {\n return [\n useAvatarContext,\n useImageLoadingStatus,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef\n ];\n});\n_c3 = AvatarImage;\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = react__WEBPACK_IMPORTED_MODULE_0__.useState(delayMs === void 0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"AvatarFallback.useEffect\": ()=>{\n if (delayMs !== void 0) {\n const timerId = window.setTimeout({\n \"AvatarFallback.useEffect.timerId\": ()=>setCanRender(true)\n }[\"AvatarFallback.useEffect.timerId\"], delayMs);\n return ({\n \"AvatarFallback.useEffect\": ()=>window.clearTimeout(timerId)\n })[\"AvatarFallback.useEffect\"];\n }\n }\n }[\"AvatarFallback.useEffect\"], [\n delayMs\n ]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.span, {\n ...fallbackProps,\n ref: forwardedRef\n }) : null;\n}, \"IfNhTzYfBBOb8/Nn5G9fJj5kYTk=\", false, function() {\n return [\n useAvatarContext\n ];\n})), \"IfNhTzYfBBOb8/Nn5G9fJj5kYTk=\", false, function() {\n return [\n useAvatarContext\n ];\n});\n_c5 = AvatarFallback;\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction useImageLoadingStatus(src, referrerPolicy) {\n _s3();\n const [loadingStatus, setLoadingStatus] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"idle\");\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__.useLayoutEffect)({\n \"useImageLoadingStatus.useLayoutEffect\": ()=>{\n if (!src) {\n setLoadingStatus(\"error\");\n return;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = {\n \"useImageLoadingStatus.useLayoutEffect.updateStatus\": (status)=>({\n \"useImageLoadingStatus.useLayoutEffect.updateStatus\": ()=>{\n if (!isMounted) return;\n setLoadingStatus(status);\n }\n })[\"useImageLoadingStatus.useLayoutEffect.updateStatus\"]\n }[\"useImageLoadingStatus.useLayoutEffect.updateStatus\"];\n setLoadingStatus(\"loading\");\n image.onload = updateStatus(\"loaded\");\n image.onerror = updateStatus(\"error\");\n image.src = src;\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n return ({\n \"useImageLoadingStatus.useLayoutEffect\": ()=>{\n isMounted = false;\n }\n })[\"useImageLoadingStatus.useLayoutEffect\"];\n }\n }[\"useImageLoadingStatus.useLayoutEffect\"], [\n src,\n referrerPolicy\n ]);\n return loadingStatus;\n}\n_s3(useImageLoadingStatus, \"kHtr7xNJjlthpAAUmbEbUxzkNdM=\");\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Avatar$React.forwardRef\");\n$RefreshReg$(_c1, \"Avatar\");\n$RefreshReg$(_c2, \"AvatarImage$React.forwardRef\");\n$RefreshReg$(_c3, \"AvatarImage\");\n$RefreshReg$(_c4, \"AvatarFallback$React.forwardRef\");\n$RefreshReg$(_c5, \"AvatarFallback\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNZO0FBQ0o7QUFDQztBQUNOO0FBb0NsQjtBQTVCUixJQUFNLGNBQWM7QUFHcEIsSUFBTSxDQUFDLHFCQUFxQixpQkFBaUIsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0FBUy9FLElBQU0sQ0FBQyxnQkFBZ0IsZ0JBQWdCLElBQUksb0JBQXdDLFdBQVc7QUFNOUYsSUFBTSwwQkFBZSxzREFDbkIsQ0FBQyxPQUFpQzs7SUFDaEMsTUFBTSxFQUFFLGVBQWUsR0FBRyxZQUFZLElBQUk7SUFDMUMsTUFBTSxDQUFDLG9CQUFvQixxQkFBcUIsSUFBVSw0Q0FBNkIsTUFBTTtJQUM3RixPQUNFLHVFQUFDO1FBQ0MsT0FBTztRQUNQO1FBQ0EsNEJBQTRCO1FBRTVCLGlGQUFDLGdFQUFTLENBQUMsTUFBVjtZQUFnQixHQUFHO1lBQWEsS0FBSztRQUFBLENBQWM7SUFBQTtBQUcxRDs7QUFHRixPQUFPLGNBQWM7QUFNckIsSUFBTSxhQUFhO0FBUW5CLElBQU0sZ0NBQW9CLHdEQUN4QixDQUFDLE9BQXNDOztJQUNyQyxNQUFNLEVBQUUsZUFBZSxLQUFLLHdCQUF3QixLQUFPLEdBQUcsR0FBRyxXQUFXLElBQUk7SUFDaEYsTUFBTSxVQUFVLGlCQUFpQixZQUFZLGFBQWE7SUFDMUQsTUFBTSwyQ0FBMkMsS0FBSyxXQUFXLGNBQWM7SUFDL0UsTUFBTSw0QkFBNEIsZ0ZBQWM7aUVBQUMsQ0FBQztZQUNoRCxzQkFBc0IsTUFBTTtZQUM1QixRQUFRLDJCQUEyQixNQUFNO1FBQzNDLENBQUM7O0lBRUQsa0ZBQWU7dUNBQUM7WUFDZCxJQUFJLHVCQUF1QixRQUFRO2dCQUNqQywwQkFBMEIsa0JBQWtCO1lBQzlDO1FBQ0Y7c0NBQUc7UUFBQztRQUFvQix5QkFBeUI7S0FBQztJQUVsRCxPQUFPLHVCQUF1QixXQUM1Qix1RUFBQyxnRUFBUyxDQUFDLEtBQVY7UUFBZSxHQUFHO1FBQVksS0FBSztRQUFjO0lBQUEsQ0FBVSxJQUMxRDtBQUNOOzs7Ozs7Ozs7UUFmNkI7UUFDTyw0RUFBYzs7OztBQWlCcEQsWUFBWSxjQUFjO0FBTTFCLElBQU0sZ0JBQWdCO0FBT3RCLElBQU0sbUNBQXVCLHdEQUMzQixDQUFDLE9BQXlDOztJQUN4QyxNQUFNLEVBQUUsZUFBZSxTQUFTLEdBQUcsY0FBYyxJQUFJO0lBQ3JELE1BQU0sMkJBQTJCLGVBQWUsYUFBYTtJQUM3RCxNQUFNLENBQUMsV0FBVyxZQUFZLElBQVUsNENBQVMsWUFBWSxNQUFTO0lBRWhFO29DQUFVO1lBQ2QsSUFBSSxZQUFZLFFBQVc7Z0JBQ3pCLE1BQU0sVUFBVSxPQUFPO3dEQUFXLElBQU0sYUFBYSxJQUFJO3VEQUFHLE9BQU87Z0JBQ25FO2dEQUFPLElBQU0sT0FBTyxhQUFhLE9BQU87O1lBQzFDO1FBQ0Y7bUNBQUc7UUFBQyxPQUFPO0tBQUM7SUFFWixPQUFPLGFBQWEsUUFBUSx1QkFBdUIsV0FDakQsdUVBQUMsZ0VBQVMsQ0FBQyxNQUFWO1FBQWdCLEdBQUc7UUFBZSxLQUFLO0lBQUEsQ0FBYyxJQUNwRDtBQUNOOzs7Ozs7UUFia0I7Ozs7QUFnQnBCLGVBQWUsY0FBYztBQUk3QiwrQkFBK0IsS0FBYyxnQkFBb0Q7O0lBQy9GLE1BQU0sQ0FBQyxlQUFlLGdCQUFnQixJQUFVLDRDQUE2QixNQUFNO0lBRW5GLGtGQUFlO2lEQUFDO1lBQ2QsSUFBSSxDQUFDLEtBQUs7Z0JBQ1IsaUJBQWlCLE9BQU87Z0JBQ3hCO1lBQ0Y7WUFFQSxJQUFJLFlBQVk7WUFDaEIsTUFBTSxRQUFRLElBQUksT0FBTyxNQUFNO1lBRS9CLE1BQU07c0VBQWUsQ0FBQzs4RUFBK0I7NEJBQ25ELElBQUksQ0FBQyxVQUFXOzRCQUNoQixpQkFBaUIsTUFBTTt3QkFDekI7OztZQUVBLGlCQUFpQixTQUFTO1lBQzFCLE1BQU0sU0FBUyxhQUFhLFFBQVE7WUFDcEMsTUFBTSxVQUFVLGFBQWEsT0FBTztZQUNwQyxNQUFNLE1BQU07WUFDWixJQUFJLGdCQUFnQjtnQkFDbEIsTUFBTSxpQkFBaUI7WUFDekI7WUFFQTt5REFBTztvQkFDTCxZQUFZO2dCQUNkOztRQUNGO2dEQUFHO1FBQUM7UUFBSyxjQUFjO0tBQUM7SUFFeEIsT0FBTztBQUNUO0lBL0JTO0FBZ0NULElBQU0sT0FBTztBQUNiLElBQU0sUUFBUTtBQUNkLElBQU0sV0FBVyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvYXZhdGFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQXZhdGFyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFWQVRBUl9OQU1FID0gJ0F2YXRhcic7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlQXZhdGFyPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVBdmF0YXJDb250ZXh0LCBjcmVhdGVBdmF0YXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoQVZBVEFSX05BTUUpO1xuXG50eXBlIEltYWdlTG9hZGluZ1N0YXR1cyA9ICdpZGxlJyB8ICdsb2FkaW5nJyB8ICdsb2FkZWQnIHwgJ2Vycm9yJztcblxudHlwZSBBdmF0YXJDb250ZXh0VmFsdWUgPSB7XG4gIGltYWdlTG9hZGluZ1N0YXR1czogSW1hZ2VMb2FkaW5nU3RhdHVzO1xuICBvbkltYWdlTG9hZGluZ1N0YXR1c0NoYW5nZShzdGF0dXM6IEltYWdlTG9hZGluZ1N0YXR1cyk6IHZvaWQ7XG59O1xuXG5jb25zdCBbQXZhdGFyUHJvdmlkZXIsIHVzZUF2YXRhckNvbnRleHRdID0gY3JlYXRlQXZhdGFyQ29udGV4dDxBdmF0YXJDb250ZXh0VmFsdWU+KEFWQVRBUl9OQU1FKTtcblxudHlwZSBBdmF0YXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xudHlwZSBQcmltaXRpdmVTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbmludGVyZmFjZSBBdmF0YXJQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7fVxuXG5jb25zdCBBdmF0YXIgPSBSZWFjdC5mb3J3YXJkUmVmPEF2YXRhckVsZW1lbnQsIEF2YXRhclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBdmF0YXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUF2YXRhciwgLi4uYXZhdGFyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtpbWFnZUxvYWRpbmdTdGF0dXMsIHNldEltYWdlTG9hZGluZ1N0YXR1c10gPSBSZWFjdC51c2VTdGF0ZTxJbWFnZUxvYWRpbmdTdGF0dXM+KCdpZGxlJyk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxBdmF0YXJQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZUF2YXRhcn1cbiAgICAgICAgaW1hZ2VMb2FkaW5nU3RhdHVzPXtpbWFnZUxvYWRpbmdTdGF0dXN9XG4gICAgICAgIG9uSW1hZ2VMb2FkaW5nU3RhdHVzQ2hhbmdlPXtzZXRJbWFnZUxvYWRpbmdTdGF0dXN9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuc3BhbiB7Li4uYXZhdGFyUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgPC9BdmF0YXJQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5BdmF0YXIuZGlzcGxheU5hbWUgPSBBVkFUQVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQXZhdGFySW1hZ2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgSU1BR0VfTkFNRSA9ICdBdmF0YXJJbWFnZSc7XG5cbnR5cGUgQXZhdGFySW1hZ2VFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmltZz47XG50eXBlIFByaW1pdGl2ZUltYWdlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5pbWc+O1xuaW50ZXJmYWNlIEF2YXRhckltYWdlUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVJbWFnZVByb3BzIHtcbiAgb25Mb2FkaW5nU3RhdHVzQ2hhbmdlPzogKHN0YXR1czogSW1hZ2VMb2FkaW5nU3RhdHVzKSA9PiB2b2lkO1xufVxuXG5jb25zdCBBdmF0YXJJbWFnZSA9IFJlYWN0LmZvcndhcmRSZWY8QXZhdGFySW1hZ2VFbGVtZW50LCBBdmF0YXJJbWFnZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBdmF0YXJJbWFnZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQXZhdGFyLCBzcmMsIG9uTG9hZGluZ1N0YXR1c0NoYW5nZSA9ICgpID0+IHt9LCAuLi5pbWFnZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQXZhdGFyQ29udGV4dChJTUFHRV9OQU1FLCBfX3Njb3BlQXZhdGFyKTtcbiAgICBjb25zdCBpbWFnZUxvYWRpbmdTdGF0dXMgPSB1c2VJbWFnZUxvYWRpbmdTdGF0dXMoc3JjLCBpbWFnZVByb3BzLnJlZmVycmVyUG9saWN5KTtcbiAgICBjb25zdCBoYW5kbGVMb2FkaW5nU3RhdHVzQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYoKHN0YXR1czogSW1hZ2VMb2FkaW5nU3RhdHVzKSA9PiB7XG4gICAgICBvbkxvYWRpbmdTdGF0dXNDaGFuZ2Uoc3RhdHVzKTtcbiAgICAgIGNvbnRleHQub25JbWFnZUxvYWRpbmdTdGF0dXNDaGFuZ2Uoc3RhdHVzKTtcbiAgICB9KTtcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaW1hZ2VMb2FkaW5nU3RhdHVzICE9PSAnaWRsZScpIHtcbiAgICAgICAgaGFuZGxlTG9hZGluZ1N0YXR1c0NoYW5nZShpbWFnZUxvYWRpbmdTdGF0dXMpO1xuICAgICAgfVxuICAgIH0sIFtpbWFnZUxvYWRpbmdTdGF0dXMsIGhhbmRsZUxvYWRpbmdTdGF0dXNDaGFuZ2VdKTtcblxuICAgIHJldHVybiBpbWFnZUxvYWRpbmdTdGF0dXMgPT09ICdsb2FkZWQnID8gKFxuICAgICAgPFByaW1pdGl2ZS5pbWcgey4uLmltYWdlUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSBzcmM9e3NyY30gLz5cbiAgICApIDogbnVsbDtcbiAgfVxuKTtcblxuQXZhdGFySW1hZ2UuZGlzcGxheU5hbWUgPSBJTUFHRV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBdmF0YXJGYWxsYmFja1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBGQUxMQkFDS19OQU1FID0gJ0F2YXRhckZhbGxiYWNrJztcblxudHlwZSBBdmF0YXJGYWxsYmFja0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgQXZhdGFyRmFsbGJhY2tQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7XG4gIGRlbGF5TXM/OiBudW1iZXI7XG59XG5cbmNvbnN0IEF2YXRhckZhbGxiYWNrID0gUmVhY3QuZm9yd2FyZFJlZjxBdmF0YXJGYWxsYmFja0VsZW1lbnQsIEF2YXRhckZhbGxiYWNrUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEF2YXRhckZhbGxiYWNrUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBdmF0YXIsIGRlbGF5TXMsIC4uLmZhbGxiYWNrUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VBdmF0YXJDb250ZXh0KEZBTExCQUNLX05BTUUsIF9fc2NvcGVBdmF0YXIpO1xuICAgIGNvbnN0IFtjYW5SZW5kZXIsIHNldENhblJlbmRlcl0gPSBSZWFjdC51c2VTdGF0ZShkZWxheU1zID09PSB1bmRlZmluZWQpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChkZWxheU1zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNldENhblJlbmRlcih0cnVlKSwgZGVsYXlNcyk7XG4gICAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgfVxuICAgIH0sIFtkZWxheU1zXSk7XG5cbiAgICByZXR1cm4gY2FuUmVuZGVyICYmIGNvbnRleHQuaW1hZ2VMb2FkaW5nU3RhdHVzICE9PSAnbG9hZGVkJyA/IChcbiAgICAgIDxQcmltaXRpdmUuc3BhbiB7Li4uZmFsbGJhY2tQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgKSA6IG51bGw7XG4gIH1cbik7XG5cbkF2YXRhckZhbGxiYWNrLmRpc3BsYXlOYW1lID0gRkFMTEJBQ0tfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiB1c2VJbWFnZUxvYWRpbmdTdGF0dXMoc3JjPzogc3RyaW5nLCByZWZlcnJlclBvbGljeT86IFJlYWN0LkhUTUxBdHRyaWJ1dGVSZWZlcnJlclBvbGljeSkge1xuICBjb25zdCBbbG9hZGluZ1N0YXR1cywgc2V0TG9hZGluZ1N0YXR1c10gPSBSZWFjdC51c2VTdGF0ZTxJbWFnZUxvYWRpbmdTdGF0dXM+KCdpZGxlJyk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNyYykge1xuICAgICAgc2V0TG9hZGluZ1N0YXR1cygnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaXNNb3VudGVkID0gdHJ1ZTtcbiAgICBjb25zdCBpbWFnZSA9IG5ldyB3aW5kb3cuSW1hZ2UoKTtcblxuICAgIGNvbnN0IHVwZGF0ZVN0YXR1cyA9IChzdGF0dXM6IEltYWdlTG9hZGluZ1N0YXR1cykgPT4gKCkgPT4ge1xuICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgIHNldExvYWRpbmdTdGF0dXMoc3RhdHVzKTtcbiAgICB9O1xuXG4gICAgc2V0TG9hZGluZ1N0YXR1cygnbG9hZGluZycpO1xuICAgIGltYWdlLm9ubG9hZCA9IHVwZGF0ZVN0YXR1cygnbG9hZGVkJyk7XG4gICAgaW1hZ2Uub25lcnJvciA9IHVwZGF0ZVN0YXR1cygnZXJyb3InKTtcbiAgICBpbWFnZS5zcmMgPSBzcmM7XG4gICAgaWYgKHJlZmVycmVyUG9saWN5KSB7XG4gICAgICBpbWFnZS5yZWZlcnJlclBvbGljeSA9IHJlZmVycmVyUG9saWN5O1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpc01vdW50ZWQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbc3JjLCByZWZlcnJlclBvbGljeV0pO1xuXG4gIHJldHVybiBsb2FkaW5nU3RhdHVzO1xufVxuY29uc3QgUm9vdCA9IEF2YXRhcjtcbmNvbnN0IEltYWdlID0gQXZhdGFySW1hZ2U7XG5jb25zdCBGYWxsYmFjayA9IEF2YXRhckZhbGxiYWNrO1xuXG5leHBvcnQge1xuICBjcmVhdGVBdmF0YXJTY29wZSxcbiAgLy9cbiAgQXZhdGFyLFxuICBBdmF0YXJJbWFnZSxcbiAgQXZhdGFyRmFsbGJhY2ssXG4gIC8vXG4gIFJvb3QsXG4gIEltYWdlLFxuICBGYWxsYmFjayxcbn07XG5leHBvcnQgdHlwZSB7IEF2YXRhclByb3BzLCBBdmF0YXJJbWFnZVByb3BzLCBBdmF0YXJGYWxsYmFja1Byb3BzIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs": /*!***************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs ***! \***************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3ByaW1pdGl2ZS9zcmMvcHJpbWl0aXZlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOT0RFUyA9IFtcbiAgXCJhXCIsXG4gIFwiYnV0dG9uXCIsXG4gIFwiZGl2XCIsXG4gIFwiZm9ybVwiLFxuICBcImgyXCIsXG4gIFwiaDNcIixcbiAgXCJpbWdcIixcbiAgXCJpbnB1dFwiLFxuICBcImxhYmVsXCIsXG4gIFwibGlcIixcbiAgXCJuYXZcIixcbiAgXCJvbFwiLFxuICBcInBcIixcbiAgXCJzcGFuXCIsXG4gIFwic3ZnXCIsXG4gIFwidWxcIlxuXTtcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxudmFyIFJvb3QgPSBQcmltaXRpdmU7XG5leHBvcnQge1xuICBQcmltaXRpdmUsXG4gIFJvb3QsXG4gIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.mjs": /*!**********************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.mjs ***! \**********************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment) {\n props2.ref = forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef;\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, props2);\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNJO0FBQy9ELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBO0FBQ0EsMEJBQTBCLDJDQUFjO0FBQ3hDLGtDQUFrQyx5RUFBVztBQUM3QztBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVMsSUFBSSxVQUFVO0FBQ3BEO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWF2YXRhci9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvc2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQyLCBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBTbG90ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjaGlsZHJlbkFycmF5ID0gUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IHNsb3R0YWJsZSA9IGNoaWxkcmVuQXJyYXkuZmluZChpc1Nsb3R0YWJsZSk7XG4gIGlmIChzbG90dGFibGUpIHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuO1xuICAgIGNvbnN0IG5ld0NoaWxkcmVuID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoY2hpbGQgPT09IHNsb3R0YWJsZSkge1xuICAgICAgICBpZiAoUmVhY3QuQ2hpbGRyZW4uY291bnQobmV3RWxlbWVudCkgPiAxKSByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuOiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IFJlYWN0LmNsb25lRWxlbWVudChuZXdFbGVtZW50LCB2b2lkIDAsIG5ld0NoaWxkcmVuKSA6IG51bGwgfSk7XG4gIH1cbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuIH0pO1xufSk7XG5TbG90LmRpc3BsYXlOYW1lID0gXCJTbG90XCI7XG52YXIgU2xvdENsb25lID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSBnZXRFbGVtZW50UmVmKGNoaWxkcmVuKTtcbiAgICBjb25zdCBwcm9wczIgPSBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRyZW4ucHJvcHMpO1xuICAgIGlmIChjaGlsZHJlbi50eXBlICE9PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgcHJvcHMyLnJlZiA9IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWY7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHByb3BzMik7XG4gIH1cbiAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDEgPyBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpIDogbnVsbDtcbn0pO1xuU2xvdENsb25lLmRpc3BsYXlOYW1lID0gXCJTbG90Q2xvbmVcIjtcbnZhciBTbG90dGFibGUgPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZyYWdtZW50MiwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/@radix-ui/react-checkbox/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: () => (/* binding */ Checkbox),\n/* harmony export */ CheckboxIndicator: () => (/* binding */ CheckboxIndicator),\n/* harmony export */ Indicator: () => (/* binding */ Indicator),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ createCheckboxScope: () => (/* binding */ createCheckboxScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-previous */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Checkbox,CheckboxIndicator,Indicator,Root,createCheckboxScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n// packages/react/checkbox/src/Checkbox.tsx\n\n\n\n\n\n\n\n\n\n\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { __scopeCheckbox, name, checked: checkedProp, defaultChecked, required, disabled, value = \"on\", onCheckedChange, form, ...checkboxProps } = props;\n const [button, setButton] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"Checkbox.useComposedRefs[composedRefs]\": (node)=>setButton(node)\n }[\"Checkbox.useComposedRefs[composedRefs]\"]);\n const hasConsumerStoppedPropagationRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(checked);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Checkbox.useEffect\": ()=>{\n const form2 = button === null || button === void 0 ? void 0 : button.form;\n if (form2) {\n const reset = {\n \"Checkbox.useEffect.reset\": ()=>setChecked(initialCheckedStateRef.current)\n }[\"Checkbox.useEffect.reset\"];\n form2.addEventListener(\"reset\", reset);\n return ({\n \"Checkbox.useEffect\": ()=>form2.removeEventListener(\"reset\", reset)\n })[\"Checkbox.useEffect\"];\n }\n }\n }[\"Checkbox.useEffect\"], [\n button,\n setChecked\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(CheckboxProvider, {\n scope: __scopeCheckbox,\n state: checked,\n disabled,\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.button, {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onClick, (event)=>{\n setChecked((prevChecked)=>isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }),\n isFormControl && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(BubbleInput, {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: {\n transform: \"translateX(-100%)\"\n },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n })\n ]\n });\n}, \"HJ7dP5YP8ZIfh0duK3mH4F1Xfsk=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n})), \"HJ7dP5YP8ZIfh0duK3mH4F1Xfsk=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n});\n_c1 = Checkbox;\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__.Presence, {\n present: forceMount || isIndeterminate(context.state) || context.state === true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.span, {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"none\",\n ...props.style\n }\n })\n });\n}, \"XPZjzIIZHUbC5kJgI5B/JOzmD9c=\", false, function() {\n return [\n useCheckboxContext\n ];\n})), \"XPZjzIIZHUbC5kJgI5B/JOzmD9c=\", false, function() {\n return [\n useCheckboxContext\n ];\n});\n_c3 = CheckboxIndicator;\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props)=>{\n _s2();\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const prevChecked = (0,_radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__.usePrevious)(checked);\n const controlSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__.useSize)(control);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"BubbleInput.useEffect\": ()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", {\n bubbles\n });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }\n }[\"BubbleInput.useEffect\"], [\n prevChecked,\n checked,\n bubbles\n ]);\n const defaultCheckedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"input\", {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n });\n};\n_s2(BubbleInput, \"QRvIDgojkl5Y0XVCSbKojHYRvPw=\", false, function() {\n return [\n _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__.usePrevious,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__.useSize\n ];\n});\n_c4 = BubbleInput;\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\n$RefreshReg$(_c2, \"CheckboxIndicator$React.forwardRef\");\n$RefreshReg$(_c3, \"CheckboxIndicator\");\n$RefreshReg$(_c4, \"BubbleInput\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDUztBQUNHO0FBQ0U7QUFDQTtBQUNUO0FBQ0o7QUFDQztBQUNDO0FBbUVwQjtBQTNETixJQUFNLGdCQUFnQjtBQUd0QixJQUFNLENBQUMsdUJBQXVCLG1CQUFtQixJQUFJLDJFQUFrQixDQUFDLGFBQWE7QUFTckYsSUFBTSxDQUFDLGtCQUFrQixrQkFBa0IsSUFDekMsc0JBQTRDLGFBQWE7QUFXM0QsSUFBTSw0QkFBaUIsc0RBQ3JCLENBQUMsT0FBbUM7O0lBQ2xDLE1BQU0sRUFDSixpQkFDQSxNQUNBLFNBQVMsYUFDVCxnQkFDQSxVQUNBLFVBQ0EsUUFBUSxNQUNSLGlCQUNBLE1BQ0EsR0FBRyxlQUNMLEdBQUk7SUFDSixNQUFNLENBQUMsUUFBUSxTQUFTLElBQVUsNENBQW1DLElBQUk7SUFDekUsTUFBTSxlQUFlLDZFQUFlLENBQUM7a0RBQWMsQ0FBQyxPQUFTLFVBQVUsSUFBSSxDQUFDOztJQUM1RSxNQUFNLG1DQUF5QywwQ0FBTyxLQUFLO0lBRTNELE1BQU0sZ0JBQWdCLFNBQVMsUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLE1BQU0sSUFBSTtJQUNsRSxNQUFNLENBQUMsVUFBVSxPQUFPLFVBQVUsaUdBQXlCO1FBQ3pELE1BQU07UUFDTixhQUFhO1FBQ2IsVUFBVTtJQUNaLENBQUM7SUFDRCxNQUFNLHlCQUErQiwwQ0FBTyxPQUFPO0lBQzdDOzhCQUFVO1lBQ2QsTUFBTUEsd0RBQU8sT0FBUTtZQUNyQixJQUFJQSxPQUFNO2dCQUNSLE1BQU07Z0RBQVEsSUFBTSxXQUFXLHVCQUF1QixPQUFPOztnQkFDN0RBLE1BQUssaUJBQWlCLFNBQVMsS0FBSztnQkFDcEM7MENBQU8sSUFBTUEsTUFBSyxvQkFBb0IsU0FBUyxLQUFLOztZQUN0RDtRQUNGOzZCQUFH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O1FBQ0osVUFBVTtRQUNWO1FBQ0EsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULEdBQUc7WUFDSCxVQUFVO1lBQ1YsZUFBZTtZQUNmLFNBQVM7WUFDVCxRQUFRO1FBQ1Y7SUFBQTtBQUdOOzs7UUFyQ3NCLHFFQUFXO1FBQ1gsNkRBQU87OztNQUp2QjtBQTBDTixTQUFTLGdCQUFnQixTQUFvRDtJQUMzRSxPQUFPLFlBQVk7QUFDckI7QUFFQSxTQUFTLFNBQVMsU0FBdUI7SUFDdkMsT0FBTyxnQkFBZ0IsT0FBTyxJQUFJLGtCQUFrQixVQUFVLFlBQVk7QUFDNUU7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLFlBQVkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL0NoZWNrYm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IHVzZVByZXZpb3VzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91cyc7XG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBDaGVja2JveFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDSEVDS0JPWF9OQU1FID0gJ0NoZWNrYm94JztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVDaGVja2JveD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlQ2hlY2tib3hDb250ZXh0LCBjcmVhdGVDaGVja2JveFNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShDSEVDS0JPWF9OQU1FKTtcblxudHlwZSBDaGVja2VkU3RhdGUgPSBib29sZWFuIHwgJ2luZGV0ZXJtaW5hdGUnO1xuXG50eXBlIENoZWNrYm94Q29udGV4dFZhbHVlID0ge1xuICBzdGF0ZTogQ2hlY2tlZFN0YXRlO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBbQ2hlY2tib3hQcm92aWRlciwgdXNlQ2hlY2tib3hDb250ZXh0XSA9XG4gIGNyZWF0ZUNoZWNrYm94Q29udGV4dDxDaGVja2JveENvbnRleHRWYWx1ZT4oQ0hFQ0tCT1hfTkFNRSk7XG5cbnR5cGUgQ2hlY2tib3hFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG50eXBlIFByaW1pdGl2ZUJ1dHRvblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbmludGVyZmFjZSBDaGVja2JveFByb3BzIGV4dGVuZHMgT21pdDxQcmltaXRpdmVCdXR0b25Qcm9wcywgJ2NoZWNrZWQnIHwgJ2RlZmF1bHRDaGVja2VkJz4ge1xuICBjaGVja2VkPzogQ2hlY2tlZFN0YXRlO1xuICBkZWZhdWx0Q2hlY2tlZD86IENoZWNrZWRTdGF0ZTtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvbkNoZWNrZWRDaGFuZ2U/KGNoZWNrZWQ6IENoZWNrZWRTdGF0ZSk6IHZvaWQ7XG59XG5cbmNvbnN0IENoZWNrYm94ID0gUmVhY3QuZm9yd2FyZFJlZjxDaGVja2JveEVsZW1lbnQsIENoZWNrYm94UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPENoZWNrYm94UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlQ2hlY2tib3gsXG4gICAgICBuYW1lLFxuICAgICAgY2hlY2tlZDogY2hlY2tlZFByb3AsXG4gICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgIHJlcXVpcmVkLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICB2YWx1ZSA9ICdvbicsXG4gICAgICBvbkNoZWNrZWRDaGFuZ2UsXG4gICAgICBmb3JtLFxuICAgICAgLi4uY2hlY2tib3hQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBbYnV0dG9uLCBzZXRCdXR0b25dID0gUmVhY3QudXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0QnV0dG9uKG5vZGUpKTtcbiAgICBjb25zdCBoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgLy8gV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBieSBkZWZhdWx0IHNvIHRoYXQgZXZlbnRzIGJ1YmJsZSB0byBmb3JtcyB3aXRob3V0IEpTIChTU1IpXG4gICAgY29uc3QgaXNGb3JtQ29udHJvbCA9IGJ1dHRvbiA/IGZvcm0gfHwgISFidXR0b24uY2xvc2VzdCgnZm9ybScpIDogdHJ1ZTtcbiAgICBjb25zdCBbY2hlY2tlZCA9IGZhbHNlLCBzZXRDaGVja2VkXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgIHByb3A6IGNoZWNrZWRQcm9wLFxuICAgICAgZGVmYXVsdFByb3A6IGRlZmF1bHRDaGVja2VkLFxuICAgICAgb25DaGFuZ2U6IG9uQ2hlY2tlZENoYW5nZSxcbiAgICB9KTtcbiAgICBjb25zdCBpbml0aWFsQ2hlY2tlZFN0YXRlUmVmID0gUmVhY3QudXNlUmVmKGNoZWNrZWQpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBmb3JtID0gYnV0dG9uPy5mb3JtO1xuICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgY29uc3QgcmVzZXQgPSAoKSA9PiBzZXRDaGVja2VkKGluaXRpYWxDaGVja2VkU3RhdGVSZWYuY3VycmVudCk7XG4gICAgICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcigncmVzZXQnLCByZXNldCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBmb3JtLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2V0JywgcmVzZXQpO1xuICAgICAgfVxuICAgIH0sIFtidXR0b24sIHNldENoZWNrZWRdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q2hlY2tib3hQcm92aWRlciBzY29wZT17X19zY29wZUNoZWNrYm94fSBzdGF0ZT17Y2hlY2tlZH0gZGlzYWJsZWQ9e2Rpc2FibGVkfT5cbiAgICAgICAgPFByaW1pdGl2ZS5idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIGFyaWEtY2hlY2tlZD17aXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gJ21peGVkJyA6IGNoZWNrZWR9XG4gICAgICAgICAgYXJpYS1yZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgZGF0YS1zdGF0ZT17Z2V0U3RhdGUoY2hlY2tlZCl9XG4gICAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIHsuLi5jaGVja2JveFByb3BzfVxuICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIEFjY29yZGluZyB0byBXQUkgQVJJQSwgQ2hlY2tib3hlcyBkb24ndCBhY3RpdmF0ZSBvbiBlbnRlciBrZXlwcmVzc1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHNldENoZWNrZWQoKHByZXZDaGVja2VkKSA9PiAoaXNJbmRldGVybWluYXRlKHByZXZDaGVja2VkKSA/IHRydWUgOiAhcHJldkNoZWNrZWQpKTtcbiAgICAgICAgICAgIGlmIChpc0Zvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgIGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQgPSBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO1xuICAgICAgICAgICAgICAvLyBpZiBjaGVja2JveCBpcyBpbiBhIGZvcm0sIHN0b3AgcHJvcGFnYXRpb24gZnJvbSB0aGUgYnV0dG9uIHNvIHRoYXQgd2Ugb25seSBwcm9wYWdhdGVcbiAgICAgICAgICAgICAgLy8gb25lIGNsaWNrIGV2ZW50IChmcm9tIHRoZSBpbnB1dCkuIFdlIHByb3BhZ2F0ZSBjaGFuZ2VzIGZyb20gYW4gaW5wdXQgc28gdGhhdCBuYXRpdmVcbiAgICAgICAgICAgICAgLy8gZm9ybSB2YWxpZGF0aW9uIHdvcmtzIGFuZCBmb3JtIGV2ZW50cyByZWZsZWN0IGNoZWNrYm94IHVwZGF0ZXMuXG4gICAgICAgICAgICAgIGlmICghaGFzQ29uc3VtZXJTdG9wcGVkUHJvcGFnYXRpb25SZWYuY3VycmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICAgIHtpc0Zvcm1Db250cm9sICYmIChcbiAgICAgICAgICA8QnViYmxlSW5wdXRcbiAgICAgICAgICAgIGNvbnRyb2w9e2J1dHRvbn1cbiAgICAgICAgICAgIGJ1YmJsZXM9eyFoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50fVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBmb3JtPXtmb3JtfVxuICAgICAgICAgICAgLy8gV2UgdHJhbnNmb3JtIGJlY2F1c2UgdGhlIGlucHV0IGlzIGFic29sdXRlbHkgcG9zaXRpb25lZCBidXQgd2UgaGF2ZVxuICAgICAgICAgICAgLy8gcmVuZGVyZWQgaXQgKiphZnRlcioqIHRoZSBidXR0b24uIFRoaXMgcHVsbHMgaXQgYmFjayB0byBzaXQgb24gdG9wXG4gICAgICAgICAgICAvLyBvZiB0aGUgYnV0dG9uLlxuICAgICAgICAgICAgc3R5bGU9e3sgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH19XG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17aXNJbmRldGVybWluYXRlKGRlZmF1bHRDaGVja2VkKSA/IGZhbHNlIDogZGVmYXVsdENoZWNrZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvQ2hlY2tib3hQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5DaGVja2JveC5kaXNwbGF5TmFtZSA9IENIRUNLQk9YX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIENoZWNrYm94SW5kaWNhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElORElDQVRPUl9OQU1FID0gJ0NoZWNrYm94SW5kaWNhdG9yJztcblxudHlwZSBDaGVja2JveEluZGljYXRvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG50eXBlIFByaW1pdGl2ZVNwYW5Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xuaW50ZXJmYWNlIENoZWNrYm94SW5kaWNhdG9yUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVTcGFuUHJvcHMge1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgQ2hlY2tib3hJbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPENoZWNrYm94SW5kaWNhdG9yRWxlbWVudCwgQ2hlY2tib3hJbmRpY2F0b3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Q2hlY2tib3hJbmRpY2F0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUNoZWNrYm94LCBmb3JjZU1vdW50LCAuLi5pbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNoZWNrYm94Q29udGV4dChJTkRJQ0FUT1JfTkFNRSwgX19zY29wZUNoZWNrYm94KTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgaXNJbmRldGVybWluYXRlKGNvbnRleHQuc3RhdGUpIHx8IGNvbnRleHQuc3RhdGUgPT09IHRydWV9PlxuICAgICAgICA8UHJpbWl0aXZlLnNwYW5cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0LnN0YXRlKX1cbiAgICAgICAgICBkYXRhLWRpc2FibGVkPXtjb250ZXh0LmRpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgey4uLmluZGljYXRvclByb3BzfVxuICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAgIHN0eWxlPXt7IHBvaW50ZXJFdmVudHM6ICdub25lJywgLi4ucHJvcHMuc3R5bGUgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxuQ2hlY2tib3hJbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJTkRJQ0FUT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIElucHV0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J2lucHV0Jz47XG5pbnRlcmZhY2UgQnViYmxlSW5wdXRQcm9wcyBleHRlbmRzIE9taXQ8SW5wdXRQcm9wcywgJ2NoZWNrZWQnPiB7XG4gIGNoZWNrZWQ6IENoZWNrZWRTdGF0ZTtcbiAgY29udHJvbDogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBidWJibGVzOiBib29sZWFuO1xufVxuXG5jb25zdCBCdWJibGVJbnB1dCA9IChwcm9wczogQnViYmxlSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRyb2wsIGNoZWNrZWQsIGJ1YmJsZXMgPSB0cnVlLCBkZWZhdWx0Q2hlY2tlZCwgLi4uaW5wdXRQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHJldkNoZWNrZWQgPSB1c2VQcmV2aW91cyhjaGVja2VkKTtcbiAgY29uc3QgY29udHJvbFNpemUgPSB1c2VTaXplKGNvbnRyb2wpO1xuXG4gIC8vIEJ1YmJsZSBjaGVja2VkIGNoYW5nZSB0byBwYXJlbnRzIChlLmcgZm9ybSBjaGFuZ2UgZXZlbnQpXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSByZWYuY3VycmVudCE7XG4gICAgY29uc3QgaW5wdXRQcm90byA9IHdpbmRvdy5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZTtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnB1dFByb3RvLCAnY2hlY2tlZCcpIGFzIFByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBjb25zdCBzZXRDaGVja2VkID0gZGVzY3JpcHRvci5zZXQ7XG5cbiAgICBpZiAocHJldkNoZWNrZWQgIT09IGNoZWNrZWQgJiYgc2V0Q2hlY2tlZCkge1xuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoJ2NsaWNrJywgeyBidWJibGVzIH0pO1xuICAgICAgaW5wdXQuaW5kZXRlcm1pbmF0ZSA9IGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKTtcbiAgICAgIHNldENoZWNrZWQuY2FsbChpbnB1dCwgaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gZmFsc2UgOiBjaGVja2VkKTtcbiAgICAgIGlucHV0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfSwgW3ByZXZDaGVja2VkLCBjaGVja2VkLCBidWJibGVzXSk7XG5cbiAgY29uc3QgZGVmYXVsdENoZWNrZWRSZWYgPSBSZWFjdC51c2VSZWYoaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gZmFsc2UgOiBjaGVja2VkKTtcbiAgcmV0dXJuIChcbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBhcmlhLWhpZGRlblxuICAgICAgZGVmYXVsdENoZWNrZWQ9e2RlZmF1bHRDaGVja2VkID8/IGRlZmF1bHRDaGVja2VkUmVmLmN1cnJlbnR9XG4gICAgICB7Li4uaW5wdXRQcm9wc31cbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIC4uLmNvbnRyb2xTaXplLFxuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59O1xuXG5mdW5jdGlvbiBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZD86IENoZWNrZWRTdGF0ZSk6IGNoZWNrZWQgaXMgJ2luZGV0ZXJtaW5hdGUnIHtcbiAgcmV0dXJuIGNoZWNrZWQgPT09ICdpbmRldGVybWluYXRlJztcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGUoY2hlY2tlZDogQ2hlY2tlZFN0YXRlKSB7XG4gIHJldHVybiBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyAnaW5kZXRlcm1pbmF0ZScgOiBjaGVja2VkID8gJ2NoZWNrZWQnIDogJ3VuY2hlY2tlZCc7XG59XG5cbmNvbnN0IFJvb3QgPSBDaGVja2JveDtcbmNvbnN0IEluZGljYXRvciA9IENoZWNrYm94SW5kaWNhdG9yO1xuXG5leHBvcnQge1xuICBjcmVhdGVDaGVja2JveFNjb3BlLFxuICAvL1xuICBDaGVja2JveCxcbiAgQ2hlY2tib3hJbmRpY2F0b3IsXG4gIC8vXG4gIFJvb3QsXG4gIEluZGljYXRvcixcbn07XG5leHBvcnQgdHlwZSB7IENoZWNrYm94UHJvcHMsIENoZWNrYm94SW5kaWNhdG9yUHJvcHMsIENoZWNrZWRTdGF0ZSB9O1xuIl0sIm5hbWVzIjpbImZvcm0iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs": /*!****************************************************************!*\ !*** ./node_modules/@radix-ui/react-collection/dist/index.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createCollection: () => (/* binding */ createCollection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ createCollection auto */ // packages/react/collection/src/Collection.tsx\n\n\n\n\n\nfunction createCollection(name) {\n var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: /* @__PURE__ */ new Map()\n });\n const CollectionProvider = (props)=>{\n _s();\n const { scope, children } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const itemMap = react__WEBPACK_IMPORTED_MODULE_0__.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref,\n children\n });\n };\n _s(CollectionProvider, \"i9R1RY532Tsw7syarXwOonBpwXM=\");\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s1((props, forwardedRef)=>{\n _s1();\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ref: composedRefs,\n children\n });\n }, \"5JQ4uy78XLW8WM+YuDpNgF/JIVs=\", false, function() {\n return [\n useCollectionContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n }));\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s2((props, forwardedRef)=>{\n _s2();\n const { scope, children, ...itemData } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>{\n context.itemMap.set(ref, {\n ref,\n ...itemData\n });\n return ({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>void context.itemMap.delete(ref)\n })[\"createCollection.CollectionItemSlot.useEffect\"];\n }\n }[\"createCollection.CollectionItemSlot.useEffect\"]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ...{\n [ITEM_DATA_ATTR]: \"\"\n },\n ref: composedRefs,\n children\n });\n }, \"eauD3DgWC2VdU7voCXLDR4PeA+k=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n useCollectionContext\n ];\n }));\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n _s3();\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"createCollection.useCollection.useCallback[getItems]\": ()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(\"[\".concat(ITEM_DATA_ATTR, \"]\")));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort({\n \"createCollection.useCollection.useCallback[getItems].orderedItems\": (a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n }[\"createCollection.useCollection.useCallback[getItems].orderedItems\"]);\n return orderedItems;\n }\n }[\"createCollection.useCollection.useCallback[getItems]\"], [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n _s3(useCollection, \"jCyvzZFUzVDqeEjq0R8vi6mUa78=\", false, function() {\n return [\n useCollectionContext\n ];\n });\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWtCO0FBQ2lCO0FBQ0g7QUFDWDtBQXVDZjtBQTFCTixTQUFTLGlCQUFpRSxNQUFjOztJQUt0RixNQUFNLGdCQUFnQixPQUFPO0lBQzdCLE1BQU0sQ0FBQyx5QkFBeUIscUJBQXFCLElBQUksMkVBQWtCLENBQUMsYUFBYTtJQVV6RixNQUFNLENBQUMsd0JBQXdCLG9CQUFvQixJQUFJLHdCQUNyRCxlQUNBO1FBQUUsZUFBZTtZQUFFLFNBQVM7UUFBSztRQUFHLFNBQVMsb0JBQUksSUFBSTtJQUFFO0lBR3pELDJCQUFpRixDQUFDOztRQUNoRixNQUFNLEVBQUUsT0FBTyxTQUFTLElBQUk7UUFDNUIsTUFBTSxNQUFNLHlDQUFNLENBQTBCLElBQUk7UUFDaEQsTUFBTSxVQUFVLHlDQUFNLENBQWdDLG9CQUFJLElBQUksQ0FBQyxFQUFFO1FBQ2pFLE9BQ0UsdUVBQUM7WUFBdUI7WUFBYztZQUFrQixlQUFlO1lBQ3BFO1FBQUEsQ0FDSDtJQUVKO09BVE07SUFXTixtQkFBbUIsY0FBYztJQU1qQyxNQUFNLHVCQUF1QixPQUFPO0lBRXBDLE1BQU0sK0JBQWlCLDZDQUFNLEtBQzNCLENBQUMsT0FBTzs7UUFDTixNQUFNLEVBQUUsT0FBTyxTQUFTLElBQUk7UUFDNUIsTUFBTSwrQkFBK0Isc0JBQXNCLEtBQUs7UUFDaEUsTUFBTSxlQUFlLDZFQUFlLENBQUMsY0FBYyxRQUFRLGFBQWE7UUFDeEUsT0FBTyx1RUFBQyxzREFBSSxFQUFKO1lBQUssS0FBSztZQUFlO1FBQUEsQ0FBUztJQUM1Qzs7WUFIa0I7WUFDSyx5RUFBZTs7O0lBS3hDLGVBQWUsY0FBYztJQU03QixNQUFNLGlCQUFpQixPQUFPO0lBQzlCLE1BQU0saUJBQWlCO0lBT3ZCLE1BQU0sbUNBQXFCLDZDQUFNLEtBQy9CLENBQUMsT0FBTzs7UUFDTixNQUFNLEVBQUUsT0FBTyxVQUFVLEdBQUcsU0FBUyxJQUFJO1FBQ3pDLE1BQU0sTUFBTSx5Q0FBTSxDQUFvQixJQUFJO1FBQzFDLE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztRQUN0RCxNQUFNLCtCQUErQixnQkFBZ0IsS0FBSztRQUUxRCw0Q0FBTTs2REFBVTtnQkFDZCxRQUFRLFFBQVEsSUFBSSxLQUFLO29CQUFFO29CQUFLLEdBQUk7Z0JBQWlDLENBQUM7Z0JBQ3RFO3FFQUFPLElBQU0sS0FBSyxRQUFRLFFBQVEsT0FBTyxHQUFHOztZQUM5QyxDQUFDOztRQUVELE9BQ0UsdUVBQUMsc0RBQUksRUFBSjtZQUFNLEdBQUc7Z0JBQUUsQ0FBQyxjQUFjLEdBQUc7WUFBRztZQUFHLEtBQUs7WUFDdEM7UUFBQSxDQUNIO0lBRUo7O1lBYnVCLHlFQUFlO1lBQ3BCOzs7SUFlcEIsbUJBQW1CLGNBQWM7SUFNakMsdUJBQXVCLE9BQVk7O1FBQ2pDLE1BQU0sK0JBQStCLE9BQU8sc0JBQXNCLEtBQUs7UUFFdkUsTUFBTSxXQUFXLDhDQUFNO29FQUFZO2dCQUNqQyxNQUFNLGlCQUFpQixRQUFRLGNBQWM7Z0JBQzdDLElBQUksQ0FBQyxlQUFnQixRQUFPLENBQUM7Z0JBQzdCLE1BQU0sZUFBZSxNQUFNLEtBQUssZUFBZSxpQkFBaUIsSUFBa0IsT0FBZCxjQUFjLElBQUcsQ0FBQztnQkFDdEYsTUFBTSxRQUFRLE1BQU0sS0FBSyxRQUFRLFFBQVEsT0FBTyxDQUFDO2dCQUNqRCxNQUFNLGVBQWUsTUFBTTt5RkFDekIsQ0FBQyxHQUFHLElBQU0sYUFBYSxRQUFRLEVBQUUsSUFBSSxPQUFRLElBQUksYUFBYSxRQUFRLEVBQUUsSUFBSSxPQUFROztnQkFFdEYsT0FBTztZQUNUO21FQUFHO1lBQUMsUUFBUTtZQUFlLFFBQVEsT0FBTztTQUFDO1FBRTNDLE9BQU87SUFDVDtRQWZTOztZQUNTOzs7SUFnQmxCLE9BQU87UUFDTDtZQUFFLFVBQVU7WUFBb0IsTUFBTTtZQUFnQixVQUFVO1FBQW1CO1FBQ25GO1FBQ0E7S0FDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL3NyYy9Db2xsZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG50eXBlIFNsb3RQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgU2xvdD47XG50eXBlIENvbGxlY3Rpb25FbGVtZW50ID0gSFRNTEVsZW1lbnQ7XG5pbnRlcmZhY2UgQ29sbGVjdGlvblByb3BzIGV4dGVuZHMgU2xvdFByb3BzIHtcbiAgc2NvcGU6IGFueTtcbn1cblxuLy8gV2UgaGF2ZSByZXNvcnRlZCB0byByZXR1cm5pbmcgc2xvdHMgZGlyZWN0bHkgcmF0aGVyIHRoYW4gZXhwb3NpbmcgcHJpbWl0aXZlcyB0aGF0IGNhbiB0aGVuXG4vLyBiZSBzbG90dGVkIGxpa2UgYDxDb2xsZWN0aW9uSXRlbSBhcz17U2xvdH0+4oCmPC9Db2xsZWN0aW9uSXRlbT5gLlxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGVuY291bnRlcmVkIGlzc3VlcyB3aXRoIGdlbmVyaWMgdHlwZXMgdGhhdCBjYW5ub3QgYmUgc3RhdGljYWxseSBhbmFseXNlZFxuLy8gZHVlIHRvIGNyZWF0aW5nIHRoZW0gZHluYW1pY2FsbHkgdmlhIGNyZWF0ZUNvbGxlY3Rpb24uXG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbGxlY3Rpb248SXRlbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCwgSXRlbURhdGEgPSB7fT4obmFtZTogc3RyaW5nKSB7XG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25Qcm92aWRlclxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGNvbnN0IFBST1ZJREVSX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25Qcm92aWRlcic7XG4gIGNvbnN0IFtjcmVhdGVDb2xsZWN0aW9uQ29udGV4dCwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShQUk9WSURFUl9OQU1FKTtcblxuICB0eXBlIENvbnRleHRWYWx1ZSA9IHtcbiAgICBjb2xsZWN0aW9uUmVmOiBSZWFjdC5SZWZPYmplY3Q8Q29sbGVjdGlvbkVsZW1lbnQgfCBudWxsPjtcbiAgICBpdGVtTWFwOiBNYXA8XG4gICAgICBSZWFjdC5SZWZPYmplY3Q8SXRlbUVsZW1lbnQgfCBudWxsPixcbiAgICAgIHsgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SXRlbUVsZW1lbnQgfCBudWxsPiB9ICYgSXRlbURhdGFcbiAgICA+O1xuICB9O1xuXG4gIGNvbnN0IFtDb2xsZWN0aW9uUHJvdmlkZXJJbXBsLCB1c2VDb2xsZWN0aW9uQ29udGV4dF0gPSBjcmVhdGVDb2xsZWN0aW9uQ29udGV4dDxDb250ZXh0VmFsdWU+KFxuICAgIFBST1ZJREVSX05BTUUsXG4gICAgeyBjb2xsZWN0aW9uUmVmOiB7IGN1cnJlbnQ6IG51bGwgfSwgaXRlbU1hcDogbmV3IE1hcCgpIH1cbiAgKTtcblxuICBjb25zdCBDb2xsZWN0aW9uUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7IHNjb3BlOiBhbnkgfT4gPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPENvbGxlY3Rpb25FbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpdGVtTWFwID0gUmVhY3QudXNlUmVmPENvbnRleHRWYWx1ZVsnaXRlbU1hcCddPihuZXcgTWFwKCkpLmN1cnJlbnQ7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uUHJvdmlkZXJJbXBsIHNjb3BlPXtzY29wZX0gaXRlbU1hcD17aXRlbU1hcH0gY29sbGVjdGlvblJlZj17cmVmfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Db2xsZWN0aW9uUHJvdmlkZXJJbXBsPlxuICAgICk7XG4gIH07XG5cbiAgQ29sbGVjdGlvblByb3ZpZGVyLmRpc3BsYXlOYW1lID0gUFJPVklERVJfTkFNRTtcblxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBDb2xsZWN0aW9uU2xvdFxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGNvbnN0IENPTExFQ1RJT05fU0xPVF9OQU1FID0gbmFtZSArICdDb2xsZWN0aW9uU2xvdCc7XG5cbiAgY29uc3QgQ29sbGVjdGlvblNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmPENvbGxlY3Rpb25FbGVtZW50LCBDb2xsZWN0aW9uUHJvcHM+KFxuICAgIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29sbGVjdGlvbkNvbnRleHQoQ09MTEVDVElPTl9TTE9UX05BTUUsIHNjb3BlKTtcbiAgICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29sbGVjdGlvblJlZik7XG4gICAgICByZXR1cm4gPFNsb3QgcmVmPXtjb21wb3NlZFJlZnN9PntjaGlsZHJlbn08L1Nsb3Q+O1xuICAgIH1cbiAgKTtcblxuICBDb2xsZWN0aW9uU2xvdC5kaXNwbGF5TmFtZSA9IENPTExFQ1RJT05fU0xPVF9OQU1FO1xuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25JdGVtXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgSVRFTV9TTE9UX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25JdGVtU2xvdCc7XG4gIGNvbnN0IElURU1fREFUQV9BVFRSID0gJ2RhdGEtcmFkaXgtY29sbGVjdGlvbi1pdGVtJztcblxuICB0eXBlIENvbGxlY3Rpb25JdGVtU2xvdFByb3BzID0gSXRlbURhdGEgJiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICBzY29wZTogYW55O1xuICB9O1xuXG4gIGNvbnN0IENvbGxlY3Rpb25JdGVtU2xvdCA9IFJlYWN0LmZvcndhcmRSZWY8SXRlbUVsZW1lbnQsIENvbGxlY3Rpb25JdGVtU2xvdFByb3BzPihcbiAgICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4sIC4uLml0ZW1EYXRhIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxJdGVtRWxlbWVudD4obnVsbCk7XG4gICAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KElURU1fU0xPVF9OQU1FLCBzY29wZSk7XG5cbiAgICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuaXRlbU1hcC5zZXQocmVmLCB7IHJlZiwgLi4uKGl0ZW1EYXRhIGFzIHVua25vd24gYXMgSXRlbURhdGEpIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4gdm9pZCBjb250ZXh0Lml0ZW1NYXAuZGVsZXRlKHJlZik7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNsb3Qgey4uLnsgW0lURU1fREFUQV9BVFRSXTogJycgfX0gcmVmPXtjb21wb3NlZFJlZnN9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TbG90PlxuICAgICAgKTtcbiAgICB9XG4gICk7XG5cbiAgQ29sbGVjdGlvbkl0ZW1TbG90LmRpc3BsYXlOYW1lID0gSVRFTV9TTE9UX05BTUU7XG5cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogdXNlQ29sbGVjdGlvblxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGZ1bmN0aW9uIHVzZUNvbGxlY3Rpb24oc2NvcGU6IGFueSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsZWN0aW9uQ29udGV4dChuYW1lICsgJ0NvbGxlY3Rpb25Db25zdW1lcicsIHNjb3BlKTtcblxuICAgIGNvbnN0IGdldEl0ZW1zID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY29sbGVjdGlvbk5vZGUgPSBjb250ZXh0LmNvbGxlY3Rpb25SZWYuY3VycmVudDtcbiAgICAgIGlmICghY29sbGVjdGlvbk5vZGUpIHJldHVybiBbXTtcbiAgICAgIGNvbnN0IG9yZGVyZWROb2RlcyA9IEFycmF5LmZyb20oY29sbGVjdGlvbk5vZGUucXVlcnlTZWxlY3RvckFsbChgWyR7SVRFTV9EQVRBX0FUVFJ9XWApKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gQXJyYXkuZnJvbShjb250ZXh0Lml0ZW1NYXAudmFsdWVzKCkpO1xuICAgICAgY29uc3Qgb3JkZXJlZEl0ZW1zID0gaXRlbXMuc29ydChcbiAgICAgICAgKGEsIGIpID0+IG9yZGVyZWROb2Rlcy5pbmRleE9mKGEucmVmLmN1cnJlbnQhKSAtIG9yZGVyZWROb2Rlcy5pbmRleE9mKGIucmVmLmN1cnJlbnQhKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBvcmRlcmVkSXRlbXM7XG4gICAgfSwgW2NvbnRleHQuY29sbGVjdGlvblJlZiwgY29udGV4dC5pdGVtTWFwXSk7XG5cbiAgICByZXR1cm4gZ2V0SXRlbXM7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIHsgUHJvdmlkZXI6IENvbGxlY3Rpb25Qcm92aWRlciwgU2xvdDogQ29sbGVjdGlvblNsb3QsIEl0ZW1TbG90OiBDb2xsZWN0aW9uSXRlbVNsb3QgfSxcbiAgICB1c2VDb2xsZWN0aW9uLFxuICAgIGNyZWF0ZUNvbGxlY3Rpb25TY29wZSxcbiAgXSBhcyBjb25zdDtcbn1cblxuZXhwb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9O1xuZXhwb3J0IHR5cGUgeyBDb2xsZWN0aW9uUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ composeRefs),\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/compose-refs/src/composeRefs.tsx\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLDhDQUFpQjtBQUMxQjtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvY29tcG9zZS1yZWZzL3NyYy9jb21wb3NlUmVmcy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiByZWYodmFsdWUpO1xuICB9IGVsc2UgaWYgKHJlZiAhPT0gbnVsbCAmJiByZWYgIT09IHZvaWQgMCkge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIChub2RlKSA9PiB7XG4gICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcbiAgICBjb25zdCBjbGVhbnVwcyA9IHJlZnMubWFwKChyZWYpID0+IHtcbiAgICAgIGNvbnN0IGNsZWFudXAgPSBzZXRSZWYocmVmLCBub2RlKTtcbiAgICAgIGlmICghaGFzQ2xlYW51cCAmJiB0eXBlb2YgY2xlYW51cCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaGFzQ2xlYW51cCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xlYW51cDtcbiAgICB9KTtcbiAgICBpZiAoaGFzQ2xlYW51cCkge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGVhbnVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSBjbGVhbnVwc1tpXTtcbiAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFJlZihyZWZzW2ldLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKGNvbXBvc2VSZWZzKC4uLnJlZnMpLCByZWZzKTtcbn1cbmV4cG9ydCB7XG4gIGNvbXBvc2VSZWZzLFxuICB1c2VDb21wb3NlZFJlZnNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs": /*!*************************************************************!*\ !*** ./node_modules/@radix-ui/react-context/dist/index.mjs ***! \*************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: () => (/* binding */ createContext2),\n/* harmony export */ createContextScope: () => (/* binding */ createContextScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/context/src/createContext.tsx\n\n\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4QztBQUNBLGtCQUFrQixnREFBbUI7QUFDckM7QUFDQSxZQUFZLHVCQUF1QjtBQUNuQyxrQkFBa0IsMENBQWE7QUFDL0IsMkJBQTJCLHNEQUFHLHFCQUFxQixpQkFBaUI7QUFDcEU7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFnQjtBQUNwQztBQUNBO0FBQ0EseUJBQXlCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0RBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOEJBQThCO0FBQzVDO0FBQ0Esb0JBQW9CLDBDQUFhO0FBQ2pDLDZCQUE2QixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDZDQUFnQjtBQUN0QztBQUNBO0FBQ0EsMkJBQTJCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnREFBbUI7QUFDaEMsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhLDBDQUFhO0FBQzFCLGlCQUFpQixXQUFXLFVBQVUsTUFBTSxtQ0FBbUM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJEQUEyRCxxQkFBcUI7QUFDaEY7QUFDQSxrREFBa0QsVUFBVTtBQUM1RCxpQkFBaUI7QUFDakIsT0FBTyxJQUFJO0FBQ1gsYUFBYSwwQ0FBYSxVQUFVLFdBQVcsb0JBQW9CLGdCQUFnQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvY29udGV4dC9zcmMvY3JlYXRlQ29udGV4dC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0Mihyb290Q29tcG9uZW50TmFtZSwgZGVmYXVsdENvbnRleHQpIHtcbiAgY29uc3QgQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xuICBjb25zdCBQcm92aWRlciA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIC4uLmNvbnRleHQgfSA9IHByb3BzO1xuICAgIGNvbnN0IHZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiBjb250ZXh0LCBPYmplY3QudmFsdWVzKGNvbnRleHQpKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlLCBjaGlsZHJlbiB9KTtcbiAgfTtcbiAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiUHJvdmlkZXJcIjtcbiAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XG4gICAgaWYgKGNvbnRleHQpIHJldHVybiBjb250ZXh0O1xuICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICB9XG4gIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHRTY29wZShzY29wZU5hbWUsIGNyZWF0ZUNvbnRleHRTY29wZURlcHMgPSBbXSkge1xuICBsZXQgZGVmYXVsdENvbnRleHRzID0gW107XG4gIGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQzKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICAgIGNvbnN0IEJhc2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgY29uc3QgaW5kZXggPSBkZWZhdWx0Q29udGV4dHMubGVuZ3RoO1xuICAgIGRlZmF1bHRDb250ZXh0cyA9IFsuLi5kZWZhdWx0Q29udGV4dHMsIGRlZmF1bHRDb250ZXh0XTtcbiAgICBjb25zdCBQcm92aWRlciA9IChwcm9wcykgPT4ge1xuICAgICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4sIC4uLmNvbnRleHQgfSA9IHByb3BzO1xuICAgICAgY29uc3QgQ29udGV4dCA9IHNjb3BlPy5bc2NvcGVOYW1lXT8uW2luZGV4XSB8fCBCYXNlQ29udGV4dDtcbiAgICAgIGNvbnN0IHZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiBjb250ZXh0LCBPYmplY3QudmFsdWVzKGNvbnRleHQpKTtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xuICAgIH07XG4gICAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiUHJvdmlkZXJcIjtcbiAgICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUsIHNjb3BlKSB7XG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xuICAgICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XG4gICAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgICBpZiAoZGVmYXVsdENvbnRleHQgIT09IHZvaWQgMCkgcmV0dXJuIGRlZmF1bHRDb250ZXh0O1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICAgIH1cbiAgICByZXR1cm4gW1Byb3ZpZGVyLCB1c2VDb250ZXh0Ml07XG4gIH1cbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGVDb250ZXh0cyA9IGRlZmF1bHRDb250ZXh0cy5tYXAoKGRlZmF1bHRDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVzZVNjb3BlKHNjb3BlKSB7XG4gICAgICBjb25zdCBjb250ZXh0cyA9IHNjb3BlPy5bc2NvcGVOYW1lXSB8fCBzY29wZUNvbnRleHRzO1xuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oXG4gICAgICAgICgpID0+ICh7IFtgX19zY29wZSR7c2NvcGVOYW1lfWBdOiB7IC4uLnNjb3BlLCBbc2NvcGVOYW1lXTogY29udGV4dHMgfSB9KSxcbiAgICAgICAgW3Njb3BlLCBjb250ZXh0c11cbiAgICAgICk7XG4gICAgfTtcbiAgfTtcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gc2NvcGVOYW1lO1xuICByZXR1cm4gW2NyZWF0ZUNvbnRleHQzLCBjb21wb3NlQ29udGV4dFNjb3BlcyhjcmVhdGVTY29wZSwgLi4uY3JlYXRlQ29udGV4dFNjb3BlRGVwcyldO1xufVxuZnVuY3Rpb24gY29tcG9zZUNvbnRleHRTY29wZXMoLi4uc2NvcGVzKSB7XG4gIGNvbnN0IGJhc2VTY29wZSA9IHNjb3Blc1swXTtcbiAgaWYgKHNjb3Blcy5sZW5ndGggPT09IDEpIHJldHVybiBiYXNlU2NvcGU7XG4gIGNvbnN0IGNyZWF0ZVNjb3BlID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjb3BlSG9va3MgPSBzY29wZXMubWFwKChjcmVhdGVTY29wZTIpID0+ICh7XG4gICAgICB1c2VTY29wZTogY3JlYXRlU2NvcGUyKCksXG4gICAgICBzY29wZU5hbWU6IGNyZWF0ZVNjb3BlMi5zY29wZU5hbWVcbiAgICB9KSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVzZUNvbXBvc2VkU2NvcGVzKG92ZXJyaWRlU2NvcGVzKSB7XG4gICAgICBjb25zdCBuZXh0U2NvcGVzID0gc2NvcGVIb29rcy5yZWR1Y2UoKG5leHRTY29wZXMyLCB7IHVzZVNjb3BlLCBzY29wZU5hbWUgfSkgPT4ge1xuICAgICAgICBjb25zdCBzY29wZVByb3BzID0gdXNlU2NvcGUob3ZlcnJpZGVTY29wZXMpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZVByb3BzW2BfX3Njb3BlJHtzY29wZU5hbWV9YF07XG4gICAgICAgIHJldHVybiB7IC4uLm5leHRTY29wZXMyLCAuLi5jdXJyZW50U2NvcGUgfTtcbiAgICAgIH0sIHt9KTtcbiAgICAgIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7IFtgX19zY29wZSR7YmFzZVNjb3BlLnNjb3BlTmFtZX1gXTogbmV4dFNjb3BlcyB9KSwgW25leHRTY29wZXNdKTtcbiAgICB9O1xuICB9O1xuICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBiYXNlU2NvcGUuc2NvcGVOYW1lO1xuICByZXR1cm4gY3JlYXRlU2NvcGU7XG59XG5leHBvcnQge1xuICBjcmVhdGVDb250ZXh0MiBhcyBjcmVhdGVDb250ZXh0LFxuICBjcmVhdGVDb250ZXh0U2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Close: () => (/* binding */ Close),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Description: () => (/* binding */ Description),\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger),\n/* harmony export */ Overlay: () => (/* binding */ Overlay),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Title: () => (/* binding */ Title),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ WarningProvider: () => (/* binding */ WarningProvider),\n/* harmony export */ createDialogScope: () => (/* binding */ createDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Close,Content,Description,Dialog,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogTitle,DialogTrigger,Overlay,Portal,Root,Title,Trigger,WarningProvider,createDialogScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$();\n// packages/react/dialog/src/dialog.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props)=>{\n _s();\n const { __scopeDialog, children, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogProvider, {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n titleId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n descriptionId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Dialog.useCallback\": ()=>setOpen({\n \"Dialog.useCallback\": (prevOpen)=>!prevOpen\n }[\"Dialog.useCallback\"])\n }[\"Dialog.useCallback\"], [\n setOpen\n ]),\n modal,\n children\n });\n};\n_s(Dialog, \"/yuatmodaV7w4hyulEirYGxYW3g=\", false, function() {\n return [\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId\n ];\n});\n_c = Dialog;\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n });\n}, \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n})), \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n});\n_c2 = DialogTrigger;\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props)=>{\n _s2();\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeDialog,\n forceMount,\n children: react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, (child)=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children: child\n })\n }))\n });\n};\n_s2(DialogPortal, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c3 = DialogPortal;\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogOverlayImpl, {\n ...overlayProps,\n ref: forwardedRef\n })\n }) : null;\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c5 = DialogOverlay;\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return(// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__.Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ],\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.div, {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"auto\",\n ...overlayProps.style\n }\n })\n }));\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c6 = DialogOverlayImpl;\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c7 = _s5((props, forwardedRef)=>{\n _s5();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n });\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c8 = DialogContent;\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.contentRef, contentRef);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DialogContentModal.useEffect\": ()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_12__.hideOthers)(content);\n }\n }[\"DialogContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n event.preventDefault();\n (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault())\n });\n}, \"z0QlyWdXD1MaBi1+3AtBr2MuboI=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n}));\n_c9 = DialogContentModal;\nvar DialogContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerDownOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props_onCloseAutoFocus;\n (_props_onCloseAutoFocus = props.onCloseAutoFocus) === null || _props_onCloseAutoFocus === void 0 ? void 0 : _props_onCloseAutoFocus.call(props, event);\n if (!event.defaultPrevented) {\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props_onInteractOutside, _context_triggerRef_current;\n (_props_onInteractOutside = props.onInteractOutside) === null || _props_onInteractOutside === void 0 ? void 0 : _props_onInteractOutside.call(props, event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n });\n}, \"YrVQPDdDfWR20TF4ZFjbVSADLNA=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c10 = DialogContentNonModal;\nvar DialogContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, contentRef);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__.DismissableLayer, {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n })\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TitleWarning, {\n titleId: context.titleId\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef,\n descriptionId: context.descriptionId\n })\n ]\n })\n ]\n });\n}, \"wjdue5beIiufJExexORWgo6pOh0=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards\n ];\n}));\n_c11 = DialogContentImpl;\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.h2, {\n id: context.titleId,\n ...titleProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c13 = DialogTitle;\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.p, {\n id: context.descriptionId,\n ...descriptionProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c15 = DialogDescription;\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false))\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c17 = DialogClose;\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContext)(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = (param)=>{\n let { titleId } = param;\n _s12();\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = \"`\".concat(titleWarningContext.contentName, \"` requires a `\").concat(titleWarningContext.titleName, \"` for the component to be accessible for screen reader users.\\n\\nIf you want to hide the `\").concat(titleWarningContext.titleName, \"`, you can wrap it with our VisuallyHidden component.\\n\\nFor more information, see https://radix-ui.com/primitives/docs/components/\").concat(titleWarningContext.docsSlug);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TitleWarning.useEffect\": ()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }\n }[\"TitleWarning.useEffect\"], [\n MESSAGE,\n titleId\n ]);\n return null;\n};\n_s12(TitleWarning, \"GA0m2oeX5XXEaAUGtZZQs5ML670=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c18 = TitleWarning;\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = (param)=>{\n let { contentRef, descriptionId } = param;\n _s13();\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = \"Warning: Missing `Description` or `aria-describedby={undefined}` for {\".concat(descriptionWarningContext.contentName, \"}.\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DescriptionWarning.useEffect\": ()=>{\n var _contentRef_current;\n const describedById = (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }\n }[\"DescriptionWarning.useEffect\"], [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\n_s13(DescriptionWarning, \"udowy/X+0YeBLGtDTT18KC58FH0=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c19 = DescriptionWarning;\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19;\n$RefreshReg$(_c, \"Dialog\");\n$RefreshReg$(_c1, \"DialogTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogTrigger\");\n$RefreshReg$(_c3, \"DialogPortal\");\n$RefreshReg$(_c4, \"DialogOverlay$React.forwardRef\");\n$RefreshReg$(_c5, \"DialogOverlay\");\n$RefreshReg$(_c6, \"DialogOverlayImpl\");\n$RefreshReg$(_c7, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogContent\");\n$RefreshReg$(_c9, \"DialogContentModal\");\n$RefreshReg$(_c10, \"DialogContentNonModal\");\n$RefreshReg$(_c11, \"DialogContentImpl\");\n$RefreshReg$(_c12, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c13, \"DialogTitle\");\n$RefreshReg$(_c14, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c15, \"DialogDescription\");\n$RefreshReg$(_c16, \"DialogClose$React.forwardRef\");\n$RefreshReg$(_c17, \"DialogClose\");\n$RefreshReg$(_c18, \"TitleWarning\");\n$RefreshReg$(_c19, \"DescriptionWarning\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0w7QUFDa0I7QUFDNUI7QUFDZTtBQUNKO0FBQ047QUFDZTtBQUNqQjtBQUNDO0FBQ0s7QUFDRjtBQUNGO0FBQ047QUFxRGpCO0FBN0NKLElBQU0sY0FBYztBQUdwQixJQUFNLENBQUMscUJBQXFCLGlCQUFpQixJQUFJLDJFQUFrQixDQUFDLFdBQVc7QUFjL0UsSUFBTSxDQUFDLGdCQUFnQixnQkFBZ0IsSUFBSSxvQkFBd0MsV0FBVztBQVU5RixhQUFzQyxDQUFDOztJQUNyQyxNQUFNLEVBQ0osZUFDQSxVQUNBLE1BQU0sVUFDTixhQUNBLGNBQ0EsUUFBUSxNQUNWLEdBQUk7SUFDSixNQUFNLGFBQW1CLDBDQUEwQixJQUFJO0lBQ3ZELE1BQU0sYUFBbUIsMENBQTZCLElBQUk7SUFDMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxPQUFPLGlHQUF5QjtRQUNuRCxNQUFNO1FBQ04sYUFBYTtRQUNiLFVBQVU7SUFDWixDQUFDO0lBRUQsT0FDRSx1RUFBQztRQUNDLE9BQU87UUFDUDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxjQUFjO1FBQ2QsY0FBb0I7a0NBQVksSUFBTTswQ0FBUSxDQUFDLFdBQWEsQ0FBQyxRQUFROztpQ0FBRztZQUFDLE9BQU87U0FBQztRQUNqRjtRQUVDO0lBQUE7QUFHUDs7O1FBdEJrQyx3RkFBb0I7UUFXckMscURBQUssQ0FBQztRQUNSLHFEQUFLLENBQUM7UUFDQSxxREFBSzs7O0tBeEJwQjtBQW1DTixPQUFPLGNBQWM7QUFNckIsSUFBTSxlQUFlO0FBTXJCLElBQU0sa0NBQXNCLHdEQUMxQixDQUFDLE9BQXdDOztJQUN2QyxNQUFNLEVBQUUsZUFBZSxHQUFHLGFBQWEsSUFBSTtJQUMzQyxN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SUFBTSxVQUFVO0FBQ2hCLElBQU0sU0FBUztBQUNmLElBQU0sVUFBVTtBQUNoQixJQUFNLFVBQVU7QUFDaEIsSUFBTSxRQUFRO0FBQ2QsSUFBTSxjQUFjO0FBQ3BCLElBQU0sUUFBUSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvZGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1pZCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgRm9jdXNTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1mb2N1cy1zY29wZSc7XG5pbXBvcnQgeyBQb3J0YWwgYXMgUG9ydGFsUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcnRhbCc7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmVzZW5jZSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUZvY3VzR3VhcmRzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkcyc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICdyZWFjdC1yZW1vdmUtc2Nyb2xsJztcbmltcG9ydCB7IGhpZGVPdGhlcnMgfSBmcm9tICdhcmlhLWhpZGRlbic7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRElBTE9HX05BTUUgPSAnRGlhbG9nJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVEaWFsb2c/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZURpYWxvZ0NvbnRleHQsIGNyZWF0ZURpYWxvZ1Njb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShESUFMT0dfTkFNRSk7XG5cbnR5cGUgRGlhbG9nQ29udGV4dFZhbHVlID0ge1xuICB0cmlnZ2VyUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudFJlZjogUmVhY3QuUmVmT2JqZWN0PERpYWxvZ0NvbnRlbnRFbGVtZW50IHwgbnVsbD47XG4gIGNvbnRlbnRJZDogc3RyaW5nO1xuICB0aXRsZUlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uSWQ6IHN0cmluZztcbiAgb3BlbjogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBvbk9wZW5Ub2dnbGUoKTogdm9pZDtcbiAgbW9kYWw6IGJvb2xlYW47XG59O1xuXG5jb25zdCBbRGlhbG9nUHJvdmlkZXIsIHVzZURpYWxvZ0NvbnRleHRdID0gY3JlYXRlRGlhbG9nQ29udGV4dDxEaWFsb2dDb250ZXh0VmFsdWU+KERJQUxPR19OQU1FKTtcblxuaW50ZXJmYWNlIERpYWxvZ1Byb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBkZWZhdWx0T3Blbj86IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZT8ob3BlbjogYm9vbGVhbik6IHZvaWQ7XG4gIG1vZGFsPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRGlhbG9nOiBSZWFjdC5GQzxEaWFsb2dQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1Byb3BzPikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZURpYWxvZyxcbiAgICBjaGlsZHJlbixcbiAgICBvcGVuOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0T3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgbW9kYWwgPSB0cnVlLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHRyaWdnZXJSZWYgPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmPERpYWxvZ0NvbnRlbnRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogb3BlblByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2UsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1Byb3ZpZGVyXG4gICAgICBzY29wZT17X19zY29wZURpYWxvZ31cbiAgICAgIHRyaWdnZXJSZWY9e3RyaWdnZXJSZWZ9XG4gICAgICBjb250ZW50UmVmPXtjb250ZW50UmVmfVxuICAgICAgY29udGVudElkPXt1c2VJZCgpfVxuICAgICAgdGl0bGVJZD17dXNlSWQoKX1cbiAgICAgIGRlc2NyaXB0aW9uSWQ9e3VzZUlkKCl9XG4gICAgICBvcGVuPXtvcGVufVxuICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgb25PcGVuVG9nZ2xlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRPcGVuKChwcmV2T3BlbikgPT4gIXByZXZPcGVuKSwgW3NldE9wZW5dKX1cbiAgICAgIG1vZGFsPXttb2RhbH1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9EaWFsb2dQcm92aWRlcj5cbiAgKTtcbn07XG5cbkRpYWxvZy5kaXNwbGF5TmFtZSA9IERJQUxPR19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dUcmlnZ2VyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRSSUdHRVJfTkFNRSA9ICdEaWFsb2dUcmlnZ2VyJztcblxudHlwZSBEaWFsb2dUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xudHlwZSBQcmltaXRpdmVCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgRGlhbG9nVHJpZ2dlclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgRGlhbG9nVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nVHJpZ2dlckVsZW1lbnQsIERpYWxvZ1RyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgY29tcG9zZWRUcmlnZ2VyUmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC50cmlnZ2VyUmVmKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByaW1pdGl2ZS5idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIGFyaWEtY29udHJvbHM9e2NvbnRleHQuY29udGVudElkfVxuICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICB7Li4udHJpZ2dlclByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkVHJpZ2dlclJlZn1cbiAgICAgICAgb25DbGljaz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgY29udGV4dC5vbk9wZW5Ub2dnbGUpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5EaWFsb2dUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dQb3J0YWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUE9SVEFMX05BTUUgPSAnRGlhbG9nUG9ydGFsJztcblxudHlwZSBQb3J0YWxDb250ZXh0VmFsdWUgPSB7IGZvcmNlTW91bnQ/OiB0cnVlIH07XG5jb25zdCBbUG9ydGFsUHJvdmlkZXIsIHVzZVBvcnRhbENvbnRleHRdID0gY3JlYXRlRGlhbG9nQ29udGV4dDxQb3J0YWxDb250ZXh0VmFsdWU+KFBPUlRBTF9OQU1FLCB7XG4gIGZvcmNlTW91bnQ6IHVuZGVmaW5lZCxcbn0pO1xuXG50eXBlIFBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3J0YWxQcmltaXRpdmU+O1xuaW50ZXJmYWNlIERpYWxvZ1BvcnRhbFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAqL1xuICBjb250YWluZXI/OiBQb3J0YWxQcm9wc1snY29udGFpbmVyJ107XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dQb3J0YWw6IFJlYWN0LkZDPERpYWxvZ1BvcnRhbFByb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nUG9ydGFsUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURpYWxvZywgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFBPUlRBTF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgcmV0dXJuIChcbiAgICA8UG9ydGFsUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVEaWFsb2d9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9PlxuICAgICAge1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiAoXG4gICAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgICAgPFBvcnRhbFByaW1pdGl2ZSBhc0NoaWxkIGNvbnRhaW5lcj17Y29udGFpbmVyfT5cbiAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICA8L1BvcnRhbFByaW1pdGl2ZT5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgICkpfVxuICAgIDwvUG9ydGFsUHJvdmlkZXI+XG4gICk7XG59O1xuXG5EaWFsb2dQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nT3ZlcmxheVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBPVkVSTEFZX05BTUUgPSAnRGlhbG9nT3ZlcmxheSc7XG5cbnR5cGUgRGlhbG9nT3ZlcmxheUVsZW1lbnQgPSBEaWFsb2dPdmVybGF5SW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nT3ZlcmxheVByb3BzIGV4dGVuZHMgRGlhbG9nT3ZlcmxheUltcGxQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dPdmVybGF5ID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dPdmVybGF5RWxlbWVudCwgRGlhbG9nT3ZlcmxheVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dPdmVybGF5UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4ub3ZlcmxheVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChPVkVSTEFZX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiBjb250ZXh0Lm1vZGFsID8gKFxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAgPERpYWxvZ092ZXJsYXlJbXBsIHsuLi5vdmVybGF5UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApIDogbnVsbDtcbiAgfVxuKTtcblxuRGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IE9WRVJMQVlfTkFNRTtcblxudHlwZSBEaWFsb2dPdmVybGF5SW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIERpYWxvZ092ZXJsYXlJbXBsUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dPdmVybGF5SW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nT3ZlcmxheUltcGxFbGVtZW50LCBEaWFsb2dPdmVybGF5SW1wbFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dPdmVybGF5SW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KE9WRVJMQVlfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIChcbiAgICAgIC8vIE1ha2Ugc3VyZSBgQ29udGVudGAgaXMgc2Nyb2xsYWJsZSBldmVuIHdoZW4gaXQgZG9lc24ndCBsaXZlIGluc2lkZSBgUmVtb3ZlU2Nyb2xsYFxuICAgICAgLy8gaWUuIHdoZW4gYE92ZXJsYXlgIGFuZCBgQ29udGVudGAgYXJlIHNpYmxpbmdzXG4gICAgICA8UmVtb3ZlU2Nyb2xsIGFzPXtTbG90fSBhbGxvd1BpbmNoWm9vbSBzaGFyZHM9e1tjb250ZXh0LmNvbnRlbnRSZWZdfT5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICAgIHsuLi5vdmVybGF5UHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgLy8gV2UgcmUtZW5hYmxlIHBvaW50ZXItZXZlbnRzIHByZXZlbnRlZCBieSBgRGlhbG9nLkNvbnRlbnRgIHRvIGFsbG93IHNjcm9sbGluZyB0aGUgb3ZlcmxheS5cbiAgICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnYXV0bycsIC4uLm92ZXJsYXlQcm9wcy5zdHlsZSB9fVxuICAgICAgICAvPlxuICAgICAgPC9SZW1vdmVTY3JvbGw+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnRGlhbG9nQ29udGVudCc7XG5cbnR5cGUgRGlhbG9nQ29udGVudEVsZW1lbnQgPSBEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nQ29udGVudFByb3BzIGV4dGVuZHMgRGlhbG9nQ29udGVudFR5cGVQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBEaWFsb2dDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50RWxlbWVudCwgRGlhbG9nQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICB7Y29udGV4dC5tb2RhbCA/IChcbiAgICAgICAgICA8RGlhbG9nQ29udGVudE1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxEaWFsb2dDb250ZW50Tm9uTW9kYWwgey4uLmNvbnRlbnRQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXNlbmNlPlxuICAgICk7XG4gIH1cbik7XG5cbkRpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQgPSBEaWFsb2dDb250ZW50SW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgRGlhbG9nQ29udGVudFR5cGVQcm9wc1xuICBleHRlbmRzIE9taXQ8RGlhbG9nQ29udGVudEltcGxQcm9wcywgJ3RyYXBGb2N1cycgfCAnZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzJz4ge31cblxuY29uc3QgRGlhbG9nQ29udGVudE1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQsIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29udGVudFJlZiwgY29udGVudFJlZik7XG5cbiAgICAvLyBhcmlhLWhpZGUgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNvbnRlbnQgKGJldHRlciBzdXBwb3J0ZWQgZXF1aXZhbGVudCB0byBzZXR0aW5nIGFyaWEtbW9kYWwpXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaWFsb2dDb250ZW50SW1wbFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAvLyB3ZSBtYWtlIHN1cmUgZm9jdXMgaXNuJ3QgdHJhcHBlZCBvbmNlIGBEaWFsb2dDb250ZW50YCBoYXMgYmVlbiBjbG9zZWRcbiAgICAgICAgLy8gKGNsb3NlZCAhPT0gdW5tb3VudGVkIHdoZW4gYW5pbWF0aW5nIG91dClcbiAgICAgICAgdHJhcEZvY3VzPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c1xuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICB9KX1cbiAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd25PdXRzaWRlLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEV2ZW50ID0gZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQ7XG4gICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpc1JpZ2h0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMiB8fCBjdHJsTGVmdENsaWNrO1xuXG4gICAgICAgICAgLy8gSWYgdGhlIGV2ZW50IGlzIGEgcmlnaHQtY2xpY2ssIHdlIHNob3VsZG4ndCBjbG9zZSBiZWNhdXNlXG4gICAgICAgICAgLy8gaXQgaXMgZWZmZWN0aXZlbHkgYXMgaWYgd2UgcmlnaHQtY2xpY2tlZCB0aGUgYE92ZXJsYXlgLlxuICAgICAgICAgIGlmIChpc1JpZ2h0Q2xpY2spIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pfVxuICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgYGZvY3Vzb3V0YCBldmVudCBtYXkgc3RpbGwgaGFwcGVuLlxuICAgICAgICAvLyBXZSBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJpZ2dlciBvdXIgYG9uRGlzbWlzc2AgaW4gc3VjaCBjYXNlLlxuICAgICAgICBvbkZvY3VzT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c091dHNpZGUsIChldmVudCkgPT5cbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRGlhbG9nQ29udGVudE5vbk1vZGFsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50VHlwZUVsZW1lbnQsIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaWFsb2dDb250ZW50SW1wbFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICB0cmFwRm9jdXM9e2ZhbHNlfVxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM9e2ZhbHNlfVxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzPy4oZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBpZiAoIWhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQpIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgLy8gQWx3YXlzIHByZXZlbnQgYXV0byBmb2N1cyBiZWNhdXNlIHdlIGVpdGhlciBmb2N1cyBtYW51YWxseSBvciB3YW50IHVzZXIgYWdlbnQgZm9jdXNcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH19XG4gICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcblxuICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJkb3duJykge1xuICAgICAgICAgICAgICBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUHJldmVudCBkaXNtaXNzaW5nIHdoZW4gY2xpY2tpbmcgdGhlIHRyaWdnZXIuXG4gICAgICAgICAgLy8gQXMgdGhlIHRyaWdnZXIgaXMgYWxyZWFkeSBzZXR1cCB0byBjbG9zZSwgd2l0aG91dCBkb2luZyBzbyB3b3VsZFxuICAgICAgICAgIC8vIGNhdXNlIGl0IHRvIGNsb3NlIGFuZCBpbW1lZGlhdGVseSBvcGVuLlxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjb25zdCB0YXJnZXRJc1RyaWdnZXIgPSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uY29udGFpbnModGFyZ2V0KTtcbiAgICAgICAgICBpZiAodGFyZ2V0SXNUcmlnZ2VyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgLy8gT24gU2FmYXJpIGlmIHRoZSB0cmlnZ2VyIGlzIGluc2lkZSBhIGNvbnRhaW5lciB3aXRoIHRhYkluZGV4PXswfSwgd2hlbiBjbGlja2VkXG4gICAgICAgICAgLy8gd2Ugd2lsbCBnZXQgdGhlIHBvaW50ZXIgZG93biBvdXRzaWRlIGV2ZW50IG9uIHRoZSB0cmlnZ2VyLCBidXQgdGhlbiBhIHN1YnNlcXVlbnRcbiAgICAgICAgICAvLyBmb2N1cyBvdXRzaWRlIGV2ZW50IG9uIHRoZSBjb250YWluZXIsIHdlIGlnbm9yZSBhbnkgZm9jdXMgb3V0c2lkZSBldmVudCB3aGVuIHdlJ3ZlXG4gICAgICAgICAgLy8gYWxyZWFkeSBoYWQgYSBwb2ludGVyIGRvd24gb3V0c2lkZSBldmVudC5cbiAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gJ2ZvY3VzaW4nICYmIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIERpYWxvZ0NvbnRlbnRJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBGb2N1c1Njb3BlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEZvY3VzU2NvcGU+O1xuaW50ZXJmYWNlIERpYWxvZ0NvbnRlbnRJbXBsUHJvcHMgZXh0ZW5kcyBPbWl0PERpc21pc3NhYmxlTGF5ZXJQcm9wcywgJ29uRGlzbWlzcyc+IHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBmb2N1cyBjYW5ub3QgZXNjYXBlIHRoZSBgQ29udGVudGAgdmlhIGtleWJvYXJkLFxuICAgKiBwb2ludGVyLCBvciBhIHByb2dyYW1tYXRpYyBmb2N1cy5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgdHJhcEZvY3VzPzogRm9jdXNTY29wZVByb3BzWyd0cmFwcGVkJ107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBvcGVuLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25PcGVuQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvbk1vdW50QXV0b0ZvY3VzJ107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBjbG9zZS5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uQ2xvc2VBdXRvRm9jdXM/OiBGb2N1c1Njb3BlUHJvcHNbJ29uVW5tb3VudEF1dG9Gb2N1cyddO1xufVxuXG5jb25zdCBEaWFsb2dDb250ZW50SW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ29udGVudEltcGxFbGVtZW50LCBEaWFsb2dDb250ZW50SW1wbFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50SW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCB0cmFwRm9jdXMsIG9uT3BlbkF1dG9Gb2N1cywgb25DbG9zZUF1dG9Gb2N1cywgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBEaWFsb2dgIHdpbGwgYmVcbiAgICAvLyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBET00gKGJlY2F1c2Ugb2YgdGhlIGBQb3J0YWxgKVxuICAgIHVzZUZvY3VzR3VhcmRzKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEZvY3VzU2NvcGVcbiAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgbG9vcFxuICAgICAgICAgIHRyYXBwZWQ9e3RyYXBGb2N1c31cbiAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXtvbk9wZW5BdXRvRm9jdXN9XG4gICAgICAgICAgb25Vbm1vdW50QXV0b0ZvY3VzPXtvbkNsb3NlQXV0b0ZvY3VzfVxuICAgICAgICA+XG4gICAgICAgICAgPERpc21pc3NhYmxlTGF5ZXJcbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgaWQ9e2NvbnRleHQuY29udGVudElkfVxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Y29udGV4dC5kZXNjcmlwdGlvbklkfVxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtjb250ZXh0LnRpdGxlSWR9XG4gICAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgb25EaXNtaXNzPXsoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Gb2N1c1Njb3BlPlxuICAgICAgICB7cHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxUaXRsZVdhcm5pbmcgdGl0bGVJZD17Y29udGV4dC50aXRsZUlkfSAvPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uV2FybmluZyBjb250ZW50UmVmPXtjb250ZW50UmVmfSBkZXNjcmlwdGlvbklkPXtjb250ZXh0LmRlc2NyaXB0aW9uSWR9IC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dUaXRsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUSVRMRV9OQU1FID0gJ0RpYWxvZ1RpdGxlJztcblxudHlwZSBEaWFsb2dUaXRsZUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuaDI+O1xudHlwZSBQcmltaXRpdmVIZWFkaW5nMlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuaDI+O1xuaW50ZXJmYWNlIERpYWxvZ1RpdGxlUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVIZWFkaW5nMlByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dUaXRsZUVsZW1lbnQsIERpYWxvZ1RpdGxlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1RpdGxlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLnRpdGxlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KFRJVExFX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiA8UHJpbWl0aXZlLmgyIGlkPXtjb250ZXh0LnRpdGxlSWR9IHsuLi50aXRsZVByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gVElUTEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nRGVzY3JpcHRpb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgREVTQ1JJUFRJT05fTkFNRSA9ICdEaWFsb2dEZXNjcmlwdGlvbic7XG5cbnR5cGUgRGlhbG9nRGVzY3JpcHRpb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnA+O1xudHlwZSBQcmltaXRpdmVQYXJhZ3JhcGhQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLnA+O1xuaW50ZXJmYWNlIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVQYXJhZ3JhcGhQcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dEZXNjcmlwdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nRGVzY3JpcHRpb25FbGVtZW50LCBEaWFsb2dEZXNjcmlwdGlvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dEZXNjcmlwdGlvblByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5kZXNjcmlwdGlvblByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChERVNDUklQVElPTl9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5wIGlkPXtjb250ZXh0LmRlc2NyaXB0aW9uSWR9IHsuLi5kZXNjcmlwdGlvblByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRpYWxvZ0Rlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gREVTQ1JJUFRJT05fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nQ2xvc2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ0xPU0VfTkFNRSA9ICdEaWFsb2dDbG9zZSc7XG5cbnR5cGUgRGlhbG9nQ2xvc2VFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgRGlhbG9nQ2xvc2VQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUJ1dHRvblByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ0Nsb3NlID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDbG9zZUVsZW1lbnQsIERpYWxvZ0Nsb3NlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0Nsb3NlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLmNsb3NlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENMT1NFX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgey4uLmNsb3NlUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSkpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5EaWFsb2dDbG9zZS5kaXNwbGF5TmFtZSA9IENMT1NFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0U3RhdGUob3BlbjogYm9vbGVhbikge1xuICByZXR1cm4gb3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnO1xufVxuXG5jb25zdCBUSVRMRV9XQVJOSU5HX05BTUUgPSAnRGlhbG9nVGl0bGVXYXJuaW5nJztcblxuY29uc3QgW1dhcm5pbmdQcm92aWRlciwgdXNlV2FybmluZ0NvbnRleHRdID0gY3JlYXRlQ29udGV4dChUSVRMRV9XQVJOSU5HX05BTUUsIHtcbiAgY29udGVudE5hbWU6IENPTlRFTlRfTkFNRSxcbiAgdGl0bGVOYW1lOiBUSVRMRV9OQU1FLFxuICBkb2NzU2x1ZzogJ2RpYWxvZycsXG59KTtcblxudHlwZSBUaXRsZVdhcm5pbmdQcm9wcyA9IHsgdGl0bGVJZD86IHN0cmluZyB9O1xuXG5jb25zdCBUaXRsZVdhcm5pbmc6IFJlYWN0LkZDPFRpdGxlV2FybmluZ1Byb3BzPiA9ICh7IHRpdGxlSWQgfSkgPT4ge1xuICBjb25zdCB0aXRsZVdhcm5pbmdDb250ZXh0ID0gdXNlV2FybmluZ0NvbnRleHQoVElUTEVfV0FSTklOR19OQU1FKTtcblxuICBjb25zdCBNRVNTQUdFID0gYFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC5jb250ZW50TmFtZX1cXGAgcmVxdWlyZXMgYSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuXG5JZiB5b3Ugd2FudCB0byBoaWRlIHRoZSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCwgeW91IGNhbiB3cmFwIGl0IHdpdGggb3VyIFZpc3VhbGx5SGlkZGVuIGNvbXBvbmVudC5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JhZGl4LXVpLmNvbS9wcmltaXRpdmVzL2RvY3MvY29tcG9uZW50cy8ke3RpdGxlV2FybmluZ0NvbnRleHQuZG9jc1NsdWd9YDtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aXRsZUlkKSB7XG4gICAgICBjb25zdCBoYXNUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpdGxlSWQpO1xuICAgICAgaWYgKCFoYXNUaXRsZSkgY29uc29sZS5lcnJvcihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCB0aXRsZUlkXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBERVNDUklQVElPTl9XQVJOSU5HX05BTUUgPSAnRGlhbG9nRGVzY3JpcHRpb25XYXJuaW5nJztcblxudHlwZSBEZXNjcmlwdGlvbldhcm5pbmdQcm9wcyA9IHtcbiAgY29udGVudFJlZjogUmVhY3QuUmVmT2JqZWN0PERpYWxvZ0NvbnRlbnRFbGVtZW50IHwgbnVsbD47XG4gIGRlc2NyaXB0aW9uSWQ/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBEZXNjcmlwdGlvbldhcm5pbmc6IFJlYWN0LkZDPERlc2NyaXB0aW9uV2FybmluZ1Byb3BzPiA9ICh7IGNvbnRlbnRSZWYsIGRlc2NyaXB0aW9uSWQgfSkgPT4ge1xuICBjb25zdCBkZXNjcmlwdGlvbldhcm5pbmdDb250ZXh0ID0gdXNlV2FybmluZ0NvbnRleHQoREVTQ1JJUFRJT05fV0FSTklOR19OQU1FKTtcbiAgY29uc3QgTUVTU0FHRSA9IGBXYXJuaW5nOiBNaXNzaW5nIFxcYERlc2NyaXB0aW9uXFxgIG9yIFxcYGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH1cXGAgZm9yIHske2Rlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQuY29udGVudE5hbWV9fS5gO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZCA9IGNvbnRlbnRSZWYuY3VycmVudD8uZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgLy8gaWYgd2UgaGF2ZSBhbiBpZCBhbmQgdGhlIHVzZXIgaGFzbid0IHNldCBhcmlhLWRlc2NyaWJlZGJ5PXt1bmRlZmluZWR9XG4gICAgaWYgKGRlc2NyaXB0aW9uSWQgJiYgZGVzY3JpYmVkQnlJZCkge1xuICAgICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXNjcmlwdGlvbklkKTtcbiAgICAgIGlmICghaGFzRGVzY3JpcHRpb24pIGNvbnNvbGUud2FybihNRVNTQUdFKTtcbiAgICB9XG4gIH0sIFtNRVNTQUdFLCBjb250ZW50UmVmLCBkZXNjcmlwdGlvbklkXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBSb290ID0gRGlhbG9nO1xuY29uc3QgVHJpZ2dlciA9IERpYWxvZ1RyaWdnZXI7XG5jb25zdCBQb3J0YWwgPSBEaWFsb2dQb3J0YWw7XG5jb25zdCBPdmVybGF5ID0gRGlhbG9nT3ZlcmxheTtcbmNvbnN0IENvbnRlbnQgPSBEaWFsb2dDb250ZW50O1xuY29uc3QgVGl0bGUgPSBEaWFsb2dUaXRsZTtcbmNvbnN0IERlc2NyaXB0aW9uID0gRGlhbG9nRGVzY3JpcHRpb247XG5jb25zdCBDbG9zZSA9IERpYWxvZ0Nsb3NlO1xuXG5leHBvcnQge1xuICBjcmVhdGVEaWFsb2dTY29wZSxcbiAgLy9cbiAgRGlhbG9nLFxuICBEaWFsb2dUcmlnZ2VyLFxuICBEaWFsb2dQb3J0YWwsXG4gIERpYWxvZ092ZXJsYXksXG4gIERpYWxvZ0NvbnRlbnQsXG4gIERpYWxvZ1RpdGxlLFxuICBEaWFsb2dEZXNjcmlwdGlvbixcbiAgRGlhbG9nQ2xvc2UsXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgT3ZlcmxheSxcbiAgQ29udGVudCxcbiAgVGl0bGUsXG4gIERlc2NyaXB0aW9uLFxuICBDbG9zZSxcbiAgLy9cbiAgV2FybmluZ1Byb3ZpZGVyLFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgRGlhbG9nUHJvcHMsXG4gIERpYWxvZ1RyaWdnZXJQcm9wcyxcbiAgRGlhbG9nUG9ydGFsUHJvcHMsXG4gIERpYWxvZ092ZXJsYXlQcm9wcyxcbiAgRGlhbG9nQ29udGVudFByb3BzLFxuICBEaWFsb2dUaXRsZVByb3BzLFxuICBEaWFsb2dEZXNjcmlwdGlvblByb3BzLFxuICBEaWFsb2dDbG9zZVByb3BzLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs": /*!***********************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***! \***********************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ Branch),\n/* harmony export */ DismissableLayer: () => (/* binding */ DismissableLayer),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ DismissableLayerBranch),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Branch,DismissableLayer,DismissableLayerBranch,Root auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\n\n\n\n\n\n\n\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis;\n _s();\n const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n var _node_ownerDocument;\n const ownerDocument = (_node_ownerDocument = node === null || node === void 0 ? void 0 : node.ownerDocument) !== null && _node_ownerDocument !== void 0 ? _node_ownerDocument : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, {\n \"DismissableLayer.useComposedRefs[composedRefs]\": (node2)=>setNode(node2)\n }[\"DismissableLayer.useComposedRefs[composedRefs]\"]);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside]\": (event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\"]);\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 ? void 0 : onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside]\"], ownerDocument);\n const focusOutside = useFocusOutside({\n \"DismissableLayer.useFocusOutside[focusOutside]\": (event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\"]);\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 ? void 0 : onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.useFocusOutside[focusOutside]\"], ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)({\n \"DismissableLayer.useEscapeKeydown\": (event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 ? void 0 : onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n }[\"DismissableLayer.useEscapeKeydown\"], ownerDocument);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n const handleUpdate = {\n \"DismissableLayer.useEffect.handleUpdate\": ()=>force({})\n }[\"DismissableLayer.useEffect.handleUpdate\"];\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return ({\n \"DismissableLayer.useEffect\": ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate)\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n });\n}, \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n})), \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n});\n_c1 = DismissableLayer;\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayerBranch.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ({\n \"DismissableLayerBranch.useEffect\": ()=>{\n context.branches.delete(node);\n }\n })[\"DismissableLayerBranch.useEffect\"];\n }\n }\n }[\"DismissableLayerBranch.useEffect\"], [\n context.branches\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...props,\n ref: composedRefs\n });\n}, \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n})), \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n});\n_c3 = DismissableLayerBranch;\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s2();\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n \"usePointerDownOutside.useRef[handleClickRef]\": ()=>{}\n }[\"usePointerDownOutside.useRef[handleClickRef]\"]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePointerDownOutside.useEffect\": ()=>{\n const handlePointerDown = {\n \"usePointerDownOutside.useEffect.handlePointerDown\": (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = {\n \"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\": function() {\n handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\"];\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown\"];\n const timerId = window.setTimeout({\n \"usePointerDownOutside.useEffect.timerId\": ()=>{\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }\n }[\"usePointerDownOutside.useEffect.timerId\"], 0);\n return ({\n \"usePointerDownOutside.useEffect\": ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n })[\"usePointerDownOutside.useEffect\"];\n }\n }[\"usePointerDownOutside.useEffect\"], [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n_s2(usePointerDownOutside, \"M0Jqtgoae/27FfRizMxidmqs6b8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction useFocusOutside(onFocusOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s3();\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusOutside.useEffect\": ()=>{\n const handleFocus = {\n \"useFocusOutside.useEffect.handleFocus\": (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n }\n }[\"useFocusOutside.useEffect.handleFocus\"];\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return ({\n \"useFocusOutside.useEffect\": ()=>ownerDocument.removeEventListener(\"focusin\", handleFocus)\n })[\"useFocusOutside.useEffect\"];\n }\n }[\"useFocusOutside.useEffect\"], [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\n_s3(useFocusOutside, \"IjUuEsgpHwQc3lZUTypKaC1ceUQ=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, param) {\n let { discrete } = param;\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) {\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3;\n$RefreshReg$(_c, \"DismissableLayer$React.forwardRef\");\n$RefreshReg$(_c1, \"DismissableLayer\");\n$RefreshReg$(_c2, \"DismissableLayerBranch$React.forwardRef\");\n$RefreshReg$(_c3, \"DismissableLayerBranch\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ2tCO0FBQ3ZCO0FBQ0Q7QUFDRTtBQXFKM0I7QUEvSU4sSUFBTSx5QkFBeUI7QUFDL0IsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSx1QkFBdUI7QUFDN0IsSUFBTSxnQkFBZ0I7QUFFdEIsSUFBSTtBQUVKLElBQU0sd0NBQWdDLGlEQUFjO0lBQ2xELFFBQVEsb0JBQUksSUFBNkI7SUFDekMsd0NBQXdDLG9CQUFJLElBQTZCO0lBQ3pFLFVBQVUsb0JBQUksSUFBbUM7QUFDbkQsQ0FBQztBQXNDRCxJQUFNLG9DQUF5QixzREFDN0IsQ0FBQyxPQUFPO1FBWXVDOztJQVg3QyxNQUFNLEVBQ0osOEJBQThCLE9BQzlCLGlCQUNBLHNCQUNBLGdCQUNBLG1CQUNBLFdBQ0EsR0FBRyxZQUNMLEdBQUk7SUFDSixNQUFNLFVBQWdCLDhDQUFXLHVCQUF1QjtJQUN4RCxNQUFNLENBQUMsTUFBTSxPQUFPLElBQVUsNENBQXlDLElBQUk7UUFDckQ7SUFBdEIsTUFBTSx3RkFBc0IsdUtBQTZCO0lBQ3pELE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBVSw0Q0FBUyxDQUFDLENBQUM7SUFDbkMsTUFBTSxlQUFlLDZFQUFlLENBQUM7MERBQWMsQ0FBQ0EsUUFBUyxRQUFRQSxLQUFJLENBQUM7O0lBQzFFLE1BQU0sU0FBUyxNQUFNLEtBQUssUUFBUSxNQUFNO0lBQ3hDLE1BQU0sQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDO1dBQUcsUUFBUSxzQ0FBc0M7S0FBQSxDQUFFLE1BQU0sRUFBRTtJQUNuSCxNQUFNLG9EQUFvRCxPQUFPLFFBQVEsNENBQTRDO0lBQ3JILE1BQU0sUUFBUSxPQUFPLE9BQU8sUUFBUSxJQUFJ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LE1BQU0sU0FBUyxPQUFPLGNBQWM7SUFDcEMsTUFBTSxRQUFRLElBQUksWUFBWSxNQUFNO1FBQUUsU0FBUztRQUFPLFlBQVk7UUFBTTtJQUFPLENBQUM7SUFDaEYsSUFBSSxRQUFTLFFBQU8saUJBQWlCLE1BQU0sU0FBMEI7UUFBRSxNQUFNO0lBQUssQ0FBQztJQUVuRixJQUFJLFVBQVU7UUFDWixzRkFBMkIsQ0FBQyxRQUFRLEtBQUs7SUFDM0MsT0FBTztRQUNMLE9BQU8sY0FBYyxLQUFLO0lBQzVCO0FBQ0Y7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLFNBQVMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL2Rpc21pc3NhYmxlLWxheWVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgUHJpbWl0aXZlLCBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VFc2NhcGVLZXlkb3duIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1lc2NhcGUta2V5ZG93bic7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpc21pc3NhYmxlTGF5ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRElTTUlTU0FCTEVfTEFZRVJfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyJztcbmNvbnN0IENPTlRFWFRfVVBEQVRFID0gJ2Rpc21pc3NhYmxlTGF5ZXIudXBkYXRlJztcbmNvbnN0IFBPSU5URVJfRE9XTl9PVVRTSURFID0gJ2Rpc21pc3NhYmxlTGF5ZXIucG9pbnRlckRvd25PdXRzaWRlJztcbmNvbnN0IEZPQ1VTX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5mb2N1c091dHNpZGUnO1xuXG5sZXQgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50czogc3RyaW5nO1xuXG5jb25zdCBEaXNtaXNzYWJsZUxheWVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBsYXllcnM6IG5ldyBTZXQ8RGlzbWlzc2FibGVMYXllckVsZW1lbnQ+KCksXG4gIGxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkOiBuZXcgU2V0PERpc21pc3NhYmxlTGF5ZXJFbGVtZW50PigpLFxuICBicmFuY2hlczogbmV3IFNldDxEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudD4oKSxcbn0pO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgaG92ZXIvZm9jdXMvY2xpY2sgaW50ZXJhY3Rpb25zIHdpbGwgYmUgZGlzYWJsZWQgb24gZWxlbWVudHMgb3V0c2lkZVxuICAgKiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLiBVc2VycyB3aWxsIG5lZWQgdG8gY2xpY2sgdHdpY2Ugb24gb3V0c2lkZSBlbGVtZW50cyB0b1xuICAgKiBpbnRlcmFjdCB3aXRoIHRoZW06IG9uY2UgdG8gY2xvc2UgdGhlIGBEaXNtaXNzYWJsZUxheWVyYCwgYW5kIGFnYWluIHRvIHRyaWdnZXIgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM/OiBib29sZWFuO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBkb3duLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Fc2NhcGVLZXlEb3duPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYSBgcG9pbnRlcmRvd25gIGV2ZW50IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiAoZXZlbnQ6IFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Gb2N1c091dHNpZGU/OiAoZXZlbnQ6IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBpbnRlcmFjdGlvbiBoYXBwZW5zIG91dHNpZGUgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICogU3BlY2lmaWNhbGx5LCB3aGVuIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb3IgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiBpdC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uSW50ZXJhY3RPdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCB8IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogSGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgIHNob3VsZCBiZSBkaXNtaXNzZWRcbiAgICovXG4gIG9uRGlzbWlzcz86ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IERpc21pc3NhYmxlTGF5ZXIgPSBSZWFjdC5mb3J3YXJkUmVmPERpc21pc3NhYmxlTGF5ZXJFbGVtZW50LCBEaXNtaXNzYWJsZUxheWVyUHJvcHM+KFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyA9IGZhbHNlLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlLFxuICAgICAgb25EaXNtaXNzLFxuICAgICAgLi4ubGF5ZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gICAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QudXNlU3RhdGU8RGlzbWlzc2FibGVMYXllckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gbm9kZT8ub3duZXJEb2N1bWVudCA/PyBnbG9iYWxUaGlzPy5kb2N1bWVudDtcbiAgICBjb25zdCBbLCBmb3JjZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldE5vZGUobm9kZSkpO1xuICAgIGNvbnN0IGxheWVycyA9IEFycmF5LmZyb20oY29udGV4dC5sYXllcnMpO1xuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbLi4uY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0uc2xpY2UoLTEpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4ID0gbGF5ZXJzLmluZGV4T2YoaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbmRleCA9IG5vZGUgPyBsYXllcnMuaW5kZXhPZihub2RlKSA6IC0xO1xuICAgIGNvbnN0IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCA9IGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA+IDA7XG4gICAgY29uc3QgaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA9IGluZGV4ID49IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXg7XG5cbiAgICBjb25zdCBwb2ludGVyRG93bk91dHNpZGUgPSB1c2VQb2ludGVyRG93bk91dHNpZGUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpc1BvaW50ZXJEb3duT25CcmFuY2ggPSBbLi4uY29udGV4dC5icmFuY2hlc10uc29tZSgoYnJhbmNoKSA9PiBicmFuY2guY29udGFpbnModGFyZ2V0KSk7XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c0VuYWJsZWQgfHwgaXNQb2ludGVyRG93bk9uQnJhbmNoKSByZXR1cm47XG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuXG4gICAgY29uc3QgZm9jdXNPdXRzaWRlID0gdXNlRm9jdXNPdXRzaWRlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNGb2N1c0luQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgaWYgKGlzRm9jdXNJbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgb25Gb2N1c091dHNpZGU/LihldmVudCk7XG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzPy4oKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcblxuICAgIHVzZUVzY2FwZUtleWRvd24oKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBpc0hpZ2hlc3RMYXllciA9IGluZGV4ID09PSBjb250ZXh0LmxheWVycy5zaXplIC0gMTtcbiAgICAgIGlmICghaXNIaWdoZXN0TGF5ZXIpIHJldHVybjtcbiAgICAgIG9uRXNjYXBlS2V5RG93bj8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJiBvbkRpc21pc3MpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25EaXNtaXNzKCk7XG4gICAgICB9XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPT09IDApIHtcbiAgICAgICAgICBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzID0gb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHM7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5hZGQobm9kZSk7XG4gICAgICB9XG4gICAgICBjb250ZXh0LmxheWVycy5hZGQobm9kZSk7XG4gICAgICBkaXNwYXRjaFVwZGF0ZSgpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyAmJlxuICAgICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW25vZGUsIG93bmVyRG9jdW1lbnQsIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cywgY29udGV4dF0pO1xuXG4gICAgLyoqXG4gICAgICogV2UgcHVycG9zZWZ1bGx5IHByZXZlbnQgY29tYmluaW5nIHRoaXMgZWZmZWN0IHdpdGggdGhlIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIGVmZmVjdFxuICAgICAqIGJlY2F1c2UgYSBjaGFuZ2UgdG8gYGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c2Agd291bGQgcmVtb3ZlIHRoaXMgbGF5ZXIgZnJvbSB0aGUgc3RhY2tcbiAgICAgKiBhbmQgYWRkIGl0IHRvIHRoZSBlbmQgYWdhaW4gc28gdGhlIGxheWVyaW5nIG9yZGVyIHdvdWxkbid0IGJlIF9jcmVhdGlvbiBvcmRlcl8uXG4gICAgICogV2Ugb25seSB3YW50IHRoZW0gdG8gYmUgcmVtb3ZlZCBmcm9tIGNvbnRleHQgc3RhY2tzIHdoZW4gdW5tb3VudGVkLlxuICAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoIW5vZGUpIHJldHVybjtcbiAgICAgICAgY29udGV4dC5sYXllcnMuZGVsZXRlKG5vZGUpO1xuICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgIH07XG4gICAgfSwgW25vZGUsIGNvbnRleHRdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVVcGRhdGUgPSAoKSA9PiBmb3JjZSh7fSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKENPTlRFWFRfVVBEQVRFLCBoYW5kbGVVcGRhdGUpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgIHsuLi5sYXllclByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWRcbiAgICAgICAgICAgID8gaXNQb2ludGVyRXZlbnRzRW5hYmxlZFxuICAgICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIH19XG4gICAgICAgIG9uRm9jdXNDYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uRm9jdXNDYXB0dXJlKX1cbiAgICAgICAgb25CbHVyQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uQmx1ckNhcHR1cmUpfVxuICAgICAgICBvblBvaW50ZXJEb3duQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcHJvcHMub25Qb2ludGVyRG93bkNhcHR1cmUsXG4gICAgICAgICAgcG9pbnRlckRvd25PdXRzaWRlLm9uUG9pbnRlckRvd25DYXB0dXJlXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkRpc21pc3NhYmxlTGF5ZXIuZGlzcGxheU5hbWUgPSBESVNNSVNTQUJMRV9MQVlFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaXNtaXNzYWJsZUxheWVyQnJhbmNoXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEJSQU5DSF9OQU1FID0gJ0Rpc21pc3NhYmxlTGF5ZXJCcmFuY2gnO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRGlzbWlzc2FibGVMYXllckJyYW5jaFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgRGlzbWlzc2FibGVMYXllckJyYW5jaCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50LFxuICBEaXNtaXNzYWJsZUxheWVyQnJhbmNoUHJvcHNcbj4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGlzbWlzc2FibGVMYXllckNvbnRleHQpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8RGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb250ZXh0LmJyYW5jaGVzLmFkZChub2RlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXMuZGVsZXRlKG5vZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250ZXh0LmJyYW5jaGVzXSk7XG5cbiAgcmV0dXJuIDxQcmltaXRpdmUuZGl2IHsuLi5wcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IC8+O1xufSk7XG5cbkRpc21pc3NhYmxlTGF5ZXJCcmFuY2guZGlzcGxheU5hbWUgPSBCUkFOQ0hfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBQb2ludGVyRXZlbnQgfT47XG50eXBlIEZvY3VzT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBGb2N1c0V2ZW50IH0+O1xuXG4vKipcbiAqIExpc3RlbnMgZm9yIGBwb2ludGVyZG93bmAgb3V0c2lkZSBhIHJlYWN0IHN1YnRyZWUuIFdlIHVzZSBgcG9pbnRlcmRvd25gIHJhdGhlciB0aGFuIGBwb2ludGVydXBgXG4gKiB0byBtaW1pYyBsYXllciBkaXNtaXNzaW5nIGJlaGF2aW91ciBwcmVzZW50IGluIE9TLlxuICogUmV0dXJucyBwcm9wcyB0byBwYXNzIHRvIHRoZSBub2RlIHdlIHdhbnQgdG8gY2hlY2sgZm9yIG91dHNpZGUgZXZlbnRzLlxuICovXG5mdW5jdGlvbiB1c2VQb2ludGVyRG93bk91dHNpZGUoXG4gIG9uUG9pbnRlckRvd25PdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCkgPT4gdm9pZCxcbiAgb3duZXJEb2N1bWVudDogRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudFxuKSB7XG4gIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9IHVzZUNhbGxiYWNrUmVmKG9uUG9pbnRlckRvd25PdXRzaWRlKSBhcyBFdmVudExpc3RlbmVyO1xuICBjb25zdCBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVDbGlja1JlZiA9IFJlYWN0LnVzZVJlZigoKSA9PiB7fSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCkge1xuICAgICAgICAgIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICBQT0lOVEVSX0RPV05fT1VUU0lERSxcbiAgICAgICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAgIGV2ZW50RGV0YWlsLFxuICAgICAgICAgICAgeyBkaXNjcmV0ZTogdHJ1ZSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiB0b3VjaCBkZXZpY2VzLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGEgY2xpY2sgZXZlbnQgYmVjYXVzZSBicm93c2VycyBpbXBsZW1lbnRcbiAgICAgICAgICogYSB+MzUwbXMgZGVsYXkgYmV0d2VlbiB0aGUgdGltZSB0aGUgdXNlciBzdG9wcyB0b3VjaGluZyB0aGUgZGlzcGxheSBhbmQgd2hlbiB0aGVcbiAgICAgICAgICogYnJvd3NlciBleGVjdXRyZXMgZXZlbnRzLiBXZSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCByZWFjdGl2YXRlIHBvaW50ZXItZXZlbnRzIHdpdGhpblxuICAgICAgICAgKiB0aGlzIHRpbWVmcmFtZSBvdGhlcndpc2UgdGhlIGJyb3dzZXIgbWF5IGV4ZWN1dGUgZXZlbnRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBwcmV2ZW50ZWQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEFkZGl0aW9uYWxseSwgdGhpcyBhbHNvIGxldHMgdXMgZGVhbCBhdXRvbWF0aWNhbGx5IHdpdGggY2FuY2VsbGF0aW9ucyB3aGVuIGEgY2xpY2sgZXZlbnRcbiAgICAgICAgICogaXNuJ3QgcmFpc2VkIGJlY2F1c2UgdGhlIHBhZ2Ugd2FzIGNvbnNpZGVyZWQgc2Nyb2xsZWQvZHJhZy1zY3JvbGxlZCwgbG9uZy1wcmVzc2VkLCBldGMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgaXMgd2h5IHdlIGFsc28gY29udGludW91c2x5IHJlbW92ZSB0aGUgcHJldmlvdXMgbGlzdGVuZXIsIGJlY2F1c2Ugd2UgY2Fubm90IGJlXG4gICAgICAgICAqIGNlcnRhaW4gdGhhdCBpdCB3YXMgcmFpc2VkLCBhbmQgdGhlcmVmb3JlIGNsZWFuZWQtdXAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQ7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lciBpbiBjYXNlIHRoZSBvdXRzaWRlIGNsaWNrIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMTcxXG4gICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBpZiB0aGlzIGhvb2sgZXhlY3V0ZXMgaW4gYSBjb21wb25lbnQgdGhhdCBtb3VudHMgdmlhIGEgYHBvaW50ZXJkb3duYCBldmVudCwgdGhlIGV2ZW50XG4gICAgICogd291bGQgYnViYmxlIHVwIHRvIHRoZSBkb2N1bWVudCBhbmQgdHJpZ2dlciBhIGBwb2ludGVyRG93bk91dHNpZGVgIGV2ZW50LiBXZSBhdm9pZFxuICAgICAqIHRoaXMgYnkgZGVsYXlpbmcgdGhlIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdHJhdGlvbiBvbiB0aGUgZG9jdW1lbnQuXG4gICAgICogVGhpcyBpcyBub3QgUmVhY3Qgc3BlY2lmaWMsIGJ1dCByYXRoZXIgaG93IHRoZSBET00gd29ya3MsIGllOlxuICAgICAqIGBgYFxuICAgICAqIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdJIHdpbGwgbG9nJyk7XG4gICAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ0kgd2lsbCBhbHNvIGxvZycpO1xuICAgICAqICAgfSlcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgfTtcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZV0pO1xuXG4gIHJldHVybiB7XG4gICAgLy8gZW5zdXJlcyB3ZSBjaGVjayBSZWFjdCBjb21wb25lbnQgdHJlZSAobm90IGp1c3QgRE9NIHRyZWUpXG4gICAgb25Qb2ludGVyRG93bkNhcHR1cmU6ICgpID0+IChpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWUpLFxuICB9O1xufVxuXG4vKipcbiAqIExpc3RlbnMgZm9yIHdoZW4gZm9jdXMgaGFwcGVucyBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgcm9vdCAobm9kZSkgb2YgdGhlIHN1YnRyZWUgd2Ugd2FudCB0byBjaGVjay5cbiAqL1xuZnVuY3Rpb24gdXNlRm9jdXNPdXRzaWRlKFxuICBvbkZvY3VzT3V0c2lkZT86IChldmVudDogRm9jdXNPdXRzaWRlRXZlbnQpID0+IHZvaWQsXG4gIG93bmVyRG9jdW1lbnQ6IERvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnRcbikge1xuICBjb25zdCBoYW5kbGVGb2N1c091dHNpZGUgPSB1c2VDYWxsYmFja1JlZihvbkZvY3VzT3V0c2lkZSkgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgY29uc3QgaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldCAmJiAhaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0geyBvcmlnaW5hbEV2ZW50OiBldmVudCB9O1xuICAgICAgICBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50KEZPQ1VTX09VVFNJREUsIGhhbmRsZUZvY3VzT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcbiAgICAgICAgICBkaXNjcmV0ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXMpO1xuICAgIHJldHVybiAoKSA9PiBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1cyk7XG4gIH0sIFtvd25lckRvY3VtZW50LCBoYW5kbGVGb2N1c091dHNpZGVdKTtcblxuICByZXR1cm4ge1xuICAgIG9uRm9jdXNDYXB0dXJlOiAoKSA9PiAoaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZSksXG4gICAgb25CbHVyQ2FwdHVyZTogKCkgPT4gKGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hVcGRhdGUoKSB7XG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KENPTlRFWFRfVVBEQVRFKTtcbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQ8RSBleHRlbmRzIEN1c3RvbUV2ZW50LCBPcmlnaW5hbEV2ZW50IGV4dGVuZHMgRXZlbnQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGhhbmRsZXI6ICgoZXZlbnQ6IEUpID0+IHZvaWQpIHwgdW5kZWZpbmVkLFxuICBkZXRhaWw6IHsgb3JpZ2luYWxFdmVudDogT3JpZ2luYWxFdmVudCB9ICYgKEUgZXh0ZW5kcyBDdXN0b21FdmVudDxpbmZlciBEPiA/IEQgOiBuZXZlciksXG4gIHsgZGlzY3JldGUgfTogeyBkaXNjcmV0ZTogYm9vbGVhbiB9XG4pIHtcbiAgY29uc3QgdGFyZ2V0ID0gZGV0YWlsLm9yaWdpbmFsRXZlbnQudGFyZ2V0O1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChuYW1lLCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlLCBkZXRhaWwgfSk7XG4gIGlmIChoYW5kbGVyKSB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcblxuICBpZiAoZGlzY3JldGUpIHtcbiAgICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCk7XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG59XG5cbmNvbnN0IFJvb3QgPSBEaXNtaXNzYWJsZUxheWVyO1xuY29uc3QgQnJhbmNoID0gRGlzbWlzc2FibGVMYXllckJyYW5jaDtcblxuZXhwb3J0IHtcbiAgRGlzbWlzc2FibGVMYXllcixcbiAgRGlzbWlzc2FibGVMYXllckJyYW5jaCxcbiAgLy9cbiAgUm9vdCxcbiAgQnJhbmNoLFxufTtcbmV4cG9ydCB0eXBlIHsgRGlzbWlzc2FibGVMYXllclByb3BzIH07XG4iXSwibmFtZXMiOlsibm9kZSIsImhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/dist/index.mjs": /*!*****************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***! \*****************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ FocusScope),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ FocusScope,Root auto */ var _s = $RefreshSig$();\n// packages/react/focus-scope/src/focus-scope.tsx\n\n\n\n\n\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props;\n const [container, setContainer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"FocusScope.useComposedRefs[composedRefs]\": (node)=>setContainer(node)\n }[\"FocusScope.useComposedRefs[composedRefs]\"]);\n const focusScope = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (trapped) {\n let handleFocusIn2 = {\n \"FocusScope.useEffect.handleFocusIn2\": function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusIn2\"], handleFocusOut2 = {\n \"FocusScope.useEffect.handleFocusOut2\": function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusOut2\"], handleMutations2 = {\n \"FocusScope.useEffect.handleMutations2\": function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations){\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n }[\"FocusScope.useEffect.handleMutations2\"];\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, {\n childList: true,\n subtree: true\n });\n return ({\n \"FocusScope.useEffect\": ()=>{\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n trapped,\n container,\n focusScope.paused\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return ({\n \"FocusScope.useEffect\": ()=>{\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout({\n \"FocusScope.useEffect\": ()=>{\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }\n }[\"FocusScope.useEffect\"], 0);\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n container,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"FocusScope.useCallback[handleKeyDown]\": (event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, {\n select: true\n });\n }\n }\n }\n }\n }[\"FocusScope.useCallback[handleKeyDown]\"], [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n tabIndex: -1,\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: handleKeyDown\n });\n}, \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c1 = FocusScope;\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements){\n if (!isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction isHidden(node, param) {\n let { upTo } = param;\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while(node){\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add (focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope === null || activeFocusScope === void 0 ? void 0 : activeFocusScope.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack_;\n stack = arrayRemove(stack, focusScope);\n (_stack_ = stack[0]) === null || _stack_ === void 0 ? void 0 : _stack_.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item)=>item.tagName !== \"A\");\n}\nvar Root = FocusScope;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"FocusScope$React.forwardRef\");\n$RefreshReg$(_c1, \"FocusScope\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDTjtBQUNLO0FBd00zQjtBQXRNSixJQUFNLHFCQUFxQjtBQUMzQixJQUFNLHVCQUF1QjtBQUM3QixJQUFNLGdCQUFnQjtJQUFFLFNBQVM7SUFBTyxZQUFZO0FBQUs7QUFRekQsSUFBTSxtQkFBbUI7QUFnQ3pCLElBQU0sOEJBQW1CLHNEQUErQyxDQUFDLE9BQU87O0lBQzlFLE1BQU0sRUFDSixPQUFPLE9BQ1AsVUFBVSxPQUNWLGtCQUFrQixzQkFDbEIsb0JBQW9CLHdCQUNwQixHQUFHLFlBQ0wsR0FBSTtJQUNKLE1BQU0sQ0FBQyxXQUFXLFlBQVksSUFBVSw0Q0FBNkIsSUFBSTtJQUN6RSxNQUFNLG1CQUFtQixnRkFBYyxDQUFDLG9CQUFvQjtJQUM1RCxNQUFNLHFCQUFxQixnRkFBYyxDQUFDLHNCQUFzQjtJQUNoRSxNQUFNLHdCQUE4QiwwQ0FBMkIsSUFBSTtJQUNuRSxNQUFNLGVBQWUsNkVBQWUsQ0FBQztvREFBYyxDQUFDLE9BQVMsYUFBYSxJQUFJLENBQUM7O0lBRS9FLE1BQU0sYUFBbUIsMENBQU87UUFDOUIsUUFBUTtRQUNSLFFBQVE7WUFDTixLQUFLLFNBQVM7UUFDaEI7UUFDQSxTQUFTO1lBQ1AsS0FBSyxTQUFTO1FBQ2hCO0lBQ0YsQ0FBQyxFQUFFO0lBR0c7Z0NBQVU7WUFDZCxJQUFJLFNBQVM7Z0JBQ1gsSUFBU0E7MkRBQVQsU0FBdUIsT0FBbUI7d0JBQ3hDLElBQUksV0FBVyxVQUFVLENBQUMsVUFBVzt3QkFDckMsTUFBTSxTQUFTLE1BQU07d0JBQ3JCLElBQUksVUFBVSxTQUFTLE1BQU0sR0FBRzs0QkFDOUIsc0JBQXNCLFVBQVU7d0JBQ2xDLE9BQU87NEJBQ0wsTUFBTSxz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WUFBMkI7WUFFN0IsTUFBTSxtQkFBbUIsTUFBTSxDQUFDO1lBQ2hDLElBQUksZUFBZSxrQkFBa0I7Z0JBQ25DLHFGQUFrQixNQUFNO1lBQzFCO1lBRUEsUUFBUSxZQUFZLE9BQU8sVUFBVTtZQUNyQyxNQUFNLFFBQVEsVUFBVTtRQUMxQjtRQUVBLFFBQU8sWUFBMkI7Z0JBRWhDO1lBREEsUUFBUSxZQUFZLE9BQU8sVUFBVTthQUNyQyxnQkFBTSxDQUFDLGVBQVAsc0NBQVUsT0FBTztRQUNuQjtJQUNGO0FBQ0Y7QUFFQSxTQUFTLFlBQWUsT0FBWSxNQUFTO0lBQzNDLE1BQU0sZUFBZSxDQUFDO1dBQUcsS0FBSztLQUFBO0lBQzlCLE1BQU0sUUFBUSxhQUFhLFFBQVEsSUFBSTtJQUN2QyxJQUFJLFVBQVUsSUFBSTtRQUNoQixhQUFhLE9BQU8sT0FBTyxDQUFDO0lBQzlCO0lBQ0EsT0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLE9BQXNCO0lBQ3pDLE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBUyxLQUFLLFlBQVksR0FBRztBQUNwRDtBQUVBLElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvZm9jdXMtc2NvcGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcblxuY29uc3QgQVVUT0ZPQ1VTX09OX01PVU5UID0gJ2ZvY3VzU2NvcGUuYXV0b0ZvY3VzT25Nb3VudCc7XG5jb25zdCBBVVRPRk9DVVNfT05fVU5NT1VOVCA9ICdmb2N1c1Njb3BlLmF1dG9Gb2N1c09uVW5tb3VudCc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG50eXBlIEZvY3VzYWJsZVRhcmdldCA9IEhUTUxFbGVtZW50IHwgeyBmb2N1cygpOiB2b2lkIH07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRk9DVVNfU0NPUEVfTkFNRSA9ICdGb2N1c1Njb3BlJztcblxudHlwZSBGb2N1c1Njb3BlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRm9jdXNTY29wZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRhYmJpbmcgZnJvbSBsYXN0IGl0ZW0gd2lsbCBmb2N1cyBmaXJzdCB0YWJiYWJsZVxuICAgKiBhbmQgc2hpZnQrdGFiIGZyb20gZmlyc3QgaXRlbSB3aWxsIGZvY3VzIGxhc3QgdGFiYWJibGUuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGxvb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgZm9jdXMgY2Fubm90IGVzY2FwZSB0aGUgZm9jdXMgc2NvcGUgdmlhIGtleWJvYXJkLFxuICAgKiBwb2ludGVyLCBvciBhIHByb2dyYW1tYXRpYyBmb2N1cy5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgdHJhcHBlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBtb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uTW91bnRBdXRvRm9jdXM/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gdW5tb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uVW5tb3VudEF1dG9Gb2N1cz86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEZvY3VzU2NvcGUgPSBSZWFjdC5mb3J3YXJkUmVmPEZvY3VzU2NvcGVFbGVtZW50LCBGb2N1c1Njb3BlUHJvcHM+KChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb29wID0gZmFsc2UsXG4gICAgdHJhcHBlZCA9IGZhbHNlLFxuICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uTW91bnRBdXRvRm9jdXNQcm9wLFxuICAgIG9uVW5tb3VudEF1dG9Gb2N1czogb25Vbm1vdW50QXV0b0ZvY3VzUHJvcCxcbiAgICAuLi5zY29wZVByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2NvbnRhaW5lciwgc2V0Q29udGFpbmVyXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG9uTW91bnRBdXRvRm9jdXMgPSB1c2VDYWxsYmFja1JlZihvbk1vdW50QXV0b0ZvY3VzUHJvcCk7XG4gIGNvbnN0IG9uVW5tb3VudEF1dG9Gb2N1cyA9IHVzZUNhbGxiYWNrUmVmKG9uVW5tb3VudEF1dG9Gb2N1c1Byb3ApO1xuICBjb25zdCBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRhaW5lcihub2RlKSk7XG5cbiAgY29uc3QgZm9jdXNTY29wZSA9IFJlYWN0LnVzZVJlZih7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwYXVzZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICB9LFxuICAgIHJlc3VtZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgfSxcbiAgfSkuY3VycmVudDtcblxuICAvLyBUYWtlcyBjYXJlIG9mIHRyYXBwaW5nIGZvY3VzIGlmIGZvY3VzIGlzIG1vdmVkIG91dHNpZGUgcHJvZ3JhbW1hdGljYWxseSBmb3IgZXhhbXBsZVxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmFwcGVkKSB7XG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCB8fCAhY29udGFpbmVyKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChjb250YWluZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gdGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c091dChldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgLy8gQSBgZm9jdXNvdXRgIGV2ZW50IHdpdGggYSBgbnVsbGAgYHJlbGF0ZWRUYXJnZXRgIHdpbGwgaGFwcGVuIGluIGF0IGxlYXN0IHR3byBjYXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gV2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBhcHAvdGFicy93aW5kb3dzL3RoZSBicm93c2VyIGl0c2VsZiBsb3NlcyBmb2N1cy5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgd2hlbiB0aGUgZm9jdXNlZCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBsZXQgdGhlIGJyb3dzZXIgZG8gaXRzIHRoaW5nIGhlcmUgYmVjYXVzZTpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gVGhlIGJyb3dzZXIgYWxyZWFkeSBrZWVwcyBhIG1lbW9yeSBvZiB3aGF0J3MgZm9jdXNlZCBmb3Igd2hlbiB0aGUgcGFnZSBnZXRzIHJlZm9jdXNlZC5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgaWYgd2UgdHJ5IHRvIGZvY3VzIHRoZSBkZWxldGVkIGZvY3VzZWQgZWxlbWVudCAoYXMgcGVyIGJlbG93KSwgaXRcbiAgICAgICAgLy8gICAgdGhyb3dzIHRoZSBDUFUgdG8gMTAwJSwgc28gd2UgYXZvaWQgZG9pbmcgYW55dGhpbmcgZm9yIHRoaXMgcmVhc29uIGhlcmUgdG9vLlxuICAgICAgICBpZiAocmVsYXRlZFRhcmdldCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIElmIHRoZSBmb2N1cyBoYXMgbW92ZWQgdG8gYW4gYWN0dWFsIGxlZ2l0aW1hdGUgZWxlbWVudCAoYHJlbGF0ZWRUYXJnZXQgIT09IG51bGxgKVxuICAgICAgICAvLyB0aGF0IGlzIG91dHNpZGUgdGhlIGNvbnRhaW5lciwgd2UgbW92ZSBmb2N1cyB0byB0aGUgbGFzdCB2YWxpZCBmb2N1c2VkIGVsZW1lbnQgaW5zaWRlLlxuICAgICAgICBpZiAoIWNvbnRhaW5lci5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBmb2N1c2VkIGVsZW1lbnQgZ2V0cyByZW1vdmVkIGZyb20gdGhlIERPTSwgYnJvd3NlcnMgbW92ZSBmb2N1c1xuICAgICAgLy8gYmFjayB0byB0aGUgZG9jdW1lbnQuYm9keS4gSW4gdGhpcyBjYXNlLCB3ZSBtb3ZlIGZvY3VzIHRvIHRoZSBjb250YWluZXJcbiAgICAgIC8vIHRvIGtlZXAgZm9jdXMgdHJhcHBlZCBjb3JyZWN0bHkuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVNdXRhdGlvbnMobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCkgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0KTtcbiAgICAgIGNvbnN0IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVNdXRhdGlvbnMpO1xuICAgICAgaWYgKGNvbnRhaW5lcikgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lciwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dCk7XG4gICAgICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFt0cmFwcGVkLCBjb250YWluZXIsIGZvY3VzU2NvcGUucGF1c2VkXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBmb2N1c1Njb3Blc1N0YWNrLmFkZChmb2N1c1Njb3BlKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgY29uc3QgaGFzRm9jdXNlZENhbmRpZGF0ZSA9IGNvbnRhaW5lci5jb250YWlucyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWhhc0ZvY3VzZWRDYW5kaWRhdGUpIHtcbiAgICAgICAgY29uc3QgbW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuICAgICAgICBjb250YWluZXIuZGlzcGF0Y2hFdmVudChtb3VudEV2ZW50KTtcbiAgICAgICAgaWYgKCFtb3VudEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBmb2N1c0ZpcnN0KHJlbW92ZUxpbmtzKGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpKSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX01PVU5ULCBvbk1vdW50QXV0b0ZvY3VzKTtcblxuICAgICAgICAvLyBXZSBoaXQgYSByZWFjdCBidWcgKGZpeGVkIGluIHYxNykgd2l0aCBmb2N1c2luZyBpbiB1bm1vdW50LlxuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlbGF5IHRoZSBmb2N1cyBhIGxpdHRsZSB0byBnZXQgYXJvdW5kIGl0IGZvciBub3cuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzg5NFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB1bm1vdW50RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgIGNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KHVubW91bnRFdmVudCk7XG4gICAgICAgICAgaWYgKCF1bm1vdW50RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgZm9jdXMocHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID8/IGRvY3VtZW50LmJvZHksIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGlzdGVuZXIgYWZ0ZXIgd2UgYGRpc3BhdGNoRXZlbnRgXG4gICAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG5cbiAgICAgICAgICBmb2N1c1Njb3Blc1N0YWNrLnJlbW92ZShmb2N1c1Njb3BlKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2NvbnRhaW5lciwgb25Nb3VudEF1dG9Gb2N1cywgb25Vbm1vdW50QXV0b0ZvY3VzLCBmb2N1c1Njb3BlXSk7XG5cbiAgLy8gVGFrZXMgY2FyZSBvZiBsb29waW5nIGZvY3VzICh3aGVuIHRhYmJpbmcgd2hpbHN0IGF0IHRoZSBlZGdlcylcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFsb29wICYmICF0cmFwcGVkKSByZXR1cm47XG4gICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQpIHJldHVybjtcblxuICAgICAgY29uc3QgaXNUYWJLZXkgPSBldmVudC5rZXkgPT09ICdUYWInICYmICFldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7XG4gICAgICBjb25zdCBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICBpZiAoaXNUYWJLZXkgJiYgZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgW2ZpcnN0LCBsYXN0XSA9IGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyKTtcbiAgICAgICAgY29uc3QgaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSA9IGZpcnN0ICYmIGxhc3Q7XG5cbiAgICAgICAgLy8gd2UgY2FuIG9ubHkgd3JhcCBmb2N1cyBpZiB3ZSBoYXZlIHRhYmJhYmxlIGVkZ2VzXG4gICAgICAgIGlmICghaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSkge1xuICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCA9PT0gY29udGFpbmVyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGxhc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAobG9vcCkgZm9jdXMoZmlyc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGZpcnN0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKGxvb3ApIGZvY3VzKGxhc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvb3AsIHRyYXBwZWQsIGZvY3VzU2NvcGUucGF1c2VkXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5kaXYgdGFiSW5kZXg9ey0xfSB7Li4uc2NvcGVQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0gLz5cbiAgKTtcbn0pO1xuXG5Gb2N1c1Njb3BlLmRpc3BsYXlOYW1lID0gRk9DVVNfU0NPUEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVXRpbHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBdHRlbXB0cyBmb2N1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBpbiBhIGxpc3Qgb2YgY2FuZGlkYXRlcy5cbiAqIFN0b3BzIHdoZW4gZm9jdXMgaGFzIGFjdHVhbGx5IG1vdmVkLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHsgc2VsZWN0ID0gZmFsc2UgfSA9IHt9KSB7XG4gIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBmb2N1cyhjYW5kaWRhdGUsIHsgc2VsZWN0IH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGFuZCBsYXN0IHRhYmJhYmxlIGVsZW1lbnRzIGluc2lkZSBhIGNvbnRhaW5lci5cbiAqL1xuZnVuY3Rpb24gZ2V0VGFiYmFibGVFZGdlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKTtcbiAgY29uc3QgZmlyc3QgPSBmaW5kVmlzaWJsZShjYW5kaWRhdGVzLCBjb250YWluZXIpO1xuICBjb25zdCBsYXN0ID0gZmluZFZpc2libGUoY2FuZGlkYXRlcy5yZXZlcnNlKCksIGNvbnRhaW5lcik7XG4gIHJldHVybiBbZmlyc3QsIGxhc3RdIGFzIGNvbnN0O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIHBvdGVudGlhbCB0YWJiYWJsZSBjYW5kaWRhdGVzLlxuICpcbiAqIE5PVEU6IFRoaXMgaXMgb25seSBhIGNsb3NlIGFwcHJveGltYXRpb24uIEZvciBleGFtcGxlIGl0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgY2FzZXMgbGlrZSB3aGVuXG4gKiBlbGVtZW50cyBhcmUgbm90IHZpc2libGUuIFRoaXMgY2Fubm90IGJlIHdvcmtlZCBvdXQgZWFzaWx5IGJ5IGp1c3QgcmVhZGluZyBhIHByb3BlcnR5LCBidXQgcmF0aGVyXG4gKiBuZWNlc3NpdGF0ZSBydW50aW1lIGtub3dsZWRnZSAoY29tcHV0ZWQgc3R5bGVzLCBldGMpLiBXZSBkZWFsIHdpdGggdGhlc2UgY2FzZXMgc2VwYXJhdGVseS5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9UcmVlV2Fsa2VyXG4gKiBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3JkL2ZvY3VzLWxheWVycy9ibG9iL21hc3Rlci9zcmMvdXRpbC93cmFwRm9jdXMudHN4I0wxXG4gKi9cbmZ1bmN0aW9uIGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IG5vZGVzOiBIVE1MRWxlbWVudFtdID0gW107XG4gIGNvbnN0IHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29udGFpbmVyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgIGFjY2VwdE5vZGU6IChub2RlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzSGlkZGVuSW5wdXQgPSBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgbm9kZS50eXBlID09PSAnaGlkZGVuJztcbiAgICAgIGlmIChub2RlLmRpc2FibGVkIHx8IG5vZGUuaGlkZGVuIHx8IGlzSGlkZGVuSW5wdXQpIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgLy8gYC50YWJJbmRleGAgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS4gSXQgd29ya3Mgb24gdGhlXG4gICAgICAvLyBydW50aW1lJ3MgdW5kZXJzdGFuZGluZyBvZiB0YWJiYWJpbGl0eSwgc28gdGhpcyBhdXRvbWF0aWNhbGx5IGFjY291bnRzXG4gICAgICAvLyBmb3IgYW55IGtpbmQgb2YgZWxlbWVudCB0aGF0IGNvdWxkIGJlIHRhYmJlZCB0by5cbiAgICAgIHJldHVybiBub2RlLnRhYkluZGV4ID49IDAgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH0sXG4gIH0pO1xuICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIG5vZGVzLnB1c2god2Fsa2VyLmN1cnJlbnROb2RlIGFzIEhUTUxFbGVtZW50KTtcbiAgLy8gd2UgZG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBvcmRlciBvZiBub2RlcyB3aXRoIHBvc2l0aXZlIGB0YWJJbmRleGAgYXMgaXRcbiAgLy8gaGluZGVycyBhY2Nlc3NpYmlsaXR5IHRvIGhhdmUgdGFiIG9yZGVyIGRpZmZlcmVudCBmcm9tIHZpc3VhbCBvcmRlci5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IHZpc2libGUgZWxlbWVudCBpbiBhIGxpc3QuXG4gKiBOT1RFOiBPbmx5IGNoZWNrcyB2aXNpYmlsaXR5IHVwIHRvIHRoZSBgY29udGFpbmVyYC5cbiAqL1xuZnVuY3Rpb24gZmluZFZpc2libGUoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgLy8gd2Ugc3RvcCBjaGVja2luZyBpZiBpdCdzIGhpZGRlbiBhdCB0aGUgYGNvbnRhaW5lcmAgbGV2ZWwgKGV4Y2x1ZGluZylcbiAgICBpZiAoIWlzSGlkZGVuKGVsZW1lbnQsIHsgdXBUbzogY29udGFpbmVyIH0pKSByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0hpZGRlbihub2RlOiBIVE1MRWxlbWVudCwgeyB1cFRvIH06IHsgdXBUbz86IEhUTUxFbGVtZW50IH0pIHtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHJldHVybiB0cnVlO1xuICB3aGlsZSAobm9kZSkge1xuICAgIC8vIHdlIHN0b3AgYXQgYHVwVG9gIChleGNsdWRpbmcgaXQpXG4gICAgaWYgKHVwVG8gIT09IHVuZGVmaW5lZCAmJiBub2RlID09PSB1cFRvKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheSA9PT0gJ25vbmUnKSByZXR1cm4gdHJ1ZTtcbiAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudDogYW55KTogZWxlbWVudCBpcyBGb2N1c2FibGVUYXJnZXQgJiB7IHNlbGVjdDogKCkgPT4gdm9pZCB9IHtcbiAgcmV0dXJuIGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmICdzZWxlY3QnIGluIGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGZvY3VzKGVsZW1lbnQ/OiBGb2N1c2FibGVUYXJnZXQgfCBudWxsLCB7IHNlbGVjdCA9IGZhbHNlIH0gPSB7fSkge1xuICAvLyBvbmx5IGZvY3VzIGlmIHRoYXQgZWxlbWVudCBpcyBmb2N1c2FibGVcbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cykge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgLy8gTk9URTogd2UgcHJldmVudCBzY3JvbGxpbmcgb24gZm9jdXMsIHRvIG1pbmltaXplIGphcnJpbmcgdHJhbnNpdGlvbnMgZm9yIHVzZXJzXG4gICAgZWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgLy8gb25seSBzZWxlY3QgaWYgaXRzIG5vdCB0aGUgc2FtZSBlbGVtZW50LCBpdCBzdXBwb3J0cyBzZWxlY3Rpb24gYW5kIHdlIG5lZWQgdG8gc2VsZWN0XG4gICAgaWYgKGVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAmJiBpc1NlbGVjdGFibGVJbnB1dChlbGVtZW50KSAmJiBzZWxlY3QpXG4gICAgICBlbGVtZW50LnNlbGVjdCgpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGUgc3RhY2tcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBGb2N1c1Njb3BlQVBJID0geyBwYXVzZWQ6IGJvb2xlYW47IHBhdXNlKCk6IHZvaWQ7IHJlc3VtZSgpOiB2b2lkIH07XG5jb25zdCBmb2N1c1Njb3Blc1N0YWNrID0gY3JlYXRlRm9jdXNTY29wZXNTdGFjaygpO1xuXG5mdW5jdGlvbiBjcmVhdGVGb2N1c1Njb3Blc1N0YWNrKCkge1xuICAvKiogQSBzdGFjayBvZiBmb2N1cyBzY29wZXMsIHdpdGggdGhlIGFjdGl2ZSBvbmUgYXQgdGhlIHRvcCAqL1xuICBsZXQgc3RhY2s6IEZvY3VzU2NvcGVBUElbXSA9IFtdO1xuXG4gIHJldHVybiB7XG4gICAgYWRkKGZvY3VzU2NvcGU6IEZvY3VzU2NvcGVBUEkpIHtcbiAgICAgIC8vIHBhdXNlIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZvY3VzIHNjb3BlIChhdCB0aGUgdG9wIG9mIHRoZSBzdGFjaylcbiAgICAgIGNvbnN0IGFjdGl2ZUZvY3VzU2NvcGUgPSBzdGFja1swXTtcbiAgICAgIGlmIChmb2N1c1Njb3BlICE9PSBhY3RpdmVGb2N1c1Njb3BlKSB7XG4gICAgICAgIGFjdGl2ZUZvY3VzU2NvcGU/LnBhdXNlKCk7XG4gICAgICB9XG4gICAgICAvLyByZW1vdmUgaW4gY2FzZSBpdCBhbHJlYWR5IGV4aXN0cyAoYmVjYXVzZSB3ZSdsbCByZS1hZGQgaXQgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2spXG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrLnVuc2hpZnQoZm9jdXNTY29wZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZShmb2N1c1Njb3BlOiBGb2N1c1Njb3BlQVBJKSB7XG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrWzBdPy5yZXN1bWUoKTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBhcnJheVJlbW92ZTxUPihhcnJheTogVFtdLCBpdGVtOiBUKSB7XG4gIGNvbnN0IHVwZGF0ZWRBcnJheSA9IFsuLi5hcnJheV07XG4gIGNvbnN0IGluZGV4ID0gdXBkYXRlZEFycmF5LmluZGV4T2YoaXRlbSk7XG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICB1cGRhdGVkQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdXBkYXRlZEFycmF5O1xufVxuXG5mdW5jdGlvbiByZW1vdmVMaW5rcyhpdGVtczogSFRNTEVsZW1lbnRbXSkge1xuICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRhZ05hbWUgIT09ICdBJyk7XG59XG5cbmNvbnN0IFJvb3QgPSBGb2N1c1Njb3BlO1xuXG5leHBvcnQge1xuICBGb2N1c1Njb3BlLFxuICAvL1xuICBSb290LFxufTtcbmV4cG9ydCB0eXBlIHsgRm9jdXNTY29wZVByb3BzIH07XG4iXSwibmFtZXMiOlsiaGFuZGxlRm9jdXNJbiIsImhhbmRsZUZvY3VzT3V0IiwiaGFuZGxlTXV0YXRpb25zIiwiY29udGFpbmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.mjs": /*!************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.mjs ***! \************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Portal,Root auto */ var _s = $RefreshSig$();\n// packages/react/portal/src/portal.tsx\n\n\n\n\n\nvar PORTAL_NAME = \"Portal\";\nvar Portal = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis_document, _globalThis;\n _s();\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)({\n \"Portal.useLayoutEffect\": ()=>setMounted(true)\n }[\"Portal.useLayoutEffect\"], []);\n const container = containerProp || mounted && ((_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : (_globalThis_document = _globalThis.document) === null || _globalThis_document === void 0 ? void 0 : _globalThis_document.body);\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...portalProps,\n ref: forwardedRef\n }), container) : null;\n}, \"FcnMiGdgWOI6sDTng8DolPv2NRo=\")), \"FcnMiGdgWOI6sDTng8DolPv2NRo=\");\n_c1 = Portal;\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Portal$React.forwardRef\");\n$RefreshReg$(_c1, \"Portal\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9ydGFsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNGO0FBQ0s7QUFDTTtBQXVCSjtBQWpCNUIsSUFBTSxjQUFjO0FBV3BCLElBQU0sdUJBQWUseURBQXVDLENBQUMsT0FBTztRQUluQjs7SUFIL0MsTUFBTSxFQUFFLFdBQVcsZUFBZSxHQUFHLFlBQVksSUFBSTtJQUNyRCxNQUFNLENBQUMsU0FBUyxVQUFVLElBQVUsNENBQVMsS0FBSztJQUNsRCxrRkFBZTtrQ0FBQyxJQUFNLFdBQVcsSUFBSTtpQ0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxZQUFZLGlCQUFrQix5SEFBdUIsc0ZBQVU7SUFDckUsT0FBTywwQkFDSCxtREFBUyxDQUFhLHVFQUFDLGdFQUFTLENBQUMsS0FBVjtRQUFlLEdBQUc7UUFBYSxLQUFLO0lBQUEsQ0FBYyxHQUFJLFNBQVMsSUFDdEY7QUFDTixDQUFDOztBQUVELE9BQU8sY0FBYztBQUlyQixJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL3BvcnRhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdQb3J0YWwnO1xuXG50eXBlIFBvcnRhbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcnRhbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY29udGFpbmVyIHdoZXJlIHRoZSBwb3J0YWxlZCBjb250ZW50IHNob3VsZCBiZSBhcHBlbmRlZC5cbiAgICovXG4gIGNvbnRhaW5lcj86IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHwgbnVsbDtcbn1cblxuY29uc3QgUG9ydGFsID0gUmVhY3QuZm9yd2FyZFJlZjxQb3J0YWxFbGVtZW50LCBQb3J0YWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjb250YWluZXI6IGNvbnRhaW5lclByb3AsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gc2V0TW91bnRlZCh0cnVlKSwgW10pO1xuICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJQcm9wIHx8IChtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5KTtcbiAgcmV0dXJuIGNvbnRhaW5lclxuICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKDxQcmltaXRpdmUuZGl2IHsuLi5wb3J0YWxQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+LCBjb250YWluZXIpXG4gICAgOiBudWxsO1xufSk7XG5cblBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBQb3J0YWw7XG5cbmV4cG9ydCB7XG4gIFBvcnRhbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs": /*!***************************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs ***! \***************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3ByaW1pdGl2ZS9zcmMvcHJpbWl0aXZlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOT0RFUyA9IFtcbiAgXCJhXCIsXG4gIFwiYnV0dG9uXCIsXG4gIFwiZGl2XCIsXG4gIFwiZm9ybVwiLFxuICBcImgyXCIsXG4gIFwiaDNcIixcbiAgXCJpbWdcIixcbiAgXCJpbnB1dFwiLFxuICBcImxhYmVsXCIsXG4gIFwibGlcIixcbiAgXCJuYXZcIixcbiAgXCJvbFwiLFxuICBcInBcIixcbiAgXCJzcGFuXCIsXG4gIFwic3ZnXCIsXG4gIFwidWxcIlxuXTtcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxudmFyIFJvb3QgPSBQcmltaXRpdmU7XG5leHBvcnQge1xuICBQcmltaXRpdmUsXG4gIFJvb3QsXG4gIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs": /*!**********************************************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs ***! \**********************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment) {\n props2.ref = forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef;\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, props2);\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNJO0FBQy9ELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBO0FBQ0EsMEJBQTBCLDJDQUFjO0FBQ3hDLGtDQUFrQyx5RUFBVztBQUM3QztBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVMsSUFBSSxVQUFVO0FBQ3BEO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpYWxvZy9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvc2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQyLCBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBTbG90ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjaGlsZHJlbkFycmF5ID0gUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IHNsb3R0YWJsZSA9IGNoaWxkcmVuQXJyYXkuZmluZChpc1Nsb3R0YWJsZSk7XG4gIGlmIChzbG90dGFibGUpIHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuO1xuICAgIGNvbnN0IG5ld0NoaWxkcmVuID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoY2hpbGQgPT09IHNsb3R0YWJsZSkge1xuICAgICAgICBpZiAoUmVhY3QuQ2hpbGRyZW4uY291bnQobmV3RWxlbWVudCkgPiAxKSByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuOiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IFJlYWN0LmNsb25lRWxlbWVudChuZXdFbGVtZW50LCB2b2lkIDAsIG5ld0NoaWxkcmVuKSA6IG51bGwgfSk7XG4gIH1cbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuIH0pO1xufSk7XG5TbG90LmRpc3BsYXlOYW1lID0gXCJTbG90XCI7XG52YXIgU2xvdENsb25lID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSBnZXRFbGVtZW50UmVmKGNoaWxkcmVuKTtcbiAgICBjb25zdCBwcm9wczIgPSBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRyZW4ucHJvcHMpO1xuICAgIGlmIChjaGlsZHJlbi50eXBlICE9PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgcHJvcHMyLnJlZiA9IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWY7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHByb3BzMik7XG4gIH1cbiAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDEgPyBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpIDogbnVsbDtcbn0pO1xuU2xvdENsb25lLmRpc3BsYXlOYW1lID0gXCJTbG90Q2xvbmVcIjtcbnZhciBTbG90dGFibGUgPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZyYWdtZW50MiwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@radix-ui/react-direction/dist/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DirectionProvider: () => (/* binding */ DirectionProvider),\n/* harmony export */ Provider: () => (/* binding */ Provider),\n/* harmony export */ useDirection: () => (/* binding */ useDirection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/direction/src/Direction.tsx\n\n\nvar DirectionContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4Qyx1QkFBdUIsZ0RBQW1CO0FBQzFDO0FBQ0EsVUFBVSxnQkFBZ0I7QUFDMUIseUJBQXlCLHNEQUFHLDhCQUE4QixzQkFBc0I7QUFDaEY7QUFDQTtBQUNBLG9CQUFvQiw2Q0FBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9kaXJlY3Rpb24vc3JjL0RpcmVjdGlvbi50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgRGlyZWN0aW9uQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbnZhciBEaXJlY3Rpb25Qcm92aWRlciA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGRpciwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEaXJlY3Rpb25Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBkaXIsIGNoaWxkcmVuIH0pO1xufTtcbmZ1bmN0aW9uIHVzZURpcmVjdGlvbihsb2NhbERpcikge1xuICBjb25zdCBnbG9iYWxEaXIgPSBSZWFjdC51c2VDb250ZXh0KERpcmVjdGlvbkNvbnRleHQpO1xuICByZXR1cm4gbG9jYWxEaXIgfHwgZ2xvYmFsRGlyIHx8IFwibHRyXCI7XG59XG52YXIgUHJvdmlkZXIgPSBEaXJlY3Rpb25Qcm92aWRlcjtcbmV4cG9ydCB7XG4gIERpcmVjdGlvblByb3ZpZGVyLFxuICBQcm92aWRlcixcbiAgdXNlRGlyZWN0aW9uXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs": /*!***********************************************************************!*\ !*** ./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ Branch),\n/* harmony export */ DismissableLayer: () => (/* binding */ DismissableLayer),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ DismissableLayerBranch),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Branch,DismissableLayer,DismissableLayerBranch,Root auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\n\n\n\n\n\n\n\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis;\n _s();\n const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n var _node_ownerDocument;\n const ownerDocument = (_node_ownerDocument = node === null || node === void 0 ? void 0 : node.ownerDocument) !== null && _node_ownerDocument !== void 0 ? _node_ownerDocument : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, {\n \"DismissableLayer.useComposedRefs[composedRefs]\": (node2)=>setNode(node2)\n }[\"DismissableLayer.useComposedRefs[composedRefs]\"]);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside]\": (event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\"]);\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 ? void 0 : onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside]\"], ownerDocument);\n const focusOutside = useFocusOutside({\n \"DismissableLayer.useFocusOutside[focusOutside]\": (event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\"]);\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 ? void 0 : onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.useFocusOutside[focusOutside]\"], ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)({\n \"DismissableLayer.useEscapeKeydown\": (event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 ? void 0 : onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n }[\"DismissableLayer.useEscapeKeydown\"], ownerDocument);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n const handleUpdate = {\n \"DismissableLayer.useEffect.handleUpdate\": ()=>force({})\n }[\"DismissableLayer.useEffect.handleUpdate\"];\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return ({\n \"DismissableLayer.useEffect\": ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate)\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n });\n}, \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n})), \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n});\n_c1 = DismissableLayer;\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayerBranch.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ({\n \"DismissableLayerBranch.useEffect\": ()=>{\n context.branches.delete(node);\n }\n })[\"DismissableLayerBranch.useEffect\"];\n }\n }\n }[\"DismissableLayerBranch.useEffect\"], [\n context.branches\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...props,\n ref: composedRefs\n });\n}, \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n})), \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n});\n_c3 = DismissableLayerBranch;\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s2();\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n \"usePointerDownOutside.useRef[handleClickRef]\": ()=>{}\n }[\"usePointerDownOutside.useRef[handleClickRef]\"]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePointerDownOutside.useEffect\": ()=>{\n const handlePointerDown = {\n \"usePointerDownOutside.useEffect.handlePointerDown\": (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = {\n \"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\": function() {\n handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\"];\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown\"];\n const timerId = window.setTimeout({\n \"usePointerDownOutside.useEffect.timerId\": ()=>{\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }\n }[\"usePointerDownOutside.useEffect.timerId\"], 0);\n return ({\n \"usePointerDownOutside.useEffect\": ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n })[\"usePointerDownOutside.useEffect\"];\n }\n }[\"usePointerDownOutside.useEffect\"], [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n_s2(usePointerDownOutside, \"M0Jqtgoae/27FfRizMxidmqs6b8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction useFocusOutside(onFocusOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s3();\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusOutside.useEffect\": ()=>{\n const handleFocus = {\n \"useFocusOutside.useEffect.handleFocus\": (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n }\n }[\"useFocusOutside.useEffect.handleFocus\"];\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return ({\n \"useFocusOutside.useEffect\": ()=>ownerDocument.removeEventListener(\"focusin\", handleFocus)\n })[\"useFocusOutside.useEffect\"];\n }\n }[\"useFocusOutside.useEffect\"], [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\n_s3(useFocusOutside, \"IjUuEsgpHwQc3lZUTypKaC1ceUQ=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, param) {\n let { discrete } = param;\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) {\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3;\n$RefreshReg$(_c, \"DismissableLayer$React.forwardRef\");\n$RefreshReg$(_c1, \"DismissableLayer\");\n$RefreshReg$(_c2, \"DismissableLayerBranch$React.forwardRef\");\n$RefreshReg$(_c3, \"DismissableLayerBranch\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ2tCO0FBQ3ZCO0FBQ0Q7QUFDRTtBQXFKM0I7QUEvSU4sSUFBTSx5QkFBeUI7QUFDL0IsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSx1QkFBdUI7QUFDN0IsSUFBTSxnQkFBZ0I7QUFFdEIsSUFBSTtBQUVKLElBQU0sd0NBQWdDLGlEQUFjO0lBQ2xELFFBQVEsb0JBQUksSUFBNkI7SUFDekMsd0NBQXdDLG9CQUFJLElBQTZCO0lBQ3pFLFVBQVUsb0JBQUksSUFBbUM7QUFDbkQsQ0FBQztBQXNDRCxJQUFNLG9DQUF5QixzREFDN0IsQ0FBQyxPQUFPO1FBWXVDOztJQVg3QyxNQUFNLEVBQ0osOEJBQThCLE9BQzlCLGlCQUNBLHNCQUNBLGdCQUNBLG1CQUNBLFdBQ0EsR0FBRyxZQUNMLEdBQUk7SUFDSixNQUFNLFVBQWdCLDhDQUFXLHVCQUF1QjtJQUN4RCxNQUFNLENBQUMsTUFBTSxPQUFPLElBQVUsNENBQXlDLElBQUk7UUFDckQ7SUFBdEIsTUFBTSx3RkFBc0IsdUtBQTZCO0lBQ3pELE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBVSw0Q0FBUyxDQUFDLENBQUM7SUFDbkMsTUFBTSxlQUFlLDZFQUFlLENBQUM7MERBQWMsQ0FBQ0EsUUFBUyxRQUFRQSxLQUFJLENBQUM7O0lBQzFFLE1BQU0sU0FBUyxNQUFNLEtBQUssUUFBUSxNQUFNO0lBQ3hDLE1BQU0sQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDO1dBQUcsUUFBUSxzQ0FBc0M7S0FBQSxDQUFFLE1BQU0sRUFBRTtJQUNuSCxNQUFNLG9EQUFvRCxPQUFPLFFBQVEsNENBQTRDO0lBQ3JILE1BQU0sUUFBUSxPQUFPLE9BQU8sUUFBUSxJQUFJLElBQUk7SUFDNUMsTUFBTSw4QkFBOEIsUUFBUSx1Q0FBdUMs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LElBQUksWUFBWSxNQUFNO1FBQUUsU0FBUztRQUFPLFlBQVk7UUFBTTtJQUFPLENBQUM7SUFDaEYsSUFBSSxRQUFTLFFBQU8saUJBQWlCLE1BQU0sU0FBMEI7UUFBRSxNQUFNO0lBQUssQ0FBQztJQUVuRixJQUFJLFVBQVU7UUFDWixzRkFBMkIsQ0FBQyxRQUFRLEtBQUs7SUFDM0MsT0FBTztRQUNMLE9BQU8sY0FBYyxLQUFLO0lBQzVCO0FBQ0Y7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLFNBQVMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL0Rpc21pc3NhYmxlTGF5ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyBQcmltaXRpdmUsIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUVzY2FwZUtleWRvd24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duJztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlzbWlzc2FibGVMYXllclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBESVNNSVNTQUJMRV9MQVlFUl9OQU1FID0gJ0Rpc21pc3NhYmxlTGF5ZXInO1xuY29uc3QgQ09OVEVYVF9VUERBVEUgPSAnZGlzbWlzc2FibGVMYXllci51cGRhdGUnO1xuY29uc3QgUE9JTlRFUl9ET1dOX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5wb2ludGVyRG93bk91dHNpZGUnO1xuY29uc3QgRk9DVVNfT1VUU0lERSA9ICdkaXNtaXNzYWJsZUxheWVyLmZvY3VzT3V0c2lkZSc7XG5cbmxldCBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzOiBzdHJpbmc7XG5cbmNvbnN0IERpc21pc3NhYmxlTGF5ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIGxheWVyczogbmV3IFNldDxEaXNtaXNzYWJsZUxheWVyRWxlbWVudD4oKSxcbiAgbGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQ6IG5ldyBTZXQ8RGlzbWlzc2FibGVMYXllckVsZW1lbnQ+KCksXG4gIGJyYW5jaGVzOiBuZXcgU2V0PERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50PigpLFxufSk7XG5cbnR5cGUgRGlzbWlzc2FibGVMYXllckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIERpc21pc3NhYmxlTGF5ZXJQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBob3Zlci9mb2N1cy9jbGljayBpbnRlcmFjdGlvbnMgd2lsbCBiZSBkaXNhYmxlZCBvbiBlbGVtZW50cyBvdXRzaWRlXG4gICAqIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuIFVzZXJzIHdpbGwgbmVlZCB0byBjbGljayB0d2ljZSBvbiBvdXRzaWRlIGVsZW1lbnRzIHRvXG4gICAqIGludGVyYWN0IHdpdGggdGhlbTogb25jZSB0byBjbG9zZSB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLCBhbmQgYWdhaW4gdG8gdHJpZ2dlciB0aGUgZWxlbWVudC5cbiAgICovXG4gIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBlc2NhcGUga2V5IGlzIGRvd24uXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkVzY2FwZUtleURvd24/OiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBhIGBwb2ludGVyZG93bmAgZXZlbnQgaGFwcGVucyBvdXRzaWRlIG9mIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvblBvaW50ZXJEb3duT3V0c2lkZT86IChldmVudDogUG9pbnRlckRvd25PdXRzaWRlRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBmb2N1cyBtb3ZlcyBvdXRzaWRlIG9mIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkZvY3VzT3V0c2lkZT86IChldmVudDogRm9jdXNPdXRzaWRlRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGFuIGludGVyYWN0aW9uIGhhcHBlbnMgb3V0c2lkZSB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBTcGVjaWZpY2FsbHksIHdoZW4gYSBgcG9pbnRlcmRvd25gIGV2ZW50IGhhcHBlbnMgb3V0c2lkZSBvciBmb2N1cyBtb3ZlcyBvdXRzaWRlIG9mIGl0LlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25JbnRlcmFjdE91dHNpZGU/OiAoZXZlbnQ6IFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50IHwgRm9jdXNPdXRzaWRlRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBIYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBgRGlzbWlzc2FibGVMYXllcmAgc2hvdWxkIGJlIGRpc21pc3NlZFxuICAgKi9cbiAgb25EaXNtaXNzPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgRGlzbWlzc2FibGVMYXllciA9IFJlYWN0LmZvcndhcmRSZWY8RGlzbWlzc2FibGVMYXllckVsZW1lbnQsIERpc21pc3NhYmxlTGF5ZXJQcm9wcz4oXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzID0gZmFsc2UsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxuICAgICAgb25JbnRlcmFjdE91dHNpZGUsXG4gICAgICBvbkRpc21pc3MsXG4gICAgICAuLi5sYXllclByb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERpc21pc3NhYmxlTGF5ZXJDb250ZXh0KTtcbiAgICBjb25zdCBbbm9kZSwgc2V0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxEaXNtaXNzYWJsZUxheWVyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSBub2RlPy5vd25lckRvY3VtZW50ID8/IGdsb2JhbFRoaXM/LmRvY3VtZW50O1xuICAgIGNvbnN0IFssIGZvcmNlXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Tm9kZShub2RlKSk7XG4gICAgY29uc3QgbGF5ZXJzID0gQXJyYXkuZnJvbShjb250ZXh0LmxheWVycyk7XG4gICAgY29uc3QgW2hpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkXSA9IFsuLi5jb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkXS5zbGljZSgtMSk7IC8vIHByZXR0aWVyLWlnbm9yZVxuICAgIGNvbnN0IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXggPSBsYXllcnMuaW5kZXhPZihoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZCk7IC8vIHByZXR0aWVyLWlnbm9yZVxuICAgIGNvbnN0IGluZGV4ID0gbm9kZSA/IGxheWVycy5pbmRleE9mKG5vZGUpIDogLTE7XG4gICAgY29uc3QgaXNCb2R5UG9pbnRlckV2ZW50c0Rpc2FibGVkID0gY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID4gMDtcbiAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNFbmFibGVkID0gaW5kZXggPj0gaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleDtcblxuICAgIGNvbnN0IHBvaW50ZXJEb3duT3V0c2lkZSA9IHVzZVBvaW50ZXJEb3duT3V0c2lkZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGlzUG9pbnRlckRvd25PbkJyYW5jaCA9IFsuLi5jb250ZXh0LmJyYW5jaGVzXS5zb21lKChicmFuY2gpID0+IGJyYW5jaC5jb250YWlucyh0YXJnZXQpKTtcbiAgICAgIGlmICghaXNQb2ludGVyRXZlbnRzRW5hYmxlZCB8fCBpc1BvaW50ZXJEb3duT25CcmFuY2gpIHJldHVybjtcbiAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgb25JbnRlcmFjdE91dHNpZGU/LihldmVudCk7XG4gICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIG9uRGlzbWlzcz8uKCk7XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG5cbiAgICBjb25zdCBmb2N1c091dHNpZGUgPSB1c2VGb2N1c091dHNpZGUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpc0ZvY3VzSW5CcmFuY2ggPSBbLi4uY29udGV4dC5icmFuY2hlc10uc29tZSgoYnJhbmNoKSA9PiBicmFuY2guY29udGFpbnModGFyZ2V0KSk7XG4gICAgICBpZiAoaXNGb2N1c0luQnJhbmNoKSByZXR1cm47XG4gICAgICBvbkZvY3VzT3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuXG4gICAgdXNlRXNjYXBlS2V5ZG93bigoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzSGlnaGVzdExheWVyID0gaW5kZXggPT09IGNvbnRleHQubGF5ZXJzLnNpemUgLSAxO1xuICAgICAgaWYgKCFpc0hpZ2hlc3RMYXllcikgcmV0dXJuO1xuICAgICAgb25Fc2NhcGVLZXlEb3duPy4oZXZlbnQpO1xuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkICYmIG9uRGlzbWlzcykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbkRpc21pc3MoKTtcbiAgICAgIH1cbiAgICB9LCBvd25lckRvY3VtZW50KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIW5vZGUpIHJldHVybjtcbiAgICAgIGlmIChkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMpIHtcbiAgICAgICAgaWYgKGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMgPSBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cztcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLmFkZChub2RlKTtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQubGF5ZXJzLmFkZChub2RlKTtcbiAgICAgIGRpc3BhdGNoVXBkYXRlKCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzICYmXG4gICAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID09PSAxXG4gICAgICAgICkge1xuICAgICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cztcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbbm9kZSwgb3duZXJEb2N1bWVudCwgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzLCBjb250ZXh0XSk7XG5cbiAgICAvKipcbiAgICAgKiBXZSBwdXJwb3NlZnVsbHkgcHJldmVudCBjb21iaW5pbmcgdGhpcyBlZmZlY3Qgd2l0aCB0aGUgYGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c2AgZWZmZWN0XG4gICAgICogYmVjYXVzZSBhIGNoYW5nZSB0byBgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzYCB3b3VsZCByZW1vdmUgdGhpcyBsYXllciBmcm9tIHRoZSBzdGFja1xuICAgICAqIGFuZCBhZGQgaXQgdG8gdGhlIGVuZCBhZ2FpbiBzbyB0aGUgbGF5ZXJpbmcgb3JkZXIgd291bGRuJ3QgYmUgX2NyZWF0aW9uIG9yZGVyXy5cbiAgICAgKiBXZSBvbmx5IHdhbnQgdGhlbSB0byBiZSByZW1vdmVkIGZyb20gY29udGV4dCBzdGFja3Mgd2hlbiB1bm1vdW50ZWQuXG4gICAgICovXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmICghbm9kZSkgcmV0dXJuO1xuICAgICAgICBjb250ZXh0LmxheWVycy5kZWxldGUobm9kZSk7XG4gICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuZGVsZXRlKG5vZGUpO1xuICAgICAgICBkaXNwYXRjaFVwZGF0ZSgpO1xuICAgICAgfTtcbiAgICB9LCBbbm9kZSwgY29udGV4dF0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZVVwZGF0ZSA9ICgpID0+IGZvcmNlKHt9KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihDT05URVhUX1VQREFURSwgaGFuZGxlVXBkYXRlKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgey4uLmxheWVyUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZFxuICAgICAgICAgICAgPyBpc1BvaW50ZXJFdmVudHNFbmFibGVkXG4gICAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICAgIDogJ25vbmUnXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25Gb2N1c0NhcHR1cmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXNDYXB0dXJlLCBmb2N1c091dHNpZGUub25Gb2N1c0NhcHR1cmUpfVxuICAgICAgICBvbkJsdXJDYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXJDYXB0dXJlLCBmb2N1c091dHNpZGUub25CbHVyQ2FwdHVyZSl9XG4gICAgICAgIG9uUG9pbnRlckRvd25DYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJEb3duQ2FwdHVyZSxcbiAgICAgICAgICBwb2ludGVyRG93bk91dHNpZGUub25Qb2ludGVyRG93bkNhcHR1cmVcbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuRGlzbWlzc2FibGVMYXllci5kaXNwbGF5TmFtZSA9IERJU01JU1NBQkxFX0xBWUVSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQlJBTkNIX05BTUUgPSAnRGlzbWlzc2FibGVMYXllckJyYW5jaCc7XG5cbnR5cGUgRGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBEaXNtaXNzYWJsZUxheWVyQnJhbmNoUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7fVxuXG5jb25zdCBEaXNtaXNzYWJsZUxheWVyQnJhbmNoID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQsXG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hQcm9wc1xuPigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGNvbnRleHQuYnJhbmNoZXMuYWRkKG5vZGUpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29udGV4dC5icmFuY2hlcy5kZWxldGUobm9kZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2NvbnRleHQuYnJhbmNoZXNdKTtcblxuICByZXR1cm4gPFByaW1pdGl2ZS5kaXYgey4uLnByb3BzfSByZWY9e2NvbXBvc2VkUmVmc30gLz47XG59KTtcblxuRGlzbWlzc2FibGVMYXllckJyYW5jaC5kaXNwbGF5TmFtZSA9IEJSQU5DSF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgUG9pbnRlckRvd25PdXRzaWRlRXZlbnQgPSBDdXN0b21FdmVudDx7IG9yaWdpbmFsRXZlbnQ6IFBvaW50ZXJFdmVudCB9PjtcbnR5cGUgRm9jdXNPdXRzaWRlRXZlbnQgPSBDdXN0b21FdmVudDx7IG9yaWdpbmFsRXZlbnQ6IEZvY3VzRXZlbnQgfT47XG5cbi8qKlxuICogTGlzdGVucyBmb3IgYHBvaW50ZXJkb3duYCBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS4gV2UgdXNlIGBwb2ludGVyZG93bmAgcmF0aGVyIHRoYW4gYHBvaW50ZXJ1cGBcbiAqIHRvIG1pbWljIGxheWVyIGRpc21pc3NpbmcgYmVoYXZpb3VyIHByZXNlbnQgaW4gT1MuXG4gKiBSZXR1cm5zIHByb3BzIHRvIHBhc3MgdG8gdGhlIG5vZGUgd2Ugd2FudCB0byBjaGVjayBmb3Igb3V0c2lkZSBldmVudHMuXG4gKi9cbmZ1bmN0aW9uIHVzZVBvaW50ZXJEb3duT3V0c2lkZShcbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiAoZXZlbnQ6IFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KSA9PiB2b2lkLFxuICBvd25lckRvY3VtZW50OiBEb2N1bWVudCA9IGdsb2JhbFRoaXM/LmRvY3VtZW50XG4pIHtcbiAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gdXNlQ2FsbGJhY2tSZWYob25Qb2ludGVyRG93bk91dHNpZGUpIGFzIEV2ZW50TGlzdGVuZXI7XG4gIGNvbnN0IGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGhhbmRsZUNsaWNrUmVmID0gUmVhY3QudXNlUmVmKCgpID0+IHt9KTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0geyBvcmlnaW5hbEV2ZW50OiBldmVudCB9O1xuXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQoKSB7XG4gICAgICAgICAgaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChcbiAgICAgICAgICAgIFBPSU5URVJfRE9XTl9PVVRTSURFLFxuICAgICAgICAgICAgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlLFxuICAgICAgICAgICAgZXZlbnREZXRhaWwsXG4gICAgICAgICAgICB7IGRpc2NyZXRlOiB0cnVlIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIHRvdWNoIGRldmljZXMsIHdlIG5lZWQgdG8gd2FpdCBmb3IgYSBjbGljayBldmVudCBiZWNhdXNlIGJyb3dzZXJzIGltcGxlbWVudFxuICAgICAgICAgKiBhIH4zNTBtcyBkZWxheSBiZXR3ZWVuIHRoZSB0aW1lIHRoZSB1c2VyIHN0b3BzIHRvdWNoaW5nIHRoZSBkaXNwbGF5IGFuZCB3aGVuIHRoZVxuICAgICAgICAgKiBicm93c2VyIGV4ZWN1dHJlcyBldmVudHMuIFdlIG5lZWQgdG8gZW5zdXJlIHdlIGRvbid0IHJlYWN0aXZhdGUgcG9pbnRlci1ldmVudHMgd2l0aGluXG4gICAgICAgICAqIHRoaXMgdGltZWZyYW1lIG90aGVyd2lzZSB0aGUgYnJvd3NlciBtYXkgZXhlY3V0ZSBldmVudHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHByZXZlbnRlZC5cbiAgICAgICAgICpcbiAgICAgICAgICogQWRkaXRpb25hbGx5LCB0aGlzIGFsc28gbGV0cyB1cyBkZWFsIGF1dG9tYXRpY2FsbHkgd2l0aCBjYW5jZWxsYXRpb25zIHdoZW4gYSBjbGljayBldmVudFxuICAgICAgICAgKiBpc24ndCByYWlzZWQgYmVjYXVzZSB0aGUgcGFnZSB3YXMgY29uc2lkZXJlZCBzY3JvbGxlZC9kcmFnLXNjcm9sbGVkLCBsb25nLXByZXNzZWQsIGV0Yy5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhpcyBpcyB3aHkgd2UgYWxzbyBjb250aW51b3VzbHkgcmVtb3ZlIHRoZSBwcmV2aW91cyBsaXN0ZW5lciwgYmVjYXVzZSB3ZSBjYW5ub3QgYmVcbiAgICAgICAgICogY2VydGFpbiB0aGF0IGl0IHdhcyByYWlzZWQsIGFuZCB0aGVyZWZvcmUgY2xlYW5lZC11cC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChldmVudC5wb2ludGVyVHlwZSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgICAgICBoYW5kbGVDbGlja1JlZi5jdXJyZW50ID0gaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudDtcbiAgICAgICAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byByZW1vdmUgdGhlIGV2ZW50IGxpc3RlbmVyIGluIGNhc2UgdGhlIG91dHNpZGUgY2xpY2sgaGFzIGJlZW4gY2FuY2VsZWQuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvaXNzdWVzLzIxNzFcbiAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIGlmIHRoaXMgaG9vayBleGVjdXRlcyBpbiBhIGNvbXBvbmVudCB0aGF0IG1vdW50cyB2aWEgYSBgcG9pbnRlcmRvd25gIGV2ZW50LCB0aGUgZXZlbnRcbiAgICAgKiB3b3VsZCBidWJibGUgdXAgdG8gdGhlIGRvY3VtZW50IGFuZCB0cmlnZ2VyIGEgYHBvaW50ZXJEb3duT3V0c2lkZWAgZXZlbnQuIFdlIGF2b2lkXG4gICAgICogdGhpcyBieSBkZWxheWluZyB0aGUgZXZlbnQgbGlzdGVuZXIgcmVnaXN0cmF0aW9uIG9uIHRoZSBkb2N1bWVudC5cbiAgICAgKiBUaGlzIGlzIG5vdCBSZWFjdCBzcGVjaWZpYywgYnV0IHJhdGhlciBob3cgdGhlIERPTSB3b3JrcywgaWU6XG4gICAgICogYGBgXG4gICAgICogYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKCkgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coJ0kgd2lsbCBsb2cnKTtcbiAgICAgKiAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKCkgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnSSB3aWxsIGFsc28gbG9nJyk7XG4gICAgICogICB9KVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGNvbnN0IHRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgIH0sIDApO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbb3duZXJEb2N1bWVudCwgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlXSk7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBlbnN1cmVzIHdlIGNoZWNrIFJlYWN0IGNvbXBvbmVudCB0cmVlIChub3QganVzdCBET00gdHJlZSlcbiAgICBvblBvaW50ZXJEb3duQ2FwdHVyZTogKCkgPT4gKGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZSksXG4gIH07XG59XG5cbi8qKlxuICogTGlzdGVucyBmb3Igd2hlbiBmb2N1cyBoYXBwZW5zIG91dHNpZGUgYSByZWFjdCBzdWJ0cmVlLlxuICogUmV0dXJucyBwcm9wcyB0byBwYXNzIHRvIHRoZSByb290IChub2RlKSBvZiB0aGUgc3VidHJlZSB3ZSB3YW50IHRvIGNoZWNrLlxuICovXG5mdW5jdGlvbiB1c2VGb2N1c091dHNpZGUoXG4gIG9uRm9jdXNPdXRzaWRlPzogKGV2ZW50OiBGb2N1c091dHNpZGVFdmVudCkgPT4gdm9pZCxcbiAgb3duZXJEb2N1bWVudDogRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudFxuKSB7XG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0c2lkZSA9IHVzZUNhbGxiYWNrUmVmKG9uRm9jdXNPdXRzaWRlKSBhcyBFdmVudExpc3RlbmVyO1xuICBjb25zdCBpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgZXZlbnREZXRhaWwgPSB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50IH07XG4gICAgICAgIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoRk9DVVNfT1VUU0lERSwgaGFuZGxlRm9jdXNPdXRzaWRlLCBldmVudERldGFpbCwge1xuICAgICAgICAgIGRpc2NyZXRlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1cyk7XG4gICAgcmV0dXJuICgpID0+IG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzKTtcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZUZvY3VzT3V0c2lkZV0pO1xuXG4gIHJldHVybiB7XG4gICAgb25Gb2N1c0NhcHR1cmU6ICgpID0+IChpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSB0cnVlKSxcbiAgICBvbkJsdXJDYXB0dXJlOiAoKSA9PiAoaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2UpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaFVwZGF0ZSgpIHtcbiAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoQ09OVEVYVF9VUERBVEUpO1xuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudDxFIGV4dGVuZHMgQ3VzdG9tRXZlbnQsIE9yaWdpbmFsRXZlbnQgZXh0ZW5kcyBFdmVudD4oXG4gIG5hbWU6IHN0cmluZyxcbiAgaGFuZGxlcjogKChldmVudDogRSkgPT4gdm9pZCkgfCB1bmRlZmluZWQsXG4gIGRldGFpbDogeyBvcmlnaW5hbEV2ZW50OiBPcmlnaW5hbEV2ZW50IH0gJiAoRSBleHRlbmRzIEN1c3RvbUV2ZW50PGluZmVyIEQ+ID8gRCA6IG5ldmVyKSxcbiAgeyBkaXNjcmV0ZSB9OiB7IGRpc2NyZXRlOiBib29sZWFuIH1cbikge1xuICBjb25zdCB0YXJnZXQgPSBkZXRhaWwub3JpZ2luYWxFdmVudC50YXJnZXQ7XG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KG5hbWUsIHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IHRydWUsIGRldGFpbCB9KTtcbiAgaWYgKGhhbmRsZXIpIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuXG4gIGlmIChkaXNjcmV0ZSkge1xuICAgIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cbn1cblxuY29uc3QgUm9vdCA9IERpc21pc3NhYmxlTGF5ZXI7XG5jb25zdCBCcmFuY2ggPSBEaXNtaXNzYWJsZUxheWVyQnJhbmNoO1xuXG5leHBvcnQge1xuICBEaXNtaXNzYWJsZUxheWVyLFxuICBEaXNtaXNzYWJsZUxheWVyQnJhbmNoLFxuICAvL1xuICBSb290LFxuICBCcmFuY2gsXG59O1xuZXhwb3J0IHR5cGUgeyBEaXNtaXNzYWJsZUxheWVyUHJvcHMgfTtcbiJdLCJuYW1lcyI6WyJub2RlIiwiaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs": /*!*******************************************************************!*\ !*** ./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs ***! \*******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ CheckboxItem: () => (/* binding */ CheckboxItem2),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ DropdownMenu: () => (/* binding */ DropdownMenu),\n/* harmony export */ DropdownMenuArrow: () => (/* binding */ DropdownMenuArrow),\n/* harmony export */ DropdownMenuCheckboxItem: () => (/* binding */ DropdownMenuCheckboxItem),\n/* harmony export */ DropdownMenuContent: () => (/* binding */ DropdownMenuContent),\n/* harmony export */ DropdownMenuGroup: () => (/* binding */ DropdownMenuGroup),\n/* harmony export */ DropdownMenuItem: () => (/* binding */ DropdownMenuItem),\n/* harmony export */ DropdownMenuItemIndicator: () => (/* binding */ DropdownMenuItemIndicator),\n/* harmony export */ DropdownMenuLabel: () => (/* binding */ DropdownMenuLabel),\n/* harmony export */ DropdownMenuPortal: () => (/* binding */ DropdownMenuPortal),\n/* harmony export */ DropdownMenuRadioGroup: () => (/* binding */ DropdownMenuRadioGroup),\n/* harmony export */ DropdownMenuRadioItem: () => (/* binding */ DropdownMenuRadioItem),\n/* harmony export */ DropdownMenuSeparator: () => (/* binding */ DropdownMenuSeparator),\n/* harmony export */ DropdownMenuSub: () => (/* binding */ DropdownMenuSub),\n/* harmony export */ DropdownMenuSubContent: () => (/* binding */ DropdownMenuSubContent),\n/* harmony export */ DropdownMenuSubTrigger: () => (/* binding */ DropdownMenuSubTrigger),\n/* harmony export */ DropdownMenuTrigger: () => (/* binding */ DropdownMenuTrigger),\n/* harmony export */ Group: () => (/* binding */ Group2),\n/* harmony export */ Item: () => (/* binding */ Item2),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator2),\n/* harmony export */ Label: () => (/* binding */ Label2),\n/* harmony export */ Portal: () => (/* binding */ Portal2),\n/* harmony export */ RadioGroup: () => (/* binding */ RadioGroup2),\n/* harmony export */ RadioItem: () => (/* binding */ RadioItem2),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Separator: () => (/* binding */ Separator2),\n/* harmony export */ Sub: () => (/* binding */ Sub2),\n/* harmony export */ SubContent: () => (/* binding */ SubContent2),\n/* harmony export */ SubTrigger: () => (/* binding */ SubTrigger2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createDropdownMenuScope: () => (/* binding */ createDropdownMenuScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-menu/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Arrow,CheckboxItem,Content,DropdownMenu,DropdownMenuArrow,DropdownMenuCheckboxItem,DropdownMenuContent,DropdownMenuGroup,DropdownMenuItem,DropdownMenuItemIndicator,DropdownMenuLabel,DropdownMenuPortal,DropdownMenuRadioGroup,DropdownMenuRadioItem,DropdownMenuSeparator,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuTrigger,Group,Item,ItemIndicator,Label,Portal,RadioGroup,RadioItem,Root,Separator,Sub,SubContent,SubTrigger,Trigger,createDropdownMenuScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$();\n// packages/react/dropdown-menu/src/DropdownMenu.tsx\n\n\n\n\n\n\n\n\n\n\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DROPDOWN_MENU_NAME, [\n _radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.createMenuScope\n]);\nvar useMenuScope = (0,_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.createMenuScope)();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props)=>{\n _s();\n const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DropdownMenuProvider, {\n scope: __scopeDropdownMenu,\n triggerId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId)(),\n triggerRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"DropdownMenu.useCallback\": ()=>setOpen({\n \"DropdownMenu.useCallback\": (prevOpen)=>!prevOpen\n }[\"DropdownMenu.useCallback\"])\n }[\"DropdownMenu.useCallback\"], [\n setOpen\n ]),\n modal,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...menuScope,\n open,\n onOpenChange: setOpen,\n dir,\n modal,\n children\n })\n });\n};\n_s(DropdownMenu, \"wJP6WddUJB6yyPU3UeqipcdnRzk=\", false, function() {\n return [\n useMenuScope,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId\n ];\n});\n_c = DropdownMenu;\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Anchor, {\n asChild: true,\n ...menuScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_7__.composeRefs)(forwardedRef, context.triggerRef),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerDown, (event)=>{\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (disabled) return;\n if ([\n \"Enter\",\n \" \"\n ].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\n \"Enter\",\n \" \",\n \"ArrowDown\"\n ].includes(event.key)) event.preventDefault();\n })\n })\n });\n}, \"VF6M01Vk8Lj/m3Pf4rnYmk8awgw=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n})), \"VF6M01Vk8Lj/m3Pf4rnYmk8awgw=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n});\n_c2 = DropdownMenuTrigger;\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props)=>{\n _s2();\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n ...menuScope,\n ...portalProps\n });\n};\n_s2(DropdownMenuPortal, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c3 = DropdownMenuPortal;\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Content, {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onInteractOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n}, \"IxfmRH92Vi06xpdwf/XFbSU51nY=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n})), \"IxfmRH92Vi06xpdwf/XFbSU51nY=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n});\n_c5 = DropdownMenuContent;\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s4((props, forwardedRef)=>{\n _s4();\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Group, {\n ...menuScope,\n ...groupProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c7 = DropdownMenuGroup;\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c8 = _s5((props, forwardedRef)=>{\n _s5();\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ...menuScope,\n ...labelProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c9 = DropdownMenuLabel;\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = /*#__PURE__*/ _s6(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c10 = _s6((props, forwardedRef)=>{\n _s6();\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ...menuScope,\n ...itemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c11 = DropdownMenuItem;\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem, {\n ...menuScope,\n ...checkboxItemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c13 = DropdownMenuCheckboxItem;\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.RadioGroup, {\n ...menuScope,\n ...radioGroupProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c15 = DropdownMenuRadioGroup;\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem, {\n ...menuScope,\n ...radioItemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c17 = DropdownMenuRadioItem;\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c18 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n ...menuScope,\n ...itemIndicatorProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c19 = DropdownMenuItemIndicator;\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c20 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ...menuScope,\n ...separatorProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c21 = DropdownMenuSeparator;\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = /*#__PURE__*/ _s12(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c22 = _s12((props, forwardedRef)=>{\n _s12();\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Arrow, {\n ...menuScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c23 = DropdownMenuArrow;\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props)=>{\n _s13();\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Sub, {\n ...menuScope,\n open,\n onOpenChange: setOpen,\n children\n });\n};\n_s13(DropdownMenuSub, \"gVVi3jy7WExj7Ovhmd5ypv5gQnU=\", false, function() {\n return [\n useMenuScope,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n});\n_c24 = DropdownMenuSub;\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = /*#__PURE__*/ _s14(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c25 = _s14((props, forwardedRef)=>{\n _s14();\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger, {\n ...menuScope,\n ...subTriggerProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c26 = DropdownMenuSubTrigger;\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = /*#__PURE__*/ _s15(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c27 = _s15((props, forwardedRef)=>{\n _s15();\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent, {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c28 = DropdownMenuSubContent;\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19, _c20, _c21, _c22, _c23, _c24, _c25, _c26, _c27, _c28;\n$RefreshReg$(_c, \"DropdownMenu\");\n$RefreshReg$(_c1, \"DropdownMenuTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"DropdownMenuTrigger\");\n$RefreshReg$(_c3, \"DropdownMenuPortal\");\n$RefreshReg$(_c4, \"DropdownMenuContent$React.forwardRef\");\n$RefreshReg$(_c5, \"DropdownMenuContent\");\n$RefreshReg$(_c6, \"DropdownMenuGroup$React.forwardRef\");\n$RefreshReg$(_c7, \"DropdownMenuGroup\");\n$RefreshReg$(_c8, \"DropdownMenuLabel$React.forwardRef\");\n$RefreshReg$(_c9, \"DropdownMenuLabel\");\n$RefreshReg$(_c10, \"DropdownMenuItem$React.forwardRef\");\n$RefreshReg$(_c11, \"DropdownMenuItem\");\n$RefreshReg$(_c12, \"DropdownMenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c13, \"DropdownMenuCheckboxItem\");\n$RefreshReg$(_c14, \"DropdownMenuRadioGroup$React.forwardRef\");\n$RefreshReg$(_c15, \"DropdownMenuRadioGroup\");\n$RefreshReg$(_c16, \"DropdownMenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c17, \"DropdownMenuRadioItem\");\n$RefreshReg$(_c18, \"DropdownMenuItemIndicator$React.forwardRef\");\n$RefreshReg$(_c19, \"DropdownMenuItemIndicator\");\n$RefreshReg$(_c20, \"DropdownMenuSeparator$React.forwardRef\");\n$RefreshReg$(_c21, \"DropdownMenuSeparator\");\n$RefreshReg$(_c22, \"DropdownMenuArrow$React.forwardRef\");\n$RefreshReg$(_c23, \"DropdownMenuArrow\");\n$RefreshReg$(_c24, \"DropdownMenuSub\");\n$RefreshReg$(_c25, \"DropdownMenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c26, \"DropdownMenuSubTrigger\");\n$RefreshReg$(_c27, \"DropdownMenuSubContent$React.forwardRef\");\n$RefreshReg$(_c28, \"DropdownMenuSubContent\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ1Q7QUFDTztBQUNFO0FBQ1g7QUFDSztBQUNDO0FBQ1Y7QUFzRWhCO0FBNUROLElBQU0scUJBQXFCO0FBRzNCLElBQU0sQ0FBQywyQkFBMkIsdUJBQXVCLElBQUksMkVBQWtCLENBQzdFLG9CQUNBO0lBQUMsaUVBQWU7Q0FBQTtBQUVsQixJQUFNLGVBQWUscUVBQWUsQ0FBQztBQVlyQyxJQUFNLENBQUMsc0JBQXNCLHNCQUFzQixJQUNqRCwwQkFBb0Qsa0JBQWtCO0FBV3hFLG1CQUFrRCxDQUFDOztJQUNqRCxNQUFNLEVBQ0oscUJBQ0EsVUFDQSxLQUNBLE1BQU0sVUFDTixhQUNBLGNBQ0EsUUFBUSxNQUNWLEdBQUk7SUFDSixNQUFNLHlCQUF5QixtQkFBbUI7SUFDbEQsTUFBTSxhQUFtQiwwQ0FBMEIsSUFBSTtJQUN2RCxNQUFNLENBQUMsT0FBTyxPQUFPLE9BQU8saUdBQXlCO1FBQ25ELE1BQU07UUFDTixhQUFhO1FBQ2IsVUFBVTtJQUNaLENBQUM7SUFFRCxPQUNFLHVFQUFDO1FBQ0MsT0FBTztRQUNQO1FBQ0E7UUFDQSxXQUFXLHlEQUFLLENBQUM7UUFDakI7UUFDQSxjQUFjO1FBQ2QsY0FBb0I7d0NBQVksSUFBTTtnREFBUSxDQUFDLFdBQWEsQ0FBQyxRQUFROzt1Q0FBRztZQUFDLE9BQU87U0FBQztRQUNqRjtRQUVBLGlGQUFlLHdEQUFkO1lBQW9CLEdBQUc7WUFBVztZQUFZLGNBQWM7WUFBUztZQUFVO1lBQzdFO1FBQUEsQ0FDSDtJQUFBO0FBR047OztRQXhCb0I7UUFFYyx3RkFBb0I7UUFTckMscURBQUssQ0FBQzs7OztLQXJCakI7QUFvQ04sYUFBYSxjQUFjO0FBTTNCLElBQU0s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QUc7UUFDSixLQUFLO1FBQ0wsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUFBO1lBRVQsR0FBRztnQkFDRCxrREFBa0Q7Z0JBQ2xELGlEQUFpRDtnQkFDakQsa0RBQWtEO2dCQUNsRCx1Q0FBdUM7Z0JBQ3ZDLHdDQUF3QztZQUMxQztRQUNGO0lBQUE7QUFHTixDQUFDOzs7Ozs7UUFwQm1COzs7O0FBc0JwQix1QkFBdUIsY0FBYztBQUlyQyxJQUFNQSxRQUFPO0FBQ2IsSUFBTSxVQUFVO0FBQ2hCLElBQU1DLFVBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFNBQVE7QUFDZCxJQUFNQyxTQUFRO0FBQ2QsSUFBTUMsUUFBTztBQUNiLElBQU1DLGdCQUFlO0FBQ3JCLElBQU1DLGNBQWE7QUFDbkIsSUFBTUMsYUFBWTtBQUNsQixJQUFNQyxpQkFBZ0I7QUFDdEIsSUFBTUMsYUFBWTtBQUNsQixJQUFNQyxTQUFRO0FBQ2QsSUFBTUMsT0FBTTtBQUNaLElBQU1DLGNBQWE7QUFDbkIsSUFBTUMsY0FBYSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvRHJvcGRvd25NZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgKiBhcyBNZW51UHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1tZW51JztcbmltcG9ydCB7IGNyZWF0ZU1lbnVTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1tZW51JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxudHlwZSBEaXJlY3Rpb24gPSAnbHRyJyB8ICdydGwnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRFJPUERPV05fTUVOVV9OQU1FID0gJ0Ryb3Bkb3duTWVudSc7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlRHJvcGRvd25NZW51PzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVEcm9wZG93bk1lbnVDb250ZXh0LCBjcmVhdGVEcm9wZG93bk1lbnVTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoXG4gIERST1BET1dOX01FTlVfTkFNRSxcbiAgW2NyZWF0ZU1lbnVTY29wZV1cbik7XG5jb25zdCB1c2VNZW51U2NvcGUgPSBjcmVhdGVNZW51U2NvcGUoKTtcblxudHlwZSBEcm9wZG93bk1lbnVDb250ZXh0VmFsdWUgPSB7XG4gIHRyaWdnZXJJZDogc3RyaW5nO1xuICB0cmlnZ2VyUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudElkOiBzdHJpbmc7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgb25PcGVuVG9nZ2xlKCk6IHZvaWQ7XG4gIG1vZGFsOiBib29sZWFuO1xufTtcblxuY29uc3QgW0Ryb3Bkb3duTWVudVByb3ZpZGVyLCB1c2VEcm9wZG93bk1lbnVDb250ZXh0XSA9XG4gIGNyZWF0ZURyb3Bkb3duTWVudUNvbnRleHQ8RHJvcGRvd25NZW51Q29udGV4dFZhbHVlPihEUk9QRE9XTl9NRU5VX05BTUUpO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZGlyPzogRGlyZWN0aW9uO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IERyb3Bkb3duTWVudTogUmVhY3QuRkM8RHJvcGRvd25NZW51UHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVEcm9wZG93bk1lbnUsXG4gICAgY2hpbGRyZW4sXG4gICAgZGlyLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBtb2RhbCA9IHRydWUsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcbiAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogb3BlblByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2UsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPERyb3Bkb3duTWVudVByb3ZpZGVyXG4gICAgICBzY29wZT17X19zY29wZURyb3Bkb3duTWVudX1cbiAgICAgIHRyaWdnZXJJZD17dXNlSWQoKX1cbiAgICAgIHRyaWdnZXJSZWY9e3RyaWdnZXJSZWZ9XG4gICAgICBjb250ZW50SWQ9e3VzZUlkKCl9XG4gICAgICBvcGVuPXtvcGVufVxuICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgb25PcGVuVG9nZ2xlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRPcGVuKChwcmV2T3BlbikgPT4gIXByZXZPcGVuKSwgW3NldE9wZW5dKX1cbiAgICAgIG1vZGFsPXttb2RhbH1cbiAgICA+XG4gICAgICA8TWVudVByaW1pdGl2ZS5Sb290IHsuLi5tZW51U2NvcGV9IG9wZW49e29wZW59IG9uT3BlbkNoYW5nZT17c2V0T3Blbn0gZGlyPXtkaXJ9IG1vZGFsPXttb2RhbH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTWVudVByaW1pdGl2ZS5Sb290PlxuICAgIDwvRHJvcGRvd25NZW51UHJvdmlkZXI+XG4gICk7XG59O1xuXG5Ecm9wZG93bk1lbnUuZGlzcGxheU5hbWUgPSBEUk9QRE9XTl9NRU5VX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVRyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVRyaWdnZXInO1xuXG50eXBlIERyb3Bkb3duTWVudVRyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG50eXBlIFByaW1pdGl2ZUJ1dHRvblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVUcmlnZ2VyRWxlbWVudCwgRHJvcGRvd25NZW51VHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIGRpc2FibGVkID0gZmFsc2UsIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURyb3Bkb3duTWVudUNvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51UHJpbWl0aXZlLkFuY2hvciBhc0NoaWxkIHsuLi5tZW51U2NvcGV9PlxuICAgICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGlkPXtjb250ZXh0LnRyaWdnZXJJZH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17Y29udGV4dC5vcGVufVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2NvbnRleHQub3BlbiA/IGNvbnRleHQuY29udGVudElkIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtc3RhdGU9e2NvbnRleHQub3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHsuLi50cmlnZ2VyUHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZil9XG4gICAgICAgICAgb25Qb2ludGVyRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyRG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBvbmx5IGNhbGwgaGFuZGxlciBpZiBpdCdzIHRoZSBsZWZ0IGJ1dHRvbiAobW91c2Vkb3duIGdldHMgdHJpZ2dlcmVkIGJ5IGFsbCBtb3VzZSBidXR0b25zKVxuICAgICAgICAgICAgLy8gYnV0IG5vdCB3aGVuIHRoZSBjb250cm9sIGtleSBpcyBwcmVzc2VkIChhdm9pZGluZyBNYWNPUyByaWdodCBjbGljaylcbiAgICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgZXZlbnQuYnV0dG9uID09PSAwICYmIGV2ZW50LmN0cmxLZXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQub25PcGVuVG9nZ2xlKCk7XG4gICAgICAgICAgICAgIC8vIHByZXZlbnQgdHJpZ2dlciBmb2N1c2luZyB3aGVuIG9wZW5pbmdcbiAgICAgICAgICAgICAgLy8gdGhpcyBhbGxvd3MgdGhlIGNvbnRlbnQgdG8gYmUgZ2l2ZW4gZm9jdXMgd2l0aG91dCBjb21wZXRpdGlvblxuICAgICAgICAgICAgICBpZiAoIWNvbnRleHQub3BlbikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChbJ0VudGVyJywgJyAnXS5pbmNsdWRlcyhldmVudC5rZXkpKSBjb250ZXh0Lm9uT3BlblRvZ2dsZSgpO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIGNvbnRleHQub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgLy8gcHJldmVudCBrZXlkb3duIGZyb20gc2Nyb2xsaW5nIHdpbmRvdyAvIGZpcnN0IGZvY3VzZWQgaXRlbSB0byBleGVjdXRlXG4gICAgICAgICAgICAvLyB0aGF0IGtleWRvd24gKGluYWR2ZXJ0ZW50bHkgY2xvc2luZyB0aGUgbWVudSlcbiAgICAgICAgICAgIGlmIChbJ0VudGVyJywgJyAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnQua2V5KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgLz5cbiAgICAgIDwvTWVudVByaW1pdGl2ZS5BbmNob3I+XG4gICAgKTtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51VHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51UG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ0Ryb3Bkb3duTWVudVBvcnRhbCc7XG5cbnR5cGUgTWVudVBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlBvcnRhbD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UG9ydGFsUHJvcHMgZXh0ZW5kcyBNZW51UG9ydGFsUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51UG9ydGFsOiBSZWFjdC5GQzxEcm9wZG93bk1lbnVQb3J0YWxQcm9wcz4gPSAoXG4gIHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVQb3J0YWxQcm9wcz5cbikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuUG9ydGFsIHsuLi5tZW51U2NvcGV9IHsuLi5wb3J0YWxQcm9wc30gLz47XG59O1xuXG5Ecm9wZG93bk1lbnVQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51Q29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnRHJvcGRvd25NZW51Q29udGVudCc7XG5cbnR5cGUgRHJvcGRvd25NZW51Q29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBNZW51Q29udGVudFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcyBleHRlbmRzIE9taXQ8TWVudUNvbnRlbnRQcm9wcywgJ29uRW50cnlGb2N1cyc+IHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPERyb3Bkb3duTWVudUNvbnRlbnRFbGVtZW50LCBEcm9wZG93bk1lbnVDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRHJvcGRvd25NZW51Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICBjb25zdCBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVQcmltaXRpdmUuQ29udGVudFxuICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17Y29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgIHsuLi5tZW51U2NvcGV9XG4gICAgICAgIHsuLi5jb250ZW50UHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoIWhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQpIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAvLyBBbHdheXMgcHJldmVudCBhdXRvIGZvY3VzIGJlY2F1c2Ugd2UgZWl0aGVyIGZvY3VzIG1hbnVhbGx5IG9yIHdhbnQgdXNlciBhZ2VudCBmb2N1c1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pfVxuICAgICAgICBvbkludGVyYWN0T3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25JbnRlcmFjdE91dHNpZGUsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXZlbnQgPSBldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudCBhcyBQb2ludGVyRXZlbnQ7XG4gICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpc1JpZ2h0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMiB8fCBjdHJsTGVmdENsaWNrO1xuICAgICAgICAgIGlmICghY29udGV4dC5tb2RhbCB8fCBpc1JpZ2h0Q2xpY2spIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9KX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgICAgLi4ue1xuICAgICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4nOlxuICAgICAgICAgICAgICAndmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pJyxcbiAgICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC1hdmFpbGFibGUtd2lkdGgnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aCknLFxuICAgICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LWF2YWlsYWJsZS1oZWlnaHQnOlxuICAgICAgICAgICAgICAndmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpJyxcbiAgICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtdHJpZ2dlci13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKScsXG4gICAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LXRyaWdnZXItaGVpZ2h0JzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hbmNob3ItaGVpZ2h0KScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51Q29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51R3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgR1JPVVBfTkFNRSA9ICdEcm9wZG93bk1lbnVHcm91cCc7XG5cbnR5cGUgRHJvcGRvd25NZW51R3JvdXBFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5Hcm91cD47XG50eXBlIE1lbnVHcm91cFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkdyb3VwPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVHcm91cFByb3BzIGV4dGVuZHMgTWVudUdyb3VwUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51R3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPERyb3Bkb3duTWVudUdyb3VwRWxlbWVudCwgRHJvcGRvd25NZW51R3JvdXBQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51R3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uZ3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIHJldHVybiA8TWVudVByaW1pdGl2ZS5Hcm91cCB7Li4ubWVudVNjb3BlfSB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5Ecm9wZG93bk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9IEdST1VQX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudUxhYmVsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IExBQkVMX05BTUUgPSAnRHJvcGRvd25NZW51TGFiZWwnO1xuXG50eXBlIERyb3Bkb3duTWVudUxhYmVsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuTGFiZWw+O1xudHlwZSBNZW51TGFiZWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5MYWJlbD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51TGFiZWxQcm9wcyBleHRlbmRzIE1lbnVMYWJlbFByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUxhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVMYWJlbEVsZW1lbnQsIERyb3Bkb3duTWVudUxhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUxhYmVsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICByZXR1cm4gPE1lbnVQcmltaXRpdmUuTGFiZWwgey4uLm1lbnVTY29wZX0gey4uLmxhYmVsUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdEcm9wZG93bk1lbnVJdGVtJztcblxudHlwZSBEcm9wZG93bk1lbnVJdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbT47XG50eXBlIE1lbnVJdGVtUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbT47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51SXRlbVByb3BzIGV4dGVuZHMgTWVudUl0ZW1Qcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVJdGVtRWxlbWVudCwgRHJvcGRvd25NZW51SXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLml0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIHJldHVybiA8TWVudVByaW1pdGl2ZS5JdGVtIHsuLi5tZW51U2NvcGV9IHsuLi5pdGVtUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51SXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENIRUNLQk9YX0lURU1fTkFNRSA9ICdEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0nO1xuXG50eXBlIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT47XG50eXBlIE1lbnVDaGVja2JveEl0ZW1Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbVByb3BzIGV4dGVuZHMgTWVudUNoZWNrYm94SXRlbVByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUNoZWNrYm94SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbUVsZW1lbnQsXG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbVByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51Q2hlY2tib3hJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5jaGVja2JveEl0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbSB7Li4ubWVudVNjb3BlfSB7Li4uY2hlY2tib3hJdGVtUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbn0pO1xuXG5Ecm9wZG93bk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVJhZGlvR3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fR1JPVVBfTkFNRSA9ICdEcm9wZG93bk1lbnVSYWRpb0dyb3VwJztcblxudHlwZSBEcm9wZG93bk1lbnVSYWRpb0dyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9Hcm91cD47XG50eXBlIE1lbnVSYWRpb0dyb3VwUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9Hcm91cD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UmFkaW9Hcm91cFByb3BzIGV4dGVuZHMgTWVudVJhZGlvR3JvdXBQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVSYWRpb0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cEVsZW1lbnQsXG4gIERyb3Bkb3duTWVudVJhZGlvR3JvdXBQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVJhZGlvR3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnJhZGlvR3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLlJhZGlvR3JvdXAgey4uLm1lbnVTY29wZX0gey4uLnJhZGlvR3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVJhZGlvR3JvdXAuZGlzcGxheU5hbWUgPSBSQURJT19HUk9VUF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVSYWRpb0l0ZW1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fSVRFTV9OQU1FID0gJ0Ryb3Bkb3duTWVudVJhZGlvSXRlbSc7XG5cbnR5cGUgRHJvcGRvd25NZW51UmFkaW9JdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9JdGVtPjtcbnR5cGUgTWVudVJhZGlvSXRlbVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlJhZGlvSXRlbT47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UmFkaW9JdGVtUHJvcHMgZXh0ZW5kcyBNZW51UmFkaW9JdGVtUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtRWxlbWVudCxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVSYWRpb0l0ZW1Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnJhZGlvSXRlbVByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuUmFkaW9JdGVtIHsuLi5tZW51U2NvcGV9IHsuLi5yYWRpb0l0ZW1Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVJhZGlvSXRlbS5kaXNwbGF5TmFtZSA9IFJBRElPX0lURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51SXRlbUluZGljYXRvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJTkRJQ0FUT1JfTkFNRSA9ICdEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yJztcblxudHlwZSBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj47XG50eXBlIE1lbnVJdGVtSW5kaWNhdG9yUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51SXRlbUluZGljYXRvclByb3BzIGV4dGVuZHMgTWVudUl0ZW1JbmRpY2F0b3JQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51SXRlbUluZGljYXRvckVsZW1lbnQsXG4gIERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3JQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLml0ZW1JbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3Igey4uLm1lbnVTY29wZX0gey4uLml0ZW1JbmRpY2F0b3JQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJTkRJQ0FUT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVNlcGFyYXRvcic7XG5cbnR5cGUgRHJvcGRvd25NZW51U2VwYXJhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPjtcbnR5cGUgTWVudVNlcGFyYXRvclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlNlcGFyYXRvcj47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51U2VwYXJhdG9yUHJvcHMgZXh0ZW5kcyBNZW51U2VwYXJhdG9yUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51U2VwYXJhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yRWxlbWVudCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVTZXBhcmF0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnNlcGFyYXRvclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuU2VwYXJhdG9yIHsuLi5tZW51U2NvcGV9IHsuLi5zZXBhcmF0b3JQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ0Ryb3Bkb3duTWVudUFycm93JztcblxudHlwZSBEcm9wZG93bk1lbnVBcnJvd0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkFycm93PjtcbnR5cGUgTWVudUFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuQXJyb3c+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUFycm93UHJvcHMgZXh0ZW5kcyBNZW51QXJyb3dQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8RHJvcGRvd25NZW51QXJyb3dFbGVtZW50LCBEcm9wZG93bk1lbnVBcnJvd1Byb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVBcnJvd1Byb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkFycm93IHsuLi5tZW51U2NvcGV9IHsuLi5hcnJvd1Byb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRyb3Bkb3duTWVudUFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U3ViXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmludGVyZmFjZSBEcm9wZG93bk1lbnVTdWJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5jb25zdCBEcm9wZG93bk1lbnVTdWI6IFJlYWN0LkZDPERyb3Bkb3duTWVudVN1YlByb3BzPiA9IChcbiAgcHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVN1YlByb3BzPlxuKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgY2hpbGRyZW4sIG9wZW46IG9wZW5Qcm9wLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWVudVByaW1pdGl2ZS5TdWIgey4uLm1lbnVTY29wZX0gb3Blbj17b3Blbn0gb25PcGVuQ2hhbmdlPXtzZXRPcGVufT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L01lbnVQcmltaXRpdmUuU3ViPlxuICApO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U3ViVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTVUJfVFJJR0dFUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVN1YlRyaWdnZXInO1xuXG50eXBlIERyb3Bkb3duTWVudVN1YlRyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPjtcbnR5cGUgTWVudVN1YlRyaWdnZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBNZW51U3ViVHJpZ2dlclByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudVN1YlRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyRWxlbWVudCxcbiAgRHJvcGRvd25NZW51U3ViVHJpZ2dlclByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51U3ViVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uc3ViVHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlciB7Li4ubWVudVNjb3BlfSB7Li4uc3ViVHJpZ2dlclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG59KTtcblxuRHJvcGRvd25NZW51U3ViVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFNVQl9UUklHR0VSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVN1YkNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU1VCX0NPTlRFTlRfTkFNRSA9ICdEcm9wZG93bk1lbnVTdWJDb250ZW50JztcblxudHlwZSBEcm9wZG93bk1lbnVTdWJDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuQ29udGVudD47XG50eXBlIE1lbnVTdWJDb250ZW50UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuU3ViQ29udGVudD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51U3ViQ29udGVudFByb3BzIGV4dGVuZHMgTWVudVN1YkNvbnRlbnRQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVTdWJDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudEVsZW1lbnQsXG4gIERyb3Bkb3duTWVudVN1YkNvbnRlbnRQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVN1YkNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnN1YkNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcblxuICByZXR1cm4gKFxuICAgIDxNZW51UHJpbWl0aXZlLlN1YkNvbnRlbnRcbiAgICAgIHsuLi5tZW51U2NvcGV9XG4gICAgICB7Li4uc3ViQ29udGVudFByb3BzfVxuICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgLy8gcmUtbmFtZXNwYWNlIGV4cG9zZWQgY29udGVudCBjdXN0b20gcHJvcGVydGllc1xuICAgICAgICAuLi57XG4gICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4nOiAndmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pJyxcbiAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtYXZhaWxhYmxlLXdpZHRoJzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgpJyxcbiAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLWhlaWdodCknLFxuICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtdHJpZ2dlci13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKScsXG4gICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS10cmlnZ2VyLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCknLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICApO1xufSk7XG5cbkRyb3Bkb3duTWVudVN1YkNvbnRlbnQuZGlzcGxheU5hbWUgPSBTVUJfQ09OVEVOVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBEcm9wZG93bk1lbnU7XG5jb25zdCBUcmlnZ2VyID0gRHJvcGRvd25NZW51VHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IERyb3Bkb3duTWVudVBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBEcm9wZG93bk1lbnVDb250ZW50O1xuY29uc3QgR3JvdXAgPSBEcm9wZG93bk1lbnVHcm91cDtcbmNvbnN0IExhYmVsID0gRHJvcGRvd25NZW51TGFiZWw7XG5jb25zdCBJdGVtID0gRHJvcGRvd25NZW51SXRlbTtcbmNvbnN0IENoZWNrYm94SXRlbSA9IERyb3Bkb3duTWVudUNoZWNrYm94SXRlbTtcbmNvbnN0IFJhZGlvR3JvdXAgPSBEcm9wZG93bk1lbnVSYWRpb0dyb3VwO1xuY29uc3QgUmFkaW9JdGVtID0gRHJvcGRvd25NZW51UmFkaW9JdGVtO1xuY29uc3QgSXRlbUluZGljYXRvciA9IERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3I7XG5jb25zdCBTZXBhcmF0b3IgPSBEcm9wZG93bk1lbnVTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IERyb3Bkb3duTWVudUFycm93O1xuY29uc3QgU3ViID0gRHJvcGRvd25NZW51U3ViO1xuY29uc3QgU3ViVHJpZ2dlciA9IERyb3Bkb3duTWVudVN1YlRyaWdnZXI7XG5jb25zdCBTdWJDb250ZW50ID0gRHJvcGRvd25NZW51U3ViQ29udGVudDtcblxuZXhwb3J0IHtcbiAgY3JlYXRlRHJvcGRvd25NZW51U2NvcGUsXG4gIC8vXG4gIERyb3Bkb3duTWVudSxcbiAgRHJvcGRvd25NZW51VHJpZ2dlcixcbiAgRHJvcGRvd25NZW51UG9ydGFsLFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVHcm91cCxcbiAgRHJvcGRvd25NZW51TGFiZWwsXG4gIERyb3Bkb3duTWVudUl0ZW0sXG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbSxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtLFxuICBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yLFxuICBEcm9wZG93bk1lbnVTZXBhcmF0b3IsXG4gIERyb3Bkb3duTWVudUFycm93LFxuICBEcm9wZG93bk1lbnVTdWIsXG4gIERyb3Bkb3duTWVudVN1YlRyaWdnZXIsXG4gIERyb3Bkb3duTWVudVN1YkNvbnRlbnQsXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgQ29udGVudCxcbiAgR3JvdXAsXG4gIExhYmVsLFxuICBJdGVtLFxuICBDaGVja2JveEl0ZW0sXG4gIFJhZGlvR3JvdXAsXG4gIFJhZGlvSXRlbSxcbiAgSXRlbUluZGljYXRvcixcbiAgU2VwYXJhdG9yLFxuICBBcnJvdyxcbiAgU3ViLFxuICBTdWJUcmlnZ2VyLFxuICBTdWJDb250ZW50LFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgRHJvcGRvd25NZW51UHJvcHMsXG4gIERyb3Bkb3duTWVudVRyaWdnZXJQcm9wcyxcbiAgRHJvcGRvd25NZW51UG9ydGFsUHJvcHMsXG4gIERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcyxcbiAgRHJvcGRvd25NZW51R3JvdXBQcm9wcyxcbiAgRHJvcGRvd25NZW51TGFiZWxQcm9wcyxcbiAgRHJvcGRvd25NZW51SXRlbVByb3BzLFxuICBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW1Qcm9wcyxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cFByb3BzLFxuICBEcm9wZG93bk1lbnVSYWRpb0l0ZW1Qcm9wcyxcbiAgRHJvcGRvd25NZW51SXRlbUluZGljYXRvclByb3BzLFxuICBEcm9wZG93bk1lbnVTZXBhcmF0b3JQcm9wcyxcbiAgRHJvcGRvd25NZW51QXJyb3dQcm9wcyxcbiAgRHJvcGRvd25NZW51U3ViUHJvcHMsXG4gIERyb3Bkb3duTWVudVN1YlRyaWdnZXJQcm9wcyxcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudFByb3BzLFxufTtcbiJdLCJuYW1lcyI6WyJSb290IiwiUG9ydGFsIiwiQ29udGVudCIsIkdyb3VwIiwiTGFiZWwiLCJJdGVtIiwiQ2hlY2tib3hJdGVtIiwiUmFkaW9Hcm91cCIsIlJhZGlvSXRlbSIsIkl0ZW1JbmRpY2F0b3IiLCJTZXBhcmF0b3IiLCJBcnJvdyIsIlN1YiIsIlN1YlRyaWdnZXIiLCJTdWJDb250ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-focus-guards/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGuards: () => (/* binding */ FocusGuards),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ useFocusGuards: () => (/* binding */ useFocusGuards)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ FocusGuards,Root,useFocusGuards auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n// packages/react/focus-guards/src/FocusGuards.tsx\n\nvar count = 0;\nfunction FocusGuards(props) {\n _s();\n useFocusGuards();\n return props.children;\n}\n_s(FocusGuards, \"x7paK38h0ScOLuskCuHf4USVPMM=\", false, function() {\n return [\n useFocusGuards\n ];\n});\n_c = FocusGuards;\nfunction useFocusGuards() {\n _s1();\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusGuards.useEffect\": ()=>{\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n var _edgeGuards_;\n document.body.insertAdjacentElement(\"afterbegin\", (_edgeGuards_ = edgeGuards[0]) !== null && _edgeGuards_ !== void 0 ? _edgeGuards_ : createFocusGuard());\n var _edgeGuards_1;\n document.body.insertAdjacentElement(\"beforeend\", (_edgeGuards_1 = edgeGuards[1]) !== null && _edgeGuards_1 !== void 0 ? _edgeGuards_1 : createFocusGuard());\n count++;\n return ({\n \"useFocusGuards.useEffect\": ()=>{\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach({\n \"useFocusGuards.useEffect\": (node)=>node.remove()\n }[\"useFocusGuards.useEffect\"]);\n }\n count--;\n }\n })[\"useFocusGuards.useEffect\"];\n }\n }[\"useFocusGuards.useEffect\"], []);\n}\n_s1(useFocusGuards, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"FocusGuards\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF1QjtBQUd2QixJQUFJLFFBQVE7QUFFWixxQkFBcUIsT0FBWTs7SUFDL0I7SUFDQSxPQUFPLE1BQU07QUFDZjs7O1FBRkU7OztLQURPO0FBU1Q7O0lBQ1E7b0NBQVU7WUFDZCxNQUFNLGFBQWEsU0FBUyxpQkFBaUIsMEJBQTBCOztZQUN2RSxTQUFTLEtBQUssc0JBQXNCLGVBQWMsMEJBQVcsQ0FBQyx3REFBSyxpQkFBaUIsQ0FBQzs7WUFDckYsU0FBUyxLQUFLLHNCQUFzQixjQUFhLDJCQUFXLENBQUMsMERBQUssaUJBQWlCLENBQUM7WUFDcEY7WUFFQTs0Q0FBTztvQkFDTCxJQUFJLFVBQVUsR0FBRzt3QkFDZixTQUFTLGlCQUFpQiwwQkFBMEIsRUFBRTt3REFBUSxDQUFDLE9BQVMsS0FBSyxPQUFPLENBQUM7O29CQUN2RjtvQkFDQTtnQkFDRjs7UUFDRjttQ0FBRyxDQUFDLENBQUM7QUFDUDtJQWRTLGlCQUFpQjtBQWdCMUIsU0FBUyxtQkFBbUI7SUFDMUIsTUFBTSxVQUFVLFNBQVMsY0FBYyxNQUFNO0lBQzdDLFFBQVEsYUFBYSwwQkFBMEIsRUFBRTtJQUNqRCxRQUFRLFdBQVc7SUFDbkIsUUFBUSxNQUFNLFVBQVU7SUFDeEIsUUFBUSxNQUFNLFVBQVU7SUFDeEIsUUFBUSxNQUFNLFdBQVc7SUFDekIsUUFBUSxNQUFNLGdCQUFnQjtJQUM5QixPQUFPO0FBQ1Q7QUFFQSxJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL0ZvY3VzR3VhcmRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8qKiBOdW1iZXIgb2YgY29tcG9uZW50cyB3aGljaCBoYXZlIHJlcXVlc3RlZCBpbnRlcmVzdCB0byBoYXZlIGZvY3VzIGd1YXJkcyAqL1xubGV0IGNvdW50ID0gMDtcblxuZnVuY3Rpb24gRm9jdXNHdWFyZHMocHJvcHM6IGFueSkge1xuICB1c2VGb2N1c0d1YXJkcygpO1xuICByZXR1cm4gcHJvcHMuY2hpbGRyZW47XG59XG5cbi8qKlxuICogSW5qZWN0cyBhIHBhaXIgb2YgZm9jdXMgZ3VhcmRzIGF0IHRoZSBlZGdlcyBvZiB0aGUgd2hvbGUgRE9NIHRyZWVcbiAqIHRvIGVuc3VyZSBgZm9jdXNpbmAgJiBgZm9jdXNvdXRgIGV2ZW50cyBjYW4gYmUgY2F1Z2h0IGNvbnNpc3RlbnRseS5cbiAqL1xuZnVuY3Rpb24gdXNlRm9jdXNHdWFyZHMoKSB7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWRnZUd1YXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXJhZGl4LWZvY3VzLWd1YXJkXScpO1xuICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgZWRnZUd1YXJkc1swXSA/PyBjcmVhdGVGb2N1c0d1YXJkKCkpO1xuICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdiZWZvcmVlbmQnLCBlZGdlR3VhcmRzWzFdID8/IGNyZWF0ZUZvY3VzR3VhcmQoKSk7XG4gICAgY291bnQrKztcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoY291bnQgPT09IDEpIHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmRdJykuZm9yRWFjaCgobm9kZSkgPT4gbm9kZS5yZW1vdmUoKSk7XG4gICAgICB9XG4gICAgICBjb3VudC0tO1xuICAgIH07XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRm9jdXNHdWFyZCgpIHtcbiAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmQnLCAnJyk7XG4gIGVsZW1lbnQudGFiSW5kZXggPSAwO1xuICBlbGVtZW50LnN0eWxlLm91dGxpbmUgPSAnbm9uZSc7XG4gIGVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gIGVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbmNvbnN0IFJvb3QgPSBGb2N1c0d1YXJkcztcblxuZXhwb3J0IHtcbiAgRm9jdXNHdWFyZHMsXG4gIC8vXG4gIFJvb3QsXG4gIC8vXG4gIHVzZUZvY3VzR3VhcmRzLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs": /*!*****************************************************************!*\ !*** ./node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ FocusScope),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ FocusScope,Root auto */ var _s = $RefreshSig$();\n// packages/react/focus-scope/src/FocusScope.tsx\n\n\n\n\n\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props;\n const [container, setContainer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"FocusScope.useComposedRefs[composedRefs]\": (node)=>setContainer(node)\n }[\"FocusScope.useComposedRefs[composedRefs]\"]);\n const focusScope = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (trapped) {\n let handleFocusIn2 = {\n \"FocusScope.useEffect.handleFocusIn2\": function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusIn2\"], handleFocusOut2 = {\n \"FocusScope.useEffect.handleFocusOut2\": function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusOut2\"], handleMutations2 = {\n \"FocusScope.useEffect.handleMutations2\": function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations){\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n }[\"FocusScope.useEffect.handleMutations2\"];\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, {\n childList: true,\n subtree: true\n });\n return ({\n \"FocusScope.useEffect\": ()=>{\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n trapped,\n container,\n focusScope.paused\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return ({\n \"FocusScope.useEffect\": ()=>{\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout({\n \"FocusScope.useEffect\": ()=>{\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }\n }[\"FocusScope.useEffect\"], 0);\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n container,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"FocusScope.useCallback[handleKeyDown]\": (event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, {\n select: true\n });\n }\n }\n }\n }\n }[\"FocusScope.useCallback[handleKeyDown]\"], [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n tabIndex: -1,\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: handleKeyDown\n });\n}, \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c1 = FocusScope;\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements){\n if (!isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction isHidden(node, param) {\n let { upTo } = param;\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while(node){\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add (focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope === null || activeFocusScope === void 0 ? void 0 : activeFocusScope.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack_;\n stack = arrayRemove(stack, focusScope);\n (_stack_ = stack[0]) === null || _stack_ === void 0 ? void 0 : _stack_.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item)=>item.tagName !== \"A\");\n}\nvar Root = FocusScope;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"FocusScope$React.forwardRef\");\n$RefreshReg$(_c1, \"FocusScope\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDTjtBQUNLO0FBd00zQjtBQXRNSixJQUFNLHFCQUFxQjtBQUMzQixJQUFNLHVCQUF1QjtBQUM3QixJQUFNLGdCQUFnQjtJQUFFLFNBQVM7SUFBTyxZQUFZO0FBQUs7QUFRekQsSUFBTSxtQkFBbUI7QUFnQ3pCLElBQU0sOEJBQW1CLHNEQUErQyxDQUFDLE9BQU87O0lBQzlFLE1BQU0sRUFDSixPQUFPLE9BQ1AsVUFBVSxPQUNWLGtCQUFrQixzQkFDbEIsb0JBQW9CLHdCQUNwQixHQUFHLFlBQ0wsR0FBSTtJQUNKLE1BQU0sQ0FBQyxXQUFXLFlBQVksSUFBVSw0Q0FBNkIsSUFBSTtJQUN6RSxNQUFNLG1CQUFtQixnRkFBYyxDQUFDLG9CQUFvQjtJQUM1RCxNQUFNLHFCQUFxQixnRkFBYyxDQUFDLHNCQUFzQjtJQUNoRSxNQUFNLHdCQUE4QiwwQ0FBMkIsSUFBSTtJQUNuRSxNQUFNLGVBQWUsNkVBQWUsQ0FBQztvREFBYyxDQUFDLE9BQVMsYUFBYSxJQUFJLENBQUM7O0lBRS9FLE1BQU0sYUFBbUIsMENBQU87UUFDOUIsUUFBUTtRQUNSLFFBQVE7WUFDTixLQUFLLFNBQVM7UUFDaEI7UUFDQSxTQUFTO1lBQ1AsS0FBSyxTQUFTO1FBQ2hCO0lBQ0YsQ0FBQyxFQUFFO0lBR0c7Z0NBQVU7WUFDZCxJQUFJLFNBQVM7Z0JBQ1gsSUFBU0E7MkRBQVQsU0FBdUIsT0FBbUI7d0JBQ3hDLElBQUksV0FBVyxVQUFVLENBQUMsVUFBVzt3QkFDckMsTUFBTSxTQUFTLE1BQU07d0JBQ3JCLElBQUksVUFBVSxTQUFTLE1BQU0sR0FBRzs0QkFDOUIsc0JBQXNCLFVBQVU7d0JBQ2xDLE9BQU87NEJBQ0wsTUFBTSxzQkFBc0IsU0FBUztnQ0FBRSxRQUFROzRCQUFLLENBQUM7d0JB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Q2hDLElBQUksZUFBZSxrQkFBa0I7Z0JBQ25DLHFGQUFrQixNQUFNO1lBQzFCO1lBRUEsUUFBUSxZQUFZLE9BQU8sVUFBVTtZQUNyQyxNQUFNLFFBQVEsVUFBVTtRQUMxQjtRQUVBLFFBQU8sWUFBMkI7Z0JBRWhDO1lBREEsUUFBUSxZQUFZLE9BQU8sVUFBVTthQUNyQyxnQkFBTSxDQUFDLGVBQVAsc0NBQVUsT0FBTztRQUNuQjtJQUNGO0FBQ0Y7QUFFQSxTQUFTLFlBQWUsT0FBWSxNQUFTO0lBQzNDLE1BQU0sZUFBZSxDQUFDO1dBQUcsS0FBSztLQUFBO0lBQzlCLE1BQU0sUUFBUSxhQUFhLFFBQVEsSUFBSTtJQUN2QyxJQUFJLFVBQVUsSUFBSTtRQUNoQixhQUFhLE9BQU8sT0FBTyxDQUFDO0lBQzlCO0lBQ0EsT0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLE9BQXNCO0lBQ3pDLE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBUyxLQUFLLFlBQVksR0FBRztBQUNwRDtBQUVBLElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvRm9jdXNTY29wZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYnO1xuXG5jb25zdCBBVVRPRk9DVVNfT05fTU9VTlQgPSAnZm9jdXNTY29wZS5hdXRvRm9jdXNPbk1vdW50JztcbmNvbnN0IEFVVE9GT0NVU19PTl9VTk1PVU5UID0gJ2ZvY3VzU2NvcGUuYXV0b0ZvY3VzT25Vbm1vdW50JztcbmNvbnN0IEVWRU5UX09QVElPTlMgPSB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlIH07XG5cbnR5cGUgRm9jdXNhYmxlVGFyZ2V0ID0gSFRNTEVsZW1lbnQgfCB7IGZvY3VzKCk6IHZvaWQgfTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRm9jdXNTY29wZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBGT0NVU19TQ09QRV9OQU1FID0gJ0ZvY3VzU2NvcGUnO1xuXG50eXBlIEZvY3VzU2NvcGVFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBGb2N1c1Njb3BlUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgdGFiYmluZyBmcm9tIGxhc3QgaXRlbSB3aWxsIGZvY3VzIGZpcnN0IHRhYmJhYmxlXG4gICAqIGFuZCBzaGlmdCt0YWIgZnJvbSBmaXJzdCBpdGVtIHdpbGwgZm9jdXMgbGFzdCB0YWJhYmJsZS5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgbG9vcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBmb2N1cyBjYW5ub3QgZXNjYXBlIHRoZSBmb2N1cyBzY29wZSB2aWEga2V5Ym9hcmQsXG4gICAqIHBvaW50ZXIsIG9yIGEgcHJvZ3JhbW1hdGljIGZvY3VzLlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICB0cmFwcGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhdXRvLWZvY3VzaW5nIG9uIG1vdW50LlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Nb3VudEF1dG9Gb2N1cz86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiB1bm1vdW50LlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Vbm1vdW50QXV0b0ZvY3VzPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbn1cblxuY29uc3QgRm9jdXNTY29wZSA9IFJlYWN0LmZvcndhcmRSZWY8Rm9jdXNTY29wZUVsZW1lbnQsIEZvY3VzU2NvcGVQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIGxvb3AgPSBmYWxzZSxcbiAgICB0cmFwcGVkID0gZmFsc2UsXG4gICAgb25Nb3VudEF1dG9Gb2N1czogb25Nb3VudEF1dG9Gb2N1c1Byb3AsXG4gICAgb25Vbm1vdW50QXV0b0ZvY3VzOiBvblVubW91bnRBdXRvRm9jdXNQcm9wLFxuICAgIC4uLnNjb3BlUHJvcHNcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbY29udGFpbmVyLCBzZXRDb250YWluZXJdID0gUmVhY3QudXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgb25Nb3VudEF1dG9Gb2N1cyA9IHVzZUNhbGxiYWNrUmVmKG9uTW91bnRBdXRvRm9jdXNQcm9wKTtcbiAgY29uc3Qgb25Vbm1vdW50QXV0b0ZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25Vbm1vdW50QXV0b0ZvY3VzUHJvcCk7XG4gIGNvbnN0IGxhc3RGb2N1c2VkRWxlbWVudFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Q29udGFpbmVyKG5vZGUpKTtcblxuICBjb25zdCBmb2N1c1Njb3BlID0gUmVhY3QudXNlUmVmKHtcbiAgICBwYXVzZWQ6IGZhbHNlLFxuICAgIHBhdXNlKCkge1xuICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgcmVzdW1lKCkge1xuICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICB9LFxuICB9KS5jdXJyZW50O1xuXG4gIC8vIFRha2VzIGNhcmUgb2YgdHJhcHBpbmcgZm9jdXMgaWYgZm9jdXMgaXMgbW92ZWQgb3V0c2lkZSBwcm9ncmFtbWF0aWNhbGx5IGZvciBleGFtcGxlXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRyYXBwZWQpIHtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUZvY3VzSW4oZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgaWYgKGZvY3VzU2NvcGUucGF1c2VkIHx8ICFjb250YWluZXIpIHJldHVybjtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKGNvbnRhaW5lci5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgbGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQgPSB0YXJnZXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9jdXMobGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCB8fCAhY29udGFpbmVyKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICAvLyBBIGBmb2N1c291dGAgZXZlbnQgd2l0aCBhIGBudWxsYCBgcmVsYXRlZFRhcmdldGAgd2lsbCBoYXBwZW4gaW4gYXQgbGVhc3QgdHdvIGNhc2VzOlxuICAgICAgICAvL1xuICAgICAgICAvLyAxLiBXaGVuIHRoZSB1c2VyIHN3aXRjaGVzIGFwcC90YWJzL3dpbmRvd3MvdGhlIGJyb3dzZXIgaXRzZWxmIGxvc2VzIGZvY3VzLlxuICAgICAgICAvLyAyLiBJbiBHb29nbGUgQ2hyb21lLCB3aGVuIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET00uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIGxldCB0aGUgYnJvd3NlciBkbyBpdHMgdGhpbmcgaGVyZSBiZWNhdXNlOlxuICAgICAgICAvL1xuICAgICAgICAvLyAxLiBUaGUgYnJvd3NlciBhbHJlYWR5IGtlZXBzIGEgbWVtb3J5IG9mIHdoYXQncyBmb2N1c2VkIGZvciB3aGVuIHRoZSBwYWdlIGdldHMgcmVmb2N1c2VkLlxuICAgICAgICAvLyAyLiBJbiBHb29nbGUgQ2hyb21lLCBpZiB3ZSB0cnkgdG8gZm9jdXMgdGhlIGRlbGV0ZWQgZm9jdXNlZCBlbGVtZW50IChhcyBwZXIgYmVsb3cpLCBpdFxuICAgICAgICAvLyAgICB0aHJvd3MgdGhlIENQVSB0byAxMDAlLCBzbyB3ZSBhdm9pZCBkb2luZyBhbnl0aGluZyBmb3IgdGhpcyByZWFzb24gaGVyZSB0b28uXG4gICAgICAgIGlmIChyZWxhdGVkVGFyZ2V0ID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgLy8gSWYgdGhlIGZvY3VzIGhhcyBtb3ZlZCB0byBhbiBhY3R1YWwgbGVnaXRpbWF0ZSBlbGVtZW50IChgcmVsYXRlZFRhcmdldCAhPT0gbnVsbGApXG4gICAgICAgIC8vIHRoYXQgaXMgb3V0c2lkZSB0aGUgY29udGFpbmVyLCB3ZSBtb3ZlIGZvY3VzIHRvIHRoZSBsYXN0IHZhbGlkIGZvY3VzZWQgZWxlbWVudCBpbnNpZGUuXG4gICAgICAgIGlmICghY29udGFpbmVyLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgZm9jdXMobGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gdGhlIGZvY3VzZWQgZWxlbWVudCBnZXRzIHJlbW92ZWQgZnJvbSB0aGUgRE9NLCBicm93c2VycyBtb3ZlIGZvY3VzXG4gICAgICAvLyBiYWNrIHRvIHRoZSBkb2N1bWVudC5ib2R5LiBJbiB0aGlzIGNhc2UsIHdlIG1vdmUgZm9jdXMgdG8gdGhlIGNvbnRhaW5lclxuICAgICAgLy8gdG8ga2VlcCBmb2N1cyB0cmFwcGVkIGNvcnJlY3RseS5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZU11dGF0aW9ucyhtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICAgICAgY29uc3QgZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSByZXR1cm47XG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgaWYgKG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGggPiAwKSBmb2N1cyhjb250YWluZXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXQpO1xuICAgICAgY29uc3QgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGhhbmRsZU11dGF0aW9ucyk7XG4gICAgICBpZiAoY29udGFpbmVyKSBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzSW4pO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0KTtcbiAgICAgICAgbXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW3RyYXBwZWQsIGNvbnRhaW5lciwgZm9jdXNTY29wZS5wYXVzZWRdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGZvY3VzU2NvcGVzU3RhY2suYWRkKGZvY3VzU2NvcGUpO1xuICAgICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICBjb25zdCBoYXNGb2N1c2VkQ2FuZGlkYXRlID0gY29udGFpbmVyLmNvbnRhaW5zKHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCk7XG5cbiAgICAgIGlmICghaGFzRm9jdXNlZENhbmRpZGF0ZSkge1xuICAgICAgICBjb25zdCBtb3VudEV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KEFVVE9GT0NVU19PTl9NT1VOVCwgRVZFTlRfT1BUSU9OUyk7XG4gICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9NT1VOVCwgb25Nb3VudEF1dG9Gb2N1cyk7XG4gICAgICAgIGNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KG1vdW50RXZlbnQpO1xuICAgICAgICBpZiAoIW1vdW50RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGZvY3VzRmlyc3QocmVtb3ZlTGlua3MoZ2V0VGFiYmFibGVDYW5kaWRhdGVzKGNvbnRhaW5lcikpLCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgICAgICBmb2N1cyhjb250YWluZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuXG4gICAgICAgIC8vIFdlIGhpdCBhIHJlYWN0IGJ1ZyAoZml4ZWQgaW4gdjE3KSB3aXRoIGZvY3VzaW5nIGluIHVubW91bnQuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gZGVsYXkgdGhlIGZvY3VzIGEgbGl0dGxlIHRvIGdldCBhcm91bmQgaXQgZm9yIG5vdy5cbiAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE3ODk0XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVubW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fVU5NT1VOVCwgRVZFTlRfT1BUSU9OUyk7XG4gICAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG4gICAgICAgICAgY29udGFpbmVyLmRpc3BhdGNoRXZlbnQodW5tb3VudEV2ZW50KTtcbiAgICAgICAgICBpZiAoIXVubW91bnRFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBmb2N1cyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPz8gZG9jdW1lbnQuYm9keSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsaXN0ZW5lciBhZnRlciB3ZSBgZGlzcGF0Y2hFdmVudGBcbiAgICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fVU5NT1VOVCwgb25Vbm1vdW50QXV0b0ZvY3VzKTtcblxuICAgICAgICAgIGZvY3VzU2NvcGVzU3RhY2sucmVtb3ZlKGZvY3VzU2NvcGUpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbY29udGFpbmVyLCBvbk1vdW50QXV0b0ZvY3VzLCBvblVubW91bnRBdXRvRm9jdXMsIGZvY3VzU2NvcGVdKTtcblxuICAvLyBUYWtlcyBjYXJlIG9mIGxvb3BpbmcgZm9jdXMgKHdoZW4gdGFiYmluZyB3aGlsc3QgYXQgdGhlIGVkZ2VzKVxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWxvb3AgJiYgIXRyYXBwZWQpIHJldHVybjtcbiAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBpc1RhYktleSA9IGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgIWV2ZW50LmFsdEtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhZXZlbnQubWV0YUtleTtcbiAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgIGlmIChpc1RhYktleSAmJiBmb2N1c2VkRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBbZmlyc3QsIGxhc3RdID0gZ2V0VGFiYmFibGVFZGdlcyhjb250YWluZXIpO1xuICAgICAgICBjb25zdCBoYXNUYWJiYWJsZUVsZW1lbnRzSW5zaWRlID0gZmlyc3QgJiYgbGFzdDtcblxuICAgICAgICAvLyB3ZSBjYW4gb25seSB3cmFwIGZvY3VzIGlmIHdlIGhhdmUgdGFiYmFibGUgZWRnZXNcbiAgICAgICAgaWYgKCFoYXNUYWJiYWJsZUVsZW1lbnRzSW5zaWRlKSB7XG4gICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ID09PSBjb250YWluZXIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSAmJiBmb2N1c2VkRWxlbWVudCA9PT0gbGFzdCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChsb29wKSBmb2N1cyhmaXJzdCwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudC5zaGlmdEtleSAmJiBmb2N1c2VkRWxlbWVudCA9PT0gZmlyc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAobG9vcCkgZm9jdXMobGFzdCwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9vcCwgdHJhcHBlZCwgZm9jdXNTY29wZS5wYXVzZWRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8UHJpbWl0aXZlLmRpdiB0YWJJbmRleD17LTF9IHsuLi5zY29wZVByb3BzfSByZWY9e2NvbXBvc2VkUmVmc30gb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufSAvPlxuICApO1xufSk7XG5cbkZvY3VzU2NvcGUuZGlzcGxheU5hbWUgPSBGT0NVU19TQ09QRV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVdGlsc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIEF0dGVtcHRzIGZvY3VzaW5nIHRoZSBmaXJzdCBlbGVtZW50IGluIGEgbGlzdCBvZiBjYW5kaWRhdGVzLlxuICogU3RvcHMgd2hlbiBmb2N1cyBoYXMgYWN0dWFsbHkgbW92ZWQuXG4gKi9cbmZ1bmN0aW9uIGZvY3VzRmlyc3QoY2FuZGlkYXRlczogSFRNTEVsZW1lbnRbXSwgeyBzZWxlY3QgPSBmYWxzZSB9ID0ge30pIHtcbiAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgIGZvY3VzKGNhbmRpZGF0ZSwgeyBzZWxlY3QgfSk7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgYW5kIGxhc3QgdGFiYmFibGUgZWxlbWVudHMgaW5zaWRlIGEgY29udGFpbmVyLlxuICovXG5mdW5jdGlvbiBnZXRUYWJiYWJsZUVkZ2VzKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpO1xuICBjb25zdCBmaXJzdCA9IGZpbmRWaXNpYmxlKGNhbmRpZGF0ZXMsIGNvbnRhaW5lcik7XG4gIGNvbnN0IGxhc3QgPSBmaW5kVmlzaWJsZShjYW5kaWRhdGVzLnJldmVyc2UoKSwgY29udGFpbmVyKTtcbiAgcmV0dXJuIFtmaXJzdCwgbGFzdF0gYXMgY29uc3Q7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2YgcG90ZW50aWFsIHRhYmJhYmxlIGNhbmRpZGF0ZXMuXG4gKlxuICogTk9URTogVGhpcyBpcyBvbmx5IGEgY2xvc2UgYXBwcm94aW1hdGlvbi4gRm9yIGV4YW1wbGUgaXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCBjYXNlcyBsaWtlIHdoZW5cbiAqIGVsZW1lbnRzIGFyZSBub3QgdmlzaWJsZS4gVGhpcyBjYW5ub3QgYmUgd29ya2VkIG91dCBlYXNpbHkgYnkganVzdCByZWFkaW5nIGEgcHJvcGVydHksIGJ1dCByYXRoZXJcbiAqIG5lY2Vzc2l0YXRlIHJ1bnRpbWUga25vd2xlZGdlIChjb21wdXRlZCBzdHlsZXMsIGV0YykuIFdlIGRlYWwgd2l0aCB0aGVzZSBjYXNlcyBzZXBhcmF0ZWx5LlxuICpcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyZWVXYWxrZXJcbiAqIENyZWRpdDogaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvcmQvZm9jdXMtbGF5ZXJzL2Jsb2IvbWFzdGVyL3NyYy91dGlsL3dyYXBGb2N1cy50c3gjTDFcbiAqL1xuZnVuY3Rpb24gZ2V0VGFiYmFibGVDYW5kaWRhdGVzKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgY29uc3Qgbm9kZXM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgY29uc3Qgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb250YWluZXIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCB7XG4gICAgYWNjZXB0Tm9kZTogKG5vZGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW5JbnB1dCA9IG5vZGUudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiBub2RlLnR5cGUgPT09ICdoaWRkZW4nO1xuICAgICAgaWYgKG5vZGUuZGlzYWJsZWQgfHwgbm9kZS5oaWRkZW4gfHwgaXNIaWRkZW5JbnB1dCkgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICAvLyBgLnRhYkluZGV4YCBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGB0YWJpbmRleGAgYXR0cmlidXRlLiBJdCB3b3JrcyBvbiB0aGVcbiAgICAgIC8vIHJ1bnRpbWUncyB1bmRlcnN0YW5kaW5nIG9mIHRhYmJhYmlsaXR5LCBzbyB0aGlzIGF1dG9tYXRpY2FsbHkgYWNjb3VudHNcbiAgICAgIC8vIGZvciBhbnkga2luZCBvZiBlbGVtZW50IHRoYXQgY291bGQgYmUgdGFiYmVkIHRvLlxuICAgICAgcmV0dXJuIG5vZGUudGFiSW5kZXggPj0gMCA/IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCA6IE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfSxcbiAgfSk7XG4gIHdoaWxlICh3YWxrZXIubmV4dE5vZGUoKSkgbm9kZXMucHVzaCh3YWxrZXIuY3VycmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpO1xuICAvLyB3ZSBkbyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIG9yZGVyIG9mIG5vZGVzIHdpdGggcG9zaXRpdmUgYHRhYkluZGV4YCBhcyBpdFxuICAvLyBoaW5kZXJzIGFjY2Vzc2liaWxpdHkgdG8gaGF2ZSB0YWIgb3JkZXIgZGlmZmVyZW50IGZyb20gdmlzdWFsIG9yZGVyLlxuICByZXR1cm4gbm9kZXM7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgdmlzaWJsZSBlbGVtZW50IGluIGEgbGlzdC5cbiAqIE5PVEU6IE9ubHkgY2hlY2tzIHZpc2liaWxpdHkgdXAgdG8gdGhlIGBjb250YWluZXJgLlxuICovXG5mdW5jdGlvbiBmaW5kVmlzaWJsZShlbGVtZW50czogSFRNTEVsZW1lbnRbXSwgY29udGFpbmVyOiBIVE1MRWxlbWVudCkge1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcbiAgICAvLyB3ZSBzdG9wIGNoZWNraW5nIGlmIGl0J3MgaGlkZGVuIGF0IHRoZSBgY29udGFpbmVyYCBsZXZlbCAoZXhjbHVkaW5nKVxuICAgIGlmICghaXNIaWRkZW4oZWxlbWVudCwgeyB1cFRvOiBjb250YWluZXIgfSkpIHJldHVybiBlbGVtZW50O1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSGlkZGVuKG5vZGU6IEhUTUxFbGVtZW50LCB7IHVwVG8gfTogeyB1cFRvPzogSFRNTEVsZW1lbnQgfSkge1xuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJykgcmV0dXJuIHRydWU7XG4gIHdoaWxlIChub2RlKSB7XG4gICAgLy8gd2Ugc3RvcCBhdCBgdXBUb2AgKGV4Y2x1ZGluZyBpdClcbiAgICBpZiAodXBUbyAhPT0gdW5kZWZpbmVkICYmIG5vZGUgPT09IHVwVG8pIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNwbGF5ID09PSAnbm9uZScpIHJldHVybiB0cnVlO1xuICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1NlbGVjdGFibGVJbnB1dChlbGVtZW50OiBhbnkpOiBlbGVtZW50IGlzIEZvY3VzYWJsZVRhcmdldCAmIHsgc2VsZWN0OiAoKSA9PiB2b2lkIH0ge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgJ3NlbGVjdCcgaW4gZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZm9jdXMoZWxlbWVudD86IEZvY3VzYWJsZVRhcmdldCB8IG51bGwsIHsgc2VsZWN0ID0gZmFsc2UgfSA9IHt9KSB7XG4gIC8vIG9ubHkgZm9jdXMgaWYgdGhhdCBlbGVtZW50IGlzIGZvY3VzYWJsZVxuICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmZvY3VzKSB7XG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAvLyBOT1RFOiB3ZSBwcmV2ZW50IHNjcm9sbGluZyBvbiBmb2N1cywgdG8gbWluaW1pemUgamFycmluZyB0cmFuc2l0aW9ucyBmb3IgdXNlcnNcbiAgICBlbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAvLyBvbmx5IHNlbGVjdCBpZiBpdHMgbm90IHRoZSBzYW1lIGVsZW1lbnQsIGl0IHN1cHBvcnRzIHNlbGVjdGlvbiBhbmQgd2UgbmVlZCB0byBzZWxlY3RcbiAgICBpZiAoZWxlbWVudCAhPT0gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ICYmIGlzU2VsZWN0YWJsZUlucHV0KGVsZW1lbnQpICYmIHNlbGVjdClcbiAgICAgIGVsZW1lbnQuc2VsZWN0KCk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRm9jdXNTY29wZSBzdGFja1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIEZvY3VzU2NvcGVBUEkgPSB7IHBhdXNlZDogYm9vbGVhbjsgcGF1c2UoKTogdm9pZDsgcmVzdW1lKCk6IHZvaWQgfTtcbmNvbnN0IGZvY3VzU2NvcGVzU3RhY2sgPSBjcmVhdGVGb2N1c1Njb3Blc1N0YWNrKCk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUZvY3VzU2NvcGVzU3RhY2soKSB7XG4gIC8qKiBBIHN0YWNrIG9mIGZvY3VzIHNjb3Blcywgd2l0aCB0aGUgYWN0aXZlIG9uZSBhdCB0aGUgdG9wICovXG4gIGxldCBzdGFjazogRm9jdXNTY29wZUFQSVtdID0gW107XG5cbiAgcmV0dXJuIHtcbiAgICBhZGQoZm9jdXNTY29wZTogRm9jdXNTY29wZUFQSSkge1xuICAgICAgLy8gcGF1c2UgdGhlIGN1cnJlbnRseSBhY3RpdmUgZm9jdXMgc2NvcGUgKGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrKVxuICAgICAgY29uc3QgYWN0aXZlRm9jdXNTY29wZSA9IHN0YWNrWzBdO1xuICAgICAgaWYgKGZvY3VzU2NvcGUgIT09IGFjdGl2ZUZvY3VzU2NvcGUpIHtcbiAgICAgICAgYWN0aXZlRm9jdXNTY29wZT8ucGF1c2UoKTtcbiAgICAgIH1cbiAgICAgIC8vIHJlbW92ZSBpbiBjYXNlIGl0IGFscmVhZHkgZXhpc3RzIChiZWNhdXNlIHdlJ2xsIHJlLWFkZCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjaylcbiAgICAgIHN0YWNrID0gYXJyYXlSZW1vdmUoc3RhY2ssIGZvY3VzU2NvcGUpO1xuICAgICAgc3RhY2sudW5zaGlmdChmb2N1c1Njb3BlKTtcbiAgICB9LFxuXG4gICAgcmVtb3ZlKGZvY3VzU2NvcGU6IEZvY3VzU2NvcGVBUEkpIHtcbiAgICAgIHN0YWNrID0gYXJyYXlSZW1vdmUoc3RhY2ssIGZvY3VzU2NvcGUpO1xuICAgICAgc3RhY2tbMF0/LnJlc3VtZSgpO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFycmF5UmVtb3ZlPFQ+KGFycmF5OiBUW10sIGl0ZW06IFQpIHtcbiAgY29uc3QgdXBkYXRlZEFycmF5ID0gWy4uLmFycmF5XTtcbiAgY29uc3QgaW5kZXggPSB1cGRhdGVkQXJyYXkuaW5kZXhPZihpdGVtKTtcbiAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgIHVwZGF0ZWRBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG4gIHJldHVybiB1cGRhdGVkQXJyYXk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUxpbmtzKGl0ZW1zOiBIVE1MRWxlbWVudFtdKSB7XG4gIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udGFnTmFtZSAhPT0gJ0EnKTtcbn1cblxuY29uc3QgUm9vdCA9IEZvY3VzU2NvcGU7XG5cbmV4cG9ydCB7XG4gIEZvY3VzU2NvcGUsXG4gIC8vXG4gIFJvb3QsXG59O1xuZXhwb3J0IHR5cGUgeyBGb2N1c1Njb3BlUHJvcHMgfTtcbiJdLCJuYW1lcyI6WyJoYW5kbGVGb2N1c0luIiwiaGFuZGxlRm9jdXNPdXQiLCJoYW5kbGVNdXRhdGlvbnMiLCJjb250YWluZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs": /*!********************************************************!*\ !*** ./node_modules/@radix-ui/react-id/dist/index.mjs ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useId: () => (/* binding */ useId)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/id/src/id.tsx\n\n\nvar useReactId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(useReactId());\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQytCO0FBQ3FDO0FBQ3BFLGlCQUFpQix5TEFBSztBQUN0QjtBQUNBO0FBQ0Esc0JBQXNCLDJDQUFjO0FBQ3BDLEVBQUUsa0ZBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLEdBQUc7QUFDOUM7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvaWQvc3JjL2lkLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG52YXIgdXNlUmVhY3RJZCA9IFJlYWN0W1widXNlSWRcIi50b1N0cmluZygpXSB8fCAoKCkgPT4gdm9pZCAwKTtcbnZhciBjb3VudCA9IDA7XG5mdW5jdGlvbiB1c2VJZChkZXRlcm1pbmlzdGljSWQpIHtcbiAgY29uc3QgW2lkLCBzZXRJZF0gPSBSZWFjdC51c2VTdGF0ZSh1c2VSZWFjdElkKCkpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGV0ZXJtaW5pc3RpY0lkKSBzZXRJZCgocmVhY3RJZCkgPT4gcmVhY3RJZCA/PyBTdHJpbmcoY291bnQrKykpO1xuICB9LCBbZGV0ZXJtaW5pc3RpY0lkXSk7XG4gIHJldHVybiBkZXRlcm1pbmlzdGljSWQgfHwgKGlkID8gYHJhZGl4LSR7aWR9YCA6IFwiXCIpO1xufVxuZXhwb3J0IHtcbiAgdXNlSWRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs": /*!***********************************************************!*\ !*** ./node_modules/@radix-ui/react-label/dist/index.mjs ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Label,Root auto */ // packages/react/label/src/Label.tsx\n\n\n\nvar NAME = \"Label\";\nvar Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = (props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.label, {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event)=>{\n var _props_onMouseDown;\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n (_props_onMouseDown = props.onMouseDown) === null || _props_onMouseDown === void 0 ? void 0 : _props_onMouseDown.call(props, event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n });\n});\n_c1 = Label;\nLabel.displayName = NAME;\nvar Root = Label;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Label$React.forwardRef\");\n$RefreshReg$(_c1, \"Label\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtbGFiZWwvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVCO0FBQ0c7QUFjdEI7QUFSSixJQUFNLE9BQU87QUFNYixJQUFNLHNCQUFjLG1EQUFxQyxDQUFDLE9BQU87SUFDL0QsT0FDRSx1RUFBQyxnRUFBUyxDQUFDLE9BQVY7UUFDRSxHQUFHO1FBQ0osS0FBSztRQUNMLGFBQWEsQ0FBQztnQkFLWjtZQUhBLE1BQU0sU0FBUyxNQUFNO1lBQ3JCLElBQUksT0FBTyxRQUFRLGlDQUFpQyxFQUFHO2FBRXZELDJCQUFNLHlCQUFOLHdFQUFvQixLQUFLO1lBRXpCLElBQUksQ0FBQyxNQUFNLG9CQUFvQixNQUFNLFNBQVMsRUFBRyxPQUFNLGVBQWU7UUFDeEU7SUFBQTtBQUdOLENBQUM7O0FBRUQsTUFBTSxjQUFjO0FBSXBCLElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvTGFiZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBMYWJlbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBOQU1FID0gJ0xhYmVsJztcblxudHlwZSBMYWJlbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUubGFiZWw+O1xudHlwZSBQcmltaXRpdmVMYWJlbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUubGFiZWw+O1xuaW50ZXJmYWNlIExhYmVsUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVMYWJlbFByb3BzIHt9XG5cbmNvbnN0IExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxMYWJlbEVsZW1lbnQsIExhYmVsUHJvcHM+KChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5sYWJlbFxuICAgICAgey4uLnByb3BzfVxuICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgIC8vIG9ubHkgcHJldmVudCB0ZXh0IHNlbGVjdGlvbiBpZiBjbGlja2luZyBpbnNpZGUgdGhlIGxhYmVsIGl0c2VsZlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0YXJnZXQuY2xvc2VzdCgnYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpKSByZXR1cm47XG5cbiAgICAgICAgcHJvcHMub25Nb3VzZURvd24/LihldmVudCk7XG4gICAgICAgIC8vIHByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hlbiBkb3VibGUgY2xpY2tpbmcgbGFiZWxcbiAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkICYmIGV2ZW50LmRldGFpbCA+IDEpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59KTtcblxuTGFiZWwuZGlzcGxheU5hbWUgPSBOQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBMYWJlbDtcblxuZXhwb3J0IHtcbiAgTGFiZWwsXG4gIC8vXG4gIFJvb3QsXG59O1xuZXhwb3J0IHR5cGUgeyBMYWJlbFByb3BzIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-menu/dist/index.mjs": /*!**********************************************************!*\ !*** ./node_modules/@radix-ui/react-menu/dist/index.mjs ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor2),\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ CheckboxItem: () => (/* binding */ CheckboxItem),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Item: () => (/* binding */ Item2),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator),\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Menu: () => (/* binding */ Menu),\n/* harmony export */ MenuAnchor: () => (/* binding */ MenuAnchor),\n/* harmony export */ MenuArrow: () => (/* binding */ MenuArrow),\n/* harmony export */ MenuCheckboxItem: () => (/* binding */ MenuCheckboxItem),\n/* harmony export */ MenuContent: () => (/* binding */ MenuContent),\n/* harmony export */ MenuGroup: () => (/* binding */ MenuGroup),\n/* harmony export */ MenuItem: () => (/* binding */ MenuItem),\n/* harmony export */ MenuItemIndicator: () => (/* binding */ MenuItemIndicator),\n/* harmony export */ MenuLabel: () => (/* binding */ MenuLabel),\n/* harmony export */ MenuPortal: () => (/* binding */ MenuPortal),\n/* harmony export */ MenuRadioGroup: () => (/* binding */ MenuRadioGroup),\n/* harmony export */ MenuRadioItem: () => (/* binding */ MenuRadioItem),\n/* harmony export */ MenuSeparator: () => (/* binding */ MenuSeparator),\n/* harmony export */ MenuSub: () => (/* binding */ MenuSub),\n/* harmony export */ MenuSubContent: () => (/* binding */ MenuSubContent),\n/* harmony export */ MenuSubTrigger: () => (/* binding */ MenuSubTrigger),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ RadioGroup: () => (/* binding */ RadioGroup),\n/* harmony export */ RadioItem: () => (/* binding */ RadioItem),\n/* harmony export */ Root: () => (/* binding */ Root3),\n/* harmony export */ Separator: () => (/* binding */ Separator),\n/* harmony export */ Sub: () => (/* binding */ Sub),\n/* harmony export */ SubContent: () => (/* binding */ SubContent),\n/* harmony export */ SubTrigger: () => (/* binding */ SubTrigger),\n/* harmony export */ createMenuScope: () => (/* binding */ createMenuScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-roving-focus */ \"(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Anchor,Arrow,CheckboxItem,Content,Group,Item,ItemIndicator,Label,Menu,MenuAnchor,MenuArrow,MenuCheckboxItem,MenuContent,MenuGroup,MenuItem,MenuItemIndicator,MenuLabel,MenuPortal,MenuRadioGroup,MenuRadioItem,MenuSeparator,MenuSub,MenuSubContent,MenuSubTrigger,Portal,RadioGroup,RadioItem,Root,Separator,Sub,SubContent,SubTrigger,createMenuScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$();\n// packages/react/menu/src/Menu.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar FIRST_LAST_KEYS = [\n ...FIRST_KEYS,\n ...LAST_KEYS\n];\nvar SUB_OPEN_KEYS = {\n ltr: [\n ...SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\n \"ArrowLeft\"\n ],\n rtl: [\n \"ArrowRight\"\n ]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(MENU_NAME);\nvar [createMenuContext, createMenuScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(MENU_NAME, [\n createCollectionScope,\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.createPopperScope,\n _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.createRovingFocusGroupScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.createPopperScope)();\nvar useRovingFocusGroupScope = (0,_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.createRovingFocusGroupScope)();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props)=>{\n _s();\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const isUsingKeyboardRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleOpenChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onOpenChange);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__.useDirection)(dir);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Menu.useEffect\": ()=>{\n const handleKeyDown = {\n \"Menu.useEffect.handleKeyDown\": ()=>{\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n }\n }[\"Menu.useEffect.handleKeyDown\"];\n const handlePointer = {\n \"Menu.useEffect.handlePointer\": ()=>isUsingKeyboardRef.current = false\n }[\"Menu.useEffect.handlePointer\"];\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return ({\n \"Menu.useEffect\": ()=>{\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n }\n })[\"Menu.useEffect\"];\n }\n }[\"Menu.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootProvider, {\n scope: __scopeMenu,\n onClose: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Menu.useCallback\": ()=>handleOpenChange(false)\n }[\"Menu.useCallback\"], [\n handleOpenChange\n ]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n })\n })\n });\n};\n_s(Menu, \"s3TED/xxiblk6CJ7nFTmEKubTI0=\", false, function() {\n return [\n usePopperScope,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__.useDirection\n ];\n});\n_c = Menu;\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s1((props, forwardedRef)=>{\n _s1();\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Anchor, {\n ...popperScope,\n ...anchorProps,\n ref: forwardedRef\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n}));\n_c1 = MenuAnchor;\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props)=>{\n _s2();\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeMenu,\n forceMount,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children\n })\n })\n });\n};\n_s2(MenuPortal, \"Jc8vKAvq94jPZkBJYIZO/X0jxQk=\", false, function() {\n return [\n useMenuContext\n ];\n});\n_c2 = MenuPortal;\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s3((props, forwardedRef)=>{\n _s3();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeMenu,\n children: rootContext.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n })\n })\n });\n}, \"88aWBo7Y4OkW6oWjofHWFhQydGE=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext\n ];\n})), \"88aWBo7Y4OkW6oWjofHWFhQydGE=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext\n ];\n});\n_c4 = MenuContent;\nvar MenuRootContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuRootContentModal.useEffect\": ()=>{\n const content = ref.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_11__.hideOthers)(content);\n }\n }[\"MenuRootContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault(), {\n checkForDefaultPrevented: false\n }),\n onDismiss: ()=>context.onOpenChange(false)\n });\n}, \"JZl1V6I1pr8fHXBNF9+BmgCcv1M=\", false, function() {\n return [\n useMenuContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c5 = MenuRootContentModal;\nvar MenuRootContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s5((props, forwardedRef)=>{\n _s5();\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: ()=>context.onOpenChange(false)\n });\n}, \"Jc8vKAvq94jPZkBJYIZO/X0jxQk=\", false, function() {\n return [\n useMenuContext\n ];\n}));\n_c6 = MenuRootContentNonModal;\nvar MenuContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const { __scopeMenu, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEntryFocus, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, contentRef, context.onContentChange);\n const timerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const searchRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const pointerGraceTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const pointerGraceIntentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const pointerDirRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"right\");\n const lastPointerXRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? react_remove_scroll__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : react__WEBPACK_IMPORTED_MODULE_0__.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_14__.Slot,\n allowPinchZoom: true\n } : void 0;\n const handleTypeaheadSearch = (key)=>{\n var _items_find, _items_find1;\n const search = searchRef.current + key;\n const items = getItems().filter((item)=>!item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = (_items_find = items.find((item)=>item.ref.current === currentItem)) === null || _items_find === void 0 ? void 0 : _items_find.textValue;\n const values = items.map((item)=>item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = (_items_find1 = items.find((item)=>item.textValue === nextMatch)) === null || _items_find1 === void 0 ? void 0 : _items_find1.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(()=>updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(()=>newItem.focus());\n }\n };\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuContentImpl.useEffect\": ()=>{\n return ({\n \"MenuContentImpl.useEffect\": ()=>window.clearTimeout(timerRef.current)\n })[\"MenuContentImpl.useEffect\"];\n }\n }[\"MenuContentImpl.useEffect\"], []);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards)();\n const isPointerMovingToSubmenu = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback[isPointerMovingToSubmenu]\": (event)=>{\n var _pointerGraceIntentRef_current, _pointerGraceIntentRef_current1;\n const isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRef_current = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current === void 0 ? void 0 : _pointerGraceIntentRef_current.side);\n return isMovingTowards && isPointerInGraceArea(event, (_pointerGraceIntentRef_current1 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current1 === void 0 ? void 0 : _pointerGraceIntentRef_current1.area);\n }\n }[\"MenuContentImpl.useCallback[isPointerMovingToSubmenu]\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentProvider, {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n var _contentRef_current;\n if (isPointerMovingToSubmenu(event)) return;\n (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.focus();\n setCurrentItemId(null);\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (intent)=>{\n pointerGraceIntentRef.current = intent;\n }\n }[\"MenuContentImpl.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollLockWrapper, {\n ...scrollLockWrapperProps,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_16__.FocusScope, {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(onOpenAutoFocus, (event)=>{\n var _contentRef_current;\n event.preventDefault();\n (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.focus({\n preventScroll: true\n });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_17__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.Root, {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(onEntryFocus, (event)=>{\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Content, {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(contentProps.onKeyDown, (event)=>{\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item)=>!item.disabled);\n const candidateNodes = items.map((item)=>item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onBlur, (event)=>{\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n }))\n })\n })\n })\n })\n })\n });\n}, \"qe6U4z7qIQaBUgGjkDzQECcJRJ4=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n usePopperScope,\n useRovingFocusGroupScope,\n useCollection,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards\n ];\n}));\n_c7 = MenuContentImpl;\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"group\",\n ...groupProps,\n ref: forwardedRef\n });\n});\n_c8 = MenuGroup;\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c9 = (props, forwardedRef)=>{\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n ...labelProps,\n ref: forwardedRef\n });\n});\n_c10 = MenuLabel;\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n const isPointerDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleSelect = ()=>{\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItem.addEventListener(ITEM_SELECT, (event)=>onSelect === null || onSelect === void 0 ? void 0 : onSelect(event), {\n once: true\n });\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.dispatchDiscreteCustomEvent)(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItemImpl, {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onClick, handleSelect),\n onPointerDown: (event)=>{\n var _props_onPointerDown;\n (_props_onPointerDown = props.onPointerDown) === null || _props_onPointerDown === void 0 ? void 0 : _props_onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerUp, (event)=>{\n var _event_currentTarget;\n if (!isPointerDownRef.current) (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n });\n}, \"n4NCMoANrBHYaagbUs9HO/KGL+U=\", false, function() {\n return [\n useMenuRootContext,\n useMenuContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c11 = MenuItem;\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n const [isFocused, setIsFocused] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const [textContent, setTextContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuItemImpl.useEffect\": ()=>{\n const menuItem = ref.current;\n if (menuItem) {\n var _menuItem_textContent;\n setTextContent(((_menuItem_textContent = menuItem.textContent) !== null && _menuItem_textContent !== void 0 ? _menuItem_textContent : \"\").trim());\n }\n }\n }[\"MenuItemImpl.useEffect\"], [\n itemProps.children\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeMenu,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.Item, {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({\n preventScroll: true\n });\n }\n }\n })),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerLeave, whenMouse((event)=>contentContext.onItemLeave(event))),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocus, ()=>setIsFocused(true)),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onBlur, ()=>setIsFocused(false))\n })\n })\n });\n}, \"EIIU5nILlLlHidQF42Iw4DmWIAo=\", false, function() {\n return [\n useMenuContentContext,\n useRovingFocusGroupScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c12 = MenuItemImpl;\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c13 = (props, forwardedRef)=>{\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ItemIndicatorProvider, {\n scope: props.__scopeMenu,\n checked,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItem, {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(checkboxItemProps.onSelect, ()=>onCheckedChange === null || onCheckedChange === void 0 ? void 0 : onCheckedChange(isIndeterminate(checked) ? true : !checked), {\n checkForDefaultPrevented: false\n })\n })\n });\n});\n_c14 = MenuCheckboxItem;\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(RADIO_GROUP_NAME, {\n value: void 0,\n onValueChange: ()=>{}\n});\nvar MenuRadioGroup = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c15 = _s9((props, forwardedRef)=>{\n _s9();\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onValueChange);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RadioGroupProvider, {\n scope: props.__scopeMenu,\n value,\n onValueChange: handleValueChange,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuGroup, {\n ...groupProps,\n ref: forwardedRef\n })\n });\n}, \"Mcwj+JprOIrXmxtkZuo1sy6nu34=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n})), \"Mcwj+JprOIrXmxtkZuo1sy6nu34=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\n_c16 = MenuRadioGroup;\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c17 = _s10((props, forwardedRef)=>{\n _s10();\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ItemIndicatorProvider, {\n scope: props.__scopeMenu,\n checked,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItem, {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(radioItemProps.onSelect, ()=>{\n var _context_onValueChange;\n return (_context_onValueChange = context.onValueChange) === null || _context_onValueChange === void 0 ? void 0 : _context_onValueChange.call(context, value);\n }, {\n checkForDefaultPrevented: false\n })\n })\n });\n}, \"pu7nAGGQbggF4/7/93WWC5/VrL0=\", false, function() {\n return [\n useRadioGroupContext\n ];\n})), \"pu7nAGGQbggF4/7/93WWC5/VrL0=\", false, function() {\n return [\n useRadioGroupContext\n ];\n});\n_c18 = MenuRadioItem;\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(ITEM_INDICATOR_NAME, {\n checked: false\n});\nvar MenuItemIndicator = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c19 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.span, {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n })\n });\n}, \"W2/Y2Td7XZBLzAFnNcANg/AGfF8=\", false, function() {\n return [\n useItemIndicatorContext\n ];\n})), \"W2/Y2Td7XZBLzAFnNcANg/AGfF8=\", false, function() {\n return [\n useItemIndicatorContext\n ];\n});\n_c20 = MenuItemIndicator;\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c21 = (props, forwardedRef)=>{\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n });\n});\n_c22 = MenuSeparator;\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = /*#__PURE__*/ _s12(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c23 = _s12((props, forwardedRef)=>{\n _s12();\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n})), \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n});\n_c24 = MenuArrow;\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props)=>{\n _s13();\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const handleOpenChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onOpenChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSub.useEffect\": ()=>{\n if (parentMenuContext.open === false) handleOpenChange(false);\n return ({\n \"MenuSub.useEffect\": ()=>handleOpenChange(false)\n })[\"MenuSub.useEffect\"];\n }\n }[\"MenuSub.useEffect\"], [\n parentMenuContext.open,\n handleOpenChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuSubProvider, {\n scope: __scopeMenu,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId)(),\n triggerId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId)(),\n trigger,\n onTriggerChange: setTrigger,\n children\n })\n })\n });\n};\n_s13(MenuSub, \"oHJgNfGJeeigMsJqyuJgZ/xXcaA=\", false, function() {\n return [\n useMenuContext,\n usePopperScope,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId\n ];\n});\n_c25 = MenuSub;\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = /*#__PURE__*/ _s14(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c26 = _s14((props, forwardedRef)=>{\n _s14();\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = {\n __scopeMenu: props.__scopeMenu\n };\n const clearOpenTimer = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuSubTrigger.useCallback[clearOpenTimer]\": ()=>{\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }\n }[\"MenuSubTrigger.useCallback[clearOpenTimer]\"], []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSubTrigger.useEffect\": ()=>clearOpenTimer\n }[\"MenuSubTrigger.useEffect\"], [\n clearOpenTimer\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSubTrigger.useEffect\": ()=>{\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return ({\n \"MenuSubTrigger.useEffect\": ()=>{\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n }\n })[\"MenuSubTrigger.useEffect\"];\n }\n }[\"MenuSubTrigger.useEffect\"], [\n pointerGraceTimerRef,\n onPointerGraceIntentChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuAnchor, {\n asChild: true,\n ...scope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItemImpl, {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.composeRefs)(forwardedRef, subContext.onTriggerChange),\n onClick: (event)=>{\n var _props_onClick;\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(()=>{\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerLeave, whenMouse((event)=>{\n var _context_content;\n clearOpenTimer();\n const contentRect = (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.getBoundingClientRect();\n if (contentRect) {\n var _context_content1;\n const side = (_context_content1 = context.content) === null || _context_content1 === void 0 ? void 0 : _context_content1.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n {\n x: event.clientX + bleed,\n y: event.clientY\n },\n {\n x: contentNearEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.bottom\n },\n {\n x: contentNearEdge,\n y: contentRect.bottom\n }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null), 300);\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n var _context_content;\n context.onOpenChange(true);\n (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.focus();\n event.preventDefault();\n }\n })\n })\n });\n}, \"/ehIxLkqpn6AwUD2r8VUL6WM7sc=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n useMenuContentContext\n ];\n})), \"/ehIxLkqpn6AwUD2r8VUL6WM7sc=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n useMenuContentContext\n ];\n});\n_c27 = MenuSubTrigger;\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = /*#__PURE__*/ _s15(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c28 = _s15((props, forwardedRef)=>{\n _s15();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event)=>{\n var _ref_current;\n if (rootContext.isUsingKeyboardRef.current) (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event)=>event.preventDefault(),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocusOutside, (event)=>{\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onEscapeKeyDown, (event)=>{\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n var _subContext_trigger;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus();\n event.preventDefault();\n }\n })\n })\n })\n })\n });\n}, \"C8o93gKdg5HNUblK4mz+D9S6O8c=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n})), \"C8o93gKdg5HNUblK4mz+D9S6O8c=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n});\n_c29 = MenuSubContent;\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v)=>v !== currentMatch);\n const nextMatch = wrappedValues.find((value)=>value.toLowerCase().startsWith(normalizedSearch.toLowerCase()));\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event)=>event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19, _c20, _c21, _c22, _c23, _c24, _c25, _c26, _c27, _c28, _c29;\n$RefreshReg$(_c, \"Menu\");\n$RefreshReg$(_c1, \"MenuAnchor\");\n$RefreshReg$(_c2, \"MenuPortal\");\n$RefreshReg$(_c3, \"MenuContent$React.forwardRef\");\n$RefreshReg$(_c4, \"MenuContent\");\n$RefreshReg$(_c5, \"MenuRootContentModal\");\n$RefreshReg$(_c6, \"MenuRootContentNonModal\");\n$RefreshReg$(_c7, \"MenuContentImpl\");\n$RefreshReg$(_c8, \"MenuGroup\");\n$RefreshReg$(_c9, \"MenuLabel$React.forwardRef\");\n$RefreshReg$(_c10, \"MenuLabel\");\n$RefreshReg$(_c11, \"MenuItem\");\n$RefreshReg$(_c12, \"MenuItemImpl\");\n$RefreshReg$(_c13, \"MenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c14, \"MenuCheckboxItem\");\n$RefreshReg$(_c15, \"MenuRadioGroup$React.forwardRef\");\n$RefreshReg$(_c16, \"MenuRadioGroup\");\n$RefreshReg$(_c17, \"MenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c18, \"MenuRadioItem\");\n$RefreshReg$(_c19, \"MenuItemIndicator$React.forwardRef\");\n$RefreshReg$(_c20, \"MenuItemIndicator\");\n$RefreshReg$(_c21, \"MenuSeparator$React.forwardRef\");\n$RefreshReg$(_c22, \"MenuSeparator\");\n$RefreshReg$(_c23, \"MenuArrow$React.forwardRef\");\n$RefreshReg$(_c24, \"MenuArrow\");\n$RefreshReg$(_c25, \"MenuSub\");\n$RefreshReg$(_c26, \"MenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c27, \"MenuSubTrigger\");\n$RefreshReg$(_c28, \"MenuSubContent$React.forwardRef\");\n$RefreshReg$(_c29, \"MenuSubContent\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtbWVudS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ2M7QUFDSjtBQUNZO0FBQ1Y7QUFDTjtBQUNJO0FBQ0Y7QUFDSjtBQUNMO0FBQ1c7QUFDQztBQUNRO0FBQ2pCO0FBQzhCO0FBQ3JCO0FBQ1U7QUFDdkI7QUFDVTtBQUNKO0FBQ0U7QUFvR3JCO0FBOUZSLElBQU0saUJBQWlCO0lBQUM7SUFBUyxHQUFHO0NBQUE7QUFDcEMsSUFBTSxhQUFhO0lBQUM7SUFBYTtJQUFVLE1BQU07Q0FBQTtBQUNqRCxJQUFNLFlBQVk7SUFBQztJQUFXO0lBQVksS0FBSztDQUFBO0FBQy9DLElBQU0sa0JBQWtCLENBQUM7T0FBRztPQUFlLFNBQVM7Q0FBQTtBQUNwRCxJQUFNLGdCQUE2QztJQUNqRCxLQUFLLENBQUM7V0FBRztRQUFnQixZQUFZO0tBQUE7SUFDckMsS0FBSyxDQUFDO1dBQUc7UUFBZ0IsV0FBVztLQUFBO0FBQ3RDO0FBQ0EsSUFBTSxpQkFBOEM7SUFDbEQsS0FBSztRQUFDLFdBQVc7S0FBQTtJQUNqQixLQUFLO1FBQUMsWUFBWTtLQUFBO0FBQ3BCO0FBTUEsSUFBTSxZQUFZO0FBR2xCLElBQU0sQ0FBQyxZQUFZLGVBQWUscUJBQXFCLElBQUksNEVBQWdCLENBR3pFLFNBQVM7QUFHWCxJQUFNLENBQUMsbUJBQW1CLGVBQWUsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0lBQ3pFO0lBQ0EscUVBQWlCO0lBQ2pCLHFGQUEyQjtDQUM1QjtBQUNELElBQU0saUJBQWlCLHlFQUFpQixDQUFDO0FBQ3pDLElBQU0sMkJBQTJCLHlGQUEyQixDQUFDO0FBUzdELElBQU0sQ0FBQyxjQUFjLGNBQWMsSUFBSSxrQkFBb0MsU0FBUztBQVNwRixJQUFNLENBQUMsa0JBQWtCLGtC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QUFRLEtBQUssS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLE1BQU07UUFDckYsSUFBSSxVQUFXLFVBQVMsQ0FBQztJQUMzQjtJQUVBLE9BQU87QUFDVDtBQUVBLFNBQVMscUJBQXFCLE9BQTJCLE1BQWdCO0lBQ3ZFLElBQUksQ0FBQyxLQUFNLFFBQU87SUFDbEIsTUFBTSxZQUFZO1FBQUUsR0FBRyxNQUFNO1FBQVMsR0FBRyxNQUFNO0lBQVE7SUFDdkQsT0FBTyxpQkFBaUIsV0FBVyxJQUFJO0FBQ3pDO0FBRUEsU0FBUyxVQUFhLFNBQXFFO0lBQ3pGLE9BQU8sQ0FBQyxRQUFXLE1BQU0sZ0JBQWdCLFVBQVUsUUFBUSxLQUFLLElBQUk7QUFDdEU7QUFFQSxJQUFNQSxRQUFPO0FBQ2IsSUFBTUMsVUFBUztBQUNmLElBQU0sU0FBUztBQUNmLElBQU1DLFdBQVU7QUFDaEIsSUFBTSxRQUFRO0FBQ2QsSUFBTSxRQUFRO0FBQ2QsSUFBTUMsUUFBTztBQUNiLElBQU0sZUFBZTtBQUNyQixJQUFNLGFBQWE7QUFDbkIsSUFBTSxZQUFZO0FBQ2xCLElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0sWUFBWTtBQUNsQixJQUFNQyxTQUFRO0FBQ2QsSUFBTSxNQUFNO0FBQ1osSUFBTSxhQUFhO0FBQ25CLElBQU0sYUFBYSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvTWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMsIGNvbXBvc2VSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uJztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgdXNlRm9jdXNHdWFyZHMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzJztcbmltcG9ydCB7IEZvY3VzU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuaW1wb3J0ICogYXMgUG9wcGVyUHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wb3BwZXInO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSwgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1yb3ZpbmctZm9jdXMnO1xuaW1wb3J0IHsgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cyc7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyBoaWRlT3RoZXJzIH0gZnJvbSAnYXJpYS1oaWRkZW4nO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbCc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxuY29uc3QgU0VMRUNUSU9OX0tFWVMgPSBbJ0VudGVyJywgJyAnXTtcbmNvbnN0IEZJUlNUX0tFWVMgPSBbJ0Fycm93RG93bicsICdQYWdlVXAnLCAnSG9tZSddO1xuY29uc3QgTEFTVF9LRVlTID0gWydBcnJvd1VwJywgJ1BhZ2VEb3duJywgJ0VuZCddO1xuY29uc3QgRklSU1RfTEFTVF9LRVlTID0gWy4uLkZJUlNUX0tFWVMsIC4uLkxBU1RfS0VZU107XG5jb25zdCBTVUJfT1BFTl9LRVlTOiBSZWNvcmQ8RGlyZWN0aW9uLCBzdHJpbmdbXT4gPSB7XG4gIGx0cjogWy4uLlNFTEVDVElPTl9LRVlTLCAnQXJyb3dSaWdodCddLFxuICBydGw6IFsuLi5TRUxFQ1RJT05fS0VZUywgJ0Fycm93TGVmdCddLFxufTtcbmNvbnN0IFNVQl9DTE9TRV9LRVlTOiBSZWNvcmQ8RGlyZWN0aW9uLCBzdHJpbmdbXT4gPSB7XG4gIGx0cjogWydBcnJvd0xlZnQnXSxcbiAgcnRsOiBbJ0Fycm93UmlnaHQnXSxcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTUVOVV9OQU1FID0gJ01lbnUnO1xuXG50eXBlIEl0ZW1EYXRhID0geyBkaXNhYmxlZDogYm9vbGVhbjsgdGV4dFZhbHVlOiBzdHJpbmcgfTtcbmNvbnN0IFtDb2xsZWN0aW9uLCB1c2VDb2xsZWN0aW9uLCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29sbGVjdGlvbjxcbiAgTWVudUl0ZW1FbGVtZW50LFxuICBJdGVtRGF0YVxuPihNRU5VX05BTUUpO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZU1lbnU/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZU1lbnVDb250ZXh0LCBjcmVhdGVNZW51U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKE1FTlVfTkFNRSwgW1xuICBjcmVhdGVDb2xsZWN0aW9uU2NvcGUsXG4gIGNyZWF0ZVBvcHBlclNjb3BlLFxuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG5dKTtcbmNvbnN0IHVzZVBvcHBlclNjb3BlID0gY3JlYXRlUG9wcGVyU2NvcGUoKTtcbmNvbnN0IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSgpO1xuXG50eXBlIE1lbnVDb250ZXh0VmFsdWUgPSB7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgY29udGVudDogTWVudUNvbnRlbnRFbGVtZW50IHwgbnVsbDtcbiAgb25Db250ZW50Q2hhbmdlKGNvbnRlbnQ6IE1lbnVDb250ZW50RWxlbWVudCB8IG51bGwpOiB2b2lkO1xufTtcblxuY29uc3QgW01lbnVQcm92aWRlciwgdXNlTWVudUNvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8TWVudUNvbnRleHRWYWx1ZT4oTUVOVV9OQU1FKTtcblxudHlwZSBNZW51Um9vdENvbnRleHRWYWx1ZSA9IHtcbiAgb25DbG9zZSgpOiB2b2lkO1xuICBpc1VzaW5nS2V5Ym9hcmRSZWY6IFJlYWN0LlJlZk9iamVjdDxib29sZWFuPjtcbiAgZGlyOiBEaXJlY3Rpb247XG4gIG1vZGFsOiBib29sZWFuO1xufTtcblxuY29uc3QgW01lbnVSb290UHJvdmlkZXIsIHVzZU1lbnVSb290Q29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dDxNZW51Um9vdENvbnRleHRWYWx1ZT4oTUVOVV9OQU1FKTtcblxuaW50ZXJmYWNlIE1lbnVQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlPyhvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgZGlyPzogRGlyZWN0aW9uO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IE1lbnU6IFJlYWN0LkZDPE1lbnVQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlTWVudSwgb3BlbiA9IGZhbHNlLCBjaGlsZHJlbiwgZGlyLCBvbk9wZW5DaGFuZ2UsIG1vZGFsID0gdHJ1ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZU1lbnUpO1xuICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxNZW51Q29udGVudEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaXNVc2luZ0tleWJvYXJkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uT3BlbkNoYW5nZSk7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ2FwdHVyZSBwaGFzZSBlbnN1cmVzIHdlIHNldCB0aGUgYm9vbGVhbiBiZWZvcmUgYW55IHNpZGUgZWZmZWN0cyBleGVjdXRlXG4gICAgLy8gaW4gcmVzcG9uc2UgdG8gdGhlIGtleSBvciBwb2ludGVyIGV2ZW50IGFzIHRoZXkgbWlnaHQgZGVwZW5kIG9uIHRoaXMgdmFsdWUuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9ICgpID0+IHtcbiAgICAgIGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVQb2ludGVyLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyID0gKCkgPT4gKGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gZmFsc2UpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxQb3BwZXJQcmltaXRpdmUuUm9vdCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgPE1lbnVQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZU1lbnV9XG4gICAgICAgIG9wZW49e29wZW59XG4gICAgICAgIG9uT3BlbkNoYW5nZT17aGFuZGxlT3BlbkNoYW5nZX1cbiAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgb25Db250ZW50Q2hhbmdlPXtzZXRDb250ZW50fVxuICAgICAgPlxuICAgICAgICA8TWVudVJvb3RQcm92aWRlclxuICAgICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgICBvbkNsb3NlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKSwgW2hhbmRsZU9wZW5DaGFuZ2VdKX1cbiAgICAgICAgICBpc1VzaW5nS2V5Ym9hcmRSZWY9e2lzVXNpbmdLZXlib2FyZFJlZn1cbiAgICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgICBtb2RhbD17bW9kYWx9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvTWVudVJvb3RQcm92aWRlcj5cbiAgICAgIDwvTWVudVByb3ZpZGVyPlxuICAgIDwvUG9wcGVyUHJpbWl0aXZlLlJvb3Q+XG4gICk7XG59O1xuXG5NZW51LmRpc3BsYXlOYW1lID0gTUVOVV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51QW5jaG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFOQ0hPUl9OQU1FID0gJ01lbnVBbmNob3InO1xuXG50eXBlIE1lbnVBbmNob3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkFuY2hvcj47XG50eXBlIFBvcHBlckFuY2hvclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQW5jaG9yPjtcbmludGVyZmFjZSBNZW51QW5jaG9yUHJvcHMgZXh0ZW5kcyBQb3BwZXJBbmNob3JQcm9wcyB7fVxuXG5jb25zdCBNZW51QW5jaG9yID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51QW5jaG9yRWxlbWVudCwgTWVudUFuY2hvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51QW5jaG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVNZW51LCAuLi5hbmNob3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgcmV0dXJuIDxQb3BwZXJQcmltaXRpdmUuQW5jaG9yIHsuLi5wb3BwZXJTY29wZX0gey4uLmFuY2hvclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbk1lbnVBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudVBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdNZW51UG9ydGFsJztcblxudHlwZSBQb3J0YWxDb250ZXh0VmFsdWUgPSB7IGZvcmNlTW91bnQ/OiB0cnVlIH07XG5jb25zdCBbUG9ydGFsUHJvdmlkZXIsIHVzZVBvcnRhbENvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8UG9ydGFsQ29udGV4dFZhbHVlPihQT1JUQUxfTkFNRSwge1xuICBmb3JjZU1vdW50OiB1bmRlZmluZWQsXG59KTtcblxudHlwZSBQb3J0YWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9ydGFsUHJpbWl0aXZlPjtcbmludGVyZmFjZSBNZW51UG9ydGFsUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjb250YWluZXIgZWxlbWVudCB0byBwb3J0YWwgdGhlIGNvbnRlbnQgaW50by5cbiAgICovXG4gIGNvbnRhaW5lcj86IFBvcnRhbFByb3BzWydjb250YWluZXInXTtcbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IE1lbnVQb3J0YWw6IFJlYWN0LkZDPE1lbnVQb3J0YWxQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVQb3J0YWxQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlTWVudSwgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChQT1JUQUxfTkFNRSwgX19zY29wZU1lbnUpO1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWxQcm92aWRlciBzY29wZT17X19zY29wZU1lbnV9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9PlxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAgPFBvcnRhbFByaW1pdGl2ZSBhc0NoaWxkIGNvbnRhaW5lcj17Y29udGFpbmVyfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUG9ydGFsUHJpbWl0aXZlPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICA8L1BvcnRhbFByb3ZpZGVyPlxuICApO1xufTtcblxuTWVudVBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51Q29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnTWVudUNvbnRlbnQnO1xuXG50eXBlIE1lbnVDb250ZW50Q29udGV4dFZhbHVlID0ge1xuICBvbkl0ZW1FbnRlcihldmVudDogUmVhY3QuUG9pbnRlckV2ZW50KTogdm9pZDtcbiAgb25JdGVtTGVhdmUoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCk6IHZvaWQ7XG4gIG9uVHJpZ2dlckxlYXZlKGV2ZW50OiBSZWFjdC5Qb2ludGVyRXZlbnQpOiB2b2lkO1xuICBzZWFyY2hSZWY6IFJlYWN0LlJlZk9iamVjdDxzdHJpbmc+O1xuICBwb2ludGVyR3JhY2VUaW1lclJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxudW1iZXI+O1xuICBvblBvaW50ZXJHcmFjZUludGVudENoYW5nZShpbnRlbnQ6IEdyYWNlSW50ZW50IHwgbnVsbCk6IHZvaWQ7XG59O1xuY29uc3QgW01lbnVDb250ZW50UHJvdmlkZXIsIHVzZU1lbnVDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVNZW51Q29udGV4dDxNZW51Q29udGVudENvbnRleHRWYWx1ZT4oQ09OVEVOVF9OQU1FKTtcblxudHlwZSBNZW51Q29udGVudEVsZW1lbnQgPSBNZW51Um9vdENvbnRlbnRUeXBlRWxlbWVudDtcbi8qKlxuICogV2UgcHVycG9zZWZ1bGx5IGRvbid0IHVuaW9uIE1lbnVSb290Q29udGVudCBhbmQgTWVudVN1YkNvbnRlbnQgcHJvcHMgaGVyZSBiZWNhdXNlXG4gKiB0aGV5IGhhdmUgY29uZmxpY3RpbmcgcHJvcCB0eXBlcy4gV2UgYWdyZWVkIHRoYXQgd2Ugd291bGQgYWxsb3cgTWVudVN1YkNvbnRlbnQgdG9cbiAqIGFjY2VwdCBwcm9wcyB0aGF0IGl0IHdvdWxkIGp1c3QgaWdub3JlLlxuICovXG5pbnRlcmZhY2UgTWVudUNvbnRlbnRQcm9wcyBleHRlbmRzIE1lbnVSb290Q29udGVudFR5cGVQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51Q29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUNvbnRlbnRFbGVtZW50LCBNZW51Q29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51Q29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sbGVjdGlvbi5Qcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9PlxuICAgICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICAgIDxDb2xsZWN0aW9uLlNsb3Qgc2NvcGU9e3Byb3BzLl9fc2NvcGVNZW51fT5cbiAgICAgICAgICAgIHtyb290Q29udGV4dC5tb2RhbCA/IChcbiAgICAgICAgICAgICAgPE1lbnVSb290Q29udGVudE1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnVSb290Q29udGVudE5vbk1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgTWVudVJvb3RDb250ZW50VHlwZUVsZW1lbnQgPSBNZW51Q29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIE1lbnVSb290Q29udGVudFR5cGVQcm9wc1xuICBleHRlbmRzIE9taXQ8TWVudUNvbnRlbnRJbXBsUHJvcHMsIGtleW9mIE1lbnVDb250ZW50SW1wbFByaXZhdGVQcm9wcz4ge31cblxuY29uc3QgTWVudVJvb3RDb250ZW50TW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVSb290Q29udGVudFR5cGVFbGVtZW50LCBNZW51Um9vdENvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVSb290Q29udGVudFR5cGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8TWVudVJvb3RDb250ZW50VHlwZUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG5cbiAgICAvLyBIaWRlIGV2ZXJ5dGhpbmcgZnJvbSBBUklBIGV4Y2VwdCB0aGUgYE1lbnVDb250ZW50YFxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gcmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51Q29udGVudEltcGxcbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHdlJ3JlIG5vdCB0cmFwcGluZyBvbmNlIGl0J3MgYmVlbiBjbG9zZWRcbiAgICAgICAgLy8gKGNsb3NlZCAhPT0gdW5tb3VudGVkIHdoZW4gYW5pbWF0aW5nIG91dClcbiAgICAgICAgdHJhcEZvY3VzPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0byBvbmx5IGRpc2FibGUgcG9pbnRlciBldmVudHMgd2hlbiBvcGVuXG4gICAgICAgIC8vIHRoaXMgYXZvaWRzIGJsb2NraW5nIGludGVyYWN0aW9ucyB3aGlsZSBhbmltYXRpbmcgb3V0XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17Y29udGV4dC5vcGVufVxuICAgICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbFxuICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgYGZvY3Vzb3V0YCBldmVudCBtYXkgc3RpbGwgaGFwcGVuLlxuICAgICAgICAvLyBXZSBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJpZ2dlciBvdXIgYG9uRGlzbWlzc2AgaW4gc3VjaCBjYXNlLlxuICAgICAgICBvbkZvY3VzT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcHJvcHMub25Gb2N1c091dHNpZGUsXG4gICAgICAgICAgKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgICl9XG4gICAgICAgIG9uRGlzbWlzcz17KCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBNZW51Um9vdENvbnRlbnROb25Nb2RhbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIE1lbnVSb290Q29udGVudFR5cGVFbGVtZW50LFxuICBNZW51Um9vdENvbnRlbnRUeXBlUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxNZW51Um9vdENvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICByZXR1cm4gKFxuICAgIDxNZW51Q29udGVudEltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgdHJhcEZvY3VzPXtmYWxzZX1cbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbD17ZmFsc2V9XG4gICAgICBvbkRpc21pc3M9eygpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKX1cbiAgICAvPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBNZW51Q29udGVudEltcGxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBGb2N1c1Njb3BlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEZvY3VzU2NvcGU+O1xudHlwZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBSb3ZpbmdGb2N1c0dyb3VwUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFJvdmluZ0ZvY3VzR3JvdXAuUm9vdD47XG50eXBlIFBvcHBlckNvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBNZW51Q29udGVudEltcGxQcml2YXRlUHJvcHMgPSB7XG4gIG9uT3BlbkF1dG9Gb2N1cz86IEZvY3VzU2NvcGVQcm9wc1snb25Nb3VudEF1dG9Gb2N1cyddO1xuICBvbkRpc21pc3M/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ29uRGlzbWlzcyddO1xuICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ2Rpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyddO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHNjcm9sbGluZyBvdXRzaWRlIHRoZSBgTWVudUNvbnRlbnRgIHNob3VsZCBiZSBwcmV2ZW50ZWRcbiAgICogKGRlZmF1bHQ6IGBmYWxzZWApXG4gICAqL1xuICBkaXNhYmxlT3V0c2lkZVNjcm9sbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZm9jdXMgc2hvdWxkIGJlIHRyYXBwZWQgd2l0aGluIHRoZSBgTWVudUNvbnRlbnRgXG4gICAqIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIHRyYXBGb2N1cz86IEZvY3VzU2NvcGVQcm9wc1sndHJhcHBlZCddO1xufTtcbmludGVyZmFjZSBNZW51Q29udGVudEltcGxQcm9wc1xuICBleHRlbmRzIE1lbnVDb250ZW50SW1wbFByaXZhdGVQcm9wcyxcbiAgICBPbWl0PFBvcHBlckNvbnRlbnRQcm9wcywgJ2RpcicgfCAnb25QbGFjZWQnPiB7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcblxuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBsb29wIGFyb3VuZFxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydsb29wJ107XG5cbiAgb25FbnRyeUZvY3VzPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydvbkVudHJ5Rm9jdXMnXTtcbiAgb25Fc2NhcGVLZXlEb3duPzogRGlzbWlzc2FibGVMYXllclByb3BzWydvbkVzY2FwZUtleURvd24nXTtcbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ29uUG9pbnRlckRvd25PdXRzaWRlJ107XG4gIG9uRm9jdXNPdXRzaWRlPzogRGlzbWlzc2FibGVMYXllclByb3BzWydvbkZvY3VzT3V0c2lkZSddO1xuICBvbkludGVyYWN0T3V0c2lkZT86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25JbnRlcmFjdE91dHNpZGUnXTtcbn1cblxuY29uc3QgTWVudUNvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51Q29udGVudEltcGxFbGVtZW50LCBNZW51Q29udGVudEltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudUNvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlTWVudSxcbiAgICAgIGxvb3AgPSBmYWxzZSxcbiAgICAgIHRyYXBGb2N1cyxcbiAgICAgIG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICBvbkVudHJ5Rm9jdXMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxuICAgICAgb25JbnRlcmFjdE91dHNpZGUsXG4gICAgICBvbkRpc21pc3MsXG4gICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbCxcbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTWVudUNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VNZW51Um9vdENvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlTWVudSk7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IFtjdXJyZW50SXRlbUlkLCBzZXRDdXJyZW50SXRlbUlkXSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYsIGNvbnRleHQub25Db250ZW50Q2hhbmdlKTtcbiAgICBjb25zdCB0aW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBzZWFyY2hSZWYgPSBSZWFjdC51c2VSZWYoJycpO1xuICAgIGNvbnN0IHBvaW50ZXJHcmFjZVRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICAgIGNvbnN0IHBvaW50ZXJHcmFjZUludGVudFJlZiA9IFJlYWN0LnVzZVJlZjxHcmFjZUludGVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IHBvaW50ZXJEaXJSZWYgPSBSZWFjdC51c2VSZWY8U2lkZT4oJ3JpZ2h0Jyk7XG4gICAgY29uc3QgbGFzdFBvaW50ZXJYUmVmID0gUmVhY3QudXNlUmVmKDApO1xuXG4gICAgY29uc3QgU2Nyb2xsTG9ja1dyYXBwZXIgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbCA/IFJlbW92ZVNjcm9sbCA6IFJlYWN0LkZyYWdtZW50O1xuICAgIGNvbnN0IHNjcm9sbExvY2tXcmFwcGVyUHJvcHMgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbFxuICAgICAgPyB7IGFzOiBTbG90LCBhbGxvd1BpbmNoWm9vbTogdHJ1ZSB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGhhbmRsZVR5cGVhaGVhZFNlYXJjaCA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoUmVmLmN1cnJlbnQgKyBrZXk7XG4gICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50TWF0Y2ggPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ID09PSBjdXJyZW50SXRlbSk/LnRleHRWYWx1ZTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0VmFsdWUpO1xuICAgICAgY29uc3QgbmV4dE1hdGNoID0gZ2V0TmV4dE1hdGNoKHZhbHVlcywgc2VhcmNoLCBjdXJyZW50TWF0Y2gpO1xuICAgICAgY29uc3QgbmV3SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udGV4dFZhbHVlID09PSBuZXh0TWF0Y2gpPy5yZWYuY3VycmVudDtcblxuICAgICAgLy8gUmVzZXQgYHNlYXJjaFJlZmAgMSBzZWNvbmQgYWZ0ZXIgaXQgd2FzIGxhc3QgdXBkYXRlZFxuICAgICAgKGZ1bmN0aW9uIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHNlYXJjaFJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycpIHRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB1cGRhdGVTZWFyY2goJycpLCAxMDAwKTtcbiAgICAgIH0pKHNlYXJjaCk7XG5cbiAgICAgIGlmIChuZXdJdGVtKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbXBlcmF0aXZlIGZvY3VzIGR1cmluZyBrZXlkb3duIGlzIHJpc2t5IHNvIHdlIHByZXZlbnQgUmVhY3QncyBiYXRjaGluZyB1cGRhdGVzXG4gICAgICAgICAqIHRvIGF2b2lkIHBvdGVudGlhbCBidWdzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjAzMzJcbiAgICAgICAgICovXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKG5ld0l0ZW0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBNZW51Q29udGVudGAgbWF5IGJlXG4gICAgLy8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgRE9NIChiZWNhdXNlIG9mIHRoZSBgUG9ydGFsYClcbiAgICB1c2VGb2N1c0d1YXJkcygpO1xuXG4gICAgY29uc3QgaXNQb2ludGVyTW92aW5nVG9TdWJtZW51ID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzTW92aW5nVG93YXJkcyA9IHBvaW50ZXJEaXJSZWYuY3VycmVudCA9PT0gcG9pbnRlckdyYWNlSW50ZW50UmVmLmN1cnJlbnQ/LnNpZGU7XG4gICAgICByZXR1cm4gaXNNb3ZpbmdUb3dhcmRzICYmIGlzUG9pbnRlckluR3JhY2VBcmVhKGV2ZW50LCBwb2ludGVyR3JhY2VJbnRlbnRSZWYuY3VycmVudD8uYXJlYSk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51Q29udGVudFByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgc2VhcmNoUmVmPXtzZWFyY2hSZWZ9XG4gICAgICAgIG9uSXRlbUVudGVyPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnUoZXZlbnQpKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgW2lzUG9pbnRlck1vdmluZ1RvU3VibWVudV1cbiAgICAgICAgKX1cbiAgICAgICAgb25JdGVtTGVhdmU9e1JlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUG9pbnRlck1vdmluZ1RvU3VibWVudShldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRJdGVtSWQobnVsbCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbaXNQb2ludGVyTW92aW5nVG9TdWJtZW51XVxuICAgICAgICApfVxuICAgICAgICBvblRyaWdnZXJMZWF2ZT17UmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQb2ludGVyTW92aW5nVG9TdWJtZW51KGV2ZW50KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnVdXG4gICAgICAgICl9XG4gICAgICAgIHBvaW50ZXJHcmFjZVRpbWVyUmVmPXtwb2ludGVyR3JhY2VUaW1lclJlZn1cbiAgICAgICAgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2U9e1JlYWN0LnVzZUNhbGxiYWNrKChpbnRlbnQpID0+IHtcbiAgICAgICAgICBwb2ludGVyR3JhY2VJbnRlbnRSZWYuY3VycmVudCA9IGludGVudDtcbiAgICAgICAgfSwgW10pfVxuICAgICAgPlxuICAgICAgICA8U2Nyb2xsTG9ja1dyYXBwZXIgey4uLnNjcm9sbExvY2tXcmFwcGVyUHJvcHN9PlxuICAgICAgICAgIDxGb2N1c1Njb3BlXG4gICAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgICB0cmFwcGVkPXt0cmFwRm9jdXN9XG4gICAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhvbk9wZW5BdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAvLyB3aGVuIG9wZW5pbmcsIGV4cGxpY2l0bHkgZm9jdXMgdGhlIGNvbnRlbnQgYXJlYSBvbmx5IGFuZCBsZWF2ZVxuICAgICAgICAgICAgICAvLyBgb25FbnRyeUZvY3VzYCBpbiAgY29udHJvbCBvZiBmb2N1c2luZyBmaXJzdCBpdGVtXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM9e29uQ2xvc2VBdXRvRm9jdXN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPERpc21pc3NhYmxlTGF5ZXJcbiAgICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM9e2Rpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c31cbiAgICAgICAgICAgICAgb25Fc2NhcGVLZXlEb3duPXtvbkVzY2FwZUtleURvd259XG4gICAgICAgICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPXtvblBvaW50ZXJEb3duT3V0c2lkZX1cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9e29uRm9jdXNPdXRzaWRlfVxuICAgICAgICAgICAgICBvbkludGVyYWN0T3V0c2lkZT17b25JbnRlcmFjdE91dHNpZGV9XG4gICAgICAgICAgICAgIG9uRGlzbWlzcz17b25EaXNtaXNzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Um92aW5nRm9jdXNHcm91cC5Sb290XG4gICAgICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgICAgIHsuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGV9XG4gICAgICAgICAgICAgICAgZGlyPXtyb290Q29udGV4dC5kaXJ9XG4gICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgICAgICAgICBjdXJyZW50VGFiU3RvcElkPXtjdXJyZW50SXRlbUlkfVxuICAgICAgICAgICAgICAgIG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZT17c2V0Q3VycmVudEl0ZW1JZH1cbiAgICAgICAgICAgICAgICBvbkVudHJ5Rm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKG9uRW50cnlGb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBvbmx5IGZvY3VzIGZpcnN0IGl0ZW0gd2hlbiB1c2luZyBrZXlib2FyZFxuICAgICAgICAgICAgICAgICAgaWYgKCFyb290Q29udGV4dC5pc1VzaW5nS2V5Ym9hcmRSZWYuY3VycmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UG9wcGVyUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRPcGVuU3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICAgICAgICAgIGRhdGEtcmFkaXgtbWVudS1jb250ZW50PVwiXCJcbiAgICAgICAgICAgICAgICAgIGRpcj17cm9vdENvbnRleHQuZGlyfVxuICAgICAgICAgICAgICAgICAgey4uLnBvcHBlclNjb3BlfVxuICAgICAgICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgb3V0bGluZTogJ25vbmUnLCAuLi5jb250ZW50UHJvcHMuc3R5bGUgfX1cbiAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMoY29udGVudFByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN1Ym1lbnUga2V5IGV2ZW50cyBidWJibGUgdGhyb3VnaCBwb3J0YWxzLiBXZSBvbmx5IGNhcmUgYWJvdXQga2V5cyBpbiB0aGlzIG1lbnUuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNLZXlEb3duSW5zaWRlID1cbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuY2xvc2VzdCgnW2RhdGEtcmFkaXgtbWVudS1jb250ZW50XScpID09PSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc01vZGlmaWVyS2V5ID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDaGFyYWN0ZXJLZXkgPSBldmVudC5rZXkubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNLZXlEb3duSW5zaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gbWVudXMgc2hvdWxkIG5vdCBiZSBuYXZpZ2F0ZWQgdXNpbmcgdGFiIGtleSBzbyB3ZSBwcmV2ZW50IGl0XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGlzQ2hhcmFjdGVyS2V5KSBoYW5kbGVUeXBlYWhlYWRTZWFyY2goZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBmb2N1cyBmaXJzdC9sYXN0IGl0ZW0gYmFzZWQgb24ga2V5IHByZXNzZWRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGNvbnRlbnRSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gY29udGVudCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUZJUlNUX0xBU1RfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlTm9kZXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKExBU1RfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzRmlyc3QoY2FuZGlkYXRlTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICBvbkJsdXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIHNlYXJjaCBidWZmZXIgd2hlbiBsZWF2aW5nIHRoZSBtZW51XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuY3VycmVudFRhcmdldC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hSZWYuY3VycmVudCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck1vdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJNb3ZlLFxuICAgICAgICAgICAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJYSGFzQ2hhbmdlZCA9IGxhc3RQb2ludGVyWFJlZi5jdXJyZW50ICE9PSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGBldmVudC5tb3ZlbWVudFhgIGZvciB0aGlzIGNoZWNrIGJlY2F1c2UgU2FmYXJpIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgcmV0dXJuIGAwYCBvbiBhIHBvaW50ZXIgZXZlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnModGFyZ2V0KSAmJiBwb2ludGVyWEhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RpciA9IGV2ZW50LmNsaWVudFggPiBsYXN0UG9pbnRlclhSZWYuY3VycmVudCA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRGlyUmVmLmN1cnJlbnQgPSBuZXdEaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0UG9pbnRlclhSZWYuY3VycmVudCA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JvdmluZ0ZvY3VzR3JvdXAuUm9vdD5cbiAgICAgICAgICAgIDwvRGlzbWlzc2FibGVMYXllcj5cbiAgICAgICAgICA8L0ZvY3VzU2NvcGU+XG4gICAgICAgIDwvU2Nyb2xsTG9ja1dyYXBwZXI+XG4gICAgICA8L01lbnVDb250ZW50UHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuTWVudUNvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVHcm91cFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBHUk9VUF9OQU1FID0gJ01lbnVHcm91cCc7XG5cbnR5cGUgTWVudUdyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgTWVudUdyb3VwUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7fVxuXG5jb25zdCBNZW51R3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVHcm91cEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51R3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZU1lbnUsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiA8UHJpbWl0aXZlLmRpdiByb2xlPVwiZ3JvdXBcIiB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSBHUk9VUF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51TGFiZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTEFCRUxfTkFNRSA9ICdNZW51TGFiZWwnO1xuXG50eXBlIE1lbnVMYWJlbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBNZW51TGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IE1lbnVMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUxhYmVsRWxlbWVudCwgTWVudUxhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVMYWJlbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4ubGFiZWxQcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIDxQcmltaXRpdmUuZGl2IHsuLi5sYWJlbFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbk1lbnVMYWJlbC5kaXNwbGF5TmFtZSA9IExBQkVMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdNZW51SXRlbSc7XG5jb25zdCBJVEVNX1NFTEVDVCA9ICdtZW51Lml0ZW1TZWxlY3QnO1xuXG50eXBlIE1lbnVJdGVtRWxlbWVudCA9IE1lbnVJdGVtSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgTWVudUl0ZW1Qcm9wcyBleHRlbmRzIE9taXQ8TWVudUl0ZW1JbXBsUHJvcHMsICdvblNlbGVjdCc+IHtcbiAgb25TZWxlY3Q/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xufVxuXG5jb25zdCBNZW51SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1FbGVtZW50LCBNZW51SXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51SXRlbVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBkaXNhYmxlZCA9IGZhbHNlLCBvblNlbGVjdCwgLi4uaXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlTWVudVJvb3RDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlTWVudUNvbnRlbnRDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgY29uc3QgaXNQb2ludGVyRG93blJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZW51SXRlbSA9IHJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFkaXNhYmxlZCAmJiBtZW51SXRlbSkge1xuICAgICAgICBjb25zdCBpdGVtU2VsZWN0RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoSVRFTV9TRUxFQ1QsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgbWVudUl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihJVEVNX1NFTEVDVCwgKGV2ZW50KSA9PiBvblNlbGVjdD8uKGV2ZW50KSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQobWVudUl0ZW0sIGl0ZW1TZWxlY3RFdmVudCk7XG4gICAgICAgIGlmIChpdGVtU2VsZWN0RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJvb3RDb250ZXh0Lm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVJdGVtSW1wbFxuICAgICAgICB7Li4uaXRlbVByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBoYW5kbGVTZWxlY3QpfVxuICAgICAgICBvblBvaW50ZXJEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJEb3duPy4oZXZlbnQpO1xuICAgICAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH19XG4gICAgICAgIG9uUG9pbnRlclVwPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJVcCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gUG9pbnRlciBkb3duIGNhbiBtb3ZlIHRvIGEgZGlmZmVyZW50IG1lbnUgaXRlbSB3aGljaCBzaG91bGQgYWN0aXZhdGUgaXQgb24gcG9pbnRlciB1cC5cbiAgICAgICAgICAvLyBXZSBkaXNwYXRjaCBhIGNsaWNrIGZvciBzZWxlY3Rpb24gdG8gYWxsb3cgY29tcG9zaXRpb24gd2l0aCBjbGljayBiYXNlZCB0cmlnZ2VycyBhbmQgdG9cbiAgICAgICAgICAvLyBwcmV2ZW50IEZpcmVmb3ggZnJvbSBnZXR0aW5nIHN0dWNrIGluIHRleHQgc2VsZWN0aW9uIG1vZGUgd2hlbiB0aGUgbWVudSBjbG9zZXMuXG4gICAgICAgICAgaWYgKCFpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQpIGV2ZW50LmN1cnJlbnRUYXJnZXQ/LmNsaWNrKCk7XG4gICAgICAgIH0pfVxuICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNUeXBpbmdBaGVhZCA9IGNvbnRlbnRDb250ZXh0LnNlYXJjaFJlZi5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpKSByZXR1cm47XG4gICAgICAgICAgaWYgKFNFTEVDVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgcHJldmVudCBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3VyIGZvciBzZWxlY3Rpb24ga2V5cyBhcyB0aGV5IHNob3VsZCB0cmlnZ2VyXG4gICAgICAgICAgICAgKiBhIHNlbGVjdGlvbiBvbmx5OlxuICAgICAgICAgICAgICogLSBwcmV2ZW50cyBzcGFjZSBmcm9tIHNjcm9sbGluZyB0aGUgcGFnZS5cbiAgICAgICAgICAgICAqIC0gaWYga2V5ZG93biBjYXVzZXMgZm9jdXMgdG8gbW92ZSwgcHJldmVudHMga2V5ZG93biBmcm9tIGZpcmluZyBvbiB0aGUgbmV3IHRhcmdldC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIE1lbnVJdGVtSW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBNZW51SXRlbUltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0ZXh0VmFsdWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IE1lbnVJdGVtSW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1JbXBsRWxlbWVudCwgTWVudUl0ZW1JbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVJdGVtSW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgZGlzYWJsZWQgPSBmYWxzZSwgdGV4dFZhbHVlLCAuLi5pdGVtUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlTWVudUNvbnRlbnRDb250ZXh0KElURU1fTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZShfX3Njb3BlTWVudSk7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAvLyBnZXQgdGhlIGl0ZW0ncyBgLnRleHRDb250ZW50YCBhcyBkZWZhdWx0IHN0cmF0ZWd5IGZvciB0eXBlYWhlYWQgYHRleHRWYWx1ZWBcbiAgICBjb25zdCBbdGV4dENvbnRlbnQsIHNldFRleHRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbWVudUl0ZW0gPSByZWYuY3VycmVudDtcbiAgICAgIGlmIChtZW51SXRlbSkge1xuICAgICAgICBzZXRUZXh0Q29udGVudCgobWVudUl0ZW0udGV4dENvbnRlbnQgPz8gJycpLnRyaW0oKSk7XG4gICAgICB9XG4gICAgfSwgW2l0ZW1Qcm9wcy5jaGlsZHJlbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLkl0ZW1TbG90XG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICB0ZXh0VmFsdWU9e3RleHRWYWx1ZSA/PyB0ZXh0Q29udGVudH1cbiAgICAgID5cbiAgICAgICAgPFJvdmluZ0ZvY3VzR3JvdXAuSXRlbSBhc0NoaWxkIHsuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGV9IGZvY3VzYWJsZT17IWRpc2FibGVkfT5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIGRhdGEtaGlnaGxpZ2h0ZWQ9e2lzRm9jdXNlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIHsuLi5pdGVtUHJvcHN9XG4gICAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgZm9jdXMgaXRlbXMgb24gYHBvaW50ZXJNb3ZlYCB0byBhY2hpZXZlIHRoZSBmb2xsb3dpbmc6XG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogLSBNb3VzZSBvdmVyIGFuIGl0ZW0gKGl0IGZvY3VzZXMpXG4gICAgICAgICAgICAgKiAtIExlYXZlIG1vdXNlIHdoZXJlIGl0IGlzIGFuZCB1c2Uga2V5Ym9hcmQgdG8gZm9jdXMgYSBkaWZmZXJlbnQgaXRlbVxuICAgICAgICAgICAgICogLSBXaWdnbGUgbW91c2Ugd2l0aG91dCBpdCBsZWF2aW5nIHByZXZpb3VzbHkgZm9jdXNlZCBpdGVtXG4gICAgICAgICAgICAgKiAtIFByZXZpb3VzbHkgZm9jdXNlZCBpdGVtIHNob3VsZCByZS1mb2N1c1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIElmIHdlIHVzZWQgYG1vdXNlT3ZlcmAvYG1vdXNlRW50ZXJgIGl0IHdvdWxkIG5vdCByZS1mb2N1cyB3aGVuIHRoZSBtb3VzZVxuICAgICAgICAgICAgICogd2lnZ2xlcy4gVGhpcyBpcyB0byBtYXRjaCBuYXRpdmUgbWVudSBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb25Qb2ludGVyTW92ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25JdGVtRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICAgICAgd2hlbk1vdXNlKChldmVudCkgPT4gY29udGVudENvbnRleHQub25JdGVtTGVhdmUoZXZlbnQpKVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsICgpID0+IHNldElzRm9jdXNlZCh0cnVlKSl9XG4gICAgICAgICAgICBvbkJsdXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgKCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Sb3ZpbmdGb2N1c0dyb3VwLkl0ZW0+XG4gICAgICA8L0NvbGxlY3Rpb24uSXRlbVNsb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudUNoZWNrYm94SXRlbVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDSEVDS0JPWF9JVEVNX05BTUUgPSAnTWVudUNoZWNrYm94SXRlbSc7XG5cbnR5cGUgTWVudUNoZWNrYm94SXRlbUVsZW1lbnQgPSBNZW51SXRlbUVsZW1lbnQ7XG5cbnR5cGUgQ2hlY2tlZFN0YXRlID0gYm9vbGVhbiB8ICdpbmRldGVybWluYXRlJztcblxuaW50ZXJmYWNlIE1lbnVDaGVja2JveEl0ZW1Qcm9wcyBleHRlbmRzIE1lbnVJdGVtUHJvcHMge1xuICBjaGVja2VkPzogQ2hlY2tlZFN0YXRlO1xuICAvLyBgb25DaGVja2VkQ2hhbmdlYCBjYW4gbmV2ZXIgYmUgY2FsbGVkIHdpdGggYFwiaW5kZXRlcm1pbmF0ZVwiYCBmcm9tIHRoZSBpbnNpZGVcbiAgb25DaGVja2VkQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmNvbnN0IE1lbnVDaGVja2JveEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVDaGVja2JveEl0ZW1FbGVtZW50LCBNZW51Q2hlY2tib3hJdGVtUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVDaGVja2JveEl0ZW1Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2hlY2tlZCA9IGZhbHNlLCBvbkNoZWNrZWRDaGFuZ2UsIC4uLmNoZWNrYm94SXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPEl0ZW1JbmRpY2F0b3JQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9IGNoZWNrZWQ9e2NoZWNrZWR9PlxuICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1jaGVja2JveFwiXG4gICAgICAgICAgYXJpYS1jaGVja2VkPXtpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyAnbWl4ZWQnIDogY2hlY2tlZH1cbiAgICAgICAgICB7Li4uY2hlY2tib3hJdGVtUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgZGF0YS1zdGF0ZT17Z2V0Q2hlY2tlZFN0YXRlKGNoZWNrZWQpfVxuICAgICAgICAgIG9uU2VsZWN0PXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICAgIGNoZWNrYm94SXRlbVByb3BzLm9uU2VsZWN0LFxuICAgICAgICAgICAgKCkgPT4gb25DaGVja2VkQ2hhbmdlPy4oaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gdHJ1ZSA6ICFjaGVja2VkKSxcbiAgICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIDwvSXRlbUluZGljYXRvclByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cbk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVSYWRpb0dyb3VwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJBRElPX0dST1VQX05BTUUgPSAnTWVudVJhZGlvR3JvdXAnO1xuXG5jb25zdCBbUmFkaW9Hcm91cFByb3ZpZGVyLCB1c2VSYWRpb0dyb3VwQ29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dDxNZW51UmFkaW9Hcm91cFByb3BzPihcbiAgUkFESU9fR1JPVVBfTkFNRSxcbiAgeyB2YWx1ZTogdW5kZWZpbmVkLCBvblZhbHVlQ2hhbmdlOiAoKSA9PiB7fSB9XG4pO1xuXG50eXBlIE1lbnVSYWRpb0dyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVHcm91cD47XG5pbnRlcmZhY2UgTWVudVJhZGlvR3JvdXBQcm9wcyBleHRlbmRzIE1lbnVHcm91cFByb3BzIHtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuY29uc3QgTWVudVJhZGlvR3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVSYWRpb0dyb3VwRWxlbWVudCwgTWVudVJhZGlvR3JvdXBQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudVJhZGlvR3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIG9uVmFsdWVDaGFuZ2UsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGhhbmRsZVZhbHVlQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25WYWx1ZUNoYW5nZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSYWRpb0dyb3VwUHJvdmlkZXIgc2NvcGU9e3Byb3BzLl9fc2NvcGVNZW51fSB2YWx1ZT17dmFsdWV9IG9uVmFsdWVDaGFuZ2U9e2hhbmRsZVZhbHVlQ2hhbmdlfT5cbiAgICAgICAgPE1lbnVHcm91cCB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L1JhZGlvR3JvdXBQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51UmFkaW9Hcm91cC5kaXNwbGF5TmFtZSA9IFJBRElPX0dST1VQX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVSYWRpb0l0ZW1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fSVRFTV9OQU1FID0gJ01lbnVSYWRpb0l0ZW0nO1xuXG50eXBlIE1lbnVSYWRpb0l0ZW1FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudUl0ZW0+O1xuaW50ZXJmYWNlIE1lbnVSYWRpb0l0ZW1Qcm9wcyBleHRlbmRzIE1lbnVJdGVtUHJvcHMge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5jb25zdCBNZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51UmFkaW9JdGVtRWxlbWVudCwgTWVudVJhZGlvSXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51UmFkaW9JdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCAuLi5yYWRpb0l0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJhZGlvR3JvdXBDb250ZXh0KFJBRElPX0lURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNoZWNrZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgPEl0ZW1JbmRpY2F0b3JQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9IGNoZWNrZWQ9e2NoZWNrZWR9PlxuICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1yYWRpb1wiXG4gICAgICAgICAgYXJpYS1jaGVja2VkPXtjaGVja2VkfVxuICAgICAgICAgIHsuLi5yYWRpb0l0ZW1Qcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRDaGVja2VkU3RhdGUoY2hlY2tlZCl9XG4gICAgICAgICAgb25TZWxlY3Q9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgcmFkaW9JdGVtUHJvcHMub25TZWxlY3QsXG4gICAgICAgICAgICAoKSA9PiBjb250ZXh0Lm9uVmFsdWVDaGFuZ2U/Lih2YWx1ZSksXG4gICAgICAgICAgICB7IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZDogZmFsc2UgfVxuICAgICAgICAgICl9XG4gICAgICAgIC8+XG4gICAgICA8L0l0ZW1JbmRpY2F0b3JQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51UmFkaW9JdGVtLmRpc3BsYXlOYW1lID0gUkFESU9fSVRFTV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51SXRlbUluZGljYXRvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJVEVNX0lORElDQVRPUl9OQU1FID0gJ01lbnVJdGVtSW5kaWNhdG9yJztcblxudHlwZSBDaGVja2JveENvbnRleHRWYWx1ZSA9IHsgY2hlY2tlZDogQ2hlY2tlZFN0YXRlIH07XG5cbmNvbnN0IFtJdGVtSW5kaWNhdG9yUHJvdmlkZXIsIHVzZUl0ZW1JbmRpY2F0b3JDb250ZXh0XSA9IGNyZWF0ZU1lbnVDb250ZXh0PENoZWNrYm94Q29udGV4dFZhbHVlPihcbiAgSVRFTV9JTkRJQ0FUT1JfTkFNRSxcbiAgeyBjaGVja2VkOiBmYWxzZSB9XG4pO1xuXG50eXBlIE1lbnVJdGVtSW5kaWNhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgTWVudUl0ZW1JbmRpY2F0b3JQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51SXRlbUluZGljYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1JbmRpY2F0b3JFbGVtZW50LCBNZW51SXRlbUluZGljYXRvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51SXRlbUluZGljYXRvclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgZm9yY2VNb3VudCwgLi4uaXRlbUluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBpbmRpY2F0b3JDb250ZXh0ID0gdXNlSXRlbUluZGljYXRvckNvbnRleHQoSVRFTV9JTkRJQ0FUT1JfTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2VcbiAgICAgICAgcHJlc2VudD17XG4gICAgICAgICAgZm9yY2VNb3VudCB8fFxuICAgICAgICAgIGlzSW5kZXRlcm1pbmF0ZShpbmRpY2F0b3JDb250ZXh0LmNoZWNrZWQpIHx8XG4gICAgICAgICAgaW5kaWNhdG9yQ29udGV4dC5jaGVja2VkID09PSB0cnVlXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5zcGFuXG4gICAgICAgICAgey4uLml0ZW1JbmRpY2F0b3JQcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRDaGVja2VkU3RhdGUoaW5kaWNhdG9yQ29udGV4dC5jaGVja2VkKX1cbiAgICAgICAgLz5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxuTWVudUl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJVEVNX0lORElDQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ01lbnVTZXBhcmF0b3InO1xuXG50eXBlIE1lbnVTZXBhcmF0b3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgTWVudVNlcGFyYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgTWVudVNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVNlcGFyYXRvckVsZW1lbnQsIE1lbnVTZXBhcmF0b3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudVNlcGFyYXRvclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uc2VwYXJhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICByb2xlPVwic2VwYXJhdG9yXCJcbiAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICB7Li4uc2VwYXJhdG9yUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51U2VwYXJhdG9yLmRpc3BsYXlOYW1lID0gU0VQQVJBVE9SX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ01lbnVBcnJvdyc7XG5cbnR5cGUgTWVudUFycm93RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG50eXBlIFBvcHBlckFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG5pbnRlcmZhY2UgTWVudUFycm93UHJvcHMgZXh0ZW5kcyBQb3BwZXJBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IE1lbnVBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUFycm93RWxlbWVudCwgTWVudUFycm93UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVBcnJvd1Byb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgcmV0dXJuIDxQb3BwZXJQcmltaXRpdmUuQXJyb3cgey4uLnBvcHBlclNjb3BlfSB7Li4uYXJyb3dQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5NZW51QXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U3ViXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNVQl9OQU1FID0gJ01lbnVTdWInO1xuXG50eXBlIE1lbnVTdWJDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnRJZDogc3RyaW5nO1xuICB0cmlnZ2VySWQ6IHN0cmluZztcbiAgdHJpZ2dlcjogTWVudVN1YlRyaWdnZXJFbGVtZW50IHwgbnVsbDtcbiAgb25UcmlnZ2VyQ2hhbmdlKHRyaWdnZXI6IE1lbnVTdWJUcmlnZ2VyRWxlbWVudCB8IG51bGwpOiB2b2lkO1xufTtcblxuY29uc3QgW01lbnVTdWJQcm92aWRlciwgdXNlTWVudVN1YkNvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8TWVudVN1YkNvbnRleHRWYWx1ZT4oU1VCX05BTUUpO1xuXG5pbnRlcmZhY2UgTWVudVN1YlByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5jb25zdCBNZW51U3ViOiBSZWFjdC5GQzxNZW51U3ViUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZU1lbnUsIGNoaWxkcmVuLCBvcGVuID0gZmFsc2UsIG9uT3BlbkNoYW5nZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHBhcmVudE1lbnVDb250ZXh0ID0gdXNlTWVudUNvbnRleHQoU1VCX05BTUUsIF9fc2NvcGVNZW51KTtcbiAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gIGNvbnN0IFt0cmlnZ2VyLCBzZXRUcmlnZ2VyXSA9IFJlYWN0LnVzZVN0YXRlPE1lbnVTdWJUcmlnZ2VyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxNZW51Q29udGVudEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uT3BlbkNoYW5nZSk7XG5cbiAgLy8gUHJldmVudCB0aGUgcGFyZW50IG1lbnUgZnJvbSByZW9wZW5pbmcgd2l0aCBvcGVuIHN1Ym1lbnVzLlxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwYXJlbnRNZW51Q29udGV4dC5vcGVuID09PSBmYWxzZSkgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgcmV0dXJuICgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICB9LCBbcGFyZW50TWVudUNvbnRleHQub3BlbiwgaGFuZGxlT3BlbkNoYW5nZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFBvcHBlclByaW1pdGl2ZS5Sb290IHsuLi5wb3BwZXJTY29wZX0+XG4gICAgICA8TWVudVByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgb25PcGVuQ2hhbmdlPXtoYW5kbGVPcGVuQ2hhbmdlfVxuICAgICAgICBjb250ZW50PXtjb250ZW50fVxuICAgICAgICBvbkNvbnRlbnRDaGFuZ2U9e3NldENvbnRlbnR9XG4gICAgICA+XG4gICAgICAgIDxNZW51U3ViUHJvdmlkZXJcbiAgICAgICAgICBzY29wZT17X19zY29wZU1lbnV9XG4gICAgICAgICAgY29udGVudElkPXt1c2VJZCgpfVxuICAgICAgICAgIHRyaWdnZXJJZD17dXNlSWQoKX1cbiAgICAgICAgICB0cmlnZ2VyPXt0cmlnZ2VyfVxuICAgICAgICAgIG9uVHJpZ2dlckNoYW5nZT17c2V0VHJpZ2dlcn1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9NZW51U3ViUHJvdmlkZXI+XG4gICAgICA8L01lbnVQcm92aWRlcj5cbiAgICA8L1BvcHBlclByaW1pdGl2ZS5Sb290PlxuICApO1xufTtcblxuTWVudVN1Yi5kaXNwbGF5TmFtZSA9IFNVQl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U3ViVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTVUJfVFJJR0dFUl9OQU1FID0gJ01lbnVTdWJUcmlnZ2VyJztcblxudHlwZSBNZW51U3ViVHJpZ2dlckVsZW1lbnQgPSBNZW51SXRlbUltcGxFbGVtZW50O1xuaW50ZXJmYWNlIE1lbnVTdWJUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBNZW51SXRlbUltcGxQcm9wcyB7fVxuXG5jb25zdCBNZW51U3ViVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVN1YlRyaWdnZXJFbGVtZW50LCBNZW51U3ViVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KFNVQl9UUklHR0VSX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgc3ViQ29udGV4dCA9IHVzZU1lbnVTdWJDb250ZXh0KFNVQl9UUklHR0VSX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZU1lbnVDb250ZW50Q29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgb3BlblRpbWVyUmVmID0gUmVhY3QudXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IHsgcG9pbnRlckdyYWNlVGltZXJSZWYsIG9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlIH0gPSBjb250ZW50Q29udGV4dDtcbiAgICBjb25zdCBzY29wZSA9IHsgX19zY29wZU1lbnU6IHByb3BzLl9fc2NvcGVNZW51IH07XG5cbiAgICBjb25zdCBjbGVhck9wZW5UaW1lciA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvcGVuVGltZXJSZWYuY3VycmVudCkgd2luZG93LmNsZWFyVGltZW91dChvcGVuVGltZXJSZWYuY3VycmVudCk7XG4gICAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IGNsZWFyT3BlblRpbWVyLCBbY2xlYXJPcGVuVGltZXJdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludGVyR3JhY2VUaW1lciA9IHBvaW50ZXJHcmFjZVRpbWVyUmVmLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHBvaW50ZXJHcmFjZVRpbWVyKTtcbiAgICAgICAgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2UobnVsbCk7XG4gICAgICB9O1xuICAgIH0sIFtwb2ludGVyR3JhY2VUaW1lclJlZiwgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2VdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8TWVudUFuY2hvciBhc0NoaWxkIHsuLi5zY29wZX0+XG4gICAgICAgIDxNZW51SXRlbUltcGxcbiAgICAgICAgICBpZD17c3ViQ29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2NvbnRleHQub3Blbn1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtzdWJDb250ZXh0LmNvbnRlbnRJZH1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRPcGVuU3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlUmVmcyhmb3J3YXJkZWRSZWYsIHN1YkNvbnRleHQub25UcmlnZ2VyQ2hhbmdlKX1cbiAgICAgICAgICAvLyBUaGlzIGlzIHJlZHVuZGFudCBmb3IgbW91c2UgdXNlcnMgYnV0IHdlIGNhbm5vdCBkZXRlcm1pbmUgcG9pbnRlciB0eXBlIGZyb21cbiAgICAgICAgICAvLyBjbGljayBldmVudCBhbmQgd2UgY2Fubm90IHVzZSBwb2ludGVydXAgZXZlbnQgKHNlZSBnaXQgaGlzdG9yeSBmb3IgcmVhc29ucyB3aHkpXG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrPy4oZXZlbnQpO1xuICAgICAgICAgICAgaWYgKHByb3BzLmRpc2FibGVkIHx8IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgbWFudWFsbHkgZm9jdXMgYmVjYXVzZSBpT1MgU2FmYXJpIGRvZXNuJ3QgYWx3YXlzIGZvY3VzIG9uIGNsaWNrIChlLmcuIGJ1dHRvbnMpXG4gICAgICAgICAgICAgKiBhbmQgd2UgcmVseSBoZWF2aWx5IG9uIGBvbkZvY3VzT3V0c2lkZWAgZm9yIHN1Ym1lbnVzIHRvIGNsb3NlIHdoZW4gc3dpdGNoaW5nXG4gICAgICAgICAgICAgKiBiZXR3ZWVuIHNlcGFyYXRlIHN1Ym1lbnVzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQub3BlbikgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvblBvaW50ZXJNb3ZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUVudGVyKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy5kaXNhYmxlZCAmJiAhY29udGV4dC5vcGVuICYmICFvcGVuVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICBjbGVhck9wZW5UaW1lcigpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKX1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY2xlYXJPcGVuVGltZXIoKTtcblxuICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRleHQuY29udGVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgIGlmIChjb250ZW50UmVjdCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhpcyB3aGVuIHdlIGNoYW5nZSBwb3NpdGlvbmluZyBsb2dpY1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZGUgPSBjb250ZXh0LmNvbnRlbnQ/LmRhdGFzZXQuc2lkZSBhcyBTaWRlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2lkZSA9IHNpZGUgPT09ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxlZWQgPSByaWdodFNpZGUgPyAtNSA6ICs1O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnROZWFyRWRnZSA9IGNvbnRlbnRSZWN0W3JpZ2h0U2lkZSA/ICdsZWZ0JyA6ICdyaWdodCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRGYXJFZGdlID0gY29udGVudFJlY3RbcmlnaHRTaWRlID8gJ3JpZ2h0JyA6ICdsZWZ0J107XG5cbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vblBvaW50ZXJHcmFjZUludGVudENoYW5nZSh7XG4gICAgICAgICAgICAgICAgICBhcmVhOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGEgYmxlZWQgb24gY2xpZW50WCB0byBlbnN1cmUgdGhhdCBvdXIgZXhpdCBwb2ludCBpc1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zaXN0ZW50bHkgd2l0aGluIHBvbHlnb24gYm91bmRzXG4gICAgICAgICAgICAgICAgICAgIHsgeDogZXZlbnQuY2xpZW50WCArIGJsZWVkLCB5OiBldmVudC5jbGllbnRZIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudE5lYXJFZGdlLCB5OiBjb250ZW50UmVjdC50b3AgfSxcbiAgICAgICAgICAgICAgICAgICAgeyB4OiBjb250ZW50RmFyRWRnZSwgeTogY29udGVudFJlY3QudG9wIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudEZhckVkZ2UsIHk6IGNvbnRlbnRSZWN0LmJvdHRvbSB9LFxuICAgICAgICAgICAgICAgICAgICB7IHg6IGNvbnRlbnROZWFyRWRnZSwgeTogY29udGVudFJlY3QuYm90dG9tIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgc2lkZSxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQocG9pbnRlckdyYWNlVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgcG9pbnRlckdyYWNlVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KFxuICAgICAgICAgICAgICAgICAgKCkgPT4gY29udGVudENvbnRleHQub25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2UobnVsbCksXG4gICAgICAgICAgICAgICAgICAzMDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uVHJpZ2dlckxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlcmUncyAxMDBtcyB3aGVyZSB0aGUgdXNlciBtYXkgbGVhdmUgYW4gaXRlbSBiZWZvcmUgdGhlIHN1Ym1lbnUgd2FzIG9wZW5lZC5cbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vblBvaW50ZXJHcmFjZUludGVudENoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApfVxuICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBjb250ZW50Q29udGV4dC5zZWFyY2hSZWYuY3VycmVudCAhPT0gJyc7XG4gICAgICAgICAgICBpZiAocHJvcHMuZGlzYWJsZWQgfHwgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoU1VCX09QRU5fS0VZU1tyb290Q29udGV4dC5kaXJdLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgIC8vIFRoZSB0cmlnZ2VyIG1heSBob2xkIGZvY3VzIGlmIG9wZW5lZCB2aWEgcG9pbnRlciBpbnRlcmFjdGlvblxuICAgICAgICAgICAgICAvLyBzbyB3ZSBlbnN1cmUgY29udGVudCBpcyBnaXZlbiBmb2N1cyBhZ2FpbiB3aGVuIHN3aXRjaGluZyB0byBrZXlib2FyZC5cbiAgICAgICAgICAgICAgY29udGV4dC5jb250ZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAvLyBwcmV2ZW50IHdpbmRvdyBmcm9tIHNjcm9sbGluZ1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pfVxuICAgICAgICAvPlxuICAgICAgPC9NZW51QW5jaG9yPlxuICAgICk7XG4gIH1cbik7XG5cbk1lbnVTdWJUcmlnZ2VyLmRpc3BsYXlOYW1lID0gU1VCX1RSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudVN1YkNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU1VCX0NPTlRFTlRfTkFNRSA9ICdNZW51U3ViQ29udGVudCc7XG5cbnR5cGUgTWVudVN1YkNvbnRlbnRFbGVtZW50ID0gTWVudUNvbnRlbnRJbXBsRWxlbWVudDtcbmludGVyZmFjZSBNZW51U3ViQ29udGVudFByb3BzXG4gIGV4dGVuZHMgT21pdDxcbiAgICBNZW51Q29udGVudEltcGxQcm9wcyxcbiAgICBrZXlvZiBNZW51Q29udGVudEltcGxQcml2YXRlUHJvcHMgfCAnb25DbG9zZUF1dG9Gb2N1cycgfCAnb25FbnRyeUZvY3VzJyB8ICdzaWRlJyB8ICdhbGlnbidcbiAgPiB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVN1YkNvbnRlbnRFbGVtZW50LCBNZW51U3ViQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5zdWJDb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBzdWJDb250ZXh0ID0gdXNlTWVudVN1YkNvbnRleHQoU1VCX0NPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxNZW51U3ViQ29udGVudEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLlByb3ZpZGVyIHNjb3BlPXtwcm9wcy5fX3Njb3BlTWVudX0+XG4gICAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgICAgPENvbGxlY3Rpb24uU2xvdCBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9PlxuICAgICAgICAgICAgPE1lbnVDb250ZW50SW1wbFxuICAgICAgICAgICAgICBpZD17c3ViQ29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17c3ViQ29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgICAgICAgIHsuLi5zdWJDb250ZW50UHJvcHN9XG4gICAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgICBhbGlnbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgc2lkZT17cm9vdENvbnRleHQuZGlyID09PSAncnRsJyA/ICdsZWZ0JyA6ICdyaWdodCd9XG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlU2Nyb2xsPXtmYWxzZX1cbiAgICAgICAgICAgICAgdHJhcEZvY3VzPXtmYWxzZX1cbiAgICAgICAgICAgICAgb25PcGVuQXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIG9wZW5pbmcgYSBzdWJtZW51LCBmb2N1cyBjb250ZW50IGZvciBrZXlib2FyZCB1c2VycyBvbmx5XG4gICAgICAgICAgICAgICAgaWYgKHJvb3RDb250ZXh0LmlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50KSByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvLyBUaGUgbWVudSBtaWdodCBjbG9zZSBiZWNhdXNlIG9mIGZvY3VzaW5nIGFub3RoZXIgbWVudSBpdGVtIGluIHRoZSBwYXJlbnQgbWVudS4gV2VcbiAgICAgICAgICAgICAgLy8gZG9uJ3Qgd2FudCBpdCB0byByZWZvY3VzIHRoZSB0cmlnZ2VyIGluIHRoYXQgY2FzZSBzbyB3ZSBoYW5kbGUgdHJpZ2dlciBmb2N1cyBvdXJzZWx2ZXMuXG4gICAgICAgICAgICAgIG9uQ2xvc2VBdXRvRm9jdXM9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXNPdXRzaWRlLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBXZSBwcmV2ZW50IGNsb3Npbmcgd2hlbiB0aGUgdHJpZ2dlciBpcyBmb2N1c2VkIHRvIGF2b2lkIHRyaWdnZXJpbmcgYSByZS1vcGVuIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIC8vIG9uIHBvaW50ZXIgaW50ZXJhY3Rpb24uXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gc3ViQ29udGV4dC50cmlnZ2VyKSBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkVzY2FwZUtleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRXNjYXBlS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdENvbnRleHQub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBwcmVzc2luZyBlc2NhcGUgaW4gc3VibWVudSBkb2Vzbid0IGVzY2FwZSBmdWxsIHNjcmVlbiBtb2RlXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBTdWJtZW51IGtleSBldmVudHMgYnViYmxlIHRocm91Z2ggcG9ydGFscy4gV2Ugb25seSBjYXJlIGFib3V0IGtleXMgaW4gdGhpcyBtZW51LlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzS2V5RG93bkluc2lkZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Nsb3NlS2V5ID0gU1VCX0NMT1NFX0tFWVNbcm9vdENvbnRleHQuZGlyXS5pbmNsdWRlcyhldmVudC5rZXkpO1xuICAgICAgICAgICAgICAgIGlmIChpc0tleURvd25JbnNpZGUgJiYgaXNDbG9zZUtleSkge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgLy8gV2UgZm9jdXMgbWFudWFsbHkgYmVjYXVzZSB3ZSBwcmV2ZW50ZWQgaXQgaW4gYG9uQ2xvc2VBdXRvRm9jdXNgXG4gICAgICAgICAgICAgICAgICBzdWJDb250ZXh0LnRyaWdnZXI/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IHdpbmRvdyBmcm9tIHNjcm9sbGluZ1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51U3ViQ29udGVudC5kaXNwbGF5TmFtZSA9IFNVQl9DT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0T3BlblN0YXRlKG9wZW46IGJvb2xlYW4pIHtcbiAgcmV0dXJuIG9wZW4gPyAnb3BlbicgOiAnY2xvc2VkJztcbn1cblxuZnVuY3Rpb24gaXNJbmRldGVybWluYXRlKGNoZWNrZWQ/OiBDaGVja2VkU3RhdGUpOiBjaGVja2VkIGlzICdpbmRldGVybWluYXRlJyB7XG4gIHJldHVybiBjaGVja2VkID09PSAnaW5kZXRlcm1pbmF0ZSc7XG59XG5cbmZ1bmN0aW9uIGdldENoZWNrZWRTdGF0ZShjaGVja2VkOiBDaGVja2VkU3RhdGUpIHtcbiAgcmV0dXJuIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/ICdpbmRldGVybWluYXRlJyA6IGNoZWNrZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJztcbn1cblxuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzOiBIVE1MRWxlbWVudFtdKSB7XG4gIGNvbnN0IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgIC8vIGlmIGZvY3VzIGlzIGFscmVhZHkgd2hlcmUgd2Ugd2FudCB0byBnbywgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIGdvaW5nIHRocm91Z2ggdGhlIGNhbmRpZGF0ZXNcbiAgICBpZiAoY2FuZGlkYXRlID09PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICAgIGNhbmRpZGF0ZS5mb2N1cygpO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgXCJtZWF0XCIgb2YgdGhlIHR5cGVhaGVhZCBtYXRjaGluZyBsb2dpYy4gSXQgdGFrZXMgaW4gYWxsIHRoZSB2YWx1ZXMsXG4gKiB0aGUgc2VhcmNoIGFuZCB0aGUgY3VycmVudCBtYXRjaCwgYW5kIHJldHVybnMgdGhlIG5leHQgbWF0Y2ggKG9yIGB1bmRlZmluZWRgKS5cbiAqXG4gKiBXZSBub3JtYWxpemUgdGhlIHNlYXJjaCBiZWNhdXNlIGlmIGEgdXNlciBoYXMgcmVwZWF0ZWRseSBwcmVzc2VkIGEgY2hhcmFjdGVyLFxuICogd2Ugd2FudCB0aGUgZXhhY3Qgc2FtZSBiZWhhdmlvciBhcyBpZiB3ZSBvbmx5IGhhZCB0aGF0IG9uZSBjaGFyYWN0ZXJcbiAqIChpZS4gY3ljbGUgdGhyb3VnaCBvcHRpb25zIHN0YXJ0aW5nIHdpdGggdGhhdCBjaGFyYWN0ZXIpXG4gKlxuICogV2UgYWxzbyByZW9yZGVyIHRoZSB2YWx1ZXMgYnkgd3JhcHBpbmcgdGhlIGFycmF5IGFyb3VuZCB0aGUgY3VycmVudCBtYXRjaC5cbiAqIFRoaXMgaXMgc28gd2UgYWx3YXlzIGxvb2sgZm9yd2FyZCBmcm9tIHRoZSBjdXJyZW50IG1hdGNoLCBhbmQgcGlja2luZyB0aGUgZmlyc3RcbiAqIG1hdGNoIHdpbGwgYWx3YXlzIGJlIHRoZSBjb3JyZWN0IG9uZS5cbiAqXG4gKiBGaW5hbGx5LCBpZiB0aGUgbm9ybWFsaXplZCBzZWFyY2ggaXMgZXhhY3RseSBvbmUgY2hhcmFjdGVyLCB3ZSBleGNsdWRlIHRoZVxuICogY3VycmVudCBtYXRjaCBmcm9tIHRoZSB2YWx1ZXMgYmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmUgdGhlIGZpcnN0IHRvIG1hdGNoIGFsd2F5c1xuICogYW5kIGZvY3VzIHdvdWxkIG5ldmVyIG1vdmUuIFRoaXMgaXMgYXMgb3Bwb3NlZCB0byB0aGUgcmVndWxhciBjYXNlLCB3aGVyZSB3ZVxuICogZG9uJ3Qgd2FudCBmb2N1cyB0byBtb3ZlIGlmIHRoZSBjdXJyZW50IG1hdGNoIHN0aWxsIG1hdGNoZXMuXG4gKi9cbmZ1bmN0aW9uIGdldE5leHRNYXRjaCh2YWx1ZXM6IHN0cmluZ1tdLCBzZWFyY2g6IHN0cmluZywgY3VycmVudE1hdGNoPzogc3RyaW5nKSB7XG4gIGNvbnN0IGlzUmVwZWF0ZWQgPSBzZWFyY2gubGVuZ3RoID4gMSAmJiBBcnJheS5mcm9tKHNlYXJjaCkuZXZlcnkoKGNoYXIpID0+IGNoYXIgPT09IHNlYXJjaFswXSk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTZWFyY2ggPSBpc1JlcGVhdGVkID8gc2VhcmNoWzBdIDogc2VhcmNoO1xuICBjb25zdCBjdXJyZW50TWF0Y2hJbmRleCA9IGN1cnJlbnRNYXRjaCA/IHZhbHVlcy5pbmRleE9mKGN1cnJlbnRNYXRjaCkgOiAtMTtcbiAgbGV0IHdyYXBwZWRWYWx1ZXMgPSB3cmFwQXJyYXkodmFsdWVzLCBNYXRoLm1heChjdXJyZW50TWF0Y2hJbmRleCwgMCkpO1xuICBjb25zdCBleGNsdWRlQ3VycmVudE1hdGNoID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudE1hdGNoKSB3cmFwcGVkVmFsdWVzID0gd3JhcHBlZFZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRNYXRjaCk7XG4gIGNvbnN0IG5leHRNYXRjaCA9IHdyYXBwZWRWYWx1ZXMuZmluZCgodmFsdWUpID0+XG4gICAgdmFsdWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG5vcm1hbGl6ZWRTZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgKTtcbiAgcmV0dXJuIG5leHRNYXRjaCAhPT0gY3VycmVudE1hdGNoID8gbmV4dE1hdGNoIDogdW5kZWZpbmVkO1xufVxuXG50eXBlIFBvaW50ID0geyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xudHlwZSBQb2x5Z29uID0gUG9pbnRbXTtcbnR5cGUgU2lkZSA9ICdsZWZ0JyB8ICdyaWdodCc7XG50eXBlIEdyYWNlSW50ZW50ID0geyBhcmVhOiBQb2x5Z29uOyBzaWRlOiBTaWRlIH07XG5cbi8vIERldGVybWluZSBpZiBhIHBvaW50IGlzIGluc2lkZSBvZiBhIHBvbHlnb24uXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vc3Vic3RhY2svcG9pbnQtaW4tcG9seWdvblxuZnVuY3Rpb24gaXNQb2ludEluUG9seWdvbihwb2ludDogUG9pbnQsIHBvbHlnb246IFBvbHlnb24pIHtcbiAgY29uc3QgeyB4LCB5IH0gPSBwb2ludDtcbiAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMCwgaiA9IHBvbHlnb24ubGVuZ3RoIC0gMTsgaSA8IHBvbHlnb24ubGVuZ3RoOyBqID0gaSsrKSB7XG4gICAgY29uc3QgeGkgPSBwb2x5Z29uW2ldLng7XG4gICAgY29uc3QgeWkgPSBwb2x5Z29uW2ldLnk7XG4gICAgY29uc3QgeGogPSBwb2x5Z29uW2pdLng7XG4gICAgY29uc3QgeWogPSBwb2x5Z29uW2pdLnk7XG5cbiAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbnRlcnNlY3QgPSAoKHlpID4geSkgIT09ICh5aiA+IHkpKSAmJiAoeCA8ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGkpO1xuICAgIGlmIChpbnRlcnNlY3QpIGluc2lkZSA9ICFpbnNpZGU7XG4gIH1cblxuICByZXR1cm4gaW5zaWRlO1xufVxuXG5mdW5jdGlvbiBpc1BvaW50ZXJJbkdyYWNlQXJlYShldmVudDogUmVhY3QuUG9pbnRlckV2ZW50LCBhcmVhPzogUG9seWdvbikge1xuICBpZiAoIWFyZWEpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgY3Vyc29yUG9zID0geyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH07XG4gIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKGN1cnNvclBvcywgYXJlYSk7XG59XG5cbmZ1bmN0aW9uIHdoZW5Nb3VzZTxFPihoYW5kbGVyOiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEU+KTogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxFPiB7XG4gIHJldHVybiAoZXZlbnQpID0+IChldmVudC5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyA/IGhhbmRsZXIoZXZlbnQpIDogdW5kZWZpbmVkKTtcbn1cblxuY29uc3QgUm9vdCA9IE1lbnU7XG5jb25zdCBBbmNob3IgPSBNZW51QW5jaG9yO1xuY29uc3QgUG9ydGFsID0gTWVudVBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBNZW51Q29udGVudDtcbmNvbnN0IEdyb3VwID0gTWVudUdyb3VwO1xuY29uc3QgTGFiZWwgPSBNZW51TGFiZWw7XG5jb25zdCBJdGVtID0gTWVudUl0ZW07XG5jb25zdCBDaGVja2JveEl0ZW0gPSBNZW51Q2hlY2tib3hJdGVtO1xuY29uc3QgUmFkaW9Hcm91cCA9IE1lbnVSYWRpb0dyb3VwO1xuY29uc3QgUmFkaW9JdGVtID0gTWVudVJhZGlvSXRlbTtcbmNvbnN0IEl0ZW1JbmRpY2F0b3IgPSBNZW51SXRlbUluZGljYXRvcjtcbmNvbnN0IFNlcGFyYXRvciA9IE1lbnVTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IE1lbnVBcnJvdztcbmNvbnN0IFN1YiA9IE1lbnVTdWI7XG5jb25zdCBTdWJUcmlnZ2VyID0gTWVudVN1YlRyaWdnZXI7XG5jb25zdCBTdWJDb250ZW50ID0gTWVudVN1YkNvbnRlbnQ7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZU1lbnVTY29wZSxcbiAgLy9cbiAgTWVudSxcbiAgTWVudUFuY2hvcixcbiAgTWVudVBvcnRhbCxcbiAgTWVudUNvbnRlbnQsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51SXRlbSxcbiAgTWVudUNoZWNrYm94SXRlbSxcbiAgTWVudVJhZGlvR3JvdXAsXG4gIE1lbnVSYWRpb0l0ZW0sXG4gIE1lbnVJdGVtSW5kaWNhdG9yLFxuICBNZW51U2VwYXJhdG9yLFxuICBNZW51QXJyb3csXG4gIE1lbnVTdWIsXG4gIE1lbnVTdWJUcmlnZ2VyLFxuICBNZW51U3ViQ29udGVudCxcbiAgLy9cbiAgUm9vdCxcbiAgQW5jaG9yLFxuICBQb3J0YWwsXG4gIENvbnRlbnQsXG4gIEdyb3VwLFxuICBMYWJlbCxcbiAgSXRlbSxcbiAgQ2hlY2tib3hJdGVtLFxuICBSYWRpb0dyb3VwLFxuICBSYWRpb0l0ZW0sXG4gIEl0ZW1JbmRpY2F0b3IsXG4gIFNlcGFyYXRvcixcbiAgQXJyb3csXG4gIFN1YixcbiAgU3ViVHJpZ2dlcixcbiAgU3ViQ29udGVudCxcbn07XG5leHBvcnQgdHlwZSB7XG4gIE1lbnVQcm9wcyxcbiAgTWVudUFuY2hvclByb3BzLFxuICBNZW51UG9ydGFsUHJvcHMsXG4gIE1lbnVDb250ZW50UHJvcHMsXG4gIE1lbnVHcm91cFByb3BzLFxuICBNZW51TGFiZWxQcm9wcyxcbiAgTWVudUl0ZW1Qcm9wcyxcbiAgTWVudUNoZWNrYm94SXRlbVByb3BzLFxuICBNZW51UmFkaW9Hcm91cFByb3BzLFxuICBNZW51UmFkaW9JdGVtUHJvcHMsXG4gIE1lbnVJdGVtSW5kaWNhdG9yUHJvcHMsXG4gIE1lbnVTZXBhcmF0b3JQcm9wcyxcbiAgTWVudUFycm93UHJvcHMsXG4gIE1lbnVTdWJQcm9wcyxcbiAgTWVudVN1YlRyaWdnZXJQcm9wcyxcbiAgTWVudVN1YkNvbnRlbnRQcm9wcyxcbn07XG4iXSwibmFtZXMiOlsiUm9vdCIsIkFuY2hvciIsIkNvbnRlbnQiLCJJdGVtIiwiQXJyb3ciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-menu/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-popover/dist/index.mjs": /*!*************************************************************!*\ !*** ./node_modules/@radix-ui/react-popover/dist/index.mjs ***! \*************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor2),\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ Close: () => (/* binding */ Close),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Popover: () => (/* binding */ Popover),\n/* harmony export */ PopoverAnchor: () => (/* binding */ PopoverAnchor),\n/* harmony export */ PopoverArrow: () => (/* binding */ PopoverArrow),\n/* harmony export */ PopoverClose: () => (/* binding */ PopoverClose),\n/* harmony export */ PopoverContent: () => (/* binding */ PopoverContent),\n/* harmony export */ PopoverPortal: () => (/* binding */ PopoverPortal),\n/* harmony export */ PopoverTrigger: () => (/* binding */ PopoverTrigger),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createPopoverScope: () => (/* binding */ createPopoverScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Anchor,Arrow,Close,Content,Popover,PopoverAnchor,PopoverArrow,PopoverClose,PopoverContent,PopoverPortal,PopoverTrigger,Portal,Root,Trigger,createPopoverScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$();\n// packages/react/popover/src/Popover.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPOVER_NAME, [\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope)();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props)=>{\n _s();\n const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopoverProvider, {\n scope: __scopePopover,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId)(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Popover.useCallback\": ()=>setOpen({\n \"Popover.useCallback\": (prevOpen)=>!prevOpen\n }[\"Popover.useCallback\"])\n }[\"Popover.useCallback\"], [\n setOpen\n ]),\n hasCustomAnchor,\n onCustomAnchorAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Popover.useCallback\": ()=>setHasCustomAnchor(true)\n }[\"Popover.useCallback\"], []),\n onCustomAnchorRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Popover.useCallback\": ()=>setHasCustomAnchor(false)\n }[\"Popover.useCallback\"], []),\n modal,\n children\n })\n });\n};\n_s(Popover, \"WeIgGLOlyHy1kx6gym8Oz8ngl+0=\", false, function() {\n return [\n usePopperScope,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId\n ];\n});\n_c = Popover;\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"PopoverAnchor.useEffect\": ()=>{\n onCustomAnchorAdd();\n return ({\n \"PopoverAnchor.useEffect\": ()=>onCustomAnchorRemove()\n })[\"PopoverAnchor.useEffect\"];\n }\n }[\"PopoverAnchor.useEffect\"], [\n onCustomAnchorAdd,\n onCustomAnchorRemove\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Anchor, {\n ...popperScope,\n ...anchorProps,\n ref: forwardedRef\n });\n}, \"yjbVQpHBunJMxYzojxDKHzLjDyc=\", false, function() {\n return [\n usePopoverContext,\n usePopperScope\n ];\n})), \"yjbVQpHBunJMxYzojxDKHzLjDyc=\", false, function() {\n return [\n usePopoverContext,\n usePopperScope\n ];\n});\n_c2 = PopoverAnchor;\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button, {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n });\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Anchor, {\n asChild: true,\n ...popperScope,\n children: trigger\n });\n}, \"K4iZob5lbcsBXd+j7GfYCXS7ZOA=\", false, function() {\n return [\n usePopoverContext,\n usePopperScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n})), \"K4iZob5lbcsBXd+j7GfYCXS7ZOA=\", false, function() {\n return [\n usePopoverContext,\n usePopperScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n});\n_c4 = PopoverTrigger;\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props)=>{\n _s3();\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopePopover,\n forceMount,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__.Portal, {\n asChild: true,\n container,\n children\n })\n })\n });\n};\n_s3(PopoverPortal, \"9et25l8VaLcpuQmtUVmALeCWc4M=\", false, function() {\n return [\n usePopoverContext\n ];\n});\n_c5 = PopoverPortal;\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s4((props, forwardedRef)=>{\n _s4();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || context.open,\n children: context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopoverContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopoverContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n });\n}, \"qw4xs0oQBSjmc3ITW/cjB3kNvpc=\", false, function() {\n return [\n usePortalContext,\n usePopoverContext\n ];\n})), \"qw4xs0oQBSjmc3ITW/cjB3kNvpc=\", false, function() {\n return [\n usePortalContext,\n usePopoverContext\n ];\n});\n_c7 = PopoverContent;\nPopoverContent.displayName = CONTENT_NAME;\nvar PopoverContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s5((props, forwardedRef)=>{\n _s5();\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, contentRef);\n const isRightClickOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"PopoverContentModal.useEffect\": ()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_11__.hideOthers)(content);\n }\n }[\"PopoverContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_13__.Slot,\n allowPinchZoom: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopoverContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n event.preventDefault();\n if (!isRightClickOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n }, {\n checkForDefaultPrevented: false\n }),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault(), {\n checkForDefaultPrevented: false\n })\n })\n });\n}, \"FECBP+0gqHSMxi3FmVm3wtSLePU=\", false, function() {\n return [\n usePopoverContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n}));\n_c8 = PopoverContentModal;\nvar PopoverContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerDownOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopoverContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props_onCloseAutoFocus;\n (_props_onCloseAutoFocus = props.onCloseAutoFocus) === null || _props_onCloseAutoFocus === void 0 ? void 0 : _props_onCloseAutoFocus.call(props, event);\n if (!event.defaultPrevented) {\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props_onInteractOutside, _context_triggerRef_current;\n (_props_onInteractOutside = props.onInteractOutside) === null || _props_onInteractOutside === void 0 ? void 0 : _props_onInteractOutside.call(props, event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n });\n}, \"FrFbVQaru0Wx8/HAeaTJNSNETpc=\", false, function() {\n return [\n usePopoverContext\n ];\n}));\n_c9 = PopoverContentNonModal;\nvar PopoverContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_14__.useFocusGuards)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_15__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_16__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: ()=>context.onOpenChange(false),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Content, {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n })\n })\n });\n}, \"oCz0LJi5iYStV2MxUvBBGfchLDc=\", false, function() {\n return [\n usePopoverContext,\n usePopperScope,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_14__.useFocusGuards\n ];\n}));\n_c10 = PopoverContentImpl;\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c11 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button, {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false))\n });\n}, \"9et25l8VaLcpuQmtUVmALeCWc4M=\", false, function() {\n return [\n usePopoverContext\n ];\n})), \"9et25l8VaLcpuQmtUVmALeCWc4M=\", false, function() {\n return [\n usePopoverContext\n ];\n});\n_c12 = PopoverClose;\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c13 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n})), \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n});\n_c14 = PopoverArrow;\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14;\n$RefreshReg$(_c, \"Popover\");\n$RefreshReg$(_c1, \"PopoverAnchor$React.forwardRef\");\n$RefreshReg$(_c2, \"PopoverAnchor\");\n$RefreshReg$(_c3, \"PopoverTrigger$React.forwardRef\");\n$RefreshReg$(_c4, \"PopoverTrigger\");\n$RefreshReg$(_c5, \"PopoverPortal\");\n$RefreshReg$(_c6, \"PopoverContent$React.forwardRef\");\n$RefreshReg$(_c7, \"PopoverContent\");\n$RefreshReg$(_c8, \"PopoverContentModal\");\n$RefreshReg$(_c9, \"PopoverContentNonModal\");\n$RefreshReg$(_c10, \"PopoverContentImpl\");\n$RefreshReg$(_c11, \"PopoverClose$React.forwardRef\");\n$RefreshReg$(_c12, \"PopoverClose\");\n$RefreshReg$(_c13, \"PopoverArrow$React.forwardRef\");\n$RefreshReg$(_c14, \"PopoverArrow\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wb3Zlci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ2M7QUFDTDtBQUNHO0FBQ0Y7QUFDRjtBQUNKO0FBQ0w7QUFDVztBQUNDO0FBQ1E7QUFDakI7QUFDQztBQUNMO0FBQ2dCO0FBQ1Y7QUFDRTtBQTJEdkI7QUFuRE4sSUFBTSxlQUFlO0FBR3JCLElBQU0sQ0FBQyxzQkFBc0Isa0JBQWtCLElBQUksMkVBQWtCLENBQUMsY0FBYztJQUNsRixxRUFBaUI7Q0FDbEI7QUFDRCxJQUFNLGlCQUFpQix5RUFBaUIsQ0FBQztBQWN6QyxJQUFNLENBQUMsaUJBQWlCLGlCQUFpQixJQUN2QyxxQkFBMEMsWUFBWTtBQVV4RCxjQUF3QyxDQUFDOztJQUN2QyxNQUFNLEVBQ0osZ0JBQ0EsVUFDQSxNQUFNLFVBQ04sYUFDQSxjQUNBLFFBQVEsT0FDVixHQUFJO0lBQ0osTUFBTSw2QkFBNkIsY0FBYztJQUNqRCxNQUFNLGFBQW1CLDBDQUEwQixJQUFJO0lBQ3ZELE1BQU0sQ0FBQyxpQkFBaUIsa0JBQWtCLElBQVUsNENBQVMsS0FBSztJQUNsRSxNQUFNLENBQUMsT0FBTyxPQUFPLE9BQU8saUdBQXlCO1FBQ25ELE1BQU07UUFDTixhQUFhO1FBQ2IsVUFBVTtJQUNaLENBQUM7SUFFRCxPQUNFLHVFQUFpQiwwREFBaEI7UUFBc0IsR0FBRztRQUN4QixpRkFBQztZQUNDLE9BQU87WUFDUCxXQUFXLHlEQUFLLENBQUM7WUFDakI7WUFDQTtZQUNBLGNBQWM7WUFDZCxjQUFvQjt1Q0FBWSxJQUFNOytDQUFRLENBQUMsV0FBYSxDQUFDLFFBQVE7O3NDQUFHO2dCQUFDLE9BQU87YUFBQztZQUNqRjtZQUNBLG1CQUF5Qjt1Q0FBWSxJQUFNLG1CQUFtQixJQUFJO3NDQUFHLENBQUMsQ0FBQztZQUN2RSxzQkFBNEI7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TUMsVUFBUztBQUNmLElBQU0sVUFBVTtBQUNoQixJQUFNLFNBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU0sUUFBUTtBQUNkLElBQU1DLFNBQVEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL1BvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgdXNlRm9jdXNHdWFyZHMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzJztcbmltcG9ydCB7IEZvY3VzU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuaW1wb3J0ICogYXMgUG9wcGVyUHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wb3BwZXInO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1zbG90JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gJ2FyaWEtaGlkZGVuJztcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb3BvdmVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUE9WRVJfTkFNRSA9ICdQb3BvdmVyJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVQb3BvdmVyPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVQb3BvdmVyQ29udGV4dCwgY3JlYXRlUG9wb3ZlclNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShQT1BPVkVSX05BTUUsIFtcbiAgY3JlYXRlUG9wcGVyU2NvcGUsXG5dKTtcbmNvbnN0IHVzZVBvcHBlclNjb3BlID0gY3JlYXRlUG9wcGVyU2NvcGUoKTtcblxudHlwZSBQb3BvdmVyQ29udGV4dFZhbHVlID0ge1xuICB0cmlnZ2VyUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudElkOiBzdHJpbmc7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgb25PcGVuVG9nZ2xlKCk6IHZvaWQ7XG4gIGhhc0N1c3RvbUFuY2hvcjogYm9vbGVhbjtcbiAgb25DdXN0b21BbmNob3JBZGQoKTogdm9pZDtcbiAgb25DdXN0b21BbmNob3JSZW1vdmUoKTogdm9pZDtcbiAgbW9kYWw6IGJvb2xlYW47XG59O1xuXG5jb25zdCBbUG9wb3ZlclByb3ZpZGVyLCB1c2VQb3BvdmVyQ29udGV4dF0gPVxuICBjcmVhdGVQb3BvdmVyQ29udGV4dDxQb3BvdmVyQ29udGV4dFZhbHVlPihQT1BPVkVSX05BTUUpO1xuXG5pbnRlcmZhY2UgUG9wb3ZlclByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBkZWZhdWx0T3Blbj86IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZT86IChvcGVuOiBib29sZWFuKSA9PiB2b2lkO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IFBvcG92ZXI6IFJlYWN0LkZDPFBvcG92ZXJQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPFBvcG92ZXJQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVQb3BvdmVyLFxuICAgIGNoaWxkcmVuLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBtb2RhbCA9IGZhbHNlLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2hhc0N1c3RvbUFuY2hvciwgc2V0SGFzQ3VzdG9tQW5jaG9yXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogb3BlblByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2UsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPFBvcHBlclByaW1pdGl2ZS5Sb290IHsuLi5wb3BwZXJTY29wZX0+XG4gICAgICA8UG9wb3ZlclByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlUG9wb3Zlcn1cbiAgICAgICAgY29udGVudElkPXt1c2VJZCgpfVxuICAgICAgICB0cmlnZ2VyUmVmPXt0cmlnZ2VyUmVmfVxuICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICBvbk9wZW5DaGFuZ2U9e3NldE9wZW59XG4gICAgICAgIG9uT3BlblRvZ2dsZT17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSl9XG4gICAgICAgIGhhc0N1c3RvbUFuY2hvcj17aGFzQ3VzdG9tQW5jaG9yfVxuICAgICAgICBvbkN1c3RvbUFuY2hvckFkZD17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SGFzQ3VzdG9tQW5jaG9yKHRydWUpLCBbXSl9XG4gICAgICAgIG9uQ3VzdG9tQW5jaG9yUmVtb3ZlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRIYXNDdXN0b21BbmNob3IoZmFsc2UpLCBbXSl9XG4gICAgICAgIG1vZGFsPXttb2RhbH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Qb3BvdmVyUHJvdmlkZXI+XG4gICAgPC9Qb3BwZXJQcmltaXRpdmUuUm9vdD5cbiAgKTtcbn07XG5cblBvcG92ZXIuZGlzcGxheU5hbWUgPSBQT1BPVkVSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcG92ZXJBbmNob3JcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQU5DSE9SX05BTUUgPSAnUG9wb3ZlckFuY2hvcic7XG5cbnR5cGUgUG9wb3ZlckFuY2hvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQW5jaG9yPjtcbnR5cGUgUG9wcGVyQW5jaG9yUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BbmNob3I+O1xuaW50ZXJmYWNlIFBvcG92ZXJBbmNob3JQcm9wcyBleHRlbmRzIFBvcHBlckFuY2hvclByb3BzIHt9XG5cbmNvbnN0IFBvcG92ZXJBbmNob3IgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcG92ZXJBbmNob3JFbGVtZW50LCBQb3BvdmVyQW5jaG9yUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFBvcG92ZXJBbmNob3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVBvcG92ZXIsIC4uLmFuY2hvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoQU5DSE9SX05BTUUsIF9fc2NvcGVQb3BvdmVyKTtcbiAgICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVQb3BvdmVyKTtcbiAgICBjb25zdCB7IG9uQ3VzdG9tQW5jaG9yQWRkLCBvbkN1c3RvbUFuY2hvclJlbW92ZSB9ID0gY29udGV4dDtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvbkN1c3RvbUFuY2hvckFkZCgpO1xuICAgICAgcmV0dXJuICgpID0+IG9uQ3VzdG9tQW5jaG9yUmVtb3ZlKCk7XG4gICAgfSwgW29uQ3VzdG9tQW5jaG9yQWRkLCBvbkN1c3RvbUFuY2hvclJlbW92ZV0pO1xuXG4gICAgcmV0dXJuIDxQb3BwZXJQcmltaXRpdmUuQW5jaG9yIHsuLi5wb3BwZXJTY29wZX0gey4uLmFuY2hvclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cblBvcG92ZXJBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wb3ZlclRyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ1BvcG92ZXJUcmlnZ2VyJztcblxudHlwZSBQb3BvdmVyVHJpZ2dlckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbnR5cGUgUHJpbWl0aXZlQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIFBvcG92ZXJUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBQb3BvdmVyVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8UG9wb3ZlclRyaWdnZXJFbGVtZW50LCBQb3BvdmVyVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxQb3BvdmVyVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlUG9wb3ZlciwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlUG9wb3Zlcik7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlUG9wb3Zlcik7XG4gICAgY29uc3QgY29tcG9zZWRUcmlnZ2VyUmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC50cmlnZ2VyUmVmKTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPSAoXG4gICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2NvbnRleHQub3Blbn1cbiAgICAgICAgYXJpYS1jb250cm9scz17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgIGRhdGEtc3RhdGU9e2dldFN0YXRlKGNvbnRleHQub3Blbil9XG4gICAgICAgIHsuLi50cmlnZ2VyUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRUcmlnZ2VyUmVmfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBjb250ZXh0Lm9uT3BlblRvZ2dsZSl9XG4gICAgICAvPlxuICAgICk7XG5cbiAgICByZXR1cm4gY29udGV4dC5oYXNDdXN0b21BbmNob3IgPyAoXG4gICAgICB0cmlnZ2VyXG4gICAgKSA6IChcbiAgICAgIDxQb3BwZXJQcmltaXRpdmUuQW5jaG9yIGFzQ2hpbGQgey4uLnBvcHBlclNjb3BlfT5cbiAgICAgICAge3RyaWdnZXJ9XG4gICAgICA8L1BvcHBlclByaW1pdGl2ZS5BbmNob3I+XG4gICAgKTtcbiAgfVxuKTtcblxuUG9wb3ZlclRyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcG92ZXJQb3J0YWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUE9SVEFMX05BTUUgPSAnUG9wb3ZlclBvcnRhbCc7XG5cbnR5cGUgUG9ydGFsQ29udGV4dFZhbHVlID0geyBmb3JjZU1vdW50PzogdHJ1ZSB9O1xuY29uc3QgW1BvcnRhbFByb3ZpZGVyLCB1c2VQb3J0YWxDb250ZXh0XSA9IGNyZWF0ZVBvcG92ZXJDb250ZXh0PFBvcnRhbENvbnRleHRWYWx1ZT4oUE9SVEFMX05BTUUsIHtcbiAgZm9yY2VNb3VudDogdW5kZWZpbmVkLFxufSk7XG5cbnR5cGUgUG9ydGFsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcnRhbFByaW1pdGl2ZT47XG5pbnRlcmZhY2UgUG9wb3ZlclBvcnRhbFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAqL1xuICBjb250YWluZXI/OiBQb3J0YWxQcm9wc1snY29udGFpbmVyJ107XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBQb3BvdmVyUG9ydGFsOiBSZWFjdC5GQzxQb3BvdmVyUG9ydGFsUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxQb3BvdmVyUG9ydGFsUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZVBvcG92ZXIsIGZvcmNlTW91bnQsIGNoaWxkcmVuLCBjb250YWluZXIgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoUE9SVEFMX05BTUUsIF9fc2NvcGVQb3BvdmVyKTtcbiAgcmV0dXJuIChcbiAgICA8UG9ydGFsUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVQb3BvdmVyfSBmb3JjZU1vdW50PXtmb3JjZU1vdW50fT5cbiAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgIDxQb3J0YWxQcmltaXRpdmUgYXNDaGlsZCBjb250YWluZXI9e2NvbnRhaW5lcn0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1BvcnRhbFByaW1pdGl2ZT5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgPC9Qb3J0YWxQcm92aWRlcj5cbiAgKTtcbn07XG5cblBvcG92ZXJQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wb3ZlckNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1BvcG92ZXJDb250ZW50JztcblxuaW50ZXJmYWNlIFBvcG92ZXJDb250ZW50UHJvcHMgZXh0ZW5kcyBQb3BvdmVyQ29udGVudFR5cGVQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8UG9wb3ZlckNvbnRlbnRUeXBlRWxlbWVudCwgUG9wb3ZlckNvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wb3ZlckNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlUG9wb3Zlcik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgIHtjb250ZXh0Lm1vZGFsID8gKFxuICAgICAgICAgIDxQb3BvdmVyQ29udGVudE1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQb3BvdmVyQ29udGVudE5vbk1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApfVxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApO1xuICB9XG4pO1xuXG5Qb3BvdmVyQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFBvcG92ZXJDb250ZW50VHlwZUVsZW1lbnQgPSBQb3BvdmVyQ29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIFBvcG92ZXJDb250ZW50VHlwZVByb3BzXG4gIGV4dGVuZHMgT21pdDxQb3BvdmVyQ29udGVudEltcGxQcm9wcywgJ3RyYXBGb2N1cycgfCAnZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzJz4ge31cblxuY29uc3QgUG9wb3ZlckNvbnRlbnRNb2RhbCA9IFJlYWN0LmZvcndhcmRSZWY8UG9wb3ZlckNvbnRlbnRUeXBlRWxlbWVudCwgUG9wb3ZlckNvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFBvcG92ZXJDb250ZW50VHlwZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuICAgIGNvbnN0IGlzUmlnaHRDbGlja091dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgLy8gYXJpYS1oaWRlIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjb250ZW50IChiZXR0ZXIgc3VwcG9ydGVkIGVxdWl2YWxlbnQgdG8gc2V0dGluZyBhcmlhLW1vZGFsKVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gY29udGVudFJlZi5jdXJyZW50O1xuICAgICAgaWYgKGNvbnRlbnQpIHJldHVybiBoaWRlT3RoZXJzKGNvbnRlbnQpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVtb3ZlU2Nyb2xsIGFzPXtTbG90fSBhbGxvd1BpbmNoWm9vbT5cbiAgICAgICAgPFBvcG92ZXJDb250ZW50SW1wbFxuICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAvLyB3ZSBtYWtlIHN1cmUgd2UncmUgbm90IHRyYXBwaW5nIG9uY2UgaXQncyBiZWVuIGNsb3NlZFxuICAgICAgICAgIC8vIChjbG9zZWQgIT09IHVubW91bnRlZCB3aGVuIGFuaW1hdGluZyBvdXQpXG4gICAgICAgICAgdHJhcEZvY3VzPXtjb250ZXh0Lm9wZW59XG4gICAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzXG4gICAgICAgICAgb25DbG9zZUF1dG9Gb2N1cz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbG9zZUF1dG9Gb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpc1JpZ2h0Q2xpY2tPdXRzaWRlUmVmLmN1cnJlbnQpIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlckRvd25PdXRzaWRlLFxuICAgICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXZlbnQgPSBldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudDtcbiAgICAgICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29uc3QgaXNSaWdodENsaWNrID0gb3JpZ2luYWxFdmVudC5idXR0b24gPT09IDIgfHwgY3RybExlZnRDbGljaztcblxuICAgICAgICAgICAgICBpc1JpZ2h0Q2xpY2tPdXRzaWRlUmVmLmN1cnJlbnQgPSBpc1JpZ2h0Q2xpY2s7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQ6IGZhbHNlIH1cbiAgICAgICAgICApfVxuICAgICAgICAgIC8vIFdoZW4gZm9jdXMgaXMgdHJhcHBlZCwgYSBgZm9jdXNvdXRgIGV2ZW50IG1heSBzdGlsbCBoYXBwZW4uXG4gICAgICAgICAgLy8gV2UgbWFrZSBzdXJlIHdlIGRvbid0IHRyaWdnZXIgb3VyIGBvbkRpc21pc3NgIGluIHN1Y2ggY2FzZS5cbiAgICAgICAgICBvbkZvY3VzT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzT3V0c2lkZSxcbiAgICAgICAgICAgIChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIDwvUmVtb3ZlU2Nyb2xsPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IFBvcG92ZXJDb250ZW50Tm9uTW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcG92ZXJDb250ZW50VHlwZUVsZW1lbnQsIFBvcG92ZXJDb250ZW50VHlwZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxQb3BvdmVyQ29udGVudFR5cGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BvdmVyQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVQb3BvdmVyKTtcbiAgICBjb25zdCBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UG9wb3ZlckNvbnRlbnRJbXBsXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIHRyYXBGb2N1cz17ZmFsc2V9XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICAgIG9uQ2xvc2VBdXRvRm9jdXM9eyhldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uQ2xvc2VBdXRvRm9jdXM/LihldmVudCk7XG5cbiAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGlmICghaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCkgY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAvLyBBbHdheXMgcHJldmVudCBhdXRvIGZvY3VzIGJlY2F1c2Ugd2UgZWl0aGVyIGZvY3VzIG1hbnVhbGx5IG9yIHdhbnQgdXNlciBhZ2VudCBmb2N1c1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfX1cbiAgICAgICAgb25JbnRlcmFjdE91dHNpZGU9eyhldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudC50eXBlID09PSAncG9pbnRlcmRvd24nKSB7XG4gICAgICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQcmV2ZW50IGRpc21pc3Npbmcgd2hlbiBjbGlja2luZyB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAvLyBBcyB0aGUgdHJpZ2dlciBpcyBhbHJlYWR5IHNldHVwIHRvIGNsb3NlLCB3aXRob3V0IGRvaW5nIHNvIHdvdWxkXG4gICAgICAgICAgLy8gY2F1c2UgaXQgdG8gY2xvc2UgYW5kIGltbWVkaWF0ZWx5IG9wZW4uXG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IHRhcmdldElzVHJpZ2dlciA9IGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpO1xuICAgICAgICAgIGlmICh0YXJnZXRJc1RyaWdnZXIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAvLyBPbiBTYWZhcmkgaWYgdGhlIHRyaWdnZXIgaXMgaW5zaWRlIGEgY29udGFpbmVyIHdpdGggdGFiSW5kZXg9ezB9LCB3aGVuIGNsaWNrZWRcbiAgICAgICAgICAvLyB3ZSB3aWxsIGdldCB0aGUgcG9pbnRlciBkb3duIG91dHNpZGUgZXZlbnQgb24gdGhlIHRyaWdnZXIsIGJ1dCB0aGVuIGEgc3Vic2VxdWVudFxuICAgICAgICAgIC8vIGZvY3VzIG91dHNpZGUgZXZlbnQgb24gdGhlIGNvbnRhaW5lciwgd2UgaWdub3JlIGFueSBmb2N1cyBvdXRzaWRlIGV2ZW50IHdoZW4gd2UndmVcbiAgICAgICAgICAvLyBhbHJlYWR5IGhhZCBhIHBvaW50ZXIgZG93biBvdXRzaWRlIGV2ZW50LlxuICAgICAgICAgIGlmIChldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudC50eXBlID09PSAnZm9jdXNpbicgJiYgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgUG9wb3ZlckNvbnRlbnRJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5Db250ZW50PjtcbnR5cGUgRm9jdXNTY29wZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBGb2N1c1Njb3BlPjtcbnR5cGUgRGlzbWlzc2FibGVMYXllclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaXNtaXNzYWJsZUxheWVyPjtcbnR5cGUgUG9wcGVyQ29udGVudFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQ29udGVudD47XG5pbnRlcmZhY2UgUG9wb3ZlckNvbnRlbnRJbXBsUHJvcHNcbiAgZXh0ZW5kcyBPbWl0PFBvcHBlckNvbnRlbnRQcm9wcywgJ29uUGxhY2VkJz4sXG4gICAgT21pdDxEaXNtaXNzYWJsZUxheWVyUHJvcHMsICdvbkRpc21pc3MnPiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGZvY3VzIHNob3VsZCBiZSB0cmFwcGVkIHdpdGhpbiB0aGUgYFBvcG92ZXJgXG4gICAqIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIHRyYXBGb2N1cz86IEZvY3VzU2NvcGVQcm9wc1sndHJhcHBlZCddO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gb3Blbi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uT3BlbkF1dG9Gb2N1cz86IEZvY3VzU2NvcGVQcm9wc1snb25Nb3VudEF1dG9Gb2N1cyddO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcbn1cblxuY29uc3QgUG9wb3ZlckNvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BvdmVyQ29udGVudEltcGxFbGVtZW50LCBQb3BvdmVyQ29udGVudEltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wb3ZlckNvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUG9wb3ZlcixcbiAgICAgIHRyYXBGb2N1cyxcbiAgICAgIG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxuICAgICAgb25JbnRlcmFjdE91dHNpZGUsXG4gICAgICAuLi5jb250ZW50UHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVBvcG92ZXIpO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBQb3BvdmVyYCBtYXkgYmVcbiAgICAvLyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBET00gKGJlY2F1c2Ugb2YgdGhlIGBQb3J0YWxgKVxuICAgIHVzZUZvY3VzR3VhcmRzKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZvY3VzU2NvcGVcbiAgICAgICAgYXNDaGlsZFxuICAgICAgICBsb29wXG4gICAgICAgIHRyYXBwZWQ9e3RyYXBGb2N1c31cbiAgICAgICAgb25Nb3VudEF1dG9Gb2N1cz17b25PcGVuQXV0b0ZvY3VzfVxuICAgICAgICBvblVubW91bnRBdXRvRm9jdXM9e29uQ2xvc2VBdXRvRm9jdXN9XG4gICAgICA+XG4gICAgICAgIDxEaXNtaXNzYWJsZUxheWVyXG4gICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzfVxuICAgICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPXtvbkludGVyYWN0T3V0c2lkZX1cbiAgICAgICAgICBvbkVzY2FwZUtleURvd249e29uRXNjYXBlS2V5RG93bn1cbiAgICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT17b25Qb2ludGVyRG93bk91dHNpZGV9XG4gICAgICAgICAgb25Gb2N1c091dHNpZGU9e29uRm9jdXNPdXRzaWRlfVxuICAgICAgICAgIG9uRGlzbWlzcz17KCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpfVxuICAgICAgICA+XG4gICAgICAgICAgPFBvcHBlclByaW1pdGl2ZS5Db250ZW50XG4gICAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjb250ZXh0Lm9wZW4pfVxuICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICB7Li4ucG9wcGVyU2NvcGV9XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAuLi5jb250ZW50UHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgIC8vIHJlLW5hbWVzcGFjZSBleHBvc2VkIGNvbnRlbnQgY3VzdG9tIHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgICctLXJhZGl4LXBvcG92ZXItY29udGVudC10cmFuc2Zvcm0tb3JpZ2luJzogJ3ZhcigtLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luKScsXG4gICAgICAgICAgICAgICAgJy0tcmFkaXgtcG9wb3Zlci1jb250ZW50LWF2YWlsYWJsZS13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKScsXG4gICAgICAgICAgICAgICAgJy0tcmFkaXgtcG9wb3Zlci1jb250ZW50LWF2YWlsYWJsZS1oZWlnaHQnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpJyxcbiAgICAgICAgICAgICAgICAnLS1yYWRpeC1wb3BvdmVyLXRyaWdnZXItd2lkdGgnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aCknLFxuICAgICAgICAgICAgICAgICctLXJhZGl4LXBvcG92ZXItdHJpZ2dlci1oZWlnaHQnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EaXNtaXNzYWJsZUxheWVyPlxuICAgICAgPC9Gb2N1c1Njb3BlPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcG92ZXJDbG9zZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDTE9TRV9OQU1FID0gJ1BvcG92ZXJDbG9zZSc7XG5cbnR5cGUgUG9wb3ZlckNsb3NlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIFBvcG92ZXJDbG9zZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgUG9wb3ZlckNsb3NlID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BvdmVyQ2xvc2VFbGVtZW50LCBQb3BvdmVyQ2xvc2VQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wb3ZlckNsb3NlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVQb3BvdmVyLCAuLi5jbG9zZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wb3ZlckNvbnRleHQoQ0xPU0VfTkFNRSwgX19zY29wZVBvcG92ZXIpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgey4uLmNsb3NlUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSkpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5Qb3BvdmVyQ2xvc2UuZGlzcGxheU5hbWUgPSBDTE9TRV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb3BvdmVyQXJyb3dcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQVJST1dfTkFNRSA9ICdQb3BvdmVyQXJyb3cnO1xuXG50eXBlIFBvcG92ZXJBcnJvd0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xudHlwZSBQb3BwZXJBcnJvd1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xuaW50ZXJmYWNlIFBvcG92ZXJBcnJvd1Byb3BzIGV4dGVuZHMgUG9wcGVyQXJyb3dQcm9wcyB7fVxuXG5jb25zdCBQb3BvdmVyQXJyb3cgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcG92ZXJBcnJvd0VsZW1lbnQsIFBvcG92ZXJBcnJvd1Byb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxQb3BvdmVyQXJyb3dQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVBvcG92ZXIsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVBvcG92ZXIpO1xuICAgIHJldHVybiA8UG9wcGVyUHJpbWl0aXZlLkFycm93IHsuLi5wb3BwZXJTY29wZX0gey4uLmFycm93UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuUG9wb3ZlckFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBnZXRTdGF0ZShvcGVuOiBib29sZWFuKSB7XG4gIHJldHVybiBvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCc7XG59XG5cbmNvbnN0IFJvb3QgPSBQb3BvdmVyO1xuY29uc3QgQW5jaG9yID0gUG9wb3ZlckFuY2hvcjtcbmNvbnN0IFRyaWdnZXIgPSBQb3BvdmVyVHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IFBvcG92ZXJQb3J0YWw7XG5jb25zdCBDb250ZW50ID0gUG9wb3ZlckNvbnRlbnQ7XG5jb25zdCBDbG9zZSA9IFBvcG92ZXJDbG9zZTtcbmNvbnN0IEFycm93ID0gUG9wb3ZlckFycm93O1xuXG5leHBvcnQge1xuICBjcmVhdGVQb3BvdmVyU2NvcGUsXG4gIC8vXG4gIFBvcG92ZXIsXG4gIFBvcG92ZXJBbmNob3IsXG4gIFBvcG92ZXJUcmlnZ2VyLFxuICBQb3BvdmVyUG9ydGFsLFxuICBQb3BvdmVyQ29udGVudCxcbiAgUG9wb3ZlckNsb3NlLFxuICBQb3BvdmVyQXJyb3csXG4gIC8vXG4gIFJvb3QsXG4gIEFuY2hvcixcbiAgVHJpZ2dlcixcbiAgUG9ydGFsLFxuICBDb250ZW50LFxuICBDbG9zZSxcbiAgQXJyb3csXG59O1xuZXhwb3J0IHR5cGUge1xuICBQb3BvdmVyUHJvcHMsXG4gIFBvcG92ZXJBbmNob3JQcm9wcyxcbiAgUG9wb3ZlclRyaWdnZXJQcm9wcyxcbiAgUG9wb3ZlclBvcnRhbFByb3BzLFxuICBQb3BvdmVyQ29udGVudFByb3BzLFxuICBQb3BvdmVyQ2xvc2VQcm9wcyxcbiAgUG9wb3ZlckFycm93UHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbIlJvb3QiLCJBbmNob3IiLCJDb250ZW50IiwiQXJyb3ciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-popover/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-popper/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALIGN_OPTIONS: () => (/* binding */ ALIGN_OPTIONS),\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Popper: () => (/* binding */ Popper),\n/* harmony export */ PopperAnchor: () => (/* binding */ PopperAnchor),\n/* harmony export */ PopperArrow: () => (/* binding */ PopperArrow),\n/* harmony export */ PopperContent: () => (/* binding */ PopperContent),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ SIDE_OPTIONS: () => (/* binding */ SIDE_OPTIONS),\n/* harmony export */ createPopperScope: () => (/* binding */ createPopperScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-arrow */ \"(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ ALIGN_OPTIONS,Anchor,Arrow,Content,Popper,PopperAnchor,PopperArrow,PopperContent,Root,SIDE_OPTIONS,createPopperScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/popper/src/Popper.tsx\n\n\n\n\n\n\n\n\n\n\nvar SIDE_OPTIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n];\nvar ALIGN_OPTIONS = [\n \"start\",\n \"center\",\n \"end\"\n];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props)=>{\n _s();\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor,\n children\n });\n};\n_s(Popper, \"wxYvbWVl4wPDiI7jlInCOrjrm3Y=\");\n_c = Popper;\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"PopperAnchor.useEffect\": ()=>{\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n }\n }[\"PopperAnchor.useEffect\"]);\n return virtualRef ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...anchorProps,\n ref: composedRefs\n });\n}, \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c2 = PopperAnchor;\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s2((props, forwardedRef)=>{\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2, _middlewareData_transformOrigin, _middlewareData_transformOrigin1, _middlewareData_hide;\n _s2();\n const { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, updatePositionStrategy = \"optimized\", onPlaced, ...contentProps } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"PopperContent.useComposedRefs[composedRefs]\": (node)=>setContent(node)\n }[\"PopperContent.useComposedRefs[composedRefs]\"]);\n const [arrow, setArrow] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const arrowSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize)(arrow);\n var _arrowSize_width;\n const arrowWidth = (_arrowSize_width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize_width !== void 0 ? _arrowSize_width : 0;\n var _arrowSize_height;\n const arrowHeight = (_arrowSize_height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize_height !== void 0 ? _arrowSize_height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPaddingProp\n };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating)({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: {\n \"PopperContent.useFloating\": function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const cleanup = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__.autoUpdate)(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n }\n }[\"PopperContent.useFloating\"],\n elements: {\n reference: context.anchor\n },\n middleware: [\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.offset)({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.shift)({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.limitShift)() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.flip)({\n ...detectOverflowOptions\n }),\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.size)({\n ...detectOverflowOptions,\n apply: {\n \"PopperContent.useFloating\": (param)=>{\n let { elements, rects, availableWidth, availableHeight } = param;\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", \"\".concat(availableWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-available-height\", \"\".concat(availableHeight, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-width\", \"\".concat(anchorWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-height\", \"\".concat(anchorHeight, \"px\"));\n }\n }[\"PopperContent.useFloating\"]\n }),\n arrow && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.arrow)({\n element: arrow,\n padding: arrowPadding\n }),\n transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.hide)({\n strategy: \"referenceHidden\",\n ...detectOverflowOptions\n })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onPlaced);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (isPositioned) {\n handlePlaced === null || handlePlaced === void 0 ? void 0 : handlePlaced();\n }\n }\n }[\"PopperContent.useLayoutEffect\"], [\n isPositioned,\n handlePlaced\n ]);\n const arrowX = (_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.x;\n const arrowY = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.y;\n const cannotCenterArrow = ((_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }\n }[\"PopperContent.useLayoutEffect\"], [\n content\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData_transformOrigin = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin === void 0 ? void 0 : _middlewareData_transformOrigin.x,\n (_middlewareData_transformOrigin1 = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin1 === void 0 ? void 0 : _middlewareData_transformOrigin1.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...((_middlewareData_hide = middlewareData.hide) === null || _middlewareData_hide === void 0 ? void 0 : _middlewareData_hide.referenceHidden) && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n })\n })\n });\n}, \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n})), \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n});\n_c4 = PopperContent;\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c5 = _s3(function PopperArrow2(props, forwardedRef) {\n _s3();\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return(// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: \"rotate(180deg)\",\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__.Root, {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n })\n }));\n}, \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n})), \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n});\n_c6 = PopperArrow;\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options)=>({\n name: \"transformOrigin\",\n options,\n fn (data) {\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n var _middlewareData_arrow_x;\n const arrowXCenter = ((_middlewareData_arrow_x = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.x) !== null && _middlewareData_arrow_x !== void 0 ? _middlewareData_arrow_x : 0) + arrowWidth / 2;\n var _middlewareData_arrow_y;\n const arrowYCenter = ((_middlewareData_arrow_y = (_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.y) !== null && _middlewareData_arrow_y !== void 0 ? _middlewareData_arrow_y : 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(-arrowHeight, \"px\");\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(rects.floating.height + arrowHeight, \"px\");\n } else if (placedSide === \"right\") {\n x = \"\".concat(-arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n } else if (placedSide === \"left\") {\n x = \"\".concat(rects.floating.width + arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n }\n return {\n data: {\n x,\n y\n }\n };\n }\n });\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"Popper\");\n$RefreshReg$(_c1, \"PopperAnchor$React.forwardRef\");\n$RefreshReg$(_c2, \"PopperAnchor\");\n$RefreshReg$(_c3, \"PopperContent$React.forwardRef\");\n$RefreshReg$(_c4, \"PopperContent\");\n$RefreshReg$(_c5, \"PopperArrow$React.forwardRef\");\n$RefreshReg$(_c6, \"PopperArrow\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQVdoQjtBQUN5QjtBQUNBO0FBQ0c7QUFDVDtBQUNLO0FBQ0M7QUFDUjtBQWtDcEI7QUE1QkosSUFBTSxlQUFlO0lBQUM7SUFBTztJQUFTO0lBQVUsTUFBTTtDQUFBO0FBQ3RELElBQU0sZ0JBQWdCO0lBQUM7SUFBUztJQUFVLEtBQUs7Q0FBQTtBQVMvQyxJQUFNLGNBQWM7QUFHcEIsSUFBTSxDQUFDLHFCQUFxQixpQkFBaUIsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0FBTS9FLElBQU0sQ0FBQyxnQkFBZ0IsZ0JBQWdCLElBQUksb0JBQXdDLFdBQVc7QUFLOUYsYUFBc0MsQ0FBQzs7SUFDckMsTUFBTSxFQUFFLGVBQWUsU0FBUyxJQUFJO0lBQ3BDLE1BQU0sQ0FBQyxRQUFRLFNBQVMsSUFBVSw0Q0FBNEIsSUFBSTtJQUNsRSxPQUNFLHVFQUFDO1FBQWUsT0FBTztRQUFlO1FBQWdCLGdCQUFnQjtRQUNuRTtJQUFBLENBQ0g7QUFFSjs7S0FSTTtBQVVOLE9BQU8sY0FBYztBQU1yQixJQUFNLGNBQWM7QUFRcEIsSUFBTSxpQ0FBcUIsd0RBQ3pCLENBQUMsT0FBdUM7O0lBQ3RDLE1BQU0sRUFBRSxlQUFlLFlBQVksR0FBRyxZQUFZLElBQUk7SUFDdEQsTUFBTSxVQUFVLGlCQUFpQixhQUFhLGFBQWE7SUFDM0QsTUFBTSxNQUFZLDBDQUE0QixJQUFJO0lBQ2xELE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztJQUVoRDtrQ0FBVTtZQUlkLFFBQVEsZUFBZSxvRUFBWSxZQUFXLElBQUksT0FBTztRQUMzRCxDQUFDOztJQUVELE9BQU8sYUFBYSxPQUFPLHVFQUFDLGdFQUFTLENBQUMsS0FBVjtRQUFlLEdBQUc7UUFBYSxLQUFLO0lBQUEsQ0FBYztBQUNo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R0FBRztJQUNwRCxPQUFPO1FBQUM7UUFBYyxLQUFjO0tBQUE7QUFDdEM7QUFFQSxJQUFNQyxRQUFPO0FBQ2IsSUFBTSxTQUFTO0FBQ2YsSUFBTSxVQUFVO0FBQ2hCLElBQU0sUUFBUSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvUG9wcGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICB1c2VGbG9hdGluZyxcbiAgYXV0b1VwZGF0ZSxcbiAgb2Zmc2V0LFxuICBzaGlmdCxcbiAgbGltaXRTaGlmdCxcbiAgaGlkZSxcbiAgYXJyb3cgYXMgZmxvYXRpbmdVSWFycm93LFxuICBmbGlwLFxuICBzaXplLFxufSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcbmltcG9ydCAqIGFzIEFycm93UHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1hcnJvdyc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlU2l6ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZSc7XG5cbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50LCBNaWRkbGV3YXJlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJhYmxlIH0gZnJvbSAnQHJhZGl4LXVpL3JlY3QnO1xuXG5jb25zdCBTSURFX09QVElPTlMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddIGFzIGNvbnN0O1xuY29uc3QgQUxJR05fT1BUSU9OUyA9IFsnc3RhcnQnLCAnY2VudGVyJywgJ2VuZCddIGFzIGNvbnN0O1xuXG50eXBlIFNpZGUgPSAodHlwZW9mIFNJREVfT1BUSU9OUylbbnVtYmVyXTtcbnR5cGUgQWxpZ24gPSAodHlwZW9mIEFMSUdOX09QVElPTlMpW251bWJlcl07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1BQRVJfTkFNRSA9ICdQb3BwZXInO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVBvcHBlcj86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlUG9wcGVyQ29udGV4dCwgY3JlYXRlUG9wcGVyU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBPUFBFUl9OQU1FKTtcblxudHlwZSBQb3BwZXJDb250ZXh0VmFsdWUgPSB7XG4gIGFuY2hvcjogTWVhc3VyYWJsZSB8IG51bGw7XG4gIG9uQW5jaG9yQ2hhbmdlKGFuY2hvcjogTWVhc3VyYWJsZSB8IG51bGwpOiB2b2lkO1xufTtcbmNvbnN0IFtQb3BwZXJQcm92aWRlciwgdXNlUG9wcGVyQ29udGV4dF0gPSBjcmVhdGVQb3BwZXJDb250ZXh0PFBvcHBlckNvbnRleHRWYWx1ZT4oUE9QUEVSX05BTUUpO1xuXG5pbnRlcmZhY2UgUG9wcGVyUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cbmNvbnN0IFBvcHBlcjogUmVhY3QuRkM8UG9wcGVyUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxQb3BwZXJQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlUG9wcGVyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IFthbmNob3IsIHNldEFuY2hvcl0gPSBSZWFjdC51c2VTdGF0ZTxNZWFzdXJhYmxlIHwgbnVsbD4obnVsbCk7XG4gIHJldHVybiAoXG4gICAgPFBvcHBlclByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlUG9wcGVyfSBhbmNob3I9e2FuY2hvcn0gb25BbmNob3JDaGFuZ2U9e3NldEFuY2hvcn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Qb3BwZXJQcm92aWRlcj5cbiAgKTtcbn07XG5cblBvcHBlci5kaXNwbGF5TmFtZSA9IFBPUFBFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb3BwZXJBbmNob3JcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQU5DSE9SX05BTUUgPSAnUG9wcGVyQW5jaG9yJztcblxudHlwZSBQb3BwZXJBbmNob3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBQb3BwZXJBbmNob3JQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgdmlydHVhbFJlZj86IFJlYWN0LlJlZk9iamVjdDxNZWFzdXJhYmxlPjtcbn1cblxuY29uc3QgUG9wcGVyQW5jaG9yID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BwZXJBbmNob3JFbGVtZW50LCBQb3BwZXJBbmNob3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQW5jaG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIHZpcnR1YWxSZWYsIC4uLmFuY2hvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wcGVyQ29udGV4dChBTkNIT1JfTkFNRSwgX19zY29wZVBvcHBlcik7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFBvcHBlckFuY2hvckVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gQ29uc3VtZXIgY2FuIGFuY2hvciB0aGUgcG9wcGVyIHRvIHNvbWV0aGluZyB0aGF0IGlzbid0XG4gICAgICAvLyBhIERPTSBub2RlIGUuZy4gcG9pbnRlciBwb3NpdGlvbiwgc28gd2Ugb3ZlcnJpZGUgdGhlXG4gICAgICAvLyBgYW5jaG9yUmVmYCB3aXRoIHRoZWlyIHZpcnR1YWwgcmVmIGluIHRoaXMgY2FzZS5cbiAgICAgIGNvbnRleHQub25BbmNob3JDaGFuZ2UodmlydHVhbFJlZj8uY3VycmVudCB8fCByZWYuY3VycmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlydHVhbFJlZiA/IG51bGwgOiA8UHJpbWl0aXZlLmRpdiB7Li4uYW5jaG9yUHJvcHN9IHJlZj17Y29tcG9zZWRSZWZzfSAvPjtcbiAgfVxuKTtcblxuUG9wcGVyQW5jaG9yLmRpc3BsYXlOYW1lID0gQU5DSE9SX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1BvcHBlckNvbnRlbnQnO1xuXG50eXBlIFBvcHBlckNvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIHBsYWNlZFNpZGU6IFNpZGU7XG4gIG9uQXJyb3dDaGFuZ2UoYXJyb3c6IEhUTUxTcGFuRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBhcnJvd1g/OiBudW1iZXI7XG4gIGFycm93WT86IG51bWJlcjtcbiAgc2hvdWxkSGlkZUFycm93OiBib29sZWFuO1xufTtcblxuY29uc3QgW1BvcHBlckNvbnRlbnRQcm92aWRlciwgdXNlQ29udGVudENvbnRleHRdID1cbiAgY3JlYXRlUG9wcGVyQ29udGV4dDxQb3BwZXJDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG50eXBlIEJvdW5kYXJ5ID0gRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgUG9wcGVyQ29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBQb3BwZXJDb250ZW50UHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIHNpZGU/OiBTaWRlO1xuICBzaWRlT2Zmc2V0PzogbnVtYmVyO1xuICBhbGlnbj86IEFsaWduO1xuICBhbGlnbk9mZnNldD86IG51bWJlcjtcbiAgYXJyb3dQYWRkaW5nPzogbnVtYmVyO1xuICBhdm9pZENvbGxpc2lvbnM/OiBib29sZWFuO1xuICBjb2xsaXNpb25Cb3VuZGFyeT86IEJvdW5kYXJ5IHwgQm91bmRhcnlbXTtcbiAgY29sbGlzaW9uUGFkZGluZz86IG51bWJlciB8IFBhcnRpYWw8UmVjb3JkPFNpZGUsIG51bWJlcj4+O1xuICBzdGlja3k/OiAncGFydGlhbCcgfCAnYWx3YXlzJztcbiAgaGlkZVdoZW5EZXRhY2hlZD86IGJvb2xlYW47XG4gIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3k/OiAnb3B0aW1pemVkJyB8ICdhbHdheXMnO1xuICBvblBsYWNlZD86ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFBvcHBlckNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcHBlckNvbnRlbnRFbGVtZW50LCBQb3BwZXJDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlckNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVQb3BwZXIsXG4gICAgICBzaWRlID0gJ2JvdHRvbScsXG4gICAgICBzaWRlT2Zmc2V0ID0gMCxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBhbGlnbk9mZnNldCA9IDAsXG4gICAgICBhcnJvd1BhZGRpbmcgPSAwLFxuICAgICAgYXZvaWRDb2xsaXNpb25zID0gdHJ1ZSxcbiAgICAgIGNvbGxpc2lvbkJvdW5kYXJ5ID0gW10sXG4gICAgICBjb2xsaXNpb25QYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nUHJvcCA9IDAsXG4gICAgICBzdGlja3kgPSAncGFydGlhbCcsXG4gICAgICBoaWRlV2hlbkRldGFjaGVkID0gZmFsc2UsXG4gICAgICB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID0gJ29wdGltaXplZCcsXG4gICAgICBvblBsYWNlZCxcbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BwZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVBvcHBlcik7XG5cbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRDb250ZW50KG5vZGUpKTtcblxuICAgIGNvbnN0IFthcnJvdywgc2V0QXJyb3ddID0gUmVhY3QudXNlU3RhdGU8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgYXJyb3dTaXplID0gdXNlU2l6ZShhcnJvdyk7XG4gICAgY29uc3QgYXJyb3dXaWR0aCA9IGFycm93U2l6ZT8ud2lkdGggPz8gMDtcbiAgICBjb25zdCBhcnJvd0hlaWdodCA9IGFycm93U2l6ZT8uaGVpZ2h0ID8/IDA7XG5cbiAgICBjb25zdCBkZXNpcmVkUGxhY2VtZW50ID0gKHNpZGUgKyAoYWxpZ24gIT09ICdjZW50ZXInID8gJy0nICsgYWxpZ24gOiAnJykpIGFzIFBsYWNlbWVudDtcblxuICAgIGNvbnN0IGNvbGxpc2lvblBhZGRpbmcgPVxuICAgICAgdHlwZW9mIGNvbGxpc2lvblBhZGRpbmdQcm9wID09PSAnbnVtYmVyJ1xuICAgICAgICA/IGNvbGxpc2lvblBhZGRpbmdQcm9wXG4gICAgICAgIDogeyB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIC4uLmNvbGxpc2lvblBhZGRpbmdQcm9wIH07XG5cbiAgICBjb25zdCBib3VuZGFyeSA9IEFycmF5LmlzQXJyYXkoY29sbGlzaW9uQm91bmRhcnkpID8gY29sbGlzaW9uQm91bmRhcnkgOiBbY29sbGlzaW9uQm91bmRhcnldO1xuICAgIGNvbnN0IGhhc0V4cGxpY2l0Qm91bmRhcmllcyA9IGJvdW5kYXJ5Lmxlbmd0aCA+IDA7XG5cbiAgICBjb25zdCBkZXRlY3RPdmVyZmxvd09wdGlvbnMgPSB7XG4gICAgICBwYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nLFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LmZpbHRlcihpc05vdE51bGwpLFxuICAgICAgLy8gd2l0aCBgc3RyYXRlZ3k6ICdmaXhlZCdgLCB0aGlzIGlzIHRoZSBvbmx5IHdheSB0byBnZXQgaXQgdG8gcmVzcGVjdCBib3VuZGFyaWVzXG4gICAgICBhbHRCb3VuZGFyeTogaGFzRXhwbGljaXRCb3VuZGFyaWVzLFxuICAgIH07XG5cbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBwbGFjZW1lbnQsIGlzUG9zaXRpb25lZCwgbWlkZGxld2FyZURhdGEgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIC8vIGRlZmF1bHQgdG8gYGZpeGVkYCBzdHJhdGVneSBzbyB1c2VycyBkb24ndCBoYXZlIHRvIHBpY2sgYW5kIHdlIGFsc28gYXZvaWQgZm9jdXMgc2Nyb2xsIGlzc3Vlc1xuICAgICAgc3RyYXRlZ3k6ICdmaXhlZCcsXG4gICAgICBwbGFjZW1lbnQ6IGRlc2lyZWRQbGFjZW1lbnQsXG4gICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgY2xlYW51cCA9IGF1dG9VcGRhdGUoLi4uYXJncywge1xuICAgICAgICAgIGFuaW1hdGlvbkZyYW1lOiB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID09PSAnYWx3YXlzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjbGVhbnVwO1xuICAgICAgfSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZTogY29udGV4dC5hbmNob3IsXG4gICAgICB9LFxuICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICBvZmZzZXQoeyBtYWluQXhpczogc2lkZU9mZnNldCArIGFycm93SGVpZ2h0LCBhbGlnbm1lbnRBeGlzOiBhbGlnbk9mZnNldCB9KSxcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmXG4gICAgICAgICAgc2hpZnQoe1xuICAgICAgICAgICAgbWFpbkF4aXM6IHRydWUsXG4gICAgICAgICAgICBjcm9zc0F4aXM6IGZhbHNlLFxuICAgICAgICAgICAgbGltaXRlcjogc3RpY2t5ID09PSAncGFydGlhbCcgPyBsaW1pdFNoaWZ0KCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIGF2b2lkQ29sbGlzaW9ucyAmJiBmbGlwKHsgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zIH0pLFxuICAgICAgICBzaXplKHtcbiAgICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICAgICAgYXBwbHk6ICh7IGVsZW1lbnRzLCByZWN0cywgYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBhbmNob3JXaWR0aCwgaGVpZ2h0OiBhbmNob3JIZWlnaHQgfSA9IHJlY3RzLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRTdHlsZSA9IGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KCctLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgnLCBgJHthdmFpbGFibGVXaWR0aH1weGApO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KCctLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0JywgYCR7YXZhaWxhYmxlSGVpZ2h0fXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aCcsIGAke2FuY2hvcldpZHRofXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQnLCBgJHthbmNob3JIZWlnaHR9cHhgKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYXJyb3cgJiYgZmxvYXRpbmdVSWFycm93KHsgZWxlbWVudDogYXJyb3csIHBhZGRpbmc6IGFycm93UGFkZGluZyB9KSxcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luKHsgYXJyb3dXaWR0aCwgYXJyb3dIZWlnaHQgfSksXG4gICAgICAgIGhpZGVXaGVuRGV0YWNoZWQgJiYgaGlkZSh7IHN0cmF0ZWd5OiAncmVmZXJlbmNlSGlkZGVuJywgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtwbGFjZWRTaWRlLCBwbGFjZWRBbGlnbl0gPSBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICBjb25zdCBoYW5kbGVQbGFjZWQgPSB1c2VDYWxsYmFja1JlZihvblBsYWNlZCk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1Bvc2l0aW9uZWQpIHtcbiAgICAgICAgaGFuZGxlUGxhY2VkPy4oKTtcbiAgICAgIH1cbiAgICB9LCBbaXNQb3NpdGlvbmVkLCBoYW5kbGVQbGFjZWRdKTtcblxuICAgIGNvbnN0IGFycm93WCA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py54O1xuICAgIGNvbnN0IGFycm93WSA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py55O1xuICAgIGNvbnN0IGNhbm5vdENlbnRlckFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3c/LmNlbnRlck9mZnNldCAhPT0gMDtcblxuICAgIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZz4oKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGNvbnRlbnQpIHNldENvbnRlbnRaSW5kZXgod2luZG93LmdldENvbXB1dGVkU3R5bGUoY29udGVudCkuekluZGV4KTtcbiAgICB9LCBbY29udGVudF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICBkYXRhLXJhZGl4LXBvcHBlci1jb250ZW50LXdyYXBwZXI9XCJcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmZsb2F0aW5nU3R5bGVzLFxuICAgICAgICAgIHRyYW5zZm9ybTogaXNQb3NpdGlvbmVkID8gZmxvYXRpbmdTdHlsZXMudHJhbnNmb3JtIDogJ3RyYW5zbGF0ZSgwLCAtMjAwJSknLCAvLyBrZWVwIG9mZiB0aGUgcGFnZSB3aGVuIG1lYXN1cmluZ1xuICAgICAgICAgIG1pbldpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgICAgICAgIHpJbmRleDogY29udGVudFpJbmRleCxcbiAgICAgICAgICBbJy0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4nIGFzIGFueV06IFtcbiAgICAgICAgICAgIG1pZGRsZXdhcmVEYXRhLnRyYW5zZm9ybU9yaWdpbj8ueCxcbiAgICAgICAgICAgIG1pZGRsZXdhcmVEYXRhLnRyYW5zZm9ybU9yaWdpbj8ueSxcbiAgICAgICAgICBdLmpvaW4oJyAnKSxcblxuICAgICAgICAgIC8vIGhpZGUgdGhlIGNvbnRlbnQgaWYgdXNpbmcgdGhlIGhpZGUgbWlkZGxld2FyZSBhbmQgc2hvdWxkIGJlIGhpZGRlblxuICAgICAgICAgIC8vIHNldCB2aXNpYmlsaXR5IHRvIGhpZGRlbiBhbmQgZGlzYWJsZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgVUkgYmVoYXZlc1xuICAgICAgICAgIC8vIGFzIGlmIHRoZSBQb3BwZXJDb250ZW50IGlzbid0IHRoZXJlIGF0IGFsbFxuICAgICAgICAgIC4uLihtaWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4gJiYge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgfSksXG4gICAgICAgIH19XG4gICAgICAgIC8vIEZsb2F0aW5nIFVJIGludGVyYWxseSBjYWxjdWxhdGVzIGxvZ2ljYWwgYWxpZ25tZW50IGJhc2VkIHRoZSBgZGlyYCBhdHRyaWJ1dGUgb25cbiAgICAgICAgLy8gdGhlIHJlZmVyZW5jZS9mbG9hdGluZyBub2RlLCB3ZSBtdXN0IGFkZCB0aGlzIGF0dHJpYnV0ZSBoZXJlIHRvIGVuc3VyZVxuICAgICAgICAvLyB0aGlzIGlzIGNhbGN1bGF0ZWQgd2hlbiBwb3J0YWxsZWQgYXMgd2VsbCBhcyBpbmxpbmUuXG4gICAgICAgIGRpcj17cHJvcHMuZGlyfVxuICAgICAgPlxuICAgICAgICA8UG9wcGVyQ29udGVudFByb3ZpZGVyXG4gICAgICAgICAgc2NvcGU9e19fc2NvcGVQb3BwZXJ9XG4gICAgICAgICAgcGxhY2VkU2lkZT17cGxhY2VkU2lkZX1cbiAgICAgICAgICBvbkFycm93Q2hhbmdlPXtzZXRBcnJvd31cbiAgICAgICAgICBhcnJvd1g9e2Fycm93WH1cbiAgICAgICAgICBhcnJvd1k9e2Fycm93WX1cbiAgICAgICAgICBzaG91bGRIaWRlQXJyb3c9e2Nhbm5vdENlbnRlckFycm93fVxuICAgICAgICA+XG4gICAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICAgIGRhdGEtc2lkZT17cGxhY2VkU2lkZX1cbiAgICAgICAgICAgIGRhdGEtYWxpZ249e3BsYWNlZEFsaWdufVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAvLyBpZiB0aGUgUG9wcGVyQ29udGVudCBoYXNuJ3QgYmVlbiBwbGFjZWQgeWV0IChub3QgYWxsIG1lYXN1cmVtZW50cyBkb25lKVxuICAgICAgICAgICAgICAvLyB3ZSBwcmV2ZW50IGFuaW1hdGlvbnMgc28gdGhhdCB1c2VycydzIGFuaW1hdGlvbiBkb24ndCBraWNrIGluIHRvbyBlYXJseSByZWZlcnJpbmcgd3Jvbmcgc2lkZXNcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiAhaXNQb3NpdGlvbmVkID8gJ25vbmUnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1BvcHBlckNvbnRlbnRQcm92aWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cblBvcHBlckNvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckFycm93XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFSUk9XX05BTUUgPSAnUG9wcGVyQXJyb3cnO1xuXG5jb25zdCBPUFBPU0lURV9TSURFOiBSZWNvcmQ8U2lkZSwgU2lkZT4gPSB7XG4gIHRvcDogJ2JvdHRvbScsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIGxlZnQ6ICdyaWdodCcsXG59O1xuXG50eXBlIFBvcHBlckFycm93RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFycm93UHJpbWl0aXZlLlJvb3Q+O1xudHlwZSBBcnJvd1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBcnJvd1ByaW1pdGl2ZS5Sb290PjtcbmludGVyZmFjZSBQb3BwZXJBcnJvd1Byb3BzIGV4dGVuZHMgQXJyb3dQcm9wcyB7fVxuXG5jb25zdCBQb3BwZXJBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8UG9wcGVyQXJyb3dFbGVtZW50LCBQb3BwZXJBcnJvd1Byb3BzPihmdW5jdGlvbiBQb3BwZXJBcnJvdyhcbiAgcHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlckFycm93UHJvcHM+LFxuICBmb3J3YXJkZWRSZWZcbikge1xuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZUNvbnRlbnRDb250ZXh0KEFSUk9XX05BTUUsIF9fc2NvcGVQb3BwZXIpO1xuICBjb25zdCBiYXNlU2lkZSA9IE9QUE9TSVRFX1NJREVbY29udGVudENvbnRleHQucGxhY2VkU2lkZV07XG5cbiAgcmV0dXJuIChcbiAgICAvLyB3ZSBoYXZlIHRvIHVzZSBhbiBleHRyYSB3cmFwcGVyIGJlY2F1c2UgYFJlc2l6ZU9ic2VydmVyYCAodXNlZCBieSBgdXNlU2l6ZWApXG4gICAgLy8gZG9lc24ndCByZXBvcnQgc2l6ZSBhcyB3ZSdkIGV4cGVjdCBvbiBTVkcgZWxlbWVudHMuXG4gICAgLy8gaXQgcmVwb3J0cyB0aGVpciBib3VuZGluZyBib3ggd2hpY2ggaXMgZWZmZWN0aXZlbHkgdGhlIGxhcmdlc3QgcGF0aCBpbnNpZGUgdGhlIFNWRy5cbiAgICA8c3BhblxuICAgICAgcmVmPXtjb250ZW50Q29udGV4dC5vbkFycm93Q2hhbmdlfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIGxlZnQ6IGNvbnRlbnRDb250ZXh0LmFycm93WCxcbiAgICAgICAgdG9wOiBjb250ZW50Q29udGV4dC5hcnJvd1ksXG4gICAgICAgIFtiYXNlU2lkZV06IDAsXG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbjoge1xuICAgICAgICAgIHRvcDogJycsXG4gICAgICAgICAgcmlnaHQ6ICcwIDAnLFxuICAgICAgICAgIGJvdHRvbTogJ2NlbnRlciAwJyxcbiAgICAgICAgICBsZWZ0OiAnMTAwJSAwJyxcbiAgICAgICAgfVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXSxcbiAgICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgICAgdG9wOiAndHJhbnNsYXRlWSgxMDAlKScsXG4gICAgICAgICAgcmlnaHQ6ICd0cmFuc2xhdGVZKDUwJSkgcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC01MCUpJyxcbiAgICAgICAgICBib3R0b206IGByb3RhdGUoMTgwZGVnKWAsXG4gICAgICAgICAgbGVmdDogJ3RyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDUwJSknLFxuICAgICAgICB9W2NvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGVdLFxuICAgICAgICB2aXNpYmlsaXR5OiBjb250ZW50Q29udGV4dC5zaG91bGRIaWRlQXJyb3cgPyAnaGlkZGVuJyA6IHVuZGVmaW5lZCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEFycm93UHJpbWl0aXZlLlJvb3RcbiAgICAgICAgey4uLmFycm93UHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmFycm93UHJvcHMuc3R5bGUsXG4gICAgICAgICAgLy8gZW5zdXJlcyB0aGUgZWxlbWVudCBjYW4gYmUgbWVhc3VyZWQgY29ycmVjdGx5IChtb3N0bHkgZm9yIGlmIFNWRylcbiAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICk7XG59KTtcblxuUG9wcGVyQXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmZ1bmN0aW9uIGlzTm90TnVsbDxUPih2YWx1ZTogVCB8IG51bGwpOiB2YWx1ZSBpcyBUIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsO1xufVxuXG5jb25zdCB0cmFuc2Zvcm1PcmlnaW4gPSAob3B0aW9uczogeyBhcnJvd1dpZHRoOiBudW1iZXI7IGFycm93SGVpZ2h0OiBudW1iZXIgfSk6IE1pZGRsZXdhcmUgPT4gKHtcbiAgbmFtZTogJ3RyYW5zZm9ybU9yaWdpbicsXG4gIG9wdGlvbnMsXG4gIGZuKGRhdGEpIHtcbiAgICBjb25zdCB7IHBsYWNlbWVudCwgcmVjdHMsIG1pZGRsZXdhcmVEYXRhIH0gPSBkYXRhO1xuXG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuICAgIGNvbnN0IGlzQXJyb3dIaWRkZW4gPSBjYW5ub3RDZW50ZXJBcnJvdztcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gaXNBcnJvd0hpZGRlbiA/IDAgOiBvcHRpb25zLmFycm93V2lkdGg7XG4gICAgY29uc3QgYXJyb3dIZWlnaHQgPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dIZWlnaHQ7XG5cbiAgICBjb25zdCBbcGxhY2VkU2lkZSwgcGxhY2VkQWxpZ25dID0gZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICAgIGNvbnN0IG5vQXJyb3dBbGlnbiA9IHsgc3RhcnQ6ICcwJScsIGNlbnRlcjogJzUwJScsIGVuZDogJzEwMCUnIH1bcGxhY2VkQWxpZ25dO1xuXG4gICAgY29uc3QgYXJyb3dYQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py54ID8/IDApICsgYXJyb3dXaWR0aCAvIDI7XG4gICAgY29uc3QgYXJyb3dZQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py55ID8/IDApICsgYXJyb3dIZWlnaHQgLyAyO1xuXG4gICAgbGV0IHggPSAnJztcbiAgICBsZXQgeSA9ICcnO1xuXG4gICAgaWYgKHBsYWNlZFNpZGUgPT09ICdib3R0b20nKSB7XG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XG4gICAgICB5ID0gYCR7LWFycm93SGVpZ2h0fXB4YDtcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09ICd0b3AnKSB7XG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XG4gICAgICB5ID0gYCR7cmVjdHMuZmxvYXRpbmcuaGVpZ2h0ICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgeCA9IGAkey1hcnJvd0hlaWdodH1weGA7XG4gICAgICB5ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WUNlbnRlcn1weGA7XG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAnbGVmdCcpIHtcbiAgICAgIHggPSBgJHtyZWN0cy5mbG9hdGluZy53aWR0aCArIGFycm93SGVpZ2h0fXB4YDtcbiAgICAgIHkgPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dZQ2VudGVyfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0YTogeyB4LCB5IH0gfTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudDogUGxhY2VtZW50KSB7XG4gIGNvbnN0IFtzaWRlLCBhbGlnbiA9ICdjZW50ZXInXSA9IHBsYWNlbWVudC5zcGxpdCgnLScpO1xuICByZXR1cm4gW3NpZGUgYXMgU2lkZSwgYWxpZ24gYXMgQWxpZ25dIGFzIGNvbnN0O1xufVxuXG5jb25zdCBSb290ID0gUG9wcGVyO1xuY29uc3QgQW5jaG9yID0gUG9wcGVyQW5jaG9yO1xuY29uc3QgQ29udGVudCA9IFBvcHBlckNvbnRlbnQ7XG5jb25zdCBBcnJvdyA9IFBvcHBlckFycm93O1xuXG5leHBvcnQge1xuICBjcmVhdGVQb3BwZXJTY29wZSxcbiAgLy9cbiAgUG9wcGVyLFxuICBQb3BwZXJBbmNob3IsXG4gIFBvcHBlckNvbnRlbnQsXG4gIFBvcHBlckFycm93LFxuICAvL1xuICBSb290LFxuICBBbmNob3IsXG4gIENvbnRlbnQsXG4gIEFycm93LFxuICAvL1xuICBTSURFX09QVElPTlMsXG4gIEFMSUdOX09QVElPTlMsXG59O1xuZXhwb3J0IHR5cGUgeyBQb3BwZXJQcm9wcywgUG9wcGVyQW5jaG9yUHJvcHMsIFBvcHBlckNvbnRlbnRQcm9wcywgUG9wcGVyQXJyb3dQcm9wcyB9O1xuIl0sIm5hbWVzIjpbIlBvcHBlckFycm93IiwiUm9vdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-portal/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Portal,Root auto */ var _s = $RefreshSig$();\n// packages/react/portal/src/Portal.tsx\n\n\n\n\n\nvar PORTAL_NAME = \"Portal\";\nvar Portal = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis_document, _globalThis;\n _s();\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)({\n \"Portal.useLayoutEffect\": ()=>setMounted(true)\n }[\"Portal.useLayoutEffect\"], []);\n const container = containerProp || mounted && ((_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : (_globalThis_document = _globalThis.document) === null || _globalThis_document === void 0 ? void 0 : _globalThis_document.body);\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...portalProps,\n ref: forwardedRef\n }), container) : null;\n}, \"FcnMiGdgWOI6sDTng8DolPv2NRo=\")), \"FcnMiGdgWOI6sDTng8DolPv2NRo=\");\n_c1 = Portal;\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Portal$React.forwardRef\");\n$RefreshReg$(_c1, \"Portal\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9ydGFsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNGO0FBQ0s7QUFDTTtBQXVCSjtBQWpCNUIsSUFBTSxjQUFjO0FBV3BCLElBQU0sdUJBQWUseURBQXVDLENBQUMsT0FBTztRQUluQjs7SUFIL0MsTUFBTSxFQUFFLFdBQVcsZUFBZSxHQUFHLFlBQVksSUFBSTtJQUNyRCxNQUFNLENBQUMsU0FBUyxVQUFVLElBQVUsNENBQVMsS0FBSztJQUNsRCxrRkFBZTtrQ0FBQyxJQUFNLFdBQVcsSUFBSTtpQ0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxZQUFZLGlCQUFrQix5SEFBdUIsc0ZBQVU7SUFDckUsT0FBTywwQkFDSCxtREFBUyxDQUFhLHVFQUFDLGdFQUFTLENBQUMsS0FBVjtRQUFlLEdBQUc7UUFBYSxLQUFLO0lBQUEsQ0FBYyxHQUFJLFNBQVMsSUFDdEY7QUFDTixDQUFDOztBQUVELE9BQU8sY0FBYztBQUlyQixJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL1BvcnRhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdQb3J0YWwnO1xuXG50eXBlIFBvcnRhbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcnRhbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY29udGFpbmVyIHdoZXJlIHRoZSBwb3J0YWxlZCBjb250ZW50IHNob3VsZCBiZSBhcHBlbmRlZC5cbiAgICovXG4gIGNvbnRhaW5lcj86IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHwgbnVsbDtcbn1cblxuY29uc3QgUG9ydGFsID0gUmVhY3QuZm9yd2FyZFJlZjxQb3J0YWxFbGVtZW50LCBQb3J0YWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjb250YWluZXI6IGNvbnRhaW5lclByb3AsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gc2V0TW91bnRlZCh0cnVlKSwgW10pO1xuICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJQcm9wIHx8IChtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5KTtcbiAgcmV0dXJuIGNvbnRhaW5lclxuICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKDxQcmltaXRpdmUuZGl2IHsuLi5wb3J0YWxQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+LCBjb250YWluZXIpXG4gICAgOiBudWxsO1xufSk7XG5cblBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBQb3J0YWw7XG5cbmV4cG9ydCB7XG4gIFBvcnRhbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/@radix-ui/react-presence/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: () => (/* binding */ Presence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ Presence auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n// packages/react/presence/src/Presence.tsx\n\n\n\n// packages/react/presence/src/useStateMachine.tsx\n\nfunction useStateMachine(initialState, machine) {\n _s();\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer({\n \"useStateMachine.useReducer\": (state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }\n }[\"useStateMachine.useReducer\"], initialState);\n}\n_s(useStateMachine, \"skVOqNGrFQuDFh+lpttAJ2AZFeA=\");\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props)=>{\n _s1();\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs)(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n ref\n }) : null;\n};\n_s1(Presence, \"uNryTcoDvJa4CrInYRt27opyun0=\", false, function() {\n return [\n usePresence,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs\n ];\n});\n_c = Presence;\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n _s2();\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const stylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n const prevPresentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(present);\n const prevAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePresence.useEffect\": ()=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }\n }[\"usePresence.useEffect\"], [\n state\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || (styles === null || styles === void 0 ? void 0 : styles.display) === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n present,\n send\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n if (node) {\n let timeoutId;\n var _node_ownerDocument_defaultView;\n const ownerWindow = (_node_ownerDocument_defaultView = node.ownerDocument.defaultView) !== null && _node_ownerDocument_defaultView !== void 0 ? _node_ownerDocument_defaultView : window;\n const handleAnimationEnd = {\n \"usePresence.useLayoutEffect.handleAnimationEnd\": (event)=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout({\n \"usePresence.useLayoutEffect.handleAnimationEnd\": ()=>{\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"]);\n }\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"];\n const handleAnimationStart = {\n \"usePresence.useLayoutEffect.handleAnimationStart\": (event)=>{\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationStart\"];\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return ({\n \"usePresence.useLayoutEffect\": ()=>{\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n }\n })[\"usePresence.useLayoutEffect\"];\n } else {\n send(\"ANIMATION_END\");\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n node,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"usePresence.useCallback\": (node2)=>{\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }\n }[\"usePresence.useCallback\"], [])\n };\n}\n_s2(usePresence, \"ncCWxmFAyU87e4PnaTkbrqgR834=\", false, function() {\n return [\n useStateMachine\n ];\n});\nfunction getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || \"none\";\n}\nfunction getElementRef(element) {\n var _Object_getOwnPropertyDescriptor, _Object_getOwnPropertyDescriptor1;\n let getter = (_Object_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor(element.props, \"ref\")) === null || _Object_getOwnPropertyDescriptor === void 0 ? void 0 : _Object_getOwnPropertyDescriptor.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = (_Object_getOwnPropertyDescriptor1 = Object.getOwnPropertyDescriptor(element, \"ref\")) === null || _Object_getOwnPropertyDescriptor1 === void 0 ? void 0 : _Object_getOwnPropertyDescriptor1.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"Presence\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDQTs7QUNGVDtBQVdoQix5QkFDTCxjQUNBLFNBQ0E7O0lBQ0EsT0FBYTtzQ0FBVyxDQUFDLE9BQXdCO1lBQy9DLE1BQU0sWUFBYSxRQUFRLEtBQUssRUFBVSxLQUFLO1lBQy9DLG9EQUFPLFlBQWE7UUFDdEI7cUNBQUcsWUFBWTtBQUNqQjtHQVJnQjs7QUREaEIsZUFBMEMsQ0FBQzs7SUFDekMsTUFBTSxFQUFFLFNBQVMsU0FBUyxJQUFJO0lBQzlCLE1BQU0sdUJBQXVCLE9BQU87SUFFcEMsTUFBTSxRQUNKLE9BQU8sYUFBYSxhQUNoQixTQUFTO1FBQUUsU0FBUyxTQUFTO0lBQVUsQ0FBQyxJQUNsQyw0Q0FBUyxLQUFLLFFBQVE7SUFHbEMsTUFBTSxNQUFNLDZFQUFlLENBQUMsU0FBUyxLQUFLLGNBQWMsS0FBSyxDQUFDO0lBQzlELE1BQU0sYUFBYSxPQUFPLGFBQWE7SUFDdkMsT0FBTyxjQUFjLFNBQVMsMEJBQWtCLGdEQUFhLE9BQU87UUFBRTtJQUFJLENBQUMsSUFBSTtBQUNqRjs7O1FBWG1CO1FBUUwseUVBQWU7OztLQVZ2QjtBQWVOLFNBQVMsY0FBYztBQU12QixxQkFBcUIsU0FBa0I7O0lBQ3JDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sSUFBVSw0Q0FBc0I7SUFDcEQsTUFBTSxZQUFrQiwwQ0FBNEIsQ0FBQyxDQUFRO0lBQzdELE1BQU0saUJBQXVCLDBDQUFPLE9BQU87SUFDM0MsTUFBTSx1QkFBNkIsMENBQWUsTUFBTTtJQUN4RCxNQUFNLGVBQWUsVUFBVSxZQUFZO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLElBQUksb0JBQW9CLGNBQWM7UUFDbEQsU0FBUztZQUNQLFNBQVM7WUFDVCxlQUFlO1FBQ2pCO1FBQ0Esa0JBQWtCO1lBQ2hCLE9BQU87WUFDUCxlQUFlO1FB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Qix5QkFBeUIsU0FBUyxLQUFLLHlHQUFHO0lBQzFELFVBQVUsVUFBVSxvQkFBb0IsVUFBVSxPQUFPO0lBQ3pELElBQUksU0FBUztRQUNYLE9BQU8sUUFBUSxNQUFNO0lBQ3ZCO0lBR0EsT0FBTyxRQUFRLE1BQU0sT0FBUSxRQUFnQjtBQUMvQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvUHJlc2VuY2UudHN4IiwiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvdXNlU3RhdGVNYWNoaW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyB1c2VTdGF0ZU1hY2hpbmUgfSBmcm9tICcuL3VzZVN0YXRlTWFjaGluZSc7XG5cbmludGVyZmFjZSBQcmVzZW5jZVByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudCB8ICgocHJvcHM6IHsgcHJlc2VudDogYm9vbGVhbiB9KSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQpO1xuICBwcmVzZW50OiBib29sZWFuO1xufVxuXG5jb25zdCBQcmVzZW5jZTogUmVhY3QuRkM8UHJlc2VuY2VQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBwcmVzZW50LCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlUHJlc2VuY2UocHJlc2VudCk7XG5cbiAgY29uc3QgY2hpbGQgPSAoXG4gICAgdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGNoaWxkcmVuKHsgcHJlc2VudDogcHJlc2VuY2UuaXNQcmVzZW50IH0pXG4gICAgICA6IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50PHsgcmVmPzogUmVhY3QuUmVmPEhUTUxFbGVtZW50PiB9PjtcblxuICBjb25zdCByZWYgPSB1c2VDb21wb3NlZFJlZnMocHJlc2VuY2UucmVmLCBnZXRFbGVtZW50UmVmKGNoaWxkKSk7XG4gIGNvbnN0IGZvcmNlTW91bnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbic7XG4gIHJldHVybiBmb3JjZU1vdW50IHx8IHByZXNlbmNlLmlzUHJlc2VudCA/IFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgeyByZWYgfSkgOiBudWxsO1xufTtcblxuUHJlc2VuY2UuZGlzcGxheU5hbWUgPSAnUHJlc2VuY2UnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiB1c2VQcmVzZW5jZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiB1c2VQcmVzZW5jZShwcmVzZW50OiBib29sZWFuKSB7XG4gIGNvbnN0IFtub2RlLCBzZXROb2RlXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxFbGVtZW50PigpO1xuICBjb25zdCBzdHlsZXNSZWYgPSBSZWFjdC51c2VSZWY8Q1NTU3R5bGVEZWNsYXJhdGlvbj4oe30gYXMgYW55KTtcbiAgY29uc3QgcHJldlByZXNlbnRSZWYgPSBSZWFjdC51c2VSZWYocHJlc2VudCk7XG4gIGNvbnN0IHByZXZBbmltYXRpb25OYW1lUmVmID0gUmVhY3QudXNlUmVmPHN0cmluZz4oJ25vbmUnKTtcbiAgY29uc3QgaW5pdGlhbFN0YXRlID0gcHJlc2VudCA/ICdtb3VudGVkJyA6ICd1bm1vdW50ZWQnO1xuICBjb25zdCBbc3RhdGUsIHNlbmRdID0gdXNlU3RhdGVNYWNoaW5lKGluaXRpYWxTdGF0ZSwge1xuICAgIG1vdW50ZWQ6IHtcbiAgICAgIFVOTU9VTlQ6ICd1bm1vdW50ZWQnLFxuICAgICAgQU5JTUFUSU9OX09VVDogJ3VubW91bnRTdXNwZW5kZWQnLFxuICAgIH0sXG4gICAgdW5tb3VudFN1c3BlbmRlZDoge1xuICAgICAgTU9VTlQ6ICdtb3VudGVkJyxcbiAgICAgIEFOSU1BVElPTl9FTkQ6ICd1bm1vdW50ZWQnLFxuICAgIH0sXG4gICAgdW5tb3VudGVkOiB7XG4gICAgICBNT1VOVDogJ21vdW50ZWQnLFxuICAgIH0sXG4gIH0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50ID0gc3RhdGUgPT09ICdtb3VudGVkJyA/IGN1cnJlbnRBbmltYXRpb25OYW1lIDogJ25vbmUnO1xuICB9LCBbc3RhdGVdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0eWxlcyA9IHN0eWxlc1JlZi5jdXJyZW50O1xuICAgIGNvbnN0IHdhc1ByZXNlbnQgPSBwcmV2UHJlc2VudFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGhhc1ByZXNlbnRDaGFuZ2VkID0gd2FzUHJlc2VudCAhPT0gcHJlc2VudDtcblxuICAgIGlmIChoYXNQcmVzZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgcHJldkFuaW1hdGlvbk5hbWUgPSBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50O1xuICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlcyk7XG5cbiAgICAgIGlmIChwcmVzZW50KSB7XG4gICAgICAgIHNlbmQoJ01PVU5UJyk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRBbmltYXRpb25OYW1lID09PSAnbm9uZScgfHwgc3R5bGVzPy5kaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZXhpdCBhbmltYXRpb24gb3IgdGhlIGVsZW1lbnQgaXMgaGlkZGVuLCBhbmltYXRpb25zIHdvbid0IHJ1blxuICAgICAgICAvLyBzbyB3ZSB1bm1vdW50IGluc3RhbnRseVxuICAgICAgICBzZW5kKCdVTk1PVU5UJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2hlbiBgcHJlc2VudGAgY2hhbmdlcyB0byBgZmFsc2VgLCB3ZSBjaGVjayBjaGFuZ2VzIHRvIGFuaW1hdGlvbi1uYW1lIHRvXG4gICAgICAgICAqIGRldGVybWluZSB3aGV0aGVyIGFuIGFuaW1hdGlvbiBoYXMgc3RhcnRlZC4gV2UgY2hvc2UgdGhpcyBhcHByb2FjaCAocmVhZGluZ1xuICAgICAgICAgKiBjb21wdXRlZCBzdHlsZXMpIGJlY2F1c2UgdGhlcmUgaXMgbm8gYGFuaW1hdGlvbnJ1bmAgZXZlbnQgYW5kIGBhbmltYXRpb25zdGFydGBcbiAgICAgICAgICogZmlyZXMgYWZ0ZXIgYGFuaW1hdGlvbi1kZWxheWAgaGFzIGV4cGlyZWQgd2hpY2ggd291bGQgYmUgdG9vIGxhdGUuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpc0FuaW1hdGluZyA9IHByZXZBbmltYXRpb25OYW1lICE9PSBjdXJyZW50QW5pbWF0aW9uTmFtZTtcblxuICAgICAgICBpZiAod2FzUHJlc2VudCAmJiBpc0FuaW1hdGluZykge1xuICAgICAgICAgIHNlbmQoJ0FOSU1BVElPTl9PVVQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZW5kKCdVTk1PVU5UJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcHJldlByZXNlbnRSZWYuY3VycmVudCA9IHByZXNlbnQ7XG4gICAgfVxuICB9LCBbcHJlc2VudCwgc2VuZF0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGxldCB0aW1lb3V0SWQ6IG51bWJlcjtcbiAgICAgIGNvbnN0IG93bmVyV2luZG93ID0gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgICAgIC8qKlxuICAgICAgICogVHJpZ2dlcmluZyBhbiBBTklNQVRJT05fT1VUIGR1cmluZyBhbiBBTklNQVRJT05fSU4gd2lsbCBmaXJlIGFuIGBhbmltYXRpb25jYW5jZWxgXG4gICAgICAgKiBldmVudCBmb3IgQU5JTUFUSU9OX0lOIGFmdGVyIHdlIGhhdmUgZW50ZXJlZCBgdW5tb3VudFN1c3BlbmRlZGAgc3RhdGUuIFNvLCB3ZVxuICAgICAgICogbWFrZSBzdXJlIHdlIG9ubHkgdHJpZ2dlciBBTklNQVRJT05fRU5EIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBhbmltYXRpb24uXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IGhhbmRsZUFuaW1hdGlvbkVuZCA9IChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50QW5pbWF0aW9uID0gY3VycmVudEFuaW1hdGlvbk5hbWUuaW5jbHVkZXMoZXZlbnQuYW5pbWF0aW9uTmFtZSk7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IG5vZGUgJiYgaXNDdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgLy8gV2l0aCBSZWFjdCAxOCBjb25jdXJyZW5jeSB0aGlzIHVwZGF0ZSBpcyBhcHBsaWVkIGEgZnJhbWUgYWZ0ZXIgdGhlXG4gICAgICAgICAgLy8gYW5pbWF0aW9uIGVuZHMsIGNyZWF0aW5nIGEgZmxhc2ggb2YgdmlzaWJsZSBjb250ZW50LiBCeSBzZXR0aW5nIHRoZVxuICAgICAgICAgIC8vIGFuaW1hdGlvbiBmaWxsIG1vZGUgdG8gXCJmb3J3YXJkc1wiLCB3ZSBmb3JjZSB0aGUgbm9kZSB0byBrZWVwIHRoZVxuICAgICAgICAgIC8vIHN0eWxlcyBvZiB0aGUgbGFzdCBrZXlmcmFtZSwgcmVtb3ZpbmcgdGhlIGZsYXNoLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gUHJldmlvdXNseSB3ZSBmbHVzaGVkIHRoZSB1cGRhdGUgdmlhIFJlYWN0RG9tLmZsdXNoU3luYywgYnV0IHdpdGhcbiAgICAgICAgICAvLyBleGl0IGFuaW1hdGlvbnMgdGhpcyByZXN1bHRlZCBpbiB0aGUgbm9kZSBiZWluZyByZW1vdmVkIGZyb20gdGhlXG4gICAgICAgICAgLy8gRE9NIGJlZm9yZSB0aGUgc3ludGhldGljIGFuaW1hdGlvbkVuZCBldmVudCB3YXMgZGlzcGF0Y2hlZCwgbWVhbmluZ1xuICAgICAgICAgIC8vIHVzZXItcHJvdmlkZWQgZXZlbnQgaGFuZGxlcnMgd291bGQgbm90IGJlIGNhbGxlZC5cbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmFkaXgtdWkvcHJpbWl0aXZlcy9wdWxsLzE4NDlcbiAgICAgICAgICBzZW5kKCdBTklNQVRJT05fRU5EJyk7XG4gICAgICAgICAgaWYgKCFwcmV2UHJlc2VudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RmlsbE1vZGUgPSBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlO1xuICAgICAgICAgICAgbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9ICdmb3J3YXJkcyc7XG4gICAgICAgICAgICAvLyBSZXNldCB0aGUgc3R5bGUgYWZ0ZXIgdGhlIG5vZGUgaGFkIHRpbWUgdG8gdW5tb3VudCAoZm9yIGNhc2VzXG4gICAgICAgICAgICAvLyB3aGVyZSB0aGUgY29tcG9uZW50IGNob29zZXMgbm90IHRvIHVubW91bnQpLiBEb2luZyB0aGlzIGFueVxuICAgICAgICAgICAgLy8gc29vbmVyIHRoYW4gYHNldFRpbWVvdXRgIChlLmcuIHdpdGggYHJlcXVlc3RBbmltYXRpb25GcmFtZWApXG4gICAgICAgICAgICAvLyBzdGlsbCBjYXVzZXMgYSBmbGFzaC5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IG93bmVyV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAobm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9PT0gJ2ZvcndhcmRzJykge1xuICAgICAgICAgICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPSBjdXJyZW50RmlsbE1vZGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZUFuaW1hdGlvblN0YXJ0ID0gKGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlKSB7XG4gICAgICAgICAgLy8gaWYgYW5pbWF0aW9uIG9jY3VycmVkLCBzdG9yZSBpdHMgbmFtZSBhcyB0aGUgcHJldmlvdXMgYW5pbWF0aW9uLlxuICAgICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBoYW5kbGVBbmltYXRpb25TdGFydCk7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmNhbmNlbCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBvd25lcldpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25zdGFydCcsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25jYW5jZWwnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmFuc2l0aW9uIHRvIHRoZSB1bm1vdW50ZWQgc3RhdGUgaWYgdGhlIG5vZGUgaXMgcmVtb3ZlZCBwcmVtYXR1cmVseS5cbiAgICAgIC8vIFdlIGF2b2lkIGRvaW5nIHNvIGR1cmluZyBjbGVhbnVwIGFzIHRoZSBub2RlIG1heSBjaGFuZ2UgYnV0IHN0aWxsIGV4aXN0LlxuICAgICAgc2VuZCgnQU5JTUFUSU9OX0VORCcpO1xuICAgIH1cbiAgfSwgW25vZGUsIHNlbmRdKTtcblxuICByZXR1cm4ge1xuICAgIGlzUHJlc2VudDogWydtb3VudGVkJywgJ3VubW91bnRTdXNwZW5kZWQnXS5pbmNsdWRlcyhzdGF0ZSksXG4gICAgcmVmOiBSZWFjdC51c2VDYWxsYmFjaygobm9kZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChub2RlKSBzdHlsZXNSZWYuY3VycmVudCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgICBzZXROb2RlKG5vZGUpO1xuICAgIH0sIFtdKSxcbiAgfTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBnZXRBbmltYXRpb25OYW1lKHN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb24pIHtcbiAgcmV0dXJuIHN0eWxlcz8uYW5pbWF0aW9uTmFtZSB8fCAnbm9uZSc7XG59XG5cbi8vIEJlZm9yZSBSZWFjdCAxOSBhY2Nlc3NpbmcgYGVsZW1lbnQucHJvcHMucmVmYCB3aWxsIHRocm93IGEgd2FybmluZyBhbmQgc3VnZ2VzdCB1c2luZyBgZWxlbWVudC5yZWZgXG4vLyBBZnRlciBSZWFjdCAxOSBhY2Nlc3NpbmcgYGVsZW1lbnQucmVmYCBkb2VzIHRoZSBvcHBvc2l0ZS5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI4MzQ4XG4vL1xuLy8gQWNjZXNzIHRoZSByZWYgdXNpbmcgdGhlIG1ldGhvZCB0aGF0IGRvZXNuJ3QgeWllbGQgYSB3YXJuaW5nLlxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50OiBSZWFjdC5SZWFjdEVsZW1lbnQ8eyByZWY/OiBSZWFjdC5SZWY8dW5rbm93bj4gfT4pIHtcbiAgLy8gUmVhY3QgPD0xOCBpbiBERVZcbiAgbGV0IGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgJ3JlZicpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmICdpc1JlYWN0V2FybmluZycgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5yZWY7XG4gIH1cblxuICAvLyBSZWFjdCAxOSBpbiBERVZcbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCAncmVmJyk/LmdldDtcbiAgbWF5V2FybiA9IGdldHRlciAmJiAnaXNSZWFjdFdhcm5pbmcnIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG5cbiAgLy8gTm90IERFVlxuICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWYgfHwgKGVsZW1lbnQgYXMgYW55KS5yZWY7XG59XG5cbmV4cG9ydCB7IFByZXNlbmNlIH07XG5leHBvcnQgdHlwZSB7IFByZXNlbmNlUHJvcHMgfTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxudHlwZSBNYWNoaW5lPFM+ID0geyBbazogc3RyaW5nXTogeyBbazogc3RyaW5nXTogUyB9IH07XG50eXBlIE1hY2hpbmVTdGF0ZTxUPiA9IGtleW9mIFQ7XG50eXBlIE1hY2hpbmVFdmVudDxUPiA9IGtleW9mIFVuaW9uVG9JbnRlcnNlY3Rpb248VFtrZXlvZiBUXT47XG5cbi8vIPCfpK8gaHR0cHM6Ly9mZXR0YmxvZy5ldS90eXBlc2NyaXB0LXVuaW9uLXRvLWludGVyc2VjdGlvbi9cbnR5cGUgVW5pb25Ub0ludGVyc2VjdGlvbjxUPiA9IChUIGV4dGVuZHMgYW55ID8gKHg6IFQpID0+IGFueSA6IG5ldmVyKSBleHRlbmRzICh4OiBpbmZlciBSKSA9PiBhbnlcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGF0ZU1hY2hpbmU8TT4oXG4gIGluaXRpYWxTdGF0ZTogTWFjaGluZVN0YXRlPE0+LFxuICBtYWNoaW5lOiBNICYgTWFjaGluZTxNYWNoaW5lU3RhdGU8TT4+XG4pIHtcbiAgcmV0dXJuIFJlYWN0LnVzZVJlZHVjZXIoKHN0YXRlOiBNYWNoaW5lU3RhdGU8TT4sIGV2ZW50OiBNYWNoaW5lRXZlbnQ8TT4pOiBNYWNoaW5lU3RhdGU8TT4gPT4ge1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IChtYWNoaW5lW3N0YXRlXSBhcyBhbnkpW2V2ZW50XTtcbiAgICByZXR1cm4gbmV4dFN0YXRlID8/IHN0YXRlO1xuICB9LCBpbml0aWFsU3RhdGUpO1xufVxuIl0sIm5hbWVzIjpbIlJlYWN0Iiwibm9kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@radix-ui/react-primitive/dist/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/Primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3ByaW1pdGl2ZS9zcmMvUHJpbWl0aXZlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOT0RFUyA9IFtcbiAgXCJhXCIsXG4gIFwiYnV0dG9uXCIsXG4gIFwiZGl2XCIsXG4gIFwiZm9ybVwiLFxuICBcImgyXCIsXG4gIFwiaDNcIixcbiAgXCJpbWdcIixcbiAgXCJpbnB1dFwiLFxuICBcImxhYmVsXCIsXG4gIFwibGlcIixcbiAgXCJuYXZcIixcbiAgXCJvbFwiLFxuICBcInBcIixcbiAgXCJzcGFuXCIsXG4gIFwic3ZnXCIsXG4gIFwidWxcIlxuXTtcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxudmFyIFJvb3QgPSBQcmltaXRpdmU7XG5leHBvcnQge1xuICBQcmltaXRpdmUsXG4gIFJvb3QsXG4gIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-roving-focus/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ RovingFocusGroup: () => (/* binding */ RovingFocusGroup),\n/* harmony export */ RovingFocusGroupItem: () => (/* binding */ RovingFocusGroupItem),\n/* harmony export */ createRovingFocusGroupScope: () => (/* binding */ createRovingFocusGroupScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Item,Root,RovingFocusGroup,RovingFocusGroupItem,createRovingFocusGroupScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n// packages/react/roving-focus/src/RovingFocusGroup.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(GROUP_NAME, [\n createCollectionScope\n]);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = (props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusGroupImpl, {\n ...props,\n ref: forwardedRef\n })\n })\n });\n});\n_c1 = RovingFocusGroup;\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s((props, forwardedRef)=>{\n _s();\n const { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus, preventScrollOnEntryFocus = false, ...groupProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, ref);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection)(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState)({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const handleEntryFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef)(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupImpl.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return ({\n \"RovingFocusGroupImpl.useEffect\": ()=>node.removeEventListener(ENTRY_FOCUS, handleEntryFocus)\n })[\"RovingFocusGroupImpl.useEffect\"];\n }\n }\n }[\"RovingFocusGroupImpl.useEffect\"], [\n handleEntryFocus\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": (tabStopId)=>setCurrentTabStopId(tabStopId)\n }[\"RovingFocusGroupImpl.useCallback\"], [\n setCurrentTabStopId\n ]),\n onItemShiftTab: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setIsTabbingBackOut(true)\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount + 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount - 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.div, {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...props.style\n },\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, ()=>{\n isClickFocusRef.current = true;\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, (event)=>{\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item)=>item.focusable);\n const activeItem = items.find((item)=>item.active);\n const currentItem = items.find((item)=>item.id === currentTabStopId);\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map((item)=>item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onBlur, ()=>setIsTabbingBackOut(false))\n })\n });\n}, \"CAQSTQZSfY5J/CFBXXLeY0+5JRE=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef,\n useCollection\n ];\n}));\n_c2 = RovingFocusGroupImpl;\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeRovingFocusGroup, focusable = true, active = false, tabStopId, ...itemProps } = props;\n const autoId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId)();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupItem.useEffect\": ()=>{\n if (focusable) {\n onFocusableItemAdd();\n return ({\n \"RovingFocusGroupItem.useEffect\": ()=>onFocusableItemRemove()\n })[\"RovingFocusGroupItem.useEffect\"];\n }\n }\n }[\"RovingFocusGroupItem.useEffect\"], [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.span, {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, ()=>context.onItemFocus(id)),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item)=>item.focusable);\n let candidateNodes = items.map((item)=>item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n }\n })\n })\n });\n}, \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n})), \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n});\n_c4 = RovingFocusGroupItem;\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates) {\n let preventScroll = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4;\n$RefreshReg$(_c, \"RovingFocusGroup$React.forwardRef\");\n$RefreshReg$(_c1, \"RovingFocusGroup\");\n$RefreshReg$(_c2, \"RovingFocusGroupImpl\");\n$RefreshReg$(_c3, \"RovingFocusGroupItem$React.forwardRef\");\n$RefreshReg$(_c4, \"RovingFocusGroupItem\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0o7QUFDRDtBQUNHO0FBQ2I7QUFDSTtBQUNLO0FBQ007QUFDUjtBQWdFbkI7QUE1RFYsSUFBTSxjQUFjO0FBQ3BCLElBQU0sZ0JBQWdCO0lBQUUsU0FBUztJQUFPLFlBQVk7QUFBSztBQU16RCxJQUFNLGFBQWE7QUFHbkIsSUFBTSxDQUFDLFlBQVksZUFBZSxxQkFBcUIsSUFBSSw0RUFBZ0IsQ0FHekUsVUFBVTtBQUdaLElBQU0sQ0FBQywrQkFBK0IsMkJBQTJCLElBQUksMkVBQWtCLENBQ3JGLFlBQ0E7SUFBQyxxQkFBcUI7Q0FBQTtBQStCeEIsSUFBTSxDQUFDLHFCQUFxQixxQkFBcUIsSUFDL0MsOEJBQWtELFVBQVU7QUFLOUQsSUFBTSxpQ0FBeUIsbURBQzdCLENBQUMsT0FBMkM7SUFDMUMsT0FDRSx1RUFBQyxXQUFXLFVBQVg7UUFBb0IsT0FBTyxNQUFNO1FBQ2hDLGlGQUFDLFdBQVcsTUFBWDtZQUFnQixPQUFPLE1BQU07WUFDNUIsaUZBQUM7Z0JBQXNCLEdBQUc7Z0JBQU8sS0FBSztZQUFBLENBQWM7UUFBQSxDQUN0RDtJQUFBLENBQ0Y7QUFFSjs7QUFHRixpQkFBaUIsY0FBYztBQWdCL0IseUNBQW1DLGlEQUdqQyxDQUFDLE9BQStDOztJQUNoRCxNQUFNLEVBQ0oseUJBQ0EsYUFDQSxPQUFPLE9BQ1AsS0FDQSxrQkFBa0Isc0JBQ2xCLHlCQUNBLDBCQUNBLGNBQ0EsNEJBQTRCLE9BQzVCLEdBQUcsWUFDTCxHQUFJO0lBQ0osTUFBTSxNQUFZLDBDQUFvQyxJQUFJO0lBQzFELE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztJQUN0RCxNQUFNLFlBQVksdUVBQVksQ0FBQyxHQUFHO0lBQ2xDLE1BQU0sQ0FBQyxtQkFBbUIs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QUM3RDtBQUNGO0FBTUEsU0FBUyxVQUFhLE9BQVksWUFBb0I7SUFDcEQsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLFFBQVUsT0FBTyxhQUFhLFNBQVMsTUFBTSxNQUFNLENBQUM7QUFDM0U7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL1JvdmluZ0ZvY3VzR3JvdXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyBjcmVhdGVDb2xsZWN0aW9uIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1pZCc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZSc7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxuY29uc3QgRU5UUllfRk9DVVMgPSAncm92aW5nRm9jdXNHcm91cC5vbkVudHJ5Rm9jdXMnO1xuY29uc3QgRVZFTlRfT1BUSU9OUyA9IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IHRydWUgfTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUm92aW5nRm9jdXNHcm91cFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBHUk9VUF9OQU1FID0gJ1JvdmluZ0ZvY3VzR3JvdXAnO1xuXG50eXBlIEl0ZW1EYXRhID0geyBpZDogc3RyaW5nOyBmb2N1c2FibGU6IGJvb2xlYW47IGFjdGl2ZTogYm9vbGVhbiB9O1xuY29uc3QgW0NvbGxlY3Rpb24sIHVzZUNvbGxlY3Rpb24sIGNyZWF0ZUNvbGxlY3Rpb25TY29wZV0gPSBjcmVhdGVDb2xsZWN0aW9uPFxuICBIVE1MU3BhbkVsZW1lbnQsXG4gIEl0ZW1EYXRhXG4+KEdST1VQX05BTUUpO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXA/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBDb250ZXh0LCBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFxuICBHUk9VUF9OQU1FLFxuICBbY3JlYXRlQ29sbGVjdGlvblNjb3BlXVxuKTtcblxudHlwZSBPcmllbnRhdGlvbiA9IFJlYWN0LkFyaWFBdHRyaWJ1dGVzWydhcmlhLW9yaWVudGF0aW9uJ107XG50eXBlIERpcmVjdGlvbiA9ICdsdHInIHwgJ3J0bCc7XG5cbmludGVyZmFjZSBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgb3JpZW50YXRpb24gb2YgdGhlIGdyb3VwLlxuICAgKiBNYWlubHkgc28gYXJyb3cgbmF2aWdhdGlvbiBpcyBkb25lIGFjY29yZGluZ2x5IChsZWZ0ICYgcmlnaHQgdnMuIHVwICYgZG93bilcbiAgICovXG4gIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb247XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0aW9uIG9mIG5hdmlnYXRpb24gYmV0d2VlbiBpdGVtcy5cbiAgICovXG4gIGRpcj86IERpcmVjdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIga2V5Ym9hcmQgbmF2aWdhdGlvbiBzaG91bGQgbG9vcCBhcm91bmRcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgbG9vcD86IGJvb2xlYW47XG59XG5cbnR5cGUgUm92aW5nQ29udGV4dFZhbHVlID0gUm92aW5nRm9jdXNHcm91cE9wdGlvbnMgJiB7XG4gIGN1cnJlbnRUYWJTdG9wSWQ6IHN0cmluZyB8IG51bGw7XG4gIG9uSXRlbUZvY3VzKHRhYlN0b3BJZDogc3RyaW5nKTogdm9pZDtcbiAgb25JdGVtU2hpZnRUYWIoKTogdm9pZDtcbiAgb25Gb2N1c2FibGVJdGVtQWRkKCk6IHZvaWQ7XG4gIG9uRm9jdXNhYmxlSXRlbVJlbW92ZSgpOiB2b2lkO1xufTtcblxuY29uc3QgW1JvdmluZ0ZvY3VzUHJvdmlkZXIsIHVzZVJvdmluZ0ZvY3VzQ29udGV4dF0gPVxuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwQ29udGV4dDxSb3ZpbmdDb250ZXh0VmFsdWU+KEdST1VQX05BTUUpO1xuXG50eXBlIFJvdmluZ0ZvY3VzR3JvdXBFbGVtZW50ID0gUm92aW5nRm9jdXNHcm91cEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzR3JvdXBQcm9wcyBleHRlbmRzIFJvdmluZ0ZvY3VzR3JvdXBJbXBsUHJvcHMge31cblxuY29uc3QgUm92aW5nRm9jdXNHcm91cCA9IFJlYWN0LmZvcndhcmRSZWY8Um92aW5nRm9jdXNHcm91cEVsZW1lbnQsIFJvdmluZ0ZvY3VzR3JvdXBQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNHcm91cFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLlByb3ZpZGVyIHNjb3BlPXtwcm9wcy5fX3Njb3BlUm92aW5nRm9jdXNHcm91cH0+XG4gICAgICAgIDxDb2xsZWN0aW9uLlNsb3Qgc2NvcGU9e3Byb3BzLl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfT5cbiAgICAgICAgICA8Um92aW5nRm9jdXNHcm91cEltcGwgey4uLnByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICAgICAgPC9Db2xsZWN0aW9uLlNsb3Q+XG4gICAgICA8L0NvbGxlY3Rpb24uUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuUm92aW5nRm9jdXNHcm91cC5kaXNwbGF5TmFtZSA9IEdST1VQX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBSb3ZpbmdGb2N1c0dyb3VwSW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzR3JvdXBJbXBsUHJvcHNcbiAgZXh0ZW5kcyBPbWl0PFByaW1pdGl2ZURpdlByb3BzLCAnZGlyJz4sXG4gICAgUm92aW5nRm9jdXNHcm91cE9wdGlvbnMge1xuICBjdXJyZW50VGFiU3RvcElkPzogc3RyaW5nIHwgbnVsbDtcbiAgZGVmYXVsdEN1cnJlbnRUYWJTdG9wSWQ/OiBzdHJpbmc7XG4gIG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZT86ICh0YWJTdG9wSWQ6IHN0cmluZyB8IG51bGwpID0+IHZvaWQ7XG4gIG9uRW50cnlGb2N1cz86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG4gIHByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXM/OiBib29sZWFuO1xufVxuXG5jb25zdCBSb3ZpbmdGb2N1c0dyb3VwSW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudCxcbiAgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFJvdmluZ0ZvY3VzR3JvdXBJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwLFxuICAgIG9yaWVudGF0aW9uLFxuICAgIGxvb3AgPSBmYWxzZSxcbiAgICBkaXIsXG4gICAgY3VycmVudFRhYlN0b3BJZDogY3VycmVudFRhYlN0b3BJZFByb3AsXG4gICAgZGVmYXVsdEN1cnJlbnRUYWJTdG9wSWQsXG4gICAgb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlLFxuICAgIG9uRW50cnlGb2N1cyxcbiAgICBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzID0gZmFsc2UsXG4gICAgLi4uZ3JvdXBQcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxSb3ZpbmdGb2N1c0dyb3VwSW1wbEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICBjb25zdCBkaXJlY3Rpb24gPSB1c2VEaXJlY3Rpb24oZGlyKTtcbiAgY29uc3QgW2N1cnJlbnRUYWJTdG9wSWQgPSBudWxsLCBzZXRDdXJyZW50VGFiU3RvcElkXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBjdXJyZW50VGFiU3RvcElkUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdEN1cnJlbnRUYWJTdG9wSWQsXG4gICAgb25DaGFuZ2U6IG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZSxcbiAgfSk7XG4gIGNvbnN0IFtpc1RhYmJpbmdCYWNrT3V0LCBzZXRJc1RhYmJpbmdCYWNrT3V0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaGFuZGxlRW50cnlGb2N1cyA9IHVzZUNhbGxiYWNrUmVmKG9uRW50cnlGb2N1cyk7XG4gIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlUm92aW5nRm9jdXNHcm91cCk7XG4gIGNvbnN0IGlzQ2xpY2tGb2N1c1JlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IFtmb2N1c2FibGVJdGVtc0NvdW50LCBzZXRGb2N1c2FibGVJdGVtc0NvdW50XSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoRU5UUllfRk9DVVMsIGhhbmRsZUVudHJ5Rm9jdXMpO1xuICAgICAgcmV0dXJuICgpID0+IG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihFTlRSWV9GT0NVUywgaGFuZGxlRW50cnlGb2N1cyk7XG4gICAgfVxuICB9LCBbaGFuZGxlRW50cnlGb2N1c10pO1xuXG4gIHJldHVybiAoXG4gICAgPFJvdmluZ0ZvY3VzUHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlUm92aW5nRm9jdXNHcm91cH1cbiAgICAgIG9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgIGRpcj17ZGlyZWN0aW9ufVxuICAgICAgbG9vcD17bG9vcH1cbiAgICAgIGN1cnJlbnRUYWJTdG9wSWQ9e2N1cnJlbnRUYWJTdG9wSWR9XG4gICAgICBvbkl0ZW1Gb2N1cz17UmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICh0YWJTdG9wSWQpID0+IHNldEN1cnJlbnRUYWJTdG9wSWQodGFiU3RvcElkKSxcbiAgICAgICAgW3NldEN1cnJlbnRUYWJTdG9wSWRdXG4gICAgICApfVxuICAgICAgb25JdGVtU2hpZnRUYWI9e1JlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHNldElzVGFiYmluZ0JhY2tPdXQodHJ1ZSksIFtdKX1cbiAgICAgIG9uRm9jdXNhYmxlSXRlbUFkZD17UmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICgpID0+IHNldEZvY3VzYWJsZUl0ZW1zQ291bnQoKHByZXZDb3VudCkgPT4gcHJldkNvdW50ICsgMSksXG4gICAgICAgIFtdXG4gICAgICApfVxuICAgICAgb25Gb2N1c2FibGVJdGVtUmVtb3ZlPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0Rm9jdXNhYmxlSXRlbXNDb3VudCgocHJldkNvdW50KSA9PiBwcmV2Q291bnQgLSAxKSxcbiAgICAgICAgW11cbiAgICAgICl9XG4gICAgPlxuICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgdGFiSW5kZXg9e2lzVGFiYmluZ0JhY2tPdXQgfHwgZm9jdXNhYmxlSXRlbXNDb3VudCA9PT0gMCA/IC0xIDogMH1cbiAgICAgICAgZGF0YS1vcmllbnRhdGlvbj17b3JpZW50YXRpb259XG4gICAgICAgIHsuLi5ncm91cFByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgc3R5bGU9e3sgb3V0bGluZTogJ25vbmUnLCAuLi5wcm9wcy5zdHlsZSB9fVxuICAgICAgICBvbk1vdXNlRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Nb3VzZURvd24sICgpID0+IHtcbiAgICAgICAgICBpc0NsaWNrRm9jdXNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH0pfVxuICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBXZSBub3JtYWxseSB3b3VsZG4ndCBuZWVkIHRoaXMgY2hlY2ssIGJlY2F1c2Ugd2UgYWxyZWFkeSBjaGVja1xuICAgICAgICAgIC8vIHRoYXQgdGhlIGZvY3VzIGlzIG9uIHRoZSBjdXJyZW50IHRhcmdldCBhbmQgbm90IGJ1YmJsaW5nIHRvIGl0LlxuICAgICAgICAgIC8vIFdlIGRvIHRoaXMgYmVjYXVzZSBTYWZhcmkgZG9lc24ndCBmb2N1cyBidXR0b25zIHdoZW4gY2xpY2tlZCwgYW5kXG4gICAgICAgICAgLy8gaW5zdGVhZCwgdGhlIHdyYXBwZXIgd2lsbCBnZXQgZm9jdXNlZCBhbmQgbm90IHRocm91Z2ggYSBidWJibGluZyBldmVudC5cbiAgICAgICAgICBjb25zdCBpc0tleWJvYXJkRm9jdXMgPSAhaXNDbGlja0ZvY3VzUmVmLmN1cnJlbnQ7XG5cbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBldmVudC5jdXJyZW50VGFyZ2V0ICYmIGlzS2V5Ym9hcmRGb2N1cyAmJiAhaXNUYWJiaW5nQmFja091dCkge1xuICAgICAgICAgICAgY29uc3QgZW50cnlGb2N1c0V2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KEVOVFJZX0ZPQ1VTLCBFVkVOVF9PUFRJT05TKTtcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChlbnRyeUZvY3VzRXZlbnQpO1xuXG4gICAgICAgICAgICBpZiAoIWVudHJ5Rm9jdXNFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uZm9jdXNhYmxlKTtcbiAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBjdXJyZW50VGFiU3RvcElkKTtcbiAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlSXRlbXMgPSBbYWN0aXZlSXRlbSwgY3VycmVudEl0ZW0sIC4uLml0ZW1zXS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgQm9vbGVhblxuICAgICAgICAgICAgICApIGFzIHR5cGVvZiBpdGVtcztcbiAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlTm9kZXMgPSBjYW5kaWRhdGVJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQhKTtcbiAgICAgICAgICAgICAgZm9jdXNGaXJzdChjYW5kaWRhdGVOb2RlcywgcHJldmVudFNjcm9sbE9uRW50cnlGb2N1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaXNDbGlja0ZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSl9XG4gICAgICAgIG9uQmx1cj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyLCAoKSA9PiBzZXRJc1RhYmJpbmdCYWNrT3V0KGZhbHNlKSl9XG4gICAgICAvPlxuICAgIDwvUm92aW5nRm9jdXNQcm92aWRlcj5cbiAgKTtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBSb3ZpbmdGb2N1c0dyb3VwSXRlbVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJVEVNX05BTUUgPSAnUm92aW5nRm9jdXNHcm91cEl0ZW0nO1xuXG50eXBlIFJvdmluZ0ZvY3VzSXRlbUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG50eXBlIFByaW1pdGl2ZVNwYW5Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzSXRlbVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlU3BhblByb3BzIHtcbiAgdGFiU3RvcElkPzogc3RyaW5nO1xuICBmb2N1c2FibGU/OiBib29sZWFuO1xuICBhY3RpdmU/OiBib29sZWFuO1xufVxuXG5jb25zdCBSb3ZpbmdGb2N1c0dyb3VwSXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8Um92aW5nRm9jdXNJdGVtRWxlbWVudCwgUm92aW5nRm9jdXNJdGVtUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFJvdmluZ0ZvY3VzSXRlbVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXAsXG4gICAgICBmb2N1c2FibGUgPSB0cnVlLFxuICAgICAgYWN0aXZlID0gZmFsc2UsXG4gICAgICB0YWJTdG9wSWQsXG4gICAgICAuLi5pdGVtUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBpZCA9IHRhYlN0b3BJZCB8fCBhdXRvSWQ7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJvdmluZ0ZvY3VzQ29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwKTtcbiAgICBjb25zdCBpc0N1cnJlbnRUYWJTdG9wID0gY29udGV4dC5jdXJyZW50VGFiU3RvcElkID09PSBpZDtcbiAgICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuXG4gICAgY29uc3QgeyBvbkZvY3VzYWJsZUl0ZW1BZGQsIG9uRm9jdXNhYmxlSXRlbVJlbW92ZSB9ID0gY29udGV4dDtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICAgIG9uRm9jdXNhYmxlSXRlbUFkZCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4gb25Gb2N1c2FibGVJdGVtUmVtb3ZlKCk7XG4gICAgICB9XG4gICAgfSwgW2ZvY3VzYWJsZSwgb25Gb2N1c2FibGVJdGVtQWRkLCBvbkZvY3VzYWJsZUl0ZW1SZW1vdmVdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sbGVjdGlvbi5JdGVtU2xvdFxuICAgICAgICBzY29wZT17X19zY29wZVJvdmluZ0ZvY3VzR3JvdXB9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAgZm9jdXNhYmxlPXtmb2N1c2FibGV9XG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgPlxuICAgICAgICA8UHJpbWl0aXZlLnNwYW5cbiAgICAgICAgICB0YWJJbmRleD17aXNDdXJyZW50VGFiU3RvcCA/IDAgOiAtMX1cbiAgICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtjb250ZXh0Lm9yaWVudGF0aW9ufVxuICAgICAgICAgIHsuLi5pdGVtUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgb25Nb3VzZURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uTW91c2VEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFdlIHByZXZlbnQgZm9jdXNpbmcgbm9uLWZvY3VzYWJsZSBpdGVtcyBvbiBgbW91c2Vkb3duYC5cbiAgICAgICAgICAgIC8vIEV2ZW4gdGhvdWdoIHRoZSBpdGVtIGhhcyB0YWJJbmRleD17LTF9LCB0aGF0IG9ubHkgbWVhbnMgdGFrZSBpdCBvdXQgb2YgdGhlIHRhYiBvcmRlci5cbiAgICAgICAgICAgIGlmICghZm9jdXNhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgLy8gU2FmYXJpIGRvZXNuJ3QgZm9jdXMgYSBidXR0b24gd2hlbiBjbGlja2VkIHNvIHdlIHJ1biBvdXIgbG9naWMgb24gbW91c2Vkb3duIGFsc29cbiAgICAgICAgICAgIGVsc2UgY29udGV4dC5vbkl0ZW1Gb2N1cyhpZCk7XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25Gb2N1cz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1cywgKCkgPT4gY29udGV4dC5vbkl0ZW1Gb2N1cyhpZCkpfVxuICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGNvbnRleHQub25JdGVtU2hpZnRUYWIoKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGZvY3VzSW50ZW50ID0gZ2V0Rm9jdXNJbnRlbnQoZXZlbnQsIGNvbnRleHQub3JpZW50YXRpb24sIGNvbnRleHQuZGlyKTtcblxuICAgICAgICAgICAgaWYgKGZvY3VzSW50ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkpIHJldHVybjtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5mb2N1c2FibGUpO1xuICAgICAgICAgICAgICBsZXQgY2FuZGlkYXRlTm9kZXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQhKTtcblxuICAgICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgPT09ICdsYXN0JykgY2FuZGlkYXRlTm9kZXMucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChmb2N1c0ludGVudCA9PT0gJ3ByZXYnIHx8IGZvY3VzSW50ZW50ID09PSAnbmV4dCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgPT09ICdwcmV2JykgY2FuZGlkYXRlTm9kZXMucmV2ZXJzZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGNhbmRpZGF0ZU5vZGVzLmluZGV4T2YoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICAgICAgY2FuZGlkYXRlTm9kZXMgPSBjb250ZXh0Lmxvb3BcbiAgICAgICAgICAgICAgICAgID8gd3JhcEFycmF5KGNhbmRpZGF0ZU5vZGVzLCBjdXJyZW50SW5kZXggKyAxKVxuICAgICAgICAgICAgICAgICAgOiBjYW5kaWRhdGVOb2Rlcy5zbGljZShjdXJyZW50SW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBJbXBlcmF0aXZlIGZvY3VzIGR1cmluZyBrZXlkb3duIGlzIHJpc2t5IHNvIHdlIHByZXZlbnQgUmVhY3QncyBiYXRjaGluZyB1cGRhdGVzXG4gICAgICAgICAgICAgICAqIHRvIGF2b2lkIHBvdGVudGlhbCBidWdzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjAzMzJcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZm9jdXNGaXJzdChjYW5kaWRhdGVOb2RlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pfVxuICAgICAgICAvPlxuICAgICAgPC9Db2xsZWN0aW9uLkl0ZW1TbG90PlxuICAgICk7XG4gIH1cbik7XG5cblJvdmluZ0ZvY3VzR3JvdXBJdGVtLmRpc3BsYXlOYW1lID0gSVRFTV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIHByZXR0aWVyLWlnbm9yZVxuY29uc3QgTUFQX0tFWV9UT19GT0NVU19JTlRFTlQ6IFJlY29yZDxzdHJpbmcsIEZvY3VzSW50ZW50PiA9IHtcbiAgQXJyb3dMZWZ0OiAncHJldicsIEFycm93VXA6ICdwcmV2JyxcbiAgQXJyb3dSaWdodDogJ25leHQnLCBBcnJvd0Rvd246ICduZXh0JyxcbiAgUGFnZVVwOiAnZmlyc3QnLCBIb21lOiAnZmlyc3QnLFxuICBQYWdlRG93bjogJ2xhc3QnLCBFbmQ6ICdsYXN0Jyxcbn07XG5cbmZ1bmN0aW9uIGdldERpcmVjdGlvbkF3YXJlS2V5KGtleTogc3RyaW5nLCBkaXI/OiBEaXJlY3Rpb24pIHtcbiAgaWYgKGRpciAhPT0gJ3J0bCcpIHJldHVybiBrZXk7XG4gIHJldHVybiBrZXkgPT09ICdBcnJvd0xlZnQnID8gJ0Fycm93UmlnaHQnIDoga2V5ID09PSAnQXJyb3dSaWdodCcgPyAnQXJyb3dMZWZ0JyA6IGtleTtcbn1cblxudHlwZSBGb2N1c0ludGVudCA9ICdmaXJzdCcgfCAnbGFzdCcgfCAncHJldicgfCAnbmV4dCc7XG5cbmZ1bmN0aW9uIGdldEZvY3VzSW50ZW50KGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50LCBvcmllbnRhdGlvbj86IE9yaWVudGF0aW9uLCBkaXI/OiBEaXJlY3Rpb24pIHtcbiAgY29uc3Qga2V5ID0gZ2V0RGlyZWN0aW9uQXdhcmVLZXkoZXZlbnQua2V5LCBkaXIpO1xuICBpZiAob3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgJiYgWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddLmluY2x1ZGVzKGtleSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnICYmIFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nXS5pbmNsdWRlcyhrZXkpKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gTUFQX0tFWV9UT19GT0NVU19JTlRFTlRba2V5XTtcbn1cblxuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzOiBIVE1MRWxlbWVudFtdLCBwcmV2ZW50U2Nyb2xsID0gZmFsc2UpIHtcbiAgY29uc3QgUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgLy8gaWYgZm9jdXMgaXMgYWxyZWFkeSB3aGVyZSB3ZSB3YW50IHRvIGdvLCB3ZSBkb24ndCB3YW50IHRvIGtlZXAgZ29pbmcgdGhyb3VnaCB0aGUgY2FuZGlkYXRlc1xuICAgIGlmIChjYW5kaWRhdGUgPT09IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UKSByZXR1cm47XG4gICAgY2FuZGlkYXRlLmZvY3VzKHsgcHJldmVudFNjcm9sbCB9KTtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGFuIGFycmF5IGFyb3VuZCBpdHNlbGYgYXQgYSBnaXZlbiBzdGFydCBpbmRleFxuICogRXhhbXBsZTogYHdyYXBBcnJheShbJ2EnLCAnYicsICdjJywgJ2QnXSwgMikgPT09IFsnYycsICdkJywgJ2EnLCAnYiddYFxuICovXG5mdW5jdGlvbiB3cmFwQXJyYXk8VD4oYXJyYXk6IFRbXSwgc3RhcnRJbmRleDogbnVtYmVyKSB7XG4gIHJldHVybiBhcnJheS5tYXAoKF8sIGluZGV4KSA9PiBhcnJheVsoc3RhcnRJbmRleCArIGluZGV4KSAlIGFycmF5Lmxlbmd0aF0pO1xufVxuXG5jb25zdCBSb290ID0gUm92aW5nRm9jdXNHcm91cDtcbmNvbnN0IEl0ZW0gPSBSb3ZpbmdGb2N1c0dyb3VwSXRlbTtcblxuZXhwb3J0IHtcbiAgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlLFxuICAvL1xuICBSb3ZpbmdGb2N1c0dyb3VwLFxuICBSb3ZpbmdGb2N1c0dyb3VwSXRlbSxcbiAgLy9cbiAgUm9vdCxcbiAgSXRlbSxcbn07XG5leHBvcnQgdHlwZSB7IFJvdmluZ0ZvY3VzR3JvdXBQcm9wcywgUm92aW5nRm9jdXNJdGVtUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-select/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-select/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Icon: () => (/* binding */ Icon),\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator),\n/* harmony export */ ItemText: () => (/* binding */ ItemText),\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ ScrollDownButton: () => (/* binding */ ScrollDownButton),\n/* harmony export */ ScrollUpButton: () => (/* binding */ ScrollUpButton),\n/* harmony export */ Select: () => (/* binding */ Select),\n/* harmony export */ SelectArrow: () => (/* binding */ SelectArrow),\n/* harmony export */ SelectContent: () => (/* binding */ SelectContent),\n/* harmony export */ SelectGroup: () => (/* binding */ SelectGroup),\n/* harmony export */ SelectIcon: () => (/* binding */ SelectIcon),\n/* harmony export */ SelectItem: () => (/* binding */ SelectItem),\n/* harmony export */ SelectItemIndicator: () => (/* binding */ SelectItemIndicator),\n/* harmony export */ SelectItemText: () => (/* binding */ SelectItemText),\n/* harmony export */ SelectLabel: () => (/* binding */ SelectLabel),\n/* harmony export */ SelectPortal: () => (/* binding */ SelectPortal),\n/* harmony export */ SelectScrollDownButton: () => (/* binding */ SelectScrollDownButton),\n/* harmony export */ SelectScrollUpButton: () => (/* binding */ SelectScrollUpButton),\n/* harmony export */ SelectSeparator: () => (/* binding */ SelectSeparator),\n/* harmony export */ SelectTrigger: () => (/* binding */ SelectTrigger),\n/* harmony export */ SelectValue: () => (/* binding */ SelectValue),\n/* harmony export */ SelectViewport: () => (/* binding */ SelectViewport),\n/* harmony export */ Separator: () => (/* binding */ Separator),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ Value: () => (/* binding */ Value),\n/* harmony export */ Viewport: () => (/* binding */ Viewport),\n/* harmony export */ createSelectScope: () => (/* binding */ createSelectScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_number__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @radix-ui/number */ \"(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @radix-ui/react-use-previous */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @radix-ui/react-visually-hidden */ \"(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Arrow,Content,Group,Icon,Item,ItemIndicator,ItemText,Label,Portal,Root,ScrollDownButton,ScrollUpButton,Select,SelectArrow,SelectContent,SelectGroup,SelectIcon,SelectItem,SelectItemIndicator,SelectItemText,SelectLabel,SelectPortal,SelectScrollDownButton,SelectScrollUpButton,SelectSeparator,SelectTrigger,SelectValue,SelectViewport,Separator,Trigger,Value,Viewport,createSelectScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$(), _s16 = $RefreshSig$(), _s17 = $RefreshSig$(), _s18 = $RefreshSig$();\n// packages/react/select/src/Select.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar OPEN_KEYS = [\n \" \",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\"\n];\nvar SELECTION_KEYS = [\n \" \",\n \"Enter\"\n];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_3__.createCollection)(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_4__.createContextScope)(SELECT_NAME, [\n createCollectionScope,\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.createPopperScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.createPopperScope)();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props)=>{\n _s();\n const { __scopeSelect, children, open: openProp, defaultOpen, onOpenChange, value: valueProp, defaultValue, onValueChange, dir, name, autoComplete, disabled, required, form } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [valueNode, setValueNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_6__.useDirection)(dir);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState)({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = react__WEBPACK_IMPORTED_MODULE_0__.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value).join(\";\");\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(SelectProvider, {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Provider, {\n scope: __scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectNativeOptionsProvider, {\n scope: props.__scopeSelect,\n onNativeOptionAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Select.useCallback\": (option)=>{\n setNativeOptionsSet({\n \"Select.useCallback\": (prev)=>new Set(prev).add(option)\n }[\"Select.useCallback\"]);\n }\n }[\"Select.useCallback\"], []),\n onNativeOptionRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Select.useCallback\": (option)=>{\n setNativeOptionsSet({\n \"Select.useCallback\": (prev)=>{\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n }\n }[\"Select.useCallback\"]);\n }\n }[\"Select.useCallback\"], []),\n children\n })\n }),\n isFormControl ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(BubbleSelect, {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event)=>setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: \"\"\n }) : null,\n Array.from(nativeOptionsSet)\n ]\n }, nativeSelectKey) : null\n ]\n })\n });\n};\n_s(Select, \"OIDWbXHbobF+0/M3YI74L1yFreg=\", false, function() {\n return [\n usePopperScope,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_6__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId\n ];\n});\n_c = Select;\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch({\n \"SelectTrigger.useTypeaheadSearch\": (search)=>{\n const enabledItems = getItems().filter({\n \"SelectTrigger.useTypeaheadSearch.enabledItems\": (item)=>!item.disabled\n }[\"SelectTrigger.useTypeaheadSearch.enabledItems\"]);\n const currentItem = enabledItems.find({\n \"SelectTrigger.useTypeaheadSearch.currentItem\": (item)=>item.value === context.value\n }[\"SelectTrigger.useTypeaheadSearch.currentItem\"]);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n }\n }[\"SelectTrigger.useTypeaheadSearch\"]);\n const handleOpen = (pointerEvent)=>{\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Anchor, {\n asChild: true,\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.button, {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onClick, (event)=>{\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onPointerDown, (event)=>{\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onKeyDown, (event)=>{\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n })\n });\n}, \"19M5K2mfKZZkkOca9V+n/dA+xLg=\", false, function() {\n return [\n usePopperScope,\n useSelectContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n useCollection,\n useTypeaheadSearch\n ];\n})), \"19M5K2mfKZZkkOca9V+n/dA+xLg=\", false, function() {\n return [\n usePopperScope,\n useSelectContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n useCollection,\n useTypeaheadSearch\n ];\n});\n_c2 = SelectTrigger;\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, context.onValueNodeChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectValue.useLayoutEffect\": ()=>{\n onValueNodeHasChildrenChange(hasChildren);\n }\n }[\"SelectValue.useLayoutEffect\"], [\n onValueNodeHasChildrenChange,\n hasChildren\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n ...valueProps,\n ref: composedRefs,\n style: {\n pointerEvents: \"none\"\n },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: placeholder\n }) : children\n });\n}, \"cpldzHcGda/pTI+b/cl8M8xu3Yo=\", false, function() {\n return [\n useSelectContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n})), \"cpldzHcGda/pTI+b/cl8M8xu3Yo=\", false, function() {\n return [\n useSelectContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n});\n_c4 = SelectValue;\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c5 = (props, forwardedRef)=>{\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n \"aria-hidden\": true,\n ...iconProps,\n ref: forwardedRef,\n children: children || \"\\u25BC\"\n });\n});\n_c6 = SelectIcon;\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_13__.Portal, {\n asChild: true,\n ...props\n });\n};\n_c7 = SelectPortal;\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c8 = _s3((props, forwardedRef)=>{\n _s3();\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectContent.useLayoutEffect\": ()=>{\n setFragment(new DocumentFragment());\n }\n }[\"SelectContent.useLayoutEffect\"], []);\n if (!context.open) {\n const frag = fragment;\n return frag ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentProvider, {\n scope: props.__scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Slot, {\n scope: props.__scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n children: props.children\n })\n })\n }), frag) : null;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentImpl, {\n ...props,\n ref: forwardedRef\n });\n}, \"fd4YE2wO/jakcIsVPcuZp6vM00U=\", false, function() {\n return [\n useSelectContext\n ];\n})), \"fd4YE2wO/jakcIsVPcuZp6vM00U=\", false, function() {\n return [\n useSelectContext\n ];\n});\n_c9 = SelectContent;\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar SelectContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const { __scopeSelect, position = \"item-aligned\", onCloseAutoFocus, onEscapeKeyDown, onPointerDownOutside, //\n // PopperContent props\n side, sideOffset, align, alignOffset, arrowPadding, collisionBoundary, collisionPadding, sticky, hideWhenDetached, avoidCollisions, //\n ...contentProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [viewport, setViewport] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, {\n \"SelectContentImpl.useComposedRefs[composedRefs]\": (node)=>setContent(node)\n }[\"SelectContentImpl.useComposedRefs[composedRefs]\"]);\n const [selectedItem, setSelectedItem] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [selectedItemText, setSelectedItemText] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const firstValidItemFoundRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"SelectContentImpl.useEffect\": ()=>{\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_14__.hideOthers)(content);\n }\n }[\"SelectContentImpl.useEffect\"], [\n content\n ]);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards)();\n const focusFirst = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectContentImpl.useCallback[focusFirst]\": (candidates)=>{\n const [firstItem, ...restItems] = getItems().map({\n \"SelectContentImpl.useCallback[focusFirst]\": (item)=>item.ref.current\n }[\"SelectContentImpl.useCallback[focusFirst]\"]);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate === null || candidate === void 0 ? void 0 : candidate.scrollIntoView({\n block: \"nearest\"\n });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate === null || candidate === void 0 ? void 0 : candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n }\n }[\"SelectContentImpl.useCallback[focusFirst]\"], [\n getItems,\n viewport\n ]);\n const focusSelectedItem = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectContentImpl.useCallback[focusSelectedItem]\": ()=>focusFirst([\n selectedItem,\n content\n ])\n }[\"SelectContentImpl.useCallback[focusSelectedItem]\"], [\n focusFirst,\n selectedItem,\n content\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"SelectContentImpl.useEffect\": ()=>{\n if (isPositioned) {\n focusSelectedItem();\n }\n }\n }[\"SelectContentImpl.useEffect\"], [\n isPositioned,\n focusSelectedItem\n ]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"SelectContentImpl.useEffect\": ()=>{\n if (content) {\n let pointerMoveDelta = {\n x: 0,\n y: 0\n };\n const handlePointerMove = {\n \"SelectContentImpl.useEffect.handlePointerMove\": (event)=>{\n var _triggerPointerDownPosRef_current, _triggerPointerDownPosRef_current1;\n var _triggerPointerDownPosRef_current_x, _triggerPointerDownPosRef_current_y;\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPosRef_current_x = (_triggerPointerDownPosRef_current = triggerPointerDownPosRef.current) === null || _triggerPointerDownPosRef_current === void 0 ? void 0 : _triggerPointerDownPosRef_current.x) !== null && _triggerPointerDownPosRef_current_x !== void 0 ? _triggerPointerDownPosRef_current_x : 0)),\n y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPosRef_current_y = (_triggerPointerDownPosRef_current1 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPosRef_current1 === void 0 ? void 0 : _triggerPointerDownPosRef_current1.y) !== null && _triggerPointerDownPosRef_current_y !== void 0 ? _triggerPointerDownPosRef_current_y : 0))\n };\n }\n }[\"SelectContentImpl.useEffect.handlePointerMove\"];\n const handlePointerUp = {\n \"SelectContentImpl.useEffect.handlePointerUp\": (event)=>{\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n }\n }[\"SelectContentImpl.useEffect.handlePointerUp\"];\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, {\n capture: true,\n once: true\n });\n }\n return ({\n \"SelectContentImpl.useEffect\": ()=>{\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, {\n capture: true\n });\n }\n })[\"SelectContentImpl.useEffect\"];\n }\n }\n }[\"SelectContentImpl.useEffect\"], [\n content,\n onOpenChange,\n triggerPointerDownPosRef\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"SelectContentImpl.useEffect\": ()=>{\n const close = {\n \"SelectContentImpl.useEffect.close\": ()=>onOpenChange(false)\n }[\"SelectContentImpl.useEffect.close\"];\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return ({\n \"SelectContentImpl.useEffect\": ()=>{\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n }\n })[\"SelectContentImpl.useEffect\"];\n }\n }[\"SelectContentImpl.useEffect\"], [\n onOpenChange\n ]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch({\n \"SelectContentImpl.useTypeaheadSearch\": (search)=>{\n const enabledItems = getItems().filter({\n \"SelectContentImpl.useTypeaheadSearch.enabledItems\": (item)=>!item.disabled\n }[\"SelectContentImpl.useTypeaheadSearch.enabledItems\"]);\n const currentItem = enabledItems.find({\n \"SelectContentImpl.useTypeaheadSearch.currentItem\": (item)=>item.ref.current === document.activeElement\n }[\"SelectContentImpl.useTypeaheadSearch.currentItem\"]);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout({\n \"SelectContentImpl.useTypeaheadSearch\": ()=>nextItem.ref.current.focus()\n }[\"SelectContentImpl.useTypeaheadSearch\"]);\n }\n }\n }[\"SelectContentImpl.useTypeaheadSearch\"]);\n const itemRefCallback = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectContentImpl.useCallback[itemRefCallback]\": (node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n }\n }[\"SelectContentImpl.useCallback[itemRefCallback]\"], [\n context.value\n ]);\n const handleItemLeave = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectContentImpl.useCallback[handleItemLeave]\": ()=>content === null || content === void 0 ? void 0 : content.focus()\n }[\"SelectContentImpl.useCallback[handleItemLeave]\"], [\n content\n ]);\n const itemTextRefCallback = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectContentImpl.useCallback[itemTextRefCallback]\": (node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n }\n }[\"SelectContentImpl.useCallback[itemTextRefCallback]\"], [\n context.value\n ]);\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentProvider, {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_17__.Slot,\n allowPinchZoom: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_18__.FocusScope, {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event)=>{\n event.preventDefault();\n },\n onUnmountAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(onCloseAutoFocus, (event)=>{\n var _context_trigger;\n (_context_trigger = context.trigger) === null || _context_trigger === void 0 ? void 0 : _context_trigger.focus({\n preventScroll: true\n });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_19__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event)=>event.preventDefault(),\n onDismiss: ()=>context.onOpenChange(false),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectPosition, {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event)=>event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: ()=>setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(contentProps.onKeyDown, (event)=>{\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n const items = getItems().filter((item)=>!item.disabled);\n let candidateNodes = items.map((item)=>item.ref.current);\n if ([\n \"ArrowUp\",\n \"End\"\n ].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n })\n })\n })\n })\n });\n}, \"yNVcJTqpcRzvvf5kWZ8yYAsFDU0=\", false, function() {\n return [\n useSelectContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n useCollection,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards,\n useTypeaheadSearch\n ];\n}));\n_c10 = SelectContentImpl;\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c11 = _s5((props, forwardedRef)=>{\n _s5();\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, {\n \"SelectItemAlignedPosition.useComposedRefs[composedRefs]\": (node)=>setContent(node)\n }[\"SelectItemAlignedPosition.useComposedRefs[composedRefs]\"]);\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const shouldRepositionRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectItemAlignedPosition.useCallback[position]\": ()=>{\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_20__.clamp)(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_20__.clamp)(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = \"\".concat(CONTENT_MARGIN, \"px 0\");\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced === null || onPlaced === void 0 ? void 0 : onPlaced();\n requestAnimationFrame({\n \"SelectItemAlignedPosition.useCallback[position]\": ()=>shouldExpandOnScrollRef.current = true\n }[\"SelectItemAlignedPosition.useCallback[position]\"]);\n }\n }\n }[\"SelectItemAlignedPosition.useCallback[position]\"], [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectItemAlignedPosition.useLayoutEffect\": ()=>position()\n }[\"SelectItemAlignedPosition.useLayoutEffect\"], [\n position\n ]);\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectItemAlignedPosition.useLayoutEffect\": ()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }\n }[\"SelectItemAlignedPosition.useLayoutEffect\"], [\n content\n ]);\n const handleScrollButtonChange = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectItemAlignedPosition.useCallback[handleScrollButtonChange]\": (node)=>{\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem === null || focusSelectedItem === void 0 ? void 0 : focusSelectedItem();\n shouldRepositionRef.current = false;\n }\n }\n }[\"SelectItemAlignedPosition.useCallback[handleScrollButtonChange]\"], [\n position,\n focusSelectedItem\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectViewportProvider, {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n })\n })\n });\n}, \"WP3cIppVpIvKKu/eMDJunjXNdNI=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n useCollection\n ];\n})), \"WP3cIppVpIvKKu/eMDJunjXNdNI=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n useCollection\n ];\n});\n_c12 = SelectItemAlignedPosition;\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = /*#__PURE__*/ _s6(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c13 = _s6((props, forwardedRef)=>{\n _s6();\n const { __scopeSelect, align = \"start\", collisionPadding = CONTENT_MARGIN, ...popperProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Content, {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n})), \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n});\n_c14 = SelectPopperPosition;\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c15 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: \"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}\"\n },\n nonce\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Slot, {\n scope: __scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(viewportProps.onScroll, (event)=>{\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if ((shouldExpandOnScrollRef === null || shouldExpandOnScrollRef === void 0 ? void 0 : shouldExpandOnScrollRef.current) && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n })\n })\n ]\n });\n}, \"XupGGKfsCoXBlLl1goZr8AcWTcs=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n})), \"XupGGKfsCoXBlLl1goZr8AcWTcs=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n});\n_c16 = SelectViewport;\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c17 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopeSelect, ...groupProps } = props;\n const groupId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectGroupContextProvider, {\n scope: __scopeSelect,\n id: groupId,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n role: \"group\",\n \"aria-labelledby\": groupId,\n ...groupProps,\n ref: forwardedRef\n })\n });\n}, \"tOOrYlkbvhc+opkxOvQ4zyHVezY=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId\n ];\n})), \"tOOrYlkbvhc+opkxOvQ4zyHVezY=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId\n ];\n});\n_c18 = SelectGroup;\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c19 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n id: groupContext.id,\n ...labelProps,\n ref: forwardedRef\n });\n}, \"6DR4oNi5I3VPerTuJFdlRDJAXcE=\", false, function() {\n return [\n useSelectGroupContext\n ];\n})), \"6DR4oNi5I3VPerTuJFdlRDJAXcE=\", false, function() {\n return [\n useSelectGroupContext\n ];\n});\n_c20 = SelectLabel;\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c21 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeSelect, value, disabled = false, textValue: textValueProp, ...itemProps } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = react__WEBPACK_IMPORTED_MODULE_0__.useState(textValueProp !== null && textValueProp !== void 0 ? textValueProp : \"\");\n const [isFocused, setIsFocused] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, {\n \"SelectItem.useComposedRefs[composedRefs]\": (node)=>{\n var _contentContext_itemRefCallback;\n return (_contentContext_itemRefCallback = contentContext.itemRefCallback) === null || _contentContext_itemRefCallback === void 0 ? void 0 : _contentContext_itemRefCallback.call(contentContext, node, value, disabled);\n }\n }[\"SelectItem.useComposedRefs[composedRefs]\"]);\n const textId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)();\n const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"touch\");\n const handleSelect = ()=>{\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\");\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectItemContextProvider, {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectItem.useCallback\": (node)=>{\n setTextValue({\n \"SelectItem.useCallback\": (prevTextValue)=>{\n var _node_textContent;\n return prevTextValue || ((_node_textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node_textContent !== void 0 ? _node_textContent : \"\").trim();\n }\n }[\"SelectItem.useCallback\"]);\n }\n }[\"SelectItem.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.ItemSlot, {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onFocus, ()=>setIsFocused(true)),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onBlur, ()=>setIsFocused(false)),\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onClick, ()=>{\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerUp, ()=>{\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerDown, (event)=>{\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerMove, (event)=>{\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n var _contentContext_onItemLeave;\n (_contentContext_onItemLeave = contentContext.onItemLeave) === null || _contentContext_onItemLeave === void 0 ? void 0 : _contentContext_onItemLeave.call(contentContext);\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({\n preventScroll: true\n });\n }\n }),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerLeave, (event)=>{\n if (event.currentTarget === document.activeElement) {\n var _contentContext_onItemLeave;\n (_contentContext_onItemLeave = contentContext.onItemLeave) === null || _contentContext_onItemLeave === void 0 ? void 0 : _contentContext_onItemLeave.call(contentContext);\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onKeyDown, (event)=>{\n var _contentContext_searchRef;\n const isTypingAhead = ((_contentContext_searchRef = contentContext.searchRef) === null || _contentContext_searchRef === void 0 ? void 0 : _contentContext_searchRef.current) !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n })\n })\n });\n}, \"swZY+yZuJojuDP97f8RVHtstz8E=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId\n ];\n})), \"swZY+yZuJojuDP97f8RVHtstz8E=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId\n ];\n});\n_c22 = SelectItem;\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c23 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, {\n \"SelectItemText.useComposedRefs[composedRefs]\": (node)=>setItemTextNode(node)\n }[\"SelectItemText.useComposedRefs[composedRefs]\"], itemContext.onItemTextChange, {\n \"SelectItemText.useComposedRefs[composedRefs]\": (node)=>{\n var _contentContext_itemTextRefCallback;\n return (_contentContext_itemTextRefCallback = contentContext.itemTextRefCallback) === null || _contentContext_itemTextRefCallback === void 0 ? void 0 : _contentContext_itemTextRefCallback.call(contentContext, node, itemContext.value, itemContext.disabled);\n }\n }[\"SelectItemText.useComposedRefs[composedRefs]\"]);\n const textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;\n const nativeOption = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"SelectItemText.useMemo[nativeOption]\": ()=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: itemContext.value,\n disabled: itemContext.disabled,\n children: textContent\n }, itemContext.value)\n }[\"SelectItemText.useMemo[nativeOption]\"], [\n itemContext.disabled,\n itemContext.value,\n textContent\n ]);\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectItemText.useLayoutEffect\": ()=>{\n onNativeOptionAdd(nativeOption);\n return ({\n \"SelectItemText.useLayoutEffect\": ()=>onNativeOptionRemove(nativeOption)\n })[\"SelectItemText.useLayoutEffect\"];\n }\n }[\"SelectItemText.useLayoutEffect\"], [\n onNativeOptionAdd,\n onNativeOptionRemove,\n nativeOption\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(itemTextProps.children, context.valueNode) : null\n ]\n });\n}, \"gX5HyqznJDK65J8KzA6ZxCfbqVA=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n useSelectItemContext,\n useSelectNativeOptionsContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n})), \"gX5HyqznJDK65J8KzA6ZxCfbqVA=\", false, function() {\n return [\n useSelectContext,\n useSelectContentContext,\n useSelectItemContext,\n useSelectNativeOptionsContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n});\n_c24 = SelectItemText;\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = /*#__PURE__*/ _s12(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c25 = _s12((props, forwardedRef)=>{\n _s12();\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n \"aria-hidden\": true,\n ...itemIndicatorProps,\n ref: forwardedRef\n }) : null;\n}, \"Xe0OoxTaz4ol6wYFGO8hLOwBfcM=\", false, function() {\n return [\n useSelectItemContext\n ];\n})), \"Xe0OoxTaz4ol6wYFGO8hLOwBfcM=\", false, function() {\n return [\n useSelectItemContext\n ];\n});\n_c26 = SelectItemIndicator;\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = /*#__PURE__*/ _s13(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c27 = _s13((props, forwardedRef)=>{\n _s13();\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, viewportContext.onScrollButtonChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectScrollUpButton.useLayoutEffect\": ()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = {\n \"SelectScrollUpButton.useLayoutEffect.handleScroll2\": function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n }\n }[\"SelectScrollUpButton.useLayoutEffect.handleScroll2\"];\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return ({\n \"SelectScrollUpButton.useLayoutEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll2)\n })[\"SelectScrollUpButton.useLayoutEffect\"];\n }\n }\n }[\"SelectScrollUpButton.useLayoutEffect\"], [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollUp ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectScrollButtonImpl, {\n ...props,\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }) : null;\n}, \"l49s+39O7Z7ECl3ThRdkvP144wo=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n})), \"l49s+39O7Z7ECl3ThRdkvP144wo=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n});\n_c28 = SelectScrollUpButton;\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = /*#__PURE__*/ _s14(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c29 = _s14((props, forwardedRef)=>{\n _s14();\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, viewportContext.onScrollButtonChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectScrollDownButton.useLayoutEffect\": ()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = {\n \"SelectScrollDownButton.useLayoutEffect.handleScroll2\": function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n }\n }[\"SelectScrollDownButton.useLayoutEffect.handleScroll2\"];\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return ({\n \"SelectScrollDownButton.useLayoutEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll2)\n })[\"SelectScrollDownButton.useLayoutEffect\"];\n }\n }\n }[\"SelectScrollDownButton.useLayoutEffect\"], [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollDown ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectScrollButtonImpl, {\n ...props,\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }) : null;\n}, \"UfFTMW3F+Cqw5yRHaLkOemMjh5k=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n})), \"UfFTMW3F+Cqw5yRHaLkOemMjh5k=\", false, function() {\n return [\n useSelectContentContext,\n useSelectViewportContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs\n ];\n});\n_c30 = SelectScrollDownButton;\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s15((props, forwardedRef)=>{\n _s15();\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"SelectScrollButtonImpl.useCallback[clearAutoScrollTimer]\": ()=>{\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }\n }[\"SelectScrollButtonImpl.useCallback[clearAutoScrollTimer]\"], []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"SelectScrollButtonImpl.useEffect\": ()=>{\n return ({\n \"SelectScrollButtonImpl.useEffect\": ()=>clearAutoScrollTimer()\n })[\"SelectScrollButtonImpl.useEffect\"];\n }\n }[\"SelectScrollButtonImpl.useEffect\"], [\n clearAutoScrollTimer\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)({\n \"SelectScrollButtonImpl.useLayoutEffect\": ()=>{\n var _activeItem_ref_current;\n const activeItem = getItems().find({\n \"SelectScrollButtonImpl.useLayoutEffect.activeItem\": (item)=>item.ref.current === document.activeElement\n }[\"SelectScrollButtonImpl.useLayoutEffect.activeItem\"]);\n activeItem === null || activeItem === void 0 ? void 0 : (_activeItem_ref_current = activeItem.ref.current) === null || _activeItem_ref_current === void 0 ? void 0 : _activeItem_ref_current.scrollIntoView({\n block: \"nearest\"\n });\n }\n }[\"SelectScrollButtonImpl.useLayoutEffect\"], [\n getItems\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: {\n flexShrink: 0,\n ...scrollIndicatorProps.style\n },\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerDown, ()=>{\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerMove, ()=>{\n var _contentContext_onItemLeave;\n (_contentContext_onItemLeave = contentContext.onItemLeave) === null || _contentContext_onItemLeave === void 0 ? void 0 : _contentContext_onItemLeave.call(contentContext);\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerLeave, ()=>{\n clearAutoScrollTimer();\n })\n });\n}, \"KQy5ukSxC5jx51jfeheptWoAj/k=\", false, function() {\n return [\n useSelectContentContext,\n useCollection\n ];\n}));\n_c31 = SelectScrollButtonImpl;\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c32 = (props, forwardedRef)=>{\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"aria-hidden\": true,\n ...separatorProps,\n ref: forwardedRef\n });\n});\n_c33 = SelectSeparator;\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = /*#__PURE__*/ _s16(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c34 = _s16((props, forwardedRef)=>{\n _s16();\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n }) : null;\n}, \"CQcHI9Iiybp8MdX2L9TGvaVWJNk=\", false, function() {\n return [\n usePopperScope,\n useSelectContext,\n useSelectContentContext\n ];\n})), \"CQcHI9Iiybp8MdX2L9TGvaVWJNk=\", false, function() {\n return [\n usePopperScope,\n useSelectContext,\n useSelectContentContext\n ];\n});\n_c35 = SelectArrow;\nSelectArrow.displayName = ARROW_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nvar BubbleSelect = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s17((props, forwardedRef)=>{\n _s17();\n const { value, ...selectProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, ref);\n const prevValue = (0,_radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_21__.usePrevious)(value);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"BubbleSelect.useEffect\": ()=>{\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(selectProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", {\n bubbles: true\n });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }\n }[\"BubbleSelect.useEffect\"], [\n prevValue,\n value\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_22__.VisuallyHidden, {\n asChild: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"select\", {\n ...selectProps,\n ref: composedRefs,\n defaultValue: value\n })\n });\n}, \"a6042gtFxAndvzVew5zmo9RhLu4=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs,\n _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_21__.usePrevious\n ];\n}));\n_c36 = BubbleSelect;\nBubbleSelect.displayName = \"BubbleSelect\";\nfunction useTypeaheadSearch(onSearchChange) {\n _s18();\n const handleSearchChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_23__.useCallbackRef)(onSearchChange);\n const searchRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const timerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const handleTypeaheadSearch = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"useTypeaheadSearch.useCallback[handleTypeaheadSearch]\": (key)=>{\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout({\n \"useTypeaheadSearch.useCallback[handleTypeaheadSearch].updateSearch\": ()=>updateSearch(\"\")\n }[\"useTypeaheadSearch.useCallback[handleTypeaheadSearch].updateSearch\"], 1e3);\n })(search);\n }\n }[\"useTypeaheadSearch.useCallback[handleTypeaheadSearch]\"], [\n handleSearchChange\n ]);\n const resetTypeahead = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"useTypeaheadSearch.useCallback[resetTypeahead]\": ()=>{\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }\n }[\"useTypeaheadSearch.useCallback[resetTypeahead]\"], []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useTypeaheadSearch.useEffect\": ()=>{\n return ({\n \"useTypeaheadSearch.useEffect\": ()=>window.clearTimeout(timerRef.current)\n })[\"useTypeaheadSearch.useEffect\"];\n }\n }[\"useTypeaheadSearch.useEffect\"], []);\n return [\n searchRef,\n handleTypeaheadSearch,\n resetTypeahead\n ];\n}\n_s18(useTypeaheadSearch, \"VZ8t0iSE4zYdUMcUJz1pLNdDXg8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_23__.useCallbackRef\n ];\n});\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v)=>v !== currentItem);\n const nextItem = wrappedItems.find((item)=>item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase()));\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19, _c20, _c21, _c22, _c23, _c24, _c25, _c26, _c27, _c28, _c29, _c30, _c31, _c32, _c33, _c34, _c35, _c36;\n$RefreshReg$(_c, \"Select\");\n$RefreshReg$(_c1, \"SelectTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"SelectTrigger\");\n$RefreshReg$(_c3, \"SelectValue$React.forwardRef\");\n$RefreshReg$(_c4, \"SelectValue\");\n$RefreshReg$(_c5, \"SelectIcon$React.forwardRef\");\n$RefreshReg$(_c6, \"SelectIcon\");\n$RefreshReg$(_c7, \"SelectPortal\");\n$RefreshReg$(_c8, \"SelectContent$React.forwardRef\");\n$RefreshReg$(_c9, \"SelectContent\");\n$RefreshReg$(_c10, \"SelectContentImpl\");\n$RefreshReg$(_c11, \"SelectItemAlignedPosition$React.forwardRef\");\n$RefreshReg$(_c12, \"SelectItemAlignedPosition\");\n$RefreshReg$(_c13, \"SelectPopperPosition$React.forwardRef\");\n$RefreshReg$(_c14, \"SelectPopperPosition\");\n$RefreshReg$(_c15, \"SelectViewport$React.forwardRef\");\n$RefreshReg$(_c16, \"SelectViewport\");\n$RefreshReg$(_c17, \"SelectGroup$React.forwardRef\");\n$RefreshReg$(_c18, \"SelectGroup\");\n$RefreshReg$(_c19, \"SelectLabel$React.forwardRef\");\n$RefreshReg$(_c20, \"SelectLabel\");\n$RefreshReg$(_c21, \"SelectItem$React.forwardRef\");\n$RefreshReg$(_c22, \"SelectItem\");\n$RefreshReg$(_c23, \"SelectItemText$React.forwardRef\");\n$RefreshReg$(_c24, \"SelectItemText\");\n$RefreshReg$(_c25, \"SelectItemIndicator$React.forwardRef\");\n$RefreshReg$(_c26, \"SelectItemIndicator\");\n$RefreshReg$(_c27, \"SelectScrollUpButton$React.forwardRef\");\n$RefreshReg$(_c28, \"SelectScrollUpButton\");\n$RefreshReg$(_c29, \"SelectScrollDownButton$React.forwardRef\");\n$RefreshReg$(_c30, \"SelectScrollDownButton\");\n$RefreshReg$(_c31, \"SelectScrollButtonImpl\");\n$RefreshReg$(_c32, \"SelectSeparator$React.forwardRef\");\n$RefreshReg$(_c33, \"SelectSeparator\");\n$RefreshReg$(_c34, \"SelectArrow$React.forwardRef\");\n$RefreshReg$(_c35, \"SelectArrow\");\n$RefreshReg$(_c36, \"BubbleSelect\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2VsZWN0L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ0c7QUFDSjtBQUNlO0FBQ0o7QUFDRDtBQUNHO0FBQ047QUFDSTtBQUNGO0FBQ0o7QUFDTDtBQUNXO0FBQ0M7QUFDUTtBQUNoQjtBQUNMO0FBQ1U7QUFDTTtBQUNMO0FBQ0o7QUFDRztBQUNKO0FBQ0U7QUE2SW5CO0FBdklWLElBQU0sWUFBWTtJQUFDO0lBQUs7SUFBUztJQUFXLFdBQVc7Q0FBQTtBQUN2RCxJQUFNLGlCQUFpQjtJQUFDO0lBQUssT0FBTztDQUFBO0FBTXBDLElBQU0sY0FBYztBQUdwQixJQUFNLENBQUMsWUFBWSxlQUFlLHFCQUFxQixJQUFJLDRFQUFnQixDQUd6RSxXQUFXO0FBR2IsSUFBTSxDQUFDLHFCQUFxQixpQkFBaUIsSUFBSSwyRUFBa0IsQ0FBQyxhQUFhO0lBQy9FO0lBQ0EscUVBQWlCO0NBQ2xCO0FBQ0QsSUFBTSxpQkFBaUIseUVBQWlCLENBQUM7QUFvQnpDLElBQU0sQ0FBQyxnQkFBZ0IsZ0JBQWdCLElBQUksb0JBQXdDLFdBQVc7QUFROUYsSUFBTSxDQUFDLDZCQUE2Qiw2QkFBNkIsSUFDL0Qsb0JBQXFELFdBQVc7QUFrQmxFLGFBQXNDLENBQUM7O0lBQ3JDLE1BQU0sRUFDSixlQUNBLFVBQ0EsTUFBTSxVQUNOLGFBQ0EsY0FDQSxPQUFPLFdBQ1AsY0FDQSxlQUNBLEtBQ0EsTUFDQSxjQUNBLFVBQ0EsVUFDQSxNQUNGLEdBQUk7SUFDSixNQUFNLGNBQWMsZUFBZSxhQUFhO0lBQ2hELE1BQU0sQ0FBQyxTQUFTLFVBQVUsSUFBVSw0Q0FBc0MsSUFBSTtJQUM5RSxNQUFNLENBQUMsV0FBVyxZQUFZLElBQVUsNENBQW9DLElBQUk7SUFDaEYsTUFBTSxDQUFD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QUFpQixZQUFZLENBQUM7SUFFeEUsT0FBTyxhQUFhLGNBQWMsV0FBVztBQUMvQztBQU1BLFNBQVMsVUFBYSxPQUFZLFlBQW9CO0lBQ3BELE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxRQUFVLG9CQUFvQixTQUFTLE1BQU0sTUFBTSxDQUFDO0FBQzNFO0FBRUEsSUFBTUcsUUFBTztBQUNiLElBQU0sVUFBVTtBQUNoQixJQUFNLFFBQVE7QUFDZCxJQUFNLE9BQU87QUFDYixJQUFNLFNBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU0sV0FBVztBQUNqQixJQUFNLFFBQVE7QUFDZCxJQUFNLFFBQVE7QUFDZCxJQUFNLE9BQU87QUFDYixJQUFNLFdBQVc7QUFDakIsSUFBTSxnQkFBZ0I7QUFDdEIsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSxtQkFBbUI7QUFDekIsSUFBTSxZQUFZO0FBQ2xCLElBQU1DLFNBQVEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvc3JjL1NlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGNsYW1wIH0gZnJvbSAnQHJhZGl4LXVpL251bWJlcic7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb2xsZWN0aW9uJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyBEaXNtaXNzYWJsZUxheWVyIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyJztcbmltcG9ydCB7IHVzZUZvY3VzR3VhcmRzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkcyc7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCAqIGFzIFBvcHBlclByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IGNyZWF0ZVBvcHBlclNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcHBlcic7XG5pbXBvcnQgeyBQb3J0YWwgYXMgUG9ydGFsUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcnRhbCc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IHVzZVByZXZpb3VzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91cyc7XG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW4nO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gJ2FyaWEtaGlkZGVuJztcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG50eXBlIERpcmVjdGlvbiA9ICdsdHInIHwgJ3J0bCc7XG5cbmNvbnN0IE9QRU5fS0VZUyA9IFsnICcsICdFbnRlcicsICdBcnJvd1VwJywgJ0Fycm93RG93biddO1xuY29uc3QgU0VMRUNUSU9OX0tFWVMgPSBbJyAnLCAnRW50ZXInXTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFTEVDVF9OQU1FID0gJ1NlbGVjdCc7XG5cbnR5cGUgSXRlbURhdGEgPSB7IHZhbHVlOiBzdHJpbmc7IGRpc2FibGVkOiBib29sZWFuOyB0ZXh0VmFsdWU6IHN0cmluZyB9O1xuY29uc3QgW0NvbGxlY3Rpb24sIHVzZUNvbGxlY3Rpb24sIGNyZWF0ZUNvbGxlY3Rpb25TY29wZV0gPSBjcmVhdGVDb2xsZWN0aW9uPFxuICBTZWxlY3RJdGVtRWxlbWVudCxcbiAgSXRlbURhdGFcbj4oU0VMRUNUX05BTUUpO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVNlbGVjdD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlU2VsZWN0Q29udGV4dCwgY3JlYXRlU2VsZWN0U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFNFTEVDVF9OQU1FLCBbXG4gIGNyZWF0ZUNvbGxlY3Rpb25TY29wZSxcbiAgY3JlYXRlUG9wcGVyU2NvcGUsXG5dKTtcbmNvbnN0IHVzZVBvcHBlclNjb3BlID0gY3JlYXRlUG9wcGVyU2NvcGUoKTtcblxudHlwZSBTZWxlY3RDb250ZXh0VmFsdWUgPSB7XG4gIHRyaWdnZXI6IFNlbGVjdFRyaWdnZXJFbGVtZW50IHwgbnVsbDtcbiAgb25UcmlnZ2VyQ2hhbmdlKG5vZGU6IFNlbGVjdFRyaWdnZXJFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIHZhbHVlTm9kZTogU2VsZWN0VmFsdWVFbGVtZW50IHwgbnVsbDtcbiAgb25WYWx1ZU5vZGVDaGFuZ2Uobm9kZTogU2VsZWN0VmFsdWVFbGVtZW50KTogdm9pZDtcbiAgdmFsdWVOb2RlSGFzQ2hpbGRyZW46IGJvb2xlYW47XG4gIG9uVmFsdWVOb2RlSGFzQ2hpbGRyZW5DaGFuZ2UoaGFzQ2hpbGRyZW46IGJvb2xlYW4pOiB2b2lkO1xuICBjb250ZW50SWQ6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG4gIG9wZW46IGJvb2xlYW47XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBkaXI6IFNlbGVjdFByb3BzWydkaXInXTtcbiAgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGw+O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBbU2VsZWN0UHJvdmlkZXIsIHVzZVNlbGVjdENvbnRleHRdID0gY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RDb250ZXh0VmFsdWU+KFNFTEVDVF9OQU1FKTtcblxudHlwZSBOYXRpdmVPcHRpb24gPSBSZWFjdC5SZWFjdEVsZW1lbnQ8UmVhY3QuQ29tcG9uZW50UHJvcHM8J29wdGlvbic+PjtcblxudHlwZSBTZWxlY3ROYXRpdmVPcHRpb25zQ29udGV4dFZhbHVlID0ge1xuICBvbk5hdGl2ZU9wdGlvbkFkZChvcHRpb246IE5hdGl2ZU9wdGlvbik6IHZvaWQ7XG4gIG9uTmF0aXZlT3B0aW9uUmVtb3ZlKG9wdGlvbjogTmF0aXZlT3B0aW9uKTogdm9pZDtcbn07XG5jb25zdCBbU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyLCB1c2VTZWxlY3ROYXRpdmVPcHRpb25zQ29udGV4dF0gPVxuICBjcmVhdGVTZWxlY3RDb250ZXh0PFNlbGVjdE5hdGl2ZU9wdGlvbnNDb250ZXh0VmFsdWU+KFNFTEVDVF9OQU1FKTtcblxuaW50ZXJmYWNlIFNlbGVjdFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2U/KHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBkaXI/OiBEaXJlY3Rpb247XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGF1dG9Db21wbGV0ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIGZvcm0/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNlbGVjdDogUmVhY3QuRkM8U2VsZWN0UHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIHZhbHVlOiB2YWx1ZVByb3AsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIG9uVmFsdWVDaGFuZ2UsXG4gICAgZGlyLFxuICAgIG5hbWUsXG4gICAgYXV0b0NvbXBsZXRlLFxuICAgIGRpc2FibGVkLFxuICAgIHJlcXVpcmVkLFxuICAgIGZvcm0sXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW3RyaWdnZXIsIHNldFRyaWdnZXJdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0VHJpZ2dlckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3ZhbHVlTm9kZSwgc2V0VmFsdWVOb2RlXSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdFZhbHVlRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbdmFsdWVOb2RlSGFzQ2hpbGRyZW4sIHNldFZhbHVlTm9kZUhhc0NoaWxkcmVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlLFxuICB9KTtcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogdmFsdWVQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWUsXG4gICAgb25DaGFuZ2U6IG9uVmFsdWVDaGFuZ2UsXG4gIH0pO1xuICBjb25zdCB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYgPSBSZWFjdC51c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBieSBkZWZhdWx0IHNvIHRoYXQgZXZlbnRzIGJ1YmJsZSB0byBmb3JtcyB3aXRob3V0IEpTIChTU1IpXG4gIGNvbnN0IGlzRm9ybUNvbnRyb2wgPSB0cmlnZ2VyID8gZm9ybSB8fCAhIXRyaWdnZXIuY2xvc2VzdCgnZm9ybScpIDogdHJ1ZTtcbiAgY29uc3QgW25hdGl2ZU9wdGlvbnNTZXQsIHNldE5hdGl2ZU9wdGlvbnNTZXRdID0gUmVhY3QudXNlU3RhdGUobmV3IFNldDxOYXRpdmVPcHRpb24+KCkpO1xuXG4gIC8vIFRoZSBuYXRpdmUgYHNlbGVjdGAgb25seSBhc3NvY2lhdGVzIHRoZSBjb3JyZWN0IGRlZmF1bHQgdmFsdWUgaWYgdGhlIGNvcnJlc3BvbmRpbmdcbiAgLy8gYG9wdGlvbmAgaXMgcmVuZGVyZWQgYXMgYSBjaGlsZCAqKmF0IHRoZSBzYW1lIHRpbWUqKiBhcyBpdHNlbGYuXG4gIC8vIEJlY2F1c2UgaXQgbWlnaHQgdGFrZSBhIGZldyByZW5kZXJzIGZvciBvdXIgaXRlbXMgdG8gZ2F0aGVyIHRoZSBpbmZvcm1hdGlvbiB0byBidWlsZFxuICAvLyB0aGUgbmF0aXZlIGBvcHRpb25gKHMpLCB3ZSBnZW5lcmF0ZSBhIGtleSBvbiB0aGUgYHNlbGVjdGAgdG8gbWFrZSBzdXJlIFJlYWN0IHJlLWJ1aWxkcyBpdFxuICAvLyBlYWNoIHRpbWUgdGhlIG9wdGlvbnMgY2hhbmdlLlxuICBjb25zdCBuYXRpdmVTZWxlY3RLZXkgPSBBcnJheS5mcm9tKG5hdGl2ZU9wdGlvbnNTZXQpXG4gICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ucHJvcHMudmFsdWUpXG4gICAgLmpvaW4oJzsnKTtcblxuICByZXR1cm4gKFxuICAgIDxQb3BwZXJQcmltaXRpdmUuUm9vdCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgPFNlbGVjdFByb3ZpZGVyXG4gICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgc2NvcGU9e19fc2NvcGVTZWxlY3R9XG4gICAgICAgIHRyaWdnZXI9e3RyaWdnZXJ9XG4gICAgICAgIG9uVHJpZ2dlckNoYW5nZT17c2V0VHJpZ2dlcn1cbiAgICAgICAgdmFsdWVOb2RlPXt2YWx1ZU5vZGV9XG4gICAgICAgIG9uVmFsdWVOb2RlQ2hhbmdlPXtzZXRWYWx1ZU5vZGV9XG4gICAgICAgIHZhbHVlTm9kZUhhc0NoaWxkcmVuPXt2YWx1ZU5vZGVIYXNDaGlsZHJlbn1cbiAgICAgICAgb25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZT17c2V0VmFsdWVOb2RlSGFzQ2hpbGRyZW59XG4gICAgICAgIGNvbnRlbnRJZD17dXNlSWQoKX1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtzZXRWYWx1ZX1cbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmPXt0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgID5cbiAgICAgICAgPENvbGxlY3Rpb24uUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVTZWxlY3R9PlxuICAgICAgICAgIDxTZWxlY3ROYXRpdmVPcHRpb25zUHJvdmlkZXJcbiAgICAgICAgICAgIHNjb3BlPXtwcm9wcy5fX3Njb3BlU2VsZWN0fVxuICAgICAgICAgICAgb25OYXRpdmVPcHRpb25BZGQ9e1JlYWN0LnVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgc2V0TmF0aXZlT3B0aW9uc1NldCgocHJldikgPT4gbmV3IFNldChwcmV2KS5hZGQob3B0aW9uKSk7XG4gICAgICAgICAgICB9LCBbXSl9XG4gICAgICAgICAgICBvbk5hdGl2ZU9wdGlvblJlbW92ZT17UmVhY3QudXNlQ2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBzZXROYXRpdmVPcHRpb25zU2V0KChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uc1NldCA9IG5ldyBTZXQocHJldik7XG4gICAgICAgICAgICAgICAgb3B0aW9uc1NldC5kZWxldGUob3B0aW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uc1NldDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBbXSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyPlxuICAgICAgICA8L0NvbGxlY3Rpb24uUHJvdmlkZXI+XG5cbiAgICAgICAge2lzRm9ybUNvbnRyb2wgPyAoXG4gICAgICAgICAgPEJ1YmJsZVNlbGVjdFxuICAgICAgICAgICAga2V5PXtuYXRpdmVTZWxlY3RLZXl9XG4gICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIGF1dG9Db21wbGV0ZT17YXV0b0NvbXBsZXRlfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgLy8gZW5hYmxlIGZvcm0gYXV0b2ZpbGxcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBmb3JtPXtmb3JtfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2YWx1ZSA9PT0gdW5kZWZpbmVkID8gPG9wdGlvbiB2YWx1ZT1cIlwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgIHtBcnJheS5mcm9tKG5hdGl2ZU9wdGlvbnNTZXQpfVxuICAgICAgICAgIDwvQnViYmxlU2VsZWN0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU2VsZWN0UHJvdmlkZXI+XG4gICAgPC9Qb3BwZXJQcmltaXRpdmUuUm9vdD5cbiAgKTtcbn07XG5cblNlbGVjdC5kaXNwbGF5TmFtZSA9IFNFTEVDVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RUcmlnZ2VyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRSSUdHRVJfTkFNRSA9ICdTZWxlY3RUcmlnZ2VyJztcblxudHlwZSBTZWxlY3RUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xudHlwZSBQcmltaXRpdmVCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgU2VsZWN0VHJpZ2dlclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgU2VsZWN0VHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0VHJpZ2dlckVsZW1lbnQsIFNlbGVjdFRyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0VHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBkaXNhYmxlZCA9IGZhbHNlLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gY29udGV4dC5kaXNhYmxlZCB8fCBkaXNhYmxlZDtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0Lm9uVHJpZ2dlckNoYW5nZSk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IHBvaW50ZXJUeXBlUmVmID0gUmVhY3QudXNlUmVmPFJlYWN0LlBvaW50ZXJFdmVudFsncG9pbnRlclR5cGUnXT4oJ3RvdWNoJyk7XG5cbiAgICBjb25zdCBbc2VhcmNoUmVmLCBoYW5kbGVUeXBlYWhlYWRTZWFyY2gsIHJlc2V0VHlwZWFoZWFkXSA9IHVzZVR5cGVhaGVhZFNlYXJjaCgoc2VhcmNoKSA9PiB7XG4gICAgICBjb25zdCBlbmFibGVkSXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBlbmFibGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gY29udGV4dC52YWx1ZSk7XG4gICAgICBjb25zdCBuZXh0SXRlbSA9IGZpbmROZXh0SXRlbShlbmFibGVkSXRlbXMsIHNlYXJjaCwgY3VycmVudEl0ZW0pO1xuICAgICAgaWYgKG5leHRJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGV4dC5vblZhbHVlQ2hhbmdlKG5leHRJdGVtLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZU9wZW4gPSAocG9pbnRlckV2ZW50PzogUmVhY3QuTW91c2VFdmVudCB8IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICAgIGNvbnRleHQub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAvLyByZXNldCB0eXBlYWhlYWQgd2hlbiB3ZSBvcGVuXG4gICAgICAgIHJlc2V0VHlwZWFoZWFkKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwb2ludGVyRXZlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICB4OiBNYXRoLnJvdW5kKHBvaW50ZXJFdmVudC5wYWdlWCksXG4gICAgICAgICAgeTogTWF0aC5yb3VuZChwb2ludGVyRXZlbnQucGFnZVkpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFBvcHBlclByaW1pdGl2ZS5BbmNob3IgYXNDaGlsZCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgYXJpYS1jb250cm9scz17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17Y29udGV4dC5vcGVufVxuICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e2NvbnRleHQucmVxdWlyZWR9XG4gICAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCJcbiAgICAgICAgICBkaXI9e2NvbnRleHQuZGlyfVxuICAgICAgICAgIGRhdGEtc3RhdGU9e2NvbnRleHQub3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnfVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2lzRGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPXtzaG91bGRTaG93UGxhY2Vob2xkZXIoY29udGV4dC52YWx1ZSkgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICB7Li4udHJpZ2dlclByb3BzfVxuICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgIC8vIEVuYWJsZSBjb21wYXRpYmlsaXR5IHdpdGggbmF0aXZlIGxhYmVsIG9yIGN1c3RvbSBgTGFiZWxgIFwiY2xpY2tcIiBmb3IgU2FmYXJpOlxuICAgICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vbkNsaWNrLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFdoaWxzdCBicm93c2VycyBnZW5lcmFsbHkgaGF2ZSBubyBpc3N1ZSBmb2N1c2luZyB0aGUgdHJpZ2dlciB3aGVuIGNsaWNraW5nXG4gICAgICAgICAgICAvLyBvbiBhIGxhYmVsLCBTYWZhcmkgc2VlbXMgdG8gc3RydWdnbGUgd2l0aCB0aGUgZmFjdCB0aGF0IHRoZXJlJ3Mgbm8gYG9uQ2xpY2tgLlxuICAgICAgICAgICAgLy8gV2UgZm9yY2UgYGZvY3VzYCBpbiB0aGlzIGNhc2UuIE5vdGU6IHRoaXMgZG9lc24ndCBjcmVhdGUgYW55IG90aGVyIHNpZGUtZWZmZWN0XG4gICAgICAgICAgICAvLyBiZWNhdXNlIHdlIGFyZSBwcmV2ZW50aW5nIGRlZmF1bHQgaW4gYG9uUG9pbnRlckRvd25gIHNvIGVmZmVjdGl2ZWx5XG4gICAgICAgICAgICAvLyB0aGlzIG9ubHkgcnVucyBmb3IgYSBsYWJlbCBcImNsaWNrXCJcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZm9jdXMoKTtcblxuICAgICAgICAgICAgLy8gT3BlbiBvbiBjbGljayB3aGVuIHVzaW5nIGEgdG91Y2ggb3IgcGVuIGRldmljZVxuICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgIT09ICdtb3VzZScpIHtcbiAgICAgICAgICAgICAgaGFuZGxlT3BlbihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25Qb2ludGVyRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnModHJpZ2dlclByb3BzLm9uUG9pbnRlckRvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlO1xuXG4gICAgICAgICAgICAvLyBwcmV2ZW50IGltcGxpY2l0IHBvaW50ZXIgY2FwdHVyZVxuICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BvaW50ZXJldmVudHMzLyNpbXBsaWNpdC1wb2ludGVyLWNhcHR1cmVcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSkge1xuICAgICAgICAgICAgICB0YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG9ubHkgY2FsbCBoYW5kbGVyIGlmIGl0J3MgdGhlIGxlZnQgYnV0dG9uIChtb3VzZWRvd24gZ2V0cyB0cmlnZ2VyZWQgYnkgYWxsIG1vdXNlIGJ1dHRvbnMpXG4gICAgICAgICAgICAvLyBidXQgbm90IHdoZW4gdGhlIGNvbnRyb2wga2V5IGlzIHByZXNzZWQgKGF2b2lkaW5nIE1hY09TIHJpZ2h0IGNsaWNrKTsgYWxzbyBub3QgZm9yIHRvdWNoXG4gICAgICAgICAgICAvLyBkZXZpY2VzIGJlY2F1c2UgdGhhdCB3b3VsZCBvcGVuIHRoZSBtZW51IG9uIHNjcm9sbC4gKHBlbiBkZXZpY2VzIGJlaGF2ZSBhcyB0b3VjaCBvbiBpT1MpLlxuICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBldmVudC5jdHJsS2V5ID09PSBmYWxzZSAmJiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJykge1xuICAgICAgICAgICAgICBoYW5kbGVPcGVuKGV2ZW50KTtcbiAgICAgICAgICAgICAgLy8gcHJldmVudCB0cmlnZ2VyIGZyb20gc3RlYWxpbmcgZm9jdXMgZnJvbSB0aGUgYWN0aXZlIGl0ZW0gYWZ0ZXIgb3BlbmluZy5cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNUeXBpbmdBaGVhZCA9IHNlYXJjaFJlZi5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICAgIGNvbnN0IGlzTW9kaWZpZXJLZXkgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5tZXRhS2V5O1xuICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGV2ZW50LmtleS5sZW5ndGggPT09IDEpIGhhbmRsZVR5cGVhaGVhZFNlYXJjaChldmVudC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChPUEVOX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgICBoYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L1BvcHBlclByaW1pdGl2ZS5BbmNob3I+XG4gICAgKTtcbiAgfVxuKTtcblxuU2VsZWN0VHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0VmFsdWVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVkFMVUVfTkFNRSA9ICdTZWxlY3RWYWx1ZSc7XG5cbnR5cGUgU2VsZWN0VmFsdWVFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xudHlwZSBQcmltaXRpdmVTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbmludGVyZmFjZSBTZWxlY3RWYWx1ZVByb3BzIGV4dGVuZHMgT21pdDxQcmltaXRpdmVTcGFuUHJvcHMsICdwbGFjZWhvbGRlcic+IHtcbiAgcGxhY2Vob2xkZXI/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmNvbnN0IFNlbGVjdFZhbHVlID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RWYWx1ZUVsZW1lbnQsIFNlbGVjdFZhbHVlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFZhbHVlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAvLyBXZSBpZ25vcmUgYGNsYXNzTmFtZWAgYW5kIGBzdHlsZWAgYXMgdGhpcyBwYXJ0IHNob3VsZG4ndCBiZSBzdHlsZWQuXG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBjbGFzc05hbWUsIHN0eWxlLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSAnJywgLi4udmFsdWVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoVkFMVUVfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgeyBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGRyZW4gIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0Lm9uVmFsdWVOb2RlQ2hhbmdlKTtcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlKGhhc0NoaWxkcmVuKTtcbiAgICB9LCBbb25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZSwgaGFzQ2hpbGRyZW5dKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLnNwYW5cbiAgICAgICAgey4uLnZhbHVlUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAvLyB3ZSBkb24ndCB3YW50IGV2ZW50cyBmcm9tIHRoZSBwb3J0YWxsZWQgYFNlbGVjdFZhbHVlYCBjaGlsZHJlbiB0byBidWJibGVcbiAgICAgICAgLy8gdGhyb3VnaCB0aGUgaXRlbSB0aGV5IGNhbWUgZnJvbVxuICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnbm9uZScgfX1cbiAgICAgID5cbiAgICAgICAge3Nob3VsZFNob3dQbGFjZWhvbGRlcihjb250ZXh0LnZhbHVlKSA/IDw+e3BsYWNlaG9sZGVyfTwvPiA6IGNoaWxkcmVufVxuICAgICAgPC9QcmltaXRpdmUuc3Bhbj5cbiAgICApO1xuICB9XG4pO1xuXG5TZWxlY3RWYWx1ZS5kaXNwbGF5TmFtZSA9IFZBTFVFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdEljb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgSUNPTl9OQU1FID0gJ1NlbGVjdEljb24nO1xuXG50eXBlIFNlbGVjdEljb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xuaW50ZXJmYWNlIFNlbGVjdEljb25Qcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RJY29uID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RJY29uRWxlbWVudCwgU2VsZWN0SWNvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJY29uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIGNoaWxkcmVuLCAuLi5pY29uUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLnNwYW4gYXJpYS1oaWRkZW4gey4uLmljb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9PlxuICAgICAgICB7Y2hpbGRyZW4gfHwgJ+KWvCd9XG4gICAgICA8L1ByaW1pdGl2ZS5zcGFuPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEljb24uZGlzcGxheU5hbWUgPSBJQ09OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdTZWxlY3RQb3J0YWwnO1xuXG50eXBlIFBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3J0YWxQcmltaXRpdmU+O1xuaW50ZXJmYWNlIFNlbGVjdFBvcnRhbFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAqL1xuICBjb250YWluZXI/OiBQb3J0YWxQcm9wc1snY29udGFpbmVyJ107XG59XG5cbmNvbnN0IFNlbGVjdFBvcnRhbDogUmVhY3QuRkM8U2VsZWN0UG9ydGFsUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RQb3J0YWxQcm9wcz4pID0+IHtcbiAgcmV0dXJuIDxQb3J0YWxQcmltaXRpdmUgYXNDaGlsZCB7Li4ucHJvcHN9IC8+O1xufTtcblxuU2VsZWN0UG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdENvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1NlbGVjdENvbnRlbnQnO1xuXG50eXBlIFNlbGVjdENvbnRlbnRFbGVtZW50ID0gU2VsZWN0Q29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIFNlbGVjdENvbnRlbnRQcm9wcyBleHRlbmRzIFNlbGVjdENvbnRlbnRJbXBsUHJvcHMge31cblxuY29uc3QgU2VsZWN0Q29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0Q29udGVudEVsZW1lbnQsIFNlbGVjdENvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0Q29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBbZnJhZ21lbnQsIHNldEZyYWdtZW50XSA9IFJlYWN0LnVzZVN0YXRlPERvY3VtZW50RnJhZ21lbnQ+KCk7XG5cbiAgICAvLyBzZXR0aW5nIHRoZSBmcmFnbWVudCBpbiBgdXNlTGF5b3V0RWZmZWN0YCBhcyBgRG9jdW1lbnRGcmFnbWVudGAgZG9lc24ndCBleGlzdCBvbiB0aGUgc2VydmVyXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIHNldEZyYWdtZW50KG5ldyBEb2N1bWVudEZyYWdtZW50KCkpO1xuICAgIH0sIFtdKTtcblxuICAgIGlmICghY29udGV4dC5vcGVuKSB7XG4gICAgICBjb25zdCBmcmFnID0gZnJhZ21lbnQgYXMgRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBmcmFnXG4gICAgICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPFNlbGVjdENvbnRlbnRQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZVNlbGVjdH0+XG4gICAgICAgICAgICAgIDxDb2xsZWN0aW9uLlNsb3Qgc2NvcGU9e3Byb3BzLl9fc2NvcGVTZWxlY3R9PlxuICAgICAgICAgICAgICAgIDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgICAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudFByb3ZpZGVyPixcbiAgICAgICAgICAgIGZyYWdcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gPFNlbGVjdENvbnRlbnRJbXBsIHsuLi5wcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5TZWxlY3RDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RDb250ZW50SW1wbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX01BUkdJTiA9IDEwO1xuXG50eXBlIFNlbGVjdENvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnQ/OiBTZWxlY3RDb250ZW50RWxlbWVudCB8IG51bGw7XG4gIHZpZXdwb3J0PzogU2VsZWN0Vmlld3BvcnRFbGVtZW50IHwgbnVsbDtcbiAgb25WaWV3cG9ydENoYW5nZT86IChub2RlOiBTZWxlY3RWaWV3cG9ydEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuICBpdGVtUmVmQ2FsbGJhY2s/OiAobm9kZTogU2VsZWN0SXRlbUVsZW1lbnQgfCBudWxsLCB2YWx1ZTogc3RyaW5nLCBkaXNhYmxlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2VsZWN0ZWRJdGVtPzogU2VsZWN0SXRlbUVsZW1lbnQgfCBudWxsO1xuICBvbkl0ZW1MZWF2ZT86ICgpID0+IHZvaWQ7XG4gIGl0ZW1UZXh0UmVmQ2FsbGJhY2s/OiAoXG4gICAgbm9kZTogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGRpc2FibGVkOiBib29sZWFuXG4gICkgPT4gdm9pZDtcbiAgZm9jdXNTZWxlY3RlZEl0ZW0/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RlZEl0ZW1UZXh0PzogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbDtcbiAgcG9zaXRpb24/OiBTZWxlY3RDb250ZW50UHJvcHNbJ3Bvc2l0aW9uJ107XG4gIGlzUG9zaXRpb25lZD86IGJvb2xlYW47XG4gIHNlYXJjaFJlZj86IFJlYWN0LlJlZk9iamVjdDxzdHJpbmc+O1xufTtcblxuY29uc3QgW1NlbGVjdENvbnRlbnRQcm92aWRlciwgdXNlU2VsZWN0Q29udGVudENvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG5jb25zdCBDT05URU5UX0lNUExfTkFNRSA9ICdTZWxlY3RDb250ZW50SW1wbCc7XG5cbnR5cGUgU2VsZWN0Q29udGVudEltcGxFbGVtZW50ID0gU2VsZWN0UG9wcGVyUG9zaXRpb25FbGVtZW50IHwgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbkVsZW1lbnQ7XG50eXBlIERpc21pc3NhYmxlTGF5ZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlzbWlzc2FibGVMYXllcj47XG50eXBlIEZvY3VzU2NvcGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRm9jdXNTY29wZT47XG5cbnR5cGUgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzID0geyBvblBsYWNlZD86IFBvcHBlckNvbnRlbnRQcm9wc1snb25QbGFjZWQnXSB9O1xuXG5pbnRlcmZhY2UgU2VsZWN0Q29udGVudEltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8U2VsZWN0UG9wcGVyUG9zaXRpb25Qcm9wcywga2V5b2YgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzPixcbiAgICBPbWl0PFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25Qcm9wcywga2V5b2YgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzPiB7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgZG93bi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uRXNjYXBlS2V5RG93bj86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Fc2NhcGVLZXlEb3duJ107XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBhIGBwb2ludGVyZG93bmAgZXZlbnQgaGFwcGVucyBvdXRzaWRlIG9mIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvblBvaW50ZXJEb3duT3V0c2lkZT86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Qb2ludGVyRG93bk91dHNpZGUnXTtcblxuICBwb3NpdGlvbj86ICdpdGVtLWFsaWduZWQnIHwgJ3BvcHBlcic7XG59XG5cbmNvbnN0IFNlbGVjdENvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RDb250ZW50SW1wbEVsZW1lbnQsIFNlbGVjdENvbnRlbnRJbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdENvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlU2VsZWN0LFxuICAgICAgcG9zaXRpb24gPSAnaXRlbS1hbGlnbmVkJyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIC8vXG4gICAgICAvLyBQb3BwZXJDb250ZW50IHByb3BzXG4gICAgICBzaWRlLFxuICAgICAgc2lkZU9mZnNldCxcbiAgICAgIGFsaWduLFxuICAgICAgYWxpZ25PZmZzZXQsXG4gICAgICBhcnJvd1BhZGRpbmcsXG4gICAgICBjb2xsaXNpb25Cb3VuZGFyeSxcbiAgICAgIGNvbGxpc2lvblBhZGRpbmcsXG4gICAgICBzdGlja3ksXG4gICAgICBoaWRlV2hlbkRldGFjaGVkLFxuICAgICAgYXZvaWRDb2xsaXNpb25zLFxuICAgICAgLy9cbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdENvbnRlbnRJbXBsRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFt2aWV3cG9ydCwgc2V0Vmlld3BvcnRdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0Vmlld3BvcnRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEl0ZW0sIHNldFNlbGVjdGVkSXRlbV0gPSBSZWFjdC51c2VTdGF0ZTxTZWxlY3RJdGVtRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEl0ZW1UZXh0LCBzZXRTZWxlY3RlZEl0ZW1UZXh0XSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdEl0ZW1UZXh0RWxlbWVudCB8IG51bGw+KFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtpc1Bvc2l0aW9uZWQsIHNldElzUG9zaXRpb25lZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZmlyc3RWYWxpZEl0ZW1Gb3VuZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICAvLyBhcmlhLWhpZGUgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNvbnRlbnQgKGJldHRlciBzdXBwb3J0ZWQgZXF1aXZhbGVudCB0byBzZXR0aW5nIGFyaWEtbW9kYWwpXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSByZXR1cm4gaGlkZU90aGVycyhjb250ZW50KTtcbiAgICB9LCBbY29udGVudF0pO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBTZWxlY3RgIG1heSBiZVxuICAgIC8vIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIERPTSAoYmVjYXVzZSBvZiB0aGUgYFBvcnRhbGApXG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcblxuICAgIGNvbnN0IGZvY3VzRmlyc3QgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChjYW5kaWRhdGVzOiBBcnJheTxIVE1MRWxlbWVudCB8IG51bGw+KSA9PiB7XG4gICAgICAgIGNvbnN0IFtmaXJzdEl0ZW0sIC4uLnJlc3RJdGVtc10gPSBnZXRJdGVtcygpLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IFtsYXN0SXRlbV0gPSByZXN0SXRlbXMuc2xpY2UoLTEpO1xuXG4gICAgICAgIGNvbnN0IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgICAgIC8vIGlmIGZvY3VzIGlzIGFscmVhZHkgd2hlcmUgd2Ugd2FudCB0byBnbywgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIGdvaW5nIHRocm91Z2ggdGhlIGNhbmRpZGF0ZXNcbiAgICAgICAgICBpZiAoY2FuZGlkYXRlID09PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICAgICAgICAgIGNhbmRpZGF0ZT8uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgICAgICAgIC8vIHZpZXdwb3J0IG1pZ2h0IGhhdmUgcGFkZGluZyBzbyBzY3JvbGwgdG8gaXRzIGVkZ2VzIHdoZW4gZm9jdXNpbmcgZmlyc3QvbGFzdCBpdGVtcy5cbiAgICAgICAgICBpZiAoY2FuZGlkYXRlID09PSBmaXJzdEl0ZW0gJiYgdmlld3BvcnQpIHZpZXdwb3J0LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gbGFzdEl0ZW0gJiYgdmlld3BvcnQpIHZpZXdwb3J0LnNjcm9sbFRvcCA9IHZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICBjYW5kaWRhdGU/LmZvY3VzKCk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UKSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZ2V0SXRlbXMsIHZpZXdwb3J0XVxuICAgICk7XG5cbiAgICBjb25zdCBmb2N1c1NlbGVjdGVkSXRlbSA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gZm9jdXNGaXJzdChbc2VsZWN0ZWRJdGVtLCBjb250ZW50XSksXG4gICAgICBbZm9jdXNGaXJzdCwgc2VsZWN0ZWRJdGVtLCBjb250ZW50XVxuICAgICk7XG5cbiAgICAvLyBTaW5jZSB0aGlzIGlzIG5vdCBkZXBlbmRlbnQgb24gbGF5b3V0LCB3ZSB3YW50IHRvIGVuc3VyZSB0aGlzIHJ1bnMgYXQgdGhlIHNhbWUgdGltZSBhc1xuICAgIC8vIG90aGVyIGVmZmVjdHMgYWNyb3NzIGNvbXBvbmVudHMuIEhlbmNlIHdoeSB3ZSBkb24ndCBjYWxsIGBmb2N1c1NlbGVjdGVkSXRlbWAgaW5zaWRlIGBwb3NpdGlvbmAuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1Bvc2l0aW9uZWQpIHtcbiAgICAgICAgZm9jdXNTZWxlY3RlZEl0ZW0oKTtcbiAgICAgIH1cbiAgICB9LCBbaXNQb3NpdGlvbmVkLCBmb2N1c1NlbGVjdGVkSXRlbV0pO1xuXG4gICAgLy8gcHJldmVudCBzZWxlY3RpbmcgaXRlbXMgb24gYHBvaW50ZXJ1cGAgaW4gc29tZSBjYXNlcyBhZnRlciBvcGVuaW5nIGZyb20gYHBvaW50ZXJkb3duYFxuICAgIC8vIGFuZCBjbG9zZSBvbiBgcG9pbnRlcnVwYCBvdXRzaWRlLlxuICAgIGNvbnN0IHsgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYgfSA9IGNvbnRleHQ7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIGxldCBwb2ludGVyTW92ZURlbHRhID0geyB4OiAwLCB5OiAwIH07XG5cbiAgICAgICAgY29uc3QgaGFuZGxlUG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICAgIHBvaW50ZXJNb3ZlRGVsdGEgPSB7XG4gICAgICAgICAgICB4OiBNYXRoLmFicyhNYXRoLnJvdW5kKGV2ZW50LnBhZ2VYKSAtICh0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudD8ueCA/PyAwKSksXG4gICAgICAgICAgICB5OiBNYXRoLmFicyhNYXRoLnJvdW5kKGV2ZW50LnBhZ2VZKSAtICh0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudD8ueSA/PyAwKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgcG9pbnRlciBoYXNuJ3QgbW92ZWQgYnkgYSBjZXJ0YWluIHRocmVzaG9sZCB0aGVuIHdlIHByZXZlbnQgc2VsZWN0aW5nIGl0ZW0gb24gYHBvaW50ZXJ1cGAuXG4gICAgICAgICAgaWYgKHBvaW50ZXJNb3ZlRGVsdGEueCA8PSAxMCAmJiBwb2ludGVyTW92ZURlbHRhLnkgPD0gMTApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgaWYgdGhlIGV2ZW50IHdhcyBvdXRzaWRlIHRoZSBjb250ZW50LCBjbG9zZS5cbiAgICAgICAgICAgIGlmICghY29udGVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgaGFuZGxlUG9pbnRlck1vdmUpO1xuICAgICAgICAgIHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIGhhbmRsZVBvaW50ZXJNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXAsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVQb2ludGVyTW92ZSk7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgaGFuZGxlUG9pbnRlclVwLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSwgW2NvbnRlbnQsIG9uT3BlbkNoYW5nZSwgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2UgPSAoKSA9PiBvbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBjbG9zZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2xvc2UpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBjbG9zZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjbG9zZSk7XG4gICAgICB9O1xuICAgIH0sIFtvbk9wZW5DaGFuZ2VdKTtcblxuICAgIGNvbnN0IFtzZWFyY2hSZWYsIGhhbmRsZVR5cGVhaGVhZFNlYXJjaF0gPSB1c2VUeXBlYWhlYWRTZWFyY2goKHNlYXJjaCkgPT4ge1xuICAgICAgY29uc3QgZW5hYmxlZEl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gZW5hYmxlZEl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgICAgY29uc3QgbmV4dEl0ZW0gPSBmaW5kTmV4dEl0ZW0oZW5hYmxlZEl0ZW1zLCBzZWFyY2gsIGN1cnJlbnRJdGVtKTtcbiAgICAgIGlmIChuZXh0SXRlbSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSW1wZXJhdGl2ZSBmb2N1cyBkdXJpbmcga2V5ZG93biBpcyByaXNreSBzbyB3ZSBwcmV2ZW50IFJlYWN0J3MgYmF0Y2hpbmcgdXBkYXRlc1xuICAgICAgICAgKiB0byBhdm9pZCBwb3RlbnRpYWwgYnVncy4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzIwMzMyXG4gICAgICAgICAqL1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IChuZXh0SXRlbS5yZWYuY3VycmVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBpdGVtUmVmQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChub2RlOiBTZWxlY3RJdGVtRWxlbWVudCB8IG51bGwsIHZhbHVlOiBzdHJpbmcsIGRpc2FibGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RWYWxpZEl0ZW0gPSAhZmlyc3RWYWxpZEl0ZW1Gb3VuZFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZDtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZEl0ZW0gPSBjb250ZXh0LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIGlmIChpc1NlbGVjdGVkSXRlbSB8fCBpc0ZpcnN0VmFsaWRJdGVtKSB7XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJdGVtKG5vZGUpO1xuICAgICAgICAgIGlmIChpc0ZpcnN0VmFsaWRJdGVtKSBmaXJzdFZhbGlkSXRlbUZvdW5kUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2NvbnRleHQudmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTGVhdmUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBjb250ZW50Py5mb2N1cygpLCBbY29udGVudF0pO1xuICAgIGNvbnN0IGl0ZW1UZXh0UmVmQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChub2RlOiBTZWxlY3RJdGVtVGV4dEVsZW1lbnQgfCBudWxsLCB2YWx1ZTogc3RyaW5nLCBkaXNhYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBjb25zdCBpc0ZpcnN0VmFsaWRJdGVtID0gIWZpcnN0VmFsaWRJdGVtRm91bmRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQ7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJdGVtID0gY29udGV4dC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQudmFsdWUgPT09IHZhbHVlO1xuICAgICAgICBpZiAoaXNTZWxlY3RlZEl0ZW0gfHwgaXNGaXJzdFZhbGlkSXRlbSkge1xuICAgICAgICAgIHNldFNlbGVjdGVkSXRlbVRleHQobm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY29udGV4dC52YWx1ZV1cbiAgICApO1xuXG4gICAgY29uc3QgU2VsZWN0UG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gJ3BvcHBlcicgPyBTZWxlY3RQb3BwZXJQb3NpdGlvbiA6IFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb247XG5cbiAgICAvLyBTaWxlbnRseSBpZ25vcmUgcHJvcHMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSBgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbmBcbiAgICBjb25zdCBwb3BwZXJDb250ZW50UHJvcHMgPVxuICAgICAgU2VsZWN0UG9zaXRpb24gPT09IFNlbGVjdFBvcHBlclBvc2l0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgc2lkZSxcbiAgICAgICAgICAgIHNpZGVPZmZzZXQsXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICAgIGFsaWduT2Zmc2V0LFxuICAgICAgICAgICAgYXJyb3dQYWRkaW5nLFxuICAgICAgICAgICAgY29sbGlzaW9uQm91bmRhcnksXG4gICAgICAgICAgICBjb2xsaXNpb25QYWRkaW5nLFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgaGlkZVdoZW5EZXRhY2hlZCxcbiAgICAgICAgICAgIGF2b2lkQ29sbGlzaW9ucyxcbiAgICAgICAgICB9XG4gICAgICAgIDoge307XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNlbGVjdENvbnRlbnRQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZVNlbGVjdH1cbiAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgdmlld3BvcnQ9e3ZpZXdwb3J0fVxuICAgICAgICBvblZpZXdwb3J0Q2hhbmdlPXtzZXRWaWV3cG9ydH1cbiAgICAgICAgaXRlbVJlZkNhbGxiYWNrPXtpdGVtUmVmQ2FsbGJhY2t9XG4gICAgICAgIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfVxuICAgICAgICBvbkl0ZW1MZWF2ZT17aGFuZGxlSXRlbUxlYXZlfVxuICAgICAgICBpdGVtVGV4dFJlZkNhbGxiYWNrPXtpdGVtVGV4dFJlZkNhbGxiYWNrfVxuICAgICAgICBmb2N1c1NlbGVjdGVkSXRlbT17Zm9jdXNTZWxlY3RlZEl0ZW19XG4gICAgICAgIHNlbGVjdGVkSXRlbVRleHQ9e3NlbGVjdGVkSXRlbVRleHR9XG4gICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbn1cbiAgICAgICAgaXNQb3NpdGlvbmVkPXtpc1Bvc2l0aW9uZWR9XG4gICAgICAgIHNlYXJjaFJlZj17c2VhcmNoUmVmfVxuICAgICAgPlxuICAgICAgICA8UmVtb3ZlU2Nyb2xsIGFzPXtTbG90fSBhbGxvd1BpbmNoWm9vbT5cbiAgICAgICAgICA8Rm9jdXNTY29wZVxuICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHdlJ3JlIG5vdCB0cmFwcGluZyBvbmNlIGl0J3MgYmVlbiBjbG9zZWRcbiAgICAgICAgICAgIC8vIChjbG9zZWQgIT09IHVubW91bnRlZCB3aGVuIGFuaW1hdGluZyBvdXQpXG4gICAgICAgICAgICB0cmFwcGVkPXtjb250ZXh0Lm9wZW59XG4gICAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgLy8gd2UgcHJldmVudCBvcGVuIGF1dG9mb2N1cyBiZWNhdXNlIHdlIG1hbnVhbGx5IGZvY3VzIHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Vbm1vdW50QXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhvbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29udGV4dC50cmlnZ2VyPy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RGlzbWlzc2FibGVMYXllclxuICAgICAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c1xuICAgICAgICAgICAgICBvbkVzY2FwZUtleURvd249e29uRXNjYXBlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9e29uUG9pbnRlckRvd25PdXRzaWRlfVxuICAgICAgICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgZm9jdXNvdXQgZXZlbnQgbWF5IHN0aWxsIGhhcHBlbi5cbiAgICAgICAgICAgICAgLy8gV2UgbWFrZSBzdXJlIHdlIGRvbid0IHRyaWdnZXIgb3VyIGBvbkRpc21pc3NgIGluIHN1Y2ggY2FzZS5cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgICAgb25EaXNtaXNzPXsoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTZWxlY3RQb3NpdGlvblxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1zdGF0ZT17Y29udGV4dC5vcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCd9XG4gICAgICAgICAgICAgICAgZGlyPXtjb250ZXh0LmRpcn1cbiAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51PXsoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCl9XG4gICAgICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgICAgICB7Li4ucG9wcGVyQ29udGVudFByb3BzfVxuICAgICAgICAgICAgICAgIG9uUGxhY2VkPXsoKSA9PiBzZXRJc1Bvc2l0aW9uZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIC8vIGZsZXggbGF5b3V0IHNvIHdlIGNhbiBwbGFjZSB0aGUgc2Nyb2xsIGJ1dHRvbnMgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIG91dGxpbmUgYnkgZGVmYXVsdCBhcyB0aGUgY29udGVudCBNQVkgZ2V0IGZvY3VzZWRcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMoY29udGVudFByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpc01vZGlmaWVyS2V5ID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleTtcblxuICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0IHNob3VsZCBub3QgYmUgbmF2aWdhdGVkIHVzaW5nIHRhYiBrZXkgc28gd2UgcHJldmVudCBpdFxuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghaXNNb2RpZmllcktleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSBoYW5kbGVUeXBlYWhlYWRTZWFyY2goZXZlbnQua2V5KTtcblxuICAgICAgICAgICAgICAgICAgaWYgKFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNhbmRpZGF0ZU5vZGVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ISk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFsnQXJyb3dVcCcsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlTm9kZXMgPSBjYW5kaWRhdGVOb2Rlcy5zbGljZSgpLnJldmVyc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBTZWxlY3RJdGVtRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjYW5kaWRhdGVOb2Rlcy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEltcGVyYXRpdmUgZm9jdXMgZHVyaW5nIGtleWRvd24gaXMgcmlza3kgc28gd2UgcHJldmVudCBSZWFjdCdzIGJhdGNoaW5nIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICAgICAgICogdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3MuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDMzMlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvRGlzbWlzc2FibGVMYXllcj5cbiAgICAgICAgICA8L0ZvY3VzU2NvcGU+XG4gICAgICAgIDwvUmVtb3ZlU2Nyb2xsPlxuICAgICAgPC9TZWxlY3RDb250ZW50UHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuU2VsZWN0Q29udGVudEltcGwuZGlzcGxheU5hbWUgPSBDT05URU5UX0lNUExfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJVEVNX0FMSUdORURfUE9TSVRJT05fTkFNRSA9ICdTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uJztcblxudHlwZSBTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25Qcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzLCBTZWxlY3RQb3BwZXJQcml2YXRlUHJvcHMge31cblxuY29uc3QgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25FbGVtZW50LFxuICBTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBvblBsYWNlZCwgLi4ucG9wcGVyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZVNlbGVjdENvbnRlbnRDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IFtjb250ZW50V3JhcHBlciwgc2V0Q29udGVudFdyYXBwZXJdID0gUmVhY3QudXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2NvbnRlbnQsIHNldENvbnRlbnRdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IHNob3VsZEV4cGFuZE9uU2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgc2hvdWxkUmVwb3NpdGlvblJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcblxuICBjb25zdCB7IHZpZXdwb3J0LCBzZWxlY3RlZEl0ZW0sIHNlbGVjdGVkSXRlbVRleHQsIGZvY3VzU2VsZWN0ZWRJdGVtIH0gPSBjb250ZW50Q29udGV4dDtcbiAgY29uc3QgcG9zaXRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgY29udGV4dC50cmlnZ2VyICYmXG4gICAgICBjb250ZXh0LnZhbHVlTm9kZSAmJlxuICAgICAgY29udGVudFdyYXBwZXIgJiZcbiAgICAgIGNvbnRlbnQgJiZcbiAgICAgIHZpZXdwb3J0ICYmXG4gICAgICBzZWxlY3RlZEl0ZW0gJiZcbiAgICAgIHNlbGVjdGVkSXRlbVRleHRcbiAgICApIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJSZWN0ID0gY29udGV4dC50cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgLy8gIEhvcml6b250YWwgcG9zaXRpb25pbmdcbiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB2YWx1ZU5vZGVSZWN0ID0gY29udGV4dC52YWx1ZU5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpdGVtVGV4dFJlY3QgPSBzZWxlY3RlZEl0ZW1UZXh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBpZiAoY29udGV4dC5kaXIgIT09ICdydGwnKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1UZXh0T2Zmc2V0ID0gaXRlbVRleHRSZWN0LmxlZnQgLSBjb250ZW50UmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCBsZWZ0ID0gdmFsdWVOb2RlUmVjdC5sZWZ0IC0gaXRlbVRleHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IGxlZnREZWx0YSA9IHRyaWdnZXJSZWN0LmxlZnQgLSBsZWZ0O1xuICAgICAgICBjb25zdCBtaW5Db250ZW50V2lkdGggPSB0cmlnZ2VyUmVjdC53aWR0aCArIGxlZnREZWx0YTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5tYXgobWluQ29udGVudFdpZHRoLCBjb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0RWRnZSA9IHdpbmRvdy5pbm5lcldpZHRoIC0gQ09OVEVOVF9NQVJHSU47XG4gICAgICAgIGNvbnN0IGNsYW1wZWRMZWZ0ID0gY2xhbXAobGVmdCwgW1xuICAgICAgICAgIENPTlRFTlRfTUFSR0lOLFxuICAgICAgICAgIC8vIFByZXZlbnRzIHRoZSBjb250ZW50IGZyb20gZ29pbmcgb2ZmIHRoZSBzdGFydGluZyBlZGdlIG9mIHRoZVxuICAgICAgICAgIC8vIHZpZXdwb3J0LiBJdCBtYXkgc3RpbGwgZ28gb2ZmIHRoZSBlbmRpbmcgZWRnZSwgYnV0IHRoaXMgY2FuIGJlXG4gICAgICAgICAgLy8gY29udHJvbGxlZCBieSB0aGUgdXNlciBzaW5jZSB0aGV5IG1heSB3YW50IHRvIG1hbmFnZSBvdmVyZmxvdyBpbiBhXG4gICAgICAgICAgLy8gc3BlY2lmaWMgd2F5LlxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMDQ5XG4gICAgICAgICAgTWF0aC5tYXgoQ09OVEVOVF9NQVJHSU4sIHJpZ2h0RWRnZSAtIGNvbnRlbnRXaWR0aCksXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1pbldpZHRoID0gbWluQ29udGVudFdpZHRoICsgJ3B4JztcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubGVmdCA9IGNsYW1wZWRMZWZ0ICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGl0ZW1UZXh0T2Zmc2V0ID0gY29udGVudFJlY3QucmlnaHQgLSBpdGVtVGV4dFJlY3QucmlnaHQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSB2YWx1ZU5vZGVSZWN0LnJpZ2h0IC0gaXRlbVRleHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0RGVsdGEgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRyaWdnZXJSZWN0LnJpZ2h0IC0gcmlnaHQ7XG4gICAgICAgIGNvbnN0IG1pbkNvbnRlbnRXaWR0aCA9IHRyaWdnZXJSZWN0LndpZHRoICsgcmlnaHREZWx0YTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5tYXgobWluQ29udGVudFdpZHRoLCBjb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGNvbnN0IGxlZnRFZGdlID0gd2luZG93LmlubmVyV2lkdGggLSBDT05URU5UX01BUkdJTjtcbiAgICAgICAgY29uc3QgY2xhbXBlZFJpZ2h0ID0gY2xhbXAocmlnaHQsIFtcbiAgICAgICAgICBDT05URU5UX01BUkdJTixcbiAgICAgICAgICBNYXRoLm1heChDT05URU5UX01BUkdJTiwgbGVmdEVkZ2UgLSBjb250ZW50V2lkdGgpLFxuICAgICAgICBdKTtcblxuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5taW5XaWR0aCA9IG1pbkNvbnRlbnRXaWR0aCArICdweCc7XG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLnJpZ2h0ID0gY2xhbXBlZFJpZ2h0ICsgJ3B4JztcbiAgICAgIH1cblxuICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIC8vIFZlcnRpY2FsIHBvc2l0aW9uaW5nXG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpO1xuICAgICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gQ09OVEVOVF9NQVJHSU4gKiAyO1xuICAgICAgY29uc3QgaXRlbXNIZWlnaHQgPSB2aWV3cG9ydC5zY3JvbGxIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KTtcbiAgICAgIGNvbnN0IGNvbnRlbnRCb3JkZXJUb3BXaWR0aCA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMuYm9yZGVyVG9wV2lkdGgsIDEwKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nVG9wID0gcGFyc2VJbnQoY29udGVudFN0eWxlcy5wYWRkaW5nVG9wLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGggPSBwYXJzZUludChjb250ZW50U3R5bGVzLmJvcmRlckJvdHRvbVdpZHRoLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50UGFkZGluZ0JvdHRvbSA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgICAgY29uc3QgZnVsbENvbnRlbnRIZWlnaHQgPSBjb250ZW50Qm9yZGVyVG9wV2lkdGggKyBjb250ZW50UGFkZGluZ1RvcCArIGl0ZW1zSGVpZ2h0ICsgY29udGVudFBhZGRpbmdCb3R0b20gKyBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGg7IC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgY29uc3QgbWluQ29udGVudEhlaWdodCA9IE1hdGgubWluKHNlbGVjdGVkSXRlbS5vZmZzZXRIZWlnaHQgKiA1LCBmdWxsQ29udGVudEhlaWdodCk7XG5cbiAgICAgIGNvbnN0IHZpZXdwb3J0U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnQpO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nVG9wID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ1RvcCwgMTApO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nQm90dG9tID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuXG4gICAgICBjb25zdCB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlID0gdHJpZ2dlclJlY3QudG9wICsgdHJpZ2dlclJlY3QuaGVpZ2h0IC8gMiAtIENPTlRFTlRfTUFSR0lOO1xuICAgICAgY29uc3QgdHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZSA9IGF2YWlsYWJsZUhlaWdodCAtIHRvcEVkZ2VUb1RyaWdnZXJNaWRkbGU7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbUhhbGZIZWlnaHQgPSBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICAgIGNvbnN0IGl0ZW1PZmZzZXRNaWRkbGUgPSBzZWxlY3RlZEl0ZW0ub2Zmc2V0VG9wICsgc2VsZWN0ZWRJdGVtSGFsZkhlaWdodDtcbiAgICAgIGNvbnN0IGNvbnRlbnRUb3BUb0l0ZW1NaWRkbGUgPSBjb250ZW50Qm9yZGVyVG9wV2lkdGggKyBjb250ZW50UGFkZGluZ1RvcCArIGl0ZW1PZmZzZXRNaWRkbGU7XG4gICAgICBjb25zdCBpdGVtTWlkZGxlVG9Db250ZW50Qm90dG9tID0gZnVsbENvbnRlbnRIZWlnaHQgLSBjb250ZW50VG9wVG9JdGVtTWlkZGxlO1xuXG4gICAgICBjb25zdCB3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3cgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIDw9IHRvcEVkZ2VUb1RyaWdnZXJNaWRkbGU7XG5cbiAgICAgIGlmICh3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3cpIHtcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbSA9IGl0ZW1zLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRJdGVtID09PSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXS5yZWYuY3VycmVudDtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuYm90dG9tID0gMCArICdweCc7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0Qm90dG9tID1cbiAgICAgICAgICBjb250ZW50LmNsaWVudEhlaWdodCAtIHZpZXdwb3J0Lm9mZnNldFRvcCAtIHZpZXdwb3J0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgY2xhbXBlZFRyaWdnZXJNaWRkbGVUb0JvdHRvbUVkZ2UgPSBNYXRoLm1heChcbiAgICAgICAgICB0cmlnZ2VyTWlkZGxlVG9Cb3R0b21FZGdlLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbUhhbGZIZWlnaHQgK1xuICAgICAgICAgICAgLy8gdmlld3BvcnQgbWlnaHQgaGF2ZSBwYWRkaW5nIGJvdHRvbSwgaW5jbHVkZSBpdCB0byBhdm9pZCBhIHNjcm9sbGFibGUgdmlld3BvcnRcbiAgICAgICAgICAgIChpc0xhc3RJdGVtID8gdmlld3BvcnRQYWRkaW5nQm90dG9tIDogMCkgK1xuICAgICAgICAgICAgdmlld3BvcnRPZmZzZXRCb3R0b20gK1xuICAgICAgICAgICAgY29udGVudEJvcmRlckJvdHRvbVdpZHRoXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGNvbnRlbnRUb3BUb0l0ZW1NaWRkbGUgKyBjbGFtcGVkVHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZTtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RJdGVtID0gaXRlbXMubGVuZ3RoID4gMCAmJiBzZWxlY3RlZEl0ZW0gPT09IGl0ZW1zWzBdLnJlZi5jdXJyZW50O1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS50b3AgPSAwICsgJ3B4JztcbiAgICAgICAgY29uc3QgY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUgPSBNYXRoLm1heChcbiAgICAgICAgICB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlLFxuICAgICAgICAgIGNvbnRlbnRCb3JkZXJUb3BXaWR0aCArXG4gICAgICAgICAgICB2aWV3cG9ydC5vZmZzZXRUb3AgK1xuICAgICAgICAgICAgLy8gdmlld3BvcnQgbWlnaHQgaGF2ZSBwYWRkaW5nIHRvcCwgaW5jbHVkZSBpdCB0byBhdm9pZCBhIHNjcm9sbGFibGUgdmlld3BvcnRcbiAgICAgICAgICAgIChpc0ZpcnN0SXRlbSA/IHZpZXdwb3J0UGFkZGluZ1RvcCA6IDApICtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbUhhbGZIZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUgKyBpdGVtTWlkZGxlVG9Db250ZW50Qm90dG9tO1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIC0gdG9wRWRnZVRvVHJpZ2dlck1pZGRsZSArIHZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICAgIH1cblxuICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubWFyZ2luID0gYCR7Q09OVEVOVF9NQVJHSU59cHggMGA7XG4gICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5taW5IZWlnaHQgPSBtaW5Db250ZW50SGVpZ2h0ICsgJ3B4JztcbiAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1heEhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCArICdweCc7XG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgICBvblBsYWNlZD8uKCk7XG5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIGFkanVzdG1lbnQgdG8gdHJpZ2dlciBcImV4cGFuZCBvbiBzY3JvbGxcIlxuICAgICAgLy8gc28gd2UgZXhwbGljaXRseSB0dXJuIGl0IG9uIG9ubHkgYWZ0ZXIgdGhleSd2ZSByZWdpc3RlcmVkLlxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChzaG91bGRFeHBhbmRPblNjcm9sbFJlZi5jdXJyZW50ID0gdHJ1ZSkpO1xuICAgIH1cbiAgfSwgW1xuICAgIGdldEl0ZW1zLFxuICAgIGNvbnRleHQudHJpZ2dlcixcbiAgICBjb250ZXh0LnZhbHVlTm9kZSxcbiAgICBjb250ZW50V3JhcHBlcixcbiAgICBjb250ZW50LFxuICAgIHZpZXdwb3J0LFxuICAgIHNlbGVjdGVkSXRlbSxcbiAgICBzZWxlY3RlZEl0ZW1UZXh0LFxuICAgIGNvbnRleHQuZGlyLFxuICAgIG9uUGxhY2VkLFxuICBdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gcG9zaXRpb24oKSwgW3Bvc2l0aW9uXSk7XG5cbiAgLy8gY29weSB6LWluZGV4IGZyb20gY29udGVudCB0byB3cmFwcGVyXG4gIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZz4oKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xuICB9LCBbY29udGVudF0pO1xuXG4gIC8vIFdoZW4gdGhlIHZpZXdwb3J0IGJlY29tZXMgc2Nyb2xsYWJsZSBhdCB0aGUgdG9wLCB0aGUgc2Nyb2xsIHVwIGJ1dHRvbiB3aWxsIG1vdW50LlxuICAvLyBCZWNhdXNlIGl0IGlzIHBhcnQgb2YgdGhlIG5vcm1hbCBmbG93LCBpdCB3aWxsIHB1c2ggZG93biB0aGUgdmlld3BvcnQsIHRodXMgdGhyb3dpbmcgb3VyXG4gIC8vIHRyaWdnZXIgPT4gc2VsZWN0ZWRJdGVtIGFsaWdubWVudCBvZmYgYnkgdGhlIGFtb3VudCB0aGUgdmlld3BvcnQgd2FzIHB1c2hlZCBkb3duLlxuICAvLyBXZSB3YWl0IGZvciB0aGlzIHRvIGhhcHBlbiBhbmQgdGhlbiByZS1ydW4gdGhlIHBvc2l0aW5pbmcgbG9naWMgb25lIG1vcmUgdGltZSB0byBhY2NvdW50IGZvciBpdC5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsQnV0dG9uQ2hhbmdlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKG5vZGUgJiYgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID09PSB0cnVlKSB7XG4gICAgICAgIHBvc2l0aW9uKCk7XG4gICAgICAgIGZvY3VzU2VsZWN0ZWRJdGVtPy4oKTtcbiAgICAgICAgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcG9zaXRpb24sIGZvY3VzU2VsZWN0ZWRJdGVtXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFZpZXdwb3J0UHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgY29udGVudFdyYXBwZXI9e2NvbnRlbnRXcmFwcGVyfVxuICAgICAgc2hvdWxkRXhwYW5kT25TY3JvbGxSZWY9e3Nob3VsZEV4cGFuZE9uU2Nyb2xsUmVmfVxuICAgICAgb25TY3JvbGxCdXR0b25DaGFuZ2U9e2hhbmRsZVNjcm9sbEJ1dHRvbkNoYW5nZX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17c2V0Q29udGVudFdyYXBwZXJ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgIHpJbmRleDogY29udGVudFpJbmRleCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICB7Li4ucG9wcGVyUHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQsIGl0IGluY2x1ZGVzIGJvcmRlcnMuIElmIHdlIHdlcmUgdG8gc2V0XG4gICAgICAgICAgICAvLyB0aGUgaGVpZ2h0IHdpdGhvdXQgaGF2aW5nIGBib3hTaXppbmc6ICdib3JkZXItYm94J2AgaXQgd291bGQgYmUgdG9vIGJpZy5cbiAgICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhlIGNvbnRlbnQgZG9lc24ndCBnZXQgdGFsbGVyIHRoYW4gdGhlIHdyYXBwZXJcbiAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgLi4ucG9wcGVyUHJvcHMuc3R5bGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0Vmlld3BvcnRQcm92aWRlcj5cbiAgKTtcbn0pO1xuXG5TZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uLmRpc3BsYXlOYW1lID0gSVRFTV9BTElHTkVEX1BPU0lUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFBvcHBlclBvc2l0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUFBFUl9QT1NJVElPTl9OQU1FID0gJ1NlbGVjdFBvcHBlclBvc2l0aW9uJztcblxudHlwZSBTZWxlY3RQb3BwZXJQb3NpdGlvbkVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQ29udGVudD47XG50eXBlIFBvcHBlckNvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIFNlbGVjdFBvcHBlclBvc2l0aW9uUHJvcHMgZXh0ZW5kcyBQb3BwZXJDb250ZW50UHJvcHMsIFNlbGVjdFBvcHBlclByaXZhdGVQcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RQb3BwZXJQb3NpdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdFBvcHBlclBvc2l0aW9uRWxlbWVudCxcbiAgU2VsZWN0UG9wcGVyUG9zaXRpb25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFBvcHBlclBvc2l0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgYWxpZ24gPSAnc3RhcnQnLFxuICAgIGNvbGxpc2lvblBhZGRpbmcgPSBDT05URU5UX01BUkdJTixcbiAgICAuLi5wb3BwZXJQcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG5cbiAgcmV0dXJuIChcbiAgICA8UG9wcGVyUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHsuLi5wb3BwZXJTY29wZX1cbiAgICAgIHsuLi5wb3BwZXJQcm9wc31cbiAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgYWxpZ249e2FsaWdufVxuICAgICAgY29sbGlzaW9uUGFkZGluZz17Y29sbGlzaW9uUGFkZGluZ31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC8vIEVuc3VyZSBib3JkZXItYm94IGZvciBmbG9hdGluZy11aSBjYWxjdWxhdGlvbnNcbiAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgIC4uLnBvcHBlclByb3BzLnN0eWxlLFxuICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgIC4uLntcbiAgICAgICAgICAnLS1yYWRpeC1zZWxlY3QtY29udGVudC10cmFuc2Zvcm0tb3JpZ2luJzogJ3ZhcigtLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luKScsXG4gICAgICAgICAgJy0tcmFkaXgtc2VsZWN0LWNvbnRlbnQtYXZhaWxhYmxlLXdpZHRoJzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgpJyxcbiAgICAgICAgICAnLS1yYWRpeC1zZWxlY3QtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0JzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0KScsXG4gICAgICAgICAgJy0tcmFkaXgtc2VsZWN0LXRyaWdnZXItd2lkdGgnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aCknLFxuICAgICAgICAgICctLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCknLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICApO1xufSk7XG5cblNlbGVjdFBvcHBlclBvc2l0aW9uLmRpc3BsYXlOYW1lID0gUE9QUEVSX1BPU0lUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFZpZXdwb3J0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2VsZWN0Vmlld3BvcnRDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnRXcmFwcGVyPzogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICBzaG91bGRFeHBhbmRPblNjcm9sbFJlZj86IFJlYWN0LlJlZk9iamVjdDxib29sZWFuPjtcbiAgb25TY3JvbGxCdXR0b25DaGFuZ2U/OiAobm9kZTogU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xufTtcblxuY29uc3QgW1NlbGVjdFZpZXdwb3J0UHJvdmlkZXIsIHVzZVNlbGVjdFZpZXdwb3J0Q29udGV4dF0gPVxuICBjcmVhdGVTZWxlY3RDb250ZXh0PFNlbGVjdFZpZXdwb3J0Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUsIHt9KTtcblxuY29uc3QgVklFV1BPUlRfTkFNRSA9ICdTZWxlY3RWaWV3cG9ydCc7XG5cbnR5cGUgU2VsZWN0Vmlld3BvcnRFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBTZWxlY3RWaWV3cG9ydFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICBub25jZT86IHN0cmluZztcbn1cblxuY29uc3QgU2VsZWN0Vmlld3BvcnQgPSBSZWFjdC5mb3J3YXJkUmVmPFNlbGVjdFZpZXdwb3J0RWxlbWVudCwgU2VsZWN0Vmlld3BvcnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0Vmlld3BvcnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgbm9uY2UsIC4uLnZpZXdwb3J0UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoVklFV1BPUlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3Qgdmlld3BvcnRDb250ZXh0ID0gdXNlU2VsZWN0Vmlld3BvcnRDb250ZXh0KFZJRVdQT1JUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRDb250ZXh0Lm9uVmlld3BvcnRDaGFuZ2UpO1xuICAgIGNvbnN0IHByZXZTY3JvbGxUb3BSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHsvKiBIaWRlIHNjcm9sbGJhcnMgY3Jvc3MtYnJvd3NlciBhbmQgZW5hYmxlIG1vbWVudHVtIHNjcm9sbCBmb3IgdG91Y2ggZGV2aWNlcyAqL31cbiAgICAgICAgPHN0eWxlXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYFtkYXRhLXJhZGl4LXNlbGVjdC12aWV3cG9ydF17c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7fVtkYXRhLXJhZGl4LXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX1gLFxuICAgICAgICAgIH19XG4gICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAvPlxuICAgICAgICA8Q29sbGVjdGlvbi5TbG90IHNjb3BlPXtfX3Njb3BlU2VsZWN0fT5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgZGF0YS1yYWRpeC1zZWxlY3Qtdmlld3BvcnQ9XCJcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICB7Li4udmlld3BvcnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLy8gd2UgdXNlIHBvc2l0aW9uOiAncmVsYXRpdmUnIGhlcmUgb24gdGhlIGB2aWV3cG9ydGAgc28gdGhhdCB3aGVuIHdlIGNhbGxcbiAgICAgICAgICAgICAgLy8gYHNlbGVjdGVkSXRlbS5vZmZzZXRUb3BgIGluIGNhbGN1bGF0aW9ucywgdGhlIG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnRcbiAgICAgICAgICAgICAgLy8gKGluZGVwZW5kZW50IG9mIHRoZSBzY3JvbGxVcEJ1dHRvbikuXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAvLyBWaWV3cG9ydCBzaG91bGQgb25seSBiZSBzY3JvbGxhYmxlIGluIHRoZSB2ZXJ0aWNhbCBkaXJlY3Rpb24uXG4gICAgICAgICAgICAgIC8vIFRoaXMgd29uJ3Qgd29yayBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzLCBzbyB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgIC8vIHJldmlzaXQgdGhpcyBpZi93aGVuIHRoYXQgaXMgc3VwcG9ydGVkXG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vYmxvZy92ZXJ0aWNhbC1mb3JtLWNvbnRyb2xzXG4gICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuIGF1dG8nLFxuICAgICAgICAgICAgICAuLi52aWV3cG9ydFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uU2Nyb2xsPXtjb21wb3NlRXZlbnRIYW5kbGVycyh2aWV3cG9ydFByb3BzLm9uU2Nyb2xsLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICBjb25zdCB7IGNvbnRlbnRXcmFwcGVyLCBzaG91bGRFeHBhbmRPblNjcm9sbFJlZiB9ID0gdmlld3BvcnRDb250ZXh0O1xuICAgICAgICAgICAgICBpZiAoc2hvdWxkRXhwYW5kT25TY3JvbGxSZWY/LmN1cnJlbnQgJiYgY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxlZEJ5ID0gTWF0aC5hYnMocHJldlNjcm9sbFRvcFJlZi5jdXJyZW50IC0gdmlld3BvcnQuc2Nyb2xsVG9wKTtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsZWRCeSA+IDApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIENPTlRFTlRfTUFSR0lOICogMjtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc01pbkhlaWdodCA9IHBhcnNlRmxvYXQoY29udGVudFdyYXBwZXIuc3R5bGUubWluSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc0hlaWdodCA9IHBhcnNlRmxvYXQoY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZIZWlnaHQgPSBNYXRoLm1heChjc3NNaW5IZWlnaHQsIGNzc0hlaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2SGVpZ2h0IDwgYXZhaWxhYmxlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRIZWlnaHQgPSBwcmV2SGVpZ2h0ICsgc2Nyb2xsZWRCeTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhbXBlZE5leHRIZWlnaHQgPSBNYXRoLm1pbihhdmFpbGFibGVIZWlnaHQsIG5leHRIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmID0gbmV4dEhlaWdodCAtIGNsYW1wZWROZXh0SGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmhlaWdodCA9IGNsYW1wZWROZXh0SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRXcmFwcGVyLnN0eWxlLmJvdHRvbSA9PT0gJzBweCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSBoZWlnaHREaWZmID4gMCA/IGhlaWdodERpZmYgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSB0aGUgY29udGVudCBzdGF5cyBwaW5uZWQgdG8gdGhlIGJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2ZsZXgtZW5kJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgPSB2aWV3cG9ydC5zY3JvbGxUb3A7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdFZpZXdwb3J0LmRpc3BsYXlOYW1lID0gVklFV1BPUlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0R3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgR1JPVVBfTkFNRSA9ICdTZWxlY3RHcm91cCc7XG5cbnR5cGUgU2VsZWN0R3JvdXBDb250ZXh0VmFsdWUgPSB7IGlkOiBzdHJpbmcgfTtcblxuY29uc3QgW1NlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyLCB1c2VTZWxlY3RHcm91cENvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RHcm91cENvbnRleHRWYWx1ZT4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgU2VsZWN0R3JvdXBFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0R3JvdXBQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEdyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RHcm91cEVsZW1lbnQsIFNlbGVjdEdyb3VwUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEdyb3VwUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGdyb3VwSWQgPSB1c2VJZCgpO1xuICAgIHJldHVybiAoXG4gICAgICA8U2VsZWN0R3JvdXBDb250ZXh0UHJvdmlkZXIgc2NvcGU9e19fc2NvcGVTZWxlY3R9IGlkPXtncm91cElkfT5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXYgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PXtncm91cElkfSB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L1NlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEdyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0TGFiZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTEFCRUxfTkFNRSA9ICdTZWxlY3RMYWJlbCc7XG5cbnR5cGUgU2VsZWN0TGFiZWxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0TGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RMYWJlbEVsZW1lbnQsIFNlbGVjdExhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdExhYmVsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGdyb3VwQ29udGV4dCA9IHVzZVNlbGVjdEdyb3VwQ29udGV4dChMQUJFTF9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5kaXYgaWQ9e2dyb3VwQ29udGV4dC5pZH0gey4uLmxhYmVsUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuU2VsZWN0TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdTZWxlY3RJdGVtJztcblxudHlwZSBTZWxlY3RJdGVtQ29udGV4dFZhbHVlID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdGV4dElkOiBzdHJpbmc7XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG9uSXRlbVRleHRDaGFuZ2Uobm9kZTogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG59O1xuXG5jb25zdCBbU2VsZWN0SXRlbUNvbnRleHRQcm92aWRlciwgdXNlU2VsZWN0SXRlbUNvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RJdGVtQ29udGV4dFZhbHVlPihJVEVNX05BTUUpO1xuXG50eXBlIFNlbGVjdEl0ZW1FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRleHRWYWx1ZT86IHN0cmluZztcbn1cblxuY29uc3QgU2VsZWN0SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0SXRlbUVsZW1lbnQsIFNlbGVjdEl0ZW1Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0SXRlbVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVNlbGVjdCxcbiAgICAgIHZhbHVlLFxuICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgIHRleHRWYWx1ZTogdGV4dFZhbHVlUHJvcCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgY29uc3QgW3RleHRWYWx1ZSwgc2V0VGV4dFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHRleHRWYWx1ZVByb3AgPz8gJycpO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+XG4gICAgICBjb250ZW50Q29udGV4dC5pdGVtUmVmQ2FsbGJhY2s/Lihub2RlLCB2YWx1ZSwgZGlzYWJsZWQpXG4gICAgKTtcbiAgICBjb25zdCB0ZXh0SWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHBvaW50ZXJUeXBlUmVmID0gUmVhY3QudXNlUmVmPFJlYWN0LlBvaW50ZXJFdmVudFsncG9pbnRlclR5cGUnXT4oJ3RvdWNoJyk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSAoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRleHQub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQSA8U2VsZWN0Lkl0ZW0gLz4gbXVzdCBoYXZlIGEgdmFsdWUgcHJvcCB0aGF0IGlzIG5vdCBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgaXMgYmVjYXVzZSB0aGUgU2VsZWN0IHZhbHVlIGNhbiBiZSBzZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBzZWxlY3Rpb24gYW5kIHNob3cgdGhlIHBsYWNlaG9sZGVyLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgdGV4dElkPXt0ZXh0SWR9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgIG9uSXRlbVRleHRDaGFuZ2U9e1JlYWN0LnVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgICAgc2V0VGV4dFZhbHVlKChwcmV2VGV4dFZhbHVlKSA9PiBwcmV2VGV4dFZhbHVlIHx8IChub2RlPy50ZXh0Q29udGVudCA/PyAnJykudHJpbSgpKTtcbiAgICAgICAgfSwgW10pfVxuICAgICAgPlxuICAgICAgICA8Q29sbGVjdGlvbi5JdGVtU2xvdFxuICAgICAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgdGV4dFZhbHVlPXt0ZXh0VmFsdWV9XG4gICAgICAgID5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3RleHRJZH1cbiAgICAgICAgICAgIGRhdGEtaGlnaGxpZ2h0ZWQ9e2lzRm9jdXNlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgLy8gYGlzRm9jdXNlZGAgY2F2ZWF0IGZpeGVzIHN0dXR0ZXJpbmcgaW4gVm9pY2VPdmVyXG4gICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc1NlbGVjdGVkICYmIGlzRm9jdXNlZH1cbiAgICAgICAgICAgIGRhdGEtc3RhdGU9e2lzU2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ31cbiAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICB0YWJJbmRleD17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiAtMX1cbiAgICAgICAgICAgIHsuLi5pdGVtUHJvcHN9XG4gICAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbkZvY3VzLCAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSkpfVxuICAgICAgICAgICAgb25CbHVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25CbHVyLCAoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbkNsaWNrLCAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIE9wZW4gb24gY2xpY2sgd2hlbiB1c2luZyBhIHRvdWNoIG9yIHBlbiBkZXZpY2VcbiAgICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgIT09ICdtb3VzZScpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblBvaW50ZXJVcD17Y29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uUG9pbnRlclVwLCAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIFVzaW5nIGEgbW91c2UgeW91IHNob3VsZCBiZSBhYmxlIHRvIGRvIHBvaW50ZXIgZG93biwgbW92ZSB0aHJvdWdoXG4gICAgICAgICAgICAgIC8vIHRoZSBsaXN0LCBhbmQgcmVsZWFzZSB0aGUgcG9pbnRlciBvdmVyIHRoZSBpdGVtIHRvIHNlbGVjdCBpdC5cbiAgICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPT09ICdtb3VzZScpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblBvaW50ZXJEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyRG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgb25Qb2ludGVyTW92ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAvLyBSZW1lbWJlciBwb2ludGVyIHR5cGUgd2hlbiBzbGlkaW5nIG92ZXIgdG8gdGhpcyBpdGVtIGZyb20gYW5vdGhlciBvbmVcbiAgICAgICAgICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlO1xuICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vbkl0ZW1MZWF2ZT8uKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocG9pbnRlclR5cGVSZWYuY3VycmVudCA9PT0gJ21vdXNlJykge1xuICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBvcHRpb24sIGl0J3MgYWNjZXB0YWJsZVxuICAgICAgICAgICAgICAgIC8vIGFzIGl0IG9ubHkgbWVhbnMgaXQgbWlnaHQgc2Nyb2xsIGEgZmV3IHBpeGVscyB3aGVuIHVzaW5nIHRoZSBwb2ludGVyLlxuICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyTGVhdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlPy4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1R5cGluZ0FoZWFkID0gY29udGVudENvbnRleHQuc2VhcmNoUmVmPy5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICAgICAgaWYgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpIHJldHVybjtcbiAgICAgICAgICAgICAgaWYgKFNFTEVDVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgICAvLyBwcmV2ZW50IHBhZ2Ugc2Nyb2xsIGlmIHVzaW5nIHRoZSBzcGFjZSBrZXkgdG8gc2VsZWN0IGFuIGl0ZW1cbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db2xsZWN0aW9uLkl0ZW1TbG90PlxuICAgICAgPC9TZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdEl0ZW1UZXh0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fVEVYVF9OQU1FID0gJ1NlbGVjdEl0ZW1UZXh0JztcblxudHlwZSBTZWxlY3RJdGVtVGV4dEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbVRleHRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RJdGVtVGV4dCA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0SXRlbVRleHRFbGVtZW50LCBTZWxlY3RJdGVtVGV4dFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJdGVtVGV4dFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgLy8gV2UgaWdub3JlIGBjbGFzc05hbWVgIGFuZCBgc3R5bGVgIGFzIHRoaXMgcGFydCBzaG91bGRuJ3QgYmUgc3R5bGVkLlxuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgY2xhc3NOYW1lLCBzdHlsZSwgLi4uaXRlbVRleHRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGl0ZW1Db250ZXh0ID0gdXNlU2VsZWN0SXRlbUNvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IG5hdGl2ZU9wdGlvbnNDb250ZXh0ID0gdXNlU2VsZWN0TmF0aXZlT3B0aW9uc0NvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtpdGVtVGV4dE5vZGUsIHNldEl0ZW1UZXh0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxTZWxlY3RJdGVtVGV4dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoXG4gICAgICBmb3J3YXJkZWRSZWYsXG4gICAgICAobm9kZSkgPT4gc2V0SXRlbVRleHROb2RlKG5vZGUpLFxuICAgICAgaXRlbUNvbnRleHQub25JdGVtVGV4dENoYW5nZSxcbiAgICAgIChub2RlKSA9PiBjb250ZW50Q29udGV4dC5pdGVtVGV4dFJlZkNhbGxiYWNrPy4obm9kZSwgaXRlbUNvbnRleHQudmFsdWUsIGl0ZW1Db250ZXh0LmRpc2FibGVkKVxuICAgICk7XG5cbiAgICBjb25zdCB0ZXh0Q29udGVudCA9IGl0ZW1UZXh0Tm9kZT8udGV4dENvbnRlbnQ7XG4gICAgY29uc3QgbmF0aXZlT3B0aW9uID0gUmVhY3QudXNlTWVtbyhcbiAgICAgICgpID0+IChcbiAgICAgICAgPG9wdGlvbiBrZXk9e2l0ZW1Db250ZXh0LnZhbHVlfSB2YWx1ZT17aXRlbUNvbnRleHQudmFsdWV9IGRpc2FibGVkPXtpdGVtQ29udGV4dC5kaXNhYmxlZH0+XG4gICAgICAgICAge3RleHRDb250ZW50fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICksXG4gICAgICBbaXRlbUNvbnRleHQuZGlzYWJsZWQsIGl0ZW1Db250ZXh0LnZhbHVlLCB0ZXh0Q29udGVudF1cbiAgICApO1xuXG4gICAgY29uc3QgeyBvbk5hdGl2ZU9wdGlvbkFkZCwgb25OYXRpdmVPcHRpb25SZW1vdmUgfSA9IG5hdGl2ZU9wdGlvbnNDb250ZXh0O1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBvbk5hdGl2ZU9wdGlvbkFkZChuYXRpdmVPcHRpb24pO1xuICAgICAgcmV0dXJuICgpID0+IG9uTmF0aXZlT3B0aW9uUmVtb3ZlKG5hdGl2ZU9wdGlvbik7XG4gICAgfSwgW29uTmF0aXZlT3B0aW9uQWRkLCBvbk5hdGl2ZU9wdGlvblJlbW92ZSwgbmF0aXZlT3B0aW9uXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFByaW1pdGl2ZS5zcGFuIGlkPXtpdGVtQ29udGV4dC50ZXh0SWR9IHsuLi5pdGVtVGV4dFByb3BzfSByZWY9e2NvbXBvc2VkUmVmc30gLz5cblxuICAgICAgICB7LyogUG9ydGFsIHRoZSBzZWxlY3QgaXRlbSB0ZXh0IGludG8gdGhlIHRyaWdnZXIgdmFsdWUgbm9kZSAqL31cbiAgICAgICAge2l0ZW1Db250ZXh0LmlzU2VsZWN0ZWQgJiYgY29udGV4dC52YWx1ZU5vZGUgJiYgIWNvbnRleHQudmFsdWVOb2RlSGFzQ2hpbGRyZW5cbiAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChpdGVtVGV4dFByb3BzLmNoaWxkcmVuLCBjb250ZXh0LnZhbHVlTm9kZSlcbiAgICAgICAgICA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5TZWxlY3RJdGVtVGV4dC5kaXNwbGF5TmFtZSA9IElURU1fVEVYVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RJdGVtSW5kaWNhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fSU5ESUNBVE9SX05BTUUgPSAnU2VsZWN0SXRlbUluZGljYXRvcic7XG5cbnR5cGUgU2VsZWN0SXRlbUluZGljYXRvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbUluZGljYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlU3BhblByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEl0ZW1JbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFNlbGVjdEl0ZW1JbmRpY2F0b3JFbGVtZW50LCBTZWxlY3RJdGVtSW5kaWNhdG9yUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEl0ZW1JbmRpY2F0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgLi4uaXRlbUluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBpdGVtQ29udGV4dCA9IHVzZVNlbGVjdEl0ZW1Db250ZXh0KElURU1fSU5ESUNBVE9SX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIHJldHVybiBpdGVtQ29udGV4dC5pc1NlbGVjdGVkID8gKFxuICAgICAgPFByaW1pdGl2ZS5zcGFuIGFyaWEtaGlkZGVuIHsuLi5pdGVtSW5kaWNhdG9yUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICkgOiBudWxsO1xuICB9XG4pO1xuXG5TZWxlY3RJdGVtSW5kaWNhdG9yLmRpc3BsYXlOYW1lID0gSVRFTV9JTkRJQ0FUT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0U2Nyb2xsVXBCdXR0b25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU0NST0xMX1VQX0JVVFRPTl9OQU1FID0gJ1NlbGVjdFNjcm9sbFVwQnV0dG9uJztcblxudHlwZSBTZWxlY3RTY3JvbGxVcEJ1dHRvbkVsZW1lbnQgPSBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudDtcbmludGVyZmFjZSBTZWxlY3RTY3JvbGxVcEJ1dHRvblByb3BzIGV4dGVuZHMgT21pdDxTZWxlY3RTY3JvbGxCdXR0b25JbXBsUHJvcHMsICdvbkF1dG9TY3JvbGwnPiB7fVxuXG5jb25zdCBTZWxlY3RTY3JvbGxVcEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdFNjcm9sbFVwQnV0dG9uRWxlbWVudCxcbiAgU2VsZWN0U2Nyb2xsVXBCdXR0b25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFNjcm9sbFVwQnV0dG9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChTQ1JPTExfVVBfQlVUVE9OX05BTUUsIHByb3BzLl9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCB2aWV3cG9ydENvbnRleHQgPSB1c2VTZWxlY3RWaWV3cG9ydENvbnRleHQoU0NST0xMX1VQX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW2NhblNjcm9sbFVwLCBzZXRDYW5TY3JvbGxVcF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHZpZXdwb3J0Q29udGV4dC5vblNjcm9sbEJ1dHRvbkNoYW5nZSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudENvbnRleHQudmlld3BvcnQgJiYgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IGNvbnRlbnRDb250ZXh0LnZpZXdwb3J0O1xuICAgICAgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBjYW5TY3JvbGxVcCA9IHZpZXdwb3J0LnNjcm9sbFRvcCA+IDA7XG4gICAgICAgIHNldENhblNjcm9sbFVwKGNhblNjcm9sbFVwKTtcbiAgICAgIH1cbiAgICAgIGhhbmRsZVNjcm9sbCgpO1xuICAgICAgdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgIHJldHVybiAoKSA9PiB2aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgIH1cbiAgfSwgW2NvbnRlbnRDb250ZXh0LnZpZXdwb3J0LCBjb250ZW50Q29udGV4dC5pc1Bvc2l0aW9uZWRdKTtcblxuICByZXR1cm4gY2FuU2Nyb2xsVXAgPyAoXG4gICAgPFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgb25BdXRvU2Nyb2xsPXsoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQsIHNlbGVjdGVkSXRlbSB9ID0gY29udGVudENvbnRleHQ7XG4gICAgICAgIGlmICh2aWV3cG9ydCAmJiBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSB2aWV3cG9ydC5zY3JvbGxUb3AgLSBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9fVxuICAgIC8+XG4gICkgOiBudWxsO1xufSk7XG5cblNlbGVjdFNjcm9sbFVwQnV0dG9uLmRpc3BsYXlOYW1lID0gU0NST0xMX1VQX0JVVFRPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RTY3JvbGxEb3duQnV0dG9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FID0gJ1NlbGVjdFNjcm9sbERvd25CdXR0b24nO1xuXG50eXBlIFNlbGVjdFNjcm9sbERvd25CdXR0b25FbGVtZW50ID0gU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvblByb3BzIGV4dGVuZHMgT21pdDxTZWxlY3RTY3JvbGxCdXR0b25JbXBsUHJvcHMsICdvbkF1dG9TY3JvbGwnPiB7fVxuXG5jb25zdCBTZWxlY3RTY3JvbGxEb3duQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvbkVsZW1lbnQsXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZVNlbGVjdENvbnRlbnRDb250ZXh0KFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3Qgdmlld3BvcnRDb250ZXh0ID0gdXNlU2VsZWN0Vmlld3BvcnRDb250ZXh0KFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW2NhblNjcm9sbERvd24sIHNldENhblNjcm9sbERvd25dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCB2aWV3cG9ydENvbnRleHQub25TY3JvbGxCdXR0b25DaGFuZ2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvbnRlbnRDb250ZXh0LnZpZXdwb3J0ICYmIGNvbnRlbnRDb250ZXh0LmlzUG9zaXRpb25lZCkge1xuICAgICAgY29uc3Qgdmlld3BvcnQgPSBjb250ZW50Q29udGV4dC52aWV3cG9ydDtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbCgpIHtcbiAgICAgICAgY29uc3QgbWF4U2Nyb2xsID0gdmlld3BvcnQuc2Nyb2xsSGVpZ2h0IC0gdmlld3BvcnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAvLyB3ZSB1c2UgTWF0aC5jZWlsIGhlcmUgYmVjYXVzZSBpZiB0aGUgVUkgaXMgem9vbWVkLWluXG4gICAgICAgIC8vIGBzY3JvbGxUb3BgIGlzIG5vdCBhbHdheXMgcmVwb3J0ZWQgYXMgYW4gaW50ZWdlclxuICAgICAgICBjb25zdCBjYW5TY3JvbGxEb3duID0gTWF0aC5jZWlsKHZpZXdwb3J0LnNjcm9sbFRvcCkgPCBtYXhTY3JvbGw7XG4gICAgICAgIHNldENhblNjcm9sbERvd24oY2FuU2Nyb2xsRG93bik7XG4gICAgICB9XG4gICAgICBoYW5kbGVTY3JvbGwoKTtcbiAgICAgIHZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICByZXR1cm4gKCkgPT4gdmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICB9XG4gIH0sIFtjb250ZW50Q29udGV4dC52aWV3cG9ydCwgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkXSk7XG5cbiAgcmV0dXJuIGNhblNjcm9sbERvd24gPyAoXG4gICAgPFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgb25BdXRvU2Nyb2xsPXsoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQsIHNlbGVjdGVkSXRlbSB9ID0gY29udGVudENvbnRleHQ7XG4gICAgICAgIGlmICh2aWV3cG9ydCAmJiBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSB2aWV3cG9ydC5zY3JvbGxUb3AgKyBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9fVxuICAgIC8+XG4gICkgOiBudWxsO1xufSk7XG5cblNlbGVjdFNjcm9sbERvd25CdXR0b24uZGlzcGxheU5hbWUgPSBTQ1JPTExfRE9XTl9CVVRUT05fTkFNRTtcblxudHlwZSBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgb25BdXRvU2Nyb2xsKCk6IHZvaWQ7XG59XG5cbmNvbnN0IFNlbGVjdFNjcm9sbEJ1dHRvbkltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudCxcbiAgU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0U2Nyb2xsQnV0dG9uSW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgb25BdXRvU2Nyb2xsLCAuLi5zY3JvbGxJbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoJ1NlbGVjdFNjcm9sbEJ1dHRvbicsIF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBhdXRvU2Nyb2xsVGltZXJSZWYgPSBSZWFjdC51c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlU2VsZWN0KTtcblxuICBjb25zdCBjbGVhckF1dG9TY3JvbGxUaW1lciA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiBjbGVhckF1dG9TY3JvbGxUaW1lcigpO1xuICB9LCBbY2xlYXJBdXRvU2Nyb2xsVGltZXJdKTtcblxuICAvLyBXaGVuIHRoZSB2aWV3cG9ydCBiZWNvbWVzIHNjcm9sbGFibGUgb24gZWl0aGVyIHNpZGUsIHRoZSByZWxldmFudCBzY3JvbGwgYnV0dG9uIHdpbGwgbW91bnQuXG4gIC8vIEJlY2F1c2UgaXQgaXMgcGFydCBvZiB0aGUgbm9ybWFsIGZsb3csIGl0IHdpbGwgcHVzaCBkb3duICh0b3AgYnV0dG9uKSBvciBzaHJpbmsgKGJvdHRvbSBidXR0b24pXG4gIC8vIHRoZSB2aWV3cG9ydCwgcG90ZW50aWFsbHkgY2F1c2luZyB0aGUgYWN0aXZlIGl0ZW0gdG8gbm93IGJlIHBhcnRpYWxseSBvdXQgb2Ygdmlldy5cbiAgLy8gV2UgcmUtcnVuIHRoZSBgc2Nyb2xsSW50b1ZpZXdgIGxvZ2ljIHRvIG1ha2Ugc3VyZSBpdCBzdGF5cyB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSBnZXRJdGVtcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgIGFjdGl2ZUl0ZW0/LnJlZi5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gIH0sIFtnZXRJdGVtc10pO1xuXG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICB7Li4uc2Nyb2xsSW5kaWNhdG9yUHJvcHN9XG4gICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIHN0eWxlPXt7IGZsZXhTaHJpbms6IDAsIC4uLnNjcm9sbEluZGljYXRvclByb3BzLnN0eWxlIH19XG4gICAgICBvblBvaW50ZXJEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhzY3JvbGxJbmRpY2F0b3JQcm9wcy5vblBvaW50ZXJEb3duLCAoKSA9PiB7XG4gICAgICAgIGlmIChhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldEludGVydmFsKG9uQXV0b1Njcm9sbCwgNTApO1xuICAgICAgICB9XG4gICAgICB9KX1cbiAgICAgIG9uUG9pbnRlck1vdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHNjcm9sbEluZGljYXRvclByb3BzLm9uUG9pbnRlck1vdmUsICgpID0+IHtcbiAgICAgICAgY29udGVudENvbnRleHQub25JdGVtTGVhdmU/LigpO1xuICAgICAgICBpZiAoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRJbnRlcnZhbChvbkF1dG9TY3JvbGwsIDUwKTtcbiAgICAgICAgfVxuICAgICAgfSl9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoc2Nyb2xsSW5kaWNhdG9yUHJvcHMub25Qb2ludGVyTGVhdmUsICgpID0+IHtcbiAgICAgICAgY2xlYXJBdXRvU2Nyb2xsVGltZXIoKTtcbiAgICAgIH0pfVxuICAgIC8+XG4gICk7XG59KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ1NlbGVjdFNlcGFyYXRvcic7XG5cbnR5cGUgU2VsZWN0U2VwYXJhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdFNlcGFyYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgU2VsZWN0U2VwYXJhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RTZXBhcmF0b3JFbGVtZW50LCBTZWxlY3RTZXBhcmF0b3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0U2VwYXJhdG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLnNlcGFyYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5kaXYgYXJpYS1oaWRkZW4gey4uLnNlcGFyYXRvclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cblNlbGVjdFNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ1NlbGVjdEFycm93JztcblxudHlwZSBTZWxlY3RBcnJvd0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xudHlwZSBQb3BwZXJBcnJvd1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xuaW50ZXJmYWNlIFNlbGVjdEFycm93UHJvcHMgZXh0ZW5kcyBQb3BwZXJBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RBcnJvd0VsZW1lbnQsIFNlbGVjdEFycm93UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEFycm93UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQVJST1dfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChBUlJPV19OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gY29udGV4dC5vcGVuICYmIGNvbnRlbnRDb250ZXh0LnBvc2l0aW9uID09PSAncG9wcGVyJyA/IChcbiAgICAgIDxQb3BwZXJQcmltaXRpdmUuQXJyb3cgey4uLnBvcHBlclNjb3BlfSB7Li4uYXJyb3dQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgKSA6IG51bGw7XG4gIH1cbik7XG5cblNlbGVjdEFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBzaG91bGRTaG93UGxhY2Vob2xkZXIodmFsdWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5jb25zdCBCdWJibGVTZWxlY3QgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxTZWxlY3RFbGVtZW50LCBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J3NlbGVjdCc+PihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCAuLi5zZWxlY3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEhUTUxTZWxlY3RFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIGNvbnN0IHByZXZWYWx1ZSA9IHVzZVByZXZpb3VzKHZhbHVlKTtcblxuICAgIC8vIEJ1YmJsZSB2YWx1ZSBjaGFuZ2UgdG8gcGFyZW50cyAoZS5nIGZvcm0gY2hhbmdlIGV2ZW50KVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3QgPSByZWYuY3VycmVudCE7XG4gICAgICBjb25zdCBzZWxlY3RQcm90byA9IHdpbmRvdy5IVE1MU2VsZWN0RWxlbWVudC5wcm90b3R5cGU7XG4gICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgc2VsZWN0UHJvdG8sXG4gICAgICAgICd2YWx1ZSdcbiAgICAgICkgYXMgUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgICAgY29uc3Qgc2V0VmFsdWUgPSBkZXNjcmlwdG9yLnNldDtcbiAgICAgIGlmIChwcmV2VmFsdWUgIT09IHZhbHVlICYmIHNldFZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgIHNldFZhbHVlLmNhbGwoc2VsZWN0LCB2YWx1ZSk7XG4gICAgICAgIHNlbGVjdC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LCBbcHJldlZhbHVlLCB2YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogV2UgcHVycG9zZWZ1bGx5IHVzZSBhIGBzZWxlY3RgIGhlcmUgdG8gc3VwcG9ydCBmb3JtIGF1dG9maWxsIGFzIG11Y2hcbiAgICAgKiBhcyBwb3NzaWJsZS5cbiAgICAgKlxuICAgICAqIFdlIHB1cnBvc2VmdWxseSBkbyBub3QgYWRkIHRoZSBgdmFsdWVgIGF0dHJpYnV0ZSBoZXJlIHRvIGFsbG93IHRoZSB2YWx1ZVxuICAgICAqIHRvIGJlIHNldCBwcm9ncmFtbWF0aWNhbGx5IGFuZCBidWJibGUgdG8gYW55IHBhcmVudCBmb3JtIGBvbkNoYW5nZWAgZXZlbnQuXG4gICAgICogQWRkaW5nIHRoZSBgdmFsdWVgIHdpbGwgY2F1c2UgUmVhY3QgdG8gY29uc2lkZXIgdGhlIHByb2dyYW1tYXRpY1xuICAgICAqIGRpc3BhdGNoIGEgZHVwbGljYXRlIGFuZCBpdCB3aWxsIGdldCBzd2FsbG93ZWQuXG4gICAgICpcbiAgICAgKiBXZSB1c2UgYFZpc3VhbGx5SGlkZGVuYCByYXRoZXIgdGhhbiBgZGlzcGxheTogXCJub25lXCJgIGJlY2F1c2UgU2FmYXJpIGF1dG9maWxsXG4gICAgICogd29uJ3Qgd29yayBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaXN1YWxseUhpZGRlbiBhc0NoaWxkPlxuICAgICAgICA8c2VsZWN0IHsuLi5zZWxlY3RQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IGRlZmF1bHRWYWx1ZT17dmFsdWV9IC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuICAgICk7XG4gIH1cbik7XG5cbkJ1YmJsZVNlbGVjdC5kaXNwbGF5TmFtZSA9ICdCdWJibGVTZWxlY3QnO1xuXG5mdW5jdGlvbiB1c2VUeXBlYWhlYWRTZWFyY2gob25TZWFyY2hDaGFuZ2U6IChzZWFyY2g6IHN0cmluZykgPT4gdm9pZCkge1xuICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvblNlYXJjaENoYW5nZSk7XG4gIGNvbnN0IHNlYXJjaFJlZiA9IFJlYWN0LnVzZVJlZignJyk7XG4gIGNvbnN0IHRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuXG4gIGNvbnN0IGhhbmRsZVR5cGVhaGVhZFNlYXJjaCA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoUmVmLmN1cnJlbnQgKyBrZXk7XG4gICAgICBoYW5kbGVTZWFyY2hDaGFuZ2Uoc2VhcmNoKTtcblxuICAgICAgKGZ1bmN0aW9uIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHNlYXJjaFJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIC8vIFJlc2V0IGBzZWFyY2hSZWZgIDEgc2Vjb25kIGFmdGVyIGl0IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJykgdGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHVwZGF0ZVNlYXJjaCgnJyksIDEwMDApO1xuICAgICAgfSkoc2VhcmNoKTtcbiAgICB9LFxuICAgIFtoYW5kbGVTZWFyY2hDaGFuZ2VdXG4gICk7XG5cbiAgY29uc3QgcmVzZXRUeXBlYWhlYWQgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2VhcmNoUmVmLmN1cnJlbnQgPSAnJztcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyUmVmLmN1cnJlbnQpO1xuICB9LCBbXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBbc2VhcmNoUmVmLCBoYW5kbGVUeXBlYWhlYWRTZWFyY2gsIHJlc2V0VHlwZWFoZWFkXSBhcyBjb25zdDtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBcIm1lYXRcIiBvZiB0aGUgdHlwZWFoZWFkIG1hdGNoaW5nIGxvZ2ljLiBJdCB0YWtlcyBpbiBhIGxpc3Qgb2YgaXRlbXMsXG4gKiB0aGUgc2VhcmNoIGFuZCB0aGUgY3VycmVudCBpdGVtLCBhbmQgcmV0dXJucyB0aGUgbmV4dCBpdGVtIChvciBgdW5kZWZpbmVkYCkuXG4gKlxuICogV2Ugbm9ybWFsaXplIHRoZSBzZWFyY2ggYmVjYXVzZSBpZiBhIHVzZXIgaGFzIHJlcGVhdGVkbHkgcHJlc3NlZCBhIGNoYXJhY3RlcixcbiAqIHdlIHdhbnQgdGhlIGV4YWN0IHNhbWUgYmVoYXZpb3IgYXMgaWYgd2Ugb25seSBoYWQgdGhhdCBvbmUgY2hhcmFjdGVyXG4gKiAoaWUuIGN5Y2xlIHRocm91Z2ggaXRlbXMgc3RhcnRpbmcgd2l0aCB0aGF0IGNoYXJhY3RlcilcbiAqXG4gKiBXZSBhbHNvIHJlb3JkZXIgdGhlIGl0ZW1zIGJ5IHdyYXBwaW5nIHRoZSBhcnJheSBhcm91bmQgdGhlIGN1cnJlbnQgaXRlbS5cbiAqIFRoaXMgaXMgc28gd2UgYWx3YXlzIGxvb2sgZm9yd2FyZCBmcm9tIHRoZSBjdXJyZW50IGl0ZW0sIGFuZCBwaWNraW5nIHRoZSBmaXJzdFxuICogaXRlbSB3aWxsIGFsd2F5cyBiZSB0aGUgY29ycmVjdCBvbmUuXG4gKlxuICogRmluYWxseSwgaWYgdGhlIG5vcm1hbGl6ZWQgc2VhcmNoIGlzIGV4YWN0bHkgb25lIGNoYXJhY3Rlciwgd2UgZXhjbHVkZSB0aGVcbiAqIGN1cnJlbnQgaXRlbSBmcm9tIHRoZSB2YWx1ZXMgYmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmUgdGhlIGZpcnN0IHRvIG1hdGNoIGFsd2F5c1xuICogYW5kIGZvY3VzIHdvdWxkIG5ldmVyIG1vdmUuIFRoaXMgaXMgYXMgb3Bwb3NlZCB0byB0aGUgcmVndWxhciBjYXNlLCB3aGVyZSB3ZVxuICogZG9uJ3Qgd2FudCBmb2N1cyB0byBtb3ZlIGlmIHRoZSBjdXJyZW50IGl0ZW0gc3RpbGwgbWF0Y2hlcy5cbiAqL1xuZnVuY3Rpb24gZmluZE5leHRJdGVtPFQgZXh0ZW5kcyB7IHRleHRWYWx1ZTogc3RyaW5nIH0+KFxuICBpdGVtczogVFtdLFxuICBzZWFyY2g6IHN0cmluZyxcbiAgY3VycmVudEl0ZW0/OiBUXG4pIHtcbiAgY29uc3QgaXNSZXBlYXRlZCA9IHNlYXJjaC5sZW5ndGggPiAxICYmIEFycmF5LmZyb20oc2VhcmNoKS5ldmVyeSgoY2hhcikgPT4gY2hhciA9PT0gc2VhcmNoWzBdKTtcbiAgY29uc3Qgbm9ybWFsaXplZFNlYXJjaCA9IGlzUmVwZWF0ZWQgPyBzZWFyY2hbMF0gOiBzZWFyY2g7XG4gIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBjdXJyZW50SXRlbSA/IGl0ZW1zLmluZGV4T2YoY3VycmVudEl0ZW0pIDogLTE7XG4gIGxldCB3cmFwcGVkSXRlbXMgPSB3cmFwQXJyYXkoaXRlbXMsIE1hdGgubWF4KGN1cnJlbnRJdGVtSW5kZXgsIDApKTtcbiAgY29uc3QgZXhjbHVkZUN1cnJlbnRJdGVtID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudEl0ZW0pIHdyYXBwZWRJdGVtcyA9IHdyYXBwZWRJdGVtcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRJdGVtKTtcbiAgY29uc3QgbmV4dEl0ZW0gPSB3cmFwcGVkSXRlbXMuZmluZCgoaXRlbSkgPT5cbiAgICBpdGVtLnRleHRWYWx1ZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgobm9ybWFsaXplZFNlYXJjaC50b0xvd2VyQ2FzZSgpKVxuICApO1xuICByZXR1cm4gbmV4dEl0ZW0gIT09IGN1cnJlbnRJdGVtID8gbmV4dEl0ZW0gOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbmNvbnN0IFJvb3QgPSBTZWxlY3Q7XG5jb25zdCBUcmlnZ2VyID0gU2VsZWN0VHJpZ2dlcjtcbmNvbnN0IFZhbHVlID0gU2VsZWN0VmFsdWU7XG5jb25zdCBJY29uID0gU2VsZWN0SWNvbjtcbmNvbnN0IFBvcnRhbCA9IFNlbGVjdFBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBTZWxlY3RDb250ZW50O1xuY29uc3QgVmlld3BvcnQgPSBTZWxlY3RWaWV3cG9ydDtcbmNvbnN0IEdyb3VwID0gU2VsZWN0R3JvdXA7XG5jb25zdCBMYWJlbCA9IFNlbGVjdExhYmVsO1xuY29uc3QgSXRlbSA9IFNlbGVjdEl0ZW07XG5jb25zdCBJdGVtVGV4dCA9IFNlbGVjdEl0ZW1UZXh0O1xuY29uc3QgSXRlbUluZGljYXRvciA9IFNlbGVjdEl0ZW1JbmRpY2F0b3I7XG5jb25zdCBTY3JvbGxVcEJ1dHRvbiA9IFNlbGVjdFNjcm9sbFVwQnV0dG9uO1xuY29uc3QgU2Nyb2xsRG93bkJ1dHRvbiA9IFNlbGVjdFNjcm9sbERvd25CdXR0b247XG5jb25zdCBTZXBhcmF0b3IgPSBTZWxlY3RTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IFNlbGVjdEFycm93O1xuXG5leHBvcnQge1xuICBjcmVhdGVTZWxlY3RTY29wZSxcbiAgLy9cbiAgU2VsZWN0LFxuICBTZWxlY3RUcmlnZ2VyLFxuICBTZWxlY3RWYWx1ZSxcbiAgU2VsZWN0SWNvbixcbiAgU2VsZWN0UG9ydGFsLFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RWaWV3cG9ydCxcbiAgU2VsZWN0R3JvdXAsXG4gIFNlbGVjdExhYmVsLFxuICBTZWxlY3RJdGVtLFxuICBTZWxlY3RJdGVtVGV4dCxcbiAgU2VsZWN0SXRlbUluZGljYXRvcixcbiAgU2VsZWN0U2Nyb2xsVXBCdXR0b24sXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b24sXG4gIFNlbGVjdFNlcGFyYXRvcixcbiAgU2VsZWN0QXJyb3csXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFZhbHVlLFxuICBJY29uLFxuICBQb3J0YWwsXG4gIENvbnRlbnQsXG4gIFZpZXdwb3J0LFxuICBHcm91cCxcbiAgTGFiZWwsXG4gIEl0ZW0sXG4gIEl0ZW1UZXh0LFxuICBJdGVtSW5kaWNhdG9yLFxuICBTY3JvbGxVcEJ1dHRvbixcbiAgU2Nyb2xsRG93bkJ1dHRvbixcbiAgU2VwYXJhdG9yLFxuICBBcnJvdyxcbn07XG5leHBvcnQgdHlwZSB7XG4gIFNlbGVjdFByb3BzLFxuICBTZWxlY3RUcmlnZ2VyUHJvcHMsXG4gIFNlbGVjdFZhbHVlUHJvcHMsXG4gIFNlbGVjdEljb25Qcm9wcyxcbiAgU2VsZWN0UG9ydGFsUHJvcHMsXG4gIFNlbGVjdENvbnRlbnRQcm9wcyxcbiAgU2VsZWN0Vmlld3BvcnRQcm9wcyxcbiAgU2VsZWN0R3JvdXBQcm9wcyxcbiAgU2VsZWN0TGFiZWxQcm9wcyxcbiAgU2VsZWN0SXRlbVByb3BzLFxuICBTZWxlY3RJdGVtVGV4dFByb3BzLFxuICBTZWxlY3RJdGVtSW5kaWNhdG9yUHJvcHMsXG4gIFNlbGVjdFNjcm9sbFVwQnV0dG9uUHJvcHMsXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wcyxcbiAgU2VsZWN0U2VwYXJhdG9yUHJvcHMsXG4gIFNlbGVjdEFycm93UHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbImhhbmRsZVNjcm9sbCIsImNhblNjcm9sbFVwIiwiY2FuU2Nyb2xsRG93biIsIlJvb3QiLCJDb250ZW50IiwiQXJyb3ciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-select/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-separator/dist/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@radix-ui/react-separator/dist/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Separator: () => (/* binding */ Separator)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/separator/src/Separator.tsx\n\n\n\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2VwYXJhdG9yL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQWdCO0FBQ2hDLFVBQVUsOEVBQThFO0FBQ3hGO0FBQ0E7QUFDQSx1Q0FBdUMsZUFBZSxJQUFJO0FBQzFELHlCQUF5QixzREFBRztBQUM1QixJQUFJLGdFQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zZXBhcmF0b3IvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2VwYXJhdG9yL3NyYy9TZXBhcmF0b3IudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJTZXBhcmF0b3JcIjtcbnZhciBERUZBVUxUX09SSUVOVEFUSU9OID0gXCJob3Jpem9udGFsXCI7XG52YXIgT1JJRU5UQVRJT05TID0gW1wiaG9yaXpvbnRhbFwiLCBcInZlcnRpY2FsXCJdO1xudmFyIFNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBkZWNvcmF0aXZlLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb25Qcm9wID0gREVGQVVMVF9PUklFTlRBVElPTiwgLi4uZG9tUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBvcmllbnRhdGlvbiA9IGlzVmFsaWRPcmllbnRhdGlvbihvcmllbnRhdGlvblByb3ApID8gb3JpZW50YXRpb25Qcm9wIDogREVGQVVMVF9PUklFTlRBVElPTjtcbiAgY29uc3QgYXJpYU9yaWVudGF0aW9uID0gb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IG9yaWVudGF0aW9uIDogdm9pZCAwO1xuICBjb25zdCBzZW1hbnRpY1Byb3BzID0gZGVjb3JhdGl2ZSA/IHsgcm9sZTogXCJub25lXCIgfSA6IHsgXCJhcmlhLW9yaWVudGF0aW9uXCI6IGFyaWFPcmllbnRhdGlvbiwgcm9sZTogXCJzZXBhcmF0b3JcIiB9O1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBQcmltaXRpdmUuZGl2LFxuICAgIHtcbiAgICAgIFwiZGF0YS1vcmllbnRhdGlvblwiOiBvcmllbnRhdGlvbixcbiAgICAgIC4uLnNlbWFudGljUHJvcHMsXG4gICAgICAuLi5kb21Qcm9wcyxcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfVxuICApO1xufSk7XG5TZXBhcmF0b3IuZGlzcGxheU5hbWUgPSBOQU1FO1xuZnVuY3Rpb24gaXNWYWxpZE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKSB7XG4gIHJldHVybiBPUklFTlRBVElPTlMuaW5jbHVkZXMob3JpZW50YXRpb24pO1xufVxudmFyIFJvb3QgPSBTZXBhcmF0b3I7XG5leHBvcnQge1xuICBSb290LFxuICBTZXBhcmF0b3Jcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-separator/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs": /*!**********************************************************!*\ !*** ./node_modules/@radix-ui/react-slot/dist/index.mjs ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNUO0FBQ2xELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0E7QUFDQSwwQkFBMEIseUVBQVc7QUFDckMsS0FBSztBQUNMO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVEsSUFBSSxVQUFVO0FBQ25EO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvU2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgY29uc3Qgc2xvdHRhYmxlID0gY2hpbGRyZW5BcnJheS5maW5kKGlzU2xvdHRhYmxlKTtcbiAgaWYgKHNsb3R0YWJsZSkge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBjaGlsZHJlbkFycmF5Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpO1xuICAgICAgICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW46IFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gUmVhY3QuY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pIDogbnVsbCB9KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XG59KTtcblNsb3QuZGlzcGxheU5hbWUgPSBcIlNsb3RcIjtcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLm1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZWY6IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWZcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/IFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCkgOiBudWxsO1xufSk7XG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xudmFyIFNsb3R0YWJsZSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gaXNTbG90dGFibGUoY2hpbGQpIHtcbiAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSBTbG90dGFibGU7XG59XG5mdW5jdGlvbiBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICBjb25zdCBvdmVycmlkZVByb3BzID0geyAuLi5jaGlsZFByb3BzIH07XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcykge1xuICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcbiAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY2hpbGRQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgICAgc2xvdFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoc2xvdFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHNsb3RQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHsgLi4uc2xvdFByb3BWYWx1ZSwgLi4uY2hpbGRQcm9wVmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtzbG90UHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyAuLi5zbG90UHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5yZWY7XG4gIH1cbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKT8uZ2V0O1xuICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWYgfHwgZWxlbWVudC5yZWY7XG59XG52YXIgUm9vdCA9IFNsb3Q7XG5leHBvcnQge1xuICBSb290LFxuICBTbG90LFxuICBTbG90dGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs": /*!**********************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-callback-ref/src/useCallbackRef.tsx\n\nfunction useCallbackRef(callback) {\n const callbackRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n callbackRef.current = callback;\n });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLEVBQUUsNENBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1jYWxsYmFjay1yZWYvc3JjL3VzZUNhbGxiYWNrUmVmLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiB1c2VDYWxsYmFja1JlZihjYWxsYmFjaykge1xuICBjb25zdCBjYWxsYmFja1JlZiA9IFJlYWN0LnVzZVJlZihjYWxsYmFjayk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrO1xuICB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKC4uLmFyZ3MpID0+IGNhbGxiYWNrUmVmLmN1cnJlbnQ/LiguLi5hcmdzKSwgW10pO1xufVxuZXhwb3J0IHtcbiAgdXNlQ2FsbGJhY2tSZWZcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs": /*!****************************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs ***! \****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useControllableState: () => (/* binding */ useControllableState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-controllable-state/src/useControllableState.tsx\n\n\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n const setValue = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUMrQjtBQUNtQztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHlFQUF5RSx1QkFBdUI7QUFDaEc7QUFDQTtBQUNBLHVCQUF1QixnRkFBYztBQUNyQyxtQkFBbUIsOENBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsMkNBQWM7QUFDMUM7QUFDQSx1QkFBdUIseUNBQVk7QUFDbkMsdUJBQXVCLGdGQUFjO0FBQ3JDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1jb250cm9sbGFibGUtc3RhdGUvc3JjL3VzZUNvbnRyb2xsYWJsZVN0YXRlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuZnVuY3Rpb24gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICBwcm9wLFxuICBkZWZhdWx0UHJvcCxcbiAgb25DaGFuZ2UgPSAoKSA9PiB7XG4gIH1cbn0pIHtcbiAgY29uc3QgW3VuY29udHJvbGxlZFByb3AsIHNldFVuY29udHJvbGxlZFByb3BdID0gdXNlVW5jb250cm9sbGVkU3RhdGUoeyBkZWZhdWx0UHJvcCwgb25DaGFuZ2UgfSk7XG4gIGNvbnN0IGlzQ29udHJvbGxlZCA9IHByb3AgIT09IHZvaWQgMDtcbiAgY29uc3QgdmFsdWUgPSBpc0NvbnRyb2xsZWQgPyBwcm9wIDogdW5jb250cm9sbGVkUHJvcDtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25DaGFuZ2UpO1xuICBjb25zdCBzZXRWYWx1ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChuZXh0VmFsdWUpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc3Qgc2V0dGVyID0gbmV4dFZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZTIgPSB0eXBlb2YgbmV4dFZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyBzZXR0ZXIocHJvcCkgOiBuZXh0VmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZTIgIT09IHByb3ApIGhhbmRsZUNoYW5nZSh2YWx1ZTIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VW5jb250cm9sbGVkUHJvcChuZXh0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2lzQ29udHJvbGxlZCwgcHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcCwgaGFuZGxlQ2hhbmdlXVxuICApO1xuICByZXR1cm4gW3ZhbHVlLCBzZXRWYWx1ZV07XG59XG5mdW5jdGlvbiB1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7XG4gIGRlZmF1bHRQcm9wLFxuICBvbkNoYW5nZVxufSkge1xuICBjb25zdCB1bmNvbnRyb2xsZWRTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKGRlZmF1bHRQcm9wKTtcbiAgY29uc3QgW3ZhbHVlXSA9IHVuY29udHJvbGxlZFN0YXRlO1xuICBjb25zdCBwcmV2VmFsdWVSZWYgPSBSZWFjdC51c2VSZWYodmFsdWUpO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZWYWx1ZVJlZi5jdXJyZW50ICE9PSB2YWx1ZSkge1xuICAgICAgaGFuZGxlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHByZXZWYWx1ZVJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9LCBbdmFsdWUsIHByZXZWYWx1ZVJlZiwgaGFuZGxlQ2hhbmdlXSk7XG4gIHJldHVybiB1bmNvbnRyb2xsZWRTdGF0ZTtcbn1cbmV4cG9ydCB7XG4gIHVzZUNvbnRyb2xsYWJsZVN0YXRlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs": /*!************************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEscapeKeydown: () => (/* binding */ useEscapeKeydown)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\n\n\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onEscapeKeyDownProp);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQ21DO0FBQ2xFO0FBQ0EsMEJBQTBCLGdGQUFjO0FBQ3hDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxlQUFlO0FBQzlFLCtFQUErRSxlQUFlO0FBQzlGLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWVzY2FwZS1rZXlkb3duL3NyYy91c2VFc2NhcGVLZXlkb3duLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuZnVuY3Rpb24gdXNlRXNjYXBlS2V5ZG93bihvbkVzY2FwZUtleURvd25Qcm9wLCBvd25lckRvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnQpIHtcbiAgY29uc3Qgb25Fc2NhcGVLZXlEb3duID0gdXNlQ2FsbGJhY2tSZWYob25Fc2NhcGVLZXlEb3duUHJvcCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICBvbkVzY2FwZUtleURvd24oZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuICgpID0+IG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5RG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9LCBbb25Fc2NhcGVLZXlEb3duLCBvd25lckRvY3VtZW50XSk7XG59XG5leHBvcnQge1xuICB1c2VFc2NhcGVLZXlkb3duXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs": /*!***********************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ useLayoutEffect2)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-layout-effect/src/useLayoutEffect.tsx\n\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : () => {\n};\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUMrQjtBQUMvQix1REFBdUQsa0RBQXFCO0FBQzVFO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1sYXlvdXQtZWZmZWN0L3NyYy91c2VMYXlvdXRFZmZlY3QudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciB1c2VMYXlvdXRFZmZlY3QyID0gQm9vbGVhbihnbG9iYWxUaGlzPy5kb2N1bWVudCkgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiAoKSA9PiB7XG59O1xuZXhwb3J0IHtcbiAgdXNlTGF5b3V0RWZmZWN0MiBhcyB1c2VMYXlvdXRFZmZlY3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-previous/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ usePrevious: () => (/* binding */ usePrevious)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-previous/src/usePrevious.tsx\n\nfunction usePrevious(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef({ value, previous: value });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDK0I7QUFDL0I7QUFDQSxjQUFjLHlDQUFZLEdBQUcsd0JBQXdCO0FBQ3JELFNBQVMsMENBQWE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLXByZXZpb3VzL3NyYy91c2VQcmV2aW91cy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gdXNlUHJldmlvdXModmFsdWUpIHtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKHsgdmFsdWUsIHByZXZpb3VzOiB2YWx1ZSB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHJlZi5jdXJyZW50LnByZXZpb3VzID0gcmVmLmN1cnJlbnQudmFsdWU7XG4gICAgICByZWYuY3VycmVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQucHJldmlvdXM7XG4gIH0sIFt2YWx1ZV0pO1xufVxuZXhwb3J0IHtcbiAgdXNlUHJldmlvdXNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-size/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSize: () => (/* binding */ useSize)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/use-size/src/useSize.tsx\n\n\nfunction useSize(element) {\n const [size, setSize] = react__WEBPACK_IMPORTED_MODULE_0__.useState(void 0);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXNpemUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDK0I7QUFDcUM7QUFDcEU7QUFDQSwwQkFBMEIsMkNBQWM7QUFDeEMsRUFBRSxrRkFBZTtBQUNqQjtBQUNBLGdCQUFnQiwwREFBMEQ7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixlQUFlO0FBQ2pDLE9BQU87QUFDUCx3Q0FBd0MsbUJBQW1CO0FBQzNEO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2Utc2l6ZS9zcmMvdXNlU2l6ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuZnVuY3Rpb24gdXNlU2l6ZShlbGVtZW50KSB7XG4gIGNvbnN0IFtzaXplLCBzZXRTaXplXSA9IFJlYWN0LnVzZVN0YXRlKHZvaWQgMCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHNldFNpemUoeyB3aWR0aDogZWxlbWVudC5vZmZzZXRXaWR0aCwgaGVpZ2h0OiBlbGVtZW50Lm9mZnNldEhlaWdodCB9KTtcbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgbGV0IHdpZHRoO1xuICAgICAgICBsZXQgaGVpZ2h0O1xuICAgICAgICBpZiAoXCJib3JkZXJCb3hTaXplXCIgaW4gZW50cnkpIHtcbiAgICAgICAgICBjb25zdCBib3JkZXJTaXplRW50cnkgPSBlbnRyeVtcImJvcmRlckJveFNpemVcIl07XG4gICAgICAgICAgY29uc3QgYm9yZGVyU2l6ZSA9IEFycmF5LmlzQXJyYXkoYm9yZGVyU2l6ZUVudHJ5KSA/IGJvcmRlclNpemVFbnRyeVswXSA6IGJvcmRlclNpemVFbnRyeTtcbiAgICAgICAgICB3aWR0aCA9IGJvcmRlclNpemVbXCJpbmxpbmVTaXplXCJdO1xuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclNpemVbXCJibG9ja1NpemVcIl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgIGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHNldFNpemUoeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgICAgfSk7XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHsgYm94OiBcImJvcmRlci1ib3hcIiB9KTtcbiAgICAgIHJldHVybiAoKSA9PiByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNpemUodm9pZCAwKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHJldHVybiBzaXplO1xufVxuZXhwb3J0IHtcbiAgdXNlU2l6ZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs": /*!*********************************************************************!*\ !*** ./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ VisuallyHidden: () => (/* binding */ VisuallyHidden)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/visually-hidden/src/VisuallyHidden.tsx\n\n\n\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...props.style\n }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBLHFCQUFxQiw2Q0FBZ0I7QUFDckM7QUFDQSwyQkFBMkIsc0RBQUc7QUFDOUIsTUFBTSxnRUFBUztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3Zpc3VhbGx5LWhpZGRlbi9zcmMvVmlzdWFsbHlIaWRkZW4udHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJWaXN1YWxseUhpZGRlblwiO1xudmFyIFZpc3VhbGx5SGlkZGVuID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL3Njc3MvbWl4aW5zL192aXN1YWxseS1oaWRkZW4uc2Nzc1xuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIG1hcmdpbjogLTEsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgY2xpcDogXCJyZWN0KDAsIDAsIDAsIDApXCIsXG4gICAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgICB3b3JkV3JhcDogXCJub3JtYWxcIixcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblZpc3VhbGx5SGlkZGVuLmRpc3BsYXlOYW1lID0gTkFNRTtcbnZhciBSb290ID0gVmlzdWFsbHlIaWRkZW47XG5leHBvcnQge1xuICBSb290LFxuICBWaXN1YWxseUhpZGRlblxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs": /*!***********************************************************************************!*\ !*** ./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs ***! \***********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ApiProvider: () => (/* binding */ ApiProvider),\n/* harmony export */ QueryStatus: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.QueryStatus),\n/* harmony export */ UNINITIALIZED_VALUE: () => (/* binding */ UNINITIALIZED_VALUE),\n/* harmony export */ _NEVER: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__._NEVER),\n/* harmony export */ buildCreateApi: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.buildCreateApi),\n/* harmony export */ copyWithStructuralSharing: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.copyWithStructuralSharing),\n/* harmony export */ coreModule: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.coreModule),\n/* harmony export */ coreModuleName: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.coreModuleName),\n/* harmony export */ createApi: () => (/* binding */ createApi),\n/* harmony export */ defaultSerializeQueryArgs: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.defaultSerializeQueryArgs),\n/* harmony export */ fakeBaseQuery: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.fakeBaseQuery),\n/* harmony export */ fetchBaseQuery: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.fetchBaseQuery),\n/* harmony export */ reactHooksModule: () => (/* binding */ reactHooksModule),\n/* harmony export */ reactHooksModuleName: () => (/* binding */ reactHooksModuleName),\n/* harmony export */ retry: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.retry),\n/* harmony export */ setupListeners: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.setupListeners),\n/* harmony export */ skipToken: () => (/* reexport safe */ _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reduxjs/toolkit/query */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\");\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ \"(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\");\n/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reselect */ \"(app-pages-browser)/./node_modules/reselect/dist/reselect.mjs\");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/redux/dist/redux.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n// src/query/react/index.ts\n\n\n// src/query/react/module.ts\n\n\n\n\n// src/query/utils/capitalize.ts\nfunction capitalize(str) {\n return str.replace(str[0], str[0].toUpperCase());\n}\n\n// src/query/core/rtkImports.ts\n\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\n\n// src/query/tsHelpers.ts\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/react/buildHooks.ts\n\n\n\n\n\n// src/query/defaultSerializeQueryArgs.ts\nvar cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;\nvar defaultSerializeQueryArgs = ({\n endpointName,\n queryArgs\n}) => {\n let serialized = \"\";\n const cached = cache?.get(queryArgs);\n if (typeof cached === \"string\") {\n serialized = cached;\n } else {\n const stringified = JSON.stringify(queryArgs, (key, value) => {\n value = typeof value === \"bigint\" ? {\n $bigint: value.toString()\n } : value;\n value = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(value) ? Object.keys(value).sort().reduce((acc, key2) => {\n acc[key2] = value[key2];\n return acc;\n }, {}) : value;\n return value;\n });\n if ((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(queryArgs)) {\n cache?.set(queryArgs, stringified);\n }\n serialized = stringified;\n }\n return `${endpointName}(${serialized})`;\n};\n\n// src/query/react/constants.ts\nvar UNINITIALIZED_VALUE = Symbol();\n\n// src/query/react/useSerializedStableValue.ts\n\nfunction useStableQueryArgs(queryArgs, serialize, endpointDefinition, endpointName) {\n const incoming = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n queryArgs,\n serialized: typeof queryArgs == \"object\" ? serialize({\n queryArgs,\n endpointDefinition,\n endpointName\n }) : queryArgs\n }), [queryArgs, serialize, endpointDefinition, endpointName]);\n const cache2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(incoming);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (cache2.current.serialized !== incoming.serialized) {\n cache2.current = incoming;\n }\n }, [incoming]);\n return cache2.current.serialized === incoming.serialized ? cache2.current.queryArgs : queryArgs;\n}\n\n// src/query/react/useShallowStableValue.ts\n\n\nfunction useShallowStableValue(value) {\n const cache2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!(0,react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual)(cache2.current, value)) {\n cache2.current = value;\n }\n }, [value]);\n return (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual)(cache2.current, value) ? cache2.current : value;\n}\n\n// src/query/react/buildHooks.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\nvar noPendingQueryStateSelector = (selected) => {\n if (selected.isUninitialized) {\n return {\n ...selected,\n isUninitialized: false,\n isFetching: true,\n isLoading: selected.data !== void 0 ? false : true,\n status: _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.QueryStatus.pending\n };\n }\n return selected;\n};\nfunction buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks: {\n useDispatch,\n useSelector,\n useStore\n },\n unstable__sideEffectsInRender,\n createSelector: createSelector2\n },\n serializeQueryArgs,\n context\n}) {\n const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n return {\n buildQueryHooks,\n buildMutationHook,\n usePrefetch\n };\n function queryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (queryArgs !== _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken && serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n })) lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0) data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function usePrefetch(endpointName, defaultOptions) {\n const dispatch = useDispatch();\n const stableDefaultOptions = useShallowStableValue(defaultOptions);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {\n ...stableDefaultOptions,\n ...options\n })), [endpointName, dispatch, stableDefaultOptions]);\n }\n function buildQueryHooks(name) {\n const useQuerySubscription = (arg, {\n refetchOnReconnect,\n refetchOnFocus,\n refetchOnMountOrArgChange,\n skip = false,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const subscriptionSelectorsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(void 0);\n if (!subscriptionSelectorsRef.current) {\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n if (true) {\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error( false ? 0 : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);\n }\n }\n subscriptionSelectorsRef.current = returnedValue;\n }\n const stableArg = useStableQueryArgs(\n skip ? _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken : arg,\n // Even if the user provided a per-endpoint `serializeQueryArgs` with\n // a consistent return value, _here_ we want to use the default behavior\n // so we can tell if _anything_ actually changed. Otherwise, we can end up\n // with a case where the query args did change but the serialization doesn't,\n // and then we never try to initiate a refetch.\n defaultSerializeQueryArgs,\n context.endpointDefinitions[name],\n name\n );\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n const lastRenderHadSubscription = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n const promiseRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(void 0);\n let {\n queryCacheKey,\n requestId\n } = promiseRef.current || {};\n let currentRenderHasSubscription = false;\n if (queryCacheKey && requestId) {\n currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n }\n const subscriptionRemoved = !currentRenderHasSubscription && lastRenderHadSubscription.current;\n usePossiblyImmediateEffect(() => {\n lastRenderHadSubscription.current = currentRenderHasSubscription;\n });\n usePossiblyImmediateEffect(() => {\n if (subscriptionRemoved) {\n promiseRef.current = void 0;\n }\n }, [subscriptionRemoved]);\n usePossiblyImmediateEffect(() => {\n const lastPromise = promiseRef.current;\n if (typeof process !== \"undefined\" && \"development\" === \"removeMeOnCompilation\") {}\n if (stableArg === _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken) {\n lastPromise?.unsubscribe();\n promiseRef.current = void 0;\n return;\n }\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (!lastPromise || lastPromise.arg !== stableArg) {\n lastPromise?.unsubscribe();\n const promise = dispatch(initiate(stableArg, {\n subscriptionOptions: stableSubscriptionOptions,\n forceRefetch: refetchOnMountOrArgChange\n }));\n promiseRef.current = promise;\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n return () => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = void 0;\n };\n }, []);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n /**\n * A method to manually refetch data for the query\n */\n refetch: () => {\n if (!promiseRef.current) throw new Error( false ? 0 : \"Cannot refetch a query that has not been started yet.\");\n return promiseRef.current?.refetch();\n }\n }), []);\n };\n const useLazyQuerySubscription = ({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [arg, setArg] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(UNINITIALIZED_VALUE);\n const promiseRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(void 0);\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n usePossiblyImmediateEffect(() => {\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [stableSubscriptionOptions]);\n const subscriptionOptionsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function(arg2, preferCacheValue = false) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n forceRefetch: !preferCacheValue\n }));\n setArg(arg2);\n });\n return promise;\n }, [dispatch, initiate]);\n const reset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n if (promiseRef.current?.queryCacheKey) {\n dispatch(api.internalActions.removeQueryResult({\n queryCacheKey: promiseRef.current?.queryCacheKey\n }));\n }\n }, [dispatch]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n return () => {\n promiseRef?.current?.unsubscribe();\n };\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n trigger(arg, true);\n }\n }, [arg, trigger]);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [trigger, arg, {\n reset\n }], [trigger, arg, reset]);\n };\n const useQueryState = (arg, {\n skip = false,\n selectFromResult\n } = {}) => {\n const {\n select\n } = api.endpoints[name];\n const stableArg = useStableQueryArgs(skip ? _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken : arg, serializeQueryArgs, context.endpointDefinitions[name], name);\n const lastValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(void 0);\n const selectDefaultResult = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => createSelector2([select(stableArg), (_, lastResult) => lastResult, (_) => stableArg], queryStatePreSelector, {\n memoizeOptions: {\n resultEqualityCheck: react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual\n }\n }), [select, stableArg]);\n const querySelector = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => selectFromResult ? createSelector2([selectDefaultResult], selectFromResult, {\n devModeChecks: {\n identityFunctionCheck: \"never\"\n }\n }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n const currentState = useSelector((state) => querySelector(state, lastValue.current), react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);\n const store = useStore();\n const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n useIsomorphicLayoutEffect(() => {\n lastValue.current = newLastValue;\n }, [newLastValue]);\n return currentState;\n };\n return {\n useQueryState,\n useQuerySubscription,\n useLazyQuerySubscription,\n useLazyQuery(options) {\n const [trigger, arg, {\n reset\n }] = useLazyQuerySubscription(options);\n const queryStateResults = useQueryState(arg, {\n ...options,\n skip: arg === UNINITIALIZED_VALUE\n });\n const info = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n lastArg: arg\n }), [arg]);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [trigger, {\n ...queryStateResults,\n reset\n }, info], [trigger, queryStateResults, reset, info]);\n },\n useQuery(arg, options) {\n const querySubscriptionResults = useQuerySubscription(arg, options);\n const queryStateResults = useQueryState(arg, {\n selectFromResult: arg === _reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const {\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n } = queryStateResults;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useDebugValue)({\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n });\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n ...queryStateResults,\n ...querySubscriptionResults\n }), [queryStateResults, querySubscriptionResults]);\n }\n };\n }\n function buildMutationHook(name) {\n return ({\n selectFromResult,\n fixedCacheKey\n } = {}) => {\n const {\n select,\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [promise, setPromise] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => () => {\n if (!promise?.arg.fixedCacheKey) {\n promise?.reset();\n }\n }, [promise]);\n const triggerMutation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function(arg) {\n const promise2 = dispatch(initiate(arg, {\n fixedCacheKey\n }));\n setPromise(promise2);\n return promise2;\n }, [dispatch, initiate, fixedCacheKey]);\n const {\n requestId\n } = promise || {};\n const selectDefaultResult = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => select({\n fixedCacheKey,\n requestId: promise?.requestId\n }), [fixedCacheKey, promise, select]);\n const mutationSelector = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => selectFromResult ? createSelector2([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n const currentState = useSelector(mutationSelector, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);\n const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;\n const reset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n batch(() => {\n if (promise) {\n setPromise(void 0);\n }\n if (fixedCacheKey) {\n dispatch(api.internalActions.removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n }\n });\n }, [dispatch, fixedCacheKey, promise, requestId]);\n const {\n endpointName,\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n } = currentState;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useDebugValue)({\n endpointName,\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n });\n const finalState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n ...currentState,\n originalArgs,\n reset\n }), [currentState, originalArgs, reset]);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [triggerMutation, finalState], [triggerMutation, finalState]);\n };\n }\n}\n\n// src/query/react/module.ts\nvar reactHooksModuleName = /* @__PURE__ */ Symbol();\nvar reactHooksModule = ({\n batch = react_redux__WEBPACK_IMPORTED_MODULE_2__.batch,\n hooks = {\n useDispatch: react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch,\n useSelector: react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector,\n useStore: react_redux__WEBPACK_IMPORTED_MODULE_2__.useStore\n },\n createSelector: createSelector2 = reselect__WEBPACK_IMPORTED_MODULE_4__.createSelector,\n unstable__sideEffectsInRender = false,\n ...rest\n} = {}) => {\n if (true) {\n const hookNames = [\"useDispatch\", \"useSelector\", \"useStore\"];\n let warned = false;\n for (const hookName of hookNames) {\n if (countObjectKeys(rest) > 0) {\n if (rest[hookName]) {\n if (!warned) {\n console.warn(\"As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`\");\n warned = true;\n }\n }\n hooks[hookName] = rest[hookName];\n }\n if (typeof hooks[hookName] !== \"function\") {\n throw new Error( false ? 0 : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(\", \")}.\nHook ${hookName} was either not provided or not a function.`);\n }\n }\n }\n return {\n name: reactHooksModuleName,\n init(api, {\n serializeQueryArgs\n }, context) {\n const anyApi = api;\n const {\n buildQueryHooks,\n buildMutationHook,\n usePrefetch\n } = buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks,\n unstable__sideEffectsInRender,\n createSelector: createSelector2\n },\n serializeQueryArgs,\n context\n });\n safeAssign(anyApi, {\n usePrefetch\n });\n safeAssign(context, {\n batch\n });\n return {\n injectEndpoint(endpointName, definition) {\n if (isQueryDefinition(definition)) {\n const {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n } = buildQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n });\n api[`use${capitalize(endpointName)}Query`] = useQuery;\n api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n } else if (isMutationDefinition(definition)) {\n const useMutation = buildMutationHook(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useMutation\n });\n api[`use${capitalize(endpointName)}Mutation`] = useMutation;\n }\n }\n };\n }\n };\n};\n\n// src/query/react/index.ts\n\n\n// src/query/react/ApiProvider.tsx\n\n\n\n\n\n\nfunction ApiProvider(props) {\n const context = props.context || react_redux__WEBPACK_IMPORTED_MODULE_2__.ReactReduxContext;\n const existingContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(context);\n if (existingContext) {\n throw new Error( false ? 0 : \"Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.\");\n }\n const [store] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__.configureStore)({\n reducer: {\n [props.api.reducerPath]: props.api.reducer\n },\n middleware: (gDM) => gDM().concat(props.api.middleware)\n }));\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => props.setupListeners === false ? void 0 : (0,_reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.setupListeners)(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_redux__WEBPACK_IMPORTED_MODULE_2__.Provider, { store, context }, props.children);\n}\n\n// src/query/react/index.ts\nvar createApi = /* @__PURE__ */ (0,_reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.buildCreateApi)((0,_reduxjs_toolkit_query__WEBPACK_IMPORTED_MODULE_3__.coreModule)(), reactHooksModule());\n\n//# sourceMappingURL=rtk-query-react.modern.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmVkdXhqcy90b29sa2l0L2Rpc3QvcXVlcnkvcmVhY3QvcnRrLXF1ZXJ5LXJlYWN0Lm1vZGVybi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDb0U7O0FBRXBFO0FBQ3NGO0FBQzZDO0FBQ3RFOztBQUU3RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUN1Uzs7QUFFdlM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUN5STtBQUN6RTtBQUMrRTtBQUNuRjs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsY0FBYywrREFBYTtBQUMzQjtBQUNBO0FBQ0EsT0FBTyxJQUFJO0FBQ1g7QUFDQSxLQUFLO0FBQ0wsUUFBUSwrREFBYTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksYUFBYSxHQUFHLFdBQVc7QUFDdkM7O0FBRUE7QUFDQTs7QUFFQTtBQUNtRDtBQUNuRDtBQUNBLG1CQUFtQiw4Q0FBTztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCxpQkFBaUIsNkNBQU07QUFDdkIsRUFBRSxnREFBUztBQUNYO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ21FO0FBQ3hCO0FBQzNDO0FBQ0EsaUJBQWlCLDZDQUFPO0FBQ3hCLEVBQUUsZ0RBQVU7QUFDWixTQUFTLHlEQUFZO0FBQ3JCO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsU0FBUyx5REFBWTtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0VBQWtFLGtEQUFlLEdBQUcsNENBQVU7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsK0RBQVc7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLENBQUM7QUFDRCxvRkFBb0YsNENBQVU7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0Esd0JBQXdCLDZEQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGtEQUFXO0FBQ3RCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFJO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLHVDQUF1Qyw2Q0FBTztBQUM5QztBQUNBO0FBQ0EsWUFBWSxJQUFxQztBQUNqRDtBQUNBLDRCQUE0QixNQUFxQyxHQUFHLENBQTJCLDREQUE0RCxnQkFBZ0I7QUFDM0s7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw2REFBUztBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLHdDQUF3Qyw2Q0FBTztBQUMvQyx5QkFBeUIsNkNBQU87QUFDaEM7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxtQkFBbUIsT0FBTyxvQkFBb0IsYUFBb0IsOEJBQThCLEVBRXZGO0FBQ1QsMEJBQTBCLDZEQUFTO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTSxnREFBVTtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxhQUFhLDhDQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELE1BQXFDLEdBQUcsQ0FBNEI7QUFDdkg7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQUk7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsNEJBQTRCLCtDQUFRO0FBQ3BDLHlCQUF5Qiw2Q0FBTztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AscUNBQXFDLDZDQUFPO0FBQzVDO0FBQ0E7QUFDQSxPQUFPO0FBQ1Asc0JBQXNCLGtEQUFXO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUCxvQkFBb0Isa0RBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQLE1BQU0sZ0RBQVU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU0sZ0RBQVU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLGFBQWEsOENBQVE7QUFDckI7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQUk7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSLGtEQUFrRCw2REFBUztBQUMzRCx3QkFBd0IsNkNBQU87QUFDL0Isa0NBQWtDLDhDQUFRO0FBQzFDO0FBQ0EsK0JBQStCLHFEQUFhO0FBQzVDO0FBQ0EsT0FBTztBQUNQLDRCQUE0Qiw4Q0FBUTtBQUNwQztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsMkZBQTJGLHFEQUFhO0FBQ3hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QscUJBQXFCLDhDQUFRO0FBQzdCO0FBQ0EsU0FBUztBQUNULGVBQWUsOENBQVE7QUFDdkI7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLDZEQUFTO0FBQzdDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLFFBQVEsb0RBQWE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGVBQWUsOENBQVE7QUFDdkI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBSTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLG9DQUFvQywrQ0FBUTtBQUM1QyxNQUFNLGdEQUFVO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCw4QkFBOEIsa0RBQVc7QUFDekM7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxRQUFRO0FBQ1Isa0NBQWtDLDhDQUFRO0FBQzFDO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsK0JBQStCLDhDQUFRO0FBQ3ZDLHlEQUF5RCxxREFBYTtBQUN0RTtBQUNBLG9CQUFvQixrREFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLE1BQU0sb0RBQWE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AseUJBQXlCLDhDQUFRO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxhQUFhLDhDQUFRO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLDhDQUFPO0FBQ2pCO0FBQ0EsaUJBQWlCLG9EQUFhO0FBQzlCLGlCQUFpQixvREFBYTtBQUM5QixjQUFjLGlEQUFVO0FBQ3hCLEdBQUc7QUFDSCxvQ0FBb0Msb0RBQWU7QUFDbkQ7QUFDQTtBQUNBLEVBQUUsSUFBSTtBQUNOLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOElBQThJLFNBQVMsc0NBQXNDO0FBQzdMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixNQUFxQyxHQUFHLENBQTRCLCtDQUErQyxrQkFBa0IsNkJBQTZCLHFCQUFxQjtBQUMvTSxPQUFPLFVBQVU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixzQkFBc0IseUJBQXlCO0FBQy9DLDBCQUEwQix5QkFBeUI7QUFDbkQsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixzQkFBc0IseUJBQXlCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUN1Qzs7QUFFdkM7QUFDc0c7QUFDbkU7QUFDYTtBQUNqQjtBQUMyQjtBQUNGO0FBQ3hEO0FBQ0EsbUNBQW1DLDBEQUFpQjtBQUNwRCwwQkFBMEIsaURBQVU7QUFDcEM7QUFDQSxvQkFBb0IsTUFBcUMsR0FBRyxDQUE0QjtBQUN4RjtBQUNBLGtCQUFrQiwyQ0FBYyxPQUFPLGdFQUFjO0FBQ3JEO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0gsRUFBRSxnREFBVSxpREFBaUQsc0VBQWM7QUFDM0UseUJBQXlCLGdEQUFtQixDQUFDLGlEQUFRLElBQUksZ0JBQWdCO0FBQ3pFOztBQUVBO0FBQ0EsZ0NBQWdDLHNFQUFjLENBQUMsa0VBQVU7QUFPdkQ7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJlZHV4anMvdG9vbGtpdC9kaXN0L3F1ZXJ5L3JlYWN0L3J0ay1xdWVyeS1yZWFjdC5tb2Rlcm4ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9xdWVyeS9yZWFjdC9pbmRleC50c1xuaW1wb3J0IHsgYnVpbGRDcmVhdGVBcGksIGNvcmVNb2R1bGUgfSBmcm9tIFwiQHJlZHV4anMvdG9vbGtpdC9xdWVyeVwiO1xuXG4vLyBzcmMvcXVlcnkvcmVhY3QvbW9kdWxlLnRzXG5pbXBvcnQgeyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlIGFzIF9mb3JtYXRQcm9kRXJyb3JNZXNzYWdlMyB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0XCI7XG5pbXBvcnQgeyBiYXRjaCBhcyByckJhdGNoLCB1c2VEaXNwYXRjaCBhcyByclVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciBhcyByclVzZVNlbGVjdG9yLCB1c2VTdG9yZSBhcyByclVzZVN0b3JlIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciBhcyBfY3JlYXRlU2VsZWN0b3IgfSBmcm9tIFwicmVzZWxlY3RcIjtcblxuLy8gc3JjL3F1ZXJ5L3V0aWxzL2NhcGl0YWxpemUudHNcbmZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShzdHJbMF0sIHN0clswXS50b1VwcGVyQ2FzZSgpKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvcnRrSW1wb3J0cy50c1xuaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBjcmVhdGVTbGljZSwgY3JlYXRlU2VsZWN0b3IsIGNyZWF0ZUFzeW5jVGh1bmssIGNvbWJpbmVSZWR1Y2VycywgY3JlYXRlTmV4dFN0YXRlLCBpc0FueU9mLCBpc0FsbE9mLCBpc0FjdGlvbiwgaXNQZW5kaW5nLCBpc1JlamVjdGVkLCBpc0Z1bGZpbGxlZCwgaXNSZWplY3RlZFdpdGhWYWx1ZSwgaXNBc3luY1RodW5rQWN0aW9uLCBwcmVwYXJlQXV0b0JhdGNoZWQsIFNIT1VMRF9BVVRPQkFUQ0gsIGlzUGxhaW5PYmplY3QsIG5hbm9pZCB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0XCI7XG5cbi8vIHNyYy9xdWVyeS91dGlscy9jb3VudE9iamVjdEtleXMudHNcbmZ1bmN0aW9uIGNvdW50T2JqZWN0S2V5cyhvYmopIHtcbiAgbGV0IGNvdW50ID0gMDtcbiAgZm9yIChjb25zdCBfa2V5IGluIG9iaikge1xuICAgIGNvdW50Kys7XG4gIH1cbiAgcmV0dXJuIGNvdW50O1xufVxuXG4vLyBzcmMvcXVlcnkvZW5kcG9pbnREZWZpbml0aW9ucy50c1xuZnVuY3Rpb24gaXNRdWVyeURlZmluaXRpb24oZSkge1xuICByZXR1cm4gZS50eXBlID09PSBcInF1ZXJ5XCIgLyogcXVlcnkgKi87XG59XG5mdW5jdGlvbiBpc011dGF0aW9uRGVmaW5pdGlvbihlKSB7XG4gIHJldHVybiBlLnR5cGUgPT09IFwibXV0YXRpb25cIiAvKiBtdXRhdGlvbiAqLztcbn1cblxuLy8gc3JjL3F1ZXJ5L3RzSGVscGVycy50c1xuZnVuY3Rpb24gc2FmZUFzc2lnbih0YXJnZXQsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGFyZ2V0LCAuLi5hcmdzKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L3JlYWN0L2J1aWxkSG9va3MudHNcbmltcG9ydCB7IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UgYXMgX2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UsIGZvcm1hdFByb2RFcnJvck1lc3NhZ2UgYXMgX2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UyIH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXRcIjtcbmltcG9ydCB7IFF1ZXJ5U3RhdHVzLCBza2lwVG9rZW4gfSBmcm9tIFwiQHJlZHV4anMvdG9vbGtpdC9xdWVyeVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZURlYnVnVmFsdWUsIHVzZUVmZmVjdCBhcyB1c2VFZmZlY3QzLCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8gYXMgdXNlTWVtbzIsIHVzZVJlZiBhcyB1c2VSZWYzLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc2hhbGxvd0VxdWFsIGFzIHNoYWxsb3dFcXVhbDIgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcblxuLy8gc3JjL3F1ZXJ5L2RlZmF1bHRTZXJpYWxpemVRdWVyeUFyZ3MudHNcbnZhciBjYWNoZSA9IFdlYWtNYXAgPyAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKSA6IHZvaWQgMDtcbnZhciBkZWZhdWx0U2VyaWFsaXplUXVlcnlBcmdzID0gKHtcbiAgZW5kcG9pbnROYW1lLFxuICBxdWVyeUFyZ3Ncbn0pID0+IHtcbiAgbGV0IHNlcmlhbGl6ZWQgPSBcIlwiO1xuICBjb25zdCBjYWNoZWQgPSBjYWNoZT8uZ2V0KHF1ZXJ5QXJncyk7XG4gIGlmICh0eXBlb2YgY2FjaGVkID09PSBcInN0cmluZ1wiKSB7XG4gICAgc2VyaWFsaXplZCA9IGNhY2hlZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZCA9IEpTT04uc3RyaW5naWZ5KHF1ZXJ5QXJncywgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gdHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiID8ge1xuICAgICAgICAkYmlnaW50OiB2YWx1ZS50b1N0cmluZygpXG4gICAgICB9IDogdmFsdWU7XG4gICAgICB2YWx1ZSA9IGlzUGxhaW5PYmplY3QodmFsdWUpID8gT2JqZWN0LmtleXModmFsdWUpLnNvcnQoKS5yZWR1Y2UoKGFjYywga2V5MikgPT4ge1xuICAgICAgICBhY2Nba2V5Ml0gPSB2YWx1ZVtrZXkyXTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KSA6IHZhbHVlO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICAgIGlmIChpc1BsYWluT2JqZWN0KHF1ZXJ5QXJncykpIHtcbiAgICAgIGNhY2hlPy5zZXQocXVlcnlBcmdzLCBzdHJpbmdpZmllZCk7XG4gICAgfVxuICAgIHNlcmlhbGl6ZWQgPSBzdHJpbmdpZmllZDtcbiAgfVxuICByZXR1cm4gYCR7ZW5kcG9pbnROYW1lfSgke3NlcmlhbGl6ZWR9KWA7XG59O1xuXG4vLyBzcmMvcXVlcnkvcmVhY3QvY29uc3RhbnRzLnRzXG52YXIgVU5JTklUSUFMSVpFRF9WQUxVRSA9IFN5bWJvbCgpO1xuXG4vLyBzcmMvcXVlcnkvcmVhY3QvdXNlU2VyaWFsaXplZFN0YWJsZVZhbHVlLnRzXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gdXNlU3RhYmxlUXVlcnlBcmdzKHF1ZXJ5QXJncywgc2VyaWFsaXplLCBlbmRwb2ludERlZmluaXRpb24sIGVuZHBvaW50TmFtZSkge1xuICBjb25zdCBpbmNvbWluZyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICBxdWVyeUFyZ3MsXG4gICAgc2VyaWFsaXplZDogdHlwZW9mIHF1ZXJ5QXJncyA9PSBcIm9iamVjdFwiID8gc2VyaWFsaXplKHtcbiAgICAgIHF1ZXJ5QXJncyxcbiAgICAgIGVuZHBvaW50RGVmaW5pdGlvbixcbiAgICAgIGVuZHBvaW50TmFtZVxuICAgIH0pIDogcXVlcnlBcmdzXG4gIH0pLCBbcXVlcnlBcmdzLCBzZXJpYWxpemUsIGVuZHBvaW50RGVmaW5pdGlvbiwgZW5kcG9pbnROYW1lXSk7XG4gIGNvbnN0IGNhY2hlMiA9IHVzZVJlZihpbmNvbWluZyk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNhY2hlMi5jdXJyZW50LnNlcmlhbGl6ZWQgIT09IGluY29taW5nLnNlcmlhbGl6ZWQpIHtcbiAgICAgIGNhY2hlMi5jdXJyZW50ID0gaW5jb21pbmc7XG4gICAgfVxuICB9LCBbaW5jb21pbmddKTtcbiAgcmV0dXJuIGNhY2hlMi5jdXJyZW50LnNlcmlhbGl6ZWQgPT09IGluY29taW5nLnNlcmlhbGl6ZWQgPyBjYWNoZTIuY3VycmVudC5xdWVyeUFyZ3MgOiBxdWVyeUFyZ3M7XG59XG5cbi8vIHNyYy9xdWVyeS9yZWFjdC91c2VTaGFsbG93U3RhYmxlVmFsdWUudHNcbmltcG9ydCB7IHVzZUVmZmVjdCBhcyB1c2VFZmZlY3QyLCB1c2VSZWYgYXMgdXNlUmVmMiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc2hhbGxvd0VxdWFsIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5mdW5jdGlvbiB1c2VTaGFsbG93U3RhYmxlVmFsdWUodmFsdWUpIHtcbiAgY29uc3QgY2FjaGUyID0gdXNlUmVmMih2YWx1ZSk7XG4gIHVzZUVmZmVjdDIoKCkgPT4ge1xuICAgIGlmICghc2hhbGxvd0VxdWFsKGNhY2hlMi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgIGNhY2hlMi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIHNoYWxsb3dFcXVhbChjYWNoZTIuY3VycmVudCwgdmFsdWUpID8gY2FjaGUyLmN1cnJlbnQgOiB2YWx1ZTtcbn1cblxuLy8gc3JjL3F1ZXJ5L3JlYWN0L2J1aWxkSG9va3MudHNcbnZhciBjYW5Vc2VET00gPSAoKSA9PiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSBcInVuZGVmaW5lZFwiKTtcbnZhciBpc0RPTSA9IC8qIEBfX1BVUkVfXyAqLyBjYW5Vc2VET00oKTtcbnZhciBpc1J1bm5pbmdJblJlYWN0TmF0aXZlID0gKCkgPT4gdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gXCJSZWFjdE5hdGl2ZVwiO1xudmFyIGlzUmVhY3ROYXRpdmUgPSAvKiBAX19QVVJFX18gKi8gaXNSdW5uaW5nSW5SZWFjdE5hdGl2ZSgpO1xudmFyIGdldFVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSAoKSA9PiBpc0RPTSB8fCBpc1JlYWN0TmF0aXZlID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0MztcbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyogQF9fUFVSRV9fICovIGdldFVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKTtcbnZhciBub1BlbmRpbmdRdWVyeVN0YXRlU2VsZWN0b3IgPSAoc2VsZWN0ZWQpID0+IHtcbiAgaWYgKHNlbGVjdGVkLmlzVW5pbml0aWFsaXplZCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3RlZCxcbiAgICAgIGlzVW5pbml0aWFsaXplZDogZmFsc2UsXG4gICAgICBpc0ZldGNoaW5nOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBzZWxlY3RlZC5kYXRhICE9PSB2b2lkIDAgPyBmYWxzZSA6IHRydWUsXG4gICAgICBzdGF0dXM6IFF1ZXJ5U3RhdHVzLnBlbmRpbmdcbiAgICB9O1xuICB9XG4gIHJldHVybiBzZWxlY3RlZDtcbn07XG5mdW5jdGlvbiBidWlsZEhvb2tzKHtcbiAgYXBpLFxuICBtb2R1bGVPcHRpb25zOiB7XG4gICAgYmF0Y2gsXG4gICAgaG9va3M6IHtcbiAgICAgIHVzZURpc3BhdGNoLFxuICAgICAgdXNlU2VsZWN0b3IsXG4gICAgICB1c2VTdG9yZVxuICAgIH0sXG4gICAgdW5zdGFibGVfX3NpZGVFZmZlY3RzSW5SZW5kZXIsXG4gICAgY3JlYXRlU2VsZWN0b3I6IGNyZWF0ZVNlbGVjdG9yMlxuICB9LFxuICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gIGNvbnRleHRcbn0pIHtcbiAgY29uc3QgdXNlUG9zc2libHlJbW1lZGlhdGVFZmZlY3QgPSB1bnN0YWJsZV9fc2lkZUVmZmVjdHNJblJlbmRlciA/IChjYikgPT4gY2IoKSA6IHVzZUVmZmVjdDM7XG4gIHJldHVybiB7XG4gICAgYnVpbGRRdWVyeUhvb2tzLFxuICAgIGJ1aWxkTXV0YXRpb25Ib29rLFxuICAgIHVzZVByZWZldGNoXG4gIH07XG4gIGZ1bmN0aW9uIHF1ZXJ5U3RhdGVQcmVTZWxlY3RvcihjdXJyZW50U3RhdGUsIGxhc3RSZXN1bHQsIHF1ZXJ5QXJncykge1xuICAgIGlmIChsYXN0UmVzdWx0Py5lbmRwb2ludE5hbWUgJiYgY3VycmVudFN0YXRlLmlzVW5pbml0aWFsaXplZCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBlbmRwb2ludE5hbWVcbiAgICAgIH0gPSBsYXN0UmVzdWx0O1xuICAgICAgY29uc3QgZW5kcG9pbnREZWZpbml0aW9uID0gY29udGV4dC5lbmRwb2ludERlZmluaXRpb25zW2VuZHBvaW50TmFtZV07XG4gICAgICBpZiAocXVlcnlBcmdzICE9PSBza2lwVG9rZW4gJiYgc2VyaWFsaXplUXVlcnlBcmdzKHtcbiAgICAgICAgcXVlcnlBcmdzOiBsYXN0UmVzdWx0Lm9yaWdpbmFsQXJncyxcbiAgICAgICAgZW5kcG9pbnREZWZpbml0aW9uLFxuICAgICAgICBlbmRwb2ludE5hbWVcbiAgICAgIH0pID09PSBzZXJpYWxpemVRdWVyeUFyZ3Moe1xuICAgICAgICBxdWVyeUFyZ3MsXG4gICAgICAgIGVuZHBvaW50RGVmaW5pdGlvbixcbiAgICAgICAgZW5kcG9pbnROYW1lXG4gICAgICB9KSkgbGFzdFJlc3VsdCA9IHZvaWQgMDtcbiAgICB9XG4gICAgbGV0IGRhdGEgPSBjdXJyZW50U3RhdGUuaXNTdWNjZXNzID8gY3VycmVudFN0YXRlLmRhdGEgOiBsYXN0UmVzdWx0Py5kYXRhO1xuICAgIGlmIChkYXRhID09PSB2b2lkIDApIGRhdGEgPSBjdXJyZW50U3RhdGUuZGF0YTtcbiAgICBjb25zdCBoYXNEYXRhID0gZGF0YSAhPT0gdm9pZCAwO1xuICAgIGNvbnN0IGlzRmV0Y2hpbmcgPSBjdXJyZW50U3RhdGUuaXNMb2FkaW5nO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9ICghbGFzdFJlc3VsdCB8fCBsYXN0UmVzdWx0LmlzTG9hZGluZyB8fCBsYXN0UmVzdWx0LmlzVW5pbml0aWFsaXplZCkgJiYgIWhhc0RhdGEgJiYgaXNGZXRjaGluZztcbiAgICBjb25zdCBpc1N1Y2Nlc3MgPSBjdXJyZW50U3RhdGUuaXNTdWNjZXNzIHx8IGhhc0RhdGEgJiYgKGlzRmV0Y2hpbmcgJiYgIWxhc3RSZXN1bHQ/LmlzRXJyb3IgfHwgY3VycmVudFN0YXRlLmlzVW5pbml0aWFsaXplZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmN1cnJlbnRTdGF0ZSxcbiAgICAgIGRhdGEsXG4gICAgICBjdXJyZW50RGF0YTogY3VycmVudFN0YXRlLmRhdGEsXG4gICAgICBpc0ZldGNoaW5nLFxuICAgICAgaXNMb2FkaW5nLFxuICAgICAgaXNTdWNjZXNzXG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiB1c2VQcmVmZXRjaChlbmRwb2ludE5hbWUsIGRlZmF1bHRPcHRpb25zKSB7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICAgIGNvbnN0IHN0YWJsZURlZmF1bHRPcHRpb25zID0gdXNlU2hhbGxvd1N0YWJsZVZhbHVlKGRlZmF1bHRPcHRpb25zKTtcbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soKGFyZywgb3B0aW9ucykgPT4gZGlzcGF0Y2goYXBpLnV0aWwucHJlZmV0Y2goZW5kcG9pbnROYW1lLCBhcmcsIHtcbiAgICAgIC4uLnN0YWJsZURlZmF1bHRPcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pKSwgW2VuZHBvaW50TmFtZSwgZGlzcGF0Y2gsIHN0YWJsZURlZmF1bHRPcHRpb25zXSk7XG4gIH1cbiAgZnVuY3Rpb24gYnVpbGRRdWVyeUhvb2tzKG5hbWUpIHtcbiAgICBjb25zdCB1c2VRdWVyeVN1YnNjcmlwdGlvbiA9IChhcmcsIHtcbiAgICAgIHJlZmV0Y2hPblJlY29ubmVjdCxcbiAgICAgIHJlZmV0Y2hPbkZvY3VzLFxuICAgICAgcmVmZXRjaE9uTW91bnRPckFyZ0NoYW5nZSxcbiAgICAgIHNraXAgPSBmYWxzZSxcbiAgICAgIHBvbGxpbmdJbnRlcnZhbCA9IDAsXG4gICAgICBza2lwUG9sbGluZ0lmVW5mb2N1c2VkID0gZmFsc2VcbiAgICB9ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaW5pdGlhdGVcbiAgICAgIH0gPSBhcGkuZW5kcG9pbnRzW25hbWVdO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2VsZWN0b3JzUmVmID0gdXNlUmVmMyh2b2lkIDApO1xuICAgICAgaWYgKCFzdWJzY3JpcHRpb25TZWxlY3RvcnNSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gZGlzcGF0Y2goYXBpLmludGVybmFsQWN0aW9ucy5pbnRlcm5hbF9nZXRSVEtRU3Vic2NyaXB0aW9ucygpKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIGlmICh0eXBlb2YgcmV0dXJuZWRWYWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgcmV0dXJuZWRWYWx1ZT8udHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IF9mb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDM3KSA6IGBXYXJuaW5nOiBNaWRkbGV3YXJlIGZvciBSVEstUXVlcnkgQVBJIGF0IHJlZHVjZXJQYXRoIFwiJHthcGkucmVkdWNlclBhdGh9XCIgaGFzIG5vdCBiZWVuIGFkZGVkIHRvIHRoZSBzdG9yZS5cbiAgICBZb3UgbXVzdCBhZGQgdGhlIG1pZGRsZXdhcmUgZm9yIFJUSy1RdWVyeSB0byBmdW5jdGlvbiBjb3JyZWN0bHkhYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN1YnNjcmlwdGlvblNlbGVjdG9yc1JlZi5jdXJyZW50ID0gcmV0dXJuZWRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YWJsZUFyZyA9IHVzZVN0YWJsZVF1ZXJ5QXJncyhcbiAgICAgICAgc2tpcCA/IHNraXBUb2tlbiA6IGFyZyxcbiAgICAgICAgLy8gRXZlbiBpZiB0aGUgdXNlciBwcm92aWRlZCBhIHBlci1lbmRwb2ludCBgc2VyaWFsaXplUXVlcnlBcmdzYCB3aXRoXG4gICAgICAgIC8vIGEgY29uc2lzdGVudCByZXR1cm4gdmFsdWUsIF9oZXJlXyB3ZSB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAvLyBzbyB3ZSBjYW4gdGVsbCBpZiBfYW55dGhpbmdfIGFjdHVhbGx5IGNoYW5nZWQuIE90aGVyd2lzZSwgd2UgY2FuIGVuZCB1cFxuICAgICAgICAvLyB3aXRoIGEgY2FzZSB3aGVyZSB0aGUgcXVlcnkgYXJncyBkaWQgY2hhbmdlIGJ1dCB0aGUgc2VyaWFsaXphdGlvbiBkb2Vzbid0LFxuICAgICAgICAvLyBhbmQgdGhlbiB3ZSBuZXZlciB0cnkgdG8gaW5pdGlhdGUgYSByZWZldGNoLlxuICAgICAgICBkZWZhdWx0U2VyaWFsaXplUXVlcnlBcmdzLFxuICAgICAgICBjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbbmFtZV0sXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBzdGFibGVTdWJzY3JpcHRpb25PcHRpb25zID0gdXNlU2hhbGxvd1N0YWJsZVZhbHVlKHtcbiAgICAgICAgcmVmZXRjaE9uUmVjb25uZWN0LFxuICAgICAgICByZWZldGNoT25Gb2N1cyxcbiAgICAgICAgcG9sbGluZ0ludGVydmFsLFxuICAgICAgICBza2lwUG9sbGluZ0lmVW5mb2N1c2VkXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxhc3RSZW5kZXJIYWRTdWJzY3JpcHRpb24gPSB1c2VSZWYzKGZhbHNlKTtcbiAgICAgIGNvbnN0IHByb21pc2VSZWYgPSB1c2VSZWYzKHZvaWQgMCk7XG4gICAgICBsZXQge1xuICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICByZXF1ZXN0SWRcbiAgICAgIH0gPSBwcm9taXNlUmVmLmN1cnJlbnQgfHwge307XG4gICAgICBsZXQgY3VycmVudFJlbmRlckhhc1N1YnNjcmlwdGlvbiA9IGZhbHNlO1xuICAgICAgaWYgKHF1ZXJ5Q2FjaGVLZXkgJiYgcmVxdWVzdElkKSB7XG4gICAgICAgIGN1cnJlbnRSZW5kZXJIYXNTdWJzY3JpcHRpb24gPSBzdWJzY3JpcHRpb25TZWxlY3RvcnNSZWYuY3VycmVudC5pc1JlcXVlc3RTdWJzY3JpYmVkKHF1ZXJ5Q2FjaGVLZXksIHJlcXVlc3RJZCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzdWJzY3JpcHRpb25SZW1vdmVkID0gIWN1cnJlbnRSZW5kZXJIYXNTdWJzY3JpcHRpb24gJiYgbGFzdFJlbmRlckhhZFN1YnNjcmlwdGlvbi5jdXJyZW50O1xuICAgICAgdXNlUG9zc2libHlJbW1lZGlhdGVFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsYXN0UmVuZGVySGFkU3Vic2NyaXB0aW9uLmN1cnJlbnQgPSBjdXJyZW50UmVuZGVySGFzU3Vic2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgICB1c2VQb3NzaWJseUltbWVkaWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25SZW1vdmVkKSB7XG4gICAgICAgICAgcHJvbWlzZVJlZi5jdXJyZW50ID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9LCBbc3Vic2NyaXB0aW9uUmVtb3ZlZF0pO1xuICAgICAgdXNlUG9zc2libHlJbW1lZGlhdGVFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBsYXN0UHJvbWlzZSA9IHByb21pc2VSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInJlbW92ZU1lT25Db21waWxhdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coc3Vic2NyaXB0aW9uUmVtb3ZlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YWJsZUFyZyA9PT0gc2tpcFRva2VuKSB7XG4gICAgICAgICAgbGFzdFByb21pc2U/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgcHJvbWlzZVJlZi5jdXJyZW50ID0gdm9pZCAwO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0U3Vic2NyaXB0aW9uT3B0aW9ucyA9IHByb21pc2VSZWYuY3VycmVudD8uc3Vic2NyaXB0aW9uT3B0aW9ucztcbiAgICAgICAgaWYgKCFsYXN0UHJvbWlzZSB8fCBsYXN0UHJvbWlzZS5hcmcgIT09IHN0YWJsZUFyZykge1xuICAgICAgICAgIGxhc3RQcm9taXNlPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBkaXNwYXRjaChpbml0aWF0ZShzdGFibGVBcmcsIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbk9wdGlvbnM6IHN0YWJsZVN1YnNjcmlwdGlvbk9wdGlvbnMsXG4gICAgICAgICAgICBmb3JjZVJlZmV0Y2g6IHJlZmV0Y2hPbk1vdW50T3JBcmdDaGFuZ2VcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgcHJvbWlzZVJlZi5jdXJyZW50ID0gcHJvbWlzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGFibGVTdWJzY3JpcHRpb25PcHRpb25zICE9PSBsYXN0U3Vic2NyaXB0aW9uT3B0aW9ucykge1xuICAgICAgICAgIGxhc3RQcm9taXNlLnVwZGF0ZVN1YnNjcmlwdGlvbk9wdGlvbnMoc3RhYmxlU3Vic2NyaXB0aW9uT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0sIFtkaXNwYXRjaCwgaW5pdGlhdGUsIHJlZmV0Y2hPbk1vdW50T3JBcmdDaGFuZ2UsIHN0YWJsZUFyZywgc3RhYmxlU3Vic2NyaXB0aW9uT3B0aW9ucywgc3Vic2NyaXB0aW9uUmVtb3ZlZF0pO1xuICAgICAgdXNlRWZmZWN0MygoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZVJlZi5jdXJyZW50Py51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIHByb21pc2VSZWYuY3VycmVudCA9IHZvaWQgMDtcbiAgICAgICAgfTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHJldHVybiB1c2VNZW1vMigoKSA9PiAoe1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBtZXRob2QgdG8gbWFudWFsbHkgcmVmZXRjaCBkYXRhIGZvciB0aGUgcXVlcnlcbiAgICAgICAgICovXG4gICAgICAgIHJlZmV0Y2g6ICgpID0+IHtcbiAgICAgICAgICBpZiAoIXByb21pc2VSZWYuY3VycmVudCkgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IF9mb3JtYXRQcm9kRXJyb3JNZXNzYWdlMigzOCkgOiBcIkNhbm5vdCByZWZldGNoIGEgcXVlcnkgdGhhdCBoYXMgbm90IGJlZW4gc3RhcnRlZCB5ZXQuXCIpO1xuICAgICAgICAgIHJldHVybiBwcm9taXNlUmVmLmN1cnJlbnQ/LnJlZmV0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSksIFtdKTtcbiAgICB9O1xuICAgIGNvbnN0IHVzZUxhenlRdWVyeVN1YnNjcmlwdGlvbiA9ICh7XG4gICAgICByZWZldGNoT25SZWNvbm5lY3QsXG4gICAgICByZWZldGNoT25Gb2N1cyxcbiAgICAgIHBvbGxpbmdJbnRlcnZhbCA9IDAsXG4gICAgICBza2lwUG9sbGluZ0lmVW5mb2N1c2VkID0gZmFsc2VcbiAgICB9ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaW5pdGlhdGVcbiAgICAgIH0gPSBhcGkuZW5kcG9pbnRzW25hbWVdO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICAgICAgY29uc3QgW2FyZywgc2V0QXJnXSA9IHVzZVN0YXRlKFVOSU5JVElBTElaRURfVkFMVUUpO1xuICAgICAgY29uc3QgcHJvbWlzZVJlZiA9IHVzZVJlZjModm9pZCAwKTtcbiAgICAgIGNvbnN0IHN0YWJsZVN1YnNjcmlwdGlvbk9wdGlvbnMgPSB1c2VTaGFsbG93U3RhYmxlVmFsdWUoe1xuICAgICAgICByZWZldGNoT25SZWNvbm5lY3QsXG4gICAgICAgIHJlZmV0Y2hPbkZvY3VzLFxuICAgICAgICBwb2xsaW5nSW50ZXJ2YWwsXG4gICAgICAgIHNraXBQb2xsaW5nSWZVbmZvY3VzZWRcbiAgICAgIH0pO1xuICAgICAgdXNlUG9zc2libHlJbW1lZGlhdGVFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBsYXN0U3Vic2NyaXB0aW9uT3B0aW9ucyA9IHByb21pc2VSZWYuY3VycmVudD8uc3Vic2NyaXB0aW9uT3B0aW9ucztcbiAgICAgICAgaWYgKHN0YWJsZVN1YnNjcmlwdGlvbk9wdGlvbnMgIT09IGxhc3RTdWJzY3JpcHRpb25PcHRpb25zKSB7XG4gICAgICAgICAgcHJvbWlzZVJlZi5jdXJyZW50Py51cGRhdGVTdWJzY3JpcHRpb25PcHRpb25zKHN0YWJsZVN1YnNjcmlwdGlvbk9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9LCBbc3RhYmxlU3Vic2NyaXB0aW9uT3B0aW9uc10pO1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uT3B0aW9uc1JlZiA9IHVzZVJlZjMoc3RhYmxlU3Vic2NyaXB0aW9uT3B0aW9ucyk7XG4gICAgICB1c2VQb3NzaWJseUltbWVkaWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHN1YnNjcmlwdGlvbk9wdGlvbnNSZWYuY3VycmVudCA9IHN0YWJsZVN1YnNjcmlwdGlvbk9wdGlvbnM7XG4gICAgICB9LCBbc3RhYmxlU3Vic2NyaXB0aW9uT3B0aW9uc10pO1xuICAgICAgY29uc3QgdHJpZ2dlciA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uKGFyZzIsIHByZWZlckNhY2hlVmFsdWUgPSBmYWxzZSkge1xuICAgICAgICBsZXQgcHJvbWlzZTtcbiAgICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICAgIHByb21pc2VSZWYuY3VycmVudD8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBwcm9taXNlUmVmLmN1cnJlbnQgPSBwcm9taXNlID0gZGlzcGF0Y2goaW5pdGlhdGUoYXJnMiwge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uT3B0aW9uczogc3Vic2NyaXB0aW9uT3B0aW9uc1JlZi5jdXJyZW50LFxuICAgICAgICAgICAgZm9yY2VSZWZldGNoOiAhcHJlZmVyQ2FjaGVWYWx1ZVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBzZXRBcmcoYXJnMik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICAgIH0sIFtkaXNwYXRjaCwgaW5pdGlhdGVdKTtcbiAgICAgIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAocHJvbWlzZVJlZi5jdXJyZW50Py5xdWVyeUNhY2hlS2V5KSB7XG4gICAgICAgICAgZGlzcGF0Y2goYXBpLmludGVybmFsQWN0aW9ucy5yZW1vdmVRdWVyeVJlc3VsdCh7XG4gICAgICAgICAgICBxdWVyeUNhY2hlS2V5OiBwcm9taXNlUmVmLmN1cnJlbnQ/LnF1ZXJ5Q2FjaGVLZXlcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH0sIFtkaXNwYXRjaF0pO1xuICAgICAgdXNlRWZmZWN0MygoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZVJlZj8uY3VycmVudD8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHVzZUVmZmVjdDMoKCkgPT4ge1xuICAgICAgICBpZiAoYXJnICE9PSBVTklOSVRJQUxJWkVEX1ZBTFVFICYmICFwcm9taXNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICB0cmlnZ2VyKGFyZywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIFthcmcsIHRyaWdnZXJdKTtcbiAgICAgIHJldHVybiB1c2VNZW1vMigoKSA9PiBbdHJpZ2dlciwgYXJnLCB7XG4gICAgICAgIHJlc2V0XG4gICAgICB9XSwgW3RyaWdnZXIsIGFyZywgcmVzZXRdKTtcbiAgICB9O1xuICAgIGNvbnN0IHVzZVF1ZXJ5U3RhdGUgPSAoYXJnLCB7XG4gICAgICBza2lwID0gZmFsc2UsXG4gICAgICBzZWxlY3RGcm9tUmVzdWx0XG4gICAgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNlbGVjdFxuICAgICAgfSA9IGFwaS5lbmRwb2ludHNbbmFtZV07XG4gICAgICBjb25zdCBzdGFibGVBcmcgPSB1c2VTdGFibGVRdWVyeUFyZ3Moc2tpcCA/IHNraXBUb2tlbiA6IGFyZywgc2VyaWFsaXplUXVlcnlBcmdzLCBjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbbmFtZV0sIG5hbWUpO1xuICAgICAgY29uc3QgbGFzdFZhbHVlID0gdXNlUmVmMyh2b2lkIDApO1xuICAgICAgY29uc3Qgc2VsZWN0RGVmYXVsdFJlc3VsdCA9IHVzZU1lbW8yKCgpID0+IGNyZWF0ZVNlbGVjdG9yMihbc2VsZWN0KHN0YWJsZUFyZyksIChfLCBsYXN0UmVzdWx0KSA9PiBsYXN0UmVzdWx0LCAoXykgPT4gc3RhYmxlQXJnXSwgcXVlcnlTdGF0ZVByZVNlbGVjdG9yLCB7XG4gICAgICAgIG1lbW9pemVPcHRpb25zOiB7XG4gICAgICAgICAgcmVzdWx0RXF1YWxpdHlDaGVjazogc2hhbGxvd0VxdWFsMlxuICAgICAgICB9XG4gICAgICB9KSwgW3NlbGVjdCwgc3RhYmxlQXJnXSk7XG4gICAgICBjb25zdCBxdWVyeVNlbGVjdG9yID0gdXNlTWVtbzIoKCkgPT4gc2VsZWN0RnJvbVJlc3VsdCA/IGNyZWF0ZVNlbGVjdG9yMihbc2VsZWN0RGVmYXVsdFJlc3VsdF0sIHNlbGVjdEZyb21SZXN1bHQsIHtcbiAgICAgICAgZGV2TW9kZUNoZWNrczoge1xuICAgICAgICAgIGlkZW50aXR5RnVuY3Rpb25DaGVjazogXCJuZXZlclwiXG4gICAgICAgIH1cbiAgICAgIH0pIDogc2VsZWN0RGVmYXVsdFJlc3VsdCwgW3NlbGVjdERlZmF1bHRSZXN1bHQsIHNlbGVjdEZyb21SZXN1bHRdKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gcXVlcnlTZWxlY3RvcihzdGF0ZSwgbGFzdFZhbHVlLmN1cnJlbnQpLCBzaGFsbG93RXF1YWwyKTtcbiAgICAgIGNvbnN0IHN0b3JlID0gdXNlU3RvcmUoKTtcbiAgICAgIGNvbnN0IG5ld0xhc3RWYWx1ZSA9IHNlbGVjdERlZmF1bHRSZXN1bHQoc3RvcmUuZ2V0U3RhdGUoKSwgbGFzdFZhbHVlLmN1cnJlbnQpO1xuICAgICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxhc3RWYWx1ZS5jdXJyZW50ID0gbmV3TGFzdFZhbHVlO1xuICAgICAgfSwgW25ld0xhc3RWYWx1ZV0pO1xuICAgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICB1c2VRdWVyeVN0YXRlLFxuICAgICAgdXNlUXVlcnlTdWJzY3JpcHRpb24sXG4gICAgICB1c2VMYXp5UXVlcnlTdWJzY3JpcHRpb24sXG4gICAgICB1c2VMYXp5UXVlcnkob3B0aW9ucykge1xuICAgICAgICBjb25zdCBbdHJpZ2dlciwgYXJnLCB7XG4gICAgICAgICAgcmVzZXRcbiAgICAgICAgfV0gPSB1c2VMYXp5UXVlcnlTdWJzY3JpcHRpb24ob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RhdGVSZXN1bHRzID0gdXNlUXVlcnlTdGF0ZShhcmcsIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHNraXA6IGFyZyA9PT0gVU5JTklUSUFMSVpFRF9WQUxVRVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW5mbyA9IHVzZU1lbW8yKCgpID0+ICh7XG4gICAgICAgICAgbGFzdEFyZzogYXJnXG4gICAgICAgIH0pLCBbYXJnXSk7XG4gICAgICAgIHJldHVybiB1c2VNZW1vMigoKSA9PiBbdHJpZ2dlciwge1xuICAgICAgICAgIC4uLnF1ZXJ5U3RhdGVSZXN1bHRzLFxuICAgICAgICAgIHJlc2V0XG4gICAgICAgIH0sIGluZm9dLCBbdHJpZ2dlciwgcXVlcnlTdGF0ZVJlc3VsdHMsIHJlc2V0LCBpbmZvXSk7XG4gICAgICB9LFxuICAgICAgdXNlUXVlcnkoYXJnLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5U3Vic2NyaXB0aW9uUmVzdWx0cyA9IHVzZVF1ZXJ5U3Vic2NyaXB0aW9uKGFyZywgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RhdGVSZXN1bHRzID0gdXNlUXVlcnlTdGF0ZShhcmcsIHtcbiAgICAgICAgICBzZWxlY3RGcm9tUmVzdWx0OiBhcmcgPT09IHNraXBUb2tlbiB8fCBvcHRpb25zPy5za2lwID8gdm9pZCAwIDogbm9QZW5kaW5nUXVlcnlTdGF0ZVNlbGVjdG9yLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgICAgaXNTdWNjZXNzLFxuICAgICAgICAgIGlzRXJyb3IsXG4gICAgICAgICAgZXJyb3JcbiAgICAgICAgfSA9IHF1ZXJ5U3RhdGVSZXN1bHRzO1xuICAgICAgICB1c2VEZWJ1Z1ZhbHVlKHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgICAgaXNTdWNjZXNzLFxuICAgICAgICAgIGlzRXJyb3IsXG4gICAgICAgICAgZXJyb3JcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1c2VNZW1vMigoKSA9PiAoe1xuICAgICAgICAgIC4uLnF1ZXJ5U3RhdGVSZXN1bHRzLFxuICAgICAgICAgIC4uLnF1ZXJ5U3Vic2NyaXB0aW9uUmVzdWx0c1xuICAgICAgICB9KSwgW3F1ZXJ5U3RhdGVSZXN1bHRzLCBxdWVyeVN1YnNjcmlwdGlvblJlc3VsdHNdKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGJ1aWxkTXV0YXRpb25Ib29rKG5hbWUpIHtcbiAgICByZXR1cm4gKHtcbiAgICAgIHNlbGVjdEZyb21SZXN1bHQsXG4gICAgICBmaXhlZENhY2hlS2V5XG4gICAgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNlbGVjdCxcbiAgICAgICAgaW5pdGlhdGVcbiAgICAgIH0gPSBhcGkuZW5kcG9pbnRzW25hbWVdO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICAgICAgY29uc3QgW3Byb21pc2UsIHNldFByb21pc2VdID0gdXNlU3RhdGUoKTtcbiAgICAgIHVzZUVmZmVjdDMoKCkgPT4gKCkgPT4ge1xuICAgICAgICBpZiAoIXByb21pc2U/LmFyZy5maXhlZENhY2hlS2V5KSB7XG4gICAgICAgICAgcHJvbWlzZT8ucmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgfSwgW3Byb21pc2VdKTtcbiAgICAgIGNvbnN0IHRyaWdnZXJNdXRhdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uKGFyZykge1xuICAgICAgICBjb25zdCBwcm9taXNlMiA9IGRpc3BhdGNoKGluaXRpYXRlKGFyZywge1xuICAgICAgICAgIGZpeGVkQ2FjaGVLZXlcbiAgICAgICAgfSkpO1xuICAgICAgICBzZXRQcm9taXNlKHByb21pc2UyKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2UyO1xuICAgICAgfSwgW2Rpc3BhdGNoLCBpbml0aWF0ZSwgZml4ZWRDYWNoZUtleV0pO1xuICAgICAgY29uc3Qge1xuICAgICAgICByZXF1ZXN0SWRcbiAgICAgIH0gPSBwcm9taXNlIHx8IHt9O1xuICAgICAgY29uc3Qgc2VsZWN0RGVmYXVsdFJlc3VsdCA9IHVzZU1lbW8yKCgpID0+IHNlbGVjdCh7XG4gICAgICAgIGZpeGVkQ2FjaGVLZXksXG4gICAgICAgIHJlcXVlc3RJZDogcHJvbWlzZT8ucmVxdWVzdElkXG4gICAgICB9KSwgW2ZpeGVkQ2FjaGVLZXksIHByb21pc2UsIHNlbGVjdF0pO1xuICAgICAgY29uc3QgbXV0YXRpb25TZWxlY3RvciA9IHVzZU1lbW8yKCgpID0+IHNlbGVjdEZyb21SZXN1bHQgPyBjcmVhdGVTZWxlY3RvcjIoW3NlbGVjdERlZmF1bHRSZXN1bHRdLCBzZWxlY3RGcm9tUmVzdWx0KSA6IHNlbGVjdERlZmF1bHRSZXN1bHQsIFtzZWxlY3RGcm9tUmVzdWx0LCBzZWxlY3REZWZhdWx0UmVzdWx0XSk7XG4gICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB1c2VTZWxlY3RvcihtdXRhdGlvblNlbGVjdG9yLCBzaGFsbG93RXF1YWwyKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsQXJncyA9IGZpeGVkQ2FjaGVLZXkgPT0gbnVsbCA/IHByb21pc2U/LmFyZy5vcmlnaW5hbEFyZ3MgOiB2b2lkIDA7XG4gICAgICBjb25zdCByZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICBzZXRQcm9taXNlKHZvaWQgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaXhlZENhY2hlS2V5KSB7XG4gICAgICAgICAgICBkaXNwYXRjaChhcGkuaW50ZXJuYWxBY3Rpb25zLnJlbW92ZU11dGF0aW9uUmVzdWx0KHtcbiAgICAgICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgICAgICBmaXhlZENhY2hlS2V5XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sIFtkaXNwYXRjaCwgZml4ZWRDYWNoZUtleSwgcHJvbWlzZSwgcmVxdWVzdElkXSk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGVuZHBvaW50TmFtZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIGlzU3VjY2VzcyxcbiAgICAgICAgaXNFcnJvcixcbiAgICAgICAgZXJyb3JcbiAgICAgIH0gPSBjdXJyZW50U3RhdGU7XG4gICAgICB1c2VEZWJ1Z1ZhbHVlKHtcbiAgICAgICAgZW5kcG9pbnROYW1lLFxuICAgICAgICBkYXRhLFxuICAgICAgICBzdGF0dXMsXG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgaXNTdWNjZXNzLFxuICAgICAgICBpc0Vycm9yLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgICBjb25zdCBmaW5hbFN0YXRlID0gdXNlTWVtbzIoKCkgPT4gKHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgICBvcmlnaW5hbEFyZ3MsXG4gICAgICAgIHJlc2V0XG4gICAgICB9KSwgW2N1cnJlbnRTdGF0ZSwgb3JpZ2luYWxBcmdzLCByZXNldF0pO1xuICAgICAgcmV0dXJuIHVzZU1lbW8yKCgpID0+IFt0cmlnZ2VyTXV0YXRpb24sIGZpbmFsU3RhdGVdLCBbdHJpZ2dlck11dGF0aW9uLCBmaW5hbFN0YXRlXSk7XG4gICAgfTtcbiAgfVxufVxuXG4vLyBzcmMvcXVlcnkvcmVhY3QvbW9kdWxlLnRzXG52YXIgcmVhY3RIb29rc01vZHVsZU5hbWUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sKCk7XG52YXIgcmVhY3RIb29rc01vZHVsZSA9ICh7XG4gIGJhdGNoID0gcnJCYXRjaCxcbiAgaG9va3MgPSB7XG4gICAgdXNlRGlzcGF0Y2g6IHJyVXNlRGlzcGF0Y2gsXG4gICAgdXNlU2VsZWN0b3I6IHJyVXNlU2VsZWN0b3IsXG4gICAgdXNlU3RvcmU6IHJyVXNlU3RvcmVcbiAgfSxcbiAgY3JlYXRlU2VsZWN0b3I6IGNyZWF0ZVNlbGVjdG9yMiA9IF9jcmVhdGVTZWxlY3RvcixcbiAgdW5zdGFibGVfX3NpZGVFZmZlY3RzSW5SZW5kZXIgPSBmYWxzZSxcbiAgLi4ucmVzdFxufSA9IHt9KSA9PiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBjb25zdCBob29rTmFtZXMgPSBbXCJ1c2VEaXNwYXRjaFwiLCBcInVzZVNlbGVjdG9yXCIsIFwidXNlU3RvcmVcIl07XG4gICAgbGV0IHdhcm5lZCA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgaG9va05hbWUgb2YgaG9va05hbWVzKSB7XG4gICAgICBpZiAoY291bnRPYmplY3RLZXlzKHJlc3QpID4gMCkge1xuICAgICAgICBpZiAocmVzdFtob29rTmFtZV0pIHtcbiAgICAgICAgICBpZiAoIXdhcm5lZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiQXMgb2YgUlRLIDIuMCwgdGhlIGhvb2tzIG5vdyBuZWVkIHRvIGJlIHNwZWNpZmllZCBhcyBvbmUgb2JqZWN0LCBwcm92aWRlZCB1bmRlciBhIGBob29rc2Aga2V5OlxcbmByZWFjdEhvb2tzTW9kdWxlKHsgaG9va3M6IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yLCB1c2VTdG9yZSB9IH0pYFwiKTtcbiAgICAgICAgICAgIHdhcm5lZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGhvb2tzW2hvb2tOYW1lXSA9IHJlc3RbaG9va05hbWVdO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBob29rc1tob29rTmFtZV0gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gX2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UzKDM2KSA6IGBXaGVuIHVzaW5nIGN1c3RvbSBob29rcyBmb3IgY29udGV4dCwgYWxsICR7aG9va05hbWVzLmxlbmd0aH0gaG9va3MgbmVlZCB0byBiZSBwcm92aWRlZDogJHtob29rTmFtZXMuam9pbihcIiwgXCIpfS5cbkhvb2sgJHtob29rTmFtZX0gd2FzIGVpdGhlciBub3QgcHJvdmlkZWQgb3Igbm90IGEgZnVuY3Rpb24uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogcmVhY3RIb29rc01vZHVsZU5hbWUsXG4gICAgaW5pdChhcGksIHtcbiAgICAgIHNlcmlhbGl6ZVF1ZXJ5QXJnc1xuICAgIH0sIGNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGFueUFwaSA9IGFwaTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYnVpbGRRdWVyeUhvb2tzLFxuICAgICAgICBidWlsZE11dGF0aW9uSG9vayxcbiAgICAgICAgdXNlUHJlZmV0Y2hcbiAgICAgIH0gPSBidWlsZEhvb2tzKHtcbiAgICAgICAgYXBpLFxuICAgICAgICBtb2R1bGVPcHRpb25zOiB7XG4gICAgICAgICAgYmF0Y2gsXG4gICAgICAgICAgaG9va3MsXG4gICAgICAgICAgdW5zdGFibGVfX3NpZGVFZmZlY3RzSW5SZW5kZXIsXG4gICAgICAgICAgY3JlYXRlU2VsZWN0b3I6IGNyZWF0ZVNlbGVjdG9yMlxuICAgICAgICB9LFxuICAgICAgICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gICAgICAgIGNvbnRleHRcbiAgICAgIH0pO1xuICAgICAgc2FmZUFzc2lnbihhbnlBcGksIHtcbiAgICAgICAgdXNlUHJlZmV0Y2hcbiAgICAgIH0pO1xuICAgICAgc2FmZUFzc2lnbihjb250ZXh0LCB7XG4gICAgICAgIGJhdGNoXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGluamVjdEVuZHBvaW50KGVuZHBvaW50TmFtZSwgZGVmaW5pdGlvbikge1xuICAgICAgICAgIGlmIChpc1F1ZXJ5RGVmaW5pdGlvbihkZWZpbml0aW9uKSkge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICB1c2VRdWVyeSxcbiAgICAgICAgICAgICAgdXNlTGF6eVF1ZXJ5LFxuICAgICAgICAgICAgICB1c2VMYXp5UXVlcnlTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgIHVzZVF1ZXJ5U3RhdGUsXG4gICAgICAgICAgICAgIHVzZVF1ZXJ5U3Vic2NyaXB0aW9uXG4gICAgICAgICAgICB9ID0gYnVpbGRRdWVyeUhvb2tzKGVuZHBvaW50TmFtZSk7XG4gICAgICAgICAgICBzYWZlQXNzaWduKGFueUFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXSwge1xuICAgICAgICAgICAgICB1c2VRdWVyeSxcbiAgICAgICAgICAgICAgdXNlTGF6eVF1ZXJ5LFxuICAgICAgICAgICAgICB1c2VMYXp5UXVlcnlTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgIHVzZVF1ZXJ5U3RhdGUsXG4gICAgICAgICAgICAgIHVzZVF1ZXJ5U3Vic2NyaXB0aW9uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGFwaVtgdXNlJHtjYXBpdGFsaXplKGVuZHBvaW50TmFtZSl9UXVlcnlgXSA9IHVzZVF1ZXJ5O1xuICAgICAgICAgICAgYXBpW2B1c2VMYXp5JHtjYXBpdGFsaXplKGVuZHBvaW50TmFtZSl9UXVlcnlgXSA9IHVzZUxhenlRdWVyeTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzTXV0YXRpb25EZWZpbml0aW9uKGRlZmluaXRpb24pKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VNdXRhdGlvbiA9IGJ1aWxkTXV0YXRpb25Ib29rKGVuZHBvaW50TmFtZSk7XG4gICAgICAgICAgICBzYWZlQXNzaWduKGFueUFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXSwge1xuICAgICAgICAgICAgICB1c2VNdXRhdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhcGlbYHVzZSR7Y2FwaXRhbGl6ZShlbmRwb2ludE5hbWUpfU11dGF0aW9uYF0gPSB1c2VNdXRhdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcblxuLy8gc3JjL3F1ZXJ5L3JlYWN0L2luZGV4LnRzXG5leHBvcnQgKiBmcm9tIFwiQHJlZHV4anMvdG9vbGtpdC9xdWVyeVwiO1xuXG4vLyBzcmMvcXVlcnkvcmVhY3QvQXBpUHJvdmlkZXIudHN4XG5pbXBvcnQgeyBjb25maWd1cmVTdG9yZSwgZm9ybWF0UHJvZEVycm9yTWVzc2FnZSBhcyBfZm9ybWF0UHJvZEVycm9yTWVzc2FnZTQgfSBmcm9tIFwiQHJlZHV4anMvdG9vbGtpdFwiO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IGFzIHVzZUVmZmVjdDQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlYWN0UmVkdXhDb250ZXh0IH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyBzZXR1cExpc3RlbmVycyB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0L3F1ZXJ5XCI7XG5mdW5jdGlvbiBBcGlQcm92aWRlcihwcm9wcykge1xuICBjb25zdCBjb250ZXh0ID0gcHJvcHMuY29udGV4dCB8fCBSZWFjdFJlZHV4Q29udGV4dDtcbiAgY29uc3QgZXhpc3RpbmdDb250ZXh0ID0gdXNlQ29udGV4dChjb250ZXh0KTtcbiAgaWYgKGV4aXN0aW5nQ29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBfZm9ybWF0UHJvZEVycm9yTWVzc2FnZTQoMzUpIDogXCJFeGlzdGluZyBSZWR1eCBjb250ZXh0IGRldGVjdGVkLiBJZiB5b3UgYWxyZWFkeSBoYXZlIGEgc3RvcmUgc2V0IHVwLCBwbGVhc2UgdXNlIHRoZSB0cmFkaXRpb25hbCBSZWR1eCBzZXR1cC5cIik7XG4gIH1cbiAgY29uc3QgW3N0b3JlXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+IGNvbmZpZ3VyZVN0b3JlKHtcbiAgICByZWR1Y2VyOiB7XG4gICAgICBbcHJvcHMuYXBpLnJlZHVjZXJQYXRoXTogcHJvcHMuYXBpLnJlZHVjZXJcbiAgICB9LFxuICAgIG1pZGRsZXdhcmU6IChnRE0pID0+IGdETSgpLmNvbmNhdChwcm9wcy5hcGkubWlkZGxld2FyZSlcbiAgfSkpO1xuICB1c2VFZmZlY3Q0KCgpID0+IHByb3BzLnNldHVwTGlzdGVuZXJzID09PSBmYWxzZSA/IHZvaWQgMCA6IHNldHVwTGlzdGVuZXJzKHN0b3JlLmRpc3BhdGNoLCBwcm9wcy5zZXR1cExpc3RlbmVycyksIFtwcm9wcy5zZXR1cExpc3RlbmVycywgc3RvcmUuZGlzcGF0Y2hdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFByb3ZpZGVyLCB7IHN0b3JlLCBjb250ZXh0IH0sIHByb3BzLmNoaWxkcmVuKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L3JlYWN0L2luZGV4LnRzXG52YXIgY3JlYXRlQXBpID0gLyogQF9fUFVSRV9fICovIGJ1aWxkQ3JlYXRlQXBpKGNvcmVNb2R1bGUoKSwgcmVhY3RIb29rc01vZHVsZSgpKTtcbmV4cG9ydCB7XG4gIEFwaVByb3ZpZGVyLFxuICBVTklOSVRJQUxJWkVEX1ZBTFVFLFxuICBjcmVhdGVBcGksXG4gIHJlYWN0SG9va3NNb2R1bGUsXG4gIHJlYWN0SG9va3NNb2R1bGVOYW1lXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cnRrLXF1ZXJ5LXJlYWN0Lm1vZGVybi5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs": /*!***********************************************************************!*\ !*** ./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ QueryStatus: () => (/* binding */ QueryStatus),\n/* harmony export */ _NEVER: () => (/* binding */ _NEVER),\n/* harmony export */ buildCreateApi: () => (/* binding */ buildCreateApi),\n/* harmony export */ copyWithStructuralSharing: () => (/* binding */ copyWithStructuralSharing),\n/* harmony export */ coreModule: () => (/* binding */ coreModule),\n/* harmony export */ coreModuleName: () => (/* binding */ coreModuleName),\n/* harmony export */ createApi: () => (/* binding */ createApi),\n/* harmony export */ defaultSerializeQueryArgs: () => (/* binding */ defaultSerializeQueryArgs),\n/* harmony export */ fakeBaseQuery: () => (/* binding */ fakeBaseQuery),\n/* harmony export */ fetchBaseQuery: () => (/* binding */ fetchBaseQuery),\n/* harmony export */ retry: () => (/* binding */ retry),\n/* harmony export */ setupListeners: () => (/* binding */ setupListeners),\n/* harmony export */ skipToken: () => (/* binding */ skipToken)\n/* harmony export */ });\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/redux/dist/redux.mjs\");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit */ \"(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs\");\n/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! immer */ \"(app-pages-browser)/./node_modules/immer/dist/immer.mjs\");\n/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reselect */ \"(app-pages-browser)/./node_modules/reselect/dist/reselect.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n// src/query/core/apiState.ts\nvar QueryStatus = /* @__PURE__ */ ((QueryStatus2) => {\n QueryStatus2[\"uninitialized\"] = \"uninitialized\";\n QueryStatus2[\"pending\"] = \"pending\";\n QueryStatus2[\"fulfilled\"] = \"fulfilled\";\n QueryStatus2[\"rejected\"] = \"rejected\";\n return QueryStatus2;\n})(QueryStatus || {});\nfunction getRequestStatusFlags(status) {\n return {\n status,\n isUninitialized: status === \"uninitialized\" /* uninitialized */,\n isLoading: status === \"pending\" /* pending */,\n isSuccess: status === \"fulfilled\" /* fulfilled */,\n isError: status === \"rejected\" /* rejected */\n };\n}\n\n// src/query/core/rtkImports.ts\n\n\n// src/query/utils/copyWithStructuralSharing.ts\nvar isPlainObject2 = _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isPlainObject;\nfunction copyWithStructuralSharing(oldObj, newObj) {\n if (oldObj === newObj || !(isPlainObject2(oldObj) && isPlainObject2(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n return newObj;\n }\n const newKeys = Object.keys(newObj);\n const oldKeys = Object.keys(oldObj);\n let isSameObject = newKeys.length === oldKeys.length;\n const mergeObj = Array.isArray(newObj) ? [] : {};\n for (const key of newKeys) {\n mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n if (isSameObject) isSameObject = oldObj[key] === mergeObj[key];\n }\n return isSameObject ? oldObj : mergeObj;\n}\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/query/utils/flatten.ts\nvar flatten = (arr) => [].concat(...arr);\n\n// src/query/utils/isAbsoluteUrl.ts\nfunction isAbsoluteUrl(url) {\n return new RegExp(`(^|:)//`).test(url);\n}\n\n// src/query/utils/isDocumentVisible.ts\nfunction isDocumentVisible() {\n if (typeof document === \"undefined\") {\n return true;\n }\n return document.visibilityState !== \"hidden\";\n}\n\n// src/query/utils/isNotNullish.ts\nfunction isNotNullish(v) {\n return v != null;\n}\n\n// src/query/utils/isOnline.ts\nfunction isOnline() {\n return typeof navigator === \"undefined\" ? true : navigator.onLine === void 0 ? true : navigator.onLine;\n}\n\n// src/query/utils/joinUrls.ts\nvar withoutTrailingSlash = (url) => url.replace(/\\/$/, \"\");\nvar withoutLeadingSlash = (url) => url.replace(/^\\//, \"\");\nfunction joinUrls(base, url) {\n if (!base) {\n return url;\n }\n if (!url) {\n return base;\n }\n if (isAbsoluteUrl(url)) {\n return url;\n }\n const delimiter = base.endsWith(\"/\") || !url.startsWith(\"?\") ? \"/\" : \"\";\n base = withoutTrailingSlash(base);\n url = withoutLeadingSlash(url);\n return `${base}${delimiter}${url}`;\n}\n\n// src/query/utils/getOrInsert.ts\nfunction getOrInsert(map, key, value) {\n if (map.has(key)) return map.get(key);\n return map.set(key, value).get(key);\n}\n\n// src/query/fetchBaseQuery.ts\nvar defaultFetchFn = (...args) => fetch(...args);\nvar defaultValidateStatus = (response) => response.status >= 200 && response.status <= 299;\nvar defaultIsJsonContentType = (headers) => (\n /*applicat*/\n /ion\\/(vnd\\.api\\+)?json/.test(headers.get(\"content-type\") || \"\")\n);\nfunction stripUndefined(obj) {\n if (!(0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(obj)) {\n return obj;\n }\n const copy = {\n ...obj\n };\n for (const [k, v] of Object.entries(copy)) {\n if (v === void 0) delete copy[k];\n }\n return copy;\n}\nfunction fetchBaseQuery({\n baseUrl,\n prepareHeaders = (x) => x,\n fetchFn = defaultFetchFn,\n paramsSerializer,\n isJsonContentType = defaultIsJsonContentType,\n jsonContentType = \"application/json\",\n jsonReplacer,\n timeout: defaultTimeout,\n responseHandler: globalResponseHandler,\n validateStatus: globalValidateStatus,\n ...baseFetchOptions\n} = {}) {\n if (typeof fetch === \"undefined\" && fetchFn === defaultFetchFn) {\n console.warn(\"Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.\");\n }\n return async (arg, api, extraOptions) => {\n const {\n getState,\n extra,\n endpoint,\n forced,\n type\n } = api;\n let meta;\n let {\n url,\n headers = new Headers(baseFetchOptions.headers),\n params = void 0,\n responseHandler = globalResponseHandler ?? \"json\",\n validateStatus = globalValidateStatus ?? defaultValidateStatus,\n timeout = defaultTimeout,\n ...rest\n } = typeof arg == \"string\" ? {\n url: arg\n } : arg;\n let abortController, signal = api.signal;\n if (timeout) {\n abortController = new AbortController();\n api.signal.addEventListener(\"abort\", abortController.abort);\n signal = abortController.signal;\n }\n let config = {\n ...baseFetchOptions,\n signal,\n ...rest\n };\n headers = new Headers(stripUndefined(headers));\n config.headers = await prepareHeaders(headers, {\n getState,\n arg,\n extra,\n endpoint,\n forced,\n type,\n extraOptions\n }) || headers;\n const isJsonifiable = (body) => typeof body === \"object\" && ((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(body) || Array.isArray(body) || typeof body.toJSON === \"function\");\n if (!config.headers.has(\"content-type\") && isJsonifiable(config.body)) {\n config.headers.set(\"content-type\", jsonContentType);\n }\n if (isJsonifiable(config.body) && isJsonContentType(config.headers)) {\n config.body = JSON.stringify(config.body, jsonReplacer);\n }\n if (params) {\n const divider = ~url.indexOf(\"?\") ? \"&\" : \"?\";\n const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n url += divider + query;\n }\n url = joinUrls(baseUrl, url);\n const request = new Request(url, config);\n const requestClone = new Request(url, config);\n meta = {\n request: requestClone\n };\n let response, timedOut = false, timeoutId = abortController && setTimeout(() => {\n timedOut = true;\n abortController.abort();\n }, timeout);\n try {\n response = await fetchFn(request);\n } catch (e) {\n return {\n error: {\n status: timedOut ? \"TIMEOUT_ERROR\" : \"FETCH_ERROR\",\n error: String(e)\n },\n meta\n };\n } finally {\n if (timeoutId) clearTimeout(timeoutId);\n abortController?.signal.removeEventListener(\"abort\", abortController.abort);\n }\n const responseClone = response.clone();\n meta.response = responseClone;\n let resultData;\n let responseText = \"\";\n try {\n let handleResponseError;\n await Promise.all([\n handleResponse(response, responseHandler).then((r) => resultData = r, (e) => handleResponseError = e),\n // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n responseClone.text().then((r) => responseText = r, () => {\n })\n ]);\n if (handleResponseError) throw handleResponseError;\n } catch (e) {\n return {\n error: {\n status: \"PARSING_ERROR\",\n originalStatus: response.status,\n data: responseText,\n error: String(e)\n },\n meta\n };\n }\n return validateStatus(response, resultData) ? {\n data: resultData,\n meta\n } : {\n error: {\n status: response.status,\n data: resultData\n },\n meta\n };\n };\n async function handleResponse(response, responseHandler) {\n if (typeof responseHandler === \"function\") {\n return responseHandler(response);\n }\n if (responseHandler === \"content-type\") {\n responseHandler = isJsonContentType(response.headers) ? \"json\" : \"text\";\n }\n if (responseHandler === \"json\") {\n const text = await response.text();\n return text.length ? JSON.parse(text) : null;\n }\n return response.text();\n }\n}\n\n// src/query/HandledError.ts\nvar HandledError = class {\n constructor(value, meta = void 0) {\n this.value = value;\n this.meta = meta;\n }\n};\n\n// src/query/retry.ts\nasync function defaultBackoff(attempt = 0, maxRetries = 5) {\n const attempts = Math.min(attempt, maxRetries);\n const timeout = ~~((Math.random() + 0.4) * (300 << attempts));\n await new Promise((resolve) => setTimeout((res) => resolve(res), timeout));\n}\nfunction fail(error, meta) {\n throw Object.assign(new HandledError({\n error,\n meta\n }), {\n throwImmediately: true\n });\n}\nvar EMPTY_OPTIONS = {};\nvar retryWithBackoff = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n const possibleMaxRetries = [5, (defaultOptions || EMPTY_OPTIONS).maxRetries, (extraOptions || EMPTY_OPTIONS).maxRetries].filter((x) => x !== void 0);\n const [maxRetries] = possibleMaxRetries.slice(-1);\n const defaultRetryCondition = (_, __, {\n attempt\n }) => attempt <= maxRetries;\n const options = {\n maxRetries,\n backoff: defaultBackoff,\n retryCondition: defaultRetryCondition,\n ...defaultOptions,\n ...extraOptions\n };\n let retry2 = 0;\n while (true) {\n try {\n const result = await baseQuery(args, api, extraOptions);\n if (result.error) {\n throw new HandledError(result);\n }\n return result;\n } catch (e) {\n retry2++;\n if (e.throwImmediately) {\n if (e instanceof HandledError) {\n return e.value;\n }\n throw e;\n }\n if (e instanceof HandledError && !options.retryCondition(e.value.error, args, {\n attempt: retry2,\n baseQueryApi: api,\n extraOptions\n })) {\n return e.value;\n }\n await options.backoff(retry2, options.maxRetries);\n }\n }\n};\nvar retry = /* @__PURE__ */ Object.assign(retryWithBackoff, {\n fail\n});\n\n// src/query/core/setupListeners.ts\nvar onFocus = /* @__PURE__ */ (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(\"__rtkq/focused\");\nvar onFocusLost = /* @__PURE__ */ (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(\"__rtkq/unfocused\");\nvar onOnline = /* @__PURE__ */ (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(\"__rtkq/online\");\nvar onOffline = /* @__PURE__ */ (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(\"__rtkq/offline\");\nvar initialized = false;\nfunction setupListeners(dispatch, customHandler) {\n function defaultHandler() {\n const handleFocus = () => dispatch(onFocus());\n const handleFocusLost = () => dispatch(onFocusLost());\n const handleOnline = () => dispatch(onOnline());\n const handleOffline = () => dispatch(onOffline());\n const handleVisibilityChange = () => {\n if (window.document.visibilityState === \"visible\") {\n handleFocus();\n } else {\n handleFocusLost();\n }\n };\n if (!initialized) {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n window.addEventListener(\"visibilitychange\", handleVisibilityChange, false);\n window.addEventListener(\"focus\", handleFocus, false);\n window.addEventListener(\"online\", handleOnline, false);\n window.addEventListener(\"offline\", handleOffline, false);\n initialized = true;\n }\n }\n const unsubscribe = () => {\n window.removeEventListener(\"focus\", handleFocus);\n window.removeEventListener(\"visibilitychange\", handleVisibilityChange);\n window.removeEventListener(\"online\", handleOnline);\n window.removeEventListener(\"offline\", handleOffline);\n initialized = false;\n };\n return unsubscribe;\n }\n return customHandler ? customHandler(dispatch, {\n onFocus,\n onFocusLost,\n onOffline,\n onOnline\n }) : defaultHandler();\n}\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\nfunction calculateProvidedBy(description, result, error, queryArg, meta, assertTagTypes) {\n if (isFunction(description)) {\n return description(result, error, queryArg, meta).filter(isNotNullish).map(expandTagDescription).map(assertTagTypes);\n }\n if (Array.isArray(description)) {\n return description.map(expandTagDescription).map(assertTagTypes);\n }\n return [];\n}\nfunction isFunction(t) {\n return typeof t === \"function\";\n}\nfunction expandTagDescription(description) {\n return typeof description === \"string\" ? {\n type: description\n } : description;\n}\n\n// src/query/core/buildThunks.ts\n\n\n// src/query/core/buildInitiate.ts\n\n\n// src/tsHelpers.ts\nfunction asSafePromise(promise, fallback) {\n return promise.catch(fallback);\n}\n\n// src/query/core/buildInitiate.ts\nvar forceQueryFnSymbol = Symbol(\"forceQueryFn\");\nvar isUpsertQuery = (arg) => typeof arg[forceQueryFnSymbol] === \"function\";\nfunction buildInitiate({\n serializeQueryArgs,\n queryThunk,\n mutationThunk,\n api,\n context\n}) {\n const runningQueries = /* @__PURE__ */ new Map();\n const runningMutations = /* @__PURE__ */ new Map();\n const {\n unsubscribeQueryResult,\n removeMutationResult,\n updateSubscriptionOptions\n } = api.internalActions;\n return {\n buildInitiateQuery,\n buildInitiateMutation,\n getRunningQueryThunk,\n getRunningMutationThunk,\n getRunningQueriesThunk,\n getRunningMutationsThunk\n };\n function getRunningQueryThunk(endpointName, queryArgs) {\n return (dispatch) => {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const queryCacheKey = serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n });\n return runningQueries.get(dispatch)?.[queryCacheKey];\n };\n }\n function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {\n return (dispatch) => {\n return runningMutations.get(dispatch)?.[fixedCacheKeyOrRequestId];\n };\n }\n function getRunningQueriesThunk() {\n return (dispatch) => Object.values(runningQueries.get(dispatch) || {}).filter(isNotNullish);\n }\n function getRunningMutationsThunk() {\n return (dispatch) => Object.values(runningMutations.get(dispatch) || {}).filter(isNotNullish);\n }\n function middlewareWarning(dispatch) {\n if (true) {\n if (middlewareWarning.triggered) return;\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n middlewareWarning.triggered = true;\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error( false ? 0 : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n }\n }\n }\n function buildInitiateQuery(endpointName, endpointDefinition) {\n const queryAction = (arg, {\n subscribe = true,\n forceRefetch,\n subscriptionOptions,\n [forceQueryFnSymbol]: forceQueryFn,\n ...rest\n } = {}) => (dispatch, getState) => {\n const queryCacheKey = serializeQueryArgs({\n queryArgs: arg,\n endpointDefinition,\n endpointName\n });\n const thunk = queryThunk({\n ...rest,\n type: \"query\",\n subscribe,\n forceRefetch,\n subscriptionOptions,\n endpointName,\n originalArgs: arg,\n queryCacheKey,\n [forceQueryFnSymbol]: forceQueryFn\n });\n const selector = api.endpoints[endpointName].select(arg);\n const thunkResult = dispatch(thunk);\n const stateAfter = selector(getState());\n middlewareWarning(dispatch);\n const {\n requestId,\n abort\n } = thunkResult;\n const skippedSynchronously = stateAfter.requestId !== requestId;\n const runningQuery = runningQueries.get(dispatch)?.[queryCacheKey];\n const selectFromState = () => selector(getState());\n const statePromise = Object.assign(forceQueryFn ? (\n // a query has been forced (upsertQueryData)\n // -> we want to resolve it once data has been written with the data that will be written\n thunkResult.then(selectFromState)\n ) : skippedSynchronously && !runningQuery ? (\n // a query has been skipped due to a condition and we do not have any currently running query\n // -> we want to resolve it immediately with the current data\n Promise.resolve(stateAfter)\n ) : (\n // query just started or one is already in flight\n // -> wait for the running query, then resolve with data from after that\n Promise.all([runningQuery, thunkResult]).then(selectFromState)\n ), {\n arg,\n requestId,\n subscriptionOptions,\n queryCacheKey,\n abort,\n async unwrap() {\n const result = await statePromise;\n if (result.isError) {\n throw result.error;\n }\n return result.data;\n },\n refetch: () => dispatch(queryAction(arg, {\n subscribe: false,\n forceRefetch: true\n })),\n unsubscribe() {\n if (subscribe) dispatch(unsubscribeQueryResult({\n queryCacheKey,\n requestId\n }));\n },\n updateSubscriptionOptions(options) {\n statePromise.subscriptionOptions = options;\n dispatch(updateSubscriptionOptions({\n endpointName,\n requestId,\n queryCacheKey,\n options\n }));\n }\n });\n if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n const running = getOrInsert(runningQueries, dispatch, {});\n running[queryCacheKey] = statePromise;\n statePromise.then(() => {\n delete running[queryCacheKey];\n if (!countObjectKeys(running)) {\n runningQueries.delete(dispatch);\n }\n });\n }\n return statePromise;\n };\n return queryAction;\n }\n function buildInitiateMutation(endpointName) {\n return (arg, {\n track = true,\n fixedCacheKey\n } = {}) => (dispatch, getState) => {\n const thunk = mutationThunk({\n type: \"mutation\",\n endpointName,\n originalArgs: arg,\n track,\n fixedCacheKey\n });\n const thunkResult = dispatch(thunk);\n middlewareWarning(dispatch);\n const {\n requestId,\n abort,\n unwrap\n } = thunkResult;\n const returnValuePromise = asSafePromise(thunkResult.unwrap().then((data) => ({\n data\n })), (error) => ({\n error\n }));\n const reset = () => {\n dispatch(removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n };\n const ret = Object.assign(returnValuePromise, {\n arg: thunkResult.arg,\n requestId,\n abort,\n unwrap,\n reset\n });\n const running = runningMutations.get(dispatch) || {};\n runningMutations.set(dispatch, running);\n running[requestId] = ret;\n ret.then(() => {\n delete running[requestId];\n if (!countObjectKeys(running)) {\n runningMutations.delete(dispatch);\n }\n });\n if (fixedCacheKey) {\n running[fixedCacheKey] = ret;\n ret.then(() => {\n if (running[fixedCacheKey] === ret) {\n delete running[fixedCacheKey];\n if (!countObjectKeys(running)) {\n runningMutations.delete(dispatch);\n }\n }\n });\n }\n return ret;\n };\n }\n}\n\n// src/query/core/buildThunks.ts\nfunction defaultTransformResponse(baseQueryReturnValue) {\n return baseQueryReturnValue;\n}\nfunction buildThunks({\n reducerPath,\n baseQuery,\n context: {\n endpointDefinitions\n },\n serializeQueryArgs,\n api,\n assertTagType\n}) {\n const patchQueryData = (endpointName, arg, patches, updateProvided) => (dispatch, getState) => {\n const endpointDefinition = endpointDefinitions[endpointName];\n const queryCacheKey = serializeQueryArgs({\n queryArgs: arg,\n endpointDefinition,\n endpointName\n });\n dispatch(api.internalActions.queryResultPatched({\n queryCacheKey,\n patches\n }));\n if (!updateProvided) {\n return;\n }\n const newValue = api.endpoints[endpointName].select(arg)(\n // Work around TS 4.1 mismatch\n getState()\n );\n const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, void 0, arg, {}, assertTagType);\n dispatch(api.internalActions.updateProvidedBy({\n queryCacheKey,\n providedTags\n }));\n };\n const updateQueryData = (endpointName, arg, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n const endpointDefinition = api.endpoints[endpointName];\n const currentState = endpointDefinition.select(arg)(\n // Work around TS 4.1 mismatch\n getState()\n );\n const ret = {\n patches: [],\n inversePatches: [],\n undo: () => dispatch(api.util.patchQueryData(endpointName, arg, ret.inversePatches, updateProvided))\n };\n if (currentState.status === \"uninitialized\" /* uninitialized */) {\n return ret;\n }\n let newValue;\n if (\"data\" in currentState) {\n if ((0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraftable)(currentState.data)) {\n const [value, patches, inversePatches] = (0,immer__WEBPACK_IMPORTED_MODULE_2__.produceWithPatches)(currentState.data, updateRecipe);\n ret.patches.push(...patches);\n ret.inversePatches.push(...inversePatches);\n newValue = value;\n } else {\n newValue = updateRecipe(currentState.data);\n ret.patches.push({\n op: \"replace\",\n path: [],\n value: newValue\n });\n ret.inversePatches.push({\n op: \"replace\",\n path: [],\n value: currentState.data\n });\n }\n }\n if (ret.patches.length === 0) {\n return ret;\n }\n dispatch(api.util.patchQueryData(endpointName, arg, ret.patches, updateProvided));\n return ret;\n };\n const upsertQueryData = (endpointName, arg, value) => (dispatch) => {\n return dispatch(api.endpoints[endpointName].initiate(arg, {\n subscribe: false,\n forceRefetch: true,\n [forceQueryFnSymbol]: () => ({\n data: value\n })\n }));\n };\n const executeEndpoint = async (arg, {\n signal,\n abort,\n rejectWithValue,\n fulfillWithValue,\n dispatch,\n getState,\n extra\n }) => {\n const endpointDefinition = endpointDefinitions[arg.endpointName];\n try {\n let transformResponse = defaultTransformResponse;\n let result;\n const baseQueryApi = {\n signal,\n abort,\n dispatch,\n getState,\n extra,\n endpoint: arg.endpointName,\n type: arg.type,\n forced: arg.type === \"query\" ? isForcedQuery(arg, getState()) : void 0,\n queryCacheKey: arg.type === \"query\" ? arg.queryCacheKey : void 0\n };\n const forceQueryFn = arg.type === \"query\" ? arg[forceQueryFnSymbol] : void 0;\n if (forceQueryFn) {\n result = forceQueryFn();\n } else if (endpointDefinition.query) {\n result = await baseQuery(endpointDefinition.query(arg.originalArgs), baseQueryApi, endpointDefinition.extraOptions);\n if (endpointDefinition.transformResponse) {\n transformResponse = endpointDefinition.transformResponse;\n }\n } else {\n result = await endpointDefinition.queryFn(arg.originalArgs, baseQueryApi, endpointDefinition.extraOptions, (arg2) => baseQuery(arg2, baseQueryApi, endpointDefinition.extraOptions));\n }\n if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n const what = endpointDefinition.query ? \"`baseQuery`\" : \"`queryFn`\";\n let err;\n if (!result) {\n err = `${what} did not return anything.`;\n } else if (typeof result !== \"object\") {\n err = `${what} did not return an object.`;\n } else if (result.error && result.data) {\n err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n } else if (result.error === void 0 && result.data === void 0) {\n err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n } else {\n for (const key of Object.keys(result)) {\n if (key !== \"error\" && key !== \"data\" && key !== \"meta\") {\n err = `The object returned by ${what} has the unknown property ${key}.`;\n break;\n }\n }\n }\n if (err) {\n console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n ${err}\n It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\n Object returned was:`, result);\n }\n }\n if (result.error) throw new HandledError(result.error, result.meta);\n return fulfillWithValue(await transformResponse(result.data, result.meta, arg.originalArgs), {\n fulfilledTimeStamp: Date.now(),\n baseQueryMeta: result.meta,\n [_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.SHOULD_AUTOBATCH]: true\n });\n } catch (error) {\n let catchedError = error;\n if (catchedError instanceof HandledError) {\n let transformErrorResponse = defaultTransformResponse;\n if (endpointDefinition.query && endpointDefinition.transformErrorResponse) {\n transformErrorResponse = endpointDefinition.transformErrorResponse;\n }\n try {\n return rejectWithValue(await transformErrorResponse(catchedError.value, catchedError.meta, arg.originalArgs), {\n baseQueryMeta: catchedError.meta,\n [_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.SHOULD_AUTOBATCH]: true\n });\n } catch (e) {\n catchedError = e;\n }\n }\n if (typeof process !== \"undefined\" && \"development\" !== \"production\") {\n console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, catchedError);\n } else {\n console.error(catchedError);\n }\n throw catchedError;\n }\n };\n function isForcedQuery(arg, state) {\n const requestState = state[reducerPath]?.queries?.[arg.queryCacheKey];\n const baseFetchOnMountOrArgChange = state[reducerPath]?.config.refetchOnMountOrArgChange;\n const fulfilledVal = requestState?.fulfilledTimeStamp;\n const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n if (refetchVal) {\n return refetchVal === true || (Number(/* @__PURE__ */ new Date()) - Number(fulfilledVal)) / 1e3 >= refetchVal;\n }\n return false;\n }\n const queryThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAsyncThunk)(`${reducerPath}/executeQuery`, executeEndpoint, {\n getPendingMeta() {\n return {\n startedTimeStamp: Date.now(),\n [_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.SHOULD_AUTOBATCH]: true\n };\n },\n condition(queryThunkArgs, {\n getState\n }) {\n const state = getState();\n const requestState = state[reducerPath]?.queries?.[queryThunkArgs.queryCacheKey];\n const fulfilledVal = requestState?.fulfilledTimeStamp;\n const currentArg = queryThunkArgs.originalArgs;\n const previousArg = requestState?.originalArgs;\n const endpointDefinition = endpointDefinitions[queryThunkArgs.endpointName];\n if (isUpsertQuery(queryThunkArgs)) {\n return true;\n }\n if (requestState?.status === \"pending\") {\n return false;\n }\n if (isForcedQuery(queryThunkArgs, state)) {\n return true;\n }\n if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n currentArg,\n previousArg,\n endpointState: requestState,\n state\n })) {\n return true;\n }\n if (fulfilledVal) {\n return false;\n }\n return true;\n },\n dispatchConditionRejection: true\n });\n const mutationThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAsyncThunk)(`${reducerPath}/executeMutation`, executeEndpoint, {\n getPendingMeta() {\n return {\n startedTimeStamp: Date.now(),\n [_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.SHOULD_AUTOBATCH]: true\n };\n }\n });\n const hasTheForce = (options) => \"force\" in options;\n const hasMaxAge = (options) => \"ifOlderThan\" in options;\n const prefetch = (endpointName, arg, options) => (dispatch, getState) => {\n const force = hasTheForce(options) && options.force;\n const maxAge = hasMaxAge(options) && options.ifOlderThan;\n const queryAction = (force2 = true) => {\n const options2 = {\n forceRefetch: force2,\n isPrefetch: true\n };\n return api.endpoints[endpointName].initiate(arg, options2);\n };\n const latestStateValue = api.endpoints[endpointName].select(arg)(getState());\n if (force) {\n dispatch(queryAction());\n } else if (maxAge) {\n const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n if (!lastFulfilledTs) {\n dispatch(queryAction());\n return;\n }\n const shouldRetrigger = (Number(/* @__PURE__ */ new Date()) - Number(new Date(lastFulfilledTs))) / 1e3 >= maxAge;\n if (shouldRetrigger) {\n dispatch(queryAction());\n }\n } else {\n dispatch(queryAction(false));\n }\n };\n function matchesEndpoint(endpointName) {\n return (action) => action?.meta?.arg?.endpointName === endpointName;\n }\n function buildMatchThunkActions(thunk, endpointName) {\n return {\n matchPending: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAllOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isPending)(thunk), matchesEndpoint(endpointName)),\n matchFulfilled: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAllOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(thunk), matchesEndpoint(endpointName)),\n matchRejected: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAllOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejected)(thunk), matchesEndpoint(endpointName))\n };\n }\n return {\n queryThunk,\n mutationThunk,\n prefetch,\n updateQueryData,\n upsertQueryData,\n patchQueryData,\n buildMatchThunkActions\n };\n}\nfunction calculateProvidedByThunk(action, type, endpointDefinitions, assertTagType) {\n return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type], (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(action) ? action.payload : void 0, (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejectedWithValue)(action) ? action.payload : void 0, action.meta.arg.originalArgs, \"baseQueryMeta\" in action.meta ? action.meta.baseQueryMeta : void 0, assertTagType);\n}\n\n// src/query/core/buildSlice.ts\n\n\nfunction updateQuerySubstateIfExists(state, queryCacheKey, update) {\n const substate = state[queryCacheKey];\n if (substate) {\n update(substate);\n }\n}\nfunction getMutationCacheKey(id) {\n return (\"arg\" in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state, id, update) {\n const substate = state[getMutationCacheKey(id)];\n if (substate) {\n update(substate);\n }\n}\nvar initialState = {};\nfunction buildSlice({\n reducerPath,\n queryThunk,\n mutationThunk,\n serializeQueryArgs,\n context: {\n endpointDefinitions: definitions,\n apiUid,\n extractRehydrationInfo,\n hasRehydrationInfo\n },\n assertTagType,\n config\n}) {\n const resetApiState = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(`${reducerPath}/resetApiState`);\n function writePendingCacheEntry(draft, arg, upserting, meta) {\n draft[arg.queryCacheKey] ??= {\n status: \"uninitialized\" /* uninitialized */,\n endpointName: arg.endpointName\n };\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\n substate.status = \"pending\" /* pending */;\n substate.requestId = upserting && substate.requestId ? (\n // for `upsertQuery` **updates**, keep the current `requestId`\n substate.requestId\n ) : (\n // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n meta.requestId\n );\n if (arg.originalArgs !== void 0) {\n substate.originalArgs = arg.originalArgs;\n }\n substate.startedTimeStamp = meta.startedTimeStamp;\n });\n }\n function writeFulfilledCacheEntry(draft, meta, payload) {\n updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {\n if (substate.requestId !== meta.requestId && !isUpsertQuery(meta.arg)) return;\n const {\n merge\n } = definitions[meta.arg.endpointName];\n substate.status = \"fulfilled\" /* fulfilled */;\n if (merge) {\n if (substate.data !== void 0) {\n const {\n fulfilledTimeStamp,\n arg,\n baseQueryMeta,\n requestId\n } = meta;\n let newData = (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(substate.data, (draftSubstateData) => {\n return merge(draftSubstateData, payload, {\n arg: arg.originalArgs,\n baseQueryMeta,\n fulfilledTimeStamp,\n requestId\n });\n });\n substate.data = newData;\n } else {\n substate.data = payload;\n }\n } else {\n substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing((0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraft)(substate.data) ? (0,immer__WEBPACK_IMPORTED_MODULE_2__.original)(substate.data) : substate.data, payload) : payload;\n }\n delete substate.error;\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n });\n }\n const querySlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/queries`,\n initialState,\n reducers: {\n removeQueryResult: {\n reducer(draft, {\n payload: {\n queryCacheKey\n }\n }) {\n delete draft[queryCacheKey];\n },\n prepare: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.prepareAutoBatched)()\n },\n cacheEntriesUpserted: {\n reducer(draft, action) {\n for (const entry of action.payload) {\n const {\n queryDescription: arg,\n value\n } = entry;\n writePendingCacheEntry(draft, arg, true, {\n arg,\n requestId: action.meta.requestId,\n startedTimeStamp: action.meta.timestamp\n });\n writeFulfilledCacheEntry(draft, {\n arg,\n requestId: action.meta.requestId,\n fulfilledTimeStamp: action.meta.timestamp,\n baseQueryMeta: {}\n }, value);\n }\n },\n prepare: (payload) => {\n const queryDescriptions = payload.map((entry) => {\n const {\n endpointName,\n arg,\n value\n } = entry;\n const endpointDefinition = definitions[endpointName];\n const queryDescription = {\n type: \"query\",\n endpointName,\n originalArgs: entry.arg,\n queryCacheKey: serializeQueryArgs({\n queryArgs: arg,\n endpointDefinition,\n endpointName\n })\n };\n return {\n queryDescription,\n value\n };\n });\n const result = {\n payload: queryDescriptions,\n meta: {\n [_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.SHOULD_AUTOBATCH]: true,\n requestId: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.nanoid)(),\n timestamp: Date.now()\n }\n };\n return result;\n }\n },\n queryResultPatched: {\n reducer(draft, {\n payload: {\n queryCacheKey,\n patches\n }\n }) {\n updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {\n substate.data = (0,immer__WEBPACK_IMPORTED_MODULE_2__.applyPatches)(substate.data, patches.concat());\n });\n },\n prepare: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.prepareAutoBatched)()\n }\n },\n extraReducers(builder) {\n builder.addCase(queryThunk.pending, (draft, {\n meta,\n meta: {\n arg\n }\n }) => {\n const upserting = isUpsertQuery(arg);\n writePendingCacheEntry(draft, arg, upserting, meta);\n }).addCase(queryThunk.fulfilled, (draft, {\n meta,\n payload\n }) => {\n writeFulfilledCacheEntry(draft, meta, payload);\n }).addCase(queryThunk.rejected, (draft, {\n meta: {\n condition,\n arg,\n requestId\n },\n error,\n payload\n }) => {\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\n if (condition) {\n } else {\n if (substate.requestId !== requestId) return;\n substate.status = \"rejected\" /* rejected */;\n substate.error = payload ?? error;\n }\n });\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n queries\n } = extractRehydrationInfo(action);\n for (const [key, entry] of Object.entries(queries)) {\n if (\n // do not rehydrate entries that were currently in flight.\n entry?.status === \"fulfilled\" /* fulfilled */ || entry?.status === \"rejected\" /* rejected */\n ) {\n draft[key] = entry;\n }\n }\n });\n }\n });\n const mutationSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/mutations`,\n initialState,\n reducers: {\n removeMutationResult: {\n reducer(draft, {\n payload\n }) {\n const cacheKey = getMutationCacheKey(payload);\n if (cacheKey in draft) {\n delete draft[cacheKey];\n }\n },\n prepare: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.prepareAutoBatched)()\n }\n },\n extraReducers(builder) {\n builder.addCase(mutationThunk.pending, (draft, {\n meta,\n meta: {\n requestId,\n arg,\n startedTimeStamp\n }\n }) => {\n if (!arg.track) return;\n draft[getMutationCacheKey(meta)] = {\n requestId,\n status: \"pending\" /* pending */,\n endpointName: arg.endpointName,\n startedTimeStamp\n };\n }).addCase(mutationThunk.fulfilled, (draft, {\n payload,\n meta\n }) => {\n if (!meta.arg.track) return;\n updateMutationSubstateIfExists(draft, meta, (substate) => {\n if (substate.requestId !== meta.requestId) return;\n substate.status = \"fulfilled\" /* fulfilled */;\n substate.data = payload;\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n });\n }).addCase(mutationThunk.rejected, (draft, {\n payload,\n error,\n meta\n }) => {\n if (!meta.arg.track) return;\n updateMutationSubstateIfExists(draft, meta, (substate) => {\n if (substate.requestId !== meta.requestId) return;\n substate.status = \"rejected\" /* rejected */;\n substate.error = payload ?? error;\n });\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n mutations\n } = extractRehydrationInfo(action);\n for (const [key, entry] of Object.entries(mutations)) {\n if (\n // do not rehydrate entries that were currently in flight.\n (entry?.status === \"fulfilled\" /* fulfilled */ || entry?.status === \"rejected\" /* rejected */) && // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n key !== entry?.requestId\n ) {\n draft[key] = entry;\n }\n }\n });\n }\n });\n const invalidationSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/invalidation`,\n initialState,\n reducers: {\n updateProvidedBy: {\n reducer(draft, action) {\n const {\n queryCacheKey,\n providedTags\n } = action.payload;\n for (const tagTypeSubscriptions of Object.values(draft)) {\n for (const idSubscriptions of Object.values(tagTypeSubscriptions)) {\n const foundAt = idSubscriptions.indexOf(queryCacheKey);\n if (foundAt !== -1) {\n idSubscriptions.splice(foundAt, 1);\n }\n }\n }\n for (const {\n type,\n id\n } of providedTags) {\n const subscribedQueries = (draft[type] ??= {})[id || \"__internal_without_id\"] ??= [];\n const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n if (!alreadySubscribed) {\n subscribedQueries.push(queryCacheKey);\n }\n }\n },\n prepare: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.prepareAutoBatched)()\n }\n },\n extraReducers(builder) {\n builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n payload: {\n queryCacheKey\n }\n }) => {\n for (const tagTypeSubscriptions of Object.values(draft)) {\n for (const idSubscriptions of Object.values(tagTypeSubscriptions)) {\n const foundAt = idSubscriptions.indexOf(queryCacheKey);\n if (foundAt !== -1) {\n idSubscriptions.splice(foundAt, 1);\n }\n }\n }\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n provided\n } = extractRehydrationInfo(action);\n for (const [type, incomingTags] of Object.entries(provided)) {\n for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n const subscribedQueries = (draft[type] ??= {})[id || \"__internal_without_id\"] ??= [];\n for (const queryCacheKey of cacheKeys) {\n const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n if (!alreadySubscribed) {\n subscribedQueries.push(queryCacheKey);\n }\n }\n }\n }\n }).addMatcher((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAnyOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(queryThunk), (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejectedWithValue)(queryThunk)), (draft, action) => {\n const providedTags = calculateProvidedByThunk(action, \"providesTags\", definitions, assertTagType);\n const {\n queryCacheKey\n } = action.meta.arg;\n invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy({\n queryCacheKey,\n providedTags\n }));\n });\n }\n });\n const subscriptionSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/subscriptions`,\n initialState,\n reducers: {\n updateSubscriptionOptions(d, a) {\n },\n unsubscribeQueryResult(d, a) {\n },\n internal_getRTKQSubscriptions() {\n }\n }\n });\n const internalSubscriptionsSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/internalSubscriptions`,\n initialState,\n reducers: {\n subscriptionsUpdated: {\n reducer(state, action) {\n return (0,immer__WEBPACK_IMPORTED_MODULE_2__.applyPatches)(state, action.payload);\n },\n prepare: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.prepareAutoBatched)()\n }\n }\n });\n const configSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({\n name: `${reducerPath}/config`,\n initialState: {\n online: isOnline(),\n focused: isDocumentVisible(),\n middlewareRegistered: false,\n ...config\n },\n reducers: {\n middlewareRegistered(state, {\n payload\n }) {\n state.middlewareRegistered = state.middlewareRegistered === \"conflict\" || apiUid !== payload ? \"conflict\" : true;\n }\n },\n extraReducers: (builder) => {\n builder.addCase(onOnline, (state) => {\n state.online = true;\n }).addCase(onOffline, (state) => {\n state.online = false;\n }).addCase(onFocus, (state) => {\n state.focused = true;\n }).addCase(onFocusLost, (state) => {\n state.focused = false;\n }).addMatcher(hasRehydrationInfo, (draft) => ({\n ...draft\n }));\n }\n });\n const combinedReducer = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.combineReducers)({\n queries: querySlice.reducer,\n mutations: mutationSlice.reducer,\n provided: invalidationSlice.reducer,\n subscriptions: internalSubscriptionsSlice.reducer,\n config: configSlice.reducer\n });\n const reducer = (state, action) => combinedReducer(resetApiState.match(action) ? void 0 : state, action);\n const actions = {\n ...configSlice.actions,\n ...querySlice.actions,\n ...subscriptionSlice.actions,\n ...internalSubscriptionsSlice.actions,\n ...mutationSlice.actions,\n ...invalidationSlice.actions,\n resetApiState\n };\n return {\n reducer,\n actions\n };\n}\n\n// src/query/core/buildSelectors.ts\nvar skipToken = /* @__PURE__ */ Symbol.for(\"RTKQ/skipToken\");\nvar initialSubState = {\n status: \"uninitialized\" /* uninitialized */\n};\nvar defaultQuerySubState = /* @__PURE__ */ (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(initialSubState, () => {\n});\nvar defaultMutationSubState = /* @__PURE__ */ (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(initialSubState, () => {\n});\nfunction buildSelectors({\n serializeQueryArgs,\n reducerPath,\n createSelector: createSelector2\n}) {\n const selectSkippedQuery = (state) => defaultQuerySubState;\n const selectSkippedMutation = (state) => defaultMutationSubState;\n return {\n buildQuerySelector,\n buildMutationSelector,\n selectInvalidatedBy,\n selectCachedArgsForQuery\n };\n function withRequestFlags(substate) {\n return {\n ...substate,\n ...getRequestStatusFlags(substate.status)\n };\n }\n function selectInternalState(rootState) {\n const state = rootState[reducerPath];\n if (true) {\n if (!state) {\n if (selectInternalState.triggered) return state;\n selectInternalState.triggered = true;\n console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n }\n }\n return state;\n }\n function buildQuerySelector(endpointName, endpointDefinition) {\n return (queryArgs) => {\n if (queryArgs === skipToken) {\n return createSelector2(selectSkippedQuery, withRequestFlags);\n }\n const serializedArgs = serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n });\n const selectQuerySubstate = (state) => selectInternalState(state)?.queries?.[serializedArgs] ?? defaultQuerySubState;\n return createSelector2(selectQuerySubstate, withRequestFlags);\n };\n }\n function buildMutationSelector() {\n return (id) => {\n let mutationId;\n if (typeof id === \"object\") {\n mutationId = getMutationCacheKey(id) ?? skipToken;\n } else {\n mutationId = id;\n }\n const selectMutationSubstate = (state) => selectInternalState(state)?.mutations?.[mutationId] ?? defaultMutationSubState;\n const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n return createSelector2(finalSelectMutationSubstate, withRequestFlags);\n };\n }\n function selectInvalidatedBy(state, tags) {\n const apiState = state[reducerPath];\n const toInvalidate = /* @__PURE__ */ new Set();\n for (const tag of tags.filter(isNotNullish).map(expandTagDescription)) {\n const provided = apiState.provided[tag.type];\n if (!provided) {\n continue;\n }\n let invalidateSubscriptions = (tag.id !== void 0 ? (\n // id given: invalidate all queries that provide this type & id\n provided[tag.id]\n ) : (\n // no id: invalidate all queries that provide this type\n flatten(Object.values(provided))\n )) ?? [];\n for (const invalidate of invalidateSubscriptions) {\n toInvalidate.add(invalidate);\n }\n }\n return flatten(Array.from(toInvalidate.values()).map((queryCacheKey) => {\n const querySubState = apiState.queries[queryCacheKey];\n return querySubState ? [{\n queryCacheKey,\n endpointName: querySubState.endpointName,\n originalArgs: querySubState.originalArgs\n }] : [];\n }));\n }\n function selectCachedArgsForQuery(state, queryName) {\n return Object.values(state[reducerPath].queries).filter((entry) => entry?.endpointName === queryName && entry.status !== \"uninitialized\" /* uninitialized */).map((entry) => entry.originalArgs);\n }\n}\n\n// src/query/createApi.ts\n\n\n// src/query/defaultSerializeQueryArgs.ts\nvar cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;\nvar defaultSerializeQueryArgs = ({\n endpointName,\n queryArgs\n}) => {\n let serialized = \"\";\n const cached = cache?.get(queryArgs);\n if (typeof cached === \"string\") {\n serialized = cached;\n } else {\n const stringified = JSON.stringify(queryArgs, (key, value) => {\n value = typeof value === \"bigint\" ? {\n $bigint: value.toString()\n } : value;\n value = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(value) ? Object.keys(value).sort().reduce((acc, key2) => {\n acc[key2] = value[key2];\n return acc;\n }, {}) : value;\n return value;\n });\n if ((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(queryArgs)) {\n cache?.set(queryArgs, stringified);\n }\n serialized = stringified;\n }\n return `${endpointName}(${serialized})`;\n};\n\n// src/query/createApi.ts\n\nfunction buildCreateApi(...modules) {\n return function baseCreateApi(options) {\n const extractRehydrationInfo = (0,reselect__WEBPACK_IMPORTED_MODULE_3__.weakMapMemoize)((action) => options.extractRehydrationInfo?.(action, {\n reducerPath: options.reducerPath ?? \"api\"\n }));\n const optionsWithDefaults = {\n reducerPath: \"api\",\n keepUnusedDataFor: 60,\n refetchOnMountOrArgChange: false,\n refetchOnFocus: false,\n refetchOnReconnect: false,\n invalidationBehavior: \"delayed\",\n ...options,\n extractRehydrationInfo,\n serializeQueryArgs(queryArgsApi) {\n let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n if (\"serializeQueryArgs\" in queryArgsApi.endpointDefinition) {\n const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs;\n finalSerializeQueryArgs = (queryArgsApi2) => {\n const initialResult = endpointSQA(queryArgsApi2);\n if (typeof initialResult === \"string\") {\n return initialResult;\n } else {\n return defaultSerializeQueryArgs({\n ...queryArgsApi2,\n queryArgs: initialResult\n });\n }\n };\n } else if (options.serializeQueryArgs) {\n finalSerializeQueryArgs = options.serializeQueryArgs;\n }\n return finalSerializeQueryArgs(queryArgsApi);\n },\n tagTypes: [...options.tagTypes || []]\n };\n const context = {\n endpointDefinitions: {},\n batch(fn) {\n fn();\n },\n apiUid: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.nanoid)(),\n extractRehydrationInfo,\n hasRehydrationInfo: (0,reselect__WEBPACK_IMPORTED_MODULE_3__.weakMapMemoize)((action) => extractRehydrationInfo(action) != null)\n };\n const api = {\n injectEndpoints,\n enhanceEndpoints({\n addTagTypes,\n endpoints\n }) {\n if (addTagTypes) {\n for (const eT of addTagTypes) {\n if (!optionsWithDefaults.tagTypes.includes(eT)) {\n ;\n optionsWithDefaults.tagTypes.push(eT);\n }\n }\n }\n if (endpoints) {\n for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n if (typeof partialDefinition === \"function\") {\n partialDefinition(context.endpointDefinitions[endpointName]);\n } else {\n Object.assign(context.endpointDefinitions[endpointName] || {}, partialDefinition);\n }\n }\n }\n return api;\n }\n };\n const initializedModules = modules.map((m) => m.init(api, optionsWithDefaults, context));\n function injectEndpoints(inject) {\n const evaluatedEndpoints = inject.endpoints({\n query: (x) => ({\n ...x,\n type: \"query\" /* query */\n }),\n mutation: (x) => ({\n ...x,\n type: \"mutation\" /* mutation */\n })\n });\n for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n if (inject.overrideExisting === \"throw\") {\n throw new Error( false ? 0 : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n } else if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n }\n continue;\n }\n context.endpointDefinitions[endpointName] = definition;\n for (const m of initializedModules) {\n m.injectEndpoint(endpointName, definition);\n }\n }\n return api;\n }\n return api.injectEndpoints({\n endpoints: options.endpoints\n });\n };\n}\n\n// src/query/fakeBaseQuery.ts\n\nvar _NEVER = /* @__PURE__ */ Symbol();\nfunction fakeBaseQuery() {\n return function() {\n throw new Error( false ? 0 : \"When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.\");\n };\n}\n\n// src/query/core/module.ts\n\n\n// src/query/tsHelpers.ts\nfunction assertCast(v) {\n}\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/core/buildMiddleware/batchActions.ts\n\nvar buildBatchedActionsHandler = ({\n api,\n queryThunk,\n internalState\n}) => {\n const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n let previousSubscriptions = null;\n let updateSyncTimer = null;\n const {\n updateSubscriptionOptions,\n unsubscribeQueryResult\n } = api.internalActions;\n const actuallyMutateSubscriptions = (mutableState, action) => {\n if (updateSubscriptionOptions.match(action)) {\n const {\n queryCacheKey,\n requestId,\n options\n } = action.payload;\n if (mutableState?.[queryCacheKey]?.[requestId]) {\n mutableState[queryCacheKey][requestId] = options;\n }\n return true;\n }\n if (unsubscribeQueryResult.match(action)) {\n const {\n queryCacheKey,\n requestId\n } = action.payload;\n if (mutableState[queryCacheKey]) {\n delete mutableState[queryCacheKey][requestId];\n }\n return true;\n }\n if (api.internalActions.removeQueryResult.match(action)) {\n delete mutableState[action.payload.queryCacheKey];\n return true;\n }\n if (queryThunk.pending.match(action)) {\n const {\n meta: {\n arg,\n requestId\n }\n } = action;\n const substate = mutableState[arg.queryCacheKey] ??= {};\n substate[`${requestId}_running`] = {};\n if (arg.subscribe) {\n substate[requestId] = arg.subscriptionOptions ?? substate[requestId] ?? {};\n }\n return true;\n }\n let mutated = false;\n if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action)) {\n const state = mutableState[action.meta.arg.queryCacheKey] || {};\n const key = `${action.meta.requestId}_running`;\n mutated ||= !!state[key];\n delete state[key];\n }\n if (queryThunk.rejected.match(action)) {\n const {\n meta: {\n condition,\n arg,\n requestId\n }\n } = action;\n if (condition && arg.subscribe) {\n const substate = mutableState[arg.queryCacheKey] ??= {};\n substate[requestId] = arg.subscriptionOptions ?? substate[requestId] ?? {};\n mutated = true;\n }\n }\n return mutated;\n };\n const getSubscriptions = () => internalState.currentSubscriptions;\n const getSubscriptionCount = (queryCacheKey) => {\n const subscriptions = getSubscriptions();\n const subscriptionsForQueryArg = subscriptions[queryCacheKey] ?? {};\n return countObjectKeys(subscriptionsForQueryArg);\n };\n const isRequestSubscribed = (queryCacheKey, requestId) => {\n const subscriptions = getSubscriptions();\n return !!subscriptions?.[queryCacheKey]?.[requestId];\n };\n const subscriptionSelectors = {\n getSubscriptions,\n getSubscriptionCount,\n isRequestSubscribed\n };\n return (action, mwApi) => {\n if (!previousSubscriptions) {\n previousSubscriptions = JSON.parse(JSON.stringify(internalState.currentSubscriptions));\n }\n if (api.util.resetApiState.match(action)) {\n previousSubscriptions = internalState.currentSubscriptions = {};\n updateSyncTimer = null;\n return [true, false];\n }\n if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n return [false, subscriptionSelectors];\n }\n const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n let actionShouldContinue = true;\n if (didMutate) {\n if (!updateSyncTimer) {\n updateSyncTimer = setTimeout(() => {\n const newSubscriptions = JSON.parse(JSON.stringify(internalState.currentSubscriptions));\n const [, patches] = (0,immer__WEBPACK_IMPORTED_MODULE_2__.produceWithPatches)(previousSubscriptions, () => newSubscriptions);\n mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n previousSubscriptions = newSubscriptions;\n updateSyncTimer = null;\n }, 500);\n }\n const isSubscriptionSliceAction = typeof action.type == \"string\" && !!action.type.startsWith(subscriptionsPrefix);\n const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n }\n return [actionShouldContinue, false];\n };\n};\n\n// src/query/core/buildMiddleware/cacheCollection.ts\nfunction isObjectEmpty(obj) {\n for (const k in obj) {\n return false;\n }\n return true;\n}\nvar THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2147483647 / 1e3 - 1;\nvar buildCacheCollectionHandler = ({\n reducerPath,\n api,\n queryThunk,\n context,\n internalState\n}) => {\n const {\n removeQueryResult,\n unsubscribeQueryResult,\n cacheEntriesUpserted\n } = api.internalActions;\n const canTriggerUnsubscribe = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAnyOf)(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);\n function anySubscriptionsRemainingForKey(queryCacheKey) {\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n return !!subscriptions && !isObjectEmpty(subscriptions);\n }\n const currentRemovalTimeouts = {};\n const handler = (action, mwApi, internalState2) => {\n if (canTriggerUnsubscribe(action)) {\n const state = mwApi.getState()[reducerPath];\n let queryCacheKeys;\n if (cacheEntriesUpserted.match(action)) {\n queryCacheKeys = action.payload.map((entry) => entry.queryDescription.queryCacheKey);\n } else {\n const {\n queryCacheKey\n } = unsubscribeQueryResult.match(action) ? action.payload : action.meta.arg;\n queryCacheKeys = [queryCacheKey];\n }\n for (const queryCacheKey of queryCacheKeys) {\n handleUnsubscribe(queryCacheKey, state.queries[queryCacheKey]?.endpointName, mwApi, state.config);\n }\n }\n if (api.util.resetApiState.match(action)) {\n for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n if (timeout) clearTimeout(timeout);\n delete currentRemovalTimeouts[key];\n }\n }\n if (context.hasRehydrationInfo(action)) {\n const state = mwApi.getState()[reducerPath];\n const {\n queries\n } = context.extractRehydrationInfo(action);\n for (const [queryCacheKey, queryState] of Object.entries(queries)) {\n handleUnsubscribe(queryCacheKey, queryState?.endpointName, mwApi, state.config);\n }\n }\n };\n function handleUnsubscribe(queryCacheKey, endpointName, api2, config) {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n if (keepUnusedDataFor === Infinity) {\n return;\n }\n const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n if (currentTimeout) {\n clearTimeout(currentTimeout);\n }\n currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n api2.dispatch(removeQueryResult({\n queryCacheKey\n }));\n }\n delete currentRemovalTimeouts[queryCacheKey];\n }, finalKeepUnusedDataFor * 1e3);\n }\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/cacheLifecycle.ts\nvar neverResolvedError = new Error(\"Promise never resolved before cacheEntryRemoved.\");\nvar buildCacheLifecycleHandler = ({\n api,\n reducerPath,\n context,\n queryThunk,\n mutationThunk,\n internalState\n}) => {\n const isQueryThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAsyncThunkAction)(queryThunk);\n const isMutationThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAsyncThunkAction)(mutationThunk);\n const isFulfilledThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(queryThunk, mutationThunk);\n const lifecycleMap = {};\n function resolveLifecycleEntry(cacheKey, data, meta) {\n const lifecycle = lifecycleMap[cacheKey];\n if (lifecycle?.valueResolved) {\n lifecycle.valueResolved({\n data,\n meta\n });\n delete lifecycle.valueResolved;\n }\n }\n function removeLifecycleEntry(cacheKey) {\n const lifecycle = lifecycleMap[cacheKey];\n if (lifecycle) {\n delete lifecycleMap[cacheKey];\n lifecycle.cacheEntryRemoved();\n }\n }\n const handler = (action, mwApi, stateBefore) => {\n const cacheKey = getCacheKey(action);\n function checkForNewCacheKey(endpointName, cacheKey2, requestId, originalArgs) {\n const oldState = stateBefore[reducerPath].queries[cacheKey2];\n const state = mwApi.getState()[reducerPath].queries[cacheKey2];\n if (!oldState && state) {\n handleNewKey(endpointName, originalArgs, cacheKey2, mwApi, requestId);\n }\n }\n if (queryThunk.pending.match(action)) {\n checkForNewCacheKey(action.meta.arg.endpointName, cacheKey, action.meta.requestId, action.meta.arg.originalArgs);\n } else if (api.internalActions.cacheEntriesUpserted.match(action)) {\n for (const {\n queryDescription,\n value\n } of action.payload) {\n const {\n endpointName,\n originalArgs,\n queryCacheKey\n } = queryDescription;\n checkForNewCacheKey(endpointName, queryCacheKey, action.meta.requestId, originalArgs);\n resolveLifecycleEntry(queryCacheKey, value, {});\n }\n } else if (mutationThunk.pending.match(action)) {\n const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n if (state) {\n handleNewKey(action.meta.arg.endpointName, action.meta.arg.originalArgs, cacheKey, mwApi, action.meta.requestId);\n }\n } else if (isFulfilledThunk(action)) {\n resolveLifecycleEntry(cacheKey, action.payload, action.meta.baseQueryMeta);\n } else if (api.internalActions.removeQueryResult.match(action) || api.internalActions.removeMutationResult.match(action)) {\n removeLifecycleEntry(cacheKey);\n } else if (api.util.resetApiState.match(action)) {\n for (const cacheKey2 of Object.keys(lifecycleMap)) {\n removeLifecycleEntry(cacheKey2);\n }\n }\n };\n function getCacheKey(action) {\n if (isQueryThunk(action)) return action.meta.arg.queryCacheKey;\n if (isMutationThunk(action)) {\n return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n }\n if (api.internalActions.removeQueryResult.match(action)) return action.payload.queryCacheKey;\n if (api.internalActions.removeMutationResult.match(action)) return getMutationCacheKey(action.payload);\n return \"\";\n }\n function handleNewKey(endpointName, originalArgs, queryCacheKey, mwApi, requestId) {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n if (!onCacheEntryAdded) return;\n const lifecycle = {};\n const cacheEntryRemoved = new Promise((resolve) => {\n lifecycle.cacheEntryRemoved = resolve;\n });\n const cacheDataLoaded = Promise.race([new Promise((resolve) => {\n lifecycle.valueResolved = resolve;\n }), cacheEntryRemoved.then(() => {\n throw neverResolvedError;\n })]);\n cacheDataLoaded.catch(() => {\n });\n lifecycleMap[queryCacheKey] = lifecycle;\n const selector = api.endpoints[endpointName].select(endpointDefinition.type === \"query\" /* query */ ? originalArgs : queryCacheKey);\n const extra = mwApi.dispatch((_, __, extra2) => extra2);\n const lifecycleApi = {\n ...mwApi,\n getCacheEntry: () => selector(mwApi.getState()),\n requestId,\n extra,\n updateCachedData: endpointDefinition.type === \"query\" /* query */ ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,\n cacheDataLoaded,\n cacheEntryRemoved\n };\n const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi);\n Promise.resolve(runningHandler).catch((e) => {\n if (e === neverResolvedError) return;\n throw e;\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/devMiddleware.ts\nvar buildDevCheckHandler = ({\n api,\n context: {\n apiUid\n },\n reducerPath\n}) => {\n return (action, mwApi) => {\n if (api.util.resetApiState.match(action)) {\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n }\n if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === \"conflict\") {\n console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === \"api\" ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : \"\"}`);\n }\n }\n };\n};\n\n// src/query/core/buildMiddleware/invalidationByTags.ts\nvar buildInvalidationByTagsHandler = ({\n reducerPath,\n context,\n context: {\n endpointDefinitions\n },\n mutationThunk,\n queryThunk,\n api,\n assertTagType,\n refetchQuery,\n internalState\n}) => {\n const {\n removeQueryResult\n } = api.internalActions;\n const isThunkActionWithTags = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAnyOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(mutationThunk), (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejectedWithValue)(mutationThunk));\n const isQueryEnd = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isAnyOf)((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(mutationThunk, queryThunk), (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejected)(mutationThunk, queryThunk));\n let pendingTagInvalidations = [];\n const handler = (action, mwApi) => {\n if (isThunkActionWithTags(action)) {\n invalidateTags(calculateProvidedByThunk(action, \"invalidatesTags\", endpointDefinitions, assertTagType), mwApi);\n } else if (isQueryEnd(action)) {\n invalidateTags([], mwApi);\n } else if (api.util.invalidateTags.match(action)) {\n invalidateTags(calculateProvidedBy(action.payload, void 0, void 0, void 0, void 0, assertTagType), mwApi);\n }\n };\n function hasPendingRequests(state) {\n for (const key in state.queries) {\n if (state.queries[key]?.status === \"pending\" /* pending */) return true;\n }\n for (const key in state.mutations) {\n if (state.mutations[key]?.status === \"pending\" /* pending */) return true;\n }\n return false;\n }\n function invalidateTags(newTags, mwApi) {\n const rootState = mwApi.getState();\n const state = rootState[reducerPath];\n pendingTagInvalidations.push(...newTags);\n if (state.config.invalidationBehavior === \"delayed\" && hasPendingRequests(state)) {\n return;\n }\n const tags = pendingTagInvalidations;\n pendingTagInvalidations = [];\n if (tags.length === 0) return;\n const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n context.batch(() => {\n const valuesArray = Array.from(toInvalidate.values());\n for (const {\n queryCacheKey\n } of valuesArray) {\n const querySubState = state.queries[queryCacheKey];\n const subscriptionSubState = internalState.currentSubscriptions[queryCacheKey] ?? {};\n if (querySubState) {\n if (countObjectKeys(subscriptionSubState) === 0) {\n mwApi.dispatch(removeQueryResult({\n queryCacheKey\n }));\n } else if (querySubState.status !== \"uninitialized\" /* uninitialized */) {\n mwApi.dispatch(refetchQuery(querySubState));\n }\n }\n }\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/polling.ts\nvar buildPollingHandler = ({\n reducerPath,\n queryThunk,\n api,\n refetchQuery,\n internalState\n}) => {\n const currentPolls = {};\n const handler = (action, mwApi) => {\n if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n updatePollingInterval(action.payload, mwApi);\n }\n if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n updatePollingInterval(action.meta.arg, mwApi);\n }\n if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n startNextPoll(action.meta.arg, mwApi);\n }\n if (api.util.resetApiState.match(action)) {\n clearPolls();\n }\n };\n function startNextPoll({\n queryCacheKey\n }, api2) {\n const state = api2.getState()[reducerPath];\n const querySubState = state.queries[queryCacheKey];\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n if (!querySubState || querySubState.status === \"uninitialized\" /* uninitialized */) return;\n const {\n lowestPollingInterval,\n skipPollingIfUnfocused\n } = findLowestPollingInterval(subscriptions);\n if (!Number.isFinite(lowestPollingInterval)) return;\n const currentPoll = currentPolls[queryCacheKey];\n if (currentPoll?.timeout) {\n clearTimeout(currentPoll.timeout);\n currentPoll.timeout = void 0;\n }\n const nextPollTimestamp = Date.now() + lowestPollingInterval;\n currentPolls[queryCacheKey] = {\n nextPollTimestamp,\n pollingInterval: lowestPollingInterval,\n timeout: setTimeout(() => {\n if (state.config.focused || !skipPollingIfUnfocused) {\n api2.dispatch(refetchQuery(querySubState));\n }\n startNextPoll({\n queryCacheKey\n }, api2);\n }, lowestPollingInterval)\n };\n }\n function updatePollingInterval({\n queryCacheKey\n }, api2) {\n const state = api2.getState()[reducerPath];\n const querySubState = state.queries[queryCacheKey];\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n if (!querySubState || querySubState.status === \"uninitialized\" /* uninitialized */) {\n return;\n }\n const {\n lowestPollingInterval\n } = findLowestPollingInterval(subscriptions);\n if (!Number.isFinite(lowestPollingInterval)) {\n cleanupPollForKey(queryCacheKey);\n return;\n }\n const currentPoll = currentPolls[queryCacheKey];\n const nextPollTimestamp = Date.now() + lowestPollingInterval;\n if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n startNextPoll({\n queryCacheKey\n }, api2);\n }\n }\n function cleanupPollForKey(key) {\n const existingPoll = currentPolls[key];\n if (existingPoll?.timeout) {\n clearTimeout(existingPoll.timeout);\n }\n delete currentPolls[key];\n }\n function clearPolls() {\n for (const key of Object.keys(currentPolls)) {\n cleanupPollForKey(key);\n }\n }\n function findLowestPollingInterval(subscribers = {}) {\n let skipPollingIfUnfocused = false;\n let lowestPollingInterval = Number.POSITIVE_INFINITY;\n for (let key in subscribers) {\n if (!!subscribers[key].pollingInterval) {\n lowestPollingInterval = Math.min(subscribers[key].pollingInterval, lowestPollingInterval);\n skipPollingIfUnfocused = subscribers[key].skipPollingIfUnfocused || skipPollingIfUnfocused;\n }\n }\n return {\n lowestPollingInterval,\n skipPollingIfUnfocused\n };\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/queryLifecycle.ts\nvar buildQueryLifecycleHandler = ({\n api,\n context,\n queryThunk,\n mutationThunk\n}) => {\n const isPendingThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isPending)(queryThunk, mutationThunk);\n const isRejectedThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isRejected)(queryThunk, mutationThunk);\n const isFullfilledThunk = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.isFulfilled)(queryThunk, mutationThunk);\n const lifecycleMap = {};\n const handler = (action, mwApi) => {\n if (isPendingThunk(action)) {\n const {\n requestId,\n arg: {\n endpointName,\n originalArgs\n }\n } = action.meta;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const onQueryStarted = endpointDefinition?.onQueryStarted;\n if (onQueryStarted) {\n const lifecycle = {};\n const queryFulfilled = new Promise((resolve, reject) => {\n lifecycle.resolve = resolve;\n lifecycle.reject = reject;\n });\n queryFulfilled.catch(() => {\n });\n lifecycleMap[requestId] = lifecycle;\n const selector = api.endpoints[endpointName].select(endpointDefinition.type === \"query\" /* query */ ? originalArgs : requestId);\n const extra = mwApi.dispatch((_, __, extra2) => extra2);\n const lifecycleApi = {\n ...mwApi,\n getCacheEntry: () => selector(mwApi.getState()),\n requestId,\n extra,\n updateCachedData: endpointDefinition.type === \"query\" /* query */ ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,\n queryFulfilled\n };\n onQueryStarted(originalArgs, lifecycleApi);\n }\n } else if (isFullfilledThunk(action)) {\n const {\n requestId,\n baseQueryMeta\n } = action.meta;\n lifecycleMap[requestId]?.resolve({\n data: action.payload,\n meta: baseQueryMeta\n });\n delete lifecycleMap[requestId];\n } else if (isRejectedThunk(action)) {\n const {\n requestId,\n rejectedWithValue,\n baseQueryMeta\n } = action.meta;\n lifecycleMap[requestId]?.reject({\n error: action.payload ?? action.error,\n isUnhandledError: !rejectedWithValue,\n meta: baseQueryMeta\n });\n delete lifecycleMap[requestId];\n }\n };\n return handler;\n};\n\n// src/query/core/buildMiddleware/windowEventHandling.ts\nvar buildWindowEventHandler = ({\n reducerPath,\n context,\n api,\n refetchQuery,\n internalState\n}) => {\n const {\n removeQueryResult\n } = api.internalActions;\n const handler = (action, mwApi) => {\n if (onFocus.match(action)) {\n refetchValidQueries(mwApi, \"refetchOnFocus\");\n }\n if (onOnline.match(action)) {\n refetchValidQueries(mwApi, \"refetchOnReconnect\");\n }\n };\n function refetchValidQueries(api2, type) {\n const state = api2.getState()[reducerPath];\n const queries = state.queries;\n const subscriptions = internalState.currentSubscriptions;\n context.batch(() => {\n for (const queryCacheKey of Object.keys(subscriptions)) {\n const querySubState = queries[queryCacheKey];\n const subscriptionSubState = subscriptions[queryCacheKey];\n if (!subscriptionSubState || !querySubState) continue;\n const shouldRefetch = Object.values(subscriptionSubState).some((sub) => sub[type] === true) || Object.values(subscriptionSubState).every((sub) => sub[type] === void 0) && state.config[type];\n if (shouldRefetch) {\n if (countObjectKeys(subscriptionSubState) === 0) {\n api2.dispatch(removeQueryResult({\n queryCacheKey\n }));\n } else if (querySubState.status !== \"uninitialized\" /* uninitialized */) {\n api2.dispatch(refetchQuery(querySubState));\n }\n }\n }\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/index.ts\nfunction buildMiddleware(input) {\n const {\n reducerPath,\n queryThunk,\n api,\n context\n } = input;\n const {\n apiUid\n } = context;\n const actions = {\n invalidateTags: (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createAction)(`${reducerPath}/invalidateTags`)\n };\n const isThisApiSliceAction = (action) => action.type.startsWith(`${reducerPath}/`);\n const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n const middleware = (mwApi) => {\n let initialized2 = false;\n const internalState = {\n currentSubscriptions: {}\n };\n const builderArgs = {\n ...input,\n internalState,\n refetchQuery,\n isThisApiSliceAction\n };\n const handlers = handlerBuilders.map((build) => build(builderArgs));\n const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n const windowEventsHandler = buildWindowEventHandler(builderArgs);\n return (next) => {\n return (action) => {\n if (!(0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.isAction)(action)) {\n return next(action);\n }\n if (!initialized2) {\n initialized2 = true;\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n }\n const mwApiWithNext = {\n ...mwApi,\n next\n };\n const stateBefore = mwApi.getState();\n const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n let res;\n if (actionShouldContinue) {\n res = next(action);\n } else {\n res = internalProbeResult;\n }\n if (!!mwApi.getState()[reducerPath]) {\n windowEventsHandler(action, mwApiWithNext, stateBefore);\n if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n for (const handler of handlers) {\n handler(action, mwApiWithNext, stateBefore);\n }\n }\n }\n return res;\n };\n };\n };\n return {\n middleware,\n actions\n };\n function refetchQuery(querySubState) {\n return input.api.endpoints[querySubState.endpointName].initiate(querySubState.originalArgs, {\n subscribe: false,\n forceRefetch: true\n });\n }\n}\n\n// src/query/core/module.ts\nvar coreModuleName = /* @__PURE__ */ Symbol();\nvar coreModule = ({\n createSelector: createSelector2 = reselect__WEBPACK_IMPORTED_MODULE_3__.createSelector\n} = {}) => ({\n name: coreModuleName,\n init(api, {\n baseQuery,\n tagTypes,\n reducerPath,\n serializeQueryArgs,\n keepUnusedDataFor,\n refetchOnMountOrArgChange,\n refetchOnFocus,\n refetchOnReconnect,\n invalidationBehavior\n }, context) {\n (0,immer__WEBPACK_IMPORTED_MODULE_2__.enablePatches)();\n assertCast(serializeQueryArgs);\n const assertTagType = (tag) => {\n if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n if (!tagTypes.includes(tag.type)) {\n console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n }\n }\n return tag;\n };\n Object.assign(api, {\n reducerPath,\n endpoints: {},\n internalActions: {\n onOnline,\n onOffline,\n onFocus,\n onFocusLost\n },\n util: {}\n });\n const {\n queryThunk,\n mutationThunk,\n patchQueryData,\n updateQueryData,\n upsertQueryData,\n prefetch,\n buildMatchThunkActions\n } = buildThunks({\n baseQuery,\n reducerPath,\n context,\n api,\n serializeQueryArgs,\n assertTagType\n });\n const {\n reducer,\n actions: sliceActions\n } = buildSlice({\n context,\n queryThunk,\n mutationThunk,\n serializeQueryArgs,\n reducerPath,\n assertTagType,\n config: {\n refetchOnFocus,\n refetchOnReconnect,\n refetchOnMountOrArgChange,\n keepUnusedDataFor,\n reducerPath,\n invalidationBehavior\n }\n });\n safeAssign(api.util, {\n patchQueryData,\n updateQueryData,\n upsertQueryData,\n prefetch,\n resetApiState: sliceActions.resetApiState,\n upsertQueryEntries: sliceActions.cacheEntriesUpserted\n });\n safeAssign(api.internalActions, sliceActions);\n const {\n middleware,\n actions: middlewareActions\n } = buildMiddleware({\n reducerPath,\n context,\n queryThunk,\n mutationThunk,\n api,\n assertTagType\n });\n safeAssign(api.util, middlewareActions);\n safeAssign(api, {\n reducer,\n middleware\n });\n const {\n buildQuerySelector,\n buildMutationSelector,\n selectInvalidatedBy,\n selectCachedArgsForQuery\n } = buildSelectors({\n serializeQueryArgs,\n reducerPath,\n createSelector: createSelector2\n });\n safeAssign(api.util, {\n selectInvalidatedBy,\n selectCachedArgsForQuery\n });\n const {\n buildInitiateQuery,\n buildInitiateMutation,\n getRunningMutationThunk,\n getRunningMutationsThunk,\n getRunningQueriesThunk,\n getRunningQueryThunk\n } = buildInitiate({\n queryThunk,\n mutationThunk,\n api,\n serializeQueryArgs,\n context\n });\n safeAssign(api.util, {\n getRunningMutationThunk,\n getRunningMutationsThunk,\n getRunningQueryThunk,\n getRunningQueriesThunk\n });\n return {\n name: coreModuleName,\n injectEndpoint(endpointName, definition) {\n const anyApi = api;\n anyApi.endpoints[endpointName] ??= {};\n if (isQueryDefinition(definition)) {\n safeAssign(anyApi.endpoints[endpointName], {\n name: endpointName,\n select: buildQuerySelector(endpointName, definition),\n initiate: buildInitiateQuery(endpointName, definition)\n }, buildMatchThunkActions(queryThunk, endpointName));\n } else if (isMutationDefinition(definition)) {\n safeAssign(anyApi.endpoints[endpointName], {\n name: endpointName,\n select: buildMutationSelector(),\n initiate: buildInitiateMutation(endpointName)\n }, buildMatchThunkActions(mutationThunk, endpointName));\n }\n }\n };\n }\n});\n\n// src/query/core/index.ts\nvar createApi = /* @__PURE__ */ buildCreateApi(coreModule());\n\n//# sourceMappingURL=rtk-query.modern.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmVkdXhqcy90b29sa2l0L2Rpc3QvcXVlcnkvcnRrLXF1ZXJ5Lm1vZGVybi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG1CQUFtQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDdVM7O0FBRXZTO0FBQ0EscUJBQXFCLDJEQUFhO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUk7QUFDbkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTywrREFBYTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsSUFBSTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLGlFQUFpRSwrREFBYTtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBZUU7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHJlZHV4anMvdG9vbGtpdC9kaXN0L3F1ZXJ5L3J0ay1xdWVyeS5tb2Rlcm4ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9xdWVyeS9jb3JlL2FwaVN0YXRlLnRzXG52YXIgUXVlcnlTdGF0dXMgPSAvKiBAX19QVVJFX18gKi8gKChRdWVyeVN0YXR1czIpID0+IHtcbiAgUXVlcnlTdGF0dXMyW1widW5pbml0aWFsaXplZFwiXSA9IFwidW5pbml0aWFsaXplZFwiO1xuICBRdWVyeVN0YXR1czJbXCJwZW5kaW5nXCJdID0gXCJwZW5kaW5nXCI7XG4gIFF1ZXJ5U3RhdHVzMltcImZ1bGZpbGxlZFwiXSA9IFwiZnVsZmlsbGVkXCI7XG4gIFF1ZXJ5U3RhdHVzMltcInJlamVjdGVkXCJdID0gXCJyZWplY3RlZFwiO1xuICByZXR1cm4gUXVlcnlTdGF0dXMyO1xufSkoUXVlcnlTdGF0dXMgfHwge30pO1xuZnVuY3Rpb24gZ2V0UmVxdWVzdFN0YXR1c0ZsYWdzKHN0YXR1cykge1xuICByZXR1cm4ge1xuICAgIHN0YXR1cyxcbiAgICBpc1VuaW5pdGlhbGl6ZWQ6IHN0YXR1cyA9PT0gXCJ1bmluaXRpYWxpemVkXCIgLyogdW5pbml0aWFsaXplZCAqLyxcbiAgICBpc0xvYWRpbmc6IHN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgLyogcGVuZGluZyAqLyxcbiAgICBpc1N1Y2Nlc3M6IHN0YXR1cyA9PT0gXCJmdWxmaWxsZWRcIiAvKiBmdWxmaWxsZWQgKi8sXG4gICAgaXNFcnJvcjogc3RhdHVzID09PSBcInJlamVjdGVkXCIgLyogcmVqZWN0ZWQgKi9cbiAgfTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvcnRrSW1wb3J0cy50c1xuaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBjcmVhdGVTbGljZSwgY3JlYXRlU2VsZWN0b3IsIGNyZWF0ZUFzeW5jVGh1bmssIGNvbWJpbmVSZWR1Y2VycywgY3JlYXRlTmV4dFN0YXRlLCBpc0FueU9mLCBpc0FsbE9mLCBpc0FjdGlvbiwgaXNQZW5kaW5nLCBpc1JlamVjdGVkLCBpc0Z1bGZpbGxlZCwgaXNSZWplY3RlZFdpdGhWYWx1ZSwgaXNBc3luY1RodW5rQWN0aW9uLCBwcmVwYXJlQXV0b0JhdGNoZWQsIFNIT1VMRF9BVVRPQkFUQ0gsIGlzUGxhaW5PYmplY3QsIG5hbm9pZCB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0XCI7XG5cbi8vIHNyYy9xdWVyeS91dGlscy9jb3B5V2l0aFN0cnVjdHVyYWxTaGFyaW5nLnRzXG52YXIgaXNQbGFpbk9iamVjdDIgPSBpc1BsYWluT2JqZWN0O1xuZnVuY3Rpb24gY29weVdpdGhTdHJ1Y3R1cmFsU2hhcmluZyhvbGRPYmosIG5ld09iaikge1xuICBpZiAob2xkT2JqID09PSBuZXdPYmogfHwgIShpc1BsYWluT2JqZWN0MihvbGRPYmopICYmIGlzUGxhaW5PYmplY3QyKG5ld09iaikgfHwgQXJyYXkuaXNBcnJheShvbGRPYmopICYmIEFycmF5LmlzQXJyYXkobmV3T2JqKSkpIHtcbiAgICByZXR1cm4gbmV3T2JqO1xuICB9XG4gIGNvbnN0IG5ld0tleXMgPSBPYmplY3Qua2V5cyhuZXdPYmopO1xuICBjb25zdCBvbGRLZXlzID0gT2JqZWN0LmtleXMob2xkT2JqKTtcbiAgbGV0IGlzU2FtZU9iamVjdCA9IG5ld0tleXMubGVuZ3RoID09PSBvbGRLZXlzLmxlbmd0aDtcbiAgY29uc3QgbWVyZ2VPYmogPSBBcnJheS5pc0FycmF5KG5ld09iaikgPyBbXSA6IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBuZXdLZXlzKSB7XG4gICAgbWVyZ2VPYmpba2V5XSA9IGNvcHlXaXRoU3RydWN0dXJhbFNoYXJpbmcob2xkT2JqW2tleV0sIG5ld09ialtrZXldKTtcbiAgICBpZiAoaXNTYW1lT2JqZWN0KSBpc1NhbWVPYmplY3QgPSBvbGRPYmpba2V5XSA9PT0gbWVyZ2VPYmpba2V5XTtcbiAgfVxuICByZXR1cm4gaXNTYW1lT2JqZWN0ID8gb2xkT2JqIDogbWVyZ2VPYmo7XG59XG5cbi8vIHNyYy9xdWVyeS91dGlscy9jb3VudE9iamVjdEtleXMudHNcbmZ1bmN0aW9uIGNvdW50T2JqZWN0S2V5cyhvYmopIHtcbiAgbGV0IGNvdW50ID0gMDtcbiAgZm9yIChjb25zdCBfa2V5IGluIG9iaikge1xuICAgIGNvdW50Kys7XG4gIH1cbiAgcmV0dXJuIGNvdW50O1xufVxuXG4vLyBzcmMvcXVlcnkvdXRpbHMvZmxhdHRlbi50c1xudmFyIGZsYXR0ZW4gPSAoYXJyKSA9PiBbXS5jb25jYXQoLi4uYXJyKTtcblxuLy8gc3JjL3F1ZXJ5L3V0aWxzL2lzQWJzb2x1dGVVcmwudHNcbmZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsKSB7XG4gIHJldHVybiBuZXcgUmVnRXhwKGAoXnw6KS8vYCkudGVzdCh1cmwpO1xufVxuXG4vLyBzcmMvcXVlcnkvdXRpbHMvaXNEb2N1bWVudFZpc2libGUudHNcbmZ1bmN0aW9uIGlzRG9jdW1lbnRWaXNpYmxlKCkge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSAhPT0gXCJoaWRkZW5cIjtcbn1cblxuLy8gc3JjL3F1ZXJ5L3V0aWxzL2lzTm90TnVsbGlzaC50c1xuZnVuY3Rpb24gaXNOb3ROdWxsaXNoKHYpIHtcbiAgcmV0dXJuIHYgIT0gbnVsbDtcbn1cblxuLy8gc3JjL3F1ZXJ5L3V0aWxzL2lzT25saW5lLnRzXG5mdW5jdGlvbiBpc09ubGluZSgpIHtcbiAgcmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3IgPT09IFwidW5kZWZpbmVkXCIgPyB0cnVlIDogbmF2aWdhdG9yLm9uTGluZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IG5hdmlnYXRvci5vbkxpbmU7XG59XG5cbi8vIHNyYy9xdWVyeS91dGlscy9qb2luVXJscy50c1xudmFyIHdpdGhvdXRUcmFpbGluZ1NsYXNoID0gKHVybCkgPT4gdXJsLnJlcGxhY2UoL1xcLyQvLCBcIlwiKTtcbnZhciB3aXRob3V0TGVhZGluZ1NsYXNoID0gKHVybCkgPT4gdXJsLnJlcGxhY2UoL15cXC8vLCBcIlwiKTtcbmZ1bmN0aW9uIGpvaW5VcmxzKGJhc2UsIHVybCkge1xuICBpZiAoIWJhc2UpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cbiAgaWYgKGlzQWJzb2x1dGVVcmwodXJsKSkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgY29uc3QgZGVsaW1pdGVyID0gYmFzZS5lbmRzV2l0aChcIi9cIikgfHwgIXVybC5zdGFydHNXaXRoKFwiP1wiKSA/IFwiL1wiIDogXCJcIjtcbiAgYmFzZSA9IHdpdGhvdXRUcmFpbGluZ1NsYXNoKGJhc2UpO1xuICB1cmwgPSB3aXRob3V0TGVhZGluZ1NsYXNoKHVybCk7XG4gIHJldHVybiBgJHtiYXNlfSR7ZGVsaW1pdGVyfSR7dXJsfWA7XG59XG5cbi8vIHNyYy9xdWVyeS91dGlscy9nZXRPckluc2VydC50c1xuZnVuY3Rpb24gZ2V0T3JJbnNlcnQobWFwLCBrZXksIHZhbHVlKSB7XG4gIGlmIChtYXAuaGFzKGtleSkpIHJldHVybiBtYXAuZ2V0KGtleSk7XG4gIHJldHVybiBtYXAuc2V0KGtleSwgdmFsdWUpLmdldChrZXkpO1xufVxuXG4vLyBzcmMvcXVlcnkvZmV0Y2hCYXNlUXVlcnkudHNcbnZhciBkZWZhdWx0RmV0Y2hGbiA9ICguLi5hcmdzKSA9PiBmZXRjaCguLi5hcmdzKTtcbnZhciBkZWZhdWx0VmFsaWRhdGVTdGF0dXMgPSAocmVzcG9uc2UpID0+IHJlc3BvbnNlLnN0YXR1cyA+PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDw9IDI5OTtcbnZhciBkZWZhdWx0SXNKc29uQ29udGVudFR5cGUgPSAoaGVhZGVycykgPT4gKFxuICAvKmFwcGxpY2F0Ki9cbiAgL2lvblxcLyh2bmRcXC5hcGlcXCspP2pzb24vLnRlc3QoaGVhZGVycy5nZXQoXCJjb250ZW50LXR5cGVcIikgfHwgXCJcIilcbik7XG5mdW5jdGlvbiBzdHJpcFVuZGVmaW5lZChvYmopIHtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIGNvbnN0IGNvcHkgPSB7XG4gICAgLi4ub2JqXG4gIH07XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGNvcHkpKSB7XG4gICAgaWYgKHYgPT09IHZvaWQgMCkgZGVsZXRlIGNvcHlba107XG4gIH1cbiAgcmV0dXJuIGNvcHk7XG59XG5mdW5jdGlvbiBmZXRjaEJhc2VRdWVyeSh7XG4gIGJhc2VVcmwsXG4gIHByZXBhcmVIZWFkZXJzID0gKHgpID0+IHgsXG4gIGZldGNoRm4gPSBkZWZhdWx0RmV0Y2hGbixcbiAgcGFyYW1zU2VyaWFsaXplcixcbiAgaXNKc29uQ29udGVudFR5cGUgPSBkZWZhdWx0SXNKc29uQ29udGVudFR5cGUsXG4gIGpzb25Db250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24vanNvblwiLFxuICBqc29uUmVwbGFjZXIsXG4gIHRpbWVvdXQ6IGRlZmF1bHRUaW1lb3V0LFxuICByZXNwb25zZUhhbmRsZXI6IGdsb2JhbFJlc3BvbnNlSGFuZGxlcixcbiAgdmFsaWRhdGVTdGF0dXM6IGdsb2JhbFZhbGlkYXRlU3RhdHVzLFxuICAuLi5iYXNlRmV0Y2hPcHRpb25zXG59ID0ge30pIHtcbiAgaWYgKHR5cGVvZiBmZXRjaCA9PT0gXCJ1bmRlZmluZWRcIiAmJiBmZXRjaEZuID09PSBkZWZhdWx0RmV0Y2hGbikge1xuICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IGBmZXRjaGAgaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIHN1cHBseSBhIGN1c3RvbSBgZmV0Y2hGbmAgcHJvcGVydHkgdG8gdXNlIGBmZXRjaEJhc2VRdWVyeWAgb24gU1NSIGVudmlyb25tZW50cy5cIik7XG4gIH1cbiAgcmV0dXJuIGFzeW5jIChhcmcsIGFwaSwgZXh0cmFPcHRpb25zKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZ2V0U3RhdGUsXG4gICAgICBleHRyYSxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgZm9yY2VkLFxuICAgICAgdHlwZVxuICAgIH0gPSBhcGk7XG4gICAgbGV0IG1ldGE7XG4gICAgbGV0IHtcbiAgICAgIHVybCxcbiAgICAgIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhiYXNlRmV0Y2hPcHRpb25zLmhlYWRlcnMpLFxuICAgICAgcGFyYW1zID0gdm9pZCAwLFxuICAgICAgcmVzcG9uc2VIYW5kbGVyID0gZ2xvYmFsUmVzcG9uc2VIYW5kbGVyID8/IFwianNvblwiLFxuICAgICAgdmFsaWRhdGVTdGF0dXMgPSBnbG9iYWxWYWxpZGF0ZVN0YXR1cyA/PyBkZWZhdWx0VmFsaWRhdGVTdGF0dXMsXG4gICAgICB0aW1lb3V0ID0gZGVmYXVsdFRpbWVvdXQsXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IHR5cGVvZiBhcmcgPT0gXCJzdHJpbmdcIiA/IHtcbiAgICAgIHVybDogYXJnXG4gICAgfSA6IGFyZztcbiAgICBsZXQgYWJvcnRDb250cm9sbGVyLCBzaWduYWwgPSBhcGkuc2lnbmFsO1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBhcGkuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBhYm9ydENvbnRyb2xsZXIuYWJvcnQpO1xuICAgICAgc2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB9XG4gICAgbGV0IGNvbmZpZyA9IHtcbiAgICAgIC4uLmJhc2VGZXRjaE9wdGlvbnMsXG4gICAgICBzaWduYWwsXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgICBoZWFkZXJzID0gbmV3IEhlYWRlcnMoc3RyaXBVbmRlZmluZWQoaGVhZGVycykpO1xuICAgIGNvbmZpZy5oZWFkZXJzID0gYXdhaXQgcHJlcGFyZUhlYWRlcnMoaGVhZGVycywge1xuICAgICAgZ2V0U3RhdGUsXG4gICAgICBhcmcsXG4gICAgICBleHRyYSxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgZm9yY2VkLFxuICAgICAgdHlwZSxcbiAgICAgIGV4dHJhT3B0aW9uc1xuICAgIH0pIHx8IGhlYWRlcnM7XG4gICAgY29uc3QgaXNKc29uaWZpYWJsZSA9IChib2R5KSA9PiB0eXBlb2YgYm9keSA9PT0gXCJvYmplY3RcIiAmJiAoaXNQbGFpbk9iamVjdChib2R5KSB8fCBBcnJheS5pc0FycmF5KGJvZHkpIHx8IHR5cGVvZiBib2R5LnRvSlNPTiA9PT0gXCJmdW5jdGlvblwiKTtcbiAgICBpZiAoIWNvbmZpZy5oZWFkZXJzLmhhcyhcImNvbnRlbnQtdHlwZVwiKSAmJiBpc0pzb25pZmlhYmxlKGNvbmZpZy5ib2R5KSkge1xuICAgICAgY29uZmlnLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsIGpzb25Db250ZW50VHlwZSk7XG4gICAgfVxuICAgIGlmIChpc0pzb25pZmlhYmxlKGNvbmZpZy5ib2R5KSAmJiBpc0pzb25Db250ZW50VHlwZShjb25maWcuaGVhZGVycykpIHtcbiAgICAgIGNvbmZpZy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLmJvZHksIGpzb25SZXBsYWNlcik7XG4gICAgfVxuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IGRpdmlkZXIgPSB+dXJsLmluZGV4T2YoXCI/XCIpID8gXCImXCIgOiBcIj9cIjtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zU2VyaWFsaXplciA/IHBhcmFtc1NlcmlhbGl6ZXIocGFyYW1zKSA6IG5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyaXBVbmRlZmluZWQocGFyYW1zKSk7XG4gICAgICB1cmwgKz0gZGl2aWRlciArIHF1ZXJ5O1xuICAgIH1cbiAgICB1cmwgPSBqb2luVXJscyhiYXNlVXJsLCB1cmwpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCh1cmwsIGNvbmZpZyk7XG4gICAgY29uc3QgcmVxdWVzdENsb25lID0gbmV3IFJlcXVlc3QodXJsLCBjb25maWcpO1xuICAgIG1ldGEgPSB7XG4gICAgICByZXF1ZXN0OiByZXF1ZXN0Q2xvbmVcbiAgICB9O1xuICAgIGxldCByZXNwb25zZSwgdGltZWRPdXQgPSBmYWxzZSwgdGltZW91dElkID0gYWJvcnRDb250cm9sbGVyICYmIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGltZWRPdXQgPSB0cnVlO1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSwgdGltZW91dCk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hGbihyZXF1ZXN0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIHN0YXR1czogdGltZWRPdXQgPyBcIlRJTUVPVVRfRVJST1JcIiA6IFwiRkVUQ0hfRVJST1JcIixcbiAgICAgICAgICBlcnJvcjogU3RyaW5nKGUpXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFcbiAgICAgIH07XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aW1lb3V0SWQpIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgYWJvcnRDb250cm9sbGVyPy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGFib3J0Q29udHJvbGxlci5hYm9ydCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlQ2xvbmUgPSByZXNwb25zZS5jbG9uZSgpO1xuICAgIG1ldGEucmVzcG9uc2UgPSByZXNwb25zZUNsb25lO1xuICAgIGxldCByZXN1bHREYXRhO1xuICAgIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xuICAgIHRyeSB7XG4gICAgICBsZXQgaGFuZGxlUmVzcG9uc2VFcnJvcjtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2UsIHJlc3BvbnNlSGFuZGxlcikudGhlbigocikgPT4gcmVzdWx0RGF0YSA9IHIsIChlKSA9PiBoYW5kbGVSZXNwb25zZUVycm9yID0gZSksXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZS1mZXRjaC9ub2RlLWZldGNoL2lzc3Vlcy82NjUjaXNzdWVjb21tZW50LTUzODk5NTE4MlxuICAgICAgICAvLyB3ZSAqaGF2ZSogdG8gXCJ1c2UgdXBcIiBib3RoIHN0cmVhbXMgYXQgdGhlIHNhbWUgdGltZSBvciB0aGV5IHdpbGwgc3RvcCBydW5uaW5nIGluIG5vZGUtZmV0Y2ggc2NlbmFyaW9zXG4gICAgICAgIHJlc3BvbnNlQ2xvbmUudGV4dCgpLnRoZW4oKHIpID0+IHJlc3BvbnNlVGV4dCA9IHIsICgpID0+IHtcbiAgICAgICAgfSlcbiAgICAgIF0pO1xuICAgICAgaWYgKGhhbmRsZVJlc3BvbnNlRXJyb3IpIHRocm93IGhhbmRsZVJlc3BvbnNlRXJyb3I7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBzdGF0dXM6IFwiUEFSU0lOR19FUlJPUlwiLFxuICAgICAgICAgIG9yaWdpbmFsU3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgZGF0YTogcmVzcG9uc2VUZXh0LFxuICAgICAgICAgIGVycm9yOiBTdHJpbmcoZSlcbiAgICAgICAgfSxcbiAgICAgICAgbWV0YVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRlU3RhdHVzKHJlc3BvbnNlLCByZXN1bHREYXRhKSA/IHtcbiAgICAgIGRhdGE6IHJlc3VsdERhdGEsXG4gICAgICBtZXRhXG4gICAgfSA6IHtcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICBkYXRhOiByZXN1bHREYXRhXG4gICAgICB9LFxuICAgICAgbWV0YVxuICAgIH07XG4gIH07XG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlLCByZXNwb25zZUhhbmRsZXIpIHtcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlSGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlSGFuZGxlciA9PT0gXCJjb250ZW50LXR5cGVcIikge1xuICAgICAgcmVzcG9uc2VIYW5kbGVyID0gaXNKc29uQ29udGVudFR5cGUocmVzcG9uc2UuaGVhZGVycykgPyBcImpzb25cIiA6IFwidGV4dFwiO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2VIYW5kbGVyID09PSBcImpzb25cIikge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgIHJldHVybiB0ZXh0Lmxlbmd0aCA/IEpTT04ucGFyc2UodGV4dCkgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xuICB9XG59XG5cbi8vIHNyYy9xdWVyeS9IYW5kbGVkRXJyb3IudHNcbnZhciBIYW5kbGVkRXJyb3IgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlLCBtZXRhID0gdm9pZCAwKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubWV0YSA9IG1ldGE7XG4gIH1cbn07XG5cbi8vIHNyYy9xdWVyeS9yZXRyeS50c1xuYXN5bmMgZnVuY3Rpb24gZGVmYXVsdEJhY2tvZmYoYXR0ZW1wdCA9IDAsIG1heFJldHJpZXMgPSA1KSB7XG4gIGNvbnN0IGF0dGVtcHRzID0gTWF0aC5taW4oYXR0ZW1wdCwgbWF4UmV0cmllcyk7XG4gIGNvbnN0IHRpbWVvdXQgPSB+figoTWF0aC5yYW5kb20oKSArIDAuNCkgKiAoMzAwIDw8IGF0dGVtcHRzKSk7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KChyZXMpID0+IHJlc29sdmUocmVzKSwgdGltZW91dCkpO1xufVxuZnVuY3Rpb24gZmFpbChlcnJvciwgbWV0YSkge1xuICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBIYW5kbGVkRXJyb3Ioe1xuICAgIGVycm9yLFxuICAgIG1ldGFcbiAgfSksIHtcbiAgICB0aHJvd0ltbWVkaWF0ZWx5OiB0cnVlXG4gIH0pO1xufVxudmFyIEVNUFRZX09QVElPTlMgPSB7fTtcbnZhciByZXRyeVdpdGhCYWNrb2ZmID0gKGJhc2VRdWVyeSwgZGVmYXVsdE9wdGlvbnMpID0+IGFzeW5jIChhcmdzLCBhcGksIGV4dHJhT3B0aW9ucykgPT4ge1xuICBjb25zdCBwb3NzaWJsZU1heFJldHJpZXMgPSBbNSwgKGRlZmF1bHRPcHRpb25zIHx8IEVNUFRZX09QVElPTlMpLm1heFJldHJpZXMsIChleHRyYU9wdGlvbnMgfHwgRU1QVFlfT1BUSU9OUykubWF4UmV0cmllc10uZmlsdGVyKCh4KSA9PiB4ICE9PSB2b2lkIDApO1xuICBjb25zdCBbbWF4UmV0cmllc10gPSBwb3NzaWJsZU1heFJldHJpZXMuc2xpY2UoLTEpO1xuICBjb25zdCBkZWZhdWx0UmV0cnlDb25kaXRpb24gPSAoXywgX18sIHtcbiAgICBhdHRlbXB0XG4gIH0pID0+IGF0dGVtcHQgPD0gbWF4UmV0cmllcztcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBtYXhSZXRyaWVzLFxuICAgIGJhY2tvZmY6IGRlZmF1bHRCYWNrb2ZmLFxuICAgIHJldHJ5Q29uZGl0aW9uOiBkZWZhdWx0UmV0cnlDb25kaXRpb24sXG4gICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgLi4uZXh0cmFPcHRpb25zXG4gIH07XG4gIGxldCByZXRyeTIgPSAwO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlUXVlcnkoYXJncywgYXBpLCBleHRyYU9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSGFuZGxlZEVycm9yKHJlc3VsdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHJ5MisrO1xuICAgICAgaWYgKGUudGhyb3dJbW1lZGlhdGVseSkge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEhhbmRsZWRFcnJvcikge1xuICAgICAgICAgIHJldHVybiBlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEhhbmRsZWRFcnJvciAmJiAhb3B0aW9ucy5yZXRyeUNvbmRpdGlvbihlLnZhbHVlLmVycm9yLCBhcmdzLCB7XG4gICAgICAgIGF0dGVtcHQ6IHJldHJ5MixcbiAgICAgICAgYmFzZVF1ZXJ5QXBpOiBhcGksXG4gICAgICAgIGV4dHJhT3B0aW9uc1xuICAgICAgfSkpIHtcbiAgICAgICAgcmV0dXJuIGUudmFsdWU7XG4gICAgICB9XG4gICAgICBhd2FpdCBvcHRpb25zLmJhY2tvZmYocmV0cnkyLCBvcHRpb25zLm1heFJldHJpZXMpO1xuICAgIH1cbiAgfVxufTtcbnZhciByZXRyeSA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuYXNzaWduKHJldHJ5V2l0aEJhY2tvZmYsIHtcbiAgZmFpbFxufSk7XG5cbi8vIHNyYy9xdWVyeS9jb3JlL3NldHVwTGlzdGVuZXJzLnRzXG52YXIgb25Gb2N1cyA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVBY3Rpb24oXCJfX3J0a3EvZm9jdXNlZFwiKTtcbnZhciBvbkZvY3VzTG9zdCA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVBY3Rpb24oXCJfX3J0a3EvdW5mb2N1c2VkXCIpO1xudmFyIG9uT25saW5lID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZUFjdGlvbihcIl9fcnRrcS9vbmxpbmVcIik7XG52YXIgb25PZmZsaW5lID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZUFjdGlvbihcIl9fcnRrcS9vZmZsaW5lXCIpO1xudmFyIGluaXRpYWxpemVkID0gZmFsc2U7XG5mdW5jdGlvbiBzZXR1cExpc3RlbmVycyhkaXNwYXRjaCwgY3VzdG9tSGFuZGxlcikge1xuICBmdW5jdGlvbiBkZWZhdWx0SGFuZGxlcigpIHtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IGRpc3BhdGNoKG9uRm9jdXMoKSk7XG4gICAgY29uc3QgaGFuZGxlRm9jdXNMb3N0ID0gKCkgPT4gZGlzcGF0Y2gob25Gb2N1c0xvc3QoKSk7XG4gICAgY29uc3QgaGFuZGxlT25saW5lID0gKCkgPT4gZGlzcGF0Y2gob25PbmxpbmUoKSk7XG4gICAgY29uc3QgaGFuZGxlT2ZmbGluZSA9ICgpID0+IGRpc3BhdGNoKG9uT2ZmbGluZSgpKTtcbiAgICBjb25zdCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlID0gKCkgPT4ge1xuICAgICAgaWYgKHdpbmRvdy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgICAgIGhhbmRsZUZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVGb2N1c0xvc3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlLCBmYWxzZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgaGFuZGxlRm9jdXMsIGZhbHNlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvbmxpbmVcIiwgaGFuZGxlT25saW5lLCBmYWxzZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCBoYW5kbGVPZmZsaW5lLCBmYWxzZSk7XG4gICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIGhhbmRsZUZvY3VzKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwib25saW5lXCIsIGhhbmRsZU9ubGluZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgaGFuZGxlT2ZmbGluZSk7XG4gICAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH07XG4gICAgcmV0dXJuIHVuc3Vic2NyaWJlO1xuICB9XG4gIHJldHVybiBjdXN0b21IYW5kbGVyID8gY3VzdG9tSGFuZGxlcihkaXNwYXRjaCwge1xuICAgIG9uRm9jdXMsXG4gICAgb25Gb2N1c0xvc3QsXG4gICAgb25PZmZsaW5lLFxuICAgIG9uT25saW5lXG4gIH0pIDogZGVmYXVsdEhhbmRsZXIoKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2VuZHBvaW50RGVmaW5pdGlvbnMudHNcbmZ1bmN0aW9uIGlzUXVlcnlEZWZpbml0aW9uKGUpIHtcbiAgcmV0dXJuIGUudHlwZSA9PT0gXCJxdWVyeVwiIC8qIHF1ZXJ5ICovO1xufVxuZnVuY3Rpb24gaXNNdXRhdGlvbkRlZmluaXRpb24oZSkge1xuICByZXR1cm4gZS50eXBlID09PSBcIm11dGF0aW9uXCIgLyogbXV0YXRpb24gKi87XG59XG5mdW5jdGlvbiBjYWxjdWxhdGVQcm92aWRlZEJ5KGRlc2NyaXB0aW9uLCByZXN1bHQsIGVycm9yLCBxdWVyeUFyZywgbWV0YSwgYXNzZXJ0VGFnVHlwZXMpIHtcbiAgaWYgKGlzRnVuY3Rpb24oZGVzY3JpcHRpb24pKSB7XG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uKHJlc3VsdCwgZXJyb3IsIHF1ZXJ5QXJnLCBtZXRhKS5maWx0ZXIoaXNOb3ROdWxsaXNoKS5tYXAoZXhwYW5kVGFnRGVzY3JpcHRpb24pLm1hcChhc3NlcnRUYWdUeXBlcyk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGVzY3JpcHRpb24pKSB7XG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uLm1hcChleHBhbmRUYWdEZXNjcmlwdGlvbikubWFwKGFzc2VydFRhZ1R5cGVzKTtcbiAgfVxuICByZXR1cm4gW107XG59XG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHQpIHtcbiAgcmV0dXJuIHR5cGVvZiB0ID09PSBcImZ1bmN0aW9uXCI7XG59XG5mdW5jdGlvbiBleHBhbmRUYWdEZXNjcmlwdGlvbihkZXNjcmlwdGlvbikge1xuICByZXR1cm4gdHlwZW9mIGRlc2NyaXB0aW9uID09PSBcInN0cmluZ1wiID8ge1xuICAgIHR5cGU6IGRlc2NyaXB0aW9uXG4gIH0gOiBkZXNjcmlwdGlvbjtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRUaHVua3MudHNcbmltcG9ydCB7IGlzRHJhZnRhYmxlLCBwcm9kdWNlV2l0aFBhdGNoZXMgfSBmcm9tIFwiaW1tZXJcIjtcblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRJbml0aWF0ZS50c1xuaW1wb3J0IHsgZm9ybWF0UHJvZEVycm9yTWVzc2FnZSBhcyBfZm9ybWF0UHJvZEVycm9yTWVzc2FnZSB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0XCI7XG5cbi8vIHNyYy90c0hlbHBlcnMudHNcbmZ1bmN0aW9uIGFzU2FmZVByb21pc2UocHJvbWlzZSwgZmFsbGJhY2spIHtcbiAgcmV0dXJuIHByb21pc2UuY2F0Y2goZmFsbGJhY2spO1xufVxuXG4vLyBzcmMvcXVlcnkvY29yZS9idWlsZEluaXRpYXRlLnRzXG52YXIgZm9yY2VRdWVyeUZuU3ltYm9sID0gU3ltYm9sKFwiZm9yY2VRdWVyeUZuXCIpO1xudmFyIGlzVXBzZXJ0UXVlcnkgPSAoYXJnKSA9PiB0eXBlb2YgYXJnW2ZvcmNlUXVlcnlGblN5bWJvbF0gPT09IFwiZnVuY3Rpb25cIjtcbmZ1bmN0aW9uIGJ1aWxkSW5pdGlhdGUoe1xuICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gIHF1ZXJ5VGh1bmssXG4gIG11dGF0aW9uVGh1bmssXG4gIGFwaSxcbiAgY29udGV4dFxufSkge1xuICBjb25zdCBydW5uaW5nUXVlcmllcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGNvbnN0IHJ1bm5pbmdNdXRhdGlvbnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBjb25zdCB7XG4gICAgdW5zdWJzY3JpYmVRdWVyeVJlc3VsdCxcbiAgICByZW1vdmVNdXRhdGlvblJlc3VsdCxcbiAgICB1cGRhdGVTdWJzY3JpcHRpb25PcHRpb25zXG4gIH0gPSBhcGkuaW50ZXJuYWxBY3Rpb25zO1xuICByZXR1cm4ge1xuICAgIGJ1aWxkSW5pdGlhdGVRdWVyeSxcbiAgICBidWlsZEluaXRpYXRlTXV0YXRpb24sXG4gICAgZ2V0UnVubmluZ1F1ZXJ5VGh1bmssXG4gICAgZ2V0UnVubmluZ011dGF0aW9uVGh1bmssXG4gICAgZ2V0UnVubmluZ1F1ZXJpZXNUaHVuayxcbiAgICBnZXRSdW5uaW5nTXV0YXRpb25zVGh1bmtcbiAgfTtcbiAgZnVuY3Rpb24gZ2V0UnVubmluZ1F1ZXJ5VGh1bmsoZW5kcG9pbnROYW1lLCBxdWVyeUFyZ3MpIHtcbiAgICByZXR1cm4gKGRpc3BhdGNoKSA9PiB7XG4gICAgICBjb25zdCBlbmRwb2ludERlZmluaXRpb24gPSBjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbZW5kcG9pbnROYW1lXTtcbiAgICAgIGNvbnN0IHF1ZXJ5Q2FjaGVLZXkgPSBzZXJpYWxpemVRdWVyeUFyZ3Moe1xuICAgICAgICBxdWVyeUFyZ3MsXG4gICAgICAgIGVuZHBvaW50RGVmaW5pdGlvbixcbiAgICAgICAgZW5kcG9pbnROYW1lXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBydW5uaW5nUXVlcmllcy5nZXQoZGlzcGF0Y2gpPy5bcXVlcnlDYWNoZUtleV07XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBnZXRSdW5uaW5nTXV0YXRpb25UaHVuayhfZW5kcG9pbnROYW1lLCBmaXhlZENhY2hlS2V5T3JSZXF1ZXN0SWQpIHtcbiAgICByZXR1cm4gKGRpc3BhdGNoKSA9PiB7XG4gICAgICByZXR1cm4gcnVubmluZ011dGF0aW9ucy5nZXQoZGlzcGF0Y2gpPy5bZml4ZWRDYWNoZUtleU9yUmVxdWVzdElkXTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGdldFJ1bm5pbmdRdWVyaWVzVGh1bmsoKSB7XG4gICAgcmV0dXJuIChkaXNwYXRjaCkgPT4gT2JqZWN0LnZhbHVlcyhydW5uaW5nUXVlcmllcy5nZXQoZGlzcGF0Y2gpIHx8IHt9KS5maWx0ZXIoaXNOb3ROdWxsaXNoKTtcbiAgfVxuICBmdW5jdGlvbiBnZXRSdW5uaW5nTXV0YXRpb25zVGh1bmsoKSB7XG4gICAgcmV0dXJuIChkaXNwYXRjaCkgPT4gT2JqZWN0LnZhbHVlcyhydW5uaW5nTXV0YXRpb25zLmdldChkaXNwYXRjaCkgfHwge30pLmZpbHRlcihpc05vdE51bGxpc2gpO1xuICB9XG4gIGZ1bmN0aW9uIG1pZGRsZXdhcmVXYXJuaW5nKGRpc3BhdGNoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKG1pZGRsZXdhcmVXYXJuaW5nLnRyaWdnZXJlZCkgcmV0dXJuO1xuICAgICAgY29uc3QgcmV0dXJuZWRWYWx1ZSA9IGRpc3BhdGNoKGFwaS5pbnRlcm5hbEFjdGlvbnMuaW50ZXJuYWxfZ2V0UlRLUVN1YnNjcmlwdGlvbnMoKSk7XG4gICAgICBtaWRkbGV3YXJlV2FybmluZy50cmlnZ2VyZWQgPSB0cnVlO1xuICAgICAgaWYgKHR5cGVvZiByZXR1cm5lZFZhbHVlICE9PSBcIm9iamVjdFwiIHx8IHR5cGVvZiByZXR1cm5lZFZhbHVlPy50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBfZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgzNCkgOiBgV2FybmluZzogTWlkZGxld2FyZSBmb3IgUlRLLVF1ZXJ5IEFQSSBhdCByZWR1Y2VyUGF0aCBcIiR7YXBpLnJlZHVjZXJQYXRofVwiIGhhcyBub3QgYmVlbiBhZGRlZCB0byB0aGUgc3RvcmUuXG5Zb3UgbXVzdCBhZGQgdGhlIG1pZGRsZXdhcmUgZm9yIFJUSy1RdWVyeSB0byBmdW5jdGlvbiBjb3JyZWN0bHkhYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGJ1aWxkSW5pdGlhdGVRdWVyeShlbmRwb2ludE5hbWUsIGVuZHBvaW50RGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHF1ZXJ5QWN0aW9uID0gKGFyZywge1xuICAgICAgc3Vic2NyaWJlID0gdHJ1ZSxcbiAgICAgIGZvcmNlUmVmZXRjaCxcbiAgICAgIHN1YnNjcmlwdGlvbk9wdGlvbnMsXG4gICAgICBbZm9yY2VRdWVyeUZuU3ltYm9sXTogZm9yY2VRdWVyeUZuLFxuICAgICAgLi4ucmVzdFxuICAgIH0gPSB7fSkgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICAgICAgY29uc3QgcXVlcnlDYWNoZUtleSA9IHNlcmlhbGl6ZVF1ZXJ5QXJncyh7XG4gICAgICAgIHF1ZXJ5QXJnczogYXJnLFxuICAgICAgICBlbmRwb2ludERlZmluaXRpb24sXG4gICAgICAgIGVuZHBvaW50TmFtZVxuICAgICAgfSk7XG4gICAgICBjb25zdCB0aHVuayA9IHF1ZXJ5VGh1bmsoe1xuICAgICAgICAuLi5yZXN0LFxuICAgICAgICB0eXBlOiBcInF1ZXJ5XCIsXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZm9yY2VSZWZldGNoLFxuICAgICAgICBzdWJzY3JpcHRpb25PcHRpb25zLFxuICAgICAgICBlbmRwb2ludE5hbWUsXG4gICAgICAgIG9yaWdpbmFsQXJnczogYXJnLFxuICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICBbZm9yY2VRdWVyeUZuU3ltYm9sXTogZm9yY2VRdWVyeUZuXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlbGVjdG9yID0gYXBpLmVuZHBvaW50c1tlbmRwb2ludE5hbWVdLnNlbGVjdChhcmcpO1xuICAgICAgY29uc3QgdGh1bmtSZXN1bHQgPSBkaXNwYXRjaCh0aHVuayk7XG4gICAgICBjb25zdCBzdGF0ZUFmdGVyID0gc2VsZWN0b3IoZ2V0U3RhdGUoKSk7XG4gICAgICBtaWRkbGV3YXJlV2FybmluZyhkaXNwYXRjaCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgYWJvcnRcbiAgICAgIH0gPSB0aHVua1Jlc3VsdDtcbiAgICAgIGNvbnN0IHNraXBwZWRTeW5jaHJvbm91c2x5ID0gc3RhdGVBZnRlci5yZXF1ZXN0SWQgIT09IHJlcXVlc3RJZDtcbiAgICAgIGNvbnN0IHJ1bm5pbmdRdWVyeSA9IHJ1bm5pbmdRdWVyaWVzLmdldChkaXNwYXRjaCk/LltxdWVyeUNhY2hlS2V5XTtcbiAgICAgIGNvbnN0IHNlbGVjdEZyb21TdGF0ZSA9ICgpID0+IHNlbGVjdG9yKGdldFN0YXRlKCkpO1xuICAgICAgY29uc3Qgc3RhdGVQcm9taXNlID0gT2JqZWN0LmFzc2lnbihmb3JjZVF1ZXJ5Rm4gPyAoXG4gICAgICAgIC8vIGEgcXVlcnkgaGFzIGJlZW4gZm9yY2VkICh1cHNlcnRRdWVyeURhdGEpXG4gICAgICAgIC8vIC0+IHdlIHdhbnQgdG8gcmVzb2x2ZSBpdCBvbmNlIGRhdGEgaGFzIGJlZW4gd3JpdHRlbiB3aXRoIHRoZSBkYXRhIHRoYXQgd2lsbCBiZSB3cml0dGVuXG4gICAgICAgIHRodW5rUmVzdWx0LnRoZW4oc2VsZWN0RnJvbVN0YXRlKVxuICAgICAgKSA6IHNraXBwZWRTeW5jaHJvbm91c2x5ICYmICFydW5uaW5nUXVlcnkgPyAoXG4gICAgICAgIC8vIGEgcXVlcnkgaGFzIGJlZW4gc2tpcHBlZCBkdWUgdG8gYSBjb25kaXRpb24gYW5kIHdlIGRvIG5vdCBoYXZlIGFueSBjdXJyZW50bHkgcnVubmluZyBxdWVyeVxuICAgICAgICAvLyAtPiB3ZSB3YW50IHRvIHJlc29sdmUgaXQgaW1tZWRpYXRlbHkgd2l0aCB0aGUgY3VycmVudCBkYXRhXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShzdGF0ZUFmdGVyKVxuICAgICAgKSA6IChcbiAgICAgICAgLy8gcXVlcnkganVzdCBzdGFydGVkIG9yIG9uZSBpcyBhbHJlYWR5IGluIGZsaWdodFxuICAgICAgICAvLyAtPiB3YWl0IGZvciB0aGUgcnVubmluZyBxdWVyeSwgdGhlbiByZXNvbHZlIHdpdGggZGF0YSBmcm9tIGFmdGVyIHRoYXRcbiAgICAgICAgUHJvbWlzZS5hbGwoW3J1bm5pbmdRdWVyeSwgdGh1bmtSZXN1bHRdKS50aGVuKHNlbGVjdEZyb21TdGF0ZSlcbiAgICAgICksIHtcbiAgICAgICAgYXJnLFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIHN1YnNjcmlwdGlvbk9wdGlvbnMsXG4gICAgICAgIHF1ZXJ5Q2FjaGVLZXksXG4gICAgICAgIGFib3J0LFxuICAgICAgICBhc3luYyB1bndyYXAoKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RhdGVQcm9taXNlO1xuICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZmV0Y2g6ICgpID0+IGRpc3BhdGNoKHF1ZXJ5QWN0aW9uKGFyZywge1xuICAgICAgICAgIHN1YnNjcmliZTogZmFsc2UsXG4gICAgICAgICAgZm9yY2VSZWZldGNoOiB0cnVlXG4gICAgICAgIH0pKSxcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgICAgaWYgKHN1YnNjcmliZSkgZGlzcGF0Y2godW5zdWJzY3JpYmVRdWVyeVJlc3VsdCh7XG4gICAgICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICAgICAgcmVxdWVzdElkXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVTdWJzY3JpcHRpb25PcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgICAgICBzdGF0ZVByb21pc2Uuc3Vic2NyaXB0aW9uT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgICAgZGlzcGF0Y2godXBkYXRlU3Vic2NyaXB0aW9uT3B0aW9ucyh7XG4gICAgICAgICAgICBlbmRwb2ludE5hbWUsXG4gICAgICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoIXJ1bm5pbmdRdWVyeSAmJiAhc2tpcHBlZFN5bmNocm9ub3VzbHkgJiYgIWZvcmNlUXVlcnlGbikge1xuICAgICAgICBjb25zdCBydW5uaW5nID0gZ2V0T3JJbnNlcnQocnVubmluZ1F1ZXJpZXMsIGRpc3BhdGNoLCB7fSk7XG4gICAgICAgIHJ1bm5pbmdbcXVlcnlDYWNoZUtleV0gPSBzdGF0ZVByb21pc2U7XG4gICAgICAgIHN0YXRlUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgICBkZWxldGUgcnVubmluZ1txdWVyeUNhY2hlS2V5XTtcbiAgICAgICAgICBpZiAoIWNvdW50T2JqZWN0S2V5cyhydW5uaW5nKSkge1xuICAgICAgICAgICAgcnVubmluZ1F1ZXJpZXMuZGVsZXRlKGRpc3BhdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlUHJvbWlzZTtcbiAgICB9O1xuICAgIHJldHVybiBxdWVyeUFjdGlvbjtcbiAgfVxuICBmdW5jdGlvbiBidWlsZEluaXRpYXRlTXV0YXRpb24oZW5kcG9pbnROYW1lKSB7XG4gICAgcmV0dXJuIChhcmcsIHtcbiAgICAgIHRyYWNrID0gdHJ1ZSxcbiAgICAgIGZpeGVkQ2FjaGVLZXlcbiAgICB9ID0ge30pID0+IChkaXNwYXRjaCwgZ2V0U3RhdGUpID0+IHtcbiAgICAgIGNvbnN0IHRodW5rID0gbXV0YXRpb25UaHVuayh7XG4gICAgICAgIHR5cGU6IFwibXV0YXRpb25cIixcbiAgICAgICAgZW5kcG9pbnROYW1lLFxuICAgICAgICBvcmlnaW5hbEFyZ3M6IGFyZyxcbiAgICAgICAgdHJhY2ssXG4gICAgICAgIGZpeGVkQ2FjaGVLZXlcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdGh1bmtSZXN1bHQgPSBkaXNwYXRjaCh0aHVuayk7XG4gICAgICBtaWRkbGV3YXJlV2FybmluZyhkaXNwYXRjaCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgYWJvcnQsXG4gICAgICAgIHVud3JhcFxuICAgICAgfSA9IHRodW5rUmVzdWx0O1xuICAgICAgY29uc3QgcmV0dXJuVmFsdWVQcm9taXNlID0gYXNTYWZlUHJvbWlzZSh0aHVua1Jlc3VsdC51bndyYXAoKS50aGVuKChkYXRhKSA9PiAoe1xuICAgICAgICBkYXRhXG4gICAgICB9KSksIChlcnJvcikgPT4gKHtcbiAgICAgICAgZXJyb3JcbiAgICAgIH0pKTtcbiAgICAgIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaChyZW1vdmVNdXRhdGlvblJlc3VsdCh7XG4gICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgIGZpeGVkQ2FjaGVLZXlcbiAgICAgICAgfSkpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24ocmV0dXJuVmFsdWVQcm9taXNlLCB7XG4gICAgICAgIGFyZzogdGh1bmtSZXN1bHQuYXJnLFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIGFib3J0LFxuICAgICAgICB1bndyYXAsXG4gICAgICAgIHJlc2V0XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJ1bm5pbmcgPSBydW5uaW5nTXV0YXRpb25zLmdldChkaXNwYXRjaCkgfHwge307XG4gICAgICBydW5uaW5nTXV0YXRpb25zLnNldChkaXNwYXRjaCwgcnVubmluZyk7XG4gICAgICBydW5uaW5nW3JlcXVlc3RJZF0gPSByZXQ7XG4gICAgICByZXQudGhlbigoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSBydW5uaW5nW3JlcXVlc3RJZF07XG4gICAgICAgIGlmICghY291bnRPYmplY3RLZXlzKHJ1bm5pbmcpKSB7XG4gICAgICAgICAgcnVubmluZ011dGF0aW9ucy5kZWxldGUoZGlzcGF0Y2gpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChmaXhlZENhY2hlS2V5KSB7XG4gICAgICAgIHJ1bm5pbmdbZml4ZWRDYWNoZUtleV0gPSByZXQ7XG4gICAgICAgIHJldC50aGVuKCgpID0+IHtcbiAgICAgICAgICBpZiAocnVubmluZ1tmaXhlZENhY2hlS2V5XSA9PT0gcmV0KSB7XG4gICAgICAgICAgICBkZWxldGUgcnVubmluZ1tmaXhlZENhY2hlS2V5XTtcbiAgICAgICAgICAgIGlmICghY291bnRPYmplY3RLZXlzKHJ1bm5pbmcpKSB7XG4gICAgICAgICAgICAgIHJ1bm5pbmdNdXRhdGlvbnMuZGVsZXRlKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9O1xuICB9XG59XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkVGh1bmtzLnRzXG5mdW5jdGlvbiBkZWZhdWx0VHJhbnNmb3JtUmVzcG9uc2UoYmFzZVF1ZXJ5UmV0dXJuVmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VRdWVyeVJldHVyblZhbHVlO1xufVxuZnVuY3Rpb24gYnVpbGRUaHVua3Moe1xuICByZWR1Y2VyUGF0aCxcbiAgYmFzZVF1ZXJ5LFxuICBjb250ZXh0OiB7XG4gICAgZW5kcG9pbnREZWZpbml0aW9uc1xuICB9LFxuICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gIGFwaSxcbiAgYXNzZXJ0VGFnVHlwZVxufSkge1xuICBjb25zdCBwYXRjaFF1ZXJ5RGF0YSA9IChlbmRwb2ludE5hbWUsIGFyZywgcGF0Y2hlcywgdXBkYXRlUHJvdmlkZWQpID0+IChkaXNwYXRjaCwgZ2V0U3RhdGUpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludERlZmluaXRpb24gPSBlbmRwb2ludERlZmluaXRpb25zW2VuZHBvaW50TmFtZV07XG4gICAgY29uc3QgcXVlcnlDYWNoZUtleSA9IHNlcmlhbGl6ZVF1ZXJ5QXJncyh7XG4gICAgICBxdWVyeUFyZ3M6IGFyZyxcbiAgICAgIGVuZHBvaW50RGVmaW5pdGlvbixcbiAgICAgIGVuZHBvaW50TmFtZVxuICAgIH0pO1xuICAgIGRpc3BhdGNoKGFwaS5pbnRlcm5hbEFjdGlvbnMucXVlcnlSZXN1bHRQYXRjaGVkKHtcbiAgICAgIHF1ZXJ5Q2FjaGVLZXksXG4gICAgICBwYXRjaGVzXG4gICAgfSkpO1xuICAgIGlmICghdXBkYXRlUHJvdmlkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3VmFsdWUgPSBhcGkuZW5kcG9pbnRzW2VuZHBvaW50TmFtZV0uc2VsZWN0KGFyZykoXG4gICAgICAvLyBXb3JrIGFyb3VuZCBUUyA0LjEgbWlzbWF0Y2hcbiAgICAgIGdldFN0YXRlKClcbiAgICApO1xuICAgIGNvbnN0IHByb3ZpZGVkVGFncyA9IGNhbGN1bGF0ZVByb3ZpZGVkQnkoZW5kcG9pbnREZWZpbml0aW9uLnByb3ZpZGVzVGFncywgbmV3VmFsdWUuZGF0YSwgdm9pZCAwLCBhcmcsIHt9LCBhc3NlcnRUYWdUeXBlKTtcbiAgICBkaXNwYXRjaChhcGkuaW50ZXJuYWxBY3Rpb25zLnVwZGF0ZVByb3ZpZGVkQnkoe1xuICAgICAgcXVlcnlDYWNoZUtleSxcbiAgICAgIHByb3ZpZGVkVGFnc1xuICAgIH0pKTtcbiAgfTtcbiAgY29uc3QgdXBkYXRlUXVlcnlEYXRhID0gKGVuZHBvaW50TmFtZSwgYXJnLCB1cGRhdGVSZWNpcGUsIHVwZGF0ZVByb3ZpZGVkID0gdHJ1ZSkgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50RGVmaW5pdGlvbiA9IGFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXTtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBlbmRwb2ludERlZmluaXRpb24uc2VsZWN0KGFyZykoXG4gICAgICAvLyBXb3JrIGFyb3VuZCBUUyA0LjEgbWlzbWF0Y2hcbiAgICAgIGdldFN0YXRlKClcbiAgICApO1xuICAgIGNvbnN0IHJldCA9IHtcbiAgICAgIHBhdGNoZXM6IFtdLFxuICAgICAgaW52ZXJzZVBhdGNoZXM6IFtdLFxuICAgICAgdW5kbzogKCkgPT4gZGlzcGF0Y2goYXBpLnV0aWwucGF0Y2hRdWVyeURhdGEoZW5kcG9pbnROYW1lLCBhcmcsIHJldC5pbnZlcnNlUGF0Y2hlcywgdXBkYXRlUHJvdmlkZWQpKVxuICAgIH07XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5zdGF0dXMgPT09IFwidW5pbml0aWFsaXplZFwiIC8qIHVuaW5pdGlhbGl6ZWQgKi8pIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICAgIGxldCBuZXdWYWx1ZTtcbiAgICBpZiAoXCJkYXRhXCIgaW4gY3VycmVudFN0YXRlKSB7XG4gICAgICBpZiAoaXNEcmFmdGFibGUoY3VycmVudFN0YXRlLmRhdGEpKSB7XG4gICAgICAgIGNvbnN0IFt2YWx1ZSwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXNdID0gcHJvZHVjZVdpdGhQYXRjaGVzKGN1cnJlbnRTdGF0ZS5kYXRhLCB1cGRhdGVSZWNpcGUpO1xuICAgICAgICByZXQucGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuICAgICAgICByZXQuaW52ZXJzZVBhdGNoZXMucHVzaCguLi5pbnZlcnNlUGF0Y2hlcyk7XG4gICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdWYWx1ZSA9IHVwZGF0ZVJlY2lwZShjdXJyZW50U3RhdGUuZGF0YSk7XG4gICAgICAgIHJldC5wYXRjaGVzLnB1c2goe1xuICAgICAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgICAgICBwYXRoOiBbXSxcbiAgICAgICAgICB2YWx1ZTogbmV3VmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldC5pbnZlcnNlUGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICAgICAgcGF0aDogW10sXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRTdGF0ZS5kYXRhXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmV0LnBhdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgICBkaXNwYXRjaChhcGkudXRpbC5wYXRjaFF1ZXJ5RGF0YShlbmRwb2ludE5hbWUsIGFyZywgcmV0LnBhdGNoZXMsIHVwZGF0ZVByb3ZpZGVkKSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbiAgY29uc3QgdXBzZXJ0UXVlcnlEYXRhID0gKGVuZHBvaW50TmFtZSwgYXJnLCB2YWx1ZSkgPT4gKGRpc3BhdGNoKSA9PiB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKGFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXS5pbml0aWF0ZShhcmcsIHtcbiAgICAgIHN1YnNjcmliZTogZmFsc2UsXG4gICAgICBmb3JjZVJlZmV0Y2g6IHRydWUsXG4gICAgICBbZm9yY2VRdWVyeUZuU3ltYm9sXTogKCkgPT4gKHtcbiAgICAgICAgZGF0YTogdmFsdWVcbiAgICAgIH0pXG4gICAgfSkpO1xuICB9O1xuICBjb25zdCBleGVjdXRlRW5kcG9pbnQgPSBhc3luYyAoYXJnLCB7XG4gICAgc2lnbmFsLFxuICAgIGFib3J0LFxuICAgIHJlamVjdFdpdGhWYWx1ZSxcbiAgICBmdWxmaWxsV2l0aFZhbHVlLFxuICAgIGRpc3BhdGNoLFxuICAgIGdldFN0YXRlLFxuICAgIGV4dHJhXG4gIH0pID0+IHtcbiAgICBjb25zdCBlbmRwb2ludERlZmluaXRpb24gPSBlbmRwb2ludERlZmluaXRpb25zW2FyZy5lbmRwb2ludE5hbWVdO1xuICAgIHRyeSB7XG4gICAgICBsZXQgdHJhbnNmb3JtUmVzcG9uc2UgPSBkZWZhdWx0VHJhbnNmb3JtUmVzcG9uc2U7XG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgY29uc3QgYmFzZVF1ZXJ5QXBpID0ge1xuICAgICAgICBzaWduYWwsXG4gICAgICAgIGFib3J0LFxuICAgICAgICBkaXNwYXRjaCxcbiAgICAgICAgZ2V0U3RhdGUsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICBlbmRwb2ludDogYXJnLmVuZHBvaW50TmFtZSxcbiAgICAgICAgdHlwZTogYXJnLnR5cGUsXG4gICAgICAgIGZvcmNlZDogYXJnLnR5cGUgPT09IFwicXVlcnlcIiA/IGlzRm9yY2VkUXVlcnkoYXJnLCBnZXRTdGF0ZSgpKSA6IHZvaWQgMCxcbiAgICAgICAgcXVlcnlDYWNoZUtleTogYXJnLnR5cGUgPT09IFwicXVlcnlcIiA/IGFyZy5xdWVyeUNhY2hlS2V5IDogdm9pZCAwXG4gICAgICB9O1xuICAgICAgY29uc3QgZm9yY2VRdWVyeUZuID0gYXJnLnR5cGUgPT09IFwicXVlcnlcIiA/IGFyZ1tmb3JjZVF1ZXJ5Rm5TeW1ib2xdIDogdm9pZCAwO1xuICAgICAgaWYgKGZvcmNlUXVlcnlGbikge1xuICAgICAgICByZXN1bHQgPSBmb3JjZVF1ZXJ5Rm4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZW5kcG9pbnREZWZpbml0aW9uLnF1ZXJ5KSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGJhc2VRdWVyeShlbmRwb2ludERlZmluaXRpb24ucXVlcnkoYXJnLm9yaWdpbmFsQXJncyksIGJhc2VRdWVyeUFwaSwgZW5kcG9pbnREZWZpbml0aW9uLmV4dHJhT3B0aW9ucyk7XG4gICAgICAgIGlmIChlbmRwb2ludERlZmluaXRpb24udHJhbnNmb3JtUmVzcG9uc2UpIHtcbiAgICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZSA9IGVuZHBvaW50RGVmaW5pdGlvbi50cmFuc2Zvcm1SZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgZW5kcG9pbnREZWZpbml0aW9uLnF1ZXJ5Rm4oYXJnLm9yaWdpbmFsQXJncywgYmFzZVF1ZXJ5QXBpLCBlbmRwb2ludERlZmluaXRpb24uZXh0cmFPcHRpb25zLCAoYXJnMikgPT4gYmFzZVF1ZXJ5KGFyZzIsIGJhc2VRdWVyeUFwaSwgZW5kcG9pbnREZWZpbml0aW9uLmV4dHJhT3B0aW9ucykpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgY29uc3Qgd2hhdCA9IGVuZHBvaW50RGVmaW5pdGlvbi5xdWVyeSA/IFwiYGJhc2VRdWVyeWBcIiA6IFwiYHF1ZXJ5Rm5gXCI7XG4gICAgICAgIGxldCBlcnI7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgZXJyID0gYCR7d2hhdH0gZGlkIG5vdCByZXR1cm4gYW55dGhpbmcuYDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgZXJyID0gYCR7d2hhdH0gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LmA7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmVycm9yICYmIHJlc3VsdC5kYXRhKSB7XG4gICAgICAgICAgZXJyID0gYCR7d2hhdH0gcmV0dXJuZWQgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYm90aCBcXGBlcnJvclxcYCBhbmQgXFxgcmVzdWx0XFxgLmA7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmVycm9yID09PSB2b2lkIDAgJiYgcmVzdWx0LmRhdGEgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGVyciA9IGAke3doYXR9IHJldHVybmVkIGFuIG9iamVjdCBjb250YWluaW5nIG5laXRoZXIgYSB2YWxpZCBcXGBlcnJvclxcYCBhbmQgXFxgcmVzdWx0XFxgLiBBdCBsZWFzdCBvbmUgb2YgdGhlbSBzaG91bGQgbm90IGJlIFxcYHVuZGVmaW5lZFxcYGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVzdWx0KSkge1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gXCJlcnJvclwiICYmIGtleSAhPT0gXCJkYXRhXCIgJiYga2V5ICE9PSBcIm1ldGFcIikge1xuICAgICAgICAgICAgICBlcnIgPSBgVGhlIG9iamVjdCByZXR1cm5lZCBieSAke3doYXR9IGhhcyB0aGUgdW5rbm93biBwcm9wZXJ0eSAke2tleX0uYDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBlbmNvdW50ZXJlZCBoYW5kbGluZyB0aGUgZW5kcG9pbnQgJHthcmcuZW5kcG9pbnROYW1lfS5cbiAgICAgICAgICAgICAgJHtlcnJ9XG4gICAgICAgICAgICAgIEl0IG5lZWRzIHRvIHJldHVybiBhbiBvYmplY3Qgd2l0aCBlaXRoZXIgdGhlIHNoYXBlIFxcYHsgZGF0YTogPHZhbHVlPiB9XFxgIG9yIFxcYHsgZXJyb3I6IDx2YWx1ZT4gfVxcYCB0aGF0IG1heSBjb250YWluIGFuIG9wdGlvbmFsIFxcYG1ldGFcXGAgcHJvcGVydHkuXG4gICAgICAgICAgICAgIE9iamVjdCByZXR1cm5lZCB3YXM6YCwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5lcnJvcikgdGhyb3cgbmV3IEhhbmRsZWRFcnJvcihyZXN1bHQuZXJyb3IsIHJlc3VsdC5tZXRhKTtcbiAgICAgIHJldHVybiBmdWxmaWxsV2l0aFZhbHVlKGF3YWl0IHRyYW5zZm9ybVJlc3BvbnNlKHJlc3VsdC5kYXRhLCByZXN1bHQubWV0YSwgYXJnLm9yaWdpbmFsQXJncyksIHtcbiAgICAgICAgZnVsZmlsbGVkVGltZVN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBiYXNlUXVlcnlNZXRhOiByZXN1bHQubWV0YSxcbiAgICAgICAgW1NIT1VMRF9BVVRPQkFUQ0hdOiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbGV0IGNhdGNoZWRFcnJvciA9IGVycm9yO1xuICAgICAgaWYgKGNhdGNoZWRFcnJvciBpbnN0YW5jZW9mIEhhbmRsZWRFcnJvcikge1xuICAgICAgICBsZXQgdHJhbnNmb3JtRXJyb3JSZXNwb25zZSA9IGRlZmF1bHRUcmFuc2Zvcm1SZXNwb25zZTtcbiAgICAgICAgaWYgKGVuZHBvaW50RGVmaW5pdGlvbi5xdWVyeSAmJiBlbmRwb2ludERlZmluaXRpb24udHJhbnNmb3JtRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgIHRyYW5zZm9ybUVycm9yUmVzcG9uc2UgPSBlbmRwb2ludERlZmluaXRpb24udHJhbnNmb3JtRXJyb3JSZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiByZWplY3RXaXRoVmFsdWUoYXdhaXQgdHJhbnNmb3JtRXJyb3JSZXNwb25zZShjYXRjaGVkRXJyb3IudmFsdWUsIGNhdGNoZWRFcnJvci5tZXRhLCBhcmcub3JpZ2luYWxBcmdzKSwge1xuICAgICAgICAgICAgYmFzZVF1ZXJ5TWV0YTogY2F0Y2hlZEVycm9yLm1ldGEsXG4gICAgICAgICAgICBbU0hPVUxEX0FVVE9CQVRDSF06IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNhdGNoZWRFcnJvciA9IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkIHByb2Nlc3NpbmcgYSByZXF1ZXN0IGZvciB0aGUgZW5kcG9pbnQgXCIke2FyZy5lbmRwb2ludE5hbWV9XCIuXG5JbiB0aGUgY2FzZSBvZiBhbiB1bmhhbmRsZWQgZXJyb3IsIG5vIHRhZ3Mgd2lsbCBiZSBcInByb3ZpZGVkXCIgb3IgXCJpbnZhbGlkYXRlZFwiLmAsIGNhdGNoZWRFcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNhdGNoZWRFcnJvcik7XG4gICAgICB9XG4gICAgICB0aHJvdyBjYXRjaGVkRXJyb3I7XG4gICAgfVxuICB9O1xuICBmdW5jdGlvbiBpc0ZvcmNlZFF1ZXJ5KGFyZywgc3RhdGUpIHtcbiAgICBjb25zdCByZXF1ZXN0U3RhdGUgPSBzdGF0ZVtyZWR1Y2VyUGF0aF0/LnF1ZXJpZXM/LlthcmcucXVlcnlDYWNoZUtleV07XG4gICAgY29uc3QgYmFzZUZldGNoT25Nb3VudE9yQXJnQ2hhbmdlID0gc3RhdGVbcmVkdWNlclBhdGhdPy5jb25maWcucmVmZXRjaE9uTW91bnRPckFyZ0NoYW5nZTtcbiAgICBjb25zdCBmdWxmaWxsZWRWYWwgPSByZXF1ZXN0U3RhdGU/LmZ1bGZpbGxlZFRpbWVTdGFtcDtcbiAgICBjb25zdCByZWZldGNoVmFsID0gYXJnLmZvcmNlUmVmZXRjaCA/PyAoYXJnLnN1YnNjcmliZSAmJiBiYXNlRmV0Y2hPbk1vdW50T3JBcmdDaGFuZ2UpO1xuICAgIGlmIChyZWZldGNoVmFsKSB7XG4gICAgICByZXR1cm4gcmVmZXRjaFZhbCA9PT0gdHJ1ZSB8fCAoTnVtYmVyKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKSAtIE51bWJlcihmdWxmaWxsZWRWYWwpKSAvIDFlMyA+PSByZWZldGNoVmFsO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgcXVlcnlUaHVuayA9IGNyZWF0ZUFzeW5jVGh1bmsoYCR7cmVkdWNlclBhdGh9L2V4ZWN1dGVRdWVyeWAsIGV4ZWN1dGVFbmRwb2ludCwge1xuICAgIGdldFBlbmRpbmdNZXRhKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnRlZFRpbWVTdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgW1NIT1VMRF9BVVRPQkFUQ0hdOiB0cnVlXG4gICAgICB9O1xuICAgIH0sXG4gICAgY29uZGl0aW9uKHF1ZXJ5VGh1bmtBcmdzLCB7XG4gICAgICBnZXRTdGF0ZVxuICAgIH0pIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RTdGF0ZSA9IHN0YXRlW3JlZHVjZXJQYXRoXT8ucXVlcmllcz8uW3F1ZXJ5VGh1bmtBcmdzLnF1ZXJ5Q2FjaGVLZXldO1xuICAgICAgY29uc3QgZnVsZmlsbGVkVmFsID0gcmVxdWVzdFN0YXRlPy5mdWxmaWxsZWRUaW1lU3RhbXA7XG4gICAgICBjb25zdCBjdXJyZW50QXJnID0gcXVlcnlUaHVua0FyZ3Mub3JpZ2luYWxBcmdzO1xuICAgICAgY29uc3QgcHJldmlvdXNBcmcgPSByZXF1ZXN0U3RhdGU/Lm9yaWdpbmFsQXJncztcbiAgICAgIGNvbnN0IGVuZHBvaW50RGVmaW5pdGlvbiA9IGVuZHBvaW50RGVmaW5pdGlvbnNbcXVlcnlUaHVua0FyZ3MuZW5kcG9pbnROYW1lXTtcbiAgICAgIGlmIChpc1Vwc2VydFF1ZXJ5KHF1ZXJ5VGh1bmtBcmdzKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXF1ZXN0U3RhdGU/LnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzRm9yY2VkUXVlcnkocXVlcnlUaHVua0FyZ3MsIHN0YXRlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1F1ZXJ5RGVmaW5pdGlvbihlbmRwb2ludERlZmluaXRpb24pICYmIGVuZHBvaW50RGVmaW5pdGlvbj8uZm9yY2VSZWZldGNoPy4oe1xuICAgICAgICBjdXJyZW50QXJnLFxuICAgICAgICBwcmV2aW91c0FyZyxcbiAgICAgICAgZW5kcG9pbnRTdGF0ZTogcmVxdWVzdFN0YXRlLFxuICAgICAgICBzdGF0ZVxuICAgICAgfSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoZnVsZmlsbGVkVmFsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgZGlzcGF0Y2hDb25kaXRpb25SZWplY3Rpb246IHRydWVcbiAgfSk7XG4gIGNvbnN0IG11dGF0aW9uVGh1bmsgPSBjcmVhdGVBc3luY1RodW5rKGAke3JlZHVjZXJQYXRofS9leGVjdXRlTXV0YXRpb25gLCBleGVjdXRlRW5kcG9pbnQsIHtcbiAgICBnZXRQZW5kaW5nTWV0YSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0ZWRUaW1lU3RhbXA6IERhdGUubm93KCksXG4gICAgICAgIFtTSE9VTERfQVVUT0JBVENIXTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBoYXNUaGVGb3JjZSA9IChvcHRpb25zKSA9PiBcImZvcmNlXCIgaW4gb3B0aW9ucztcbiAgY29uc3QgaGFzTWF4QWdlID0gKG9wdGlvbnMpID0+IFwiaWZPbGRlclRoYW5cIiBpbiBvcHRpb25zO1xuICBjb25zdCBwcmVmZXRjaCA9IChlbmRwb2ludE5hbWUsIGFyZywgb3B0aW9ucykgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZvcmNlID0gaGFzVGhlRm9yY2Uob3B0aW9ucykgJiYgb3B0aW9ucy5mb3JjZTtcbiAgICBjb25zdCBtYXhBZ2UgPSBoYXNNYXhBZ2Uob3B0aW9ucykgJiYgb3B0aW9ucy5pZk9sZGVyVGhhbjtcbiAgICBjb25zdCBxdWVyeUFjdGlvbiA9IChmb3JjZTIgPSB0cnVlKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zMiA9IHtcbiAgICAgICAgZm9yY2VSZWZldGNoOiBmb3JjZTIsXG4gICAgICAgIGlzUHJlZmV0Y2g6IHRydWVcbiAgICAgIH07XG4gICAgICByZXR1cm4gYXBpLmVuZHBvaW50c1tlbmRwb2ludE5hbWVdLmluaXRpYXRlKGFyZywgb3B0aW9uczIpO1xuICAgIH07XG4gICAgY29uc3QgbGF0ZXN0U3RhdGVWYWx1ZSA9IGFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXS5zZWxlY3QoYXJnKShnZXRTdGF0ZSgpKTtcbiAgICBpZiAoZm9yY2UpIHtcbiAgICAgIGRpc3BhdGNoKHF1ZXJ5QWN0aW9uKCkpO1xuICAgIH0gZWxzZSBpZiAobWF4QWdlKSB7XG4gICAgICBjb25zdCBsYXN0RnVsZmlsbGVkVHMgPSBsYXRlc3RTdGF0ZVZhbHVlPy5mdWxmaWxsZWRUaW1lU3RhbXA7XG4gICAgICBpZiAoIWxhc3RGdWxmaWxsZWRUcykge1xuICAgICAgICBkaXNwYXRjaChxdWVyeUFjdGlvbigpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2hvdWxkUmV0cmlnZ2VyID0gKE51bWJlcigvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSkgLSBOdW1iZXIobmV3IERhdGUobGFzdEZ1bGZpbGxlZFRzKSkpIC8gMWUzID49IG1heEFnZTtcbiAgICAgIGlmIChzaG91bGRSZXRyaWdnZXIpIHtcbiAgICAgICAgZGlzcGF0Y2gocXVlcnlBY3Rpb24oKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKHF1ZXJ5QWN0aW9uKGZhbHNlKSk7XG4gICAgfVxuICB9O1xuICBmdW5jdGlvbiBtYXRjaGVzRW5kcG9pbnQoZW5kcG9pbnROYW1lKSB7XG4gICAgcmV0dXJuIChhY3Rpb24pID0+IGFjdGlvbj8ubWV0YT8uYXJnPy5lbmRwb2ludE5hbWUgPT09IGVuZHBvaW50TmFtZTtcbiAgfVxuICBmdW5jdGlvbiBidWlsZE1hdGNoVGh1bmtBY3Rpb25zKHRodW5rLCBlbmRwb2ludE5hbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWF0Y2hQZW5kaW5nOiBpc0FsbE9mKGlzUGVuZGluZyh0aHVuayksIG1hdGNoZXNFbmRwb2ludChlbmRwb2ludE5hbWUpKSxcbiAgICAgIG1hdGNoRnVsZmlsbGVkOiBpc0FsbE9mKGlzRnVsZmlsbGVkKHRodW5rKSwgbWF0Y2hlc0VuZHBvaW50KGVuZHBvaW50TmFtZSkpLFxuICAgICAgbWF0Y2hSZWplY3RlZDogaXNBbGxPZihpc1JlamVjdGVkKHRodW5rKSwgbWF0Y2hlc0VuZHBvaW50KGVuZHBvaW50TmFtZSkpXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHF1ZXJ5VGh1bmssXG4gICAgbXV0YXRpb25UaHVuayxcbiAgICBwcmVmZXRjaCxcbiAgICB1cGRhdGVRdWVyeURhdGEsXG4gICAgdXBzZXJ0UXVlcnlEYXRhLFxuICAgIHBhdGNoUXVlcnlEYXRhLFxuICAgIGJ1aWxkTWF0Y2hUaHVua0FjdGlvbnNcbiAgfTtcbn1cbmZ1bmN0aW9uIGNhbGN1bGF0ZVByb3ZpZGVkQnlUaHVuayhhY3Rpb24sIHR5cGUsIGVuZHBvaW50RGVmaW5pdGlvbnMsIGFzc2VydFRhZ1R5cGUpIHtcbiAgcmV0dXJuIGNhbGN1bGF0ZVByb3ZpZGVkQnkoZW5kcG9pbnREZWZpbml0aW9uc1thY3Rpb24ubWV0YS5hcmcuZW5kcG9pbnROYW1lXVt0eXBlXSwgaXNGdWxmaWxsZWQoYWN0aW9uKSA/IGFjdGlvbi5wYXlsb2FkIDogdm9pZCAwLCBpc1JlamVjdGVkV2l0aFZhbHVlKGFjdGlvbikgPyBhY3Rpb24ucGF5bG9hZCA6IHZvaWQgMCwgYWN0aW9uLm1ldGEuYXJnLm9yaWdpbmFsQXJncywgXCJiYXNlUXVlcnlNZXRhXCIgaW4gYWN0aW9uLm1ldGEgPyBhY3Rpb24ubWV0YS5iYXNlUXVlcnlNZXRhIDogdm9pZCAwLCBhc3NlcnRUYWdUeXBlKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRTbGljZS50c1xuaW1wb3J0IHsgaXNEcmFmdCB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHsgYXBwbHlQYXRjaGVzLCBvcmlnaW5hbCB9IGZyb20gXCJpbW1lclwiO1xuZnVuY3Rpb24gdXBkYXRlUXVlcnlTdWJzdGF0ZUlmRXhpc3RzKHN0YXRlLCBxdWVyeUNhY2hlS2V5LCB1cGRhdGUpIHtcbiAgY29uc3Qgc3Vic3RhdGUgPSBzdGF0ZVtxdWVyeUNhY2hlS2V5XTtcbiAgaWYgKHN1YnN0YXRlKSB7XG4gICAgdXBkYXRlKHN1YnN0YXRlKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0TXV0YXRpb25DYWNoZUtleShpZCkge1xuICByZXR1cm4gKFwiYXJnXCIgaW4gaWQgPyBpZC5hcmcuZml4ZWRDYWNoZUtleSA6IGlkLmZpeGVkQ2FjaGVLZXkpID8/IGlkLnJlcXVlc3RJZDtcbn1cbmZ1bmN0aW9uIHVwZGF0ZU11dGF0aW9uU3Vic3RhdGVJZkV4aXN0cyhzdGF0ZSwgaWQsIHVwZGF0ZSkge1xuICBjb25zdCBzdWJzdGF0ZSA9IHN0YXRlW2dldE11dGF0aW9uQ2FjaGVLZXkoaWQpXTtcbiAgaWYgKHN1YnN0YXRlKSB7XG4gICAgdXBkYXRlKHN1YnN0YXRlKTtcbiAgfVxufVxudmFyIGluaXRpYWxTdGF0ZSA9IHt9O1xuZnVuY3Rpb24gYnVpbGRTbGljZSh7XG4gIHJlZHVjZXJQYXRoLFxuICBxdWVyeVRodW5rLFxuICBtdXRhdGlvblRodW5rLFxuICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gIGNvbnRleHQ6IHtcbiAgICBlbmRwb2ludERlZmluaXRpb25zOiBkZWZpbml0aW9ucyxcbiAgICBhcGlVaWQsXG4gICAgZXh0cmFjdFJlaHlkcmF0aW9uSW5mbyxcbiAgICBoYXNSZWh5ZHJhdGlvbkluZm9cbiAgfSxcbiAgYXNzZXJ0VGFnVHlwZSxcbiAgY29uZmlnXG59KSB7XG4gIGNvbnN0IHJlc2V0QXBpU3RhdGUgPSBjcmVhdGVBY3Rpb24oYCR7cmVkdWNlclBhdGh9L3Jlc2V0QXBpU3RhdGVgKTtcbiAgZnVuY3Rpb24gd3JpdGVQZW5kaW5nQ2FjaGVFbnRyeShkcmFmdCwgYXJnLCB1cHNlcnRpbmcsIG1ldGEpIHtcbiAgICBkcmFmdFthcmcucXVlcnlDYWNoZUtleV0gPz89IHtcbiAgICAgIHN0YXR1czogXCJ1bmluaXRpYWxpemVkXCIgLyogdW5pbml0aWFsaXplZCAqLyxcbiAgICAgIGVuZHBvaW50TmFtZTogYXJnLmVuZHBvaW50TmFtZVxuICAgIH07XG4gICAgdXBkYXRlUXVlcnlTdWJzdGF0ZUlmRXhpc3RzKGRyYWZ0LCBhcmcucXVlcnlDYWNoZUtleSwgKHN1YnN0YXRlKSA9PiB7XG4gICAgICBzdWJzdGF0ZS5zdGF0dXMgPSBcInBlbmRpbmdcIiAvKiBwZW5kaW5nICovO1xuICAgICAgc3Vic3RhdGUucmVxdWVzdElkID0gdXBzZXJ0aW5nICYmIHN1YnN0YXRlLnJlcXVlc3RJZCA/IChcbiAgICAgICAgLy8gZm9yIGB1cHNlcnRRdWVyeWAgKip1cGRhdGVzKiosIGtlZXAgdGhlIGN1cnJlbnQgYHJlcXVlc3RJZGBcbiAgICAgICAgc3Vic3RhdGUucmVxdWVzdElkXG4gICAgICApIDogKFxuICAgICAgICAvLyBmb3Igbm9ybWFsIHF1ZXJpZXMgb3IgYHVwc2VydFF1ZXJ5YCAqKmluc2VydHMqKiBhbHdheXMgdXBkYXRlIHRoZSBgcmVxdWVzdElkYFxuICAgICAgICBtZXRhLnJlcXVlc3RJZFxuICAgICAgKTtcbiAgICAgIGlmIChhcmcub3JpZ2luYWxBcmdzICE9PSB2b2lkIDApIHtcbiAgICAgICAgc3Vic3RhdGUub3JpZ2luYWxBcmdzID0gYXJnLm9yaWdpbmFsQXJncztcbiAgICAgIH1cbiAgICAgIHN1YnN0YXRlLnN0YXJ0ZWRUaW1lU3RhbXAgPSBtZXRhLnN0YXJ0ZWRUaW1lU3RhbXA7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gd3JpdGVGdWxmaWxsZWRDYWNoZUVudHJ5KGRyYWZ0LCBtZXRhLCBwYXlsb2FkKSB7XG4gICAgdXBkYXRlUXVlcnlTdWJzdGF0ZUlmRXhpc3RzKGRyYWZ0LCBtZXRhLmFyZy5xdWVyeUNhY2hlS2V5LCAoc3Vic3RhdGUpID0+IHtcbiAgICAgIGlmIChzdWJzdGF0ZS5yZXF1ZXN0SWQgIT09IG1ldGEucmVxdWVzdElkICYmICFpc1Vwc2VydFF1ZXJ5KG1ldGEuYXJnKSkgcmV0dXJuO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXJnZVxuICAgICAgfSA9IGRlZmluaXRpb25zW21ldGEuYXJnLmVuZHBvaW50TmFtZV07XG4gICAgICBzdWJzdGF0ZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiIC8qIGZ1bGZpbGxlZCAqLztcbiAgICAgIGlmIChtZXJnZSkge1xuICAgICAgICBpZiAoc3Vic3RhdGUuZGF0YSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgZnVsZmlsbGVkVGltZVN0YW1wLFxuICAgICAgICAgICAgYXJnLFxuICAgICAgICAgICAgYmFzZVF1ZXJ5TWV0YSxcbiAgICAgICAgICAgIHJlcXVlc3RJZFxuICAgICAgICAgIH0gPSBtZXRhO1xuICAgICAgICAgIGxldCBuZXdEYXRhID0gY3JlYXRlTmV4dFN0YXRlKHN1YnN0YXRlLmRhdGEsIChkcmFmdFN1YnN0YXRlRGF0YSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGRyYWZ0U3Vic3RhdGVEYXRhLCBwYXlsb2FkLCB7XG4gICAgICAgICAgICAgIGFyZzogYXJnLm9yaWdpbmFsQXJncyxcbiAgICAgICAgICAgICAgYmFzZVF1ZXJ5TWV0YSxcbiAgICAgICAgICAgICAgZnVsZmlsbGVkVGltZVN0YW1wLFxuICAgICAgICAgICAgICByZXF1ZXN0SWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN1YnN0YXRlLmRhdGEgPSBuZXdEYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1YnN0YXRlLmRhdGEgPSBwYXlsb2FkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzdGF0ZS5kYXRhID0gZGVmaW5pdGlvbnNbbWV0YS5hcmcuZW5kcG9pbnROYW1lXS5zdHJ1Y3R1cmFsU2hhcmluZyA/PyB0cnVlID8gY29weVdpdGhTdHJ1Y3R1cmFsU2hhcmluZyhpc0RyYWZ0KHN1YnN0YXRlLmRhdGEpID8gb3JpZ2luYWwoc3Vic3RhdGUuZGF0YSkgOiBzdWJzdGF0ZS5kYXRhLCBwYXlsb2FkKSA6IHBheWxvYWQ7XG4gICAgICB9XG4gICAgICBkZWxldGUgc3Vic3RhdGUuZXJyb3I7XG4gICAgICBzdWJzdGF0ZS5mdWxmaWxsZWRUaW1lU3RhbXAgPSBtZXRhLmZ1bGZpbGxlZFRpbWVTdGFtcDtcbiAgICB9KTtcbiAgfVxuICBjb25zdCBxdWVyeVNsaWNlID0gY3JlYXRlU2xpY2Uoe1xuICAgIG5hbWU6IGAke3JlZHVjZXJQYXRofS9xdWVyaWVzYCxcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgcmVkdWNlcnM6IHtcbiAgICAgIHJlbW92ZVF1ZXJ5UmVzdWx0OiB7XG4gICAgICAgIHJlZHVjZXIoZHJhZnQsIHtcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBxdWVyeUNhY2hlS2V5XG4gICAgICAgICAgfVxuICAgICAgICB9KSB7XG4gICAgICAgICAgZGVsZXRlIGRyYWZ0W3F1ZXJ5Q2FjaGVLZXldO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJlOiBwcmVwYXJlQXV0b0JhdGNoZWQoKVxuICAgICAgfSxcbiAgICAgIGNhY2hlRW50cmllc1Vwc2VydGVkOiB7XG4gICAgICAgIHJlZHVjZXIoZHJhZnQsIGFjdGlvbikge1xuICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgYWN0aW9uLnBheWxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgcXVlcnlEZXNjcmlwdGlvbjogYXJnLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSA9IGVudHJ5O1xuICAgICAgICAgICAgd3JpdGVQZW5kaW5nQ2FjaGVFbnRyeShkcmFmdCwgYXJnLCB0cnVlLCB7XG4gICAgICAgICAgICAgIGFyZyxcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiBhY3Rpb24ubWV0YS5yZXF1ZXN0SWQsXG4gICAgICAgICAgICAgIHN0YXJ0ZWRUaW1lU3RhbXA6IGFjdGlvbi5tZXRhLnRpbWVzdGFtcFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3cml0ZUZ1bGZpbGxlZENhY2hlRW50cnkoZHJhZnQsIHtcbiAgICAgICAgICAgICAgYXJnLFxuICAgICAgICAgICAgICByZXF1ZXN0SWQ6IGFjdGlvbi5tZXRhLnJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgZnVsZmlsbGVkVGltZVN0YW1wOiBhY3Rpb24ubWV0YS50aW1lc3RhbXAsXG4gICAgICAgICAgICAgIGJhc2VRdWVyeU1ldGE6IHt9XG4gICAgICAgICAgICB9LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJlOiAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5RGVzY3JpcHRpb25zID0gcGF5bG9hZC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIGVuZHBvaW50TmFtZSxcbiAgICAgICAgICAgICAgYXJnLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSA9IGVudHJ5O1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnREZWZpbml0aW9uID0gZGVmaW5pdGlvbnNbZW5kcG9pbnROYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5RGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6IFwicXVlcnlcIixcbiAgICAgICAgICAgICAgZW5kcG9pbnROYW1lLFxuICAgICAgICAgICAgICBvcmlnaW5hbEFyZ3M6IGVudHJ5LmFyZyxcbiAgICAgICAgICAgICAgcXVlcnlDYWNoZUtleTogc2VyaWFsaXplUXVlcnlBcmdzKHtcbiAgICAgICAgICAgICAgICBxdWVyeUFyZ3M6IGFyZyxcbiAgICAgICAgICAgICAgICBlbmRwb2ludERlZmluaXRpb24sXG4gICAgICAgICAgICAgICAgZW5kcG9pbnROYW1lXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcXVlcnlEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcGF5bG9hZDogcXVlcnlEZXNjcmlwdGlvbnMsXG4gICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgIFtTSE9VTERfQVVUT0JBVENIXTogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiBuYW5vaWQoKSxcbiAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcXVlcnlSZXN1bHRQYXRjaGVkOiB7XG4gICAgICAgIHJlZHVjZXIoZHJhZnQsIHtcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICAgICAgcGF0Y2hlc1xuICAgICAgICAgIH1cbiAgICAgICAgfSkge1xuICAgICAgICAgIHVwZGF0ZVF1ZXJ5U3Vic3RhdGVJZkV4aXN0cyhkcmFmdCwgcXVlcnlDYWNoZUtleSwgKHN1YnN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzdWJzdGF0ZS5kYXRhID0gYXBwbHlQYXRjaGVzKHN1YnN0YXRlLmRhdGEsIHBhdGNoZXMuY29uY2F0KCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJlOiBwcmVwYXJlQXV0b0JhdGNoZWQoKVxuICAgICAgfVxuICAgIH0sXG4gICAgZXh0cmFSZWR1Y2VycyhidWlsZGVyKSB7XG4gICAgICBidWlsZGVyLmFkZENhc2UocXVlcnlUaHVuay5wZW5kaW5nLCAoZHJhZnQsIHtcbiAgICAgICAgbWV0YSxcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIGFyZ1xuICAgICAgICB9XG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHVwc2VydGluZyA9IGlzVXBzZXJ0UXVlcnkoYXJnKTtcbiAgICAgICAgd3JpdGVQZW5kaW5nQ2FjaGVFbnRyeShkcmFmdCwgYXJnLCB1cHNlcnRpbmcsIG1ldGEpO1xuICAgICAgfSkuYWRkQ2FzZShxdWVyeVRodW5rLmZ1bGZpbGxlZCwgKGRyYWZ0LCB7XG4gICAgICAgIG1ldGEsXG4gICAgICAgIHBheWxvYWRcbiAgICAgIH0pID0+IHtcbiAgICAgICAgd3JpdGVGdWxmaWxsZWRDYWNoZUVudHJ5KGRyYWZ0LCBtZXRhLCBwYXlsb2FkKTtcbiAgICAgIH0pLmFkZENhc2UocXVlcnlUaHVuay5yZWplY3RlZCwgKGRyYWZ0LCB7XG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBjb25kaXRpb24sXG4gICAgICAgICAgYXJnLFxuICAgICAgICAgIHJlcXVlc3RJZFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcixcbiAgICAgICAgcGF5bG9hZFxuICAgICAgfSkgPT4ge1xuICAgICAgICB1cGRhdGVRdWVyeVN1YnN0YXRlSWZFeGlzdHMoZHJhZnQsIGFyZy5xdWVyeUNhY2hlS2V5LCAoc3Vic3RhdGUpID0+IHtcbiAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzdWJzdGF0ZS5yZXF1ZXN0SWQgIT09IHJlcXVlc3RJZCkgcmV0dXJuO1xuICAgICAgICAgICAgc3Vic3RhdGUuc3RhdHVzID0gXCJyZWplY3RlZFwiIC8qIHJlamVjdGVkICovO1xuICAgICAgICAgICAgc3Vic3RhdGUuZXJyb3IgPSBwYXlsb2FkID8/IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KS5hZGRNYXRjaGVyKGhhc1JlaHlkcmF0aW9uSW5mbywgKGRyYWZ0LCBhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHF1ZXJpZXNcbiAgICAgICAgfSA9IGV4dHJhY3RSZWh5ZHJhdGlvbkluZm8oYWN0aW9uKTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcmllcykpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyBkbyBub3QgcmVoeWRyYXRlIGVudHJpZXMgdGhhdCB3ZXJlIGN1cnJlbnRseSBpbiBmbGlnaHQuXG4gICAgICAgICAgICBlbnRyeT8uc3RhdHVzID09PSBcImZ1bGZpbGxlZFwiIC8qIGZ1bGZpbGxlZCAqLyB8fCBlbnRyeT8uc3RhdHVzID09PSBcInJlamVjdGVkXCIgLyogcmVqZWN0ZWQgKi9cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGRyYWZ0W2tleV0gPSBlbnRyeTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IG11dGF0aW9uU2xpY2UgPSBjcmVhdGVTbGljZSh7XG4gICAgbmFtZTogYCR7cmVkdWNlclBhdGh9L211dGF0aW9uc2AsXG4gICAgaW5pdGlhbFN0YXRlLFxuICAgIHJlZHVjZXJzOiB7XG4gICAgICByZW1vdmVNdXRhdGlvblJlc3VsdDoge1xuICAgICAgICByZWR1Y2VyKGRyYWZ0LCB7XG4gICAgICAgICAgcGF5bG9hZFxuICAgICAgICB9KSB7XG4gICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBnZXRNdXRhdGlvbkNhY2hlS2V5KHBheWxvYWQpO1xuICAgICAgICAgIGlmIChjYWNoZUtleSBpbiBkcmFmdCkge1xuICAgICAgICAgICAgZGVsZXRlIGRyYWZ0W2NhY2hlS2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcmU6IHByZXBhcmVBdXRvQmF0Y2hlZCgpXG4gICAgICB9XG4gICAgfSxcbiAgICBleHRyYVJlZHVjZXJzKGJ1aWxkZXIpIHtcbiAgICAgIGJ1aWxkZXIuYWRkQ2FzZShtdXRhdGlvblRodW5rLnBlbmRpbmcsIChkcmFmdCwge1xuICAgICAgICBtZXRhLFxuICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgIGFyZyxcbiAgICAgICAgICBzdGFydGVkVGltZVN0YW1wXG4gICAgICAgIH1cbiAgICAgIH0pID0+IHtcbiAgICAgICAgaWYgKCFhcmcudHJhY2spIHJldHVybjtcbiAgICAgICAgZHJhZnRbZ2V0TXV0YXRpb25DYWNoZUtleShtZXRhKV0gPSB7XG4gICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgIHN0YXR1czogXCJwZW5kaW5nXCIgLyogcGVuZGluZyAqLyxcbiAgICAgICAgICBlbmRwb2ludE5hbWU6IGFyZy5lbmRwb2ludE5hbWUsXG4gICAgICAgICAgc3RhcnRlZFRpbWVTdGFtcFxuICAgICAgICB9O1xuICAgICAgfSkuYWRkQ2FzZShtdXRhdGlvblRodW5rLmZ1bGZpbGxlZCwgKGRyYWZ0LCB7XG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIG1ldGFcbiAgICAgIH0pID0+IHtcbiAgICAgICAgaWYgKCFtZXRhLmFyZy50cmFjaykgcmV0dXJuO1xuICAgICAgICB1cGRhdGVNdXRhdGlvblN1YnN0YXRlSWZFeGlzdHMoZHJhZnQsIG1ldGEsIChzdWJzdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChzdWJzdGF0ZS5yZXF1ZXN0SWQgIT09IG1ldGEucmVxdWVzdElkKSByZXR1cm47XG4gICAgICAgICAgc3Vic3RhdGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIiAvKiBmdWxmaWxsZWQgKi87XG4gICAgICAgICAgc3Vic3RhdGUuZGF0YSA9IHBheWxvYWQ7XG4gICAgICAgICAgc3Vic3RhdGUuZnVsZmlsbGVkVGltZVN0YW1wID0gbWV0YS5mdWxmaWxsZWRUaW1lU3RhbXA7XG4gICAgICAgIH0pO1xuICAgICAgfSkuYWRkQ2FzZShtdXRhdGlvblRodW5rLnJlamVjdGVkLCAoZHJhZnQsIHtcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG1ldGFcbiAgICAgIH0pID0+IHtcbiAgICAgICAgaWYgKCFtZXRhLmFyZy50cmFjaykgcmV0dXJuO1xuICAgICAgICB1cGRhdGVNdXRhdGlvblN1YnN0YXRlSWZFeGlzdHMoZHJhZnQsIG1ldGEsIChzdWJzdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChzdWJzdGF0ZS5yZXF1ZXN0SWQgIT09IG1ldGEucmVxdWVzdElkKSByZXR1cm47XG4gICAgICAgICAgc3Vic3RhdGUuc3RhdHVzID0gXCJyZWplY3RlZFwiIC8qIHJlamVjdGVkICovO1xuICAgICAgICAgIHN1YnN0YXRlLmVycm9yID0gcGF5bG9hZCA/PyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICB9KS5hZGRNYXRjaGVyKGhhc1JlaHlkcmF0aW9uSW5mbywgKGRyYWZ0LCBhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIG11dGF0aW9uc1xuICAgICAgICB9ID0gZXh0cmFjdFJlaHlkcmF0aW9uSW5mbyhhY3Rpb24pO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhtdXRhdGlvbnMpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gZG8gbm90IHJlaHlkcmF0ZSBlbnRyaWVzIHRoYXQgd2VyZSBjdXJyZW50bHkgaW4gZmxpZ2h0LlxuICAgICAgICAgICAgKGVudHJ5Py5zdGF0dXMgPT09IFwiZnVsZmlsbGVkXCIgLyogZnVsZmlsbGVkICovIHx8IGVudHJ5Py5zdGF0dXMgPT09IFwicmVqZWN0ZWRcIiAvKiByZWplY3RlZCAqLykgJiYgLy8gb25seSByZWh5ZHJhdGUgZW5kcG9pbnRzIHRoYXQgd2VyZSBwZXJzaXN0ZWQgdXNpbmcgYSBgZml4ZWRDYWNoZUtleWBcbiAgICAgICAgICAgIGtleSAhPT0gZW50cnk/LnJlcXVlc3RJZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZHJhZnRba2V5XSA9IGVudHJ5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgY29uc3QgaW52YWxpZGF0aW9uU2xpY2UgPSBjcmVhdGVTbGljZSh7XG4gICAgbmFtZTogYCR7cmVkdWNlclBhdGh9L2ludmFsaWRhdGlvbmAsXG4gICAgaW5pdGlhbFN0YXRlLFxuICAgIHJlZHVjZXJzOiB7XG4gICAgICB1cGRhdGVQcm92aWRlZEJ5OiB7XG4gICAgICAgIHJlZHVjZXIoZHJhZnQsIGFjdGlvbikge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHF1ZXJ5Q2FjaGVLZXksXG4gICAgICAgICAgICBwcm92aWRlZFRhZ3NcbiAgICAgICAgICB9ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICAgICAgZm9yIChjb25zdCB0YWdUeXBlU3Vic2NyaXB0aW9ucyBvZiBPYmplY3QudmFsdWVzKGRyYWZ0KSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpZFN1YnNjcmlwdGlvbnMgb2YgT2JqZWN0LnZhbHVlcyh0YWdUeXBlU3Vic2NyaXB0aW9ucykpIHtcbiAgICAgICAgICAgICAgY29uc3QgZm91bmRBdCA9IGlkU3Vic2NyaXB0aW9ucy5pbmRleE9mKHF1ZXJ5Q2FjaGVLZXkpO1xuICAgICAgICAgICAgICBpZiAoZm91bmRBdCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZFN1YnNjcmlwdGlvbnMuc3BsaWNlKGZvdW5kQXQsIDEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAoY29uc3Qge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfSBvZiBwcm92aWRlZFRhZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmliZWRRdWVyaWVzID0gKGRyYWZ0W3R5cGVdID8/PSB7fSlbaWQgfHwgXCJfX2ludGVybmFsX3dpdGhvdXRfaWRcIl0gPz89IFtdO1xuICAgICAgICAgICAgY29uc3QgYWxyZWFkeVN1YnNjcmliZWQgPSBzdWJzY3JpYmVkUXVlcmllcy5pbmNsdWRlcyhxdWVyeUNhY2hlS2V5KTtcbiAgICAgICAgICAgIGlmICghYWxyZWFkeVN1YnNjcmliZWQpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlZFF1ZXJpZXMucHVzaChxdWVyeUNhY2hlS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcmU6IHByZXBhcmVBdXRvQmF0Y2hlZCgpXG4gICAgICB9XG4gICAgfSxcbiAgICBleHRyYVJlZHVjZXJzKGJ1aWxkZXIpIHtcbiAgICAgIGJ1aWxkZXIuYWRkQ2FzZShxdWVyeVNsaWNlLmFjdGlvbnMucmVtb3ZlUXVlcnlSZXN1bHQsIChkcmFmdCwge1xuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgcXVlcnlDYWNoZUtleVxuICAgICAgICB9XG4gICAgICB9KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgdGFnVHlwZVN1YnNjcmlwdGlvbnMgb2YgT2JqZWN0LnZhbHVlcyhkcmFmdCkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGlkU3Vic2NyaXB0aW9ucyBvZiBPYmplY3QudmFsdWVzKHRhZ1R5cGVTdWJzY3JpcHRpb25zKSkge1xuICAgICAgICAgICAgY29uc3QgZm91bmRBdCA9IGlkU3Vic2NyaXB0aW9ucy5pbmRleE9mKHF1ZXJ5Q2FjaGVLZXkpO1xuICAgICAgICAgICAgaWYgKGZvdW5kQXQgIT09IC0xKSB7XG4gICAgICAgICAgICAgIGlkU3Vic2NyaXB0aW9ucy5zcGxpY2UoZm91bmRBdCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KS5hZGRNYXRjaGVyKGhhc1JlaHlkcmF0aW9uSW5mbywgKGRyYWZ0LCBhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHByb3ZpZGVkXG4gICAgICAgIH0gPSBleHRyYWN0UmVoeWRyYXRpb25JbmZvKGFjdGlvbik7XG4gICAgICAgIGZvciAoY29uc3QgW3R5cGUsIGluY29taW5nVGFnc10gb2YgT2JqZWN0LmVudHJpZXMocHJvdmlkZWQpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBbaWQsIGNhY2hlS2V5c10gb2YgT2JqZWN0LmVudHJpZXMoaW5jb21pbmdUYWdzKSkge1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlZFF1ZXJpZXMgPSAoZHJhZnRbdHlwZV0gPz89IHt9KVtpZCB8fCBcIl9faW50ZXJuYWxfd2l0aG91dF9pZFwiXSA/Pz0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXJ5Q2FjaGVLZXkgb2YgY2FjaGVLZXlzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFscmVhZHlTdWJzY3JpYmVkID0gc3Vic2NyaWJlZFF1ZXJpZXMuaW5jbHVkZXMocXVlcnlDYWNoZUtleSk7XG4gICAgICAgICAgICAgIGlmICghYWxyZWFkeVN1YnNjcmliZWQpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVkUXVlcmllcy5wdXNoKHF1ZXJ5Q2FjaGVLZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KS5hZGRNYXRjaGVyKGlzQW55T2YoaXNGdWxmaWxsZWQocXVlcnlUaHVuayksIGlzUmVqZWN0ZWRXaXRoVmFsdWUocXVlcnlUaHVuaykpLCAoZHJhZnQsIGFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBwcm92aWRlZFRhZ3MgPSBjYWxjdWxhdGVQcm92aWRlZEJ5VGh1bmsoYWN0aW9uLCBcInByb3ZpZGVzVGFnc1wiLCBkZWZpbml0aW9ucywgYXNzZXJ0VGFnVHlwZSk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBxdWVyeUNhY2hlS2V5XG4gICAgICAgIH0gPSBhY3Rpb24ubWV0YS5hcmc7XG4gICAgICAgIGludmFsaWRhdGlvblNsaWNlLmNhc2VSZWR1Y2Vycy51cGRhdGVQcm92aWRlZEJ5KGRyYWZ0LCBpbnZhbGlkYXRpb25TbGljZS5hY3Rpb25zLnVwZGF0ZVByb3ZpZGVkQnkoe1xuICAgICAgICAgIHF1ZXJ5Q2FjaGVLZXksXG4gICAgICAgICAgcHJvdmlkZWRUYWdzXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN1YnNjcmlwdGlvblNsaWNlID0gY3JlYXRlU2xpY2Uoe1xuICAgIG5hbWU6IGAke3JlZHVjZXJQYXRofS9zdWJzY3JpcHRpb25zYCxcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgcmVkdWNlcnM6IHtcbiAgICAgIHVwZGF0ZVN1YnNjcmlwdGlvbk9wdGlvbnMoZCwgYSkge1xuICAgICAgfSxcbiAgICAgIHVuc3Vic2NyaWJlUXVlcnlSZXN1bHQoZCwgYSkge1xuICAgICAgfSxcbiAgICAgIGludGVybmFsX2dldFJUS1FTdWJzY3JpcHRpb25zKCkge1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGludGVybmFsU3Vic2NyaXB0aW9uc1NsaWNlID0gY3JlYXRlU2xpY2Uoe1xuICAgIG5hbWU6IGAke3JlZHVjZXJQYXRofS9pbnRlcm5hbFN1YnNjcmlwdGlvbnNgLFxuICAgIGluaXRpYWxTdGF0ZSxcbiAgICByZWR1Y2Vyczoge1xuICAgICAgc3Vic2NyaXB0aW9uc1VwZGF0ZWQ6IHtcbiAgICAgICAgcmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5UGF0Y2hlcyhzdGF0ZSwgYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJlOiBwcmVwYXJlQXV0b0JhdGNoZWQoKVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGNvbmZpZ1NsaWNlID0gY3JlYXRlU2xpY2Uoe1xuICAgIG5hbWU6IGAke3JlZHVjZXJQYXRofS9jb25maWdgLFxuICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgb25saW5lOiBpc09ubGluZSgpLFxuICAgICAgZm9jdXNlZDogaXNEb2N1bWVudFZpc2libGUoKSxcbiAgICAgIG1pZGRsZXdhcmVSZWdpc3RlcmVkOiBmYWxzZSxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH0sXG4gICAgcmVkdWNlcnM6IHtcbiAgICAgIG1pZGRsZXdhcmVSZWdpc3RlcmVkKHN0YXRlLCB7XG4gICAgICAgIHBheWxvYWRcbiAgICAgIH0pIHtcbiAgICAgICAgc3RhdGUubWlkZGxld2FyZVJlZ2lzdGVyZWQgPSBzdGF0ZS5taWRkbGV3YXJlUmVnaXN0ZXJlZCA9PT0gXCJjb25mbGljdFwiIHx8IGFwaVVpZCAhPT0gcGF5bG9hZCA/IFwiY29uZmxpY3RcIiA6IHRydWU7XG4gICAgICB9XG4gICAgfSxcbiAgICBleHRyYVJlZHVjZXJzOiAoYnVpbGRlcikgPT4ge1xuICAgICAgYnVpbGRlci5hZGRDYXNlKG9uT25saW5lLCAoc3RhdGUpID0+IHtcbiAgICAgICAgc3RhdGUub25saW5lID0gdHJ1ZTtcbiAgICAgIH0pLmFkZENhc2Uob25PZmZsaW5lLCAoc3RhdGUpID0+IHtcbiAgICAgICAgc3RhdGUub25saW5lID0gZmFsc2U7XG4gICAgICB9KS5hZGRDYXNlKG9uRm9jdXMsIChzdGF0ZSkgPT4ge1xuICAgICAgICBzdGF0ZS5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIH0pLmFkZENhc2Uob25Gb2N1c0xvc3QsIChzdGF0ZSkgPT4ge1xuICAgICAgICBzdGF0ZS5mb2N1c2VkID0gZmFsc2U7XG4gICAgICB9KS5hZGRNYXRjaGVyKGhhc1JlaHlkcmF0aW9uSW5mbywgKGRyYWZ0KSA9PiAoe1xuICAgICAgICAuLi5kcmFmdFxuICAgICAgfSkpO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGNvbWJpbmVkUmVkdWNlciA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gICAgcXVlcmllczogcXVlcnlTbGljZS5yZWR1Y2VyLFxuICAgIG11dGF0aW9uczogbXV0YXRpb25TbGljZS5yZWR1Y2VyLFxuICAgIHByb3ZpZGVkOiBpbnZhbGlkYXRpb25TbGljZS5yZWR1Y2VyLFxuICAgIHN1YnNjcmlwdGlvbnM6IGludGVybmFsU3Vic2NyaXB0aW9uc1NsaWNlLnJlZHVjZXIsXG4gICAgY29uZmlnOiBjb25maWdTbGljZS5yZWR1Y2VyXG4gIH0pO1xuICBjb25zdCByZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IGNvbWJpbmVkUmVkdWNlcihyZXNldEFwaVN0YXRlLm1hdGNoKGFjdGlvbikgPyB2b2lkIDAgOiBzdGF0ZSwgYWN0aW9uKTtcbiAgY29uc3QgYWN0aW9ucyA9IHtcbiAgICAuLi5jb25maWdTbGljZS5hY3Rpb25zLFxuICAgIC4uLnF1ZXJ5U2xpY2UuYWN0aW9ucyxcbiAgICAuLi5zdWJzY3JpcHRpb25TbGljZS5hY3Rpb25zLFxuICAgIC4uLmludGVybmFsU3Vic2NyaXB0aW9uc1NsaWNlLmFjdGlvbnMsXG4gICAgLi4ubXV0YXRpb25TbGljZS5hY3Rpb25zLFxuICAgIC4uLmludmFsaWRhdGlvblNsaWNlLmFjdGlvbnMsXG4gICAgcmVzZXRBcGlTdGF0ZVxuICB9O1xuICByZXR1cm4ge1xuICAgIHJlZHVjZXIsXG4gICAgYWN0aW9uc1xuICB9O1xufVxuXG4vLyBzcmMvcXVlcnkvY29yZS9idWlsZFNlbGVjdG9ycy50c1xudmFyIHNraXBUb2tlbiA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwiUlRLUS9za2lwVG9rZW5cIik7XG52YXIgaW5pdGlhbFN1YlN0YXRlID0ge1xuICBzdGF0dXM6IFwidW5pbml0aWFsaXplZFwiIC8qIHVuaW5pdGlhbGl6ZWQgKi9cbn07XG52YXIgZGVmYXVsdFF1ZXJ5U3ViU3RhdGUgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlTmV4dFN0YXRlKGluaXRpYWxTdWJTdGF0ZSwgKCkgPT4ge1xufSk7XG52YXIgZGVmYXVsdE11dGF0aW9uU3ViU3RhdGUgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlTmV4dFN0YXRlKGluaXRpYWxTdWJTdGF0ZSwgKCkgPT4ge1xufSk7XG5mdW5jdGlvbiBidWlsZFNlbGVjdG9ycyh7XG4gIHNlcmlhbGl6ZVF1ZXJ5QXJncyxcbiAgcmVkdWNlclBhdGgsXG4gIGNyZWF0ZVNlbGVjdG9yOiBjcmVhdGVTZWxlY3RvcjJcbn0pIHtcbiAgY29uc3Qgc2VsZWN0U2tpcHBlZFF1ZXJ5ID0gKHN0YXRlKSA9PiBkZWZhdWx0UXVlcnlTdWJTdGF0ZTtcbiAgY29uc3Qgc2VsZWN0U2tpcHBlZE11dGF0aW9uID0gKHN0YXRlKSA9PiBkZWZhdWx0TXV0YXRpb25TdWJTdGF0ZTtcbiAgcmV0dXJuIHtcbiAgICBidWlsZFF1ZXJ5U2VsZWN0b3IsXG4gICAgYnVpbGRNdXRhdGlvblNlbGVjdG9yLFxuICAgIHNlbGVjdEludmFsaWRhdGVkQnksXG4gICAgc2VsZWN0Q2FjaGVkQXJnc0ZvclF1ZXJ5XG4gIH07XG4gIGZ1bmN0aW9uIHdpdGhSZXF1ZXN0RmxhZ3Moc3Vic3RhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3Vic3RhdGUsXG4gICAgICAuLi5nZXRSZXF1ZXN0U3RhdHVzRmxhZ3Moc3Vic3RhdGUuc3RhdHVzKVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gc2VsZWN0SW50ZXJuYWxTdGF0ZShyb290U3RhdGUpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHJvb3RTdGF0ZVtyZWR1Y2VyUGF0aF07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICBpZiAoc2VsZWN0SW50ZXJuYWxTdGF0ZS50cmlnZ2VyZWQpIHJldHVybiBzdGF0ZTtcbiAgICAgICAgc2VsZWN0SW50ZXJuYWxTdGF0ZS50cmlnZ2VyZWQgPSB0cnVlO1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvcjogTm8gZGF0YSBmb3VuZCBhdCBcXGBzdGF0ZS4ke3JlZHVjZXJQYXRofVxcYC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIHRoZSByZWR1Y2VyIHRvIHRoZSBzdG9yZT9gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIGZ1bmN0aW9uIGJ1aWxkUXVlcnlTZWxlY3RvcihlbmRwb2ludE5hbWUsIGVuZHBvaW50RGVmaW5pdGlvbikge1xuICAgIHJldHVybiAocXVlcnlBcmdzKSA9PiB7XG4gICAgICBpZiAocXVlcnlBcmdzID09PSBza2lwVG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yMihzZWxlY3RTa2lwcGVkUXVlcnksIHdpdGhSZXF1ZXN0RmxhZ3MpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VyaWFsaXplZEFyZ3MgPSBzZXJpYWxpemVRdWVyeUFyZ3Moe1xuICAgICAgICBxdWVyeUFyZ3MsXG4gICAgICAgIGVuZHBvaW50RGVmaW5pdGlvbixcbiAgICAgICAgZW5kcG9pbnROYW1lXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlbGVjdFF1ZXJ5U3Vic3RhdGUgPSAoc3RhdGUpID0+IHNlbGVjdEludGVybmFsU3RhdGUoc3RhdGUpPy5xdWVyaWVzPy5bc2VyaWFsaXplZEFyZ3NdID8/IGRlZmF1bHRRdWVyeVN1YlN0YXRlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yMihzZWxlY3RRdWVyeVN1YnN0YXRlLCB3aXRoUmVxdWVzdEZsYWdzKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGJ1aWxkTXV0YXRpb25TZWxlY3RvcigpIHtcbiAgICByZXR1cm4gKGlkKSA9PiB7XG4gICAgICBsZXQgbXV0YXRpb25JZDtcbiAgICAgIGlmICh0eXBlb2YgaWQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgbXV0YXRpb25JZCA9IGdldE11dGF0aW9uQ2FjaGVLZXkoaWQpID8/IHNraXBUb2tlbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG11dGF0aW9uSWQgPSBpZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdE11dGF0aW9uU3Vic3RhdGUgPSAoc3RhdGUpID0+IHNlbGVjdEludGVybmFsU3RhdGUoc3RhdGUpPy5tdXRhdGlvbnM/LlttdXRhdGlvbklkXSA/PyBkZWZhdWx0TXV0YXRpb25TdWJTdGF0ZTtcbiAgICAgIGNvbnN0IGZpbmFsU2VsZWN0TXV0YXRpb25TdWJzdGF0ZSA9IG11dGF0aW9uSWQgPT09IHNraXBUb2tlbiA/IHNlbGVjdFNraXBwZWRNdXRhdGlvbiA6IHNlbGVjdE11dGF0aW9uU3Vic3RhdGU7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3IyKGZpbmFsU2VsZWN0TXV0YXRpb25TdWJzdGF0ZSwgd2l0aFJlcXVlc3RGbGFncyk7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBzZWxlY3RJbnZhbGlkYXRlZEJ5KHN0YXRlLCB0YWdzKSB7XG4gICAgY29uc3QgYXBpU3RhdGUgPSBzdGF0ZVtyZWR1Y2VyUGF0aF07XG4gICAgY29uc3QgdG9JbnZhbGlkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzLmZpbHRlcihpc05vdE51bGxpc2gpLm1hcChleHBhbmRUYWdEZXNjcmlwdGlvbikpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVkID0gYXBpU3RhdGUucHJvdmlkZWRbdGFnLnR5cGVdO1xuICAgICAgaWYgKCFwcm92aWRlZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGxldCBpbnZhbGlkYXRlU3Vic2NyaXB0aW9ucyA9ICh0YWcuaWQgIT09IHZvaWQgMCA/IChcbiAgICAgICAgLy8gaWQgZ2l2ZW46IGludmFsaWRhdGUgYWxsIHF1ZXJpZXMgdGhhdCBwcm92aWRlIHRoaXMgdHlwZSAmIGlkXG4gICAgICAgIHByb3ZpZGVkW3RhZy5pZF1cbiAgICAgICkgOiAoXG4gICAgICAgIC8vIG5vIGlkOiBpbnZhbGlkYXRlIGFsbCBxdWVyaWVzIHRoYXQgcHJvdmlkZSB0aGlzIHR5cGVcbiAgICAgICAgZmxhdHRlbihPYmplY3QudmFsdWVzKHByb3ZpZGVkKSlcbiAgICAgICkpID8/IFtdO1xuICAgICAgZm9yIChjb25zdCBpbnZhbGlkYXRlIG9mIGludmFsaWRhdGVTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgIHRvSW52YWxpZGF0ZS5hZGQoaW52YWxpZGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmbGF0dGVuKEFycmF5LmZyb20odG9JbnZhbGlkYXRlLnZhbHVlcygpKS5tYXAoKHF1ZXJ5Q2FjaGVLZXkpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3ViU3RhdGUgPSBhcGlTdGF0ZS5xdWVyaWVzW3F1ZXJ5Q2FjaGVLZXldO1xuICAgICAgcmV0dXJuIHF1ZXJ5U3ViU3RhdGUgPyBbe1xuICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICBlbmRwb2ludE5hbWU6IHF1ZXJ5U3ViU3RhdGUuZW5kcG9pbnROYW1lLFxuICAgICAgICBvcmlnaW5hbEFyZ3M6IHF1ZXJ5U3ViU3RhdGUub3JpZ2luYWxBcmdzXG4gICAgICB9XSA6IFtdO1xuICAgIH0pKTtcbiAgfVxuICBmdW5jdGlvbiBzZWxlY3RDYWNoZWRBcmdzRm9yUXVlcnkoc3RhdGUsIHF1ZXJ5TmFtZSkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHN0YXRlW3JlZHVjZXJQYXRoXS5xdWVyaWVzKS5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeT8uZW5kcG9pbnROYW1lID09PSBxdWVyeU5hbWUgJiYgZW50cnkuc3RhdHVzICE9PSBcInVuaW5pdGlhbGl6ZWRcIiAvKiB1bmluaXRpYWxpemVkICovKS5tYXAoKGVudHJ5KSA9PiBlbnRyeS5vcmlnaW5hbEFyZ3MpO1xuICB9XG59XG5cbi8vIHNyYy9xdWVyeS9jcmVhdGVBcGkudHNcbmltcG9ydCB7IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UgYXMgX2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UyIH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXRcIjtcblxuLy8gc3JjL3F1ZXJ5L2RlZmF1bHRTZXJpYWxpemVRdWVyeUFyZ3MudHNcbnZhciBjYWNoZSA9IFdlYWtNYXAgPyAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKSA6IHZvaWQgMDtcbnZhciBkZWZhdWx0U2VyaWFsaXplUXVlcnlBcmdzID0gKHtcbiAgZW5kcG9pbnROYW1lLFxuICBxdWVyeUFyZ3Ncbn0pID0+IHtcbiAgbGV0IHNlcmlhbGl6ZWQgPSBcIlwiO1xuICBjb25zdCBjYWNoZWQgPSBjYWNoZT8uZ2V0KHF1ZXJ5QXJncyk7XG4gIGlmICh0eXBlb2YgY2FjaGVkID09PSBcInN0cmluZ1wiKSB7XG4gICAgc2VyaWFsaXplZCA9IGNhY2hlZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZCA9IEpTT04uc3RyaW5naWZ5KHF1ZXJ5QXJncywgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gdHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiID8ge1xuICAgICAgICAkYmlnaW50OiB2YWx1ZS50b1N0cmluZygpXG4gICAgICB9IDogdmFsdWU7XG4gICAgICB2YWx1ZSA9IGlzUGxhaW5PYmplY3QodmFsdWUpID8gT2JqZWN0LmtleXModmFsdWUpLnNvcnQoKS5yZWR1Y2UoKGFjYywga2V5MikgPT4ge1xuICAgICAgICBhY2Nba2V5Ml0gPSB2YWx1ZVtrZXkyXTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KSA6IHZhbHVlO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICAgIGlmIChpc1BsYWluT2JqZWN0KHF1ZXJ5QXJncykpIHtcbiAgICAgIGNhY2hlPy5zZXQocXVlcnlBcmdzLCBzdHJpbmdpZmllZCk7XG4gICAgfVxuICAgIHNlcmlhbGl6ZWQgPSBzdHJpbmdpZmllZDtcbiAgfVxuICByZXR1cm4gYCR7ZW5kcG9pbnROYW1lfSgke3NlcmlhbGl6ZWR9KWA7XG59O1xuXG4vLyBzcmMvcXVlcnkvY3JlYXRlQXBpLnRzXG5pbXBvcnQgeyB3ZWFrTWFwTWVtb2l6ZSB9IGZyb20gXCJyZXNlbGVjdFwiO1xuZnVuY3Rpb24gYnVpbGRDcmVhdGVBcGkoLi4ubW9kdWxlcykge1xuICByZXR1cm4gZnVuY3Rpb24gYmFzZUNyZWF0ZUFwaShvcHRpb25zKSB7XG4gICAgY29uc3QgZXh0cmFjdFJlaHlkcmF0aW9uSW5mbyA9IHdlYWtNYXBNZW1vaXplKChhY3Rpb24pID0+IG9wdGlvbnMuZXh0cmFjdFJlaHlkcmF0aW9uSW5mbz8uKGFjdGlvbiwge1xuICAgICAgcmVkdWNlclBhdGg6IG9wdGlvbnMucmVkdWNlclBhdGggPz8gXCJhcGlcIlxuICAgIH0pKTtcbiAgICBjb25zdCBvcHRpb25zV2l0aERlZmF1bHRzID0ge1xuICAgICAgcmVkdWNlclBhdGg6IFwiYXBpXCIsXG4gICAgICBrZWVwVW51c2VkRGF0YUZvcjogNjAsXG4gICAgICByZWZldGNoT25Nb3VudE9yQXJnQ2hhbmdlOiBmYWxzZSxcbiAgICAgIHJlZmV0Y2hPbkZvY3VzOiBmYWxzZSxcbiAgICAgIHJlZmV0Y2hPblJlY29ubmVjdDogZmFsc2UsXG4gICAgICBpbnZhbGlkYXRpb25CZWhhdmlvcjogXCJkZWxheWVkXCIsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZXh0cmFjdFJlaHlkcmF0aW9uSW5mbyxcbiAgICAgIHNlcmlhbGl6ZVF1ZXJ5QXJncyhxdWVyeUFyZ3NBcGkpIHtcbiAgICAgICAgbGV0IGZpbmFsU2VyaWFsaXplUXVlcnlBcmdzID0gZGVmYXVsdFNlcmlhbGl6ZVF1ZXJ5QXJncztcbiAgICAgICAgaWYgKFwic2VyaWFsaXplUXVlcnlBcmdzXCIgaW4gcXVlcnlBcmdzQXBpLmVuZHBvaW50RGVmaW5pdGlvbikge1xuICAgICAgICAgIGNvbnN0IGVuZHBvaW50U1FBID0gcXVlcnlBcmdzQXBpLmVuZHBvaW50RGVmaW5pdGlvbi5zZXJpYWxpemVRdWVyeUFyZ3M7XG4gICAgICAgICAgZmluYWxTZXJpYWxpemVRdWVyeUFyZ3MgPSAocXVlcnlBcmdzQXBpMikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbFJlc3VsdCA9IGVuZHBvaW50U1FBKHF1ZXJ5QXJnc0FwaTIpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbml0aWFsUmVzdWx0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbml0aWFsUmVzdWx0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRTZXJpYWxpemVRdWVyeUFyZ3Moe1xuICAgICAgICAgICAgICAgIC4uLnF1ZXJ5QXJnc0FwaTIsXG4gICAgICAgICAgICAgICAgcXVlcnlBcmdzOiBpbml0aWFsUmVzdWx0XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zZXJpYWxpemVRdWVyeUFyZ3MpIHtcbiAgICAgICAgICBmaW5hbFNlcmlhbGl6ZVF1ZXJ5QXJncyA9IG9wdGlvbnMuc2VyaWFsaXplUXVlcnlBcmdzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaW5hbFNlcmlhbGl6ZVF1ZXJ5QXJncyhxdWVyeUFyZ3NBcGkpO1xuICAgICAgfSxcbiAgICAgIHRhZ1R5cGVzOiBbLi4ub3B0aW9ucy50YWdUeXBlcyB8fCBbXV1cbiAgICB9O1xuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICBlbmRwb2ludERlZmluaXRpb25zOiB7fSxcbiAgICAgIGJhdGNoKGZuKSB7XG4gICAgICAgIGZuKCk7XG4gICAgICB9LFxuICAgICAgYXBpVWlkOiBuYW5vaWQoKSxcbiAgICAgIGV4dHJhY3RSZWh5ZHJhdGlvbkluZm8sXG4gICAgICBoYXNSZWh5ZHJhdGlvbkluZm86IHdlYWtNYXBNZW1vaXplKChhY3Rpb24pID0+IGV4dHJhY3RSZWh5ZHJhdGlvbkluZm8oYWN0aW9uKSAhPSBudWxsKVxuICAgIH07XG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgaW5qZWN0RW5kcG9pbnRzLFxuICAgICAgZW5oYW5jZUVuZHBvaW50cyh7XG4gICAgICAgIGFkZFRhZ1R5cGVzLFxuICAgICAgICBlbmRwb2ludHNcbiAgICAgIH0pIHtcbiAgICAgICAgaWYgKGFkZFRhZ1R5cGVzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBlVCBvZiBhZGRUYWdUeXBlcykge1xuICAgICAgICAgICAgaWYgKCFvcHRpb25zV2l0aERlZmF1bHRzLnRhZ1R5cGVzLmluY2x1ZGVzKGVUKSkge1xuICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMudGFnVHlwZXMucHVzaChlVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlbmRwb2ludHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtlbmRwb2ludE5hbWUsIHBhcnRpYWxEZWZpbml0aW9uXSBvZiBPYmplY3QuZW50cmllcyhlbmRwb2ludHMpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnRpYWxEZWZpbml0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgcGFydGlhbERlZmluaXRpb24oY29udGV4dC5lbmRwb2ludERlZmluaXRpb25zW2VuZHBvaW50TmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbZW5kcG9pbnROYW1lXSB8fCB7fSwgcGFydGlhbERlZmluaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgaW5pdGlhbGl6ZWRNb2R1bGVzID0gbW9kdWxlcy5tYXAoKG0pID0+IG0uaW5pdChhcGksIG9wdGlvbnNXaXRoRGVmYXVsdHMsIGNvbnRleHQpKTtcbiAgICBmdW5jdGlvbiBpbmplY3RFbmRwb2ludHMoaW5qZWN0KSB7XG4gICAgICBjb25zdCBldmFsdWF0ZWRFbmRwb2ludHMgPSBpbmplY3QuZW5kcG9pbnRzKHtcbiAgICAgICAgcXVlcnk6ICh4KSA9PiAoe1xuICAgICAgICAgIC4uLngsXG4gICAgICAgICAgdHlwZTogXCJxdWVyeVwiIC8qIHF1ZXJ5ICovXG4gICAgICAgIH0pLFxuICAgICAgICBtdXRhdGlvbjogKHgpID0+ICh7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICB0eXBlOiBcIm11dGF0aW9uXCIgLyogbXV0YXRpb24gKi9cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBbZW5kcG9pbnROYW1lLCBkZWZpbml0aW9uXSBvZiBPYmplY3QuZW50cmllcyhldmFsdWF0ZWRFbmRwb2ludHMpKSB7XG4gICAgICAgIGlmIChpbmplY3Qub3ZlcnJpZGVFeGlzdGluZyAhPT0gdHJ1ZSAmJiBlbmRwb2ludE5hbWUgaW4gY29udGV4dC5lbmRwb2ludERlZmluaXRpb25zKSB7XG4gICAgICAgICAgaWYgKGluamVjdC5vdmVycmlkZUV4aXN0aW5nID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBfZm9ybWF0UHJvZEVycm9yTWVzc2FnZTIoMzkpIDogYGNhbGxlZCBcXGBpbmplY3RFbmRwb2ludHNcXGAgdG8gb3ZlcnJpZGUgYWxyZWFkeS1leGlzdGluZyBlbmRwb2ludE5hbWUgJHtlbmRwb2ludE5hbWV9IHdpdGhvdXQgc3BlY2lmeWluZyBcXGBvdmVycmlkZUV4aXN0aW5nOiB0cnVlXFxgYCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYWxsZWQgXFxgaW5qZWN0RW5kcG9pbnRzXFxgIHRvIG92ZXJyaWRlIGFscmVhZHktZXhpc3RpbmcgZW5kcG9pbnROYW1lICR7ZW5kcG9pbnROYW1lfSB3aXRob3V0IHNwZWNpZnlpbmcgXFxgb3ZlcnJpZGVFeGlzdGluZzogdHJ1ZVxcYGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbZW5kcG9pbnROYW1lXSA9IGRlZmluaXRpb247XG4gICAgICAgIGZvciAoY29uc3QgbSBvZiBpbml0aWFsaXplZE1vZHVsZXMpIHtcbiAgICAgICAgICBtLmluamVjdEVuZHBvaW50KGVuZHBvaW50TmFtZSwgZGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcGk7XG4gICAgfVxuICAgIHJldHVybiBhcGkuaW5qZWN0RW5kcG9pbnRzKHtcbiAgICAgIGVuZHBvaW50czogb3B0aW9ucy5lbmRwb2ludHNcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2Zha2VCYXNlUXVlcnkudHNcbmltcG9ydCB7IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UgYXMgX2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UzIH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXRcIjtcbnZhciBfTkVWRVIgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sKCk7XG5mdW5jdGlvbiBmYWtlQmFzZVF1ZXJ5KCkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IF9mb3JtYXRQcm9kRXJyb3JNZXNzYWdlMygzMykgOiBcIldoZW4gdXNpbmcgYGZha2VCYXNlUXVlcnlgLCBhbGwgcXVlcmllcyAmIG11dGF0aW9ucyBtdXN0IHVzZSB0aGUgYHF1ZXJ5Rm5gIGRlZmluaXRpb24gc3ludGF4LlwiKTtcbiAgfTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvbW9kdWxlLnRzXG5pbXBvcnQgeyBlbmFibGVQYXRjaGVzIH0gZnJvbSBcImltbWVyXCI7XG5cbi8vIHNyYy9xdWVyeS90c0hlbHBlcnMudHNcbmZ1bmN0aW9uIGFzc2VydENhc3Qodikge1xufVxuZnVuY3Rpb24gc2FmZUFzc2lnbih0YXJnZXQsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGFyZ2V0LCAuLi5hcmdzKTtcbn1cblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRNaWRkbGV3YXJlL2JhdGNoQWN0aW9ucy50c1xuaW1wb3J0IHsgcHJvZHVjZVdpdGhQYXRjaGVzIGFzIHByb2R1Y2VXaXRoUGF0Y2hlczIgfSBmcm9tIFwiaW1tZXJcIjtcbnZhciBidWlsZEJhdGNoZWRBY3Rpb25zSGFuZGxlciA9ICh7XG4gIGFwaSxcbiAgcXVlcnlUaHVuayxcbiAgaW50ZXJuYWxTdGF0ZVxufSkgPT4ge1xuICBjb25zdCBzdWJzY3JpcHRpb25zUHJlZml4ID0gYCR7YXBpLnJlZHVjZXJQYXRofS9zdWJzY3JpcHRpb25zYDtcbiAgbGV0IHByZXZpb3VzU3Vic2NyaXB0aW9ucyA9IG51bGw7XG4gIGxldCB1cGRhdGVTeW5jVGltZXIgPSBudWxsO1xuICBjb25zdCB7XG4gICAgdXBkYXRlU3Vic2NyaXB0aW9uT3B0aW9ucyxcbiAgICB1bnN1YnNjcmliZVF1ZXJ5UmVzdWx0XG4gIH0gPSBhcGkuaW50ZXJuYWxBY3Rpb25zO1xuICBjb25zdCBhY3R1YWxseU11dGF0ZVN1YnNjcmlwdGlvbnMgPSAobXV0YWJsZVN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBpZiAodXBkYXRlU3Vic2NyaXB0aW9uT3B0aW9ucy5tYXRjaChhY3Rpb24pKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHF1ZXJ5Q2FjaGVLZXksXG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgfSA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgaWYgKG11dGFibGVTdGF0ZT8uW3F1ZXJ5Q2FjaGVLZXldPy5bcmVxdWVzdElkXSkge1xuICAgICAgICBtdXRhYmxlU3RhdGVbcXVlcnlDYWNoZUtleV1bcmVxdWVzdElkXSA9IG9wdGlvbnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHVuc3Vic2NyaWJlUXVlcnlSZXN1bHQubWF0Y2goYWN0aW9uKSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBxdWVyeUNhY2hlS2V5LFxuICAgICAgICByZXF1ZXN0SWRcbiAgICAgIH0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGlmIChtdXRhYmxlU3RhdGVbcXVlcnlDYWNoZUtleV0pIHtcbiAgICAgICAgZGVsZXRlIG11dGFibGVTdGF0ZVtxdWVyeUNhY2hlS2V5XVtyZXF1ZXN0SWRdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChhcGkuaW50ZXJuYWxBY3Rpb25zLnJlbW92ZVF1ZXJ5UmVzdWx0Lm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIGRlbGV0ZSBtdXRhYmxlU3RhdGVbYWN0aW9uLnBheWxvYWQucXVlcnlDYWNoZUtleV07XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHF1ZXJ5VGh1bmsucGVuZGluZy5tYXRjaChhY3Rpb24pKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBhcmcsXG4gICAgICAgICAgcmVxdWVzdElkXG4gICAgICAgIH1cbiAgICAgIH0gPSBhY3Rpb247XG4gICAgICBjb25zdCBzdWJzdGF0ZSA9IG11dGFibGVTdGF0ZVthcmcucXVlcnlDYWNoZUtleV0gPz89IHt9O1xuICAgICAgc3Vic3RhdGVbYCR7cmVxdWVzdElkfV9ydW5uaW5nYF0gPSB7fTtcbiAgICAgIGlmIChhcmcuc3Vic2NyaWJlKSB7XG4gICAgICAgIHN1YnN0YXRlW3JlcXVlc3RJZF0gPSBhcmcuc3Vic2NyaXB0aW9uT3B0aW9ucyA/PyBzdWJzdGF0ZVtyZXF1ZXN0SWRdID8/IHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxldCBtdXRhdGVkID0gZmFsc2U7XG4gICAgaWYgKHF1ZXJ5VGh1bmsuZnVsZmlsbGVkLm1hdGNoKGFjdGlvbikgfHwgcXVlcnlUaHVuay5yZWplY3RlZC5tYXRjaChhY3Rpb24pKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IG11dGFibGVTdGF0ZVthY3Rpb24ubWV0YS5hcmcucXVlcnlDYWNoZUtleV0gfHwge307XG4gICAgICBjb25zdCBrZXkgPSBgJHthY3Rpb24ubWV0YS5yZXF1ZXN0SWR9X3J1bm5pbmdgO1xuICAgICAgbXV0YXRlZCB8fD0gISFzdGF0ZVtrZXldO1xuICAgICAgZGVsZXRlIHN0YXRlW2tleV07XG4gICAgfVxuICAgIGlmIChxdWVyeVRodW5rLnJlamVjdGVkLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICBhcmcsXG4gICAgICAgICAgcmVxdWVzdElkXG4gICAgICAgIH1cbiAgICAgIH0gPSBhY3Rpb247XG4gICAgICBpZiAoY29uZGl0aW9uICYmIGFyZy5zdWJzY3JpYmUpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RhdGUgPSBtdXRhYmxlU3RhdGVbYXJnLnF1ZXJ5Q2FjaGVLZXldID8/PSB7fTtcbiAgICAgICAgc3Vic3RhdGVbcmVxdWVzdElkXSA9IGFyZy5zdWJzY3JpcHRpb25PcHRpb25zID8/IHN1YnN0YXRlW3JlcXVlc3RJZF0gPz8ge307XG4gICAgICAgIG11dGF0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbXV0YXRlZDtcbiAgfTtcbiAgY29uc3QgZ2V0U3Vic2NyaXB0aW9ucyA9ICgpID0+IGludGVybmFsU3RhdGUuY3VycmVudFN1YnNjcmlwdGlvbnM7XG4gIGNvbnN0IGdldFN1YnNjcmlwdGlvbkNvdW50ID0gKHF1ZXJ5Q2FjaGVLZXkpID0+IHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gZ2V0U3Vic2NyaXB0aW9ucygpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnNGb3JRdWVyeUFyZyA9IHN1YnNjcmlwdGlvbnNbcXVlcnlDYWNoZUtleV0gPz8ge307XG4gICAgcmV0dXJuIGNvdW50T2JqZWN0S2V5cyhzdWJzY3JpcHRpb25zRm9yUXVlcnlBcmcpO1xuICB9O1xuICBjb25zdCBpc1JlcXVlc3RTdWJzY3JpYmVkID0gKHF1ZXJ5Q2FjaGVLZXksIHJlcXVlc3RJZCkgPT4ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBnZXRTdWJzY3JpcHRpb25zKCk7XG4gICAgcmV0dXJuICEhc3Vic2NyaXB0aW9ucz8uW3F1ZXJ5Q2FjaGVLZXldPy5bcmVxdWVzdElkXTtcbiAgfTtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uU2VsZWN0b3JzID0ge1xuICAgIGdldFN1YnNjcmlwdGlvbnMsXG4gICAgZ2V0U3Vic2NyaXB0aW9uQ291bnQsXG4gICAgaXNSZXF1ZXN0U3Vic2NyaWJlZFxuICB9O1xuICByZXR1cm4gKGFjdGlvbiwgbXdBcGkpID0+IHtcbiAgICBpZiAoIXByZXZpb3VzU3Vic2NyaXB0aW9ucykge1xuICAgICAgcHJldmlvdXNTdWJzY3JpcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpbnRlcm5hbFN0YXRlLmN1cnJlbnRTdWJzY3JpcHRpb25zKSk7XG4gICAgfVxuICAgIGlmIChhcGkudXRpbC5yZXNldEFwaVN0YXRlLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIHByZXZpb3VzU3Vic2NyaXB0aW9ucyA9IGludGVybmFsU3RhdGUuY3VycmVudFN1YnNjcmlwdGlvbnMgPSB7fTtcbiAgICAgIHVwZGF0ZVN5bmNUaW1lciA9IG51bGw7XG4gICAgICByZXR1cm4gW3RydWUsIGZhbHNlXTtcbiAgICB9XG4gICAgaWYgKGFwaS5pbnRlcm5hbEFjdGlvbnMuaW50ZXJuYWxfZ2V0UlRLUVN1YnNjcmlwdGlvbnMubWF0Y2goYWN0aW9uKSkge1xuICAgICAgcmV0dXJuIFtmYWxzZSwgc3Vic2NyaXB0aW9uU2VsZWN0b3JzXTtcbiAgICB9XG4gICAgY29uc3QgZGlkTXV0YXRlID0gYWN0dWFsbHlNdXRhdGVTdWJzY3JpcHRpb25zKGludGVybmFsU3RhdGUuY3VycmVudFN1YnNjcmlwdGlvbnMsIGFjdGlvbik7XG4gICAgbGV0IGFjdGlvblNob3VsZENvbnRpbnVlID0gdHJ1ZTtcbiAgICBpZiAoZGlkTXV0YXRlKSB7XG4gICAgICBpZiAoIXVwZGF0ZVN5bmNUaW1lcikge1xuICAgICAgICB1cGRhdGVTeW5jVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTdWJzY3JpcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpbnRlcm5hbFN0YXRlLmN1cnJlbnRTdWJzY3JpcHRpb25zKSk7XG4gICAgICAgICAgY29uc3QgWywgcGF0Y2hlc10gPSBwcm9kdWNlV2l0aFBhdGNoZXMyKHByZXZpb3VzU3Vic2NyaXB0aW9ucywgKCkgPT4gbmV3U3Vic2NyaXB0aW9ucyk7XG4gICAgICAgICAgbXdBcGkubmV4dChhcGkuaW50ZXJuYWxBY3Rpb25zLnN1YnNjcmlwdGlvbnNVcGRhdGVkKHBhdGNoZXMpKTtcbiAgICAgICAgICBwcmV2aW91c1N1YnNjcmlwdGlvbnMgPSBuZXdTdWJzY3JpcHRpb25zO1xuICAgICAgICAgIHVwZGF0ZVN5bmNUaW1lciA9IG51bGw7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1N1YnNjcmlwdGlvblNsaWNlQWN0aW9uID0gdHlwZW9mIGFjdGlvbi50eXBlID09IFwic3RyaW5nXCIgJiYgISFhY3Rpb24udHlwZS5zdGFydHNXaXRoKHN1YnNjcmlwdGlvbnNQcmVmaXgpO1xuICAgICAgY29uc3QgaXNBZGRpdGlvbmFsU3Vic2NyaXB0aW9uQWN0aW9uID0gcXVlcnlUaHVuay5yZWplY3RlZC5tYXRjaChhY3Rpb24pICYmIGFjdGlvbi5tZXRhLmNvbmRpdGlvbiAmJiAhIWFjdGlvbi5tZXRhLmFyZy5zdWJzY3JpYmU7XG4gICAgICBhY3Rpb25TaG91bGRDb250aW51ZSA9ICFpc1N1YnNjcmlwdGlvblNsaWNlQWN0aW9uICYmICFpc0FkZGl0aW9uYWxTdWJzY3JpcHRpb25BY3Rpb247XG4gICAgfVxuICAgIHJldHVybiBbYWN0aW9uU2hvdWxkQ29udGludWUsIGZhbHNlXTtcbiAgfTtcbn07XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkTWlkZGxld2FyZS9jYWNoZUNvbGxlY3Rpb24udHNcbmZ1bmN0aW9uIGlzT2JqZWN0RW1wdHkob2JqKSB7XG4gIGZvciAoY29uc3QgayBpbiBvYmopIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG52YXIgVEhJUlRZX1RXT19CSVRfTUFYX1RJTUVSX1NFQ09ORFMgPSAyMTQ3NDgzNjQ3IC8gMWUzIC0gMTtcbnZhciBidWlsZENhY2hlQ29sbGVjdGlvbkhhbmRsZXIgPSAoe1xuICByZWR1Y2VyUGF0aCxcbiAgYXBpLFxuICBxdWVyeVRodW5rLFxuICBjb250ZXh0LFxuICBpbnRlcm5hbFN0YXRlXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICByZW1vdmVRdWVyeVJlc3VsdCxcbiAgICB1bnN1YnNjcmliZVF1ZXJ5UmVzdWx0LFxuICAgIGNhY2hlRW50cmllc1Vwc2VydGVkXG4gIH0gPSBhcGkuaW50ZXJuYWxBY3Rpb25zO1xuICBjb25zdCBjYW5UcmlnZ2VyVW5zdWJzY3JpYmUgPSBpc0FueU9mKHVuc3Vic2NyaWJlUXVlcnlSZXN1bHQubWF0Y2gsIHF1ZXJ5VGh1bmsuZnVsZmlsbGVkLCBxdWVyeVRodW5rLnJlamVjdGVkLCBjYWNoZUVudHJpZXNVcHNlcnRlZC5tYXRjaCk7XG4gIGZ1bmN0aW9uIGFueVN1YnNjcmlwdGlvbnNSZW1haW5pbmdGb3JLZXkocXVlcnlDYWNoZUtleSkge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBpbnRlcm5hbFN0YXRlLmN1cnJlbnRTdWJzY3JpcHRpb25zW3F1ZXJ5Q2FjaGVLZXldO1xuICAgIHJldHVybiAhIXN1YnNjcmlwdGlvbnMgJiYgIWlzT2JqZWN0RW1wdHkoc3Vic2NyaXB0aW9ucyk7XG4gIH1cbiAgY29uc3QgY3VycmVudFJlbW92YWxUaW1lb3V0cyA9IHt9O1xuICBjb25zdCBoYW5kbGVyID0gKGFjdGlvbiwgbXdBcGksIGludGVybmFsU3RhdGUyKSA9PiB7XG4gICAgaWYgKGNhblRyaWdnZXJVbnN1YnNjcmliZShhY3Rpb24pKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IG13QXBpLmdldFN0YXRlKClbcmVkdWNlclBhdGhdO1xuICAgICAgbGV0IHF1ZXJ5Q2FjaGVLZXlzO1xuICAgICAgaWYgKGNhY2hlRW50cmllc1Vwc2VydGVkLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgICAgcXVlcnlDYWNoZUtleXMgPSBhY3Rpb24ucGF5bG9hZC5tYXAoKGVudHJ5KSA9PiBlbnRyeS5xdWVyeURlc2NyaXB0aW9uLnF1ZXJ5Q2FjaGVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgICAgICAgfSA9IHVuc3Vic2NyaWJlUXVlcnlSZXN1bHQubWF0Y2goYWN0aW9uKSA/IGFjdGlvbi5wYXlsb2FkIDogYWN0aW9uLm1ldGEuYXJnO1xuICAgICAgICBxdWVyeUNhY2hlS2V5cyA9IFtxdWVyeUNhY2hlS2V5XTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgcXVlcnlDYWNoZUtleSBvZiBxdWVyeUNhY2hlS2V5cykge1xuICAgICAgICBoYW5kbGVVbnN1YnNjcmliZShxdWVyeUNhY2hlS2V5LCBzdGF0ZS5xdWVyaWVzW3F1ZXJ5Q2FjaGVLZXldPy5lbmRwb2ludE5hbWUsIG13QXBpLCBzdGF0ZS5jb25maWcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYXBpLnV0aWwucmVzZXRBcGlTdGF0ZS5tYXRjaChhY3Rpb24pKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHRpbWVvdXRdIG9mIE9iamVjdC5lbnRyaWVzKGN1cnJlbnRSZW1vdmFsVGltZW91dHMpKSB7XG4gICAgICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGRlbGV0ZSBjdXJyZW50UmVtb3ZhbFRpbWVvdXRzW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb250ZXh0Lmhhc1JlaHlkcmF0aW9uSW5mbyhhY3Rpb24pKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IG13QXBpLmdldFN0YXRlKClbcmVkdWNlclBhdGhdO1xuICAgICAgY29uc3Qge1xuICAgICAgICBxdWVyaWVzXG4gICAgICB9ID0gY29udGV4dC5leHRyYWN0UmVoeWRyYXRpb25JbmZvKGFjdGlvbik7XG4gICAgICBmb3IgKGNvbnN0IFtxdWVyeUNhY2hlS2V5LCBxdWVyeVN0YXRlXSBvZiBPYmplY3QuZW50cmllcyhxdWVyaWVzKSkge1xuICAgICAgICBoYW5kbGVVbnN1YnNjcmliZShxdWVyeUNhY2hlS2V5LCBxdWVyeVN0YXRlPy5lbmRwb2ludE5hbWUsIG13QXBpLCBzdGF0ZS5jb25maWcpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgZnVuY3Rpb24gaGFuZGxlVW5zdWJzY3JpYmUocXVlcnlDYWNoZUtleSwgZW5kcG9pbnROYW1lLCBhcGkyLCBjb25maWcpIHtcbiAgICBjb25zdCBlbmRwb2ludERlZmluaXRpb24gPSBjb250ZXh0LmVuZHBvaW50RGVmaW5pdGlvbnNbZW5kcG9pbnROYW1lXTtcbiAgICBjb25zdCBrZWVwVW51c2VkRGF0YUZvciA9IGVuZHBvaW50RGVmaW5pdGlvbj8ua2VlcFVudXNlZERhdGFGb3IgPz8gY29uZmlnLmtlZXBVbnVzZWREYXRhRm9yO1xuICAgIGlmIChrZWVwVW51c2VkRGF0YUZvciA9PT0gSW5maW5pdHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmluYWxLZWVwVW51c2VkRGF0YUZvciA9IE1hdGgubWF4KDAsIE1hdGgubWluKGtlZXBVbnVzZWREYXRhRm9yLCBUSElSVFlfVFdPX0JJVF9NQVhfVElNRVJfU0VDT05EUykpO1xuICAgIGlmICghYW55U3Vic2NyaXB0aW9uc1JlbWFpbmluZ0ZvcktleShxdWVyeUNhY2hlS2V5KSkge1xuICAgICAgY29uc3QgY3VycmVudFRpbWVvdXQgPSBjdXJyZW50UmVtb3ZhbFRpbWVvdXRzW3F1ZXJ5Q2FjaGVLZXldO1xuICAgICAgaWYgKGN1cnJlbnRUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChjdXJyZW50VGltZW91dCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50UmVtb3ZhbFRpbWVvdXRzW3F1ZXJ5Q2FjaGVLZXldID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghYW55U3Vic2NyaXB0aW9uc1JlbWFpbmluZ0ZvcktleShxdWVyeUNhY2hlS2V5KSkge1xuICAgICAgICAgIGFwaTIuZGlzcGF0Y2gocmVtb3ZlUXVlcnlSZXN1bHQoe1xuICAgICAgICAgICAgcXVlcnlDYWNoZUtleVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgY3VycmVudFJlbW92YWxUaW1lb3V0c1txdWVyeUNhY2hlS2V5XTtcbiAgICAgIH0sIGZpbmFsS2VlcFVudXNlZERhdGFGb3IgKiAxZTMpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaGFuZGxlcjtcbn07XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkTWlkZGxld2FyZS9jYWNoZUxpZmVjeWNsZS50c1xudmFyIG5ldmVyUmVzb2x2ZWRFcnJvciA9IG5ldyBFcnJvcihcIlByb21pc2UgbmV2ZXIgcmVzb2x2ZWQgYmVmb3JlIGNhY2hlRW50cnlSZW1vdmVkLlwiKTtcbnZhciBidWlsZENhY2hlTGlmZWN5Y2xlSGFuZGxlciA9ICh7XG4gIGFwaSxcbiAgcmVkdWNlclBhdGgsXG4gIGNvbnRleHQsXG4gIHF1ZXJ5VGh1bmssXG4gIG11dGF0aW9uVGh1bmssXG4gIGludGVybmFsU3RhdGVcbn0pID0+IHtcbiAgY29uc3QgaXNRdWVyeVRodW5rID0gaXNBc3luY1RodW5rQWN0aW9uKHF1ZXJ5VGh1bmspO1xuICBjb25zdCBpc011dGF0aW9uVGh1bmsgPSBpc0FzeW5jVGh1bmtBY3Rpb24obXV0YXRpb25UaHVuayk7XG4gIGNvbnN0IGlzRnVsZmlsbGVkVGh1bmsgPSBpc0Z1bGZpbGxlZChxdWVyeVRodW5rLCBtdXRhdGlvblRodW5rKTtcbiAgY29uc3QgbGlmZWN5Y2xlTWFwID0ge307XG4gIGZ1bmN0aW9uIHJlc29sdmVMaWZlY3ljbGVFbnRyeShjYWNoZUtleSwgZGF0YSwgbWV0YSkge1xuICAgIGNvbnN0IGxpZmVjeWNsZSA9IGxpZmVjeWNsZU1hcFtjYWNoZUtleV07XG4gICAgaWYgKGxpZmVjeWNsZT8udmFsdWVSZXNvbHZlZCkge1xuICAgICAgbGlmZWN5Y2xlLnZhbHVlUmVzb2x2ZWQoe1xuICAgICAgICBkYXRhLFxuICAgICAgICBtZXRhXG4gICAgICB9KTtcbiAgICAgIGRlbGV0ZSBsaWZlY3ljbGUudmFsdWVSZXNvbHZlZDtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gcmVtb3ZlTGlmZWN5Y2xlRW50cnkoY2FjaGVLZXkpIHtcbiAgICBjb25zdCBsaWZlY3ljbGUgPSBsaWZlY3ljbGVNYXBbY2FjaGVLZXldO1xuICAgIGlmIChsaWZlY3ljbGUpIHtcbiAgICAgIGRlbGV0ZSBsaWZlY3ljbGVNYXBbY2FjaGVLZXldO1xuICAgICAgbGlmZWN5Y2xlLmNhY2hlRW50cnlSZW1vdmVkKCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGhhbmRsZXIgPSAoYWN0aW9uLCBtd0FwaSwgc3RhdGVCZWZvcmUpID0+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGdldENhY2hlS2V5KGFjdGlvbik7XG4gICAgZnVuY3Rpb24gY2hlY2tGb3JOZXdDYWNoZUtleShlbmRwb2ludE5hbWUsIGNhY2hlS2V5MiwgcmVxdWVzdElkLCBvcmlnaW5hbEFyZ3MpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gc3RhdGVCZWZvcmVbcmVkdWNlclBhdGhdLnF1ZXJpZXNbY2FjaGVLZXkyXTtcbiAgICAgIGNvbnN0IHN0YXRlID0gbXdBcGkuZ2V0U3RhdGUoKVtyZWR1Y2VyUGF0aF0ucXVlcmllc1tjYWNoZUtleTJdO1xuICAgICAgaWYgKCFvbGRTdGF0ZSAmJiBzdGF0ZSkge1xuICAgICAgICBoYW5kbGVOZXdLZXkoZW5kcG9pbnROYW1lLCBvcmlnaW5hbEFyZ3MsIGNhY2hlS2V5MiwgbXdBcGksIHJlcXVlc3RJZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChxdWVyeVRodW5rLnBlbmRpbmcubWF0Y2goYWN0aW9uKSkge1xuICAgICAgY2hlY2tGb3JOZXdDYWNoZUtleShhY3Rpb24ubWV0YS5hcmcuZW5kcG9pbnROYW1lLCBjYWNoZUtleSwgYWN0aW9uLm1ldGEucmVxdWVzdElkLCBhY3Rpb24ubWV0YS5hcmcub3JpZ2luYWxBcmdzKTtcbiAgICB9IGVsc2UgaWYgKGFwaS5pbnRlcm5hbEFjdGlvbnMuY2FjaGVFbnRyaWVzVXBzZXJ0ZWQubWF0Y2goYWN0aW9uKSkge1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHF1ZXJ5RGVzY3JpcHRpb24sXG4gICAgICAgIHZhbHVlXG4gICAgICB9IG9mIGFjdGlvbi5wYXlsb2FkKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBlbmRwb2ludE5hbWUsXG4gICAgICAgICAgb3JpZ2luYWxBcmdzLFxuICAgICAgICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgICAgICAgfSA9IHF1ZXJ5RGVzY3JpcHRpb247XG4gICAgICAgIGNoZWNrRm9yTmV3Q2FjaGVLZXkoZW5kcG9pbnROYW1lLCBxdWVyeUNhY2hlS2V5LCBhY3Rpb24ubWV0YS5yZXF1ZXN0SWQsIG9yaWdpbmFsQXJncyk7XG4gICAgICAgIHJlc29sdmVMaWZlY3ljbGVFbnRyeShxdWVyeUNhY2hlS2V5LCB2YWx1ZSwge30pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobXV0YXRpb25UaHVuay5wZW5kaW5nLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gbXdBcGkuZ2V0U3RhdGUoKVtyZWR1Y2VyUGF0aF0ubXV0YXRpb25zW2NhY2hlS2V5XTtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICBoYW5kbGVOZXdLZXkoYWN0aW9uLm1ldGEuYXJnLmVuZHBvaW50TmFtZSwgYWN0aW9uLm1ldGEuYXJnLm9yaWdpbmFsQXJncywgY2FjaGVLZXksIG13QXBpLCBhY3Rpb24ubWV0YS5yZXF1ZXN0SWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNGdWxmaWxsZWRUaHVuayhhY3Rpb24pKSB7XG4gICAgICByZXNvbHZlTGlmZWN5Y2xlRW50cnkoY2FjaGVLZXksIGFjdGlvbi5wYXlsb2FkLCBhY3Rpb24ubWV0YS5iYXNlUXVlcnlNZXRhKTtcbiAgICB9IGVsc2UgaWYgKGFwaS5pbnRlcm5hbEFjdGlvbnMucmVtb3ZlUXVlcnlSZXN1bHQubWF0Y2goYWN0aW9uKSB8fCBhcGkuaW50ZXJuYWxBY3Rpb25zLnJlbW92ZU11dGF0aW9uUmVzdWx0Lm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIHJlbW92ZUxpZmVjeWNsZUVudHJ5KGNhY2hlS2V5KTtcbiAgICB9IGVsc2UgaWYgKGFwaS51dGlsLnJlc2V0QXBpU3RhdGUubWF0Y2goYWN0aW9uKSkge1xuICAgICAgZm9yIChjb25zdCBjYWNoZUtleTIgb2YgT2JqZWN0LmtleXMobGlmZWN5Y2xlTWFwKSkge1xuICAgICAgICByZW1vdmVMaWZlY3ljbGVFbnRyeShjYWNoZUtleTIpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgZnVuY3Rpb24gZ2V0Q2FjaGVLZXkoYWN0aW9uKSB7XG4gICAgaWYgKGlzUXVlcnlUaHVuayhhY3Rpb24pKSByZXR1cm4gYWN0aW9uLm1ldGEuYXJnLnF1ZXJ5Q2FjaGVLZXk7XG4gICAgaWYgKGlzTXV0YXRpb25UaHVuayhhY3Rpb24pKSB7XG4gICAgICByZXR1cm4gYWN0aW9uLm1ldGEuYXJnLmZpeGVkQ2FjaGVLZXkgPz8gYWN0aW9uLm1ldGEucmVxdWVzdElkO1xuICAgIH1cbiAgICBpZiAoYXBpLmludGVybmFsQWN0aW9ucy5yZW1vdmVRdWVyeVJlc3VsdC5tYXRjaChhY3Rpb24pKSByZXR1cm4gYWN0aW9uLnBheWxvYWQucXVlcnlDYWNoZUtleTtcbiAgICBpZiAoYXBpLmludGVybmFsQWN0aW9ucy5yZW1vdmVNdXRhdGlvblJlc3VsdC5tYXRjaChhY3Rpb24pKSByZXR1cm4gZ2V0TXV0YXRpb25DYWNoZUtleShhY3Rpb24ucGF5bG9hZCk7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlTmV3S2V5KGVuZHBvaW50TmFtZSwgb3JpZ2luYWxBcmdzLCBxdWVyeUNhY2hlS2V5LCBtd0FwaSwgcmVxdWVzdElkKSB7XG4gICAgY29uc3QgZW5kcG9pbnREZWZpbml0aW9uID0gY29udGV4dC5lbmRwb2ludERlZmluaXRpb25zW2VuZHBvaW50TmFtZV07XG4gICAgY29uc3Qgb25DYWNoZUVudHJ5QWRkZWQgPSBlbmRwb2ludERlZmluaXRpb24/Lm9uQ2FjaGVFbnRyeUFkZGVkO1xuICAgIGlmICghb25DYWNoZUVudHJ5QWRkZWQpIHJldHVybjtcbiAgICBjb25zdCBsaWZlY3ljbGUgPSB7fTtcbiAgICBjb25zdCBjYWNoZUVudHJ5UmVtb3ZlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBsaWZlY3ljbGUuY2FjaGVFbnRyeVJlbW92ZWQgPSByZXNvbHZlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNhY2hlRGF0YUxvYWRlZCA9IFByb21pc2UucmFjZShbbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGxpZmVjeWNsZS52YWx1ZVJlc29sdmVkID0gcmVzb2x2ZTtcbiAgICB9KSwgY2FjaGVFbnRyeVJlbW92ZWQudGhlbigoKSA9PiB7XG4gICAgICB0aHJvdyBuZXZlclJlc29sdmVkRXJyb3I7XG4gICAgfSldKTtcbiAgICBjYWNoZURhdGFMb2FkZWQuY2F0Y2goKCkgPT4ge1xuICAgIH0pO1xuICAgIGxpZmVjeWNsZU1hcFtxdWVyeUNhY2hlS2V5XSA9IGxpZmVjeWNsZTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXS5zZWxlY3QoZW5kcG9pbnREZWZpbml0aW9uLnR5cGUgPT09IFwicXVlcnlcIiAvKiBxdWVyeSAqLyA/IG9yaWdpbmFsQXJncyA6IHF1ZXJ5Q2FjaGVLZXkpO1xuICAgIGNvbnN0IGV4dHJhID0gbXdBcGkuZGlzcGF0Y2goKF8sIF9fLCBleHRyYTIpID0+IGV4dHJhMik7XG4gICAgY29uc3QgbGlmZWN5Y2xlQXBpID0ge1xuICAgICAgLi4ubXdBcGksXG4gICAgICBnZXRDYWNoZUVudHJ5OiAoKSA9PiBzZWxlY3Rvcihtd0FwaS5nZXRTdGF0ZSgpKSxcbiAgICAgIHJlcXVlc3RJZCxcbiAgICAgIGV4dHJhLFxuICAgICAgdXBkYXRlQ2FjaGVkRGF0YTogZW5kcG9pbnREZWZpbml0aW9uLnR5cGUgPT09IFwicXVlcnlcIiAvKiBxdWVyeSAqLyA/ICh1cGRhdGVSZWNpcGUpID0+IG13QXBpLmRpc3BhdGNoKGFwaS51dGlsLnVwZGF0ZVF1ZXJ5RGF0YShlbmRwb2ludE5hbWUsIG9yaWdpbmFsQXJncywgdXBkYXRlUmVjaXBlKSkgOiB2b2lkIDAsXG4gICAgICBjYWNoZURhdGFMb2FkZWQsXG4gICAgICBjYWNoZUVudHJ5UmVtb3ZlZFxuICAgIH07XG4gICAgY29uc3QgcnVubmluZ0hhbmRsZXIgPSBvbkNhY2hlRW50cnlBZGRlZChvcmlnaW5hbEFyZ3MsIGxpZmVjeWNsZUFwaSk7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHJ1bm5pbmdIYW5kbGVyKS5jYXRjaCgoZSkgPT4ge1xuICAgICAgaWYgKGUgPT09IG5ldmVyUmVzb2x2ZWRFcnJvcikgcmV0dXJuO1xuICAgICAgdGhyb3cgZTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaGFuZGxlcjtcbn07XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkTWlkZGxld2FyZS9kZXZNaWRkbGV3YXJlLnRzXG52YXIgYnVpbGREZXZDaGVja0hhbmRsZXIgPSAoe1xuICBhcGksXG4gIGNvbnRleHQ6IHtcbiAgICBhcGlVaWRcbiAgfSxcbiAgcmVkdWNlclBhdGhcbn0pID0+IHtcbiAgcmV0dXJuIChhY3Rpb24sIG13QXBpKSA9PiB7XG4gICAgaWYgKGFwaS51dGlsLnJlc2V0QXBpU3RhdGUubWF0Y2goYWN0aW9uKSkge1xuICAgICAgbXdBcGkuZGlzcGF0Y2goYXBpLmludGVybmFsQWN0aW9ucy5taWRkbGV3YXJlUmVnaXN0ZXJlZChhcGlVaWQpKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgIGlmIChhcGkuaW50ZXJuYWxBY3Rpb25zLm1pZGRsZXdhcmVSZWdpc3RlcmVkLm1hdGNoKGFjdGlvbikgJiYgYWN0aW9uLnBheWxvYWQgPT09IGFwaVVpZCAmJiBtd0FwaS5nZXRTdGF0ZSgpW3JlZHVjZXJQYXRoXT8uY29uZmlnPy5taWRkbGV3YXJlUmVnaXN0ZXJlZCA9PT0gXCJjb25mbGljdFwiKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVGhlcmUgaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHNsaWNlIGFuZCBtaWRkbGV3YXJlIGZvciB0aGUgcmVkdWNlclBhdGggXCIke3JlZHVjZXJQYXRofVwiLlxuWW91IGNhbiBvbmx5IGhhdmUgb25lIGFwaSBwZXIgcmVkdWNlciBwYXRoLCB0aGlzIHdpbGwgbGVhZCB0byBjcmFzaGVzIGluIHZhcmlvdXMgc2l0dWF0aW9ucyEke3JlZHVjZXJQYXRoID09PSBcImFwaVwiID8gYFxuSWYgeW91IGhhdmUgbXVsdGlwbGUgYXBpcywgeW91ICpoYXZlKiB0byBzcGVjaWZ5IHRoZSByZWR1Y2VyUGF0aCBvcHRpb24gd2hlbiB1c2luZyBjcmVhdGVBcGkhYCA6IFwiXCJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRNaWRkbGV3YXJlL2ludmFsaWRhdGlvbkJ5VGFncy50c1xudmFyIGJ1aWxkSW52YWxpZGF0aW9uQnlUYWdzSGFuZGxlciA9ICh7XG4gIHJlZHVjZXJQYXRoLFxuICBjb250ZXh0LFxuICBjb250ZXh0OiB7XG4gICAgZW5kcG9pbnREZWZpbml0aW9uc1xuICB9LFxuICBtdXRhdGlvblRodW5rLFxuICBxdWVyeVRodW5rLFxuICBhcGksXG4gIGFzc2VydFRhZ1R5cGUsXG4gIHJlZmV0Y2hRdWVyeSxcbiAgaW50ZXJuYWxTdGF0ZVxufSkgPT4ge1xuICBjb25zdCB7XG4gICAgcmVtb3ZlUXVlcnlSZXN1bHRcbiAgfSA9IGFwaS5pbnRlcm5hbEFjdGlvbnM7XG4gIGNvbnN0IGlzVGh1bmtBY3Rpb25XaXRoVGFncyA9IGlzQW55T2YoaXNGdWxmaWxsZWQobXV0YXRpb25UaHVuayksIGlzUmVqZWN0ZWRXaXRoVmFsdWUobXV0YXRpb25UaHVuaykpO1xuICBjb25zdCBpc1F1ZXJ5RW5kID0gaXNBbnlPZihpc0Z1bGZpbGxlZChtdXRhdGlvblRodW5rLCBxdWVyeVRodW5rKSwgaXNSZWplY3RlZChtdXRhdGlvblRodW5rLCBxdWVyeVRodW5rKSk7XG4gIGxldCBwZW5kaW5nVGFnSW52YWxpZGF0aW9ucyA9IFtdO1xuICBjb25zdCBoYW5kbGVyID0gKGFjdGlvbiwgbXdBcGkpID0+IHtcbiAgICBpZiAoaXNUaHVua0FjdGlvbldpdGhUYWdzKGFjdGlvbikpIHtcbiAgICAgIGludmFsaWRhdGVUYWdzKGNhbGN1bGF0ZVByb3ZpZGVkQnlUaHVuayhhY3Rpb24sIFwiaW52YWxpZGF0ZXNUYWdzXCIsIGVuZHBvaW50RGVmaW5pdGlvbnMsIGFzc2VydFRhZ1R5cGUpLCBtd0FwaSk7XG4gICAgfSBlbHNlIGlmIChpc1F1ZXJ5RW5kKGFjdGlvbikpIHtcbiAgICAgIGludmFsaWRhdGVUYWdzKFtdLCBtd0FwaSk7XG4gICAgfSBlbHNlIGlmIChhcGkudXRpbC5pbnZhbGlkYXRlVGFncy5tYXRjaChhY3Rpb24pKSB7XG4gICAgICBpbnZhbGlkYXRlVGFncyhjYWxjdWxhdGVQcm92aWRlZEJ5KGFjdGlvbi5wYXlsb2FkLCB2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGFzc2VydFRhZ1R5cGUpLCBtd0FwaSk7XG4gICAgfVxuICB9O1xuICBmdW5jdGlvbiBoYXNQZW5kaW5nUmVxdWVzdHMoc3RhdGUpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZS5xdWVyaWVzKSB7XG4gICAgICBpZiAoc3RhdGUucXVlcmllc1trZXldPy5zdGF0dXMgPT09IFwicGVuZGluZ1wiIC8qIHBlbmRpbmcgKi8pIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZS5tdXRhdGlvbnMpIHtcbiAgICAgIGlmIChzdGF0ZS5tdXRhdGlvbnNba2V5XT8uc3RhdHVzID09PSBcInBlbmRpbmdcIiAvKiBwZW5kaW5nICovKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZ1bmN0aW9uIGludmFsaWRhdGVUYWdzKG5ld1RhZ3MsIG13QXBpKSB7XG4gICAgY29uc3Qgcm9vdFN0YXRlID0gbXdBcGkuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBzdGF0ZSA9IHJvb3RTdGF0ZVtyZWR1Y2VyUGF0aF07XG4gICAgcGVuZGluZ1RhZ0ludmFsaWRhdGlvbnMucHVzaCguLi5uZXdUYWdzKTtcbiAgICBpZiAoc3RhdGUuY29uZmlnLmludmFsaWRhdGlvbkJlaGF2aW9yID09PSBcImRlbGF5ZWRcIiAmJiBoYXNQZW5kaW5nUmVxdWVzdHMoc3RhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhZ3MgPSBwZW5kaW5nVGFnSW52YWxpZGF0aW9ucztcbiAgICBwZW5kaW5nVGFnSW52YWxpZGF0aW9ucyA9IFtdO1xuICAgIGlmICh0YWdzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvSW52YWxpZGF0ZSA9IGFwaS51dGlsLnNlbGVjdEludmFsaWRhdGVkQnkocm9vdFN0YXRlLCB0YWdzKTtcbiAgICBjb250ZXh0LmJhdGNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkuZnJvbSh0b0ludmFsaWRhdGUudmFsdWVzKCkpO1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgICAgIH0gb2YgdmFsdWVzQXJyYXkpIHtcbiAgICAgICAgY29uc3QgcXVlcnlTdWJTdGF0ZSA9IHN0YXRlLnF1ZXJpZXNbcXVlcnlDYWNoZUtleV07XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvblN1YlN0YXRlID0gaW50ZXJuYWxTdGF0ZS5jdXJyZW50U3Vic2NyaXB0aW9uc1txdWVyeUNhY2hlS2V5XSA/PyB7fTtcbiAgICAgICAgaWYgKHF1ZXJ5U3ViU3RhdGUpIHtcbiAgICAgICAgICBpZiAoY291bnRPYmplY3RLZXlzKHN1YnNjcmlwdGlvblN1YlN0YXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgbXdBcGkuZGlzcGF0Y2gocmVtb3ZlUXVlcnlSZXN1bHQoe1xuICAgICAgICAgICAgICBxdWVyeUNhY2hlS2V5XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChxdWVyeVN1YlN0YXRlLnN0YXR1cyAhPT0gXCJ1bmluaXRpYWxpemVkXCIgLyogdW5pbml0aWFsaXplZCAqLykge1xuICAgICAgICAgICAgbXdBcGkuZGlzcGF0Y2gocmVmZXRjaFF1ZXJ5KHF1ZXJ5U3ViU3RhdGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaGFuZGxlcjtcbn07XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkTWlkZGxld2FyZS9wb2xsaW5nLnRzXG52YXIgYnVpbGRQb2xsaW5nSGFuZGxlciA9ICh7XG4gIHJlZHVjZXJQYXRoLFxuICBxdWVyeVRodW5rLFxuICBhcGksXG4gIHJlZmV0Y2hRdWVyeSxcbiAgaW50ZXJuYWxTdGF0ZVxufSkgPT4ge1xuICBjb25zdCBjdXJyZW50UG9sbHMgPSB7fTtcbiAgY29uc3QgaGFuZGxlciA9IChhY3Rpb24sIG13QXBpKSA9PiB7XG4gICAgaWYgKGFwaS5pbnRlcm5hbEFjdGlvbnMudXBkYXRlU3Vic2NyaXB0aW9uT3B0aW9ucy5tYXRjaChhY3Rpb24pIHx8IGFwaS5pbnRlcm5hbEFjdGlvbnMudW5zdWJzY3JpYmVRdWVyeVJlc3VsdC5tYXRjaChhY3Rpb24pKSB7XG4gICAgICB1cGRhdGVQb2xsaW5nSW50ZXJ2YWwoYWN0aW9uLnBheWxvYWQsIG13QXBpKTtcbiAgICB9XG4gICAgaWYgKHF1ZXJ5VGh1bmsucGVuZGluZy5tYXRjaChhY3Rpb24pIHx8IHF1ZXJ5VGh1bmsucmVqZWN0ZWQubWF0Y2goYWN0aW9uKSAmJiBhY3Rpb24ubWV0YS5jb25kaXRpb24pIHtcbiAgICAgIHVwZGF0ZVBvbGxpbmdJbnRlcnZhbChhY3Rpb24ubWV0YS5hcmcsIG13QXBpKTtcbiAgICB9XG4gICAgaWYgKHF1ZXJ5VGh1bmsuZnVsZmlsbGVkLm1hdGNoKGFjdGlvbikgfHwgcXVlcnlUaHVuay5yZWplY3RlZC5tYXRjaChhY3Rpb24pICYmICFhY3Rpb24ubWV0YS5jb25kaXRpb24pIHtcbiAgICAgIHN0YXJ0TmV4dFBvbGwoYWN0aW9uLm1ldGEuYXJnLCBtd0FwaSk7XG4gICAgfVxuICAgIGlmIChhcGkudXRpbC5yZXNldEFwaVN0YXRlLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIGNsZWFyUG9sbHMoKTtcbiAgICB9XG4gIH07XG4gIGZ1bmN0aW9uIHN0YXJ0TmV4dFBvbGwoe1xuICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgfSwgYXBpMikge1xuICAgIGNvbnN0IHN0YXRlID0gYXBpMi5nZXRTdGF0ZSgpW3JlZHVjZXJQYXRoXTtcbiAgICBjb25zdCBxdWVyeVN1YlN0YXRlID0gc3RhdGUucXVlcmllc1txdWVyeUNhY2hlS2V5XTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gaW50ZXJuYWxTdGF0ZS5jdXJyZW50U3Vic2NyaXB0aW9uc1txdWVyeUNhY2hlS2V5XTtcbiAgICBpZiAoIXF1ZXJ5U3ViU3RhdGUgfHwgcXVlcnlTdWJTdGF0ZS5zdGF0dXMgPT09IFwidW5pbml0aWFsaXplZFwiIC8qIHVuaW5pdGlhbGl6ZWQgKi8pIHJldHVybjtcbiAgICBjb25zdCB7XG4gICAgICBsb3dlc3RQb2xsaW5nSW50ZXJ2YWwsXG4gICAgICBza2lwUG9sbGluZ0lmVW5mb2N1c2VkXG4gICAgfSA9IGZpbmRMb3dlc3RQb2xsaW5nSW50ZXJ2YWwoc3Vic2NyaXB0aW9ucyk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobG93ZXN0UG9sbGluZ0ludGVydmFsKSkgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRQb2xsID0gY3VycmVudFBvbGxzW3F1ZXJ5Q2FjaGVLZXldO1xuICAgIGlmIChjdXJyZW50UG9sbD8udGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KGN1cnJlbnRQb2xsLnRpbWVvdXQpO1xuICAgICAgY3VycmVudFBvbGwudGltZW91dCA9IHZvaWQgMDtcbiAgICB9XG4gICAgY29uc3QgbmV4dFBvbGxUaW1lc3RhbXAgPSBEYXRlLm5vdygpICsgbG93ZXN0UG9sbGluZ0ludGVydmFsO1xuICAgIGN1cnJlbnRQb2xsc1txdWVyeUNhY2hlS2V5XSA9IHtcbiAgICAgIG5leHRQb2xsVGltZXN0YW1wLFxuICAgICAgcG9sbGluZ0ludGVydmFsOiBsb3dlc3RQb2xsaW5nSW50ZXJ2YWwsXG4gICAgICB0aW1lb3V0OiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHN0YXRlLmNvbmZpZy5mb2N1c2VkIHx8ICFza2lwUG9sbGluZ0lmVW5mb2N1c2VkKSB7XG4gICAgICAgICAgYXBpMi5kaXNwYXRjaChyZWZldGNoUXVlcnkocXVlcnlTdWJTdGF0ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHN0YXJ0TmV4dFBvbGwoe1xuICAgICAgICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgICAgICAgfSwgYXBpMik7XG4gICAgICB9LCBsb3dlc3RQb2xsaW5nSW50ZXJ2YWwpXG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiB1cGRhdGVQb2xsaW5nSW50ZXJ2YWwoe1xuICAgIHF1ZXJ5Q2FjaGVLZXlcbiAgfSwgYXBpMikge1xuICAgIGNvbnN0IHN0YXRlID0gYXBpMi5nZXRTdGF0ZSgpW3JlZHVjZXJQYXRoXTtcbiAgICBjb25zdCBxdWVyeVN1YlN0YXRlID0gc3RhdGUucXVlcmllc1txdWVyeUNhY2hlS2V5XTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gaW50ZXJuYWxTdGF0ZS5jdXJyZW50U3Vic2NyaXB0aW9uc1txdWVyeUNhY2hlS2V5XTtcbiAgICBpZiAoIXF1ZXJ5U3ViU3RhdGUgfHwgcXVlcnlTdWJTdGF0ZS5zdGF0dXMgPT09IFwidW5pbml0aWFsaXplZFwiIC8qIHVuaW5pdGlhbGl6ZWQgKi8pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qge1xuICAgICAgbG93ZXN0UG9sbGluZ0ludGVydmFsXG4gICAgfSA9IGZpbmRMb3dlc3RQb2xsaW5nSW50ZXJ2YWwoc3Vic2NyaXB0aW9ucyk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobG93ZXN0UG9sbGluZ0ludGVydmFsKSkge1xuICAgICAgY2xlYW51cFBvbGxGb3JLZXkocXVlcnlDYWNoZUtleSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRQb2xsID0gY3VycmVudFBvbGxzW3F1ZXJ5Q2FjaGVLZXldO1xuICAgIGNvbnN0IG5leHRQb2xsVGltZXN0YW1wID0gRGF0ZS5ub3coKSArIGxvd2VzdFBvbGxpbmdJbnRlcnZhbDtcbiAgICBpZiAoIWN1cnJlbnRQb2xsIHx8IG5leHRQb2xsVGltZXN0YW1wIDwgY3VycmVudFBvbGwubmV4dFBvbGxUaW1lc3RhbXApIHtcbiAgICAgIHN0YXJ0TmV4dFBvbGwoe1xuICAgICAgICBxdWVyeUNhY2hlS2V5XG4gICAgICB9LCBhcGkyKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gY2xlYW51cFBvbGxGb3JLZXkoa2V5KSB7XG4gICAgY29uc3QgZXhpc3RpbmdQb2xsID0gY3VycmVudFBvbGxzW2tleV07XG4gICAgaWYgKGV4aXN0aW5nUG9sbD8udGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KGV4aXN0aW5nUG9sbC50aW1lb3V0KTtcbiAgICB9XG4gICAgZGVsZXRlIGN1cnJlbnRQb2xsc1trZXldO1xuICB9XG4gIGZ1bmN0aW9uIGNsZWFyUG9sbHMoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoY3VycmVudFBvbGxzKSkge1xuICAgICAgY2xlYW51cFBvbGxGb3JLZXkoa2V5KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZmluZExvd2VzdFBvbGxpbmdJbnRlcnZhbChzdWJzY3JpYmVycyA9IHt9KSB7XG4gICAgbGV0IHNraXBQb2xsaW5nSWZVbmZvY3VzZWQgPSBmYWxzZTtcbiAgICBsZXQgbG93ZXN0UG9sbGluZ0ludGVydmFsID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGZvciAobGV0IGtleSBpbiBzdWJzY3JpYmVycykge1xuICAgICAgaWYgKCEhc3Vic2NyaWJlcnNba2V5XS5wb2xsaW5nSW50ZXJ2YWwpIHtcbiAgICAgICAgbG93ZXN0UG9sbGluZ0ludGVydmFsID0gTWF0aC5taW4oc3Vic2NyaWJlcnNba2V5XS5wb2xsaW5nSW50ZXJ2YWwsIGxvd2VzdFBvbGxpbmdJbnRlcnZhbCk7XG4gICAgICAgIHNraXBQb2xsaW5nSWZVbmZvY3VzZWQgPSBzdWJzY3JpYmVyc1trZXldLnNraXBQb2xsaW5nSWZVbmZvY3VzZWQgfHwgc2tpcFBvbGxpbmdJZlVuZm9jdXNlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvd2VzdFBvbGxpbmdJbnRlcnZhbCxcbiAgICAgIHNraXBQb2xsaW5nSWZVbmZvY3VzZWRcbiAgICB9O1xuICB9XG4gIHJldHVybiBoYW5kbGVyO1xufTtcblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRNaWRkbGV3YXJlL3F1ZXJ5TGlmZWN5Y2xlLnRzXG52YXIgYnVpbGRRdWVyeUxpZmVjeWNsZUhhbmRsZXIgPSAoe1xuICBhcGksXG4gIGNvbnRleHQsXG4gIHF1ZXJ5VGh1bmssXG4gIG11dGF0aW9uVGh1bmtcbn0pID0+IHtcbiAgY29uc3QgaXNQZW5kaW5nVGh1bmsgPSBpc1BlbmRpbmcocXVlcnlUaHVuaywgbXV0YXRpb25UaHVuayk7XG4gIGNvbnN0IGlzUmVqZWN0ZWRUaHVuayA9IGlzUmVqZWN0ZWQocXVlcnlUaHVuaywgbXV0YXRpb25UaHVuayk7XG4gIGNvbnN0IGlzRnVsbGZpbGxlZFRodW5rID0gaXNGdWxmaWxsZWQocXVlcnlUaHVuaywgbXV0YXRpb25UaHVuayk7XG4gIGNvbnN0IGxpZmVjeWNsZU1hcCA9IHt9O1xuICBjb25zdCBoYW5kbGVyID0gKGFjdGlvbiwgbXdBcGkpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nVGh1bmsoYWN0aW9uKSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIGFyZzoge1xuICAgICAgICAgIGVuZHBvaW50TmFtZSxcbiAgICAgICAgICBvcmlnaW5hbEFyZ3NcbiAgICAgICAgfVxuICAgICAgfSA9IGFjdGlvbi5tZXRhO1xuICAgICAgY29uc3QgZW5kcG9pbnREZWZpbml0aW9uID0gY29udGV4dC5lbmRwb2ludERlZmluaXRpb25zW2VuZHBvaW50TmFtZV07XG4gICAgICBjb25zdCBvblF1ZXJ5U3RhcnRlZCA9IGVuZHBvaW50RGVmaW5pdGlvbj8ub25RdWVyeVN0YXJ0ZWQ7XG4gICAgICBpZiAob25RdWVyeVN0YXJ0ZWQpIHtcbiAgICAgICAgY29uc3QgbGlmZWN5Y2xlID0ge307XG4gICAgICAgIGNvbnN0IHF1ZXJ5RnVsZmlsbGVkID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIGxpZmVjeWNsZS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgICBsaWZlY3ljbGUucmVqZWN0ID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgcXVlcnlGdWxmaWxsZWQuY2F0Y2goKCkgPT4ge1xuICAgICAgICB9KTtcbiAgICAgICAgbGlmZWN5Y2xlTWFwW3JlcXVlc3RJZF0gPSBsaWZlY3ljbGU7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gYXBpLmVuZHBvaW50c1tlbmRwb2ludE5hbWVdLnNlbGVjdChlbmRwb2ludERlZmluaXRpb24udHlwZSA9PT0gXCJxdWVyeVwiIC8qIHF1ZXJ5ICovID8gb3JpZ2luYWxBcmdzIDogcmVxdWVzdElkKTtcbiAgICAgICAgY29uc3QgZXh0cmEgPSBtd0FwaS5kaXNwYXRjaCgoXywgX18sIGV4dHJhMikgPT4gZXh0cmEyKTtcbiAgICAgICAgY29uc3QgbGlmZWN5Y2xlQXBpID0ge1xuICAgICAgICAgIC4uLm13QXBpLFxuICAgICAgICAgIGdldENhY2hlRW50cnk6ICgpID0+IHNlbGVjdG9yKG13QXBpLmdldFN0YXRlKCkpLFxuICAgICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgICBleHRyYSxcbiAgICAgICAgICB1cGRhdGVDYWNoZWREYXRhOiBlbmRwb2ludERlZmluaXRpb24udHlwZSA9PT0gXCJxdWVyeVwiIC8qIHF1ZXJ5ICovID8gKHVwZGF0ZVJlY2lwZSkgPT4gbXdBcGkuZGlzcGF0Y2goYXBpLnV0aWwudXBkYXRlUXVlcnlEYXRhKGVuZHBvaW50TmFtZSwgb3JpZ2luYWxBcmdzLCB1cGRhdGVSZWNpcGUpKSA6IHZvaWQgMCxcbiAgICAgICAgICBxdWVyeUZ1bGZpbGxlZFxuICAgICAgICB9O1xuICAgICAgICBvblF1ZXJ5U3RhcnRlZChvcmlnaW5hbEFyZ3MsIGxpZmVjeWNsZUFwaSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Z1bGxmaWxsZWRUaHVuayhhY3Rpb24pKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgYmFzZVF1ZXJ5TWV0YVxuICAgICAgfSA9IGFjdGlvbi5tZXRhO1xuICAgICAgbGlmZWN5Y2xlTWFwW3JlcXVlc3RJZF0/LnJlc29sdmUoe1xuICAgICAgICBkYXRhOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgbWV0YTogYmFzZVF1ZXJ5TWV0YVxuICAgICAgfSk7XG4gICAgICBkZWxldGUgbGlmZWN5Y2xlTWFwW3JlcXVlc3RJZF07XG4gICAgfSBlbHNlIGlmIChpc1JlamVjdGVkVGh1bmsoYWN0aW9uKSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIHJlamVjdGVkV2l0aFZhbHVlLFxuICAgICAgICBiYXNlUXVlcnlNZXRhXG4gICAgICB9ID0gYWN0aW9uLm1ldGE7XG4gICAgICBsaWZlY3ljbGVNYXBbcmVxdWVzdElkXT8ucmVqZWN0KHtcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5wYXlsb2FkID8/IGFjdGlvbi5lcnJvcixcbiAgICAgICAgaXNVbmhhbmRsZWRFcnJvcjogIXJlamVjdGVkV2l0aFZhbHVlLFxuICAgICAgICBtZXRhOiBiYXNlUXVlcnlNZXRhXG4gICAgICB9KTtcbiAgICAgIGRlbGV0ZSBsaWZlY3ljbGVNYXBbcmVxdWVzdElkXTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBoYW5kbGVyO1xufTtcblxuLy8gc3JjL3F1ZXJ5L2NvcmUvYnVpbGRNaWRkbGV3YXJlL3dpbmRvd0V2ZW50SGFuZGxpbmcudHNcbnZhciBidWlsZFdpbmRvd0V2ZW50SGFuZGxlciA9ICh7XG4gIHJlZHVjZXJQYXRoLFxuICBjb250ZXh0LFxuICBhcGksXG4gIHJlZmV0Y2hRdWVyeSxcbiAgaW50ZXJuYWxTdGF0ZVxufSkgPT4ge1xuICBjb25zdCB7XG4gICAgcmVtb3ZlUXVlcnlSZXN1bHRcbiAgfSA9IGFwaS5pbnRlcm5hbEFjdGlvbnM7XG4gIGNvbnN0IGhhbmRsZXIgPSAoYWN0aW9uLCBtd0FwaSkgPT4ge1xuICAgIGlmIChvbkZvY3VzLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIHJlZmV0Y2hWYWxpZFF1ZXJpZXMobXdBcGksIFwicmVmZXRjaE9uRm9jdXNcIik7XG4gICAgfVxuICAgIGlmIChvbk9ubGluZS5tYXRjaChhY3Rpb24pKSB7XG4gICAgICByZWZldGNoVmFsaWRRdWVyaWVzKG13QXBpLCBcInJlZmV0Y2hPblJlY29ubmVjdFwiKTtcbiAgICB9XG4gIH07XG4gIGZ1bmN0aW9uIHJlZmV0Y2hWYWxpZFF1ZXJpZXMoYXBpMiwgdHlwZSkge1xuICAgIGNvbnN0IHN0YXRlID0gYXBpMi5nZXRTdGF0ZSgpW3JlZHVjZXJQYXRoXTtcbiAgICBjb25zdCBxdWVyaWVzID0gc3RhdGUucXVlcmllcztcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gaW50ZXJuYWxTdGF0ZS5jdXJyZW50U3Vic2NyaXB0aW9ucztcbiAgICBjb250ZXh0LmJhdGNoKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgcXVlcnlDYWNoZUtleSBvZiBPYmplY3Qua2V5cyhzdWJzY3JpcHRpb25zKSkge1xuICAgICAgICBjb25zdCBxdWVyeVN1YlN0YXRlID0gcXVlcmllc1txdWVyeUNhY2hlS2V5XTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU3ViU3RhdGUgPSBzdWJzY3JpcHRpb25zW3F1ZXJ5Q2FjaGVLZXldO1xuICAgICAgICBpZiAoIXN1YnNjcmlwdGlvblN1YlN0YXRlIHx8ICFxdWVyeVN1YlN0YXRlKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVmZXRjaCA9IE9iamVjdC52YWx1ZXMoc3Vic2NyaXB0aW9uU3ViU3RhdGUpLnNvbWUoKHN1YikgPT4gc3ViW3R5cGVdID09PSB0cnVlKSB8fCBPYmplY3QudmFsdWVzKHN1YnNjcmlwdGlvblN1YlN0YXRlKS5ldmVyeSgoc3ViKSA9PiBzdWJbdHlwZV0gPT09IHZvaWQgMCkgJiYgc3RhdGUuY29uZmlnW3R5cGVdO1xuICAgICAgICBpZiAoc2hvdWxkUmVmZXRjaCkge1xuICAgICAgICAgIGlmIChjb3VudE9iamVjdEtleXMoc3Vic2NyaXB0aW9uU3ViU3RhdGUpID09PSAwKSB7XG4gICAgICAgICAgICBhcGkyLmRpc3BhdGNoKHJlbW92ZVF1ZXJ5UmVzdWx0KHtcbiAgICAgICAgICAgICAgcXVlcnlDYWNoZUtleVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocXVlcnlTdWJTdGF0ZS5zdGF0dXMgIT09IFwidW5pbml0aWFsaXplZFwiIC8qIHVuaW5pdGlhbGl6ZWQgKi8pIHtcbiAgICAgICAgICAgIGFwaTIuZGlzcGF0Y2gocmVmZXRjaFF1ZXJ5KHF1ZXJ5U3ViU3RhdGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaGFuZGxlcjtcbn07XG5cbi8vIHNyYy9xdWVyeS9jb3JlL2J1aWxkTWlkZGxld2FyZS9pbmRleC50c1xuZnVuY3Rpb24gYnVpbGRNaWRkbGV3YXJlKGlucHV0KSB7XG4gIGNvbnN0IHtcbiAgICByZWR1Y2VyUGF0aCxcbiAgICBxdWVyeVRodW5rLFxuICAgIGFwaSxcbiAgICBjb250ZXh0XG4gIH0gPSBpbnB1dDtcbiAgY29uc3Qge1xuICAgIGFwaVVpZFxuICB9ID0gY29udGV4dDtcbiAgY29uc3QgYWN0aW9ucyA9IHtcbiAgICBpbnZhbGlkYXRlVGFnczogY3JlYXRlQWN0aW9uKGAke3JlZHVjZXJQYXRofS9pbnZhbGlkYXRlVGFnc2ApXG4gIH07XG4gIGNvbnN0IGlzVGhpc0FwaVNsaWNlQWN0aW9uID0gKGFjdGlvbikgPT4gYWN0aW9uLnR5cGUuc3RhcnRzV2l0aChgJHtyZWR1Y2VyUGF0aH0vYCk7XG4gIGNvbnN0IGhhbmRsZXJCdWlsZGVycyA9IFtidWlsZERldkNoZWNrSGFuZGxlciwgYnVpbGRDYWNoZUNvbGxlY3Rpb25IYW5kbGVyLCBidWlsZEludmFsaWRhdGlvbkJ5VGFnc0hhbmRsZXIsIGJ1aWxkUG9sbGluZ0hhbmRsZXIsIGJ1aWxkQ2FjaGVMaWZlY3ljbGVIYW5kbGVyLCBidWlsZFF1ZXJ5TGlmZWN5Y2xlSGFuZGxlcl07XG4gIGNvbnN0IG1pZGRsZXdhcmUgPSAobXdBcGkpID0+IHtcbiAgICBsZXQgaW5pdGlhbGl6ZWQyID0gZmFsc2U7XG4gICAgY29uc3QgaW50ZXJuYWxTdGF0ZSA9IHtcbiAgICAgIGN1cnJlbnRTdWJzY3JpcHRpb25zOiB7fVxuICAgIH07XG4gICAgY29uc3QgYnVpbGRlckFyZ3MgPSB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGludGVybmFsU3RhdGUsXG4gICAgICByZWZldGNoUXVlcnksXG4gICAgICBpc1RoaXNBcGlTbGljZUFjdGlvblxuICAgIH07XG4gICAgY29uc3QgaGFuZGxlcnMgPSBoYW5kbGVyQnVpbGRlcnMubWFwKChidWlsZCkgPT4gYnVpbGQoYnVpbGRlckFyZ3MpKTtcbiAgICBjb25zdCBiYXRjaGVkQWN0aW9uc0hhbmRsZXIgPSBidWlsZEJhdGNoZWRBY3Rpb25zSGFuZGxlcihidWlsZGVyQXJncyk7XG4gICAgY29uc3Qgd2luZG93RXZlbnRzSGFuZGxlciA9IGJ1aWxkV2luZG93RXZlbnRIYW5kbGVyKGJ1aWxkZXJBcmdzKTtcbiAgICByZXR1cm4gKG5leHQpID0+IHtcbiAgICAgIHJldHVybiAoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmICghaXNBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpbml0aWFsaXplZDIpIHtcbiAgICAgICAgICBpbml0aWFsaXplZDIgPSB0cnVlO1xuICAgICAgICAgIG13QXBpLmRpc3BhdGNoKGFwaS5pbnRlcm5hbEFjdGlvbnMubWlkZGxld2FyZVJlZ2lzdGVyZWQoYXBpVWlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbXdBcGlXaXRoTmV4dCA9IHtcbiAgICAgICAgICAuLi5td0FwaSxcbiAgICAgICAgICBuZXh0XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHN0YXRlQmVmb3JlID0gbXdBcGkuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgW2FjdGlvblNob3VsZENvbnRpbnVlLCBpbnRlcm5hbFByb2JlUmVzdWx0XSA9IGJhdGNoZWRBY3Rpb25zSGFuZGxlcihhY3Rpb24sIG13QXBpV2l0aE5leHQsIHN0YXRlQmVmb3JlKTtcbiAgICAgICAgbGV0IHJlcztcbiAgICAgICAgaWYgKGFjdGlvblNob3VsZENvbnRpbnVlKSB7XG4gICAgICAgICAgcmVzID0gbmV4dChhY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcyA9IGludGVybmFsUHJvYmVSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhbXdBcGkuZ2V0U3RhdGUoKVtyZWR1Y2VyUGF0aF0pIHtcbiAgICAgICAgICB3aW5kb3dFdmVudHNIYW5kbGVyKGFjdGlvbiwgbXdBcGlXaXRoTmV4dCwgc3RhdGVCZWZvcmUpO1xuICAgICAgICAgIGlmIChpc1RoaXNBcGlTbGljZUFjdGlvbihhY3Rpb24pIHx8IGNvbnRleHQuaGFzUmVoeWRyYXRpb25JbmZvKGFjdGlvbikpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBoYW5kbGVycykge1xuICAgICAgICAgICAgICBoYW5kbGVyKGFjdGlvbiwgbXdBcGlXaXRoTmV4dCwgc3RhdGVCZWZvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICByZXR1cm4ge1xuICAgIG1pZGRsZXdhcmUsXG4gICAgYWN0aW9uc1xuICB9O1xuICBmdW5jdGlvbiByZWZldGNoUXVlcnkocXVlcnlTdWJTdGF0ZSkge1xuICAgIHJldHVybiBpbnB1dC5hcGkuZW5kcG9pbnRzW3F1ZXJ5U3ViU3RhdGUuZW5kcG9pbnROYW1lXS5pbml0aWF0ZShxdWVyeVN1YlN0YXRlLm9yaWdpbmFsQXJncywge1xuICAgICAgc3Vic2NyaWJlOiBmYWxzZSxcbiAgICAgIGZvcmNlUmVmZXRjaDogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbi8vIHNyYy9xdWVyeS9jb3JlL21vZHVsZS50c1xudmFyIGNvcmVNb2R1bGVOYW1lID0gLyogQF9fUFVSRV9fICovIFN5bWJvbCgpO1xudmFyIGNvcmVNb2R1bGUgPSAoe1xuICBjcmVhdGVTZWxlY3RvcjogY3JlYXRlU2VsZWN0b3IyID0gY3JlYXRlU2VsZWN0b3Jcbn0gPSB7fSkgPT4gKHtcbiAgbmFtZTogY29yZU1vZHVsZU5hbWUsXG4gIGluaXQoYXBpLCB7XG4gICAgYmFzZVF1ZXJ5LFxuICAgIHRhZ1R5cGVzLFxuICAgIHJlZHVjZXJQYXRoLFxuICAgIHNlcmlhbGl6ZVF1ZXJ5QXJncyxcbiAgICBrZWVwVW51c2VkRGF0YUZvcixcbiAgICByZWZldGNoT25Nb3VudE9yQXJnQ2hhbmdlLFxuICAgIHJlZmV0Y2hPbkZvY3VzLFxuICAgIHJlZmV0Y2hPblJlY29ubmVjdCxcbiAgICBpbnZhbGlkYXRpb25CZWhhdmlvclxuICB9LCBjb250ZXh0KSB7XG4gICAgZW5hYmxlUGF0Y2hlcygpO1xuICAgIGFzc2VydENhc3Qoc2VyaWFsaXplUXVlcnlBcmdzKTtcbiAgICBjb25zdCBhc3NlcnRUYWdUeXBlID0gKHRhZykgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgaWYgKCF0YWdUeXBlcy5pbmNsdWRlcyh0YWcudHlwZSkpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBUYWcgdHlwZSAnJHt0YWcudHlwZX0nIHdhcyB1c2VkLCBidXQgbm90IHNwZWNpZmllZCBpbiBcXGB0YWdUeXBlc1xcYCFgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRhZztcbiAgICB9O1xuICAgIE9iamVjdC5hc3NpZ24oYXBpLCB7XG4gICAgICByZWR1Y2VyUGF0aCxcbiAgICAgIGVuZHBvaW50czoge30sXG4gICAgICBpbnRlcm5hbEFjdGlvbnM6IHtcbiAgICAgICAgb25PbmxpbmUsXG4gICAgICAgIG9uT2ZmbGluZSxcbiAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgb25Gb2N1c0xvc3RcbiAgICAgIH0sXG4gICAgICB1dGlsOiB7fVxuICAgIH0pO1xuICAgIGNvbnN0IHtcbiAgICAgIHF1ZXJ5VGh1bmssXG4gICAgICBtdXRhdGlvblRodW5rLFxuICAgICAgcGF0Y2hRdWVyeURhdGEsXG4gICAgICB1cGRhdGVRdWVyeURhdGEsXG4gICAgICB1cHNlcnRRdWVyeURhdGEsXG4gICAgICBwcmVmZXRjaCxcbiAgICAgIGJ1aWxkTWF0Y2hUaHVua0FjdGlvbnNcbiAgICB9ID0gYnVpbGRUaHVua3Moe1xuICAgICAgYmFzZVF1ZXJ5LFxuICAgICAgcmVkdWNlclBhdGgsXG4gICAgICBjb250ZXh0LFxuICAgICAgYXBpLFxuICAgICAgc2VyaWFsaXplUXVlcnlBcmdzLFxuICAgICAgYXNzZXJ0VGFnVHlwZVxuICAgIH0pO1xuICAgIGNvbnN0IHtcbiAgICAgIHJlZHVjZXIsXG4gICAgICBhY3Rpb25zOiBzbGljZUFjdGlvbnNcbiAgICB9ID0gYnVpbGRTbGljZSh7XG4gICAgICBjb250ZXh0LFxuICAgICAgcXVlcnlUaHVuayxcbiAgICAgIG11dGF0aW9uVGh1bmssXG4gICAgICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gICAgICByZWR1Y2VyUGF0aCxcbiAgICAgIGFzc2VydFRhZ1R5cGUsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgcmVmZXRjaE9uRm9jdXMsXG4gICAgICAgIHJlZmV0Y2hPblJlY29ubmVjdCxcbiAgICAgICAgcmVmZXRjaE9uTW91bnRPckFyZ0NoYW5nZSxcbiAgICAgICAga2VlcFVudXNlZERhdGFGb3IsXG4gICAgICAgIHJlZHVjZXJQYXRoLFxuICAgICAgICBpbnZhbGlkYXRpb25CZWhhdmlvclxuICAgICAgfVxuICAgIH0pO1xuICAgIHNhZmVBc3NpZ24oYXBpLnV0aWwsIHtcbiAgICAgIHBhdGNoUXVlcnlEYXRhLFxuICAgICAgdXBkYXRlUXVlcnlEYXRhLFxuICAgICAgdXBzZXJ0UXVlcnlEYXRhLFxuICAgICAgcHJlZmV0Y2gsXG4gICAgICByZXNldEFwaVN0YXRlOiBzbGljZUFjdGlvbnMucmVzZXRBcGlTdGF0ZSxcbiAgICAgIHVwc2VydFF1ZXJ5RW50cmllczogc2xpY2VBY3Rpb25zLmNhY2hlRW50cmllc1Vwc2VydGVkXG4gICAgfSk7XG4gICAgc2FmZUFzc2lnbihhcGkuaW50ZXJuYWxBY3Rpb25zLCBzbGljZUFjdGlvbnMpO1xuICAgIGNvbnN0IHtcbiAgICAgIG1pZGRsZXdhcmUsXG4gICAgICBhY3Rpb25zOiBtaWRkbGV3YXJlQWN0aW9uc1xuICAgIH0gPSBidWlsZE1pZGRsZXdhcmUoe1xuICAgICAgcmVkdWNlclBhdGgsXG4gICAgICBjb250ZXh0LFxuICAgICAgcXVlcnlUaHVuayxcbiAgICAgIG11dGF0aW9uVGh1bmssXG4gICAgICBhcGksXG4gICAgICBhc3NlcnRUYWdUeXBlXG4gICAgfSk7XG4gICAgc2FmZUFzc2lnbihhcGkudXRpbCwgbWlkZGxld2FyZUFjdGlvbnMpO1xuICAgIHNhZmVBc3NpZ24oYXBpLCB7XG4gICAgICByZWR1Y2VyLFxuICAgICAgbWlkZGxld2FyZVxuICAgIH0pO1xuICAgIGNvbnN0IHtcbiAgICAgIGJ1aWxkUXVlcnlTZWxlY3RvcixcbiAgICAgIGJ1aWxkTXV0YXRpb25TZWxlY3RvcixcbiAgICAgIHNlbGVjdEludmFsaWRhdGVkQnksXG4gICAgICBzZWxlY3RDYWNoZWRBcmdzRm9yUXVlcnlcbiAgICB9ID0gYnVpbGRTZWxlY3RvcnMoe1xuICAgICAgc2VyaWFsaXplUXVlcnlBcmdzLFxuICAgICAgcmVkdWNlclBhdGgsXG4gICAgICBjcmVhdGVTZWxlY3RvcjogY3JlYXRlU2VsZWN0b3IyXG4gICAgfSk7XG4gICAgc2FmZUFzc2lnbihhcGkudXRpbCwge1xuICAgICAgc2VsZWN0SW52YWxpZGF0ZWRCeSxcbiAgICAgIHNlbGVjdENhY2hlZEFyZ3NGb3JRdWVyeVxuICAgIH0pO1xuICAgIGNvbnN0IHtcbiAgICAgIGJ1aWxkSW5pdGlhdGVRdWVyeSxcbiAgICAgIGJ1aWxkSW5pdGlhdGVNdXRhdGlvbixcbiAgICAgIGdldFJ1bm5pbmdNdXRhdGlvblRodW5rLFxuICAgICAgZ2V0UnVubmluZ011dGF0aW9uc1RodW5rLFxuICAgICAgZ2V0UnVubmluZ1F1ZXJpZXNUaHVuayxcbiAgICAgIGdldFJ1bm5pbmdRdWVyeVRodW5rXG4gICAgfSA9IGJ1aWxkSW5pdGlhdGUoe1xuICAgICAgcXVlcnlUaHVuayxcbiAgICAgIG11dGF0aW9uVGh1bmssXG4gICAgICBhcGksXG4gICAgICBzZXJpYWxpemVRdWVyeUFyZ3MsXG4gICAgICBjb250ZXh0XG4gICAgfSk7XG4gICAgc2FmZUFzc2lnbihhcGkudXRpbCwge1xuICAgICAgZ2V0UnVubmluZ011dGF0aW9uVGh1bmssXG4gICAgICBnZXRSdW5uaW5nTXV0YXRpb25zVGh1bmssXG4gICAgICBnZXRSdW5uaW5nUXVlcnlUaHVuayxcbiAgICAgIGdldFJ1bm5pbmdRdWVyaWVzVGh1bmtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogY29yZU1vZHVsZU5hbWUsXG4gICAgICBpbmplY3RFbmRwb2ludChlbmRwb2ludE5hbWUsIGRlZmluaXRpb24pIHtcbiAgICAgICAgY29uc3QgYW55QXBpID0gYXBpO1xuICAgICAgICBhbnlBcGkuZW5kcG9pbnRzW2VuZHBvaW50TmFtZV0gPz89IHt9O1xuICAgICAgICBpZiAoaXNRdWVyeURlZmluaXRpb24oZGVmaW5pdGlvbikpIHtcbiAgICAgICAgICBzYWZlQXNzaWduKGFueUFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXSwge1xuICAgICAgICAgICAgbmFtZTogZW5kcG9pbnROYW1lLFxuICAgICAgICAgICAgc2VsZWN0OiBidWlsZFF1ZXJ5U2VsZWN0b3IoZW5kcG9pbnROYW1lLCBkZWZpbml0aW9uKSxcbiAgICAgICAgICAgIGluaXRpYXRlOiBidWlsZEluaXRpYXRlUXVlcnkoZW5kcG9pbnROYW1lLCBkZWZpbml0aW9uKVxuICAgICAgICAgIH0sIGJ1aWxkTWF0Y2hUaHVua0FjdGlvbnMocXVlcnlUaHVuaywgZW5kcG9pbnROYW1lKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNNdXRhdGlvbkRlZmluaXRpb24oZGVmaW5pdGlvbikpIHtcbiAgICAgICAgICBzYWZlQXNzaWduKGFueUFwaS5lbmRwb2ludHNbZW5kcG9pbnROYW1lXSwge1xuICAgICAgICAgICAgbmFtZTogZW5kcG9pbnROYW1lLFxuICAgICAgICAgICAgc2VsZWN0OiBidWlsZE11dGF0aW9uU2VsZWN0b3IoKSxcbiAgICAgICAgICAgIGluaXRpYXRlOiBidWlsZEluaXRpYXRlTXV0YXRpb24oZW5kcG9pbnROYW1lKVxuICAgICAgICAgIH0sIGJ1aWxkTWF0Y2hUaHVua0FjdGlvbnMobXV0YXRpb25UaHVuaywgZW5kcG9pbnROYW1lKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gc3JjL3F1ZXJ5L2NvcmUvaW5kZXgudHNcbnZhciBjcmVhdGVBcGkgPSAvKiBAX19QVVJFX18gKi8gYnVpbGRDcmVhdGVBcGkoY29yZU1vZHVsZSgpKTtcbmV4cG9ydCB7XG4gIFF1ZXJ5U3RhdHVzLFxuICBfTkVWRVIsXG4gIGJ1aWxkQ3JlYXRlQXBpLFxuICBjb3B5V2l0aFN0cnVjdHVyYWxTaGFyaW5nLFxuICBjb3JlTW9kdWxlLFxuICBjb3JlTW9kdWxlTmFtZSxcbiAgY3JlYXRlQXBpLFxuICBkZWZhdWx0U2VyaWFsaXplUXVlcnlBcmdzLFxuICBmYWtlQmFzZVF1ZXJ5LFxuICBmZXRjaEJhc2VRdWVyeSxcbiAgcmV0cnksXG4gIHNldHVwTGlzdGVuZXJzLFxuICBza2lwVG9rZW5cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ydGstcXVlcnkubW9kZXJuLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs": /*!*********************************************************************!*\ !*** ./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReducerType: () => (/* binding */ ReducerType),\n/* harmony export */ SHOULD_AUTOBATCH: () => (/* binding */ SHOULD_AUTOBATCH),\n/* harmony export */ TaskAbortError: () => (/* binding */ TaskAbortError),\n/* harmony export */ Tuple: () => (/* binding */ Tuple),\n/* harmony export */ __DO_NOT_USE__ActionTypes: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.__DO_NOT_USE__ActionTypes),\n/* harmony export */ addListener: () => (/* binding */ addListener),\n/* harmony export */ applyMiddleware: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.applyMiddleware),\n/* harmony export */ asyncThunkCreator: () => (/* binding */ asyncThunkCreator),\n/* harmony export */ autoBatchEnhancer: () => (/* binding */ autoBatchEnhancer),\n/* harmony export */ bindActionCreators: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.bindActionCreators),\n/* harmony export */ buildCreateSlice: () => (/* binding */ buildCreateSlice),\n/* harmony export */ clearAllListeners: () => (/* binding */ clearAllListeners),\n/* harmony export */ combineReducers: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.combineReducers),\n/* harmony export */ combineSlices: () => (/* binding */ combineSlices),\n/* harmony export */ compose: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.compose),\n/* harmony export */ configureStore: () => (/* binding */ configureStore),\n/* harmony export */ createAction: () => (/* binding */ createAction),\n/* harmony export */ createActionCreatorInvariantMiddleware: () => (/* binding */ createActionCreatorInvariantMiddleware),\n/* harmony export */ createAsyncThunk: () => (/* binding */ createAsyncThunk),\n/* harmony export */ createDraftSafeSelector: () => (/* binding */ createDraftSafeSelector),\n/* harmony export */ createDraftSafeSelectorCreator: () => (/* binding */ createDraftSafeSelectorCreator),\n/* harmony export */ createDynamicMiddleware: () => (/* binding */ createDynamicMiddleware),\n/* harmony export */ createEntityAdapter: () => (/* binding */ createEntityAdapter),\n/* harmony export */ createImmutableStateInvariantMiddleware: () => (/* binding */ createImmutableStateInvariantMiddleware),\n/* harmony export */ createListenerMiddleware: () => (/* binding */ createListenerMiddleware),\n/* harmony export */ createNextState: () => (/* reexport safe */ immer__WEBPACK_IMPORTED_MODULE_2__.produce),\n/* harmony export */ createReducer: () => (/* binding */ createReducer),\n/* harmony export */ createSelector: () => (/* reexport safe */ reselect__WEBPACK_IMPORTED_MODULE_1__.createSelector),\n/* harmony export */ createSelectorCreator: () => (/* reexport safe */ reselect__WEBPACK_IMPORTED_MODULE_1__.createSelectorCreator),\n/* harmony export */ createSerializableStateInvariantMiddleware: () => (/* binding */ createSerializableStateInvariantMiddleware),\n/* harmony export */ createSlice: () => (/* binding */ createSlice),\n/* harmony export */ createStore: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.createStore),\n/* harmony export */ current: () => (/* reexport safe */ immer__WEBPACK_IMPORTED_MODULE_2__.current),\n/* harmony export */ findNonSerializableValue: () => (/* binding */ findNonSerializableValue),\n/* harmony export */ formatProdErrorMessage: () => (/* binding */ formatProdErrorMessage),\n/* harmony export */ freeze: () => (/* reexport safe */ immer__WEBPACK_IMPORTED_MODULE_2__.freeze),\n/* harmony export */ isAction: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.isAction),\n/* harmony export */ isActionCreator: () => (/* binding */ isActionCreator),\n/* harmony export */ isAllOf: () => (/* binding */ isAllOf),\n/* harmony export */ isAnyOf: () => (/* binding */ isAnyOf),\n/* harmony export */ isAsyncThunkAction: () => (/* binding */ isAsyncThunkAction),\n/* harmony export */ isDraft: () => (/* reexport safe */ immer__WEBPACK_IMPORTED_MODULE_2__.isDraft),\n/* harmony export */ isFluxStandardAction: () => (/* binding */ isFSA),\n/* harmony export */ isFulfilled: () => (/* binding */ isFulfilled),\n/* harmony export */ isImmutableDefault: () => (/* binding */ isImmutableDefault),\n/* harmony export */ isPending: () => (/* binding */ isPending),\n/* harmony export */ isPlain: () => (/* binding */ isPlain),\n/* harmony export */ isPlainObject: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.isPlainObject),\n/* harmony export */ isRejected: () => (/* binding */ isRejected),\n/* harmony export */ isRejectedWithValue: () => (/* binding */ isRejectedWithValue),\n/* harmony export */ legacy_createStore: () => (/* reexport safe */ redux__WEBPACK_IMPORTED_MODULE_0__.legacy_createStore),\n/* harmony export */ lruMemoize: () => (/* reexport safe */ reselect__WEBPACK_IMPORTED_MODULE_1__.lruMemoize),\n/* harmony export */ miniSerializeError: () => (/* binding */ miniSerializeError),\n/* harmony export */ nanoid: () => (/* binding */ nanoid),\n/* harmony export */ original: () => (/* reexport safe */ immer__WEBPACK_IMPORTED_MODULE_2__.original),\n/* harmony export */ prepareAutoBatched: () => (/* binding */ prepareAutoBatched),\n/* harmony export */ removeListener: () => (/* binding */ removeListener),\n/* harmony export */ unwrapResult: () => (/* binding */ unwrapResult),\n/* harmony export */ weakMapMemoize: () => (/* reexport safe */ reselect__WEBPACK_IMPORTED_MODULE_1__.weakMapMemoize)\n/* harmony export */ });\n/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! redux */ \"(app-pages-browser)/./node_modules/redux/dist/redux.mjs\");\n/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! immer */ \"(app-pages-browser)/./node_modules/immer/dist/immer.mjs\");\n/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! reselect */ \"(app-pages-browser)/./node_modules/reselect/dist/reselect.mjs\");\n/* harmony import */ var redux_thunk__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! redux-thunk */ \"(app-pages-browser)/./node_modules/redux-thunk/dist/redux-thunk.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n// src/index.ts\n\n\n\n\n// src/createDraftSafeSelector.ts\n\n\nvar createDraftSafeSelectorCreator = (...args) => {\n const createSelector2 = (0,reselect__WEBPACK_IMPORTED_MODULE_1__.createSelectorCreator)(...args);\n const createDraftSafeSelector2 = Object.assign((...args2) => {\n const selector = createSelector2(...args2);\n const wrappedSelector = (value, ...rest) => selector((0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraft)(value) ? (0,immer__WEBPACK_IMPORTED_MODULE_2__.current)(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector;\n }, {\n withTypes: () => createDraftSafeSelector2\n });\n return createDraftSafeSelector2;\n};\nvar createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(reselect__WEBPACK_IMPORTED_MODULE_1__.weakMapMemoize);\n\n// src/configureStore.ts\n\n\n// src/devtoolsExtension.ts\n\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {\n if (arguments.length === 0) return void 0;\n if (typeof arguments[0] === \"object\") return redux__WEBPACK_IMPORTED_MODULE_0__.compose;\n return redux__WEBPACK_IMPORTED_MODULE_0__.compose.apply(null, arguments);\n};\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {\n return function(noop3) {\n return noop3;\n };\n};\n\n// src/getDefaultMiddleware.ts\n\n\n// src/createAction.ts\n\n\n// src/tsHelpers.ts\nvar hasMatchFunction = (v) => {\n return v && typeof v.match === \"function\";\n};\n\n// src/createAction.ts\nfunction createAction(type, prepareAction) {\n function actionCreator(...args) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error( false ? 0 : \"prepareAction did not return an object\");\n }\n return {\n type,\n payload: prepared.payload,\n ...\"meta\" in prepared && {\n meta: prepared.meta\n },\n ...\"error\" in prepared && {\n error: prepared.error\n }\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action) => (0,redux__WEBPACK_IMPORTED_MODULE_0__.isAction)(action) && action.type === type;\n return actionCreator;\n}\nfunction isActionCreator(action) {\n return typeof action === \"function\" && \"type\" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action);\n}\nfunction isFSA(action) {\n return (0,redux__WEBPACK_IMPORTED_MODULE_0__.isAction)(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key) {\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\n}\n\n// src/actionCreatorInvariantMiddleware.ts\nfunction getMessage(type) {\n const splitType = type ? `${type}`.split(\"/\") : [];\n const actionName = splitType[splitType.length - 1] || \"actionCreator\";\n return `Detected an action creator with type \"${type || \"unknown\"}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nfunction createActionCreatorInvariantMiddleware(options = {}) {\n if (false) {}\n const {\n isActionCreator: isActionCreator2 = isActionCreator\n } = options;\n return () => (next) => (action) => {\n if (isActionCreator2(action)) {\n console.warn(getMessage(action.type));\n }\n return next(action);\n };\n}\n\n// src/utils.ts\n\nfunction getTimeMeasureUtils(maxDelay, fnName) {\n let elapsed = 0;\n return {\n measureTime(fn) {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nvar Tuple = class _Tuple extends Array {\n constructor(...items) {\n super(...items);\n Object.setPrototypeOf(this, _Tuple.prototype);\n }\n static get [Symbol.species]() {\n return _Tuple;\n }\n concat(...arr) {\n return super.concat.apply(this, arr);\n }\n prepend(...arr) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new _Tuple(...arr[0].concat(this));\n }\n return new _Tuple(...arr.concat(this));\n }\n};\nfunction freezeDraftable(val) {\n return (0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraftable)(val) ? (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(val, () => {\n }) : val;\n}\nfunction getOrInsertComputed(map, key, compute) {\n if (map.has(key)) return map.get(key);\n return map.set(key, compute(key)).get(key);\n}\n\n// src/immutableStateInvariantMiddleware.ts\nfunction isImmutableDefault(value) {\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\n}\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\n const trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\n return {\n detectMutations() {\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\n }\n };\n}\nfunction trackProperties(isImmutable, ignorePaths = [], obj, path = \"\", checkedObjects = /* @__PURE__ */ new Set()) {\n const tracked = {\n value: obj\n };\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n checkedObjects.add(obj);\n tracked.children = {};\n for (const key in obj) {\n const childPath = path ? path + \".\" + key : key;\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\n continue;\n }\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\n }\n }\n return tracked;\n}\nfunction detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = \"\") {\n const prevObj = trackedProperty ? trackedProperty.value : void 0;\n const sameRef = prevObj === obj;\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return {\n wasMutated: true,\n path\n };\n }\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return {\n wasMutated: false\n };\n }\n const keysToDetect = {};\n for (let key in trackedProperty.children) {\n keysToDetect[key] = true;\n }\n for (let key in obj) {\n keysToDetect[key] = true;\n }\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (let key in keysToDetect) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n if (result.wasMutated) {\n return result;\n }\n }\n return {\n wasMutated: false\n };\n}\nfunction createImmutableStateInvariantMiddleware(options = {}) {\n if (false) {} else {\n let stringify2 = function(obj, serializer, indent, decycler) {\n return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);\n }, getSerialize2 = function(serializer, decycler) {\n let stack = [], keys = [];\n if (!decycler) decycler = function(_, value) {\n if (stack[0] === value) return \"[Circular ~]\";\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n };\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) value = decycler.call(this, key, value);\n } else stack.push(value);\n return serializer == null ? value : serializer.call(this, key, value);\n };\n };\n var stringify = stringify2, getSerialize = getSerialize2;\n let {\n isImmutable = isImmutableDefault,\n ignoredPaths,\n warnAfter = 32\n } = options;\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n return ({\n getState\n }) => {\n let state = getState();\n let tracker = track(state);\n let result;\n return (next) => (action) => {\n const measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error( false ? 0 : `A state mutation was detected between dispatches, in the path '${result.path || \"\"}'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n const dispatchedAction = next(action);\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error( false ? 0 : `A state mutation was detected inside a dispatch, in the path: ${result.path || \"\"}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n return dispatchedAction;\n };\n };\n }\n}\n\n// src/serializableStateInvariantMiddleware.ts\n\nfunction isPlain(val) {\n const type = typeof val;\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || (0,redux__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(val);\n}\nfunction findNonSerializableValue(value, path = \"\", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {\n let foundNestedSerializable;\n if (!isSerializable(value)) {\n return {\n keyPath: path || \"<root>\",\n value\n };\n }\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (cache?.has(value)) return false;\n const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const [key, nestedValue] of entries) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n if (!isSerializable(nestedValue)) {\n return {\n keyPath: nestedPath,\n value: nestedValue\n };\n }\n if (typeof nestedValue === \"object\") {\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n if (foundNestedSerializable) {\n return foundNestedSerializable;\n }\n }\n }\n if (cache && isNestedFrozen(value)) cache.add(value);\n return false;\n}\nfunction isNestedFrozen(value) {\n if (!Object.isFrozen(value)) return false;\n for (const nestedValue of Object.values(value)) {\n if (typeof nestedValue !== \"object\" || nestedValue === null) continue;\n if (!isNestedFrozen(nestedValue)) return false;\n }\n return true;\n}\nfunction createSerializableStateInvariantMiddleware(options = {}) {\n if (false) {} else {\n const {\n isSerializable = isPlain,\n getEntries,\n ignoredActions = [],\n ignoredActionPaths = [\"meta.arg\", \"meta.baseQueryMeta\"],\n ignoredPaths = [],\n warnAfter = 32,\n ignoreState = false,\n ignoreActions = false,\n disableCache = false\n } = options;\n const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;\n return (storeAPI) => (next) => (action) => {\n if (!(0,redux__WEBPACK_IMPORTED_MODULE_0__.isAction)(action)) {\n return next(action);\n }\n const result = next(action);\n const measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\n measureUtils.measureTime(() => {\n const foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\n if (foundActionNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundActionNonSerializableValue;\n console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\n }\n });\n }\n if (!ignoreState) {\n measureUtils.measureTime(() => {\n const state = storeAPI.getState();\n const foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\n if (foundStateNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundStateNonSerializableValue;\n console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n }\n return result;\n };\n }\n}\n\n// src/getDefaultMiddleware.ts\nfunction isBoolean(x) {\n return typeof x === \"boolean\";\n}\nvar buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(redux_thunk__WEBPACK_IMPORTED_MODULE_3__.thunk);\n } else {\n middlewareArray.push((0,redux_thunk__WEBPACK_IMPORTED_MODULE_3__.withExtraArgument)(thunk.extraArgument));\n }\n }\n if (true) {\n if (immutableCheck) {\n let immutableOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n }\n if (serializableCheck) {\n let serializableOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray;\n};\n\n// src/autoBatchEnhancer.ts\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\nvar prepareAutoBatched = () => (payload) => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nvar createQueueWithTimer = (timeout) => {\n return (notify) => {\n setTimeout(notify, timeout);\n };\n};\nvar autoBatchEnhancer = (options = {\n type: \"raf\"\n}) => (next) => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = /* @__PURE__ */ new Set();\n const queueCallback = options.type === \"tick\" ? queueMicrotask : options.type === \"raf\" ? (\n // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10)\n ) : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach((l) => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener2) {\n const wrappedListener = () => notifying && listener2();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener2);\n return () => {\n unsubscribe();\n listeners.delete(listener2);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action) {\n try {\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n return store.dispatch(action);\n } finally {\n notifying = true;\n }\n }\n });\n};\n\n// src/getDefaultEnhancers.ts\nvar buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === \"object\" ? autoBatch : void 0));\n }\n return enhancerArray;\n};\n\n// src/configureStore.ts\nfunction configureStore(options) {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = void 0,\n middleware,\n devTools = true,\n preloadedState = void 0,\n enhancers = void 0\n } = options || {};\n let rootReducer;\n if (typeof reducer === \"function\") {\n rootReducer = reducer;\n } else if ((0,redux__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(reducer)) {\n rootReducer = (0,redux__WEBPACK_IMPORTED_MODULE_0__.combineReducers)(reducer);\n } else {\n throw new Error( false ? 0 : \"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers\");\n }\n if ( true && middleware && typeof middleware !== \"function\") {\n throw new Error( false ? 0 : \"`middleware` field must be a callback\");\n }\n let finalMiddleware;\n if (typeof middleware === \"function\") {\n finalMiddleware = middleware(getDefaultMiddleware);\n if ( true && !Array.isArray(finalMiddleware)) {\n throw new Error( false ? 0 : \"when using a middleware builder function, an array of middleware must be returned\");\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if ( true && finalMiddleware.some((item) => typeof item !== \"function\")) {\n throw new Error( false ? 0 : \"each middleware provided to configureStore must be a function\");\n }\n let finalCompose = redux__WEBPACK_IMPORTED_MODULE_0__.compose;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: \"development\" !== \"production\",\n ...typeof devTools === \"object\" && devTools\n });\n }\n const middlewareEnhancer = (0,redux__WEBPACK_IMPORTED_MODULE_0__.applyMiddleware)(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if ( true && enhancers && typeof enhancers !== \"function\") {\n throw new Error( false ? 0 : \"`enhancers` field must be a callback\");\n }\n let storeEnhancers = typeof enhancers === \"function\" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if ( true && !Array.isArray(storeEnhancers)) {\n throw new Error( false ? 0 : \"`enhancers` callback must return an array\");\n }\n if ( true && storeEnhancers.some((item) => typeof item !== \"function\")) {\n throw new Error( false ? 0 : \"each enhancer provided to configureStore must be a function\");\n }\n if ( true && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error(\"middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`\");\n }\n const composedEnhancer = finalCompose(...storeEnhancers);\n return (0,redux__WEBPACK_IMPORTED_MODULE_0__.createStore)(rootReducer, preloadedState, composedEnhancer);\n}\n\n// src/createReducer.ts\n\n\n// src/mapBuilders.ts\nfunction executeReducerBuilderCallback(builderCallback) {\n const actionsMap = {};\n const actionMatchers = [];\n let defaultCaseReducer;\n const builder = {\n addCase(typeOrActionCreator, reducer) {\n if (true) {\n if (actionMatchers.length > 0) {\n throw new Error( false ? 0 : \"`builder.addCase` should only be called before calling `builder.addMatcher`\");\n }\n if (defaultCaseReducer) {\n throw new Error( false ? 0 : \"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error( false ? 0 : \"`builder.addCase` cannot be called with an empty action type\");\n }\n if (type in actionsMap) {\n throw new Error( false ? 0 : `\\`builder.addCase\\` cannot be called with two reducers for the same action type '${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addMatcher(matcher, reducer) {\n if (true) {\n if (defaultCaseReducer) {\n throw new Error( false ? 0 : \"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer) {\n if (true) {\n if (defaultCaseReducer) {\n throw new Error( false ? 0 : \"`builder.addDefaultCase` can only be called once\");\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}\n\n// src/createReducer.ts\nfunction isStateFunction(x) {\n return typeof x === \"function\";\n}\nfunction createReducer(initialState, mapOrBuilderCallback) {\n if (true) {\n if (typeof mapOrBuilderCallback === \"object\") {\n throw new Error( false ? 0 : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n let getInitialState;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action) {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer: reducer2\n }) => reducer2)];\n if (caseReducers.filter((cr) => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer) => {\n if (caseReducer) {\n if ((0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraft)(previousState)) {\n const draft = previousState;\n const result = caseReducer(draft, action);\n if (result === void 0) {\n return previousState;\n }\n return result;\n } else if (!(0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraftable)(previousState)) {\n const result = caseReducer(previousState, action);\n if (result === void 0) {\n if (previousState === null) {\n return previousState;\n }\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\n }\n return result;\n } else {\n return (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(previousState, (draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer;\n}\n\n// src/matchers.ts\nvar matches = (matcher, action) => {\n if (hasMatchFunction(matcher)) {\n return matcher.match(action);\n } else {\n return matcher(action);\n }\n};\nfunction isAnyOf(...matchers) {\n return (action) => {\n return matchers.some((matcher) => matches(matcher, action));\n };\n}\nfunction isAllOf(...matchers) {\n return (action) => {\n return matchers.every((matcher) => matches(matcher, action));\n };\n}\nfunction hasExpectedRequestMetadata(action, validStatus) {\n if (!action || !action.meta) return false;\n const hasValidRequestId = typeof action.meta.requestId === \"string\";\n const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a) {\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\n}\nfunction isPending(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isPending()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));\n}\nfunction isRejected(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejected()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));\n}\nfunction isRejectedWithValue(...asyncThunks) {\n const hasFlag = (action) => {\n return action && action.meta && action.meta.rejectedWithValue;\n };\n if (asyncThunks.length === 0) {\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejectedWithValue()(asyncThunks[0]);\n }\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nfunction isFulfilled(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"fulfilled\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isFulfilled()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));\n}\nfunction isAsyncThunkAction(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isAsyncThunkAction()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}\n\n// src/nanoid.ts\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\nvar nanoid = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\n\n// src/createAsyncThunk.ts\nvar commonProperties = [\"name\", \"message\", \"stack\", \"code\"];\nvar RejectWithValue = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar FulfillWithMeta = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar miniSerializeError = (value) => {\n if (typeof value === \"object\" && value !== null) {\n const simpleError = {};\n for (const property of commonProperties) {\n if (typeof value[property] === \"string\") {\n simpleError[property] = value[property];\n }\n }\n return simpleError;\n }\n return {\n message: String(value)\n };\n};\nvar createAsyncThunk = /* @__PURE__ */ (() => {\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\n const fulfilled = createAction(typePrefix + \"/fulfilled\", (payload, requestId, arg, meta) => ({\n payload,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"fulfilled\"\n }\n }));\n const pending = createAction(typePrefix + \"/pending\", (requestId, arg, meta) => ({\n payload: void 0,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"pending\"\n }\n }));\n const rejected = createAction(typePrefix + \"/rejected\", (error, requestId, arg, payload, meta) => ({\n payload,\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\n meta: {\n ...meta || {},\n arg,\n requestId,\n rejectedWithValue: !!payload,\n requestStatus: \"rejected\",\n aborted: error?.name === \"AbortError\",\n condition: error?.name === \"ConditionError\"\n }\n }));\n function actionCreator(arg) {\n return (dispatch, getState, extra) => {\n const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n const abortController = new AbortController();\n let abortHandler;\n let abortReason;\n function abort(reason) {\n abortReason = reason;\n abortController.abort();\n }\n const promise = async function() {\n let finalAction;\n try {\n let conditionResult = options?.condition?.(arg, {\n getState,\n extra\n });\n if (isThenable(conditionResult)) {\n conditionResult = await conditionResult;\n }\n if (conditionResult === false || abortController.signal.aborted) {\n throw {\n name: \"ConditionError\",\n message: \"Aborted due to condition callback returning false.\"\n };\n }\n const abortedPromise = new Promise((_, reject) => {\n abortHandler = () => {\n reject({\n name: \"AbortError\",\n message: abortReason || \"Aborted\"\n });\n };\n abortController.signal.addEventListener(\"abort\", abortHandler);\n });\n dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n requestId,\n arg\n }, {\n getState,\n extra\n })));\n finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n dispatch,\n getState,\n extra,\n requestId,\n signal: abortController.signal,\n abort,\n rejectWithValue: (value, meta) => {\n return new RejectWithValue(value, meta);\n },\n fulfillWithValue: (value, meta) => {\n return new FulfillWithMeta(value, meta);\n }\n })).then((result) => {\n if (result instanceof RejectWithValue) {\n throw result;\n }\n if (result instanceof FulfillWithMeta) {\n return fulfilled(result.payload, requestId, arg, result.meta);\n }\n return fulfilled(result, requestId, arg);\n })]);\n } catch (err) {\n finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);\n } finally {\n if (abortHandler) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n }\n const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\n if (!skipDispatch) {\n dispatch(finalAction);\n }\n return finalAction;\n }();\n return Object.assign(promise, {\n abort,\n requestId,\n arg,\n unwrap() {\n return promise.then(unwrapResult);\n }\n });\n };\n }\n return Object.assign(actionCreator, {\n pending,\n rejected,\n fulfilled,\n settled: isAnyOf(rejected, fulfilled),\n typePrefix\n });\n }\n createAsyncThunk2.withTypes = () => createAsyncThunk2;\n return createAsyncThunk2;\n})();\nfunction unwrapResult(action) {\n if (action.meta && action.meta.rejectedWithValue) {\n throw action.payload;\n }\n if (action.error) {\n throw action.error;\n }\n return action.payload;\n}\nfunction isThenable(value) {\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\n}\n\n// src/createSlice.ts\nvar asyncThunkSymbol = /* @__PURE__ */ Symbol.for(\"rtk-slice-createasyncthunk\");\nvar asyncThunkCreator = {\n [asyncThunkSymbol]: createAsyncThunk\n};\nvar ReducerType = /* @__PURE__ */ ((ReducerType2) => {\n ReducerType2[\"reducer\"] = \"reducer\";\n ReducerType2[\"reducerWithPrepare\"] = \"reducerWithPrepare\";\n ReducerType2[\"asyncThunk\"] = \"asyncThunk\";\n return ReducerType2;\n})(ReducerType || {});\nfunction getType(slice, actionKey) {\n return `${slice}/${actionKey}`;\n}\nfunction buildCreateSlice({\n creators\n} = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice2(options) {\n const {\n name,\n reducerPath = name\n } = options;\n if (!name) {\n throw new Error( false ? 0 : \"`name` is a required option for createSlice\");\n }\n if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n if (options.initialState === void 0) {\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\n }\n }\n const reducers = (typeof options.reducers === \"function\" ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods = {\n addCase(typeOrActionCreator, reducer2) {\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error( false ? 0 : \"`context.addCase` cannot be called with an empty action type\");\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error( false ? 0 : \"`context.addCase` cannot be called with two reducers for the same action type: \" + type);\n }\n context.sliceCaseReducersByType[type] = reducer2;\n return contextMethods;\n },\n addMatcher(matcher, reducer2) {\n context.sliceMatchers.push({\n matcher,\n reducer: reducer2\n });\n return contextMethods;\n },\n exposeAction(name2, actionCreator) {\n context.actionCreators[name2] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name2, reducer2) {\n context.sliceCaseReducersByName[name2] = reducer2;\n return contextMethods;\n }\n };\n reducerNames.forEach((reducerName) => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === \"function\"\n };\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\n });\n function buildReducer() {\n if (true) {\n if (typeof options.extraReducers === \"object\") {\n throw new Error( false ? 0 : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, (builder) => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key]);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state) => state;\n const injectedSelectorCache = /* @__PURE__ */ new Map();\n let _reducer;\n function reducer(state, action) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps(reducerPath2, injected = false) {\n function selectSlice(state) {\n let sliceState = state[reducerPath2];\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (true) {\n throw new Error( false ? 0 : \"selectSlice returned undefined for an uninjected slice reducer\");\n }\n }\n return sliceState;\n }\n function getSelectors(selectState = selectSelf) {\n const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());\n return getOrInsertComputed(selectorCache, selectState, () => {\n const map = {};\n for (const [name2, selector] of Object.entries(options.selectors ?? {})) {\n map[name2] = wrapSelector(selector, selectState, getInitialState, injected);\n }\n return map;\n });\n }\n return {\n reducerPath: reducerPath2,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice = {\n name,\n reducer,\n actions: context.actionCreators,\n caseReducers: context.sliceCaseReducersByName,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n };\n }\n };\n return slice;\n };\n}\nfunction wrapSelector(selector, selectState, getInitialState, injected) {\n function wrapper(rootState, ...args) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (true) {\n throw new Error( false ? 0 : \"selectState returned undefined for an uninjected slice reducer\");\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper;\n}\nvar createSlice = /* @__PURE__ */ buildCreateSlice();\nfunction buildReducerCreators() {\n function asyncThunk(payloadCreator, config) {\n return {\n _reducerDefinitionType: \"asyncThunk\" /* asyncThunk */,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: \"reducer\" /* reducer */\n });\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: \"reducerWithPrepare\" /* reducerWithPrepare */,\n prepare,\n reducer\n };\n },\n asyncThunk\n };\n}\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}, maybeReducerWithPrepare, context) {\n let caseReducer;\n let prepareCallback;\n if (\"reducer\" in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error( false ? 0 : \"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.\");\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"asyncThunk\" /* asyncThunk */;\n}\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"reducerWithPrepare\" /* reducerWithPrepare */;\n}\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}, reducerDefinition, context, cAT) {\n if (!cAT) {\n throw new Error( false ? 0 : \"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.\");\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {\n}\n\n// src/entities/entity_state.ts\nfunction getInitialEntityState() {\n return {\n ids: [],\n entities: {}\n };\n}\nfunction createInitialStateFactory(stateAdapter) {\n function getInitialState(additionalState = {}, entities) {\n const state = Object.assign(getInitialEntityState(), additionalState);\n return entities ? stateAdapter.setAll(state, entities) : state;\n }\n return {\n getInitialState\n };\n}\n\n// src/entities/state_selectors.ts\nfunction createSelectorsFactory() {\n function getSelectors(selectState, options = {}) {\n const {\n createSelector: createSelector2 = createDraftSafeSelector\n } = options;\n const selectIds = (state) => state.ids;\n const selectEntities = (state) => state.entities;\n const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));\n const selectId = (_, id) => id;\n const selectById = (entities, id) => entities[id];\n const selectTotal = createSelector2(selectIds, (ids) => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n selectById: createSelector2(selectEntities, selectId, selectById)\n };\n }\n const selectGlobalizedEntities = createSelector2(selectState, selectEntities);\n return {\n selectIds: createSelector2(selectState, selectIds),\n selectEntities: selectGlobalizedEntities,\n selectAll: createSelector2(selectState, selectAll),\n selectTotal: createSelector2(selectState, selectTotal),\n selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)\n };\n }\n return {\n getSelectors\n };\n}\n\n// src/entities/state_adapter.ts\n\nvar isDraftTyped = immer__WEBPACK_IMPORTED_MODULE_2__.isDraft;\nfunction createSingleArgumentStateOperator(mutator) {\n const operator = createStateOperator((_, state) => mutator(state));\n return function operation(state) {\n return operator(state, void 0);\n };\n}\nfunction createStateOperator(mutator) {\n return function operation(state, arg) {\n function isPayloadActionArgument(arg2) {\n return isFSA(arg2);\n }\n const runMutator = (draft) => {\n if (isPayloadActionArgument(arg)) {\n mutator(arg.payload, draft);\n } else {\n mutator(arg, draft);\n }\n };\n if (isDraftTyped(state)) {\n runMutator(state);\n return state;\n }\n return (0,immer__WEBPACK_IMPORTED_MODULE_2__.produce)(state, runMutator);\n };\n}\n\n// src/entities/utils.ts\n\nfunction selectIdValue(entity, selectId) {\n const key = selectId(entity);\n if ( true && key === void 0) {\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\n }\n return key;\n}\nfunction ensureEntitiesArray(entities) {\n if (!Array.isArray(entities)) {\n entities = Object.values(entities);\n }\n return entities;\n}\nfunction getCurrent(value) {\n return (0,immer__WEBPACK_IMPORTED_MODULE_2__.isDraft)(value) ? (0,immer__WEBPACK_IMPORTED_MODULE_2__.current)(value) : value;\n}\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingIdsArray = getCurrent(state.ids);\n const existingIds = new Set(existingIdsArray);\n const added = [];\n const updated = [];\n for (const entity of newEntities) {\n const id = selectIdValue(entity, selectId);\n if (existingIds.has(id)) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n added.push(entity);\n }\n }\n return [added, updated, existingIdsArray];\n}\n\n// src/entities/unsorted_state_adapter.ts\nfunction createUnsortedStateAdapter(selectId) {\n function addOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n }\n function addManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n addOneMutably(entity, state);\n }\n }\n function setOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (!(key in state.entities)) {\n state.ids.push(key);\n }\n ;\n state.entities[key] = entity;\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n setOneMutably(entity, state);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.ids = [];\n state.entities = {};\n addManyMutably(newEntities, state);\n }\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keys, state) {\n let didMutate = false;\n keys.forEach((key) => {\n if (key in state.entities) {\n delete state.entities[key];\n didMutate = true;\n }\n });\n if (didMutate) {\n state.ids = state.ids.filter((id) => id in state.entities);\n }\n }\n function removeAllMutably(state) {\n Object.assign(state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys, update, state) {\n const original3 = state.entities[update.id];\n if (original3 === void 0) {\n return false;\n }\n const updated = Object.assign({}, original3, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n ;\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n const newKeys = {};\n const updatesPerEntity = {};\n updates.forEach((update) => {\n if (update.id in state.entities) {\n updatesPerEntity[update.id] = {\n id: update.id,\n // Spreads ignore falsy values, so this works even if there isn't\n // an existing update already at this key\n changes: {\n ...updatesPerEntity[update.id]?.changes,\n ...update.changes\n }\n };\n }\n });\n updates = Object.values(updatesPerEntity);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));\n }\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);\n updateManyMutably(updated, state);\n addManyMutably(added, state);\n }\n return {\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably)\n };\n}\n\n// src/entities/sorted_state_adapter.ts\nfunction findInsertIndex(sortedItems, item, comparisonFunction) {\n let lowIndex = 0;\n let highIndex = sortedItems.length;\n while (lowIndex < highIndex) {\n let middleIndex = lowIndex + highIndex >>> 1;\n const currentItem = sortedItems[middleIndex];\n const res = comparisonFunction(item, currentItem);\n if (res >= 0) {\n lowIndex = middleIndex + 1;\n } else {\n highIndex = middleIndex;\n }\n }\n return lowIndex;\n}\nfunction insert(sortedItems, item, comparisonFunction) {\n const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n sortedItems.splice(insertAtIndex, 0, item);\n return sortedItems;\n}\nfunction createSortedStateAdapter(selectId, comparer) {\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newEntities, state, existingIds) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingKeys = new Set(existingIds ?? getCurrent(state.ids));\n const models = newEntities.filter((model) => !existingKeys.has(selectIdValue(model, selectId)));\n if (models.length !== 0) {\n mergeFunction(state, models);\n }\n }\n function setOneMutably(entity, state) {\n return setManyMutably([entity], state);\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n if (newEntities.length !== 0) {\n for (const item of newEntities) {\n delete state.entities[selectId(item)];\n }\n mergeFunction(state, newEntities);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.entities = {};\n state.ids = [];\n addManyMutably(newEntities, state, []);\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n let appliedUpdates = false;\n let replacedIds = false;\n for (let update of updates) {\n const entity = state.entities[update.id];\n if (!entity) {\n continue;\n }\n appliedUpdates = true;\n Object.assign(entity, update.changes);\n const newId = selectId(entity);\n if (update.id !== newId) {\n replacedIds = true;\n delete state.entities[update.id];\n const oldIndex = state.ids.indexOf(update.id);\n state.ids[oldIndex] = newId;\n state.entities[newId] = entity;\n }\n }\n if (appliedUpdates) {\n mergeFunction(state, [], appliedUpdates, replacedIds);\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);\n if (updated.length) {\n updateManyMutably(updated, state);\n }\n if (added.length) {\n addManyMutably(added, state, existingIdsArray);\n }\n }\n function areArraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return false;\n }\n return true;\n }\n const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n const currentEntities = getCurrent(state.entities);\n const currentIds = getCurrent(state.ids);\n const stateEntities = state.entities;\n let ids = currentIds;\n if (replacedIds) {\n ids = new Set(currentIds);\n }\n let sortedEntities = [];\n for (const id of ids) {\n const entity = currentEntities[id];\n if (entity) {\n sortedEntities.push(entity);\n }\n }\n const wasPreviouslyEmpty = sortedEntities.length === 0;\n for (const item of addedItems) {\n stateEntities[selectId(item)] = item;\n if (!wasPreviouslyEmpty) {\n insert(sortedEntities, item, comparer);\n }\n }\n if (wasPreviouslyEmpty) {\n sortedEntities = addedItems.slice().sort(comparer);\n } else if (appliedUpdates) {\n sortedEntities.sort(comparer);\n }\n const newSortedIds = sortedEntities.map(selectId);\n if (!areArraysEqual(currentIds, newSortedIds)) {\n state.ids = newSortedIds;\n }\n };\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably)\n };\n}\n\n// src/entities/create_adapter.ts\nfunction createEntityAdapter(options = {}) {\n const {\n selectId,\n sortComparer\n } = {\n sortComparer: false,\n selectId: (instance) => instance.id,\n ...options\n };\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n const stateFactory = createInitialStateFactory(stateAdapter);\n const selectorsFactory = createSelectorsFactory();\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}\n\n// src/listenerMiddleware/index.ts\n\n\n// src/listenerMiddleware/exceptions.ts\nvar task = \"task\";\nvar listener = \"listener\";\nvar completed = \"completed\";\nvar cancelled = \"cancelled\";\nvar taskCancelled = `task-${cancelled}`;\nvar taskCompleted = `task-${completed}`;\nvar listenerCancelled = `${listener}-${cancelled}`;\nvar listenerCompleted = `${listener}-${completed}`;\nvar TaskAbortError = class {\n constructor(code) {\n this.code = code;\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n name = \"TaskAbortError\";\n message;\n};\n\n// src/listenerMiddleware/utils.ts\nvar assertFunction = (func, expected) => {\n if (typeof func !== \"function\") {\n throw new TypeError( false ? 0 : `${expected} is not a function`);\n }\n};\nvar noop2 = () => {\n};\nvar catchRejection = (promise, onError = noop2) => {\n promise.catch(onError);\n return promise;\n};\nvar addAbortSignalListener = (abortSignal, callback) => {\n abortSignal.addEventListener(\"abort\", callback, {\n once: true\n });\n return () => abortSignal.removeEventListener(\"abort\", callback);\n};\nvar abortControllerWithReason = (abortController, reason) => {\n const signal = abortController.signal;\n if (signal.aborted) {\n return;\n }\n if (!(\"reason\" in signal)) {\n Object.defineProperty(signal, \"reason\", {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n ;\n abortController.abort(reason);\n};\n\n// src/listenerMiddleware/task.ts\nvar validateActive = (signal) => {\n if (signal.aborted) {\n const {\n reason\n } = signal;\n throw new TaskAbortError(reason);\n }\n};\nfunction raceWithSignal(signal, promise) {\n let cleanup = noop2;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n cleanup = noop2;\n });\n}\nvar runTask = async (task2, cleanUp) => {\n try {\n await Promise.resolve();\n const value = await task2();\n return {\n status: \"ok\",\n value\n };\n } catch (error) {\n return {\n status: error instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\n error\n };\n } finally {\n cleanUp?.();\n }\n};\nvar createPause = (signal) => {\n return (promise) => {\n return catchRejection(raceWithSignal(signal, promise).then((output) => {\n validateActive(signal);\n return output;\n }));\n };\n};\nvar createDelay = (signal) => {\n const pause = createPause(signal);\n return (timeoutMs) => {\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));\n };\n};\n\n// src/listenerMiddleware/index.ts\nvar {\n assign\n} = Object;\nvar INTERNAL_NIL_TOKEN = {};\nvar alm = \"listenerMiddleware\";\nvar createFork = (parentAbortSignal, parentBlockingPromises) => {\n const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n return (taskExecutor, opts) => {\n assertFunction(taskExecutor, \"taskExecutor\");\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async () => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result2 = await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n });\n validateActive(childAbortController.signal);\n return result2;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop2));\n }\n return {\n result: createPause(parentAbortSignal)(result),\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n };\n };\n};\nvar createTakePattern = (startListening, signal) => {\n const take = async (predicate, timeout) => {\n validateActive(signal);\n let unsubscribe = () => {\n };\n const tuplePromise = new Promise((resolve, reject) => {\n let stopListening = startListening({\n predicate,\n effect: (action, listenerApi) => {\n listenerApi.unsubscribe();\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n unsubscribe();\n }\n };\n return (predicate, timeout) => catchRejection(take(predicate, timeout));\n};\nvar getListenerEntryPropsFrom = (options) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n } else {\n throw new Error( false ? 0 : \"Creating or removing a listener requires one of the known fields for matching an action\");\n }\n assertFunction(effect, \"options.listener\");\n return {\n predicate,\n type,\n effect\n };\n};\nvar createListenerEntry = /* @__PURE__ */ assign((options) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const entry = {\n id: nanoid(),\n effect,\n type,\n predicate,\n pending: /* @__PURE__ */ new Set(),\n unsubscribe: () => {\n throw new Error( false ? 0 : \"Unsubscribe not initialized\");\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n});\nvar findListenerEntry = (listenerMap, options) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n return Array.from(listenerMap.values()).find((entry) => {\n const matchPredicateOrType = typeof type === \"string\" ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n};\nvar cancelActiveListeners = (entry) => {\n entry.pending.forEach((controller) => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\nvar createClearListenerMiddleware = (listenerMap) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\n };\n};\nvar safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\nvar addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {\n withTypes: () => addListener\n});\nvar clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);\nvar removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n});\nvar defaultErrorHandler = (...args) => {\n console.error(`${alm}/error`, ...args);\n};\nvar createListenerMiddleware = (middlewareOptions = {}) => {\n const listenerMap = /* @__PURE__ */ new Map();\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, \"onError\");\n const insertEntry = (entry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = (options) => {\n const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options);\n return insertEntry(entry);\n };\n assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options) => {\n const entry = findListenerEntry(listenerMap, options);\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry, action, api, getOriginalState) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening, internalTaskController.signal);\n const autoJoinPromises = [];\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(\n action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })\n ));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: \"effect\"\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted);\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n const middleware = (api) => (next) => (action) => {\n if (!(0,redux__WEBPACK_IMPORTED_MODULE_0__.isAction)(action)) {\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n let originalState = api.getState();\n const getOriginalState = () => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error( false ? 0 : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState;\n };\n let result;\n try {\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: \"predicate\"\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n };\n};\n\n// src/dynamicMiddleware/index.ts\n\nvar createMiddlewareEntry = (middleware) => ({\n middleware,\n applied: /* @__PURE__ */ new Map()\n});\nvar matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;\nvar createDynamicMiddleware = () => {\n const instanceId = nanoid();\n const middlewareMap = /* @__PURE__ */ new Map();\n const withMiddleware = Object.assign(createAction(\"dynamicMiddleware/add\", (...middlewares) => ({\n payload: middlewares,\n meta: {\n instanceId\n }\n })), {\n withTypes: () => withMiddleware\n });\n const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {\n middlewares.forEach((middleware2) => {\n getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);\n });\n }, {\n withTypes: () => addMiddleware\n });\n const getFinalMiddleware = (api) => {\n const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));\n return (0,redux__WEBPACK_IMPORTED_MODULE_0__.compose)(...appliedMiddleware);\n };\n const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n const middleware = (api) => (next) => (action) => {\n if (isWithMiddleware(action)) {\n addMiddleware(...action.payload);\n return api.dispatch;\n }\n return getFinalMiddleware(api)(next)(action);\n };\n return {\n middleware,\n addMiddleware,\n withMiddleware,\n instanceId\n };\n};\n\n// src/combineSlices.ts\n\nvar isSliceLike = (maybeSliceLike) => \"reducerPath\" in maybeSliceLike && typeof maybeSliceLike.reducerPath === \"string\";\nvar getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nvar ORIGINAL_STATE = Symbol.for(\"rtk-state-proxy-original\");\nvar isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];\nvar stateProxyMap = /* @__PURE__ */ new WeakMap();\nvar createStateProxy = (state, reducerMap) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === \"undefined\") {\n const reducer = reducerMap[prop.toString()];\n if (reducer) {\n const reducerResult = reducer(void 0, {\n type: nanoid()\n });\n if (typeof reducerResult === \"undefined\") {\n throw new Error( false ? 0 : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n return reducerResult;\n }\n }\n return result;\n }\n}));\nvar original = (state) => {\n if (!isStateProxy(state)) {\n throw new Error( false ? 0 : \"original must be used on state Proxy\");\n }\n return state[ORIGINAL_STATE];\n};\nvar noopReducer = (state = {}) => state;\nfunction combineSlices(...slices) {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? (0,redux__WEBPACK_IMPORTED_MODULE_0__.combineReducers)(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state, action) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const inject = (slice, config = {}) => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== \"undefined\" && \"development\" === \"development\") {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector(selectorFn, selectState) {\n return function selector2(state, ...args) {\n return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n });\n}\n\n// src/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n//# sourceMappingURL=redux-toolkit.modern.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmVkdXhqcy90b29sa2l0L2Rpc3QvcmVkdXgtdG9vbGtpdC5tb2Rlcm4ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNzQjtBQUNtRjtBQUNpQzs7QUFFMUk7QUFDeUM7QUFDd0I7QUFDakU7QUFDQSwwQkFBMEIsK0RBQXFCO0FBQy9DO0FBQ0E7QUFDQSx5REFBeUQsOENBQU8sVUFBVSw4Q0FBTztBQUNqRjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSw2RUFBNkUsb0RBQWM7O0FBRTNGO0FBQzRIOztBQUU1SDtBQUNnQztBQUNoQztBQUNBO0FBQ0EsK0NBQStDLDBDQUFPO0FBQ3RELFNBQVMsMENBQU87QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQzBFOztBQUUxRTtBQUNpQzs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLE1BQXFDLEdBQUcsQ0FBeUI7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLEtBQUs7QUFDekM7QUFDQSxvQ0FBb0MsK0NBQVE7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLCtDQUFRO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4QkFBOEIsS0FBSztBQUNuQztBQUNBLGtEQUFrRCxrQkFBa0I7QUFDcEUsa0ZBQWtGLFdBQVcsOEJBQThCLFdBQVc7QUFDdEk7QUFDQSw0REFBNEQ7QUFDNUQsTUFBTSxLQUFxQyxFQUFFLEVBRTFDO0FB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QUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsVUFBVTtBQUN0Qyw0QkFBNEIsVUFBVTtBQUN0QywyQkFBMkIsU0FBUyxHQUFHLFVBQVU7QUFDakQsMkJBQTJCLFNBQVMsR0FBRyxVQUFVO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixNQUFNLEVBQUUsV0FBVyxXQUFXLEtBQUs7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLE1BQXFDLEdBQUcsQ0FBMEIsTUFBTSxVQUFVO0FBQzFHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FB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QUEwQixpQ0FBaUMsZ0JBQWdCO0FBQzdJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0Esb0JBQW9CLE1BQXFDLEdBQUcsQ0FBMEI7QUFDdEY7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQSw0REFBNEQsc0RBQWdCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxpQkFBaUIsT0FBTyxvQkFBb0IsYUFBb0I7QUFDaEUsZ0ZBQWdGLGFBQWE7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBLDBDQUEwQyxPQUFPLGlEQUFpRCxNQUFNO0FBQ3hHO0FBb0RFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0ByZWR1eGpzL3Rvb2xraXQvZGlzdC9yZWR1eC10b29sa2l0Lm1vZGVybi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2luZGV4LnRzXG5leHBvcnQgKiBmcm9tIFwicmVkdXhcIjtcbmltcG9ydCB7IHByb2R1Y2UsIGN1cnJlbnQgYXMgY3VycmVudDMsIGZyZWV6ZSwgb3JpZ2luYWwgYXMgb3JpZ2luYWwyLCBpc0RyYWZ0IGFzIGlzRHJhZnQ1IH0gZnJvbSBcImltbWVyXCI7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3JDcmVhdG9yIGFzIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcjIsIGxydU1lbW9pemUsIHdlYWtNYXBNZW1vaXplIGFzIHdlYWtNYXBNZW1vaXplMiB9IGZyb20gXCJyZXNlbGVjdFwiO1xuXG4vLyBzcmMvY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3IudHNcbmltcG9ydCB7IGN1cnJlbnQsIGlzRHJhZnQgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvciwgd2Vha01hcE1lbW9pemUgfSBmcm9tIFwicmVzZWxlY3RcIjtcbnZhciBjcmVhdGVEcmFmdFNhZmVTZWxlY3RvckNyZWF0b3IgPSAoLi4uYXJncykgPT4ge1xuICBjb25zdCBjcmVhdGVTZWxlY3RvcjIgPSBjcmVhdGVTZWxlY3RvckNyZWF0b3IoLi4uYXJncyk7XG4gIGNvbnN0IGNyZWF0ZURyYWZ0U2FmZVNlbGVjdG9yMiA9IE9iamVjdC5hc3NpZ24oKC4uLmFyZ3MyKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcjIoLi4uYXJnczIpO1xuICAgIGNvbnN0IHdyYXBwZWRTZWxlY3RvciA9ICh2YWx1ZSwgLi4ucmVzdCkgPT4gc2VsZWN0b3IoaXNEcmFmdCh2YWx1ZSkgPyBjdXJyZW50KHZhbHVlKSA6IHZhbHVlLCAuLi5yZXN0KTtcbiAgICBPYmplY3QuYXNzaWduKHdyYXBwZWRTZWxlY3Rvciwgc2VsZWN0b3IpO1xuICAgIHJldHVybiB3cmFwcGVkU2VsZWN0b3I7XG4gIH0sIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IGNyZWF0ZURyYWZ0U2FmZVNlbGVjdG9yMlxuICB9KTtcbiAgcmV0dXJuIGNyZWF0ZURyYWZ0U2FmZVNlbGVjdG9yMjtcbn07XG52YXIgY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3IgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3JDcmVhdG9yKHdlYWtNYXBNZW1vaXplKTtcblxuLy8gc3JjL2NvbmZpZ3VyZVN0b3JlLnRzXG5pbXBvcnQgeyBhcHBseU1pZGRsZXdhcmUsIGNyZWF0ZVN0b3JlLCBjb21wb3NlIGFzIGNvbXBvc2UyLCBjb21iaW5lUmVkdWNlcnMsIGlzUGxhaW5PYmplY3QgYXMgaXNQbGFpbk9iamVjdDIgfSBmcm9tIFwicmVkdXhcIjtcblxuLy8gc3JjL2RldnRvb2xzRXh0ZW5zaW9uLnRzXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSBcInJlZHV4XCI7XG52YXIgY29tcG9zZVdpdGhEZXZUb29scyA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX0NPTVBPU0VfXyA/IHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18gOiBmdW5jdGlvbigpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHJldHVybiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgYXJndW1lbnRzWzBdID09PSBcIm9iamVjdFwiKSByZXR1cm4gY29tcG9zZTtcbiAgcmV0dXJuIGNvbXBvc2UuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn07XG52YXIgZGV2VG9vbHNFbmhhbmNlciA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18gPyB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyA6IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZnVuY3Rpb24obm9vcDMpIHtcbiAgICByZXR1cm4gbm9vcDM7XG4gIH07XG59O1xuXG4vLyBzcmMvZ2V0RGVmYXVsdE1pZGRsZXdhcmUudHNcbmltcG9ydCB7IHRodW5rIGFzIHRodW5rTWlkZGxld2FyZSwgd2l0aEV4dHJhQXJndW1lbnQgfSBmcm9tIFwicmVkdXgtdGh1bmtcIjtcblxuLy8gc3JjL2NyZWF0ZUFjdGlvbi50c1xuaW1wb3J0IHsgaXNBY3Rpb24gfSBmcm9tIFwicmVkdXhcIjtcblxuLy8gc3JjL3RzSGVscGVycy50c1xudmFyIGhhc01hdGNoRnVuY3Rpb24gPSAodikgPT4ge1xuICByZXR1cm4gdiAmJiB0eXBlb2Ygdi5tYXRjaCA9PT0gXCJmdW5jdGlvblwiO1xufTtcblxuLy8gc3JjL2NyZWF0ZUFjdGlvbi50c1xuZnVuY3Rpb24gY3JlYXRlQWN0aW9uKHR5cGUsIHByZXBhcmVBY3Rpb24pIHtcbiAgZnVuY3Rpb24gYWN0aW9uQ3JlYXRvciguLi5hcmdzKSB7XG4gICAgaWYgKHByZXBhcmVBY3Rpb24pIHtcbiAgICAgIGxldCBwcmVwYXJlZCA9IHByZXBhcmVBY3Rpb24oLi4uYXJncyk7XG4gICAgICBpZiAoIXByZXBhcmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDApIDogXCJwcmVwYXJlQWN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQ6IHByZXBhcmVkLnBheWxvYWQsXG4gICAgICAgIC4uLlwibWV0YVwiIGluIHByZXBhcmVkICYmIHtcbiAgICAgICAgICBtZXRhOiBwcmVwYXJlZC5tZXRhXG4gICAgICAgIH0sXG4gICAgICAgIC4uLlwiZXJyb3JcIiBpbiBwcmVwYXJlZCAmJiB7XG4gICAgICAgICAgZXJyb3I6IHByZXBhcmVkLmVycm9yXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0eXBlLFxuICAgICAgcGF5bG9hZDogYXJnc1swXVxuICAgIH07XG4gIH1cbiAgYWN0aW9uQ3JlYXRvci50b1N0cmluZyA9ICgpID0+IGAke3R5cGV9YDtcbiAgYWN0aW9uQ3JlYXRvci50eXBlID0gdHlwZTtcbiAgYWN0aW9uQ3JlYXRvci5tYXRjaCA9IChhY3Rpb24pID0+IGlzQWN0aW9uKGFjdGlvbikgJiYgYWN0aW9uLnR5cGUgPT09IHR5cGU7XG4gIHJldHVybiBhY3Rpb25DcmVhdG9yO1xufVxuZnVuY3Rpb24gaXNBY3Rpb25DcmVhdG9yKGFjdGlvbikge1xuICByZXR1cm4gdHlwZW9mIGFjdGlvbiA9PT0gXCJmdW5jdGlvblwiICYmIFwidHlwZVwiIGluIGFjdGlvbiAmJiAvLyBoYXNNYXRjaEZ1bmN0aW9uIG9ubHkgd2FudHMgTWF0Y2hlcnMgYnV0IEkgZG9uJ3Qgc2VlIHRoZSBwb2ludCBpbiByZXdyaXRpbmcgaXRcbiAgaGFzTWF0Y2hGdW5jdGlvbihhY3Rpb24pO1xufVxuZnVuY3Rpb24gaXNGU0EoYWN0aW9uKSB7XG4gIHJldHVybiBpc0FjdGlvbihhY3Rpb24pICYmIE9iamVjdC5rZXlzKGFjdGlvbikuZXZlcnkoaXNWYWxpZEtleSk7XG59XG5mdW5jdGlvbiBpc1ZhbGlkS2V5KGtleSkge1xuICByZXR1cm4gW1widHlwZVwiLCBcInBheWxvYWRcIiwgXCJlcnJvclwiLCBcIm1ldGFcIl0uaW5kZXhPZihrZXkpID4gLTE7XG59XG5cbi8vIHNyYy9hY3Rpb25DcmVhdG9ySW52YXJpYW50TWlkZGxld2FyZS50c1xuZnVuY3Rpb24gZ2V0TWVzc2FnZSh0eXBlKSB7XG4gIGNvbnN0IHNwbGl0VHlwZSA9IHR5cGUgPyBgJHt0eXBlfWAuc3BsaXQoXCIvXCIpIDogW107XG4gIGNvbnN0IGFjdGlvbk5hbWUgPSBzcGxpdFR5cGVbc3BsaXRUeXBlLmxlbmd0aCAtIDFdIHx8IFwiYWN0aW9uQ3JlYXRvclwiO1xuICByZXR1cm4gYERldGVjdGVkIGFuIGFjdGlvbiBjcmVhdG9yIHdpdGggdHlwZSBcIiR7dHlwZSB8fCBcInVua25vd25cIn1cIiBiZWluZyBkaXNwYXRjaGVkLiBcbk1ha2Ugc3VyZSB5b3UncmUgY2FsbGluZyB0aGUgYWN0aW9uIGNyZWF0b3IgYmVmb3JlIGRpc3BhdGNoaW5nLCBpLmUuIFxcYGRpc3BhdGNoKCR7YWN0aW9uTmFtZX0oKSlcXGAgaW5zdGVhZCBvZiBcXGBkaXNwYXRjaCgke2FjdGlvbk5hbWV9KVxcYC4gVGhpcyBpcyBuZWNlc3NhcnkgZXZlbiBpZiB0aGUgYWN0aW9uIGhhcyBubyBwYXlsb2FkLmA7XG59XG5mdW5jdGlvbiBjcmVhdGVBY3Rpb25DcmVhdG9ySW52YXJpYW50TWlkZGxld2FyZShvcHRpb25zID0ge30pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHJldHVybiAoKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4gbmV4dChhY3Rpb24pO1xuICB9XG4gIGNvbnN0IHtcbiAgICBpc0FjdGlvbkNyZWF0b3I6IGlzQWN0aW9uQ3JlYXRvcjIgPSBpc0FjdGlvbkNyZWF0b3JcbiAgfSA9IG9wdGlvbnM7XG4gIHJldHVybiAoKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICAgIGlmIChpc0FjdGlvbkNyZWF0b3IyKGFjdGlvbikpIHtcbiAgICAgIGNvbnNvbGUud2FybihnZXRNZXNzYWdlKGFjdGlvbi50eXBlKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gIH07XG59XG5cbi8vIHNyYy91dGlscy50c1xuaW1wb3J0IHsgcHJvZHVjZSBhcyBjcmVhdGVOZXh0U3RhdGUsIGlzRHJhZnRhYmxlIH0gZnJvbSBcImltbWVyXCI7XG5mdW5jdGlvbiBnZXRUaW1lTWVhc3VyZVV0aWxzKG1heERlbGF5LCBmbk5hbWUpIHtcbiAgbGV0IGVsYXBzZWQgPSAwO1xuICByZXR1cm4ge1xuICAgIG1lYXN1cmVUaW1lKGZuKSB7XG4gICAgICBjb25zdCBzdGFydGVkID0gRGF0ZS5ub3coKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgY29uc3QgZmluaXNoZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICBlbGFwc2VkICs9IGZpbmlzaGVkIC0gc3RhcnRlZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHdhcm5JZkV4Y2VlZGVkKCkge1xuICAgICAgaWYgKGVsYXBzZWQgPiBtYXhEZWxheSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYCR7Zm5OYW1lfSB0b29rICR7ZWxhcHNlZH1tcywgd2hpY2ggaXMgbW9yZSB0aGFuIHRoZSB3YXJuaW5nIHRocmVzaG9sZCBvZiAke21heERlbGF5fW1zLiBcbklmIHlvdXIgc3RhdGUgb3IgYWN0aW9ucyBhcmUgdmVyeSBsYXJnZSwgeW91IG1heSB3YW50IHRvIGRpc2FibGUgdGhlIG1pZGRsZXdhcmUgYXMgaXQgbWlnaHQgY2F1c2UgdG9vIG11Y2ggb2YgYSBzbG93ZG93biBpbiBkZXZlbG9wbWVudCBtb2RlLiBTZWUgaHR0cHM6Ly9yZWR1eC10b29sa2l0LmpzLm9yZy9hcGkvZ2V0RGVmYXVsdE1pZGRsZXdhcmUgZm9yIGluc3RydWN0aW9ucy5cbkl0IGlzIGRpc2FibGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzLCBzbyB5b3UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB0aGF0LmApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbnZhciBUdXBsZSA9IGNsYXNzIF9UdXBsZSBleHRlbmRzIEFycmF5IHtcbiAgY29uc3RydWN0b3IoLi4uaXRlbXMpIHtcbiAgICBzdXBlciguLi5pdGVtcyk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIF9UdXBsZS5wcm90b3R5cGUpO1xuICB9XG4gIHN0YXRpYyBnZXQgW1N5bWJvbC5zcGVjaWVzXSgpIHtcbiAgICByZXR1cm4gX1R1cGxlO1xuICB9XG4gIGNvbmNhdCguLi5hcnIpIHtcbiAgICByZXR1cm4gc3VwZXIuY29uY2F0LmFwcGx5KHRoaXMsIGFycik7XG4gIH1cbiAgcHJlcGVuZCguLi5hcnIpIHtcbiAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMSAmJiBBcnJheS5pc0FycmF5KGFyclswXSkpIHtcbiAgICAgIHJldHVybiBuZXcgX1R1cGxlKC4uLmFyclswXS5jb25jYXQodGhpcykpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IF9UdXBsZSguLi5hcnIuY29uY2F0KHRoaXMpKTtcbiAgfVxufTtcbmZ1bmN0aW9uIGZyZWV6ZURyYWZ0YWJsZSh2YWwpIHtcbiAgcmV0dXJuIGlzRHJhZnRhYmxlKHZhbCkgPyBjcmVhdGVOZXh0U3RhdGUodmFsLCAoKSA9PiB7XG4gIH0pIDogdmFsO1xufVxuZnVuY3Rpb24gZ2V0T3JJbnNlcnRDb21wdXRlZChtYXAsIGtleSwgY29tcHV0ZSkge1xuICBpZiAobWFwLmhhcyhrZXkpKSByZXR1cm4gbWFwLmdldChrZXkpO1xuICByZXR1cm4gbWFwLnNldChrZXksIGNvbXB1dGUoa2V5KSkuZ2V0KGtleSk7XG59XG5cbi8vIHNyYy9pbW11dGFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmUudHNcbmZ1bmN0aW9uIGlzSW1tdXRhYmxlRGVmYXVsdCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiIHx8IHZhbHVlID09IG51bGwgfHwgT2JqZWN0LmlzRnJvemVuKHZhbHVlKTtcbn1cbmZ1bmN0aW9uIHRyYWNrRm9yTXV0YXRpb25zKGlzSW1tdXRhYmxlLCBpZ25vcmVQYXRocywgb2JqKSB7XG4gIGNvbnN0IHRyYWNrZWRQcm9wZXJ0aWVzID0gdHJhY2tQcm9wZXJ0aWVzKGlzSW1tdXRhYmxlLCBpZ25vcmVQYXRocywgb2JqKTtcbiAgcmV0dXJuIHtcbiAgICBkZXRlY3RNdXRhdGlvbnMoKSB7XG4gICAgICByZXR1cm4gZGV0ZWN0TXV0YXRpb25zKGlzSW1tdXRhYmxlLCBpZ25vcmVQYXRocywgdHJhY2tlZFByb3BlcnRpZXMsIG9iaik7XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gdHJhY2tQcm9wZXJ0aWVzKGlzSW1tdXRhYmxlLCBpZ25vcmVQYXRocyA9IFtdLCBvYmosIHBhdGggPSBcIlwiLCBjaGVja2VkT2JqZWN0cyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpIHtcbiAgY29uc3QgdHJhY2tlZCA9IHtcbiAgICB2YWx1ZTogb2JqXG4gIH07XG4gIGlmICghaXNJbW11dGFibGUob2JqKSAmJiAhY2hlY2tlZE9iamVjdHMuaGFzKG9iaikpIHtcbiAgICBjaGVja2VkT2JqZWN0cy5hZGQob2JqKTtcbiAgICB0cmFja2VkLmNoaWxkcmVuID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBjb25zdCBjaGlsZFBhdGggPSBwYXRoID8gcGF0aCArIFwiLlwiICsga2V5IDoga2V5O1xuICAgICAgaWYgKGlnbm9yZVBhdGhzLmxlbmd0aCAmJiBpZ25vcmVQYXRocy5pbmRleE9mKGNoaWxkUGF0aCkgIT09IC0xKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdHJhY2tlZC5jaGlsZHJlbltrZXldID0gdHJhY2tQcm9wZXJ0aWVzKGlzSW1tdXRhYmxlLCBpZ25vcmVQYXRocywgb2JqW2tleV0sIGNoaWxkUGF0aCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cmFja2VkO1xufVxuZnVuY3Rpb24gZGV0ZWN0TXV0YXRpb25zKGlzSW1tdXRhYmxlLCBpZ25vcmVkUGF0aHMgPSBbXSwgdHJhY2tlZFByb3BlcnR5LCBvYmosIHNhbWVQYXJlbnRSZWYgPSBmYWxzZSwgcGF0aCA9IFwiXCIpIHtcbiAgY29uc3QgcHJldk9iaiA9IHRyYWNrZWRQcm9wZXJ0eSA/IHRyYWNrZWRQcm9wZXJ0eS52YWx1ZSA6IHZvaWQgMDtcbiAgY29uc3Qgc2FtZVJlZiA9IHByZXZPYmogPT09IG9iajtcbiAgaWYgKHNhbWVQYXJlbnRSZWYgJiYgIXNhbWVSZWYgJiYgIU51bWJlci5pc05hTihvYmopKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdhc011dGF0ZWQ6IHRydWUsXG4gICAgICBwYXRoXG4gICAgfTtcbiAgfVxuICBpZiAoaXNJbW11dGFibGUocHJldk9iaikgfHwgaXNJbW11dGFibGUob2JqKSkge1xuICAgIHJldHVybiB7XG4gICAgICB3YXNNdXRhdGVkOiBmYWxzZVxuICAgIH07XG4gIH1cbiAgY29uc3Qga2V5c1RvRGV0ZWN0ID0ge307XG4gIGZvciAobGV0IGtleSBpbiB0cmFja2VkUHJvcGVydHkuY2hpbGRyZW4pIHtcbiAgICBrZXlzVG9EZXRlY3Rba2V5XSA9IHRydWU7XG4gIH1cbiAgZm9yIChsZXQga2V5IGluIG9iaikge1xuICAgIGtleXNUb0RldGVjdFtrZXldID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBoYXNJZ25vcmVkUGF0aHMgPSBpZ25vcmVkUGF0aHMubGVuZ3RoID4gMDtcbiAgZm9yIChsZXQga2V5IGluIGtleXNUb0RldGVjdCkge1xuICAgIGNvbnN0IG5lc3RlZFBhdGggPSBwYXRoID8gcGF0aCArIFwiLlwiICsga2V5IDoga2V5O1xuICAgIGlmIChoYXNJZ25vcmVkUGF0aHMpIHtcbiAgICAgIGNvbnN0IGhhc01hdGNoZXMgPSBpZ25vcmVkUGF0aHMuc29tZSgoaWdub3JlZCkgPT4ge1xuICAgICAgICBpZiAoaWdub3JlZCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgIHJldHVybiBpZ25vcmVkLnRlc3QobmVzdGVkUGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5lc3RlZFBhdGggPT09IGlnbm9yZWQ7XG4gICAgICB9KTtcbiAgICAgIGlmIChoYXNNYXRjaGVzKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBkZXRlY3RNdXRhdGlvbnMoaXNJbW11dGFibGUsIGlnbm9yZWRQYXRocywgdHJhY2tlZFByb3BlcnR5LmNoaWxkcmVuW2tleV0sIG9ialtrZXldLCBzYW1lUmVmLCBuZXN0ZWRQYXRoKTtcbiAgICBpZiAocmVzdWx0Lndhc011dGF0ZWQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgd2FzTXV0YXRlZDogZmFsc2VcbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUltbXV0YWJsZVN0YXRlSW52YXJpYW50TWlkZGxld2FyZShvcHRpb25zID0ge30pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHJldHVybiAoKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4gbmV4dChhY3Rpb24pO1xuICB9IGVsc2Uge1xuICAgIGxldCBzdHJpbmdpZnkyID0gZnVuY3Rpb24ob2JqLCBzZXJpYWxpemVyLCBpbmRlbnQsIGRlY3ljbGVyKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCBnZXRTZXJpYWxpemUyKHNlcmlhbGl6ZXIsIGRlY3ljbGVyKSwgaW5kZW50KTtcbiAgICB9LCBnZXRTZXJpYWxpemUyID0gZnVuY3Rpb24oc2VyaWFsaXplciwgZGVjeWNsZXIpIHtcbiAgICAgIGxldCBzdGFjayA9IFtdLCBrZXlzID0gW107XG4gICAgICBpZiAoIWRlY3ljbGVyKSBkZWN5Y2xlciA9IGZ1bmN0aW9uKF8sIHZhbHVlKSB7XG4gICAgICAgIGlmIChzdGFja1swXSA9PT0gdmFsdWUpIHJldHVybiBcIltDaXJjdWxhciB+XVwiO1xuICAgICAgICByZXR1cm4gXCJbQ2lyY3VsYXIgfi5cIiArIGtleXMuc2xpY2UoMCwgc3RhY2suaW5kZXhPZih2YWx1ZSkpLmpvaW4oXCIuXCIpICsgXCJdXCI7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB2YXIgdGhpc1BvcyA9IHN0YWNrLmluZGV4T2YodGhpcyk7XG4gICAgICAgICAgfnRoaXNQb3MgPyBzdGFjay5zcGxpY2UodGhpc1BvcyArIDEpIDogc3RhY2sucHVzaCh0aGlzKTtcbiAgICAgICAgICB+dGhpc1BvcyA/IGtleXMuc3BsaWNlKHRoaXNQb3MsIEluZmluaXR5LCBrZXkpIDoga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgaWYgKH5zdGFjay5pbmRleE9mKHZhbHVlKSkgdmFsdWUgPSBkZWN5Y2xlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Ugc3RhY2sucHVzaCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyID09IG51bGwgPyB2YWx1ZSA6IHNlcmlhbGl6ZXIuY2FsbCh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgIH07XG4gICAgfTtcbiAgICB2YXIgc3RyaW5naWZ5ID0gc3RyaW5naWZ5MiwgZ2V0U2VyaWFsaXplID0gZ2V0U2VyaWFsaXplMjtcbiAgICBsZXQge1xuICAgICAgaXNJbW11dGFibGUgPSBpc0ltbXV0YWJsZURlZmF1bHQsXG4gICAgICBpZ25vcmVkUGF0aHMsXG4gICAgICB3YXJuQWZ0ZXIgPSAzMlxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHRyYWNrID0gdHJhY2tGb3JNdXRhdGlvbnMuYmluZChudWxsLCBpc0ltbXV0YWJsZSwgaWdub3JlZFBhdGhzKTtcbiAgICByZXR1cm4gKHtcbiAgICAgIGdldFN0YXRlXG4gICAgfSkgPT4ge1xuICAgICAgbGV0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICAgIGxldCB0cmFja2VyID0gdHJhY2soc3RhdGUpO1xuICAgICAgbGV0IHJlc3VsdDtcbiAgICAgIHJldHVybiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtZWFzdXJlVXRpbHMgPSBnZXRUaW1lTWVhc3VyZVV0aWxzKHdhcm5BZnRlciwgXCJJbW11dGFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmVcIik7XG4gICAgICAgIG1lYXN1cmVVdGlscy5tZWFzdXJlVGltZSgoKSA9PiB7XG4gICAgICAgICAgc3RhdGUgPSBnZXRTdGF0ZSgpO1xuICAgICAgICAgIHJlc3VsdCA9IHRyYWNrZXIuZGV0ZWN0TXV0YXRpb25zKCk7XG4gICAgICAgICAgdHJhY2tlciA9IHRyYWNrKHN0YXRlKTtcbiAgICAgICAgICBpZiAocmVzdWx0Lndhc011dGF0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE5KSA6IGBBIHN0YXRlIG11dGF0aW9uIHdhcyBkZXRlY3RlZCBiZXR3ZWVuIGRpc3BhdGNoZXMsIGluIHRoZSBwYXRoICcke3Jlc3VsdC5wYXRoIHx8IFwiXCJ9Jy4gIFRoaXMgbWF5IGNhdXNlIGluY29ycmVjdCBiZWhhdmlvci4gKGh0dHBzOi8vcmVkdXguanMub3JnL3N0eWxlLWd1aWRlL3N0eWxlLWd1aWRlI2RvLW5vdC1tdXRhdGUtc3RhdGUpYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hlZEFjdGlvbiA9IG5leHQoYWN0aW9uKTtcbiAgICAgICAgbWVhc3VyZVV0aWxzLm1lYXN1cmVUaW1lKCgpID0+IHtcbiAgICAgICAgICBzdGF0ZSA9IGdldFN0YXRlKCk7XG4gICAgICAgICAgcmVzdWx0ID0gdHJhY2tlci5kZXRlY3RNdXRhdGlvbnMoKTtcbiAgICAgICAgICB0cmFja2VyID0gdHJhY2soc3RhdGUpO1xuICAgICAgICAgIGlmIChyZXN1bHQud2FzTXV0YXRlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMjApIDogYEEgc3RhdGUgbXV0YXRpb24gd2FzIGRldGVjdGVkIGluc2lkZSBhIGRpc3BhdGNoLCBpbiB0aGUgcGF0aDogJHtyZXN1bHQucGF0aCB8fCBcIlwifS4gVGFrZSBhIGxvb2sgYXQgdGhlIHJlZHVjZXIocykgaGFuZGxpbmcgdGhlIGFjdGlvbiAke3N0cmluZ2lmeTIoYWN0aW9uKX0uIChodHRwczovL3JlZHV4LmpzLm9yZy9zdHlsZS1ndWlkZS9zdHlsZS1ndWlkZSNkby1ub3QtbXV0YXRlLXN0YXRlKWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG1lYXN1cmVVdGlscy53YXJuSWZFeGNlZWRlZCgpO1xuICAgICAgICByZXR1cm4gZGlzcGF0Y2hlZEFjdGlvbjtcbiAgICAgIH07XG4gICAgfTtcbiAgfVxufVxuXG4vLyBzcmMvc2VyaWFsaXphYmxlU3RhdGVJbnZhcmlhbnRNaWRkbGV3YXJlLnRzXG5pbXBvcnQgeyBpc0FjdGlvbiBhcyBpc0FjdGlvbjIsIGlzUGxhaW5PYmplY3QgfSBmcm9tIFwicmVkdXhcIjtcbmZ1bmN0aW9uIGlzUGxhaW4odmFsKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuICByZXR1cm4gdmFsID09IG51bGwgfHwgdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcImJvb2xlYW5cIiB8fCB0eXBlID09PSBcIm51bWJlclwiIHx8IEFycmF5LmlzQXJyYXkodmFsKSB8fCBpc1BsYWluT2JqZWN0KHZhbCk7XG59XG5mdW5jdGlvbiBmaW5kTm9uU2VyaWFsaXphYmxlVmFsdWUodmFsdWUsIHBhdGggPSBcIlwiLCBpc1NlcmlhbGl6YWJsZSA9IGlzUGxhaW4sIGdldEVudHJpZXMsIGlnbm9yZWRQYXRocyA9IFtdLCBjYWNoZSkge1xuICBsZXQgZm91bmROZXN0ZWRTZXJpYWxpemFibGU7XG4gIGlmICghaXNTZXJpYWxpemFibGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleVBhdGg6IHBhdGggfHwgXCI8cm9vdD5cIixcbiAgICAgIHZhbHVlXG4gICAgfTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChjYWNoZT8uaGFzKHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBlbnRyaWVzID0gZ2V0RW50cmllcyAhPSBudWxsID8gZ2V0RW50cmllcyh2YWx1ZSkgOiBPYmplY3QuZW50cmllcyh2YWx1ZSk7XG4gIGNvbnN0IGhhc0lnbm9yZWRQYXRocyA9IGlnbm9yZWRQYXRocy5sZW5ndGggPiAwO1xuICBmb3IgKGNvbnN0IFtrZXksIG5lc3RlZFZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgbmVzdGVkUGF0aCA9IHBhdGggPyBwYXRoICsgXCIuXCIgKyBrZXkgOiBrZXk7XG4gICAgaWYgKGhhc0lnbm9yZWRQYXRocykge1xuICAgICAgY29uc3QgaGFzTWF0Y2hlcyA9IGlnbm9yZWRQYXRocy5zb21lKChpZ25vcmVkKSA9PiB7XG4gICAgICAgIGlmIChpZ25vcmVkIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgcmV0dXJuIGlnbm9yZWQudGVzdChuZXN0ZWRQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVzdGVkUGF0aCA9PT0gaWdub3JlZDtcbiAgICAgIH0pO1xuICAgICAgaWYgKGhhc01hdGNoZXMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaXNTZXJpYWxpemFibGUobmVzdGVkVmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXlQYXRoOiBuZXN0ZWRQYXRoLFxuICAgICAgICB2YWx1ZTogbmVzdGVkVmFsdWVcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbmVzdGVkVmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGZvdW5kTmVzdGVkU2VyaWFsaXphYmxlID0gZmluZE5vblNlcmlhbGl6YWJsZVZhbHVlKG5lc3RlZFZhbHVlLCBuZXN0ZWRQYXRoLCBpc1NlcmlhbGl6YWJsZSwgZ2V0RW50cmllcywgaWdub3JlZFBhdGhzLCBjYWNoZSk7XG4gICAgICBpZiAoZm91bmROZXN0ZWRTZXJpYWxpemFibGUpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kTmVzdGVkU2VyaWFsaXphYmxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoY2FjaGUgJiYgaXNOZXN0ZWRGcm96ZW4odmFsdWUpKSBjYWNoZS5hZGQodmFsdWUpO1xuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc05lc3RlZEZyb3plbih2YWx1ZSkge1xuICBpZiAoIU9iamVjdC5pc0Zyb3plbih2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgZm9yIChjb25zdCBuZXN0ZWRWYWx1ZSBvZiBPYmplY3QudmFsdWVzKHZhbHVlKSkge1xuICAgIGlmICh0eXBlb2YgbmVzdGVkVmFsdWUgIT09IFwib2JqZWN0XCIgfHwgbmVzdGVkVmFsdWUgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgIGlmICghaXNOZXN0ZWRGcm96ZW4obmVzdGVkVmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBjcmVhdGVTZXJpYWxpemFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmUob3B0aW9ucyA9IHt9KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICByZXR1cm4gKCkgPT4gKG5leHQpID0+IChhY3Rpb24pID0+IG5leHQoYWN0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7XG4gICAgICBpc1NlcmlhbGl6YWJsZSA9IGlzUGxhaW4sXG4gICAgICBnZXRFbnRyaWVzLFxuICAgICAgaWdub3JlZEFjdGlvbnMgPSBbXSxcbiAgICAgIGlnbm9yZWRBY3Rpb25QYXRocyA9IFtcIm1ldGEuYXJnXCIsIFwibWV0YS5iYXNlUXVlcnlNZXRhXCJdLFxuICAgICAgaWdub3JlZFBhdGhzID0gW10sXG4gICAgICB3YXJuQWZ0ZXIgPSAzMixcbiAgICAgIGlnbm9yZVN0YXRlID0gZmFsc2UsXG4gICAgICBpZ25vcmVBY3Rpb25zID0gZmFsc2UsXG4gICAgICBkaXNhYmxlQ2FjaGUgPSBmYWxzZVxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNhY2hlID0gIWRpc2FibGVDYWNoZSAmJiBXZWFrU2V0ID8gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCkgOiB2b2lkIDA7XG4gICAgcmV0dXJuIChzdG9yZUFQSSkgPT4gKG5leHQpID0+IChhY3Rpb24pID0+IHtcbiAgICAgIGlmICghaXNBY3Rpb24yKGFjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG5leHQoYWN0aW9uKTtcbiAgICAgIGNvbnN0IG1lYXN1cmVVdGlscyA9IGdldFRpbWVNZWFzdXJlVXRpbHMod2FybkFmdGVyLCBcIlNlcmlhbGl6YWJsZVN0YXRlSW52YXJpYW50TWlkZGxld2FyZVwiKTtcbiAgICAgIGlmICghaWdub3JlQWN0aW9ucyAmJiAhKGlnbm9yZWRBY3Rpb25zLmxlbmd0aCAmJiBpZ25vcmVkQWN0aW9ucy5pbmRleE9mKGFjdGlvbi50eXBlKSAhPT0gLTEpKSB7XG4gICAgICAgIG1lYXN1cmVVdGlscy5tZWFzdXJlVGltZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmRBY3Rpb25Ob25TZXJpYWxpemFibGVWYWx1ZSA9IGZpbmROb25TZXJpYWxpemFibGVWYWx1ZShhY3Rpb24sIFwiXCIsIGlzU2VyaWFsaXphYmxlLCBnZXRFbnRyaWVzLCBpZ25vcmVkQWN0aW9uUGF0aHMsIGNhY2hlKTtcbiAgICAgICAgICBpZiAoZm91bmRBY3Rpb25Ob25TZXJpYWxpemFibGVWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBrZXlQYXRoLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSA9IGZvdW5kQWN0aW9uTm9uU2VyaWFsaXphYmxlVmFsdWU7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBBIG5vbi1zZXJpYWxpemFibGUgdmFsdWUgd2FzIGRldGVjdGVkIGluIGFuIGFjdGlvbiwgaW4gdGhlIHBhdGg6IFxcYCR7a2V5UGF0aH1cXGAuIFZhbHVlOmAsIHZhbHVlLCBcIlxcblRha2UgYSBsb29rIGF0IHRoZSBsb2dpYyB0aGF0IGRpc3BhdGNoZWQgdGhpcyBhY3Rpb246IFwiLCBhY3Rpb24sIFwiXFxuKFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy9mYXEvYWN0aW9ucyN3aHktc2hvdWxkLXR5cGUtYmUtYS1zdHJpbmctb3ItYXQtbGVhc3Qtc2VyaWFsaXphYmxlLXdoeS1zaG91bGQtbXktYWN0aW9uLXR5cGVzLWJlLWNvbnN0YW50cylcIiwgXCJcXG4oVG8gYWxsb3cgbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgc2VlOiBodHRwczovL3JlZHV4LXRvb2xraXQuanMub3JnL3VzYWdlL3VzYWdlLWd1aWRlI3dvcmtpbmctd2l0aC1ub24tc2VyaWFsaXphYmxlLWRhdGEpXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIWlnbm9yZVN0YXRlKSB7XG4gICAgICAgIG1lYXN1cmVVdGlscy5tZWFzdXJlVGltZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzdG9yZUFQSS5nZXRTdGF0ZSgpO1xuICAgICAgICAgIGNvbnN0IGZvdW5kU3RhdGVOb25TZXJpYWxpemFibGVWYWx1ZSA9IGZpbmROb25TZXJpYWxpemFibGVWYWx1ZShzdGF0ZSwgXCJcIiwgaXNTZXJpYWxpemFibGUsIGdldEVudHJpZXMsIGlnbm9yZWRQYXRocywgY2FjaGUpO1xuICAgICAgICAgIGlmIChmb3VuZFN0YXRlTm9uU2VyaWFsaXphYmxlVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAga2V5UGF0aCxcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIH0gPSBmb3VuZFN0YXRlTm9uU2VyaWFsaXphYmxlVmFsdWU7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBBIG5vbi1zZXJpYWxpemFibGUgdmFsdWUgd2FzIGRldGVjdGVkIGluIHRoZSBzdGF0ZSwgaW4gdGhlIHBhdGg6IFxcYCR7a2V5UGF0aH1cXGAuIFZhbHVlOmAsIHZhbHVlLCBgXG5UYWtlIGEgbG9vayBhdCB0aGUgcmVkdWNlcihzKSBoYW5kbGluZyB0aGlzIGFjdGlvbiB0eXBlOiAke2FjdGlvbi50eXBlfS5cbihTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvZmFxL29yZ2FuaXppbmctc3RhdGUjY2FuLWktcHV0LWZ1bmN0aW9ucy1wcm9taXNlcy1vci1vdGhlci1ub24tc2VyaWFsaXphYmxlLWl0ZW1zLWluLW15LXN0b3JlLXN0YXRlKWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG1lYXN1cmVVdGlscy53YXJuSWZFeGNlZWRlZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG59XG5cbi8vIHNyYy9nZXREZWZhdWx0TWlkZGxld2FyZS50c1xuZnVuY3Rpb24gaXNCb29sZWFuKHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSBcImJvb2xlYW5cIjtcbn1cbnZhciBidWlsZEdldERlZmF1bHRNaWRkbGV3YXJlID0gKCkgPT4gZnVuY3Rpb24gZ2V0RGVmYXVsdE1pZGRsZXdhcmUob3B0aW9ucykge1xuICBjb25zdCB7XG4gICAgdGh1bmsgPSB0cnVlLFxuICAgIGltbXV0YWJsZUNoZWNrID0gdHJ1ZSxcbiAgICBzZXJpYWxpemFibGVDaGVjayA9IHRydWUsXG4gICAgYWN0aW9uQ3JlYXRvckNoZWNrID0gdHJ1ZVxuICB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgbGV0IG1pZGRsZXdhcmVBcnJheSA9IG5ldyBUdXBsZSgpO1xuICBpZiAodGh1bmspIHtcbiAgICBpZiAoaXNCb29sZWFuKHRodW5rKSkge1xuICAgICAgbWlkZGxld2FyZUFycmF5LnB1c2godGh1bmtNaWRkbGV3YXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWlkZGxld2FyZUFycmF5LnB1c2god2l0aEV4dHJhQXJndW1lbnQodGh1bmsuZXh0cmFBcmd1bWVudCkpO1xuICAgIH1cbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgaWYgKGltbXV0YWJsZUNoZWNrKSB7XG4gICAgICBsZXQgaW1tdXRhYmxlT3B0aW9ucyA9IHt9O1xuICAgICAgaWYgKCFpc0Jvb2xlYW4oaW1tdXRhYmxlQ2hlY2spKSB7XG4gICAgICAgIGltbXV0YWJsZU9wdGlvbnMgPSBpbW11dGFibGVDaGVjaztcbiAgICAgIH1cbiAgICAgIG1pZGRsZXdhcmVBcnJheS51bnNoaWZ0KGNyZWF0ZUltbXV0YWJsZVN0YXRlSW52YXJpYW50TWlkZGxld2FyZShpbW11dGFibGVPcHRpb25zKSk7XG4gICAgfVxuICAgIGlmIChzZXJpYWxpemFibGVDaGVjaykge1xuICAgICAgbGV0IHNlcmlhbGl6YWJsZU9wdGlvbnMgPSB7fTtcbiAgICAgIGlmICghaXNCb29sZWFuKHNlcmlhbGl6YWJsZUNoZWNrKSkge1xuICAgICAgICBzZXJpYWxpemFibGVPcHRpb25zID0gc2VyaWFsaXphYmxlQ2hlY2s7XG4gICAgICB9XG4gICAgICBtaWRkbGV3YXJlQXJyYXkucHVzaChjcmVhdGVTZXJpYWxpemFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmUoc2VyaWFsaXphYmxlT3B0aW9ucykpO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uQ3JlYXRvckNoZWNrKSB7XG4gICAgICBsZXQgYWN0aW9uQ3JlYXRvck9wdGlvbnMgPSB7fTtcbiAgICAgIGlmICghaXNCb29sZWFuKGFjdGlvbkNyZWF0b3JDaGVjaykpIHtcbiAgICAgICAgYWN0aW9uQ3JlYXRvck9wdGlvbnMgPSBhY3Rpb25DcmVhdG9yQ2hlY2s7XG4gICAgICB9XG4gICAgICBtaWRkbGV3YXJlQXJyYXkudW5zaGlmdChjcmVhdGVBY3Rpb25DcmVhdG9ySW52YXJpYW50TWlkZGxld2FyZShhY3Rpb25DcmVhdG9yT3B0aW9ucykpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWlkZGxld2FyZUFycmF5O1xufTtcblxuLy8gc3JjL2F1dG9CYXRjaEVuaGFuY2VyLnRzXG52YXIgU0hPVUxEX0FVVE9CQVRDSCA9IFwiUlRLX2F1dG9CYXRjaFwiO1xudmFyIHByZXBhcmVBdXRvQmF0Y2hlZCA9ICgpID0+IChwYXlsb2FkKSA9PiAoe1xuICBwYXlsb2FkLFxuICBtZXRhOiB7XG4gICAgW1NIT1VMRF9BVVRPQkFUQ0hdOiB0cnVlXG4gIH1cbn0pO1xudmFyIGNyZWF0ZVF1ZXVlV2l0aFRpbWVyID0gKHRpbWVvdXQpID0+IHtcbiAgcmV0dXJuIChub3RpZnkpID0+IHtcbiAgICBzZXRUaW1lb3V0KG5vdGlmeSwgdGltZW91dCk7XG4gIH07XG59O1xudmFyIGF1dG9CYXRjaEVuaGFuY2VyID0gKG9wdGlvbnMgPSB7XG4gIHR5cGU6IFwicmFmXCJcbn0pID0+IChuZXh0KSA9PiAoLi4uYXJncykgPT4ge1xuICBjb25zdCBzdG9yZSA9IG5leHQoLi4uYXJncyk7XG4gIGxldCBub3RpZnlpbmcgPSB0cnVlO1xuICBsZXQgc2hvdWxkTm90aWZ5QXRFbmRPZlRpY2sgPSBmYWxzZTtcbiAgbGV0IG5vdGlmaWNhdGlvblF1ZXVlZCA9IGZhbHNlO1xuICBjb25zdCBsaXN0ZW5lcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICBjb25zdCBxdWV1ZUNhbGxiYWNrID0gb3B0aW9ucy50eXBlID09PSBcInRpY2tcIiA/IHF1ZXVlTWljcm90YXNrIDogb3B0aW9ucy50eXBlID09PSBcInJhZlwiID8gKFxuICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSB3b24ndCBleGlzdCBpbiBTU1IgZW52aXJvbm1lbnRzLiBGYWxsIGJhY2sgdG8gYSB2YWd1ZSBhcHByb3hpbWF0aW9uIGp1c3QgdG8ga2VlcCBmcm9tIGVycm9yaW5nLlxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiBjcmVhdGVRdWV1ZVdpdGhUaW1lcigxMClcbiAgKSA6IG9wdGlvbnMudHlwZSA9PT0gXCJjYWxsYmFja1wiID8gb3B0aW9ucy5xdWV1ZU5vdGlmaWNhdGlvbiA6IGNyZWF0ZVF1ZXVlV2l0aFRpbWVyKG9wdGlvbnMudGltZW91dCk7XG4gIGNvbnN0IG5vdGlmeUxpc3RlbmVycyA9ICgpID0+IHtcbiAgICBub3RpZmljYXRpb25RdWV1ZWQgPSBmYWxzZTtcbiAgICBpZiAoc2hvdWxkTm90aWZ5QXRFbmRPZlRpY2spIHtcbiAgICAgIHNob3VsZE5vdGlmeUF0RW5kT2ZUaWNrID0gZmFsc2U7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaCgobCkgPT4gbCgpKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdG9yZSwge1xuICAgIC8vIE92ZXJyaWRlIHRoZSBiYXNlIGBzdG9yZS5zdWJzY3JpYmVgIG1ldGhvZCB0byBrZWVwIG9yaWdpbmFsIGxpc3RlbmVyc1xuICAgIC8vIGZyb20gcnVubmluZyBpZiB3ZSdyZSBkZWxheWluZyBub3RpZmljYXRpb25zXG4gICAgc3Vic2NyaWJlKGxpc3RlbmVyMikge1xuICAgICAgY29uc3Qgd3JhcHBlZExpc3RlbmVyID0gKCkgPT4gbm90aWZ5aW5nICYmIGxpc3RlbmVyMigpO1xuICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBzdG9yZS5zdWJzY3JpYmUod3JhcHBlZExpc3RlbmVyKTtcbiAgICAgIGxpc3RlbmVycy5hZGQobGlzdGVuZXIyKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGxpc3RlbmVycy5kZWxldGUobGlzdGVuZXIyKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICAvLyBPdmVycmlkZSB0aGUgYmFzZSBgc3RvcmUuZGlzcGF0Y2hgIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiBjaGVjayBhY3Rpb25zXG4gICAgLy8gZm9yIHRoZSBgc2hvdWxkQXV0b0JhdGNoYCBmbGFnIGFuZCBkZXRlcm1pbmUgaWYgYmF0Y2hpbmcgaXMgYWN0aXZlXG4gICAgZGlzcGF0Y2goYWN0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBub3RpZnlpbmcgPSAhYWN0aW9uPy5tZXRhPy5bU0hPVUxEX0FVVE9CQVRDSF07XG4gICAgICAgIHNob3VsZE5vdGlmeUF0RW5kT2ZUaWNrID0gIW5vdGlmeWluZztcbiAgICAgICAgaWYgKHNob3VsZE5vdGlmeUF0RW5kT2ZUaWNrKSB7XG4gICAgICAgICAgaWYgKCFub3RpZmljYXRpb25RdWV1ZWQpIHtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvblF1ZXVlZCA9IHRydWU7XG4gICAgICAgICAgICBxdWV1ZUNhbGxiYWNrKG5vdGlmeUxpc3RlbmVycyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdG9yZS5kaXNwYXRjaChhY3Rpb24pO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgbm90aWZ5aW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuLy8gc3JjL2dldERlZmF1bHRFbmhhbmNlcnMudHNcbnZhciBidWlsZEdldERlZmF1bHRFbmhhbmNlcnMgPSAobWlkZGxld2FyZUVuaGFuY2VyKSA9PiBmdW5jdGlvbiBnZXREZWZhdWx0RW5oYW5jZXJzKG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIGF1dG9CYXRjaCA9IHRydWVcbiAgfSA9IG9wdGlvbnMgPz8ge307XG4gIGxldCBlbmhhbmNlckFycmF5ID0gbmV3IFR1cGxlKG1pZGRsZXdhcmVFbmhhbmNlcik7XG4gIGlmIChhdXRvQmF0Y2gpIHtcbiAgICBlbmhhbmNlckFycmF5LnB1c2goYXV0b0JhdGNoRW5oYW5jZXIodHlwZW9mIGF1dG9CYXRjaCA9PT0gXCJvYmplY3RcIiA/IGF1dG9CYXRjaCA6IHZvaWQgMCkpO1xuICB9XG4gIHJldHVybiBlbmhhbmNlckFycmF5O1xufTtcblxuLy8gc3JjL2NvbmZpZ3VyZVN0b3JlLnRzXG5mdW5jdGlvbiBjb25maWd1cmVTdG9yZShvcHRpb25zKSB7XG4gIGNvbnN0IGdldERlZmF1bHRNaWRkbGV3YXJlID0gYnVpbGRHZXREZWZhdWx0TWlkZGxld2FyZSgpO1xuICBjb25zdCB7XG4gICAgcmVkdWNlciA9IHZvaWQgMCxcbiAgICBtaWRkbGV3YXJlLFxuICAgIGRldlRvb2xzID0gdHJ1ZSxcbiAgICBwcmVsb2FkZWRTdGF0ZSA9IHZvaWQgMCxcbiAgICBlbmhhbmNlcnMgPSB2b2lkIDBcbiAgfSA9IG9wdGlvbnMgfHwge307XG4gIGxldCByb290UmVkdWNlcjtcbiAgaWYgKHR5cGVvZiByZWR1Y2VyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByb290UmVkdWNlciA9IHJlZHVjZXI7XG4gIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdDIocmVkdWNlcikpIHtcbiAgICByb290UmVkdWNlciA9IGNvbWJpbmVSZWR1Y2VycyhyZWR1Y2VyKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxKSA6IFwiYHJlZHVjZXJgIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQsIGFuZCBtdXN0IGJlIGEgZnVuY3Rpb24gb3IgYW4gb2JqZWN0IG9mIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gY29tYmluZVJlZHVjZXJzXCIpO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiYgbWlkZGxld2FyZSAmJiB0eXBlb2YgbWlkZGxld2FyZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMikgOiBcImBtaWRkbGV3YXJlYCBmaWVsZCBtdXN0IGJlIGEgY2FsbGJhY2tcIik7XG4gIH1cbiAgbGV0IGZpbmFsTWlkZGxld2FyZTtcbiAgaWYgKHR5cGVvZiBtaWRkbGV3YXJlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmaW5hbE1pZGRsZXdhcmUgPSBtaWRkbGV3YXJlKGdldERlZmF1bHRNaWRkbGV3YXJlKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmICFBcnJheS5pc0FycmF5KGZpbmFsTWlkZGxld2FyZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDMpIDogXCJ3aGVuIHVzaW5nIGEgbWlkZGxld2FyZSBidWlsZGVyIGZ1bmN0aW9uLCBhbiBhcnJheSBvZiBtaWRkbGV3YXJlIG11c3QgYmUgcmV0dXJuZWRcIik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZpbmFsTWlkZGxld2FyZSA9IGdldERlZmF1bHRNaWRkbGV3YXJlKCk7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiBmaW5hbE1pZGRsZXdhcmUuc29tZSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gIT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg0KSA6IFwiZWFjaCBtaWRkbGV3YXJlIHByb3ZpZGVkIHRvIGNvbmZpZ3VyZVN0b3JlIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgfVxuICBsZXQgZmluYWxDb21wb3NlID0gY29tcG9zZTI7XG4gIGlmIChkZXZUb29scykge1xuICAgIGZpbmFsQ29tcG9zZSA9IGNvbXBvc2VXaXRoRGV2VG9vbHMoe1xuICAgICAgLy8gRW5hYmxlIGNhcHR1cmUgb2Ygc3RhY2sgdHJhY2VzIGZvciBkaXNwYXRjaGVkIFJlZHV4IGFjdGlvbnNcbiAgICAgIHRyYWNlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIsXG4gICAgICAuLi50eXBlb2YgZGV2VG9vbHMgPT09IFwib2JqZWN0XCIgJiYgZGV2VG9vbHNcbiAgICB9KTtcbiAgfVxuICBjb25zdCBtaWRkbGV3YXJlRW5oYW5jZXIgPSBhcHBseU1pZGRsZXdhcmUoLi4uZmluYWxNaWRkbGV3YXJlKTtcbiAgY29uc3QgZ2V0RGVmYXVsdEVuaGFuY2VycyA9IGJ1aWxkR2V0RGVmYXVsdEVuaGFuY2VycyhtaWRkbGV3YXJlRW5oYW5jZXIpO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmIGVuaGFuY2VycyAmJiB0eXBlb2YgZW5oYW5jZXJzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg1KSA6IFwiYGVuaGFuY2Vyc2AgZmllbGQgbXVzdCBiZSBhIGNhbGxiYWNrXCIpO1xuICB9XG4gIGxldCBzdG9yZUVuaGFuY2VycyA9IHR5cGVvZiBlbmhhbmNlcnMgPT09IFwiZnVuY3Rpb25cIiA/IGVuaGFuY2VycyhnZXREZWZhdWx0RW5oYW5jZXJzKSA6IGdldERlZmF1bHRFbmhhbmNlcnMoKTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiAhQXJyYXkuaXNBcnJheShzdG9yZUVuaGFuY2VycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg2KSA6IFwiYGVuaGFuY2Vyc2AgY2FsbGJhY2sgbXVzdCByZXR1cm4gYW4gYXJyYXlcIik7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiBzdG9yZUVuaGFuY2Vycy5zb21lKChpdGVtKSA9PiB0eXBlb2YgaXRlbSAhPT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDcpIDogXCJlYWNoIGVuaGFuY2VyIHByb3ZpZGVkIHRvIGNvbmZpZ3VyZVN0b3JlIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmIGZpbmFsTWlkZGxld2FyZS5sZW5ndGggJiYgIXN0b3JlRW5oYW5jZXJzLmluY2x1ZGVzKG1pZGRsZXdhcmVFbmhhbmNlcikpIHtcbiAgICBjb25zb2xlLmVycm9yKFwibWlkZGxld2FyZXMgd2VyZSBwcm92aWRlZCwgYnV0IG1pZGRsZXdhcmUgZW5oYW5jZXIgd2FzIG5vdCBpbmNsdWRlZCBpbiBmaW5hbCBlbmhhbmNlcnMgLSBtYWtlIHN1cmUgdG8gY2FsbCBgZ2V0RGVmYXVsdEVuaGFuY2Vyc2BcIik7XG4gIH1cbiAgY29uc3QgY29tcG9zZWRFbmhhbmNlciA9IGZpbmFsQ29tcG9zZSguLi5zdG9yZUVuaGFuY2Vycyk7XG4gIHJldHVybiBjcmVhdGVTdG9yZShyb290UmVkdWNlciwgcHJlbG9hZGVkU3RhdGUsIGNvbXBvc2VkRW5oYW5jZXIpO1xufVxuXG4vLyBzcmMvY3JlYXRlUmVkdWNlci50c1xuaW1wb3J0IHsgcHJvZHVjZSBhcyBjcmVhdGVOZXh0U3RhdGUyLCBpc0RyYWZ0IGFzIGlzRHJhZnQyLCBpc0RyYWZ0YWJsZSBhcyBpc0RyYWZ0YWJsZTIgfSBmcm9tIFwiaW1tZXJcIjtcblxuLy8gc3JjL21hcEJ1aWxkZXJzLnRzXG5mdW5jdGlvbiBleGVjdXRlUmVkdWNlckJ1aWxkZXJDYWxsYmFjayhidWlsZGVyQ2FsbGJhY2spIHtcbiAgY29uc3QgYWN0aW9uc01hcCA9IHt9O1xuICBjb25zdCBhY3Rpb25NYXRjaGVycyA9IFtdO1xuICBsZXQgZGVmYXVsdENhc2VSZWR1Y2VyO1xuICBjb25zdCBidWlsZGVyID0ge1xuICAgIGFkZENhc2UodHlwZU9yQWN0aW9uQ3JlYXRvciwgcmVkdWNlcikge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAoYWN0aW9uTWF0Y2hlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDI2KSA6IFwiYGJ1aWxkZXIuYWRkQ2FzZWAgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIGBidWlsZGVyLmFkZE1hdGNoZXJgXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWZhdWx0Q2FzZVJlZHVjZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyNykgOiBcImBidWlsZGVyLmFkZENhc2VgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyBgYnVpbGRlci5hZGREZWZhdWx0Q2FzZWBcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdHlwZU9yQWN0aW9uQ3JlYXRvciA9PT0gXCJzdHJpbmdcIiA/IHR5cGVPckFjdGlvbkNyZWF0b3IgOiB0eXBlT3JBY3Rpb25DcmVhdG9yLnR5cGU7XG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMjgpIDogXCJgYnVpbGRlci5hZGRDYXNlYCBjYW5ub3QgYmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgYWN0aW9uIHR5cGVcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSBpbiBhY3Rpb25zTWFwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDI5KSA6IGBcXGBidWlsZGVyLmFkZENhc2VcXGAgY2Fubm90IGJlIGNhbGxlZCB3aXRoIHR3byByZWR1Y2VycyBmb3IgdGhlIHNhbWUgYWN0aW9uIHR5cGUgJyR7dHlwZX0nYCk7XG4gICAgICB9XG4gICAgICBhY3Rpb25zTWFwW3R5cGVdID0gcmVkdWNlcjtcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH0sXG4gICAgYWRkTWF0Y2hlcihtYXRjaGVyLCByZWR1Y2VyKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmIChkZWZhdWx0Q2FzZVJlZHVjZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgzMCkgOiBcImBidWlsZGVyLmFkZE1hdGNoZXJgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyBgYnVpbGRlci5hZGREZWZhdWx0Q2FzZWBcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjdGlvbk1hdGNoZXJzLnB1c2goe1xuICAgICAgICBtYXRjaGVyLFxuICAgICAgICByZWR1Y2VyXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH0sXG4gICAgYWRkRGVmYXVsdENhc2UocmVkdWNlcikge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAoZGVmYXVsdENhc2VSZWR1Y2VyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMzEpIDogXCJgYnVpbGRlci5hZGREZWZhdWx0Q2FzZWAgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2VcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHRDYXNlUmVkdWNlciA9IHJlZHVjZXI7XG4gICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICB9XG4gIH07XG4gIGJ1aWxkZXJDYWxsYmFjayhidWlsZGVyKTtcbiAgcmV0dXJuIFthY3Rpb25zTWFwLCBhY3Rpb25NYXRjaGVycywgZGVmYXVsdENhc2VSZWR1Y2VyXTtcbn1cblxuLy8gc3JjL2NyZWF0ZVJlZHVjZXIudHNcbmZ1bmN0aW9uIGlzU3RhdGVGdW5jdGlvbih4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVkdWNlcihpbml0aWFsU3RhdGUsIG1hcE9yQnVpbGRlckNhbGxiYWNrKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAodHlwZW9mIG1hcE9yQnVpbGRlckNhbGxiYWNrID09PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg4KSA6IFwiVGhlIG9iamVjdCBub3RhdGlvbiBmb3IgYGNyZWF0ZVJlZHVjZXJgIGhhcyBiZWVuIHJlbW92ZWQuIFBsZWFzZSB1c2UgdGhlICdidWlsZGVyIGNhbGxiYWNrJyBub3RhdGlvbiBpbnN0ZWFkOiBodHRwczovL3JlZHV4LXRvb2xraXQuanMub3JnL2FwaS9jcmVhdGVSZWR1Y2VyXCIpO1xuICAgIH1cbiAgfVxuICBsZXQgW2FjdGlvbnNNYXAsIGZpbmFsQWN0aW9uTWF0Y2hlcnMsIGZpbmFsRGVmYXVsdENhc2VSZWR1Y2VyXSA9IGV4ZWN1dGVSZWR1Y2VyQnVpbGRlckNhbGxiYWNrKG1hcE9yQnVpbGRlckNhbGxiYWNrKTtcbiAgbGV0IGdldEluaXRpYWxTdGF0ZTtcbiAgaWYgKGlzU3RhdGVGdW5jdGlvbihpbml0aWFsU3RhdGUpKSB7XG4gICAgZ2V0SW5pdGlhbFN0YXRlID0gKCkgPT4gZnJlZXplRHJhZnRhYmxlKGluaXRpYWxTdGF0ZSgpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmcm96ZW5Jbml0aWFsU3RhdGUgPSBmcmVlemVEcmFmdGFibGUoaW5pdGlhbFN0YXRlKTtcbiAgICBnZXRJbml0aWFsU3RhdGUgPSAoKSA9PiBmcm96ZW5Jbml0aWFsU3RhdGU7XG4gIH1cbiAgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSA9IGdldEluaXRpYWxTdGF0ZSgpLCBhY3Rpb24pIHtcbiAgICBsZXQgY2FzZVJlZHVjZXJzID0gW2FjdGlvbnNNYXBbYWN0aW9uLnR5cGVdLCAuLi5maW5hbEFjdGlvbk1hdGNoZXJzLmZpbHRlcigoe1xuICAgICAgbWF0Y2hlclxuICAgIH0pID0+IG1hdGNoZXIoYWN0aW9uKSkubWFwKCh7XG4gICAgICByZWR1Y2VyOiByZWR1Y2VyMlxuICAgIH0pID0+IHJlZHVjZXIyKV07XG4gICAgaWYgKGNhc2VSZWR1Y2Vycy5maWx0ZXIoKGNyKSA9PiAhIWNyKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGNhc2VSZWR1Y2VycyA9IFtmaW5hbERlZmF1bHRDYXNlUmVkdWNlcl07XG4gICAgfVxuICAgIHJldHVybiBjYXNlUmVkdWNlcnMucmVkdWNlKChwcmV2aW91c1N0YXRlLCBjYXNlUmVkdWNlcikgPT4ge1xuICAgICAgaWYgKGNhc2VSZWR1Y2VyKSB7XG4gICAgICAgIGlmIChpc0RyYWZ0MihwcmV2aW91c1N0YXRlKSkge1xuICAgICAgICAgIGNvbnN0IGRyYWZ0ID0gcHJldmlvdXNTdGF0ZTtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBjYXNlUmVkdWNlcihkcmFmdCwgYWN0aW9uKTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1N0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0RyYWZ0YWJsZTIocHJldmlvdXNTdGF0ZSkpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBjYXNlUmVkdWNlcihwcmV2aW91c1N0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzU3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIkEgY2FzZSByZWR1Y2VyIG9uIGEgbm9uLWRyYWZ0YWJsZSB2YWx1ZSBtdXN0IG5vdCByZXR1cm4gdW5kZWZpbmVkXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVOZXh0U3RhdGUyKHByZXZpb3VzU3RhdGUsIChkcmFmdCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhc2VSZWR1Y2VyKGRyYWZ0LCBhY3Rpb24pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJldmlvdXNTdGF0ZTtcbiAgICB9LCBzdGF0ZSk7XG4gIH1cbiAgcmVkdWNlci5nZXRJbml0aWFsU3RhdGUgPSBnZXRJbml0aWFsU3RhdGU7XG4gIHJldHVybiByZWR1Y2VyO1xufVxuXG4vLyBzcmMvbWF0Y2hlcnMudHNcbnZhciBtYXRjaGVzID0gKG1hdGNoZXIsIGFjdGlvbikgPT4ge1xuICBpZiAoaGFzTWF0Y2hGdW5jdGlvbihtYXRjaGVyKSkge1xuICAgIHJldHVybiBtYXRjaGVyLm1hdGNoKGFjdGlvbik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1hdGNoZXIoYWN0aW9uKTtcbiAgfVxufTtcbmZ1bmN0aW9uIGlzQW55T2YoLi4ubWF0Y2hlcnMpIHtcbiAgcmV0dXJuIChhY3Rpb24pID0+IHtcbiAgICByZXR1cm4gbWF0Y2hlcnMuc29tZSgobWF0Y2hlcikgPT4gbWF0Y2hlcyhtYXRjaGVyLCBhY3Rpb24pKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGlzQWxsT2YoLi4ubWF0Y2hlcnMpIHtcbiAgcmV0dXJuIChhY3Rpb24pID0+IHtcbiAgICByZXR1cm4gbWF0Y2hlcnMuZXZlcnkoKG1hdGNoZXIpID0+IG1hdGNoZXMobWF0Y2hlciwgYWN0aW9uKSk7XG4gIH07XG59XG5mdW5jdGlvbiBoYXNFeHBlY3RlZFJlcXVlc3RNZXRhZGF0YShhY3Rpb24sIHZhbGlkU3RhdHVzKSB7XG4gIGlmICghYWN0aW9uIHx8ICFhY3Rpb24ubWV0YSkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBoYXNWYWxpZFJlcXVlc3RJZCA9IHR5cGVvZiBhY3Rpb24ubWV0YS5yZXF1ZXN0SWQgPT09IFwic3RyaW5nXCI7XG4gIGNvbnN0IGhhc1ZhbGlkUmVxdWVzdFN0YXR1cyA9IHZhbGlkU3RhdHVzLmluZGV4T2YoYWN0aW9uLm1ldGEucmVxdWVzdFN0YXR1cykgPiAtMTtcbiAgcmV0dXJuIGhhc1ZhbGlkUmVxdWVzdElkICYmIGhhc1ZhbGlkUmVxdWVzdFN0YXR1cztcbn1cbmZ1bmN0aW9uIGlzQXN5bmNUaHVua0FycmF5KGEpIHtcbiAgcmV0dXJuIHR5cGVvZiBhWzBdID09PSBcImZ1bmN0aW9uXCIgJiYgXCJwZW5kaW5nXCIgaW4gYVswXSAmJiBcImZ1bGZpbGxlZFwiIGluIGFbMF0gJiYgXCJyZWplY3RlZFwiIGluIGFbMF07XG59XG5mdW5jdGlvbiBpc1BlbmRpbmcoLi4uYXN5bmNUaHVua3MpIHtcbiAgaWYgKGFzeW5jVGh1bmtzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoYWN0aW9uKSA9PiBoYXNFeHBlY3RlZFJlcXVlc3RNZXRhZGF0YShhY3Rpb24sIFtcInBlbmRpbmdcIl0pO1xuICB9XG4gIGlmICghaXNBc3luY1RodW5rQXJyYXkoYXN5bmNUaHVua3MpKSB7XG4gICAgcmV0dXJuIGlzUGVuZGluZygpKGFzeW5jVGh1bmtzWzBdKTtcbiAgfVxuICByZXR1cm4gaXNBbnlPZiguLi5hc3luY1RodW5rcy5tYXAoKGFzeW5jVGh1bmspID0+IGFzeW5jVGh1bmsucGVuZGluZykpO1xufVxuZnVuY3Rpb24gaXNSZWplY3RlZCguLi5hc3luY1RodW5rcykge1xuICBpZiAoYXN5bmNUaHVua3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChhY3Rpb24pID0+IGhhc0V4cGVjdGVkUmVxdWVzdE1ldGFkYXRhKGFjdGlvbiwgW1wicmVqZWN0ZWRcIl0pO1xuICB9XG4gIGlmICghaXNBc3luY1RodW5rQXJyYXkoYXN5bmNUaHVua3MpKSB7XG4gICAgcmV0dXJuIGlzUmVqZWN0ZWQoKShhc3luY1RodW5rc1swXSk7XG4gIH1cbiAgcmV0dXJuIGlzQW55T2YoLi4uYXN5bmNUaHVua3MubWFwKChhc3luY1RodW5rKSA9PiBhc3luY1RodW5rLnJlamVjdGVkKSk7XG59XG5mdW5jdGlvbiBpc1JlamVjdGVkV2l0aFZhbHVlKC4uLmFzeW5jVGh1bmtzKSB7XG4gIGNvbnN0IGhhc0ZsYWcgPSAoYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGFjdGlvbiAmJiBhY3Rpb24ubWV0YSAmJiBhY3Rpb24ubWV0YS5yZWplY3RlZFdpdGhWYWx1ZTtcbiAgfTtcbiAgaWYgKGFzeW5jVGh1bmtzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBpc0FsbE9mKGlzUmVqZWN0ZWQoLi4uYXN5bmNUaHVua3MpLCBoYXNGbGFnKTtcbiAgfVxuICBpZiAoIWlzQXN5bmNUaHVua0FycmF5KGFzeW5jVGh1bmtzKSkge1xuICAgIHJldHVybiBpc1JlamVjdGVkV2l0aFZhbHVlKCkoYXN5bmNUaHVua3NbMF0pO1xuICB9XG4gIHJldHVybiBpc0FsbE9mKGlzUmVqZWN0ZWQoLi4uYXN5bmNUaHVua3MpLCBoYXNGbGFnKTtcbn1cbmZ1bmN0aW9uIGlzRnVsZmlsbGVkKC4uLmFzeW5jVGh1bmtzKSB7XG4gIGlmIChhc3luY1RodW5rcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gKGFjdGlvbikgPT4gaGFzRXhwZWN0ZWRSZXF1ZXN0TWV0YWRhdGEoYWN0aW9uLCBbXCJmdWxmaWxsZWRcIl0pO1xuICB9XG4gIGlmICghaXNBc3luY1RodW5rQXJyYXkoYXN5bmNUaHVua3MpKSB7XG4gICAgcmV0dXJuIGlzRnVsZmlsbGVkKCkoYXN5bmNUaHVua3NbMF0pO1xuICB9XG4gIHJldHVybiBpc0FueU9mKC4uLmFzeW5jVGh1bmtzLm1hcCgoYXN5bmNUaHVuaykgPT4gYXN5bmNUaHVuay5mdWxmaWxsZWQpKTtcbn1cbmZ1bmN0aW9uIGlzQXN5bmNUaHVua0FjdGlvbiguLi5hc3luY1RodW5rcykge1xuICBpZiAoYXN5bmNUaHVua3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChhY3Rpb24pID0+IGhhc0V4cGVjdGVkUmVxdWVzdE1ldGFkYXRhKGFjdGlvbiwgW1wicGVuZGluZ1wiLCBcImZ1bGZpbGxlZFwiLCBcInJlamVjdGVkXCJdKTtcbiAgfVxuICBpZiAoIWlzQXN5bmNUaHVua0FycmF5KGFzeW5jVGh1bmtzKSkge1xuICAgIHJldHVybiBpc0FzeW5jVGh1bmtBY3Rpb24oKShhc3luY1RodW5rc1swXSk7XG4gIH1cbiAgcmV0dXJuIGlzQW55T2YoLi4uYXN5bmNUaHVua3MuZmxhdE1hcCgoYXN5bmNUaHVuaykgPT4gW2FzeW5jVGh1bmsucGVuZGluZywgYXN5bmNUaHVuay5yZWplY3RlZCwgYXN5bmNUaHVuay5mdWxmaWxsZWRdKSk7XG59XG5cbi8vIHNyYy9uYW5vaWQudHNcbnZhciB1cmxBbHBoYWJldCA9IFwiTW9kdWxlU3ltYmhhc093blByLTAxMjM0NTY3ODlBQkNERUZHSE5SVmZnY3RpVXZ6X0txWVRKa0x4cFpYSWpRV1wiO1xudmFyIG5hbm9pZCA9IChzaXplID0gMjEpID0+IHtcbiAgbGV0IGlkID0gXCJcIjtcbiAgbGV0IGkgPSBzaXplO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgaWQgKz0gdXJsQWxwaGFiZXRbTWF0aC5yYW5kb20oKSAqIDY0IHwgMF07XG4gIH1cbiAgcmV0dXJuIGlkO1xufTtcblxuLy8gc3JjL2NyZWF0ZUFzeW5jVGh1bmsudHNcbnZhciBjb21tb25Qcm9wZXJ0aWVzID0gW1wibmFtZVwiLCBcIm1lc3NhZ2VcIiwgXCJzdGFja1wiLCBcImNvZGVcIl07XG52YXIgUmVqZWN0V2l0aFZhbHVlID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihwYXlsb2FkLCBtZXRhKSB7XG4gICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICB0aGlzLm1ldGEgPSBtZXRhO1xuICB9XG4gIC8qXG4gIHR5cGUtb25seSBwcm9wZXJ0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIFJlamVjdFdpdGhWYWx1ZSBhbmQgRnVsZmlsbFdpdGhNZXRhXG4gIGRvZXMgbm90IGV4aXN0IGF0IHJ1bnRpbWVcbiAgKi9cbiAgX3R5cGU7XG59O1xudmFyIEZ1bGZpbGxXaXRoTWV0YSA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocGF5bG9hZCwgbWV0YSkge1xuICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgdGhpcy5tZXRhID0gbWV0YTtcbiAgfVxuICAvKlxuICB0eXBlLW9ubHkgcHJvcGVydHkgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBSZWplY3RXaXRoVmFsdWUgYW5kIEZ1bGZpbGxXaXRoTWV0YVxuICBkb2VzIG5vdCBleGlzdCBhdCBydW50aW1lXG4gICovXG4gIF90eXBlO1xufTtcbnZhciBtaW5pU2VyaWFsaXplRXJyb3IgPSAodmFsdWUpID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHNpbXBsZUVycm9yID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBjb21tb25Qcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlW3Byb3BlcnR5XSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzaW1wbGVFcnJvcltwcm9wZXJ0eV0gPSB2YWx1ZVtwcm9wZXJ0eV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzaW1wbGVFcnJvcjtcbiAgfVxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2U6IFN0cmluZyh2YWx1ZSlcbiAgfTtcbn07XG52YXIgY3JlYXRlQXN5bmNUaHVuayA9IC8qIEBfX1BVUkVfXyAqLyAoKCkgPT4ge1xuICBmdW5jdGlvbiBjcmVhdGVBc3luY1RodW5rMih0eXBlUHJlZml4LCBwYXlsb2FkQ3JlYXRvciwgb3B0aW9ucykge1xuICAgIGNvbnN0IGZ1bGZpbGxlZCA9IGNyZWF0ZUFjdGlvbih0eXBlUHJlZml4ICsgXCIvZnVsZmlsbGVkXCIsIChwYXlsb2FkLCByZXF1ZXN0SWQsIGFyZywgbWV0YSkgPT4gKHtcbiAgICAgIHBheWxvYWQsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIC4uLm1ldGEgfHwge30sXG4gICAgICAgIGFyZyxcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImZ1bGZpbGxlZFwiXG4gICAgICB9XG4gICAgfSkpO1xuICAgIGNvbnN0IHBlbmRpbmcgPSBjcmVhdGVBY3Rpb24odHlwZVByZWZpeCArIFwiL3BlbmRpbmdcIiwgKHJlcXVlc3RJZCwgYXJnLCBtZXRhKSA9PiAoe1xuICAgICAgcGF5bG9hZDogdm9pZCAwLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5tZXRhIHx8IHt9LFxuICAgICAgICBhcmcsXG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgcmVxdWVzdFN0YXR1czogXCJwZW5kaW5nXCJcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgY29uc3QgcmVqZWN0ZWQgPSBjcmVhdGVBY3Rpb24odHlwZVByZWZpeCArIFwiL3JlamVjdGVkXCIsIChlcnJvciwgcmVxdWVzdElkLCBhcmcsIHBheWxvYWQsIG1ldGEpID0+ICh7XG4gICAgICBwYXlsb2FkLFxuICAgICAgZXJyb3I6IChvcHRpb25zICYmIG9wdGlvbnMuc2VyaWFsaXplRXJyb3IgfHwgbWluaVNlcmlhbGl6ZUVycm9yKShlcnJvciB8fCBcIlJlamVjdGVkXCIpLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5tZXRhIHx8IHt9LFxuICAgICAgICBhcmcsXG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgcmVqZWN0ZWRXaXRoVmFsdWU6ICEhcGF5bG9hZCxcbiAgICAgICAgcmVxdWVzdFN0YXR1czogXCJyZWplY3RlZFwiLFxuICAgICAgICBhYm9ydGVkOiBlcnJvcj8ubmFtZSA9PT0gXCJBYm9ydEVycm9yXCIsXG4gICAgICAgIGNvbmRpdGlvbjogZXJyb3I/Lm5hbWUgPT09IFwiQ29uZGl0aW9uRXJyb3JcIlxuICAgICAgfVxuICAgIH0pKTtcbiAgICBmdW5jdGlvbiBhY3Rpb25DcmVhdG9yKGFyZykge1xuICAgICAgcmV0dXJuIChkaXNwYXRjaCwgZ2V0U3RhdGUsIGV4dHJhKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IG9wdGlvbnM/LmlkR2VuZXJhdG9yID8gb3B0aW9ucy5pZEdlbmVyYXRvcihhcmcpIDogbmFub2lkKCk7XG4gICAgICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgbGV0IGFib3J0SGFuZGxlcjtcbiAgICAgICAgbGV0IGFib3J0UmVhc29uO1xuICAgICAgICBmdW5jdGlvbiBhYm9ydChyZWFzb24pIHtcbiAgICAgICAgICBhYm9ydFJlYXNvbiA9IHJlYXNvbjtcbiAgICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9taXNlID0gYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgbGV0IGZpbmFsQWN0aW9uO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgY29uZGl0aW9uUmVzdWx0ID0gb3B0aW9ucz8uY29uZGl0aW9uPy4oYXJnLCB7XG4gICAgICAgICAgICAgIGdldFN0YXRlLFxuICAgICAgICAgICAgICBleHRyYVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXNUaGVuYWJsZShjb25kaXRpb25SZXN1bHQpKSB7XG4gICAgICAgICAgICAgIGNvbmRpdGlvblJlc3VsdCA9IGF3YWl0IGNvbmRpdGlvblJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25kaXRpb25SZXN1bHQgPT09IGZhbHNlIHx8IGFib3J0Q29udHJvbGxlci5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgICB0aHJvdyB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJDb25kaXRpb25FcnJvclwiLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQWJvcnRlZCBkdWUgdG8gY29uZGl0aW9uIGNhbGxiYWNrIHJldHVybmluZyBmYWxzZS5cIlxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWJvcnRlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIGFib3J0SGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICAgICAgbmFtZTogXCJBYm9ydEVycm9yXCIsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBhYm9ydFJlYXNvbiB8fCBcIkFib3J0ZWRcIlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBhYm9ydEhhbmRsZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXNwYXRjaChwZW5kaW5nKHJlcXVlc3RJZCwgYXJnLCBvcHRpb25zPy5nZXRQZW5kaW5nTWV0YT8uKHtcbiAgICAgICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgICAgICBhcmdcbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgZ2V0U3RhdGUsXG4gICAgICAgICAgICAgIGV4dHJhXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgZmluYWxBY3Rpb24gPSBhd2FpdCBQcm9taXNlLnJhY2UoW2Fib3J0ZWRQcm9taXNlLCBQcm9taXNlLnJlc29sdmUocGF5bG9hZENyZWF0b3IoYXJnLCB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoLFxuICAgICAgICAgICAgICBnZXRTdGF0ZSxcbiAgICAgICAgICAgICAgZXh0cmEsXG4gICAgICAgICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICAgICAgICBhYm9ydCxcbiAgICAgICAgICAgICAgcmVqZWN0V2l0aFZhbHVlOiAodmFsdWUsIG1ldGEpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlamVjdFdpdGhWYWx1ZSh2YWx1ZSwgbWV0YSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZ1bGZpbGxXaXRoVmFsdWU6ICh2YWx1ZSwgbWV0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnVsZmlsbFdpdGhNZXRhKHZhbHVlLCBtZXRhKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUmVqZWN0V2l0aFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBGdWxmaWxsV2l0aE1ldGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVsZmlsbGVkKHJlc3VsdC5wYXlsb2FkLCByZXF1ZXN0SWQsIGFyZywgcmVzdWx0Lm1ldGEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmdWxmaWxsZWQocmVzdWx0LCByZXF1ZXN0SWQsIGFyZyk7XG4gICAgICAgICAgICB9KV0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZmluYWxBY3Rpb24gPSBlcnIgaW5zdGFuY2VvZiBSZWplY3RXaXRoVmFsdWUgPyByZWplY3RlZChudWxsLCByZXF1ZXN0SWQsIGFyZywgZXJyLnBheWxvYWQsIGVyci5tZXRhKSA6IHJlamVjdGVkKGVyciwgcmVxdWVzdElkLCBhcmcpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpZiAoYWJvcnRIYW5kbGVyKSB7XG4gICAgICAgICAgICAgIGFib3J0Q29udHJvbGxlci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGFib3J0SGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHNraXBEaXNwYXRjaCA9IG9wdGlvbnMgJiYgIW9wdGlvbnMuZGlzcGF0Y2hDb25kaXRpb25SZWplY3Rpb24gJiYgcmVqZWN0ZWQubWF0Y2goZmluYWxBY3Rpb24pICYmIGZpbmFsQWN0aW9uLm1ldGEuY29uZGl0aW9uO1xuICAgICAgICAgIGlmICghc2tpcERpc3BhdGNoKSB7XG4gICAgICAgICAgICBkaXNwYXRjaChmaW5hbEFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5hbEFjdGlvbjtcbiAgICAgICAgfSgpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9taXNlLCB7XG4gICAgICAgICAgYWJvcnQsXG4gICAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAgIGFyZyxcbiAgICAgICAgICB1bndyYXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKHVud3JhcFJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGFjdGlvbkNyZWF0b3IsIHtcbiAgICAgIHBlbmRpbmcsXG4gICAgICByZWplY3RlZCxcbiAgICAgIGZ1bGZpbGxlZCxcbiAgICAgIHNldHRsZWQ6IGlzQW55T2YocmVqZWN0ZWQsIGZ1bGZpbGxlZCksXG4gICAgICB0eXBlUHJlZml4XG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlQXN5bmNUaHVuazIud2l0aFR5cGVzID0gKCkgPT4gY3JlYXRlQXN5bmNUaHVuazI7XG4gIHJldHVybiBjcmVhdGVBc3luY1RodW5rMjtcbn0pKCk7XG5mdW5jdGlvbiB1bndyYXBSZXN1bHQoYWN0aW9uKSB7XG4gIGlmIChhY3Rpb24ubWV0YSAmJiBhY3Rpb24ubWV0YS5yZWplY3RlZFdpdGhWYWx1ZSkge1xuICAgIHRocm93IGFjdGlvbi5wYXlsb2FkO1xuICB9XG4gIGlmIChhY3Rpb24uZXJyb3IpIHtcbiAgICB0aHJvdyBhY3Rpb24uZXJyb3I7XG4gIH1cbiAgcmV0dXJuIGFjdGlvbi5wYXlsb2FkO1xufVxuZnVuY3Rpb24gaXNUaGVuYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbi8vIHNyYy9jcmVhdGVTbGljZS50c1xudmFyIGFzeW5jVGh1bmtTeW1ib2wgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJ0ay1zbGljZS1jcmVhdGVhc3luY3RodW5rXCIpO1xudmFyIGFzeW5jVGh1bmtDcmVhdG9yID0ge1xuICBbYXN5bmNUaHVua1N5bWJvbF06IGNyZWF0ZUFzeW5jVGh1bmtcbn07XG52YXIgUmVkdWNlclR5cGUgPSAvKiBAX19QVVJFX18gKi8gKChSZWR1Y2VyVHlwZTIpID0+IHtcbiAgUmVkdWNlclR5cGUyW1wicmVkdWNlclwiXSA9IFwicmVkdWNlclwiO1xuICBSZWR1Y2VyVHlwZTJbXCJyZWR1Y2VyV2l0aFByZXBhcmVcIl0gPSBcInJlZHVjZXJXaXRoUHJlcGFyZVwiO1xuICBSZWR1Y2VyVHlwZTJbXCJhc3luY1RodW5rXCJdID0gXCJhc3luY1RodW5rXCI7XG4gIHJldHVybiBSZWR1Y2VyVHlwZTI7XG59KShSZWR1Y2VyVHlwZSB8fCB7fSk7XG5mdW5jdGlvbiBnZXRUeXBlKHNsaWNlLCBhY3Rpb25LZXkpIHtcbiAgcmV0dXJuIGAke3NsaWNlfS8ke2FjdGlvbktleX1gO1xufVxuZnVuY3Rpb24gYnVpbGRDcmVhdGVTbGljZSh7XG4gIGNyZWF0b3JzXG59ID0ge30pIHtcbiAgY29uc3QgY0FUID0gY3JlYXRvcnM/LmFzeW5jVGh1bms/Llthc3luY1RodW5rU3ltYm9sXTtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVNsaWNlMihvcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIHJlZHVjZXJQYXRoID0gbmFtZVxuICAgIH0gPSBvcHRpb25zO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTEpIDogXCJgbmFtZWAgaXMgYSByZXF1aXJlZCBvcHRpb24gZm9yIGNyZWF0ZVNsaWNlXCIpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgaWYgKG9wdGlvbnMuaW5pdGlhbFN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIllvdSBtdXN0IHByb3ZpZGUgYW4gYGluaXRpYWxTdGF0ZWAgdmFsdWUgdGhhdCBpcyBub3QgYHVuZGVmaW5lZGAuIFlvdSBtYXkgaGF2ZSBtaXNzcGVsbGVkIGBpbml0aWFsU3RhdGVgXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZWR1Y2VycyA9ICh0eXBlb2Ygb3B0aW9ucy5yZWR1Y2VycyA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9ucy5yZWR1Y2VycyhidWlsZFJlZHVjZXJDcmVhdG9ycygpKSA6IG9wdGlvbnMucmVkdWNlcnMpIHx8IHt9O1xuICAgIGNvbnN0IHJlZHVjZXJOYW1lcyA9IE9iamVjdC5rZXlzKHJlZHVjZXJzKTtcbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWU6IHt9LFxuICAgICAgc2xpY2VDYXNlUmVkdWNlcnNCeVR5cGU6IHt9LFxuICAgICAgYWN0aW9uQ3JlYXRvcnM6IHt9LFxuICAgICAgc2xpY2VNYXRjaGVyczogW11cbiAgICB9O1xuICAgIGNvbnN0IGNvbnRleHRNZXRob2RzID0ge1xuICAgICAgYWRkQ2FzZSh0eXBlT3JBY3Rpb25DcmVhdG9yLCByZWR1Y2VyMikge1xuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHR5cGVPckFjdGlvbkNyZWF0b3IgPT09IFwic3RyaW5nXCIgPyB0eXBlT3JBY3Rpb25DcmVhdG9yIDogdHlwZU9yQWN0aW9uQ3JlYXRvci50eXBlO1xuICAgICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMikgOiBcImBjb250ZXh0LmFkZENhc2VgIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBhbiBlbXB0eSBhY3Rpb24gdHlwZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSBpbiBjb250ZXh0LnNsaWNlQ2FzZVJlZHVjZXJzQnlUeXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTMpIDogXCJgY29udGV4dC5hZGRDYXNlYCBjYW5ub3QgYmUgY2FsbGVkIHdpdGggdHdvIHJlZHVjZXJzIGZvciB0aGUgc2FtZSBhY3Rpb24gdHlwZTogXCIgKyB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LnNsaWNlQ2FzZVJlZHVjZXJzQnlUeXBlW3R5cGVdID0gcmVkdWNlcjI7XG4gICAgICAgIHJldHVybiBjb250ZXh0TWV0aG9kcztcbiAgICAgIH0sXG4gICAgICBhZGRNYXRjaGVyKG1hdGNoZXIsIHJlZHVjZXIyKSB7XG4gICAgICAgIGNvbnRleHQuc2xpY2VNYXRjaGVycy5wdXNoKHtcbiAgICAgICAgICBtYXRjaGVyLFxuICAgICAgICAgIHJlZHVjZXI6IHJlZHVjZXIyXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29udGV4dE1ldGhvZHM7XG4gICAgICB9LFxuICAgICAgZXhwb3NlQWN0aW9uKG5hbWUyLCBhY3Rpb25DcmVhdG9yKSB7XG4gICAgICAgIGNvbnRleHQuYWN0aW9uQ3JlYXRvcnNbbmFtZTJdID0gYWN0aW9uQ3JlYXRvcjtcbiAgICAgICAgcmV0dXJuIGNvbnRleHRNZXRob2RzO1xuICAgICAgfSxcbiAgICAgIGV4cG9zZUNhc2VSZWR1Y2VyKG5hbWUyLCByZWR1Y2VyMikge1xuICAgICAgICBjb250ZXh0LnNsaWNlQ2FzZVJlZHVjZXJzQnlOYW1lW25hbWUyXSA9IHJlZHVjZXIyO1xuICAgICAgICByZXR1cm4gY29udGV4dE1ldGhvZHM7XG4gICAgICB9XG4gICAgfTtcbiAgICByZWR1Y2VyTmFtZXMuZm9yRWFjaCgocmVkdWNlck5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHJlZHVjZXJEZWZpbml0aW9uID0gcmVkdWNlcnNbcmVkdWNlck5hbWVdO1xuICAgICAgY29uc3QgcmVkdWNlckRldGFpbHMgPSB7XG4gICAgICAgIHJlZHVjZXJOYW1lLFxuICAgICAgICB0eXBlOiBnZXRUeXBlKG5hbWUsIHJlZHVjZXJOYW1lKSxcbiAgICAgICAgY3JlYXRlTm90YXRpb246IHR5cGVvZiBvcHRpb25zLnJlZHVjZXJzID09PSBcImZ1bmN0aW9uXCJcbiAgICAgIH07XG4gICAgICBpZiAoaXNBc3luY1RodW5rU2xpY2VSZWR1Y2VyRGVmaW5pdGlvbihyZWR1Y2VyRGVmaW5pdGlvbikpIHtcbiAgICAgICAgaGFuZGxlVGh1bmtDYXNlUmVkdWNlckRlZmluaXRpb24ocmVkdWNlckRldGFpbHMsIHJlZHVjZXJEZWZpbml0aW9uLCBjb250ZXh0TWV0aG9kcywgY0FUKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZU5vcm1hbFJlZHVjZXJEZWZpbml0aW9uKHJlZHVjZXJEZXRhaWxzLCByZWR1Y2VyRGVmaW5pdGlvbiwgY29udGV4dE1ldGhvZHMpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGJ1aWxkUmVkdWNlcigpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4dHJhUmVkdWNlcnMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNCkgOiBcIlRoZSBvYmplY3Qgbm90YXRpb24gZm9yIGBjcmVhdGVTbGljZS5leHRyYVJlZHVjZXJzYCBoYXMgYmVlbiByZW1vdmVkLiBQbGVhc2UgdXNlIHRoZSAnYnVpbGRlciBjYWxsYmFjaycgbm90YXRpb24gaW5zdGVhZDogaHR0cHM6Ly9yZWR1eC10b29sa2l0LmpzLm9yZy9hcGkvY3JlYXRlU2xpY2VcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IFtleHRyYVJlZHVjZXJzID0ge30sIGFjdGlvbk1hdGNoZXJzID0gW10sIGRlZmF1bHRDYXNlUmVkdWNlciA9IHZvaWQgMF0gPSB0eXBlb2Ygb3B0aW9ucy5leHRyYVJlZHVjZXJzID09PSBcImZ1bmN0aW9uXCIgPyBleGVjdXRlUmVkdWNlckJ1aWxkZXJDYWxsYmFjayhvcHRpb25zLmV4dHJhUmVkdWNlcnMpIDogW29wdGlvbnMuZXh0cmFSZWR1Y2Vyc107XG4gICAgICBjb25zdCBmaW5hbENhc2VSZWR1Y2VycyA9IHtcbiAgICAgICAgLi4uZXh0cmFSZWR1Y2VycyxcbiAgICAgICAgLi4uY29udGV4dC5zbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZVxuICAgICAgfTtcbiAgICAgIHJldHVybiBjcmVhdGVSZWR1Y2VyKG9wdGlvbnMuaW5pdGlhbFN0YXRlLCAoYnVpbGRlcikgPT4ge1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gZmluYWxDYXNlUmVkdWNlcnMpIHtcbiAgICAgICAgICBidWlsZGVyLmFkZENhc2Uoa2V5LCBmaW5hbENhc2VSZWR1Y2Vyc1trZXldKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBzTSBvZiBjb250ZXh0LnNsaWNlTWF0Y2hlcnMpIHtcbiAgICAgICAgICBidWlsZGVyLmFkZE1hdGNoZXIoc00ubWF0Y2hlciwgc00ucmVkdWNlcik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgbSBvZiBhY3Rpb25NYXRjaGVycykge1xuICAgICAgICAgIGJ1aWxkZXIuYWRkTWF0Y2hlcihtLm1hdGNoZXIsIG0ucmVkdWNlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmF1bHRDYXNlUmVkdWNlcikge1xuICAgICAgICAgIGJ1aWxkZXIuYWRkRGVmYXVsdENhc2UoZGVmYXVsdENhc2VSZWR1Y2VyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdFNlbGYgPSAoc3RhdGUpID0+IHN0YXRlO1xuICAgIGNvbnN0IGluamVjdGVkU2VsZWN0b3JDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgbGV0IF9yZWR1Y2VyO1xuICAgIGZ1bmN0aW9uIHJlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgICAgaWYgKCFfcmVkdWNlcikgX3JlZHVjZXIgPSBidWlsZFJlZHVjZXIoKTtcbiAgICAgIHJldHVybiBfcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgaWYgKCFfcmVkdWNlcikgX3JlZHVjZXIgPSBidWlsZFJlZHVjZXIoKTtcbiAgICAgIHJldHVybiBfcmVkdWNlci5nZXRJbml0aWFsU3RhdGUoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZVNlbGVjdG9yUHJvcHMocmVkdWNlclBhdGgyLCBpbmplY3RlZCA9IGZhbHNlKSB7XG4gICAgICBmdW5jdGlvbiBzZWxlY3RTbGljZShzdGF0ZSkge1xuICAgICAgICBsZXQgc2xpY2VTdGF0ZSA9IHN0YXRlW3JlZHVjZXJQYXRoMl07XG4gICAgICAgIGlmICh0eXBlb2Ygc2xpY2VTdGF0ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGlmIChpbmplY3RlZCkge1xuICAgICAgICAgICAgc2xpY2VTdGF0ZSA9IGdldEluaXRpYWxTdGF0ZSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNSkgOiBcInNlbGVjdFNsaWNlIHJldHVybmVkIHVuZGVmaW5lZCBmb3IgYW4gdW5pbmplY3RlZCBzbGljZSByZWR1Y2VyXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2xpY2VTdGF0ZTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGdldFNlbGVjdG9ycyhzZWxlY3RTdGF0ZSA9IHNlbGVjdFNlbGYpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0b3JDYWNoZSA9IGdldE9ySW5zZXJ0Q29tcHV0ZWQoaW5qZWN0ZWRTZWxlY3RvckNhY2hlLCBpbmplY3RlZCwgKCkgPT4gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCkpO1xuICAgICAgICByZXR1cm4gZ2V0T3JJbnNlcnRDb21wdXRlZChzZWxlY3RvckNhY2hlLCBzZWxlY3RTdGF0ZSwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1hcCA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgW25hbWUyLCBzZWxlY3Rvcl0gb2YgT2JqZWN0LmVudHJpZXMob3B0aW9ucy5zZWxlY3RvcnMgPz8ge30pKSB7XG4gICAgICAgICAgICBtYXBbbmFtZTJdID0gd3JhcFNlbGVjdG9yKHNlbGVjdG9yLCBzZWxlY3RTdGF0ZSwgZ2V0SW5pdGlhbFN0YXRlLCBpbmplY3RlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkdWNlclBhdGg6IHJlZHVjZXJQYXRoMixcbiAgICAgICAgZ2V0U2VsZWN0b3JzLFxuICAgICAgICBnZXQgc2VsZWN0b3JzKCkge1xuICAgICAgICAgIHJldHVybiBnZXRTZWxlY3RvcnMoc2VsZWN0U2xpY2UpO1xuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RTbGljZVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgc2xpY2UgPSB7XG4gICAgICBuYW1lLFxuICAgICAgcmVkdWNlcixcbiAgICAgIGFjdGlvbnM6IGNvbnRleHQuYWN0aW9uQ3JlYXRvcnMsXG4gICAgICBjYXNlUmVkdWNlcnM6IGNvbnRleHQuc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWUsXG4gICAgICBnZXRJbml0aWFsU3RhdGUsXG4gICAgICAuLi5tYWtlU2VsZWN0b3JQcm9wcyhyZWR1Y2VyUGF0aCksXG4gICAgICBpbmplY3RJbnRvKGluamVjdGFibGUsIHtcbiAgICAgICAgcmVkdWNlclBhdGg6IHBhdGhPcHQsXG4gICAgICAgIC4uLmNvbmZpZ1xuICAgICAgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IG5ld1JlZHVjZXJQYXRoID0gcGF0aE9wdCA/PyByZWR1Y2VyUGF0aDtcbiAgICAgICAgaW5qZWN0YWJsZS5pbmplY3Qoe1xuICAgICAgICAgIHJlZHVjZXJQYXRoOiBuZXdSZWR1Y2VyUGF0aCxcbiAgICAgICAgICByZWR1Y2VyXG4gICAgICAgIH0sIGNvbmZpZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2xpY2UsXG4gICAgICAgICAgLi4ubWFrZVNlbGVjdG9yUHJvcHMobmV3UmVkdWNlclBhdGgsIHRydWUpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gc2xpY2U7XG4gIH07XG59XG5mdW5jdGlvbiB3cmFwU2VsZWN0b3Ioc2VsZWN0b3IsIHNlbGVjdFN0YXRlLCBnZXRJbml0aWFsU3RhdGUsIGluamVjdGVkKSB7XG4gIGZ1bmN0aW9uIHdyYXBwZXIocm9vdFN0YXRlLCAuLi5hcmdzKSB7XG4gICAgbGV0IHNsaWNlU3RhdGUgPSBzZWxlY3RTdGF0ZShyb290U3RhdGUpO1xuICAgIGlmICh0eXBlb2Ygc2xpY2VTdGF0ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKGluamVjdGVkKSB7XG4gICAgICAgIHNsaWNlU3RhdGUgPSBnZXRJbml0aWFsU3RhdGUoKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE2KSA6IFwic2VsZWN0U3RhdGUgcmV0dXJuZWQgdW5kZWZpbmVkIGZvciBhbiB1bmluamVjdGVkIHNsaWNlIHJlZHVjZXJcIik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RvcihzbGljZVN0YXRlLCAuLi5hcmdzKTtcbiAgfVxuICB3cmFwcGVyLnVud3JhcHBlZCA9IHNlbGVjdG9yO1xuICByZXR1cm4gd3JhcHBlcjtcbn1cbnZhciBjcmVhdGVTbGljZSA9IC8qIEBfX1BVUkVfXyAqLyBidWlsZENyZWF0ZVNsaWNlKCk7XG5mdW5jdGlvbiBidWlsZFJlZHVjZXJDcmVhdG9ycygpIHtcbiAgZnVuY3Rpb24gYXN5bmNUaHVuayhwYXlsb2FkQ3JlYXRvciwgY29uZmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9yZWR1Y2VyRGVmaW5pdGlvblR5cGU6IFwiYXN5bmNUaHVua1wiIC8qIGFzeW5jVGh1bmsgKi8sXG4gICAgICBwYXlsb2FkQ3JlYXRvcixcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cbiAgYXN5bmNUaHVuay53aXRoVHlwZXMgPSAoKSA9PiBhc3luY1RodW5rO1xuICByZXR1cm4ge1xuICAgIHJlZHVjZXIoY2FzZVJlZHVjZXIpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgLy8gaGFjayBzbyB0aGUgd3JhcHBpbmcgZnVuY3Rpb24gaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIG9yaWdpbmFsXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzbyB0aGUgYHJlZHVjZXJEZWZpbml0aW9uVHlwZWAgaXMgbm90IGFzc2lnbmVkIHRvIHRoZSBvcmlnaW5hbFxuICAgICAgICBbY2FzZVJlZHVjZXIubmFtZV0oLi4uYXJncykge1xuICAgICAgICAgIHJldHVybiBjYXNlUmVkdWNlciguLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgfVtjYXNlUmVkdWNlci5uYW1lXSwge1xuICAgICAgICBfcmVkdWNlckRlZmluaXRpb25UeXBlOiBcInJlZHVjZXJcIiAvKiByZWR1Y2VyICovXG4gICAgICB9KTtcbiAgICB9LFxuICAgIHByZXBhcmVkUmVkdWNlcihwcmVwYXJlLCByZWR1Y2VyKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBfcmVkdWNlckRlZmluaXRpb25UeXBlOiBcInJlZHVjZXJXaXRoUHJlcGFyZVwiIC8qIHJlZHVjZXJXaXRoUHJlcGFyZSAqLyxcbiAgICAgICAgcHJlcGFyZSxcbiAgICAgICAgcmVkdWNlclxuICAgICAgfTtcbiAgICB9LFxuICAgIGFzeW5jVGh1bmtcbiAgfTtcbn1cbmZ1bmN0aW9uIGhhbmRsZU5vcm1hbFJlZHVjZXJEZWZpbml0aW9uKHtcbiAgdHlwZSxcbiAgcmVkdWNlck5hbWUsXG4gIGNyZWF0ZU5vdGF0aW9uXG59LCBtYXliZVJlZHVjZXJXaXRoUHJlcGFyZSwgY29udGV4dCkge1xuICBsZXQgY2FzZVJlZHVjZXI7XG4gIGxldCBwcmVwYXJlQ2FsbGJhY2s7XG4gIGlmIChcInJlZHVjZXJcIiBpbiBtYXliZVJlZHVjZXJXaXRoUHJlcGFyZSkge1xuICAgIGlmIChjcmVhdGVOb3RhdGlvbiAmJiAhaXNDYXNlUmVkdWNlcldpdGhQcmVwYXJlRGVmaW5pdGlvbihtYXliZVJlZHVjZXJXaXRoUHJlcGFyZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE3KSA6IFwiUGxlYXNlIHVzZSB0aGUgYGNyZWF0ZS5wcmVwYXJlZFJlZHVjZXJgIG5vdGF0aW9uIGZvciBwcmVwYXJlZCBhY3Rpb24gY3JlYXRvcnMgd2l0aCB0aGUgYGNyZWF0ZWAgbm90YXRpb24uXCIpO1xuICAgIH1cbiAgICBjYXNlUmVkdWNlciA9IG1heWJlUmVkdWNlcldpdGhQcmVwYXJlLnJlZHVjZXI7XG4gICAgcHJlcGFyZUNhbGxiYWNrID0gbWF5YmVSZWR1Y2VyV2l0aFByZXBhcmUucHJlcGFyZTtcbiAgfSBlbHNlIHtcbiAgICBjYXNlUmVkdWNlciA9IG1heWJlUmVkdWNlcldpdGhQcmVwYXJlO1xuICB9XG4gIGNvbnRleHQuYWRkQ2FzZSh0eXBlLCBjYXNlUmVkdWNlcikuZXhwb3NlQ2FzZVJlZHVjZXIocmVkdWNlck5hbWUsIGNhc2VSZWR1Y2VyKS5leHBvc2VBY3Rpb24ocmVkdWNlck5hbWUsIHByZXBhcmVDYWxsYmFjayA/IGNyZWF0ZUFjdGlvbih0eXBlLCBwcmVwYXJlQ2FsbGJhY2spIDogY3JlYXRlQWN0aW9uKHR5cGUpKTtcbn1cbmZ1bmN0aW9uIGlzQXN5bmNUaHVua1NsaWNlUmVkdWNlckRlZmluaXRpb24ocmVkdWNlckRlZmluaXRpb24pIHtcbiAgcmV0dXJuIHJlZHVjZXJEZWZpbml0aW9uLl9yZWR1Y2VyRGVmaW5pdGlvblR5cGUgPT09IFwiYXN5bmNUaHVua1wiIC8qIGFzeW5jVGh1bmsgKi87XG59XG5mdW5jdGlvbiBpc0Nhc2VSZWR1Y2VyV2l0aFByZXBhcmVEZWZpbml0aW9uKHJlZHVjZXJEZWZpbml0aW9uKSB7XG4gIHJldHVybiByZWR1Y2VyRGVmaW5pdGlvbi5fcmVkdWNlckRlZmluaXRpb25UeXBlID09PSBcInJlZHVjZXJXaXRoUHJlcGFyZVwiIC8qIHJlZHVjZXJXaXRoUHJlcGFyZSAqLztcbn1cbmZ1bmN0aW9uIGhhbmRsZVRodW5rQ2FzZVJlZHVjZXJEZWZpbml0aW9uKHtcbiAgdHlwZSxcbiAgcmVkdWNlck5hbWVcbn0sIHJlZHVjZXJEZWZpbml0aW9uLCBjb250ZXh0LCBjQVQpIHtcbiAgaWYgKCFjQVQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxOCkgOiBcIkNhbm5vdCB1c2UgYGNyZWF0ZS5hc3luY1RodW5rYCBpbiB0aGUgYnVpbHQtaW4gYGNyZWF0ZVNsaWNlYC4gVXNlIGBidWlsZENyZWF0ZVNsaWNlKHsgY3JlYXRvcnM6IHsgYXN5bmNUaHVuazogYXN5bmNUaHVua0NyZWF0b3IgfSB9KWAgdG8gY3JlYXRlIGEgY3VzdG9taXNlZCB2ZXJzaW9uIG9mIGBjcmVhdGVTbGljZWAuXCIpO1xuICB9XG4gIGNvbnN0IHtcbiAgICBwYXlsb2FkQ3JlYXRvcixcbiAgICBmdWxmaWxsZWQsXG4gICAgcGVuZGluZyxcbiAgICByZWplY3RlZCxcbiAgICBzZXR0bGVkLFxuICAgIG9wdGlvbnNcbiAgfSA9IHJlZHVjZXJEZWZpbml0aW9uO1xuICBjb25zdCB0aHVuayA9IGNBVCh0eXBlLCBwYXlsb2FkQ3JlYXRvciwgb3B0aW9ucyk7XG4gIGNvbnRleHQuZXhwb3NlQWN0aW9uKHJlZHVjZXJOYW1lLCB0aHVuayk7XG4gIGlmIChmdWxmaWxsZWQpIHtcbiAgICBjb250ZXh0LmFkZENhc2UodGh1bmsuZnVsZmlsbGVkLCBmdWxmaWxsZWQpO1xuICB9XG4gIGlmIChwZW5kaW5nKSB7XG4gICAgY29udGV4dC5hZGRDYXNlKHRodW5rLnBlbmRpbmcsIHBlbmRpbmcpO1xuICB9XG4gIGlmIChyZWplY3RlZCkge1xuICAgIGNvbnRleHQuYWRkQ2FzZSh0aHVuay5yZWplY3RlZCwgcmVqZWN0ZWQpO1xuICB9XG4gIGlmIChzZXR0bGVkKSB7XG4gICAgY29udGV4dC5hZGRNYXRjaGVyKHRodW5rLnNldHRsZWQsIHNldHRsZWQpO1xuICB9XG4gIGNvbnRleHQuZXhwb3NlQ2FzZVJlZHVjZXIocmVkdWNlck5hbWUsIHtcbiAgICBmdWxmaWxsZWQ6IGZ1bGZpbGxlZCB8fCBub29wLFxuICAgIHBlbmRpbmc6IHBlbmRpbmcgfHwgbm9vcCxcbiAgICByZWplY3RlZDogcmVqZWN0ZWQgfHwgbm9vcCxcbiAgICBzZXR0bGVkOiBzZXR0bGVkIHx8IG5vb3BcbiAgfSk7XG59XG5mdW5jdGlvbiBub29wKCkge1xufVxuXG4vLyBzcmMvZW50aXRpZXMvZW50aXR5X3N0YXRlLnRzXG5mdW5jdGlvbiBnZXRJbml0aWFsRW50aXR5U3RhdGUoKSB7XG4gIHJldHVybiB7XG4gICAgaWRzOiBbXSxcbiAgICBlbnRpdGllczoge31cbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUluaXRpYWxTdGF0ZUZhY3Rvcnkoc3RhdGVBZGFwdGVyKSB7XG4gIGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZShhZGRpdGlvbmFsU3RhdGUgPSB7fSwgZW50aXRpZXMpIHtcbiAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oZ2V0SW5pdGlhbEVudGl0eVN0YXRlKCksIGFkZGl0aW9uYWxTdGF0ZSk7XG4gICAgcmV0dXJuIGVudGl0aWVzID8gc3RhdGVBZGFwdGVyLnNldEFsbChzdGF0ZSwgZW50aXRpZXMpIDogc3RhdGU7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXRJbml0aWFsU3RhdGVcbiAgfTtcbn1cblxuLy8gc3JjL2VudGl0aWVzL3N0YXRlX3NlbGVjdG9ycy50c1xuZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3JzRmFjdG9yeSgpIHtcbiAgZnVuY3Rpb24gZ2V0U2VsZWN0b3JzKHNlbGVjdFN0YXRlLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7XG4gICAgICBjcmVhdGVTZWxlY3RvcjogY3JlYXRlU2VsZWN0b3IyID0gY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3JcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBzZWxlY3RJZHMgPSAoc3RhdGUpID0+IHN0YXRlLmlkcztcbiAgICBjb25zdCBzZWxlY3RFbnRpdGllcyA9IChzdGF0ZSkgPT4gc3RhdGUuZW50aXRpZXM7XG4gICAgY29uc3Qgc2VsZWN0QWxsID0gY3JlYXRlU2VsZWN0b3IyKHNlbGVjdElkcywgc2VsZWN0RW50aXRpZXMsIChpZHMsIGVudGl0aWVzKSA9PiBpZHMubWFwKChpZCkgPT4gZW50aXRpZXNbaWRdKSk7XG4gICAgY29uc3Qgc2VsZWN0SWQgPSAoXywgaWQpID0+IGlkO1xuICAgIGNvbnN0IHNlbGVjdEJ5SWQgPSAoZW50aXRpZXMsIGlkKSA9PiBlbnRpdGllc1tpZF07XG4gICAgY29uc3Qgc2VsZWN0VG90YWwgPSBjcmVhdGVTZWxlY3RvcjIoc2VsZWN0SWRzLCAoaWRzKSA9PiBpZHMubGVuZ3RoKTtcbiAgICBpZiAoIXNlbGVjdFN0YXRlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWxlY3RJZHMsXG4gICAgICAgIHNlbGVjdEVudGl0aWVzLFxuICAgICAgICBzZWxlY3RBbGwsXG4gICAgICAgIHNlbGVjdFRvdGFsLFxuICAgICAgICBzZWxlY3RCeUlkOiBjcmVhdGVTZWxlY3RvcjIoc2VsZWN0RW50aXRpZXMsIHNlbGVjdElkLCBzZWxlY3RCeUlkKVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0R2xvYmFsaXplZEVudGl0aWVzID0gY3JlYXRlU2VsZWN0b3IyKHNlbGVjdFN0YXRlLCBzZWxlY3RFbnRpdGllcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdElkczogY3JlYXRlU2VsZWN0b3IyKHNlbGVjdFN0YXRlLCBzZWxlY3RJZHMpLFxuICAgICAgc2VsZWN0RW50aXRpZXM6IHNlbGVjdEdsb2JhbGl6ZWRFbnRpdGllcyxcbiAgICAgIHNlbGVjdEFsbDogY3JlYXRlU2VsZWN0b3IyKHNlbGVjdFN0YXRlLCBzZWxlY3RBbGwpLFxuICAgICAgc2VsZWN0VG90YWw6IGNyZWF0ZVNlbGVjdG9yMihzZWxlY3RTdGF0ZSwgc2VsZWN0VG90YWwpLFxuICAgICAgc2VsZWN0QnlJZDogY3JlYXRlU2VsZWN0b3IyKHNlbGVjdEdsb2JhbGl6ZWRFbnRpdGllcywgc2VsZWN0SWQsIHNlbGVjdEJ5SWQpXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGdldFNlbGVjdG9yc1xuICB9O1xufVxuXG4vLyBzcmMvZW50aXRpZXMvc3RhdGVfYWRhcHRlci50c1xuaW1wb3J0IHsgcHJvZHVjZSBhcyBjcmVhdGVOZXh0U3RhdGUzLCBpc0RyYWZ0IGFzIGlzRHJhZnQzIH0gZnJvbSBcImltbWVyXCI7XG52YXIgaXNEcmFmdFR5cGVkID0gaXNEcmFmdDM7XG5mdW5jdGlvbiBjcmVhdGVTaW5nbGVBcmd1bWVudFN0YXRlT3BlcmF0b3IobXV0YXRvcikge1xuICBjb25zdCBvcGVyYXRvciA9IGNyZWF0ZVN0YXRlT3BlcmF0b3IoKF8sIHN0YXRlKSA9PiBtdXRhdG9yKHN0YXRlKSk7XG4gIHJldHVybiBmdW5jdGlvbiBvcGVyYXRpb24oc3RhdGUpIHtcbiAgICByZXR1cm4gb3BlcmF0b3Ioc3RhdGUsIHZvaWQgMCk7XG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTdGF0ZU9wZXJhdG9yKG11dGF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIG9wZXJhdGlvbihzdGF0ZSwgYXJnKSB7XG4gICAgZnVuY3Rpb24gaXNQYXlsb2FkQWN0aW9uQXJndW1lbnQoYXJnMikge1xuICAgICAgcmV0dXJuIGlzRlNBKGFyZzIpO1xuICAgIH1cbiAgICBjb25zdCBydW5NdXRhdG9yID0gKGRyYWZ0KSA9PiB7XG4gICAgICBpZiAoaXNQYXlsb2FkQWN0aW9uQXJndW1lbnQoYXJnKSkge1xuICAgICAgICBtdXRhdG9yKGFyZy5wYXlsb2FkLCBkcmFmdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtdXRhdG9yKGFyZywgZHJhZnQpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKGlzRHJhZnRUeXBlZChzdGF0ZSkpIHtcbiAgICAgIHJ1bk11dGF0b3Ioc3RhdGUpO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlTmV4dFN0YXRlMyhzdGF0ZSwgcnVuTXV0YXRvcik7XG4gIH07XG59XG5cbi8vIHNyYy9lbnRpdGllcy91dGlscy50c1xuaW1wb3J0IHsgY3VycmVudCBhcyBjdXJyZW50MiwgaXNEcmFmdCBhcyBpc0RyYWZ0NCB9IGZyb20gXCJpbW1lclwiO1xuZnVuY3Rpb24gc2VsZWN0SWRWYWx1ZShlbnRpdHksIHNlbGVjdElkKSB7XG4gIGNvbnN0IGtleSA9IHNlbGVjdElkKGVudGl0eSk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiYga2V5ID09PSB2b2lkIDApIHtcbiAgICBjb25zb2xlLndhcm4oXCJUaGUgZW50aXR5IHBhc3NlZCB0byB0aGUgYHNlbGVjdElkYCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCB1bmRlZmluZWQuXCIsIFwiWW91IHNob3VsZCBwcm9iYWJseSBwcm92aWRlIHlvdXIgb3duIGBzZWxlY3RJZGAgaW1wbGVtZW50YXRpb24uXCIsIFwiVGhlIGVudGl0eSB0aGF0IHdhcyBwYXNzZWQ6XCIsIGVudGl0eSwgXCJUaGUgYHNlbGVjdElkYCBpbXBsZW1lbnRhdGlvbjpcIiwgc2VsZWN0SWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgcmV0dXJuIGtleTtcbn1cbmZ1bmN0aW9uIGVuc3VyZUVudGl0aWVzQXJyYXkoZW50aXRpZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGVudGl0aWVzKSkge1xuICAgIGVudGl0aWVzID0gT2JqZWN0LnZhbHVlcyhlbnRpdGllcyk7XG4gIH1cbiAgcmV0dXJuIGVudGl0aWVzO1xufVxuZnVuY3Rpb24gZ2V0Q3VycmVudCh2YWx1ZSkge1xuICByZXR1cm4gaXNEcmFmdDQodmFsdWUpID8gY3VycmVudDIodmFsdWUpIDogdmFsdWU7XG59XG5mdW5jdGlvbiBzcGxpdEFkZGVkVXBkYXRlZEVudGl0aWVzKG5ld0VudGl0aWVzLCBzZWxlY3RJZCwgc3RhdGUpIHtcbiAgbmV3RW50aXRpZXMgPSBlbnN1cmVFbnRpdGllc0FycmF5KG5ld0VudGl0aWVzKTtcbiAgY29uc3QgZXhpc3RpbmdJZHNBcnJheSA9IGdldEN1cnJlbnQoc3RhdGUuaWRzKTtcbiAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KGV4aXN0aW5nSWRzQXJyYXkpO1xuICBjb25zdCBhZGRlZCA9IFtdO1xuICBjb25zdCB1cGRhdGVkID0gW107XG4gIGZvciAoY29uc3QgZW50aXR5IG9mIG5ld0VudGl0aWVzKSB7XG4gICAgY29uc3QgaWQgPSBzZWxlY3RJZFZhbHVlKGVudGl0eSwgc2VsZWN0SWQpO1xuICAgIGlmIChleGlzdGluZ0lkcy5oYXMoaWQpKSB7XG4gICAgICB1cGRhdGVkLnB1c2goe1xuICAgICAgICBpZCxcbiAgICAgICAgY2hhbmdlczogZW50aXR5XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkZWQucHVzaChlbnRpdHkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2FkZGVkLCB1cGRhdGVkLCBleGlzdGluZ0lkc0FycmF5XTtcbn1cblxuLy8gc3JjL2VudGl0aWVzL3Vuc29ydGVkX3N0YXRlX2FkYXB0ZXIudHNcbmZ1bmN0aW9uIGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyKHNlbGVjdElkKSB7XG4gIGZ1bmN0aW9uIGFkZE9uZU11dGFibHkoZW50aXR5LCBzdGF0ZSkge1xuICAgIGNvbnN0IGtleSA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG4gICAgaWYgKGtleSBpbiBzdGF0ZS5lbnRpdGllcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGF0ZS5pZHMucHVzaChrZXkpO1xuICAgIHN0YXRlLmVudGl0aWVzW2tleV0gPSBlbnRpdHk7XG4gIH1cbiAgZnVuY3Rpb24gYWRkTWFueU11dGFibHkobmV3RW50aXRpZXMsIHN0YXRlKSB7XG4gICAgbmV3RW50aXRpZXMgPSBlbnN1cmVFbnRpdGllc0FycmF5KG5ld0VudGl0aWVzKTtcbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBuZXdFbnRpdGllcykge1xuICAgICAgYWRkT25lTXV0YWJseShlbnRpdHksIHN0YXRlKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gc2V0T25lTXV0YWJseShlbnRpdHksIHN0YXRlKSB7XG4gICAgY29uc3Qga2V5ID0gc2VsZWN0SWRWYWx1ZShlbnRpdHksIHNlbGVjdElkKTtcbiAgICBpZiAoIShrZXkgaW4gc3RhdGUuZW50aXRpZXMpKSB7XG4gICAgICBzdGF0ZS5pZHMucHVzaChrZXkpO1xuICAgIH1cbiAgICA7XG4gICAgc3RhdGUuZW50aXRpZXNba2V5XSA9IGVudGl0eTtcbiAgfVxuICBmdW5jdGlvbiBzZXRNYW55TXV0YWJseShuZXdFbnRpdGllcywgc3RhdGUpIHtcbiAgICBuZXdFbnRpdGllcyA9IGVuc3VyZUVudGl0aWVzQXJyYXkobmV3RW50aXRpZXMpO1xuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIG5ld0VudGl0aWVzKSB7XG4gICAgICBzZXRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBzZXRBbGxNdXRhYmx5KG5ld0VudGl0aWVzLCBzdGF0ZSkge1xuICAgIG5ld0VudGl0aWVzID0gZW5zdXJlRW50aXRpZXNBcnJheShuZXdFbnRpdGllcyk7XG4gICAgc3RhdGUuaWRzID0gW107XG4gICAgc3RhdGUuZW50aXRpZXMgPSB7fTtcbiAgICBhZGRNYW55TXV0YWJseShuZXdFbnRpdGllcywgc3RhdGUpO1xuICB9XG4gIGZ1bmN0aW9uIHJlbW92ZU9uZU11dGFibHkoa2V5LCBzdGF0ZSkge1xuICAgIHJldHVybiByZW1vdmVNYW55TXV0YWJseShba2V5XSwgc3RhdGUpO1xuICB9XG4gIGZ1bmN0aW9uIHJlbW92ZU1hbnlNdXRhYmx5KGtleXMsIHN0YXRlKSB7XG4gICAgbGV0IGRpZE11dGF0ZSA9IGZhbHNlO1xuICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoa2V5IGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZS5lbnRpdGllc1trZXldO1xuICAgICAgICBkaWRNdXRhdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChkaWRNdXRhdGUpIHtcbiAgICAgIHN0YXRlLmlkcyA9IHN0YXRlLmlkcy5maWx0ZXIoKGlkKSA9PiBpZCBpbiBzdGF0ZS5lbnRpdGllcyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHJlbW92ZUFsbE11dGFibHkoc3RhdGUpIHtcbiAgICBPYmplY3QuYXNzaWduKHN0YXRlLCB7XG4gICAgICBpZHM6IFtdLFxuICAgICAgZW50aXRpZXM6IHt9XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gdGFrZU5ld0tleShrZXlzLCB1cGRhdGUsIHN0YXRlKSB7XG4gICAgY29uc3Qgb3JpZ2luYWwzID0gc3RhdGUuZW50aXRpZXNbdXBkYXRlLmlkXTtcbiAgICBpZiAob3JpZ2luYWwzID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZCA9IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsMywgdXBkYXRlLmNoYW5nZXMpO1xuICAgIGNvbnN0IG5ld0tleSA9IHNlbGVjdElkVmFsdWUodXBkYXRlZCwgc2VsZWN0SWQpO1xuICAgIGNvbnN0IGhhc05ld0tleSA9IG5ld0tleSAhPT0gdXBkYXRlLmlkO1xuICAgIGlmIChoYXNOZXdLZXkpIHtcbiAgICAgIGtleXNbdXBkYXRlLmlkXSA9IG5ld0tleTtcbiAgICAgIGRlbGV0ZSBzdGF0ZS5lbnRpdGllc1t1cGRhdGUuaWRdO1xuICAgIH1cbiAgICA7XG4gICAgc3RhdGUuZW50aXRpZXNbbmV3S2V5XSA9IHVwZGF0ZWQ7XG4gICAgcmV0dXJuIGhhc05ld0tleTtcbiAgfVxuICBmdW5jdGlvbiB1cGRhdGVPbmVNdXRhYmx5KHVwZGF0ZSwgc3RhdGUpIHtcbiAgICByZXR1cm4gdXBkYXRlTWFueU11dGFibHkoW3VwZGF0ZV0sIHN0YXRlKTtcbiAgfVxuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzLCBzdGF0ZSkge1xuICAgIGNvbnN0IG5ld0tleXMgPSB7fTtcbiAgICBjb25zdCB1cGRhdGVzUGVyRW50aXR5ID0ge307XG4gICAgdXBkYXRlcy5mb3JFYWNoKCh1cGRhdGUpID0+IHtcbiAgICAgIGlmICh1cGRhdGUuaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlc1BlckVudGl0eVt1cGRhdGUuaWRdID0ge1xuICAgICAgICAgIGlkOiB1cGRhdGUuaWQsXG4gICAgICAgICAgLy8gU3ByZWFkcyBpZ25vcmUgZmFsc3kgdmFsdWVzLCBzbyB0aGlzIHdvcmtzIGV2ZW4gaWYgdGhlcmUgaXNuJ3RcbiAgICAgICAgICAvLyBhbiBleGlzdGluZyB1cGRhdGUgYWxyZWFkeSBhdCB0aGlzIGtleVxuICAgICAgICAgIGNoYW5nZXM6IHtcbiAgICAgICAgICAgIC4uLnVwZGF0ZXNQZXJFbnRpdHlbdXBkYXRlLmlkXT8uY2hhbmdlcyxcbiAgICAgICAgICAgIC4uLnVwZGF0ZS5jaGFuZ2VzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHVwZGF0ZXMgPSBPYmplY3QudmFsdWVzKHVwZGF0ZXNQZXJFbnRpdHkpO1xuICAgIGNvbnN0IGRpZE11dGF0ZUVudGl0aWVzID0gdXBkYXRlcy5sZW5ndGggPiAwO1xuICAgIGlmIChkaWRNdXRhdGVFbnRpdGllcykge1xuICAgICAgY29uc3QgZGlkTXV0YXRlSWRzID0gdXBkYXRlcy5maWx0ZXIoKHVwZGF0ZSkgPT4gdGFrZU5ld0tleShuZXdLZXlzLCB1cGRhdGUsIHN0YXRlKSkubGVuZ3RoID4gMDtcbiAgICAgIGlmIChkaWRNdXRhdGVJZHMpIHtcbiAgICAgICAgc3RhdGUuaWRzID0gT2JqZWN0LnZhbHVlcyhzdGF0ZS5lbnRpdGllcykubWFwKChlKSA9PiBzZWxlY3RJZFZhbHVlKGUsIHNlbGVjdElkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5LCBzdGF0ZSkge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KG5ld0VudGl0aWVzLCBzdGF0ZSkge1xuICAgIGNvbnN0IFthZGRlZCwgdXBkYXRlZF0gPSBzcGxpdEFkZGVkVXBkYXRlZEVudGl0aWVzKG5ld0VudGl0aWVzLCBzZWxlY3RJZCwgc3RhdGUpO1xuICAgIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZWQsIHN0YXRlKTtcbiAgICBhZGRNYW55TXV0YWJseShhZGRlZCwgc3RhdGUpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcmVtb3ZlQWxsOiBjcmVhdGVTaW5nbGVBcmd1bWVudFN0YXRlT3BlcmF0b3IocmVtb3ZlQWxsTXV0YWJseSksXG4gICAgYWRkT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE9uZU11dGFibHkpLFxuICAgIGFkZE1hbnk6IGNyZWF0ZVN0YXRlT3BlcmF0b3IoYWRkTWFueU11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICBzZXRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldE1hbnlNdXRhYmx5KSxcbiAgICBzZXRBbGw6IGNyZWF0ZVN0YXRlT3BlcmF0b3Ioc2V0QWxsTXV0YWJseSksXG4gICAgdXBkYXRlT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwZGF0ZU9uZU11dGFibHkpLFxuICAgIHVwZGF0ZU1hbnk6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBkYXRlTWFueU11dGFibHkpLFxuICAgIHVwc2VydE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cHNlcnRPbmVNdXRhYmx5KSxcbiAgICB1cHNlcnRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE1hbnlNdXRhYmx5KSxcbiAgICByZW1vdmVPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IocmVtb3ZlT25lTXV0YWJseSksXG4gICAgcmVtb3ZlTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcihyZW1vdmVNYW55TXV0YWJseSlcbiAgfTtcbn1cblxuLy8gc3JjL2VudGl0aWVzL3NvcnRlZF9zdGF0ZV9hZGFwdGVyLnRzXG5mdW5jdGlvbiBmaW5kSW5zZXJ0SW5kZXgoc29ydGVkSXRlbXMsIGl0ZW0sIGNvbXBhcmlzb25GdW5jdGlvbikge1xuICBsZXQgbG93SW5kZXggPSAwO1xuICBsZXQgaGlnaEluZGV4ID0gc29ydGVkSXRlbXMubGVuZ3RoO1xuICB3aGlsZSAobG93SW5kZXggPCBoaWdoSW5kZXgpIHtcbiAgICBsZXQgbWlkZGxlSW5kZXggPSBsb3dJbmRleCArIGhpZ2hJbmRleCA+Pj4gMTtcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHNvcnRlZEl0ZW1zW21pZGRsZUluZGV4XTtcbiAgICBjb25zdCByZXMgPSBjb21wYXJpc29uRnVuY3Rpb24oaXRlbSwgY3VycmVudEl0ZW0pO1xuICAgIGlmIChyZXMgPj0gMCkge1xuICAgICAgbG93SW5kZXggPSBtaWRkbGVJbmRleCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2hJbmRleCA9IG1pZGRsZUluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbG93SW5kZXg7XG59XG5mdW5jdGlvbiBpbnNlcnQoc29ydGVkSXRlbXMsIGl0ZW0sIGNvbXBhcmlzb25GdW5jdGlvbikge1xuICBjb25zdCBpbnNlcnRBdEluZGV4ID0gZmluZEluc2VydEluZGV4KHNvcnRlZEl0ZW1zLCBpdGVtLCBjb21wYXJpc29uRnVuY3Rpb24pO1xuICBzb3J0ZWRJdGVtcy5zcGxpY2UoaW5zZXJ0QXRJbmRleCwgMCwgaXRlbSk7XG4gIHJldHVybiBzb3J0ZWRJdGVtcztcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNvcnRlZFN0YXRlQWRhcHRlcihzZWxlY3RJZCwgY29tcGFyZXIpIHtcbiAgY29uc3Qge1xuICAgIHJlbW92ZU9uZSxcbiAgICByZW1vdmVNYW55LFxuICAgIHJlbW92ZUFsbFxuICB9ID0gY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXIoc2VsZWN0SWQpO1xuICBmdW5jdGlvbiBhZGRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpIHtcbiAgICByZXR1cm4gYWRkTWFueU11dGFibHkoW2VudGl0eV0sIHN0YXRlKTtcbiAgfVxuICBmdW5jdGlvbiBhZGRNYW55TXV0YWJseShuZXdFbnRpdGllcywgc3RhdGUsIGV4aXN0aW5nSWRzKSB7XG4gICAgbmV3RW50aXRpZXMgPSBlbnN1cmVFbnRpdGllc0FycmF5KG5ld0VudGl0aWVzKTtcbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBuZXcgU2V0KGV4aXN0aW5nSWRzID8/IGdldEN1cnJlbnQoc3RhdGUuaWRzKSk7XG4gICAgY29uc3QgbW9kZWxzID0gbmV3RW50aXRpZXMuZmlsdGVyKChtb2RlbCkgPT4gIWV4aXN0aW5nS2V5cy5oYXMoc2VsZWN0SWRWYWx1ZShtb2RlbCwgc2VsZWN0SWQpKSk7XG4gICAgaWYgKG1vZGVscy5sZW5ndGggIT09IDApIHtcbiAgICAgIG1lcmdlRnVuY3Rpb24oc3RhdGUsIG1vZGVscyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHNldE9uZU11dGFibHkoZW50aXR5LCBzdGF0ZSkge1xuICAgIHJldHVybiBzZXRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG4gIGZ1bmN0aW9uIHNldE1hbnlNdXRhYmx5KG5ld0VudGl0aWVzLCBzdGF0ZSkge1xuICAgIG5ld0VudGl0aWVzID0gZW5zdXJlRW50aXRpZXNBcnJheShuZXdFbnRpdGllcyk7XG4gICAgaWYgKG5ld0VudGl0aWVzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG5ld0VudGl0aWVzKSB7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZS5lbnRpdGllc1tzZWxlY3RJZChpdGVtKV07XG4gICAgICB9XG4gICAgICBtZXJnZUZ1bmN0aW9uKHN0YXRlLCBuZXdFbnRpdGllcyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHNldEFsbE11dGFibHkobmV3RW50aXRpZXMsIHN0YXRlKSB7XG4gICAgbmV3RW50aXRpZXMgPSBlbnN1cmVFbnRpdGllc0FycmF5KG5ld0VudGl0aWVzKTtcbiAgICBzdGF0ZS5lbnRpdGllcyA9IHt9O1xuICAgIHN0YXRlLmlkcyA9IFtdO1xuICAgIGFkZE1hbnlNdXRhYmx5KG5ld0VudGl0aWVzLCBzdGF0ZSwgW10pO1xuICB9XG4gIGZ1bmN0aW9uIHVwZGF0ZU9uZU11dGFibHkodXBkYXRlLCBzdGF0ZSkge1xuICAgIHJldHVybiB1cGRhdGVNYW55TXV0YWJseShbdXBkYXRlXSwgc3RhdGUpO1xuICB9XG4gIGZ1bmN0aW9uIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXMsIHN0YXRlKSB7XG4gICAgbGV0IGFwcGxpZWRVcGRhdGVzID0gZmFsc2U7XG4gICAgbGV0IHJlcGxhY2VkSWRzID0gZmFsc2U7XG4gICAgZm9yIChsZXQgdXBkYXRlIG9mIHVwZGF0ZXMpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgICBpZiAoIWVudGl0eSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGFwcGxpZWRVcGRhdGVzID0gdHJ1ZTtcbiAgICAgIE9iamVjdC5hc3NpZ24oZW50aXR5LCB1cGRhdGUuY2hhbmdlcyk7XG4gICAgICBjb25zdCBuZXdJZCA9IHNlbGVjdElkKGVudGl0eSk7XG4gICAgICBpZiAodXBkYXRlLmlkICE9PSBuZXdJZCkge1xuICAgICAgICByZXBsYWNlZElkcyA9IHRydWU7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZS5lbnRpdGllc1t1cGRhdGUuaWRdO1xuICAgICAgICBjb25zdCBvbGRJbmRleCA9IHN0YXRlLmlkcy5pbmRleE9mKHVwZGF0ZS5pZCk7XG4gICAgICAgIHN0YXRlLmlkc1tvbGRJbmRleF0gPSBuZXdJZDtcbiAgICAgICAgc3RhdGUuZW50aXRpZXNbbmV3SWRdID0gZW50aXR5O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYXBwbGllZFVwZGF0ZXMpIHtcbiAgICAgIG1lcmdlRnVuY3Rpb24oc3RhdGUsIFtdLCBhcHBsaWVkVXBkYXRlcywgcmVwbGFjZWRJZHMpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpIHtcbiAgICByZXR1cm4gdXBzZXJ0TWFueU11dGFibHkoW2VudGl0eV0sIHN0YXRlKTtcbiAgfVxuICBmdW5jdGlvbiB1cHNlcnRNYW55TXV0YWJseShuZXdFbnRpdGllcywgc3RhdGUpIHtcbiAgICBjb25zdCBbYWRkZWQsIHVwZGF0ZWQsIGV4aXN0aW5nSWRzQXJyYXldID0gc3BsaXRBZGRlZFVwZGF0ZWRFbnRpdGllcyhuZXdFbnRpdGllcywgc2VsZWN0SWQsIHN0YXRlKTtcbiAgICBpZiAodXBkYXRlZC5sZW5ndGgpIHtcbiAgICAgIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZWQsIHN0YXRlKTtcbiAgICB9XG4gICAgaWYgKGFkZGVkLmxlbmd0aCkge1xuICAgICAgYWRkTWFueU11dGFibHkoYWRkZWQsIHN0YXRlLCBleGlzdGluZ0lkc0FycmF5KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoYSwgYikge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYVtpXSA9PT0gYltpXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgbWVyZ2VGdW5jdGlvbiA9IChzdGF0ZSwgYWRkZWRJdGVtcywgYXBwbGllZFVwZGF0ZXMsIHJlcGxhY2VkSWRzKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gZ2V0Q3VycmVudChzdGF0ZS5lbnRpdGllcyk7XG4gICAgY29uc3QgY3VycmVudElkcyA9IGdldEN1cnJlbnQoc3RhdGUuaWRzKTtcbiAgICBjb25zdCBzdGF0ZUVudGl0aWVzID0gc3RhdGUuZW50aXRpZXM7XG4gICAgbGV0IGlkcyA9IGN1cnJlbnRJZHM7XG4gICAgaWYgKHJlcGxhY2VkSWRzKSB7XG4gICAgICBpZHMgPSBuZXcgU2V0KGN1cnJlbnRJZHMpO1xuICAgIH1cbiAgICBsZXQgc29ydGVkRW50aXRpZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgY29uc3QgZW50aXR5ID0gY3VycmVudEVudGl0aWVzW2lkXTtcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgc29ydGVkRW50aXRpZXMucHVzaChlbnRpdHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB3YXNQcmV2aW91c2x5RW1wdHkgPSBzb3J0ZWRFbnRpdGllcy5sZW5ndGggPT09IDA7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGFkZGVkSXRlbXMpIHtcbiAgICAgIHN0YXRlRW50aXRpZXNbc2VsZWN0SWQoaXRlbSldID0gaXRlbTtcbiAgICAgIGlmICghd2FzUHJldmlvdXNseUVtcHR5KSB7XG4gICAgICAgIGluc2VydChzb3J0ZWRFbnRpdGllcywgaXRlbSwgY29tcGFyZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAod2FzUHJldmlvdXNseUVtcHR5KSB7XG4gICAgICBzb3J0ZWRFbnRpdGllcyA9IGFkZGVkSXRlbXMuc2xpY2UoKS5zb3J0KGNvbXBhcmVyKTtcbiAgICB9IGVsc2UgaWYgKGFwcGxpZWRVcGRhdGVzKSB7XG4gICAgICBzb3J0ZWRFbnRpdGllcy5zb3J0KGNvbXBhcmVyKTtcbiAgICB9XG4gICAgY29uc3QgbmV3U29ydGVkSWRzID0gc29ydGVkRW50aXRpZXMubWFwKHNlbGVjdElkKTtcbiAgICBpZiAoIWFyZUFycmF5c0VxdWFsKGN1cnJlbnRJZHMsIG5ld1NvcnRlZElkcykpIHtcbiAgICAgIHN0YXRlLmlkcyA9IG5ld1NvcnRlZElkcztcbiAgICB9XG4gIH07XG4gIHJldHVybiB7XG4gICAgcmVtb3ZlT25lLFxuICAgIHJlbW92ZU1hbnksXG4gICAgcmVtb3ZlQWxsLFxuICAgIGFkZE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRPbmVNdXRhYmx5KSxcbiAgICB1cGRhdGVPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBkYXRlT25lTXV0YWJseSksXG4gICAgdXBzZXJ0T25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE9uZU11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICBzZXRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldE1hbnlNdXRhYmx5KSxcbiAgICBzZXRBbGw6IGNyZWF0ZVN0YXRlT3BlcmF0b3Ioc2V0QWxsTXV0YWJseSksXG4gICAgYWRkTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRNYW55TXV0YWJseSksXG4gICAgdXBkYXRlTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVNYW55TXV0YWJseSksXG4gICAgdXBzZXJ0TWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cHNlcnRNYW55TXV0YWJseSlcbiAgfTtcbn1cblxuLy8gc3JjL2VudGl0aWVzL2NyZWF0ZV9hZGFwdGVyLnRzXG5mdW5jdGlvbiBjcmVhdGVFbnRpdHlBZGFwdGVyKG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgc2VsZWN0SWQsXG4gICAgc29ydENvbXBhcmVyXG4gIH0gPSB7XG4gICAgc29ydENvbXBhcmVyOiBmYWxzZSxcbiAgICBzZWxlY3RJZDogKGluc3RhbmNlKSA9PiBpbnN0YW5jZS5pZCxcbiAgICAuLi5vcHRpb25zXG4gIH07XG4gIGNvbnN0IHN0YXRlQWRhcHRlciA9IHNvcnRDb21wYXJlciA/IGNyZWF0ZVNvcnRlZFN0YXRlQWRhcHRlcihzZWxlY3RJZCwgc29ydENvbXBhcmVyKSA6IGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyKHNlbGVjdElkKTtcbiAgY29uc3Qgc3RhdGVGYWN0b3J5ID0gY3JlYXRlSW5pdGlhbFN0YXRlRmFjdG9yeShzdGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBzZWxlY3RvcnNGYWN0b3J5ID0gY3JlYXRlU2VsZWN0b3JzRmFjdG9yeSgpO1xuICByZXR1cm4ge1xuICAgIHNlbGVjdElkLFxuICAgIHNvcnRDb21wYXJlcixcbiAgICAuLi5zdGF0ZUZhY3RvcnksXG4gICAgLi4uc2VsZWN0b3JzRmFjdG9yeSxcbiAgICAuLi5zdGF0ZUFkYXB0ZXJcbiAgfTtcbn1cblxuLy8gc3JjL2xpc3RlbmVyTWlkZGxld2FyZS9pbmRleC50c1xuaW1wb3J0IHsgaXNBY3Rpb24gYXMgaXNBY3Rpb24zIH0gZnJvbSBcInJlZHV4XCI7XG5cbi8vIHNyYy9saXN0ZW5lck1pZGRsZXdhcmUvZXhjZXB0aW9ucy50c1xudmFyIHRhc2sgPSBcInRhc2tcIjtcbnZhciBsaXN0ZW5lciA9IFwibGlzdGVuZXJcIjtcbnZhciBjb21wbGV0ZWQgPSBcImNvbXBsZXRlZFwiO1xudmFyIGNhbmNlbGxlZCA9IFwiY2FuY2VsbGVkXCI7XG52YXIgdGFza0NhbmNlbGxlZCA9IGB0YXNrLSR7Y2FuY2VsbGVkfWA7XG52YXIgdGFza0NvbXBsZXRlZCA9IGB0YXNrLSR7Y29tcGxldGVkfWA7XG52YXIgbGlzdGVuZXJDYW5jZWxsZWQgPSBgJHtsaXN0ZW5lcn0tJHtjYW5jZWxsZWR9YDtcbnZhciBsaXN0ZW5lckNvbXBsZXRlZCA9IGAke2xpc3RlbmVyfS0ke2NvbXBsZXRlZH1gO1xudmFyIFRhc2tBYm9ydEVycm9yID0gY2xhc3Mge1xuICBjb25zdHJ1Y3Rvcihjb2RlKSB7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBgJHt0YXNrfSAke2NhbmNlbGxlZH0gKHJlYXNvbjogJHtjb2RlfSlgO1xuICB9XG4gIG5hbWUgPSBcIlRhc2tBYm9ydEVycm9yXCI7XG4gIG1lc3NhZ2U7XG59O1xuXG4vLyBzcmMvbGlzdGVuZXJNaWRkbGV3YXJlL3V0aWxzLnRzXG52YXIgYXNzZXJ0RnVuY3Rpb24gPSAoZnVuYywgZXhwZWN0ZWQpID0+IHtcbiAgaWYgKHR5cGVvZiBmdW5jICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMzIpIDogYCR7ZXhwZWN0ZWR9IGlzIG5vdCBhIGZ1bmN0aW9uYCk7XG4gIH1cbn07XG52YXIgbm9vcDIgPSAoKSA9PiB7XG59O1xudmFyIGNhdGNoUmVqZWN0aW9uID0gKHByb21pc2UsIG9uRXJyb3IgPSBub29wMikgPT4ge1xuICBwcm9taXNlLmNhdGNoKG9uRXJyb3IpO1xuICByZXR1cm4gcHJvbWlzZTtcbn07XG52YXIgYWRkQWJvcnRTaWduYWxMaXN0ZW5lciA9IChhYm9ydFNpZ25hbCwgY2FsbGJhY2spID0+IHtcbiAgYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGNhbGxiYWNrLCB7XG4gICAgb25jZTogdHJ1ZVxuICB9KTtcbiAgcmV0dXJuICgpID0+IGFib3J0U2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBjYWxsYmFjayk7XG59O1xudmFyIGFib3J0Q29udHJvbGxlcldpdGhSZWFzb24gPSAoYWJvcnRDb250cm9sbGVyLCByZWFzb24pID0+IHtcbiAgY29uc3Qgc2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghKFwicmVhc29uXCIgaW4gc2lnbmFsKSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaWduYWwsIFwicmVhc29uXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogcmVhc29uLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxuICA7XG4gIGFib3J0Q29udHJvbGxlci5hYm9ydChyZWFzb24pO1xufTtcblxuLy8gc3JjL2xpc3RlbmVyTWlkZGxld2FyZS90YXNrLnRzXG52YXIgdmFsaWRhdGVBY3RpdmUgPSAoc2lnbmFsKSA9PiB7XG4gIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlYXNvblxuICAgIH0gPSBzaWduYWw7XG4gICAgdGhyb3cgbmV3IFRhc2tBYm9ydEVycm9yKHJlYXNvbik7XG4gIH1cbn07XG5mdW5jdGlvbiByYWNlV2l0aFNpZ25hbChzaWduYWwsIHByb21pc2UpIHtcbiAgbGV0IGNsZWFudXAgPSBub29wMjtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBub3RpZnlSZWplY3Rpb24gPSAoKSA9PiByZWplY3QobmV3IFRhc2tBYm9ydEVycm9yKHNpZ25hbC5yZWFzb24pKTtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIG5vdGlmeVJlamVjdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjbGVhbnVwID0gYWRkQWJvcnRTaWduYWxMaXN0ZW5lcihzaWduYWwsIG5vdGlmeVJlamVjdGlvbik7XG4gICAgcHJvbWlzZS5maW5hbGx5KCgpID0+IGNsZWFudXAoKSkudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICBjbGVhbnVwID0gbm9vcDI7XG4gIH0pO1xufVxudmFyIHJ1blRhc2sgPSBhc3luYyAodGFzazIsIGNsZWFuVXApID0+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHRhc2syKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgdmFsdWVcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXM6IGVycm9yIGluc3RhbmNlb2YgVGFza0Fib3J0RXJyb3IgPyBcImNhbmNlbGxlZFwiIDogXCJyZWplY3RlZFwiLFxuICAgICAgZXJyb3JcbiAgICB9O1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFuVXA/LigpO1xuICB9XG59O1xudmFyIGNyZWF0ZVBhdXNlID0gKHNpZ25hbCkgPT4ge1xuICByZXR1cm4gKHByb21pc2UpID0+IHtcbiAgICByZXR1cm4gY2F0Y2hSZWplY3Rpb24ocmFjZVdpdGhTaWduYWwoc2lnbmFsLCBwcm9taXNlKS50aGVuKChvdXRwdXQpID0+IHtcbiAgICAgIHZhbGlkYXRlQWN0aXZlKHNpZ25hbCk7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH0pKTtcbiAgfTtcbn07XG52YXIgY3JlYXRlRGVsYXkgPSAoc2lnbmFsKSA9PiB7XG4gIGNvbnN0IHBhdXNlID0gY3JlYXRlUGF1c2Uoc2lnbmFsKTtcbiAgcmV0dXJuICh0aW1lb3V0TXMpID0+IHtcbiAgICByZXR1cm4gcGF1c2UobmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dE1zKSkpO1xuICB9O1xufTtcblxuLy8gc3JjL2xpc3RlbmVyTWlkZGxld2FyZS9pbmRleC50c1xudmFyIHtcbiAgYXNzaWduXG59ID0gT2JqZWN0O1xudmFyIElOVEVSTkFMX05JTF9UT0tFTiA9IHt9O1xudmFyIGFsbSA9IFwibGlzdGVuZXJNaWRkbGV3YXJlXCI7XG52YXIgY3JlYXRlRm9yayA9IChwYXJlbnRBYm9ydFNpZ25hbCwgcGFyZW50QmxvY2tpbmdQcm9taXNlcykgPT4ge1xuICBjb25zdCBsaW5rQ29udHJvbGxlcnMgPSAoY29udHJvbGxlcikgPT4gYWRkQWJvcnRTaWduYWxMaXN0ZW5lcihwYXJlbnRBYm9ydFNpZ25hbCwgKCkgPT4gYWJvcnRDb250cm9sbGVyV2l0aFJlYXNvbihjb250cm9sbGVyLCBwYXJlbnRBYm9ydFNpZ25hbC5yZWFzb24pKTtcbiAgcmV0dXJuICh0YXNrRXhlY3V0b3IsIG9wdHMpID0+IHtcbiAgICBhc3NlcnRGdW5jdGlvbih0YXNrRXhlY3V0b3IsIFwidGFza0V4ZWN1dG9yXCIpO1xuICAgIGNvbnN0IGNoaWxkQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGxpbmtDb250cm9sbGVycyhjaGlsZEFib3J0Q29udHJvbGxlcik7XG4gICAgY29uc3QgcmVzdWx0ID0gcnVuVGFzayhhc3luYyAoKSA9PiB7XG4gICAgICB2YWxpZGF0ZUFjdGl2ZShwYXJlbnRBYm9ydFNpZ25hbCk7XG4gICAgICB2YWxpZGF0ZUFjdGl2ZShjaGlsZEFib3J0Q29udHJvbGxlci5zaWduYWwpO1xuICAgICAgY29uc3QgcmVzdWx0MiA9IGF3YWl0IHRhc2tFeGVjdXRvcih7XG4gICAgICAgIHBhdXNlOiBjcmVhdGVQYXVzZShjaGlsZEFib3J0Q29udHJvbGxlci5zaWduYWwpLFxuICAgICAgICBkZWxheTogY3JlYXRlRGVsYXkoY2hpbGRBYm9ydENvbnRyb2xsZXIuc2lnbmFsKSxcbiAgICAgICAgc2lnbmFsOiBjaGlsZEFib3J0Q29udHJvbGxlci5zaWduYWxcbiAgICAgIH0pO1xuICAgICAgdmFsaWRhdGVBY3RpdmUoY2hpbGRBYm9ydENvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgIHJldHVybiByZXN1bHQyO1xuICAgIH0sICgpID0+IGFib3J0Q29udHJvbGxlcldpdGhSZWFzb24oY2hpbGRBYm9ydENvbnRyb2xsZXIsIHRhc2tDb21wbGV0ZWQpKTtcbiAgICBpZiAob3B0cz8uYXV0b0pvaW4pIHtcbiAgICAgIHBhcmVudEJsb2NraW5nUHJvbWlzZXMucHVzaChyZXN1bHQuY2F0Y2gobm9vcDIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3VsdDogY3JlYXRlUGF1c2UocGFyZW50QWJvcnRTaWduYWwpKHJlc3VsdCksXG4gICAgICBjYW5jZWwoKSB7XG4gICAgICAgIGFib3J0Q29udHJvbGxlcldpdGhSZWFzb24oY2hpbGRBYm9ydENvbnRyb2xsZXIsIHRhc2tDYW5jZWxsZWQpO1xuICAgICAgfVxuICAgIH07XG4gIH07XG59O1xudmFyIGNyZWF0ZVRha2VQYXR0ZXJuID0gKHN0YXJ0TGlzdGVuaW5nLCBzaWduYWwpID0+IHtcbiAgY29uc3QgdGFrZSA9IGFzeW5jIChwcmVkaWNhdGUsIHRpbWVvdXQpID0+IHtcbiAgICB2YWxpZGF0ZUFjdGl2ZShzaWduYWwpO1xuICAgIGxldCB1bnN1YnNjcmliZSA9ICgpID0+IHtcbiAgICB9O1xuICAgIGNvbnN0IHR1cGxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCBzdG9wTGlzdGVuaW5nID0gc3RhcnRMaXN0ZW5pbmcoe1xuICAgICAgICBwcmVkaWNhdGUsXG4gICAgICAgIGVmZmVjdDogKGFjdGlvbiwgbGlzdGVuZXJBcGkpID0+IHtcbiAgICAgICAgICBsaXN0ZW5lckFwaS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIHJlc29sdmUoW2FjdGlvbiwgbGlzdGVuZXJBcGkuZ2V0U3RhdGUoKSwgbGlzdGVuZXJBcGkuZ2V0T3JpZ2luYWxTdGF0ZSgpXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdW5zdWJzY3JpYmUgPSAoKSA9PiB7XG4gICAgICAgIHN0b3BMaXN0ZW5pbmcoKTtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHByb21pc2VzID0gW3R1cGxlUHJvbWlzZV07XG4gICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xuICAgICAgcHJvbWlzZXMucHVzaChuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lb3V0LCBudWxsKSkpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgcmFjZVdpdGhTaWduYWwoc2lnbmFsLCBQcm9taXNlLnJhY2UocHJvbWlzZXMpKTtcbiAgICAgIHZhbGlkYXRlQWN0aXZlKHNpZ25hbCk7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICB1bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIChwcmVkaWNhdGUsIHRpbWVvdXQpID0+IGNhdGNoUmVqZWN0aW9uKHRha2UocHJlZGljYXRlLCB0aW1lb3V0KSk7XG59O1xudmFyIGdldExpc3RlbmVyRW50cnlQcm9wc0Zyb20gPSAob3B0aW9ucykgPT4ge1xuICBsZXQge1xuICAgIHR5cGUsXG4gICAgYWN0aW9uQ3JlYXRvcixcbiAgICBtYXRjaGVyLFxuICAgIHByZWRpY2F0ZSxcbiAgICBlZmZlY3RcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICh0eXBlKSB7XG4gICAgcHJlZGljYXRlID0gY3JlYXRlQWN0aW9uKHR5cGUpLm1hdGNoO1xuICB9IGVsc2UgaWYgKGFjdGlvbkNyZWF0b3IpIHtcbiAgICB0eXBlID0gYWN0aW9uQ3JlYXRvci50eXBlO1xuICAgIHByZWRpY2F0ZSA9IGFjdGlvbkNyZWF0b3IubWF0Y2g7XG4gIH0gZWxzZSBpZiAobWF0Y2hlcikge1xuICAgIHByZWRpY2F0ZSA9IG1hdGNoZXI7XG4gIH0gZWxzZSBpZiAocHJlZGljYXRlKSB7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMjEpIDogXCJDcmVhdGluZyBvciByZW1vdmluZyBhIGxpc3RlbmVyIHJlcXVpcmVzIG9uZSBvZiB0aGUga25vd24gZmllbGRzIGZvciBtYXRjaGluZyBhbiBhY3Rpb25cIik7XG4gIH1cbiAgYXNzZXJ0RnVuY3Rpb24oZWZmZWN0LCBcIm9wdGlvbnMubGlzdGVuZXJcIik7XG4gIHJldHVybiB7XG4gICAgcHJlZGljYXRlLFxuICAgIHR5cGUsXG4gICAgZWZmZWN0XG4gIH07XG59O1xudmFyIGNyZWF0ZUxpc3RlbmVyRW50cnkgPSAvKiBAX19QVVJFX18gKi8gYXNzaWduKChvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHtcbiAgICB0eXBlLFxuICAgIHByZWRpY2F0ZSxcbiAgICBlZmZlY3RcbiAgfSA9IGdldExpc3RlbmVyRW50cnlQcm9wc0Zyb20ob3B0aW9ucyk7XG4gIGNvbnN0IGVudHJ5ID0ge1xuICAgIGlkOiBuYW5vaWQoKSxcbiAgICBlZmZlY3QsXG4gICAgdHlwZSxcbiAgICBwcmVkaWNhdGUsXG4gICAgcGVuZGluZzogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSxcbiAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMjIpIDogXCJVbnN1YnNjcmliZSBub3QgaW5pdGlhbGl6ZWRcIik7XG4gICAgfVxuICB9O1xuICByZXR1cm4gZW50cnk7XG59LCB7XG4gIHdpdGhUeXBlczogKCkgPT4gY3JlYXRlTGlzdGVuZXJFbnRyeVxufSk7XG52YXIgZmluZExpc3RlbmVyRW50cnkgPSAobGlzdGVuZXJNYXAsIG9wdGlvbnMpID0+IHtcbiAgY29uc3Qge1xuICAgIHR5cGUsXG4gICAgZWZmZWN0LFxuICAgIHByZWRpY2F0ZVxuICB9ID0gZ2V0TGlzdGVuZXJFbnRyeVByb3BzRnJvbShvcHRpb25zKTtcbiAgcmV0dXJuIEFycmF5LmZyb20obGlzdGVuZXJNYXAudmFsdWVzKCkpLmZpbmQoKGVudHJ5KSA9PiB7XG4gICAgY29uc3QgbWF0Y2hQcmVkaWNhdGVPclR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IGVudHJ5LnR5cGUgPT09IHR5cGUgOiBlbnRyeS5wcmVkaWNhdGUgPT09IHByZWRpY2F0ZTtcbiAgICByZXR1cm4gbWF0Y2hQcmVkaWNhdGVPclR5cGUgJiYgZW50cnkuZWZmZWN0ID09PSBlZmZlY3Q7XG4gIH0pO1xufTtcbnZhciBjYW5jZWxBY3RpdmVMaXN0ZW5lcnMgPSAoZW50cnkpID0+IHtcbiAgZW50cnkucGVuZGluZy5mb3JFYWNoKChjb250cm9sbGVyKSA9PiB7XG4gICAgYWJvcnRDb250cm9sbGVyV2l0aFJlYXNvbihjb250cm9sbGVyLCBsaXN0ZW5lckNhbmNlbGxlZCk7XG4gIH0pO1xufTtcbnZhciBjcmVhdGVDbGVhckxpc3RlbmVyTWlkZGxld2FyZSA9IChsaXN0ZW5lck1hcCkgPT4ge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGxpc3RlbmVyTWFwLmZvckVhY2goY2FuY2VsQWN0aXZlTGlzdGVuZXJzKTtcbiAgICBsaXN0ZW5lck1hcC5jbGVhcigpO1xuICB9O1xufTtcbnZhciBzYWZlbHlOb3RpZnlFcnJvciA9IChlcnJvckhhbmRsZXIsIGVycm9yVG9Ob3RpZnksIGVycm9ySW5mbykgPT4ge1xuICB0cnkge1xuICAgIGVycm9ySGFuZGxlcihlcnJvclRvTm90aWZ5LCBlcnJvckluZm8pO1xuICB9IGNhdGNoIChlcnJvckhhbmRsZXJFcnJvcikge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhyb3cgZXJyb3JIYW5kbGVyRXJyb3I7XG4gICAgfSwgMCk7XG4gIH1cbn07XG52YXIgYWRkTGlzdGVuZXIgPSAvKiBAX19QVVJFX18gKi8gYXNzaWduKC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVBY3Rpb24oYCR7YWxtfS9hZGRgKSwge1xuICB3aXRoVHlwZXM6ICgpID0+IGFkZExpc3RlbmVyXG59KTtcbnZhciBjbGVhckFsbExpc3RlbmVycyA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVBY3Rpb24oYCR7YWxtfS9yZW1vdmVBbGxgKTtcbnZhciByZW1vdmVMaXN0ZW5lciA9IC8qIEBfX1BVUkVfXyAqLyBhc3NpZ24oLyogQF9fUFVSRV9fICovIGNyZWF0ZUFjdGlvbihgJHthbG19L3JlbW92ZWApLCB7XG4gIHdpdGhUeXBlczogKCkgPT4gcmVtb3ZlTGlzdGVuZXJcbn0pO1xudmFyIGRlZmF1bHRFcnJvckhhbmRsZXIgPSAoLi4uYXJncykgPT4ge1xuICBjb25zb2xlLmVycm9yKGAke2FsbX0vZXJyb3JgLCAuLi5hcmdzKTtcbn07XG52YXIgY3JlYXRlTGlzdGVuZXJNaWRkbGV3YXJlID0gKG1pZGRsZXdhcmVPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3QgbGlzdGVuZXJNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBjb25zdCB7XG4gICAgZXh0cmEsXG4gICAgb25FcnJvciA9IGRlZmF1bHRFcnJvckhhbmRsZXJcbiAgfSA9IG1pZGRsZXdhcmVPcHRpb25zO1xuICBhc3NlcnRGdW5jdGlvbihvbkVycm9yLCBcIm9uRXJyb3JcIik7XG4gIGNvbnN0IGluc2VydEVudHJ5ID0gKGVudHJ5KSA9PiB7XG4gICAgZW50cnkudW5zdWJzY3JpYmUgPSAoKSA9PiBsaXN0ZW5lck1hcC5kZWxldGUoZW50cnkuaWQpO1xuICAgIGxpc3RlbmVyTWFwLnNldChlbnRyeS5pZCwgZW50cnkpO1xuICAgIHJldHVybiAoY2FuY2VsT3B0aW9ucykgPT4ge1xuICAgICAgZW50cnkudW5zdWJzY3JpYmUoKTtcbiAgICAgIGlmIChjYW5jZWxPcHRpb25zPy5jYW5jZWxBY3RpdmUpIHtcbiAgICAgICAgY2FuY2VsQWN0aXZlTGlzdGVuZXJzKGVudHJ5KTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuICBjb25zdCBzdGFydExpc3RlbmluZyA9IChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZW50cnkgPSBmaW5kTGlzdGVuZXJFbnRyeShsaXN0ZW5lck1hcCwgb3B0aW9ucykgPz8gY3JlYXRlTGlzdGVuZXJFbnRyeShvcHRpb25zKTtcbiAgICByZXR1cm4gaW5zZXJ0RW50cnkoZW50cnkpO1xuICB9O1xuICBhc3NpZ24oc3RhcnRMaXN0ZW5pbmcsIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IHN0YXJ0TGlzdGVuaW5nXG4gIH0pO1xuICBjb25zdCBzdG9wTGlzdGVuaW5nID0gKG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBlbnRyeSA9IGZpbmRMaXN0ZW5lckVudHJ5KGxpc3RlbmVyTWFwLCBvcHRpb25zKTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgIGVudHJ5LnVuc3Vic2NyaWJlKCk7XG4gICAgICBpZiAob3B0aW9ucy5jYW5jZWxBY3RpdmUpIHtcbiAgICAgICAgY2FuY2VsQWN0aXZlTGlzdGVuZXJzKGVudHJ5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICEhZW50cnk7XG4gIH07XG4gIGFzc2lnbihzdG9wTGlzdGVuaW5nLCB7XG4gICAgd2l0aFR5cGVzOiAoKSA9PiBzdG9wTGlzdGVuaW5nXG4gIH0pO1xuICBjb25zdCBub3RpZnlMaXN0ZW5lciA9IGFzeW5jIChlbnRyeSwgYWN0aW9uLCBhcGksIGdldE9yaWdpbmFsU3RhdGUpID0+IHtcbiAgICBjb25zdCBpbnRlcm5hbFRhc2tDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IHRha2UgPSBjcmVhdGVUYWtlUGF0dGVybihzdGFydExpc3RlbmluZywgaW50ZXJuYWxUYXNrQ29udHJvbGxlci5zaWduYWwpO1xuICAgIGNvbnN0IGF1dG9Kb2luUHJvbWlzZXMgPSBbXTtcbiAgICB0cnkge1xuICAgICAgZW50cnkucGVuZGluZy5hZGQoaW50ZXJuYWxUYXNrQ29udHJvbGxlcik7XG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoZW50cnkuZWZmZWN0KFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIC8vIFVzZSBhc3NpZ24oKSByYXRoZXIgdGhhbiAuLi4gdG8gYXZvaWQgZXh0cmEgaGVscGVyIGZ1bmN0aW9ucyBhZGRlZCB0byBidW5kbGVcbiAgICAgICAgYXNzaWduKHt9LCBhcGksIHtcbiAgICAgICAgICBnZXRPcmlnaW5hbFN0YXRlLFxuICAgICAgICAgIGNvbmRpdGlvbjogKHByZWRpY2F0ZSwgdGltZW91dCkgPT4gdGFrZShwcmVkaWNhdGUsIHRpbWVvdXQpLnRoZW4oQm9vbGVhbiksXG4gICAgICAgICAgdGFrZSxcbiAgICAgICAgICBkZWxheTogY3JlYXRlRGVsYXkoaW50ZXJuYWxUYXNrQ29udHJvbGxlci5zaWduYWwpLFxuICAgICAgICAgIHBhdXNlOiBjcmVhdGVQYXVzZShpbnRlcm5hbFRhc2tDb250cm9sbGVyLnNpZ25hbCksXG4gICAgICAgICAgZXh0cmEsXG4gICAgICAgICAgc2lnbmFsOiBpbnRlcm5hbFRhc2tDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgICBmb3JrOiBjcmVhdGVGb3JrKGludGVybmFsVGFza0NvbnRyb2xsZXIuc2lnbmFsLCBhdXRvSm9pblByb21pc2VzKSxcbiAgICAgICAgICB1bnN1YnNjcmliZTogZW50cnkudW5zdWJzY3JpYmUsXG4gICAgICAgICAgc3Vic2NyaWJlOiAoKSA9PiB7XG4gICAgICAgICAgICBsaXN0ZW5lck1hcC5zZXQoZW50cnkuaWQsIGVudHJ5KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbmNlbEFjdGl2ZUxpc3RlbmVyczogKCkgPT4ge1xuICAgICAgICAgICAgZW50cnkucGVuZGluZy5mb3JFYWNoKChjb250cm9sbGVyLCBfLCBzZXQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNvbnRyb2xsZXIgIT09IGludGVybmFsVGFza0NvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICBhYm9ydENvbnRyb2xsZXJXaXRoUmVhc29uKGNvbnRyb2xsZXIsIGxpc3RlbmVyQ2FuY2VsbGVkKTtcbiAgICAgICAgICAgICAgICBzZXQuZGVsZXRlKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbmNlbDogKCkgPT4ge1xuICAgICAgICAgICAgYWJvcnRDb250cm9sbGVyV2l0aFJlYXNvbihpbnRlcm5hbFRhc2tDb250cm9sbGVyLCBsaXN0ZW5lckNhbmNlbGxlZCk7XG4gICAgICAgICAgICBlbnRyeS5wZW5kaW5nLmRlbGV0ZShpbnRlcm5hbFRhc2tDb250cm9sbGVyKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRocm93SWZDYW5jZWxsZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhbGlkYXRlQWN0aXZlKGludGVybmFsVGFza0NvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApKTtcbiAgICB9IGNhdGNoIChsaXN0ZW5lckVycm9yKSB7XG4gICAgICBpZiAoIShsaXN0ZW5lckVycm9yIGluc3RhbmNlb2YgVGFza0Fib3J0RXJyb3IpKSB7XG4gICAgICAgIHNhZmVseU5vdGlmeUVycm9yKG9uRXJyb3IsIGxpc3RlbmVyRXJyb3IsIHtcbiAgICAgICAgICByYWlzZWRCeTogXCJlZmZlY3RcIlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYXV0b0pvaW5Qcm9taXNlcyk7XG4gICAgICBhYm9ydENvbnRyb2xsZXJXaXRoUmVhc29uKGludGVybmFsVGFza0NvbnRyb2xsZXIsIGxpc3RlbmVyQ29tcGxldGVkKTtcbiAgICAgIGVudHJ5LnBlbmRpbmcuZGVsZXRlKGludGVybmFsVGFza0NvbnRyb2xsZXIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xlYXJMaXN0ZW5lck1pZGRsZXdhcmUgPSBjcmVhdGVDbGVhckxpc3RlbmVyTWlkZGxld2FyZShsaXN0ZW5lck1hcCk7XG4gIGNvbnN0IG1pZGRsZXdhcmUgPSAoYXBpKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICAgIGlmICghaXNBY3Rpb24zKGFjdGlvbikpIHtcbiAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICAgIGlmIChhZGRMaXN0ZW5lci5tYXRjaChhY3Rpb24pKSB7XG4gICAgICByZXR1cm4gc3RhcnRMaXN0ZW5pbmcoYWN0aW9uLnBheWxvYWQpO1xuICAgIH1cbiAgICBpZiAoY2xlYXJBbGxMaXN0ZW5lcnMubWF0Y2goYWN0aW9uKSkge1xuICAgICAgY2xlYXJMaXN0ZW5lck1pZGRsZXdhcmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJlbW92ZUxpc3RlbmVyLm1hdGNoKGFjdGlvbikpIHtcbiAgICAgIHJldHVybiBzdG9wTGlzdGVuaW5nKGFjdGlvbi5wYXlsb2FkKTtcbiAgICB9XG4gICAgbGV0IG9yaWdpbmFsU3RhdGUgPSBhcGkuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBnZXRPcmlnaW5hbFN0YXRlID0gKCkgPT4ge1xuICAgICAgaWYgKG9yaWdpbmFsU3RhdGUgPT09IElOVEVSTkFMX05JTF9UT0tFTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyMykgOiBgJHthbG19OiBnZXRPcmlnaW5hbFN0YXRlIGNhbiBvbmx5IGJlIGNhbGxlZCBzeW5jaHJvbm91c2x5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luYWxTdGF0ZTtcbiAgICB9O1xuICAgIGxldCByZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IG5leHQoYWN0aW9uKTtcbiAgICAgIGlmIChsaXN0ZW5lck1hcC5zaXplID4gMCkge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBhcGkuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgbGlzdGVuZXJFbnRyaWVzID0gQXJyYXkuZnJvbShsaXN0ZW5lck1hcC52YWx1ZXMoKSk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbGlzdGVuZXJFbnRyaWVzKSB7XG4gICAgICAgICAgbGV0IHJ1bkxpc3RlbmVyID0gZmFsc2U7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bkxpc3RlbmVyID0gZW50cnkucHJlZGljYXRlKGFjdGlvbiwgY3VycmVudFN0YXRlLCBvcmlnaW5hbFN0YXRlKTtcbiAgICAgICAgICB9IGNhdGNoIChwcmVkaWNhdGVFcnJvcikge1xuICAgICAgICAgICAgcnVuTGlzdGVuZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHNhZmVseU5vdGlmeUVycm9yKG9uRXJyb3IsIHByZWRpY2F0ZUVycm9yLCB7XG4gICAgICAgICAgICAgIHJhaXNlZEJ5OiBcInByZWRpY2F0ZVwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFydW5MaXN0ZW5lcikge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5vdGlmeUxpc3RlbmVyKGVudHJ5LCBhY3Rpb24sIGFwaSwgZ2V0T3JpZ2luYWxTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgb3JpZ2luYWxTdGF0ZSA9IElOVEVSTkFMX05JTF9UT0tFTjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBtaWRkbGV3YXJlLFxuICAgIHN0YXJ0TGlzdGVuaW5nLFxuICAgIHN0b3BMaXN0ZW5pbmcsXG4gICAgY2xlYXJMaXN0ZW5lcnM6IGNsZWFyTGlzdGVuZXJNaWRkbGV3YXJlXG4gIH07XG59O1xuXG4vLyBzcmMvZHluYW1pY01pZGRsZXdhcmUvaW5kZXgudHNcbmltcG9ydCB7IGNvbXBvc2UgYXMgY29tcG9zZTMgfSBmcm9tIFwicmVkdXhcIjtcbnZhciBjcmVhdGVNaWRkbGV3YXJlRW50cnkgPSAobWlkZGxld2FyZSkgPT4gKHtcbiAgbWlkZGxld2FyZSxcbiAgYXBwbGllZDogLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKVxufSk7XG52YXIgbWF0Y2hJbnN0YW5jZSA9IChpbnN0YW5jZUlkKSA9PiAoYWN0aW9uKSA9PiBhY3Rpb24/Lm1ldGE/Lmluc3RhbmNlSWQgPT09IGluc3RhbmNlSWQ7XG52YXIgY3JlYXRlRHluYW1pY01pZGRsZXdhcmUgPSAoKSA9PiB7XG4gIGNvbnN0IGluc3RhbmNlSWQgPSBuYW5vaWQoKTtcbiAgY29uc3QgbWlkZGxld2FyZU1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGNvbnN0IHdpdGhNaWRkbGV3YXJlID0gT2JqZWN0LmFzc2lnbihjcmVhdGVBY3Rpb24oXCJkeW5hbWljTWlkZGxld2FyZS9hZGRcIiwgKC4uLm1pZGRsZXdhcmVzKSA9PiAoe1xuICAgIHBheWxvYWQ6IG1pZGRsZXdhcmVzLFxuICAgIG1ldGE6IHtcbiAgICAgIGluc3RhbmNlSWRcbiAgICB9XG4gIH0pKSwge1xuICAgIHdpdGhUeXBlczogKCkgPT4gd2l0aE1pZGRsZXdhcmVcbiAgfSk7XG4gIGNvbnN0IGFkZE1pZGRsZXdhcmUgPSBPYmplY3QuYXNzaWduKGZ1bmN0aW9uIGFkZE1pZGRsZXdhcmUyKC4uLm1pZGRsZXdhcmVzKSB7XG4gICAgbWlkZGxld2FyZXMuZm9yRWFjaCgobWlkZGxld2FyZTIpID0+IHtcbiAgICAgIGdldE9ySW5zZXJ0Q29tcHV0ZWQobWlkZGxld2FyZU1hcCwgbWlkZGxld2FyZTIsIGNyZWF0ZU1pZGRsZXdhcmVFbnRyeSk7XG4gICAgfSk7XG4gIH0sIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IGFkZE1pZGRsZXdhcmVcbiAgfSk7XG4gIGNvbnN0IGdldEZpbmFsTWlkZGxld2FyZSA9IChhcGkpID0+IHtcbiAgICBjb25zdCBhcHBsaWVkTWlkZGxld2FyZSA9IEFycmF5LmZyb20obWlkZGxld2FyZU1hcC52YWx1ZXMoKSkubWFwKChlbnRyeSkgPT4gZ2V0T3JJbnNlcnRDb21wdXRlZChlbnRyeS5hcHBsaWVkLCBhcGksIGVudHJ5Lm1pZGRsZXdhcmUpKTtcbiAgICByZXR1cm4gY29tcG9zZTMoLi4uYXBwbGllZE1pZGRsZXdhcmUpO1xuICB9O1xuICBjb25zdCBpc1dpdGhNaWRkbGV3YXJlID0gaXNBbGxPZih3aXRoTWlkZGxld2FyZSwgbWF0Y2hJbnN0YW5jZShpbnN0YW5jZUlkKSk7XG4gIGNvbnN0IG1pZGRsZXdhcmUgPSAoYXBpKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICAgIGlmIChpc1dpdGhNaWRkbGV3YXJlKGFjdGlvbikpIHtcbiAgICAgIGFkZE1pZGRsZXdhcmUoLi4uYWN0aW9uLnBheWxvYWQpO1xuICAgICAgcmV0dXJuIGFwaS5kaXNwYXRjaDtcbiAgICB9XG4gICAgcmV0dXJuIGdldEZpbmFsTWlkZGxld2FyZShhcGkpKG5leHQpKGFjdGlvbik7XG4gIH07XG4gIHJldHVybiB7XG4gICAgbWlkZGxld2FyZSxcbiAgICBhZGRNaWRkbGV3YXJlLFxuICAgIHdpdGhNaWRkbGV3YXJlLFxuICAgIGluc3RhbmNlSWRcbiAgfTtcbn07XG5cbi8vIHNyYy9jb21iaW5lU2xpY2VzLnRzXG5pbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgYXMgY29tYmluZVJlZHVjZXJzMiB9IGZyb20gXCJyZWR1eFwiO1xudmFyIGlzU2xpY2VMaWtlID0gKG1heWJlU2xpY2VMaWtlKSA9PiBcInJlZHVjZXJQYXRoXCIgaW4gbWF5YmVTbGljZUxpa2UgJiYgdHlwZW9mIG1heWJlU2xpY2VMaWtlLnJlZHVjZXJQYXRoID09PSBcInN0cmluZ1wiO1xudmFyIGdldFJlZHVjZXJzID0gKHNsaWNlcykgPT4gc2xpY2VzLmZsYXRNYXAoKHNsaWNlT3JNYXApID0+IGlzU2xpY2VMaWtlKHNsaWNlT3JNYXApID8gW1tzbGljZU9yTWFwLnJlZHVjZXJQYXRoLCBzbGljZU9yTWFwLnJlZHVjZXJdXSA6IE9iamVjdC5lbnRyaWVzKHNsaWNlT3JNYXApKTtcbnZhciBPUklHSU5BTF9TVEFURSA9IFN5bWJvbC5mb3IoXCJydGstc3RhdGUtcHJveHktb3JpZ2luYWxcIik7XG52YXIgaXNTdGF0ZVByb3h5ID0gKHZhbHVlKSA9PiAhIXZhbHVlICYmICEhdmFsdWVbT1JJR0lOQUxfU1RBVEVdO1xudmFyIHN0YXRlUHJveHlNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcbnZhciBjcmVhdGVTdGF0ZVByb3h5ID0gKHN0YXRlLCByZWR1Y2VyTWFwKSA9PiBnZXRPckluc2VydENvbXB1dGVkKHN0YXRlUHJveHlNYXAsIHN0YXRlLCAoKSA9PiBuZXcgUHJveHkoc3RhdGUsIHtcbiAgZ2V0OiAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikgPT4ge1xuICAgIGlmIChwcm9wID09PSBPUklHSU5BTF9TVEFURSkgcmV0dXJuIHRhcmdldDtcbiAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJNYXBbcHJvcC50b1N0cmluZygpXTtcbiAgICAgIGlmIChyZWR1Y2VyKSB7XG4gICAgICAgIGNvbnN0IHJlZHVjZXJSZXN1bHQgPSByZWR1Y2VyKHZvaWQgMCwge1xuICAgICAgICAgIHR5cGU6IG5hbm9pZCgpXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIHJlZHVjZXJSZXN1bHQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyNCkgOiBgVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcIiR7cHJvcC50b1N0cmluZygpfVwiIHJldHVybmVkIHVuZGVmaW5lZCB3aGVuIGNhbGxlZCBmb3Igc2VsZWN0b3IoKS4gSWYgdGhlIHN0YXRlIHBhc3NlZCB0byB0aGUgcmVkdWNlciBpcyB1bmRlZmluZWQsIHlvdSBtdXN0IGV4cGxpY2l0bHkgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLiBUaGUgaW5pdGlhbCBzdGF0ZSBtYXkgbm90IGJlIHVuZGVmaW5lZC4gSWYgeW91IGRvbid0IHdhbnQgdG8gc2V0IGEgdmFsdWUgZm9yIHRoaXMgcmVkdWNlciwgeW91IGNhbiB1c2UgbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZC5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVkdWNlclJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSkpO1xudmFyIG9yaWdpbmFsID0gKHN0YXRlKSA9PiB7XG4gIGlmICghaXNTdGF0ZVByb3h5KHN0YXRlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDI1KSA6IFwib3JpZ2luYWwgbXVzdCBiZSB1c2VkIG9uIHN0YXRlIFByb3h5XCIpO1xuICB9XG4gIHJldHVybiBzdGF0ZVtPUklHSU5BTF9TVEFURV07XG59O1xudmFyIG5vb3BSZWR1Y2VyID0gKHN0YXRlID0ge30pID0+IHN0YXRlO1xuZnVuY3Rpb24gY29tYmluZVNsaWNlcyguLi5zbGljZXMpIHtcbiAgY29uc3QgcmVkdWNlck1hcCA9IE9iamVjdC5mcm9tRW50cmllcyhnZXRSZWR1Y2VycyhzbGljZXMpKTtcbiAgY29uc3QgZ2V0UmVkdWNlciA9ICgpID0+IE9iamVjdC5rZXlzKHJlZHVjZXJNYXApLmxlbmd0aCA/IGNvbWJpbmVSZWR1Y2VyczIocmVkdWNlck1hcCkgOiBub29wUmVkdWNlcjtcbiAgbGV0IHJlZHVjZXIgPSBnZXRSZWR1Y2VyKCk7XG4gIGZ1bmN0aW9uIGNvbWJpbmVkUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgcmV0dXJuIHJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG4gIH1cbiAgY29tYmluZWRSZWR1Y2VyLndpdGhMYXp5TG9hZGVkU2xpY2VzID0gKCkgPT4gY29tYmluZWRSZWR1Y2VyO1xuICBjb25zdCBpbmplY3QgPSAoc2xpY2UsIGNvbmZpZyA9IHt9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgcmVkdWNlclBhdGgsXG4gICAgICByZWR1Y2VyOiByZWR1Y2VyVG9JbmplY3RcbiAgICB9ID0gc2xpY2U7XG4gICAgY29uc3QgY3VycmVudFJlZHVjZXIgPSByZWR1Y2VyTWFwW3JlZHVjZXJQYXRoXTtcbiAgICBpZiAoIWNvbmZpZy5vdmVycmlkZUV4aXN0aW5nICYmIGN1cnJlbnRSZWR1Y2VyICYmIGN1cnJlbnRSZWR1Y2VyICE9PSByZWR1Y2VyVG9JbmplY3QpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbGxlZCBcXGBpbmplY3RcXGAgdG8gb3ZlcnJpZGUgYWxyZWFkeS1leGlzdGluZyByZWR1Y2VyICR7cmVkdWNlclBhdGh9IHdpdGhvdXQgc3BlY2lmeWluZyBcXGBvdmVycmlkZUV4aXN0aW5nOiB0cnVlXFxgYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29tYmluZWRSZWR1Y2VyO1xuICAgIH1cbiAgICByZWR1Y2VyTWFwW3JlZHVjZXJQYXRoXSA9IHJlZHVjZXJUb0luamVjdDtcbiAgICByZWR1Y2VyID0gZ2V0UmVkdWNlcigpO1xuICAgIHJldHVybiBjb21iaW5lZFJlZHVjZXI7XG4gIH07XG4gIGNvbnN0IHNlbGVjdG9yID0gT2JqZWN0LmFzc2lnbihmdW5jdGlvbiBtYWtlU2VsZWN0b3Ioc2VsZWN0b3JGbiwgc2VsZWN0U3RhdGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0b3IyKHN0YXRlLCAuLi5hcmdzKSB7XG4gICAgICByZXR1cm4gc2VsZWN0b3JGbihjcmVhdGVTdGF0ZVByb3h5KHNlbGVjdFN0YXRlID8gc2VsZWN0U3RhdGUoc3RhdGUsIC4uLmFyZ3MpIDogc3RhdGUsIHJlZHVjZXJNYXApLCAuLi5hcmdzKTtcbiAgICB9O1xuICB9LCB7XG4gICAgb3JpZ2luYWxcbiAgfSk7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKGNvbWJpbmVkUmVkdWNlciwge1xuICAgIGluamVjdCxcbiAgICBzZWxlY3RvclxuICB9KTtcbn1cblxuLy8gc3JjL2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UudHNcbmZ1bmN0aW9uIGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoY29kZSkge1xuICByZXR1cm4gYE1pbmlmaWVkIFJlZHV4IFRvb2xraXQgZXJyb3IgIyR7Y29kZX07IHZpc2l0IGh0dHBzOi8vcmVkdXgtdG9vbGtpdC5qcy5vcmcvRXJyb3JzP2NvZGU9JHtjb2RlfSBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzLiBgO1xufVxuZXhwb3J0IHtcbiAgUmVkdWNlclR5cGUsXG4gIFNIT1VMRF9BVVRPQkFUQ0gsXG4gIFRhc2tBYm9ydEVycm9yLFxuICBUdXBsZSxcbiAgYWRkTGlzdGVuZXIsXG4gIGFzeW5jVGh1bmtDcmVhdG9yLFxuICBhdXRvQmF0Y2hFbmhhbmNlcixcbiAgYnVpbGRDcmVhdGVTbGljZSxcbiAgY2xlYXJBbGxMaXN0ZW5lcnMsXG4gIGNvbWJpbmVTbGljZXMsXG4gIGNvbmZpZ3VyZVN0b3JlLFxuICBjcmVhdGVBY3Rpb24sXG4gIGNyZWF0ZUFjdGlvbkNyZWF0b3JJbnZhcmlhbnRNaWRkbGV3YXJlLFxuICBjcmVhdGVBc3luY1RodW5rLFxuICBjcmVhdGVEcmFmdFNhZmVTZWxlY3RvcixcbiAgY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3JDcmVhdG9yLFxuICBjcmVhdGVEeW5hbWljTWlkZGxld2FyZSxcbiAgY3JlYXRlRW50aXR5QWRhcHRlcixcbiAgY3JlYXRlSW1tdXRhYmxlU3RhdGVJbnZhcmlhbnRNaWRkbGV3YXJlLFxuICBjcmVhdGVMaXN0ZW5lck1pZGRsZXdhcmUsXG4gIHByb2R1Y2UgYXMgY3JlYXRlTmV4dFN0YXRlLFxuICBjcmVhdGVSZWR1Y2VyLFxuICBjcmVhdGVTZWxlY3RvcixcbiAgY3JlYXRlU2VsZWN0b3JDcmVhdG9yMiBhcyBjcmVhdGVTZWxlY3RvckNyZWF0b3IsXG4gIGNyZWF0ZVNlcmlhbGl6YWJsZVN0YXRlSW52YXJpYW50TWlkZGxld2FyZSxcbiAgY3JlYXRlU2xpY2UsXG4gIGN1cnJlbnQzIGFzIGN1cnJlbnQsXG4gIGZpbmROb25TZXJpYWxpemFibGVWYWx1ZSxcbiAgZm9ybWF0UHJvZEVycm9yTWVzc2FnZSxcbiAgZnJlZXplLFxuICBpc0FjdGlvbkNyZWF0b3IsXG4gIGlzQWxsT2YsXG4gIGlzQW55T2YsXG4gIGlzQXN5bmNUaHVua0FjdGlvbixcbiAgaXNEcmFmdDUgYXMgaXNEcmFmdCxcbiAgaXNGU0EgYXMgaXNGbHV4U3RhbmRhcmRBY3Rpb24sXG4gIGlzRnVsZmlsbGVkLFxuICBpc0ltbXV0YWJsZURlZmF1bHQsXG4gIGlzUGVuZGluZyxcbiAgaXNQbGFpbixcbiAgaXNSZWplY3RlZCxcbiAgaXNSZWplY3RlZFdpdGhWYWx1ZSxcbiAgbHJ1TWVtb2l6ZSxcbiAgbWluaVNlcmlhbGl6ZUVycm9yLFxuICBuYW5vaWQsXG4gIG9yaWdpbmFsMiBhcyBvcmlnaW5hbCxcbiAgcHJlcGFyZUF1dG9CYXRjaGVkLFxuICByZW1vdmVMaXN0ZW5lcixcbiAgdW53cmFwUmVzdWx0LFxuICB3ZWFrTWFwTWVtb2l6ZTIgYXMgd2Vha01hcE1lbW9pemVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWR1eC10b29sa2l0Lm1vZGVybi5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@tanstack/react-table/build/lib/index.mjs": /*!****************************************************************!*\ !*** ./node_modules/@tanstack/react-table/build/lib/index.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColumnFaceting: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnFaceting),\n/* harmony export */ ColumnFiltering: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnFiltering),\n/* harmony export */ ColumnGrouping: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnGrouping),\n/* harmony export */ ColumnOrdering: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnOrdering),\n/* harmony export */ ColumnPinning: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnPinning),\n/* harmony export */ ColumnSizing: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnSizing),\n/* harmony export */ ColumnVisibility: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.ColumnVisibility),\n/* harmony export */ GlobalFaceting: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.GlobalFaceting),\n/* harmony export */ GlobalFiltering: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.GlobalFiltering),\n/* harmony export */ Headers: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.Headers),\n/* harmony export */ RowExpanding: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.RowExpanding),\n/* harmony export */ RowPagination: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.RowPagination),\n/* harmony export */ RowPinning: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.RowPinning),\n/* harmony export */ RowSelection: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.RowSelection),\n/* harmony export */ RowSorting: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.RowSorting),\n/* harmony export */ _getVisibleLeafColumns: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__._getVisibleLeafColumns),\n/* harmony export */ aggregationFns: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.aggregationFns),\n/* harmony export */ buildHeaderGroups: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.buildHeaderGroups),\n/* harmony export */ createCell: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createCell),\n/* harmony export */ createColumn: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createColumn),\n/* harmony export */ createColumnHelper: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createColumnHelper),\n/* harmony export */ createRow: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createRow),\n/* harmony export */ createTable: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createTable),\n/* harmony export */ defaultColumnSizing: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.defaultColumnSizing),\n/* harmony export */ expandRows: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.expandRows),\n/* harmony export */ filterFns: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.filterFns),\n/* harmony export */ flattenBy: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.flattenBy),\n/* harmony export */ flexRender: () => (/* binding */ flexRender),\n/* harmony export */ functionalUpdate: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.functionalUpdate),\n/* harmony export */ getCoreRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getCoreRowModel),\n/* harmony export */ getExpandedRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getExpandedRowModel),\n/* harmony export */ getFacetedMinMaxValues: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getFacetedMinMaxValues),\n/* harmony export */ getFacetedRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getFacetedRowModel),\n/* harmony export */ getFacetedUniqueValues: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getFacetedUniqueValues),\n/* harmony export */ getFilteredRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getFilteredRowModel),\n/* harmony export */ getGroupedRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getGroupedRowModel),\n/* harmony export */ getMemoOptions: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getMemoOptions),\n/* harmony export */ getPaginationRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getPaginationRowModel),\n/* harmony export */ getSortedRowModel: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.getSortedRowModel),\n/* harmony export */ isFunction: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.isFunction),\n/* harmony export */ isNumberArray: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.isNumberArray),\n/* harmony export */ isRowSelected: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.isRowSelected),\n/* harmony export */ isSubRowSelected: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.isSubRowSelected),\n/* harmony export */ makeStateUpdater: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.makeStateUpdater),\n/* harmony export */ memo: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.memo),\n/* harmony export */ noop: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.noop),\n/* harmony export */ orderColumns: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.orderColumns),\n/* harmony export */ passiveEventSupported: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.passiveEventSupported),\n/* harmony export */ reSplitAlphaNumeric: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.reSplitAlphaNumeric),\n/* harmony export */ selectRowsFn: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.selectRowsFn),\n/* harmony export */ shouldAutoRemoveFilter: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.shouldAutoRemoveFilter),\n/* harmony export */ sortingFns: () => (/* reexport safe */ _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.sortingFns),\n/* harmony export */ useReactTable: () => (/* binding */ useReactTable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tanstack/table-core */ \"(app-pages-browser)/./node_modules/@tanstack/table-core/build/lib/index.mjs\");\n/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => ({\n current: (0,_tanstack_table_core__WEBPACK_IMPORTED_MODULE_1__.createTable)(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AdGFuc3RhY2svcmVhY3QtdGFibGUvYnVpbGQvbGliL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDK0I7QUFDb0I7QUFDZDs7QUFFckM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsZ0RBQW1CO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsMkNBQWM7QUFDbkMsYUFBYSxpRUFBVztBQUN4QixHQUFHOztBQUVIO0FBQ0EsNEJBQTRCLDJDQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvQHRhbnN0YWNrL3JlYWN0LXRhYmxlL2J1aWxkL2xpYi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gICAqIHJlYWN0LXRhYmxlXG4gICAqXG4gICAqIENvcHlyaWdodCAoYykgVGFuU3RhY2tcbiAgICpcbiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gICAqIExJQ0VOU0UubWQgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAgICpcbiAgICogQGxpY2Vuc2UgTUlUXG4gICAqL1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlVGFibGUgfSBmcm9tICdAdGFuc3RhY2svdGFibGUtY29yZSc7XG5leHBvcnQgKiBmcm9tICdAdGFuc3RhY2svdGFibGUtY29yZSc7XG5cbi8vXG5cbi8qKlxuICogSWYgcmVuZGVyaW5nIGhlYWRlcnMsIGNlbGxzLCBvciBmb290ZXJzIHdpdGggY3VzdG9tIG1hcmt1cCwgdXNlIGZsZXhSZW5kZXIgaW5zdGVhZCBvZiBgY2VsbC5nZXRWYWx1ZSgpYCBvciBgY2VsbC5yZW5kZXJWYWx1ZSgpYC5cbiAqL1xuZnVuY3Rpb24gZmxleFJlbmRlcihDb21wLCBwcm9wcykge1xuICByZXR1cm4gIUNvbXAgPyBudWxsIDogaXNSZWFjdENvbXBvbmVudChDb21wKSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXAsIHByb3BzKSA6IENvbXA7XG59XG5mdW5jdGlvbiBpc1JlYWN0Q29tcG9uZW50KGNvbXBvbmVudCkge1xuICByZXR1cm4gaXNDbGFzc0NvbXBvbmVudChjb21wb25lbnQpIHx8IHR5cGVvZiBjb21wb25lbnQgPT09ICdmdW5jdGlvbicgfHwgaXNFeG90aWNDb21wb25lbnQoY29tcG9uZW50KTtcbn1cbmZ1bmN0aW9uIGlzQ2xhc3NDb21wb25lbnQoY29tcG9uZW50KSB7XG4gIHJldHVybiB0eXBlb2YgY29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmICgoKSA9PiB7XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29tcG9uZW50KTtcbiAgICByZXR1cm4gcHJvdG8ucHJvdG90eXBlICYmIHByb3RvLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50O1xuICB9KSgpO1xufVxuZnVuY3Rpb24gaXNFeG90aWNDb21wb25lbnQoY29tcG9uZW50KSB7XG4gIHJldHVybiB0eXBlb2YgY29tcG9uZW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgY29tcG9uZW50LiQkdHlwZW9mID09PSAnc3ltYm9sJyAmJiBbJ3JlYWN0Lm1lbW8nLCAncmVhY3QuZm9yd2FyZF9yZWYnXS5pbmNsdWRlcyhjb21wb25lbnQuJCR0eXBlb2YuZGVzY3JpcHRpb24pO1xufVxuZnVuY3Rpb24gdXNlUmVhY3RUYWJsZShvcHRpb25zKSB7XG4gIC8vIENvbXBvc2UgaW4gdGhlIGdlbmVyaWMgb3B0aW9ucyB0byB0aGUgdXNlciBvcHRpb25zXG4gIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IHtcbiAgICBzdGF0ZToge30sXG4gICAgLy8gRHVtbXkgc3RhdGVcbiAgICBvblN0YXRlQ2hhbmdlOiAoKSA9PiB7fSxcbiAgICAvLyBub29wXG4gICAgcmVuZGVyRmFsbGJhY2tWYWx1ZTogbnVsbCxcbiAgICAuLi5vcHRpb25zXG4gIH07XG5cbiAgLy8gQ3JlYXRlIGEgbmV3IHRhYmxlIGFuZCBzdG9yZSBpdCBpbiBzdGF0ZVxuICBjb25zdCBbdGFibGVSZWZdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gKHtcbiAgICBjdXJyZW50OiBjcmVhdGVUYWJsZShyZXNvbHZlZE9wdGlvbnMpXG4gIH0pKTtcblxuICAvLyBCeSBkZWZhdWx0LCBtYW5hZ2UgdGFibGUgc3RhdGUgaGVyZSB1c2luZyB0aGUgdGFibGUncyBpbml0aWFsIHN0YXRlXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gdGFibGVSZWYuY3VycmVudC5pbml0aWFsU3RhdGUpO1xuXG4gIC8vIENvbXBvc2UgdGhlIGRlZmF1bHQgc3RhdGUgYWJvdmUgd2l0aCBhbnkgdXNlciBzdGF0ZS4gVGhpcyB3aWxsIGFsbG93IHRoZSB1c2VyXG4gIC8vIHRvIG9ubHkgY29udHJvbCBhIHN1YnNldCBvZiB0aGUgc3RhdGUgaWYgZGVzaXJlZC5cbiAgdGFibGVSZWYuY3VycmVudC5zZXRPcHRpb25zKHByZXYgPT4gKHtcbiAgICAuLi5wcmV2LFxuICAgIC4uLm9wdGlvbnMsXG4gICAgc3RhdGU6IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgLi4ub3B0aW9ucy5zdGF0ZVxuICAgIH0sXG4gICAgLy8gU2ltaWxhcmx5LCB3ZSdsbCBtYWludGFpbiBib3RoIG91ciBpbnRlcm5hbCBzdGF0ZSBhbmQgYW55IHVzZXItcHJvdmlkZWRcbiAgICAvLyBzdGF0ZS5cbiAgICBvblN0YXRlQ2hhbmdlOiB1cGRhdGVyID0+IHtcbiAgICAgIHNldFN0YXRlKHVwZGF0ZXIpO1xuICAgICAgb3B0aW9ucy5vblN0YXRlQ2hhbmdlID09IG51bGwgfHwgb3B0aW9ucy5vblN0YXRlQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIH1cbiAgfSkpO1xuICByZXR1cm4gdGFibGVSZWYuY3VycmVudDtcbn1cblxuZXhwb3J0IHsgZmxleFJlbmRlciwgdXNlUmVhY3RUYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@tanstack/react-table/build/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/@tanstack/table-core/build/lib/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@tanstack/table-core/build/lib/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColumnFaceting: () => (/* binding */ ColumnFaceting),\n/* harmony export */ ColumnFiltering: () => (/* binding */ ColumnFiltering),\n/* harmony export */ ColumnGrouping: () => (/* binding */ ColumnGrouping),\n/* harmony export */ ColumnOrdering: () => (/* binding */ ColumnOrdering),\n/* harmony export */ ColumnPinning: () => (/* binding */ ColumnPinning),\n/* harmony export */ ColumnSizing: () => (/* binding */ ColumnSizing),\n/* harmony export */ ColumnVisibility: () => (/* binding */ ColumnVisibility),\n/* harmony export */ GlobalFaceting: () => (/* binding */ GlobalFaceting),\n/* harmony export */ GlobalFiltering: () => (/* binding */ GlobalFiltering),\n/* harmony export */ Headers: () => (/* binding */ Headers),\n/* harmony export */ RowExpanding: () => (/* binding */ RowExpanding),\n/* harmony export */ RowPagination: () => (/* binding */ RowPagination),\n/* harmony export */ RowPinning: () => (/* binding */ RowPinning),\n/* harmony export */ RowSelection: () => (/* binding */ RowSelection),\n/* harmony export */ RowSorting: () => (/* binding */ RowSorting),\n/* harmony export */ _getVisibleLeafColumns: () => (/* binding */ _getVisibleLeafColumns),\n/* harmony export */ aggregationFns: () => (/* binding */ aggregationFns),\n/* harmony export */ buildHeaderGroups: () => (/* binding */ buildHeaderGroups),\n/* harmony export */ createCell: () => (/* binding */ createCell),\n/* harmony export */ createColumn: () => (/* binding */ createColumn),\n/* harmony export */ createColumnHelper: () => (/* binding */ createColumnHelper),\n/* harmony export */ createRow: () => (/* binding */ createRow),\n/* harmony export */ createTable: () => (/* binding */ createTable),\n/* harmony export */ defaultColumnSizing: () => (/* binding */ defaultColumnSizing),\n/* harmony export */ expandRows: () => (/* binding */ expandRows),\n/* harmony export */ filterFns: () => (/* binding */ filterFns),\n/* harmony export */ flattenBy: () => (/* binding */ flattenBy),\n/* harmony export */ functionalUpdate: () => (/* binding */ functionalUpdate),\n/* harmony export */ getCoreRowModel: () => (/* binding */ getCoreRowModel),\n/* harmony export */ getExpandedRowModel: () => (/* binding */ getExpandedRowModel),\n/* harmony export */ getFacetedMinMaxValues: () => (/* binding */ getFacetedMinMaxValues),\n/* harmony export */ getFacetedRowModel: () => (/* binding */ getFacetedRowModel),\n/* harmony export */ getFacetedUniqueValues: () => (/* binding */ getFacetedUniqueValues),\n/* harmony export */ getFilteredRowModel: () => (/* binding */ getFilteredRowModel),\n/* harmony export */ getGroupedRowModel: () => (/* binding */ getGroupedRowModel),\n/* harmony export */ getMemoOptions: () => (/* binding */ getMemoOptions),\n/* harmony export */ getPaginationRowModel: () => (/* binding */ getPaginationRowModel),\n/* harmony export */ getSortedRowModel: () => (/* binding */ getSortedRowModel),\n/* harmony export */ isFunction: () => (/* binding */ isFunction),\n/* harmony export */ isNumberArray: () => (/* binding */ isNumberArray),\n/* harmony export */ isRowSelected: () => (/* binding */ isRowSelected),\n/* harmony export */ isSubRowSelected: () => (/* binding */ isSubRowSelected),\n/* harmony export */ makeStateUpdater: () => (/* binding */ makeStateUpdater),\n/* harmony export */ memo: () => (/* binding */ memo),\n/* harmony export */ noop: () => (/* binding */ noop),\n/* harmony export */ orderColumns: () => (/* binding */ orderColumns),\n/* harmony export */ passiveEventSupported: () => (/* binding */ passiveEventSupported),\n/* harmony export */ reSplitAlphaNumeric: () => (/* binding */ reSplitAlphaNumeric),\n/* harmony export */ selectRowsFn: () => (/* binding */ selectRowsFn),\n/* harmony export */ shouldAutoRemoveFilter: () => (/* binding */ shouldAutoRemoveFilter),\n/* harmony export */ sortingFns: () => (/* binding */ sortingFns)\n/* harmony export */ });\n/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: true && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if ( true && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (true) {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = _contextDocument || typeof document !== 'undefined' ? document : null;\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if ( true && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (true) {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if ( true && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (true) {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AdGFuc3RhY2svdGFibGUtY29yZS9idWlsZC9saWIvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsaUJBQWlCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qix1QkFBdUIsR0FBRyxvQkFBb0I7QUFDMUU7QUFDQTtBQUNBLHlCQUF5Qiw0REFBNEQsY0FBYztBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxTQUFTLEtBQXNDO0FBQy9DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU8sR0FBRyxVQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyxJQUFJO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLEtBQXFDO0FBQ25ELDZCQUE2QixJQUFJLDBCQUEwQixZQUFZO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE1BQU07QUFDbEM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyw2REFBNkQ7QUFDekc7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFJO0FBQ1gsS0FBSztBQUNMO0FBQ0Esa0JBQWtCLDRCQUE0QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsZ0dBQWdHO0FBQzlJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Qsb0dBQW9HO0FBQ3RKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxLQUFLO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUiw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsMkpBQTJKO0FBQ3JNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxnR0FBZ0c7QUFDcko7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUNBQW1DO0FBQ3pELFdBQVc7O0FBRVg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9JQUFvSTtBQUNwSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxJQUFJO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxpS0FBaUssOENBQThDO0FBQy9NLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLElBQXFDO0FBQ25ELGtFQUFrRSxHQUFHO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVMsSUFBSTtBQUNiO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQUk7QUFDWCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxVQUFVLEtBQXFDO0FBQy9DLGlEQUFpRCxTQUFTO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZ0NBQWdDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlCQUF5QjtBQUMvQztBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsR0FBRztBQUN0RTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxtR0FBbUc7QUFDbkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRDtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLHlCQUF5QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esb0JBQW9CLHlCQUF5QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDBCQUEwQjtBQUNo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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esd0JBQXdCLDZCQUE2QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRW8wQjtBQUNwMEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0B0YW5zdGFjay90YWJsZS1jb3JlL2J1aWxkL2xpYi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gICAqIHRhYmxlLWNvcmVcbiAgICpcbiAgICogQ29weXJpZ2h0IChjKSBUYW5TdGFja1xuICAgKlxuICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAgICogTElDRU5TRS5tZCBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICAgKlxuICAgKiBAbGljZW5zZSBNSVRcbiAgICovXG4vLyB0eXBlIFBlcnNvbiA9IHtcbi8vICAgZmlyc3ROYW1lOiBzdHJpbmdcbi8vICAgbGFzdE5hbWU6IHN0cmluZ1xuLy8gICBhZ2U6IG51bWJlclxuLy8gICB2aXNpdHM6IG51bWJlclxuLy8gICBzdGF0dXM6IHN0cmluZ1xuLy8gICBwcm9ncmVzczogbnVtYmVyXG4vLyAgIGNyZWF0ZWRBdDogRGF0ZVxuLy8gICBuZXN0ZWQ6IHtcbi8vICAgICBmb286IFtcbi8vICAgICAgIHtcbi8vICAgICAgICAgYmFyOiAnYmFyJ1xuLy8gICAgICAgfVxuLy8gICAgIF1cbi8vICAgICBiYXI6IHsgc3ViQmFyOiBib29sZWFuIH1bXVxuLy8gICAgIGJhejoge1xuLy8gICAgICAgZm9vOiAnZm9vJ1xuLy8gICAgICAgYmFyOiB7XG4vLyAgICAgICAgIGJhejogJ2Jheidcbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cblxuLy8gY29uc3QgdGVzdDogRGVlcEtleXM8UGVyc29uPiA9ICduZXN0ZWQuZm9vLjAuYmFyJ1xuLy8gY29uc3QgdGVzdDI6IERlZXBLZXlzPFBlcnNvbj4gPSAnbmVzdGVkLmJhcidcblxuLy8gY29uc3QgaGVscGVyID0gY3JlYXRlQ29sdW1uSGVscGVyPFBlcnNvbj4oKVxuXG4vLyBoZWxwZXIuYWNjZXNzb3IoJ25lc3RlZC5mb28nLCB7XG4vLyAgIGNlbGw6IGluZm8gPT4gaW5mby5nZXRWYWx1ZSgpLFxuLy8gfSlcblxuLy8gaGVscGVyLmFjY2Vzc29yKCduZXN0ZWQuZm9vLjAuYmFyJywge1xuLy8gICBjZWxsOiBpbmZvID0+IGluZm8uZ2V0VmFsdWUoKSxcbi8vIH0pXG5cbi8vIGhlbHBlci5hY2Nlc3NvcignbmVzdGVkLmJhcicsIHtcbi8vICAgY2VsbDogaW5mbyA9PiBpbmZvLmdldFZhbHVlKCksXG4vLyB9KVxuXG5mdW5jdGlvbiBjcmVhdGVDb2x1bW5IZWxwZXIoKSB7XG4gIHJldHVybiB7XG4gICAgYWNjZXNzb3I6IChhY2Nlc3NvciwgY29sdW1uKSA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgIGFjY2Vzc29yRm46IGFjY2Vzc29yXG4gICAgICB9IDoge1xuICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgIGFjY2Vzc29yS2V5OiBhY2Nlc3NvclxuICAgICAgfTtcbiAgICB9LFxuICAgIGRpc3BsYXk6IGNvbHVtbiA9PiBjb2x1bW4sXG4gICAgZ3JvdXA6IGNvbHVtbiA9PiBjb2x1bW5cbiAgfTtcbn1cblxuLy8gSXMgdGhpcyB0eXBlIGEgdHVwbGU/XG5cbi8vIElmIHRoaXMgdHlwZSBpcyBhIHR1cGxlLCB3aGF0IGluZGljZXMgYXJlIGFsbG93ZWQ/XG5cbi8vL1xuXG5mdW5jdGlvbiBmdW5jdGlvbmFsVXBkYXRlKHVwZGF0ZXIsIGlucHV0KSB7XG4gIHJldHVybiB0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJyA/IHVwZGF0ZXIoaW5wdXQpIDogdXBkYXRlcjtcbn1cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIC8vXG59XG5mdW5jdGlvbiBtYWtlU3RhdGVVcGRhdGVyKGtleSwgaW5zdGFuY2UpIHtcbiAgcmV0dXJuIHVwZGF0ZXIgPT4ge1xuICAgIGluc3RhbmNlLnNldFN0YXRlKG9sZCA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vbGQsXG4gICAgICAgIFtrZXldOiBmdW5jdGlvbmFsVXBkYXRlKHVwZGF0ZXIsIG9sZFtrZXldKVxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZCkge1xuICByZXR1cm4gZCBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xufVxuZnVuY3Rpb24gaXNOdW1iZXJBcnJheShkKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGQpICYmIGQuZXZlcnkodmFsID0+IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW5CeShhcnIsIGdldENoaWxkcmVuKSB7XG4gIGNvbnN0IGZsYXQgPSBbXTtcbiAgY29uc3QgcmVjdXJzZSA9IHN1YkFyciA9PiB7XG4gICAgc3ViQXJyLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBmbGF0LnB1c2goaXRlbSk7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGdldENoaWxkcmVuKGl0ZW0pO1xuICAgICAgaWYgKGNoaWxkcmVuICE9IG51bGwgJiYgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIHJlY3Vyc2UoY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICByZWN1cnNlKGFycik7XG4gIHJldHVybiBmbGF0O1xufVxuZnVuY3Rpb24gbWVtbyhnZXREZXBzLCBmbiwgb3B0cykge1xuICBsZXQgZGVwcyA9IFtdO1xuICBsZXQgcmVzdWx0O1xuICByZXR1cm4gZGVwQXJncyA9PiB7XG4gICAgbGV0IGRlcFRpbWU7XG4gICAgaWYgKG9wdHMua2V5ICYmIG9wdHMuZGVidWcpIGRlcFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IG5ld0RlcHMgPSBnZXREZXBzKGRlcEFyZ3MpO1xuICAgIGNvbnN0IGRlcHNDaGFuZ2VkID0gbmV3RGVwcy5sZW5ndGggIT09IGRlcHMubGVuZ3RoIHx8IG5ld0RlcHMuc29tZSgoZGVwLCBpbmRleCkgPT4gZGVwc1tpbmRleF0gIT09IGRlcCk7XG4gICAgaWYgKCFkZXBzQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZGVwcyA9IG5ld0RlcHM7XG4gICAgbGV0IHJlc3VsdFRpbWU7XG4gICAgaWYgKG9wdHMua2V5ICYmIG9wdHMuZGVidWcpIHJlc3VsdFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHJlc3VsdCA9IGZuKC4uLm5ld0RlcHMpO1xuICAgIG9wdHMgPT0gbnVsbCB8fCBvcHRzLm9uQ2hhbmdlID09IG51bGwgfHwgb3B0cy5vbkNoYW5nZShyZXN1bHQpO1xuICAgIGlmIChvcHRzLmtleSAmJiBvcHRzLmRlYnVnKSB7XG4gICAgICBpZiAob3B0cyAhPSBudWxsICYmIG9wdHMuZGVidWcoKSkge1xuICAgICAgICBjb25zdCBkZXBFbmRUaW1lID0gTWF0aC5yb3VuZCgoRGF0ZS5ub3coKSAtIGRlcFRpbWUpICogMTAwKSAvIDEwMDtcbiAgICAgICAgY29uc3QgcmVzdWx0RW5kVGltZSA9IE1hdGgucm91bmQoKERhdGUubm93KCkgLSByZXN1bHRUaW1lKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgIGNvbnN0IHJlc3VsdEZwc1BlcmNlbnRhZ2UgPSByZXN1bHRFbmRUaW1lIC8gMTY7XG4gICAgICAgIGNvbnN0IHBhZCA9IChzdHIsIG51bSkgPT4ge1xuICAgICAgICAgIHN0ciA9IFN0cmluZyhzdHIpO1xuICAgICAgICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgbnVtKSB7XG4gICAgICAgICAgICBzdHIgPSAnICcgKyBzdHI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUuaW5mbyhgJWPij7EgJHtwYWQocmVzdWx0RW5kVGltZSwgNSl9IC8ke3BhZChkZXBFbmRUaW1lLCA1KX0gbXNgLCBgXG4gICAgICAgICAgICBmb250LXNpemU6IC42cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBjb2xvcjogaHNsKCR7TWF0aC5tYXgoMCwgTWF0aC5taW4oMTIwIC0gMTIwICogcmVzdWx0RnBzUGVyY2VudGFnZSwgMTIwKSl9ZGVnIDEwMCUgMzElKTtgLCBvcHRzID09IG51bGwgPyB2b2lkIDAgOiBvcHRzLmtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5mdW5jdGlvbiBnZXRNZW1vT3B0aW9ucyh0YWJsZU9wdGlvbnMsIGRlYnVnTGV2ZWwsIGtleSwgb25DaGFuZ2UpIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZU9wdGlvbnMkZGVidWdBbDtcbiAgICAgIHJldHVybiAoX3RhYmxlT3B0aW9ucyRkZWJ1Z0FsID0gdGFibGVPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZU9wdGlvbnMuZGVidWdBbGwpICE9IG51bGwgPyBfdGFibGVPcHRpb25zJGRlYnVnQWwgOiB0YWJsZU9wdGlvbnNbZGVidWdMZXZlbF07XG4gICAgfSxcbiAgICBrZXk6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIGtleSxcbiAgICBvbkNoYW5nZVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDZWxsKHRhYmxlLCByb3csIGNvbHVtbiwgY29sdW1uSWQpIHtcbiAgY29uc3QgZ2V0UmVuZGVyVmFsdWUgPSAoKSA9PiB7XG4gICAgdmFyIF9jZWxsJGdldFZhbHVlO1xuICAgIHJldHVybiAoX2NlbGwkZ2V0VmFsdWUgPSBjZWxsLmdldFZhbHVlKCkpICE9IG51bGwgPyBfY2VsbCRnZXRWYWx1ZSA6IHRhYmxlLm9wdGlvbnMucmVuZGVyRmFsbGJhY2tWYWx1ZTtcbiAgfTtcbiAgY29uc3QgY2VsbCA9IHtcbiAgICBpZDogYCR7cm93LmlkfV8ke2NvbHVtbi5pZH1gLFxuICAgIHJvdyxcbiAgICBjb2x1bW4sXG4gICAgZ2V0VmFsdWU6ICgpID0+IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCksXG4gICAgcmVuZGVyVmFsdWU6IGdldFJlbmRlclZhbHVlLFxuICAgIGdldENvbnRleHQ6IG1lbW8oKCkgPT4gW3RhYmxlLCBjb2x1bW4sIHJvdywgY2VsbF0sICh0YWJsZSwgY29sdW1uLCByb3csIGNlbGwpID0+ICh7XG4gICAgICB0YWJsZSxcbiAgICAgIGNvbHVtbixcbiAgICAgIHJvdyxcbiAgICAgIGNlbGw6IGNlbGwsXG4gICAgICBnZXRWYWx1ZTogY2VsbC5nZXRWYWx1ZSxcbiAgICAgIHJlbmRlclZhbHVlOiBjZWxsLnJlbmRlclZhbHVlXG4gICAgfSksIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z0NlbGxzJywgJ2NlbGwuZ2V0Q29udGV4dCcpKVxuICB9O1xuICB0YWJsZS5fZmVhdHVyZXMuZm9yRWFjaChmZWF0dXJlID0+IHtcbiAgICBmZWF0dXJlLmNyZWF0ZUNlbGwgPT0gbnVsbCB8fCBmZWF0dXJlLmNyZWF0ZUNlbGwoY2VsbCwgY29sdW1uLCByb3csIHRhYmxlKTtcbiAgfSwge30pO1xuICByZXR1cm4gY2VsbDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29sdW1uKHRhYmxlLCBjb2x1bW5EZWYsIGRlcHRoLCBwYXJlbnQpIHtcbiAgdmFyIF9yZWYsIF9yZXNvbHZlZENvbHVtbkRlZiRpZDtcbiAgY29uc3QgZGVmYXVsdENvbHVtbiA9IHRhYmxlLl9nZXREZWZhdWx0Q29sdW1uRGVmKCk7XG4gIGNvbnN0IHJlc29sdmVkQ29sdW1uRGVmID0ge1xuICAgIC4uLmRlZmF1bHRDb2x1bW4sXG4gICAgLi4uY29sdW1uRGVmXG4gIH07XG4gIGNvbnN0IGFjY2Vzc29yS2V5ID0gcmVzb2x2ZWRDb2x1bW5EZWYuYWNjZXNzb3JLZXk7XG4gIGxldCBpZCA9IChfcmVmID0gKF9yZXNvbHZlZENvbHVtbkRlZiRpZCA9IHJlc29sdmVkQ29sdW1uRGVmLmlkKSAhPSBudWxsID8gX3Jlc29sdmVkQ29sdW1uRGVmJGlkIDogYWNjZXNzb3JLZXkgPyB0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsID09PSAnZnVuY3Rpb24nID8gYWNjZXNzb3JLZXkucmVwbGFjZUFsbCgnLicsICdfJykgOiBhY2Nlc3NvcktleS5yZXBsYWNlKC9cXC4vZywgJ18nKSA6IHVuZGVmaW5lZCkgIT0gbnVsbCA/IF9yZWYgOiB0eXBlb2YgcmVzb2x2ZWRDb2x1bW5EZWYuaGVhZGVyID09PSAnc3RyaW5nJyA/IHJlc29sdmVkQ29sdW1uRGVmLmhlYWRlciA6IHVuZGVmaW5lZDtcbiAgbGV0IGFjY2Vzc29yRm47XG4gIGlmIChyZXNvbHZlZENvbHVtbkRlZi5hY2Nlc3NvckZuKSB7XG4gICAgYWNjZXNzb3JGbiA9IHJlc29sdmVkQ29sdW1uRGVmLmFjY2Vzc29yRm47XG4gIH0gZWxzZSBpZiAoYWNjZXNzb3JLZXkpIHtcbiAgICAvLyBTdXBwb3J0IGRlZXAgYWNjZXNzb3Iga2V5c1xuICAgIGlmIChhY2Nlc3NvcktleS5pbmNsdWRlcygnLicpKSB7XG4gICAgICBhY2Nlc3NvckZuID0gb3JpZ2luYWxSb3cgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gb3JpZ2luYWxSb3c7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFjY2Vzc29yS2V5LnNwbGl0KCcuJykpIHtcbiAgICAgICAgICB2YXIgX3Jlc3VsdDtcbiAgICAgICAgICByZXN1bHQgPSAoX3Jlc3VsdCA9IHJlc3VsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRba2V5XTtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiByZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBcIiR7a2V5fVwiIGluIGRlZXBseSBuZXN0ZWQga2V5IFwiJHthY2Nlc3NvcktleX1cIiByZXR1cm5lZCB1bmRlZmluZWQuYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBhY2Nlc3NvckZuID0gb3JpZ2luYWxSb3cgPT4gb3JpZ2luYWxSb3dbcmVzb2x2ZWRDb2x1bW5EZWYuYWNjZXNzb3JLZXldO1xuICAgIH1cbiAgfVxuICBpZiAoIWlkKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihyZXNvbHZlZENvbHVtbkRlZi5hY2Nlc3NvckZuID8gYENvbHVtbnMgcmVxdWlyZSBhbiBpZCB3aGVuIHVzaW5nIGFuIGFjY2Vzc29yRm5gIDogYENvbHVtbnMgcmVxdWlyZSBhbiBpZCB3aGVuIHVzaW5nIGEgbm9uLXN0cmluZyBoZWFkZXJgKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gIH1cbiAgbGV0IGNvbHVtbiA9IHtcbiAgICBpZDogYCR7U3RyaW5nKGlkKX1gLFxuICAgIGFjY2Vzc29yRm4sXG4gICAgcGFyZW50OiBwYXJlbnQsXG4gICAgZGVwdGgsXG4gICAgY29sdW1uRGVmOiByZXNvbHZlZENvbHVtbkRlZixcbiAgICBjb2x1bW5zOiBbXSxcbiAgICBnZXRGbGF0Q29sdW1uczogbWVtbygoKSA9PiBbdHJ1ZV0sICgpID0+IHtcbiAgICAgIHZhciBfY29sdW1uJGNvbHVtbnM7XG4gICAgICByZXR1cm4gW2NvbHVtbiwgLi4uKChfY29sdW1uJGNvbHVtbnMgPSBjb2x1bW4uY29sdW1ucykgPT0gbnVsbCA/IHZvaWQgMCA6IF9jb2x1bW4kY29sdW1ucy5mbGF0TWFwKGQgPT4gZC5nZXRGbGF0Q29sdW1ucygpKSldO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z0NvbHVtbnMnLCAnY29sdW1uLmdldEZsYXRDb2x1bW5zJykpLFxuICAgIGdldExlYWZDb2x1bW5zOiBtZW1vKCgpID0+IFt0YWJsZS5fZ2V0T3JkZXJDb2x1bW5zRm4oKV0sIG9yZGVyQ29sdW1ucyA9PiB7XG4gICAgICB2YXIgX2NvbHVtbiRjb2x1bW5zMjtcbiAgICAgIGlmICgoX2NvbHVtbiRjb2x1bW5zMiA9IGNvbHVtbi5jb2x1bW5zKSAhPSBudWxsICYmIF9jb2x1bW4kY29sdW1uczIubGVuZ3RoKSB7XG4gICAgICAgIGxldCBsZWFmQ29sdW1ucyA9IGNvbHVtbi5jb2x1bW5zLmZsYXRNYXAoY29sdW1uID0+IGNvbHVtbi5nZXRMZWFmQ29sdW1ucygpKTtcbiAgICAgICAgcmV0dXJuIG9yZGVyQ29sdW1ucyhsZWFmQ29sdW1ucyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2NvbHVtbl07XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnQ29sdW1ucycsICdjb2x1bW4uZ2V0TGVhZkNvbHVtbnMnKSlcbiAgfTtcbiAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRhYmxlLl9mZWF0dXJlcykge1xuICAgIGZlYXR1cmUuY3JlYXRlQ29sdW1uID09IG51bGwgfHwgZmVhdHVyZS5jcmVhdGVDb2x1bW4oY29sdW1uLCB0YWJsZSk7XG4gIH1cblxuICAvLyBZZXMsIHdlIGhhdmUgdG8gY29udmVydCB0YWJsZSB0byB1bmtub3duLCBiZWNhdXNlIHdlIGtub3cgbW9yZSB0aGFuIHRoZSBjb21waWxlciBoZXJlLlxuICByZXR1cm4gY29sdW1uO1xufVxuXG5jb25zdCBkZWJ1ZyA9ICdkZWJ1Z0hlYWRlcnMnO1xuLy9cblxuZnVuY3Rpb24gY3JlYXRlSGVhZGVyKHRhYmxlLCBjb2x1bW4sIG9wdGlvbnMpIHtcbiAgdmFyIF9vcHRpb25zJGlkO1xuICBjb25zdCBpZCA9IChfb3B0aW9ucyRpZCA9IG9wdGlvbnMuaWQpICE9IG51bGwgPyBfb3B0aW9ucyRpZCA6IGNvbHVtbi5pZDtcbiAgbGV0IGhlYWRlciA9IHtcbiAgICBpZCxcbiAgICBjb2x1bW4sXG4gICAgaW5kZXg6IG9wdGlvbnMuaW5kZXgsXG4gICAgaXNQbGFjZWhvbGRlcjogISFvcHRpb25zLmlzUGxhY2Vob2xkZXIsXG4gICAgcGxhY2Vob2xkZXJJZDogb3B0aW9ucy5wbGFjZWhvbGRlcklkLFxuICAgIGRlcHRoOiBvcHRpb25zLmRlcHRoLFxuICAgIHN1YkhlYWRlcnM6IFtdLFxuICAgIGNvbFNwYW46IDAsXG4gICAgcm93U3BhbjogMCxcbiAgICBoZWFkZXJHcm91cDogbnVsbCxcbiAgICBnZXRMZWFmSGVhZGVyczogKCkgPT4ge1xuICAgICAgY29uc3QgbGVhZkhlYWRlcnMgPSBbXTtcbiAgICAgIGNvbnN0IHJlY3Vyc2VIZWFkZXIgPSBoID0+IHtcbiAgICAgICAgaWYgKGguc3ViSGVhZGVycyAmJiBoLnN1YkhlYWRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgaC5zdWJIZWFkZXJzLm1hcChyZWN1cnNlSGVhZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBsZWFmSGVhZGVycy5wdXNoKGgpO1xuICAgICAgfTtcbiAgICAgIHJlY3Vyc2VIZWFkZXIoaGVhZGVyKTtcbiAgICAgIHJldHVybiBsZWFmSGVhZGVycztcbiAgICB9LFxuICAgIGdldENvbnRleHQ6ICgpID0+ICh7XG4gICAgICB0YWJsZSxcbiAgICAgIGhlYWRlcjogaGVhZGVyLFxuICAgICAgY29sdW1uXG4gICAgfSlcbiAgfTtcbiAgdGFibGUuX2ZlYXR1cmVzLmZvckVhY2goZmVhdHVyZSA9PiB7XG4gICAgZmVhdHVyZS5jcmVhdGVIZWFkZXIgPT0gbnVsbCB8fCBmZWF0dXJlLmNyZWF0ZUhlYWRlcihoZWFkZXIsIHRhYmxlKTtcbiAgfSk7XG4gIHJldHVybiBoZWFkZXI7XG59XG5jb25zdCBIZWFkZXJzID0ge1xuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIC8vIEhlYWRlciBHcm91cHNcblxuICAgIHRhYmxlLmdldEhlYWRlckdyb3VwcyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbENvbHVtbnMoKSwgdGFibGUuZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKCksIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZy5sZWZ0LCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcucmlnaHRdLCAoYWxsQ29sdW1ucywgbGVhZkNvbHVtbnMsIGxlZnQsIHJpZ2h0KSA9PiB7XG4gICAgICB2YXIgX2xlZnQkbWFwJGZpbHRlciwgX3JpZ2h0JG1hcCRmaWx0ZXI7XG4gICAgICBjb25zdCBsZWZ0Q29sdW1ucyA9IChfbGVmdCRtYXAkZmlsdGVyID0gbGVmdCA9PSBudWxsID8gdm9pZCAwIDogbGVmdC5tYXAoY29sdW1uSWQgPT4gbGVhZkNvbHVtbnMuZmluZChkID0+IGQuaWQgPT09IGNvbHVtbklkKSkuZmlsdGVyKEJvb2xlYW4pKSAhPSBudWxsID8gX2xlZnQkbWFwJGZpbHRlciA6IFtdO1xuICAgICAgY29uc3QgcmlnaHRDb2x1bW5zID0gKF9yaWdodCRtYXAkZmlsdGVyID0gcmlnaHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJpZ2h0Lm1hcChjb2x1bW5JZCA9PiBsZWFmQ29sdW1ucy5maW5kKGQgPT4gZC5pZCA9PT0gY29sdW1uSWQpKS5maWx0ZXIoQm9vbGVhbikpICE9IG51bGwgPyBfcmlnaHQkbWFwJGZpbHRlciA6IFtdO1xuICAgICAgY29uc3QgY2VudGVyQ29sdW1ucyA9IGxlYWZDb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gIShsZWZ0ICE9IG51bGwgJiYgbGVmdC5pbmNsdWRlcyhjb2x1bW4uaWQpKSAmJiAhKHJpZ2h0ICE9IG51bGwgJiYgcmlnaHQuaW5jbHVkZXMoY29sdW1uLmlkKSkpO1xuICAgICAgY29uc3QgaGVhZGVyR3JvdXBzID0gYnVpbGRIZWFkZXJHcm91cHMoYWxsQ29sdW1ucywgWy4uLmxlZnRDb2x1bW5zLCAuLi5jZW50ZXJDb2x1bW5zLCAuLi5yaWdodENvbHVtbnNdLCB0YWJsZSk7XG4gICAgICByZXR1cm4gaGVhZGVyR3JvdXBzO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsIGRlYnVnLCAnZ2V0SGVhZGVyR3JvdXBzJykpO1xuICAgIHRhYmxlLmdldENlbnRlckhlYWRlckdyb3VwcyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbENvbHVtbnMoKSwgdGFibGUuZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKCksIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZy5sZWZ0LCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcucmlnaHRdLCAoYWxsQ29sdW1ucywgbGVhZkNvbHVtbnMsIGxlZnQsIHJpZ2h0KSA9PiB7XG4gICAgICBsZWFmQ29sdW1ucyA9IGxlYWZDb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gIShsZWZ0ICE9IG51bGwgJiYgbGVmdC5pbmNsdWRlcyhjb2x1bW4uaWQpKSAmJiAhKHJpZ2h0ICE9IG51bGwgJiYgcmlnaHQuaW5jbHVkZXMoY29sdW1uLmlkKSkpO1xuICAgICAgcmV0dXJuIGJ1aWxkSGVhZGVyR3JvdXBzKGFsbENvbHVtbnMsIGxlYWZDb2x1bW5zLCB0YWJsZSwgJ2NlbnRlcicpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsIGRlYnVnLCAnZ2V0Q2VudGVySGVhZGVyR3JvdXBzJykpO1xuICAgIHRhYmxlLmdldExlZnRIZWFkZXJHcm91cHMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRBbGxDb2x1bW5zKCksIHRhYmxlLmdldFZpc2libGVMZWFmQ29sdW1ucygpLCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcubGVmdF0sIChhbGxDb2x1bW5zLCBsZWFmQ29sdW1ucywgbGVmdCkgPT4ge1xuICAgICAgdmFyIF9sZWZ0JG1hcCRmaWx0ZXIyO1xuICAgICAgY29uc3Qgb3JkZXJlZExlYWZDb2x1bW5zID0gKF9sZWZ0JG1hcCRmaWx0ZXIyID0gbGVmdCA9PSBudWxsID8gdm9pZCAwIDogbGVmdC5tYXAoY29sdW1uSWQgPT4gbGVhZkNvbHVtbnMuZmluZChkID0+IGQuaWQgPT09IGNvbHVtbklkKSkuZmlsdGVyKEJvb2xlYW4pKSAhPSBudWxsID8gX2xlZnQkbWFwJGZpbHRlcjIgOiBbXTtcbiAgICAgIHJldHVybiBidWlsZEhlYWRlckdyb3VwcyhhbGxDb2x1bW5zLCBvcmRlcmVkTGVhZkNvbHVtbnMsIHRhYmxlLCAnbGVmdCcpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsIGRlYnVnLCAnZ2V0TGVmdEhlYWRlckdyb3VwcycpKTtcbiAgICB0YWJsZS5nZXRSaWdodEhlYWRlckdyb3VwcyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbENvbHVtbnMoKSwgdGFibGUuZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKCksIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZy5yaWdodF0sIChhbGxDb2x1bW5zLCBsZWFmQ29sdW1ucywgcmlnaHQpID0+IHtcbiAgICAgIHZhciBfcmlnaHQkbWFwJGZpbHRlcjI7XG4gICAgICBjb25zdCBvcmRlcmVkTGVhZkNvbHVtbnMgPSAoX3JpZ2h0JG1hcCRmaWx0ZXIyID0gcmlnaHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJpZ2h0Lm1hcChjb2x1bW5JZCA9PiBsZWFmQ29sdW1ucy5maW5kKGQgPT4gZC5pZCA9PT0gY29sdW1uSWQpKS5maWx0ZXIoQm9vbGVhbikpICE9IG51bGwgPyBfcmlnaHQkbWFwJGZpbHRlcjIgOiBbXTtcbiAgICAgIHJldHVybiBidWlsZEhlYWRlckdyb3VwcyhhbGxDb2x1bW5zLCBvcmRlcmVkTGVhZkNvbHVtbnMsIHRhYmxlLCAncmlnaHQnKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldFJpZ2h0SGVhZGVyR3JvdXBzJykpO1xuXG4gICAgLy8gRm9vdGVyIEdyb3Vwc1xuXG4gICAgdGFibGUuZ2V0Rm9vdGVyR3JvdXBzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0SGVhZGVyR3JvdXBzKCldLCBoZWFkZXJHcm91cHMgPT4ge1xuICAgICAgcmV0dXJuIFsuLi5oZWFkZXJHcm91cHNdLnJldmVyc2UoKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldEZvb3Rlckdyb3VwcycpKTtcbiAgICB0YWJsZS5nZXRMZWZ0Rm9vdGVyR3JvdXBzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0TGVmdEhlYWRlckdyb3VwcygpXSwgaGVhZGVyR3JvdXBzID0+IHtcbiAgICAgIHJldHVybiBbLi4uaGVhZGVyR3JvdXBzXS5yZXZlcnNlKCk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRMZWZ0Rm9vdGVyR3JvdXBzJykpO1xuICAgIHRhYmxlLmdldENlbnRlckZvb3Rlckdyb3VwcyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldENlbnRlckhlYWRlckdyb3VwcygpXSwgaGVhZGVyR3JvdXBzID0+IHtcbiAgICAgIHJldHVybiBbLi4uaGVhZGVyR3JvdXBzXS5yZXZlcnNlKCk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRDZW50ZXJGb290ZXJHcm91cHMnKSk7XG4gICAgdGFibGUuZ2V0UmlnaHRGb290ZXJHcm91cHMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRSaWdodEhlYWRlckdyb3VwcygpXSwgaGVhZGVyR3JvdXBzID0+IHtcbiAgICAgIHJldHVybiBbLi4uaGVhZGVyR3JvdXBzXS5yZXZlcnNlKCk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRSaWdodEZvb3Rlckdyb3VwcycpKTtcblxuICAgIC8vIEZsYXQgSGVhZGVyc1xuXG4gICAgdGFibGUuZ2V0RmxhdEhlYWRlcnMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRIZWFkZXJHcm91cHMoKV0sIGhlYWRlckdyb3VwcyA9PiB7XG4gICAgICByZXR1cm4gaGVhZGVyR3JvdXBzLm1hcChoZWFkZXJHcm91cCA9PiB7XG4gICAgICAgIHJldHVybiBoZWFkZXJHcm91cC5oZWFkZXJzO1xuICAgICAgfSkuZmxhdCgpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsIGRlYnVnLCAnZ2V0RmxhdEhlYWRlcnMnKSk7XG4gICAgdGFibGUuZ2V0TGVmdEZsYXRIZWFkZXJzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0TGVmdEhlYWRlckdyb3VwcygpXSwgbGVmdCA9PiB7XG4gICAgICByZXR1cm4gbGVmdC5tYXAoaGVhZGVyR3JvdXAgPT4ge1xuICAgICAgICByZXR1cm4gaGVhZGVyR3JvdXAuaGVhZGVycztcbiAgICAgIH0pLmZsYXQoKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldExlZnRGbGF0SGVhZGVycycpKTtcbiAgICB0YWJsZS5nZXRDZW50ZXJGbGF0SGVhZGVycyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldENlbnRlckhlYWRlckdyb3VwcygpXSwgbGVmdCA9PiB7XG4gICAgICByZXR1cm4gbGVmdC5tYXAoaGVhZGVyR3JvdXAgPT4ge1xuICAgICAgICByZXR1cm4gaGVhZGVyR3JvdXAuaGVhZGVycztcbiAgICAgIH0pLmZsYXQoKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldENlbnRlckZsYXRIZWFkZXJzJykpO1xuICAgIHRhYmxlLmdldFJpZ2h0RmxhdEhlYWRlcnMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRSaWdodEhlYWRlckdyb3VwcygpXSwgbGVmdCA9PiB7XG4gICAgICByZXR1cm4gbGVmdC5tYXAoaGVhZGVyR3JvdXAgPT4ge1xuICAgICAgICByZXR1cm4gaGVhZGVyR3JvdXAuaGVhZGVycztcbiAgICAgIH0pLmZsYXQoKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldFJpZ2h0RmxhdEhlYWRlcnMnKSk7XG5cbiAgICAvLyBMZWFmIEhlYWRlcnNcblxuICAgIHRhYmxlLmdldENlbnRlckxlYWZIZWFkZXJzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0Q2VudGVyRmxhdEhlYWRlcnMoKV0sIGZsYXRIZWFkZXJzID0+IHtcbiAgICAgIHJldHVybiBmbGF0SGVhZGVycy5maWx0ZXIoaGVhZGVyID0+IHtcbiAgICAgICAgdmFyIF9oZWFkZXIkc3ViSGVhZGVycztcbiAgICAgICAgcmV0dXJuICEoKF9oZWFkZXIkc3ViSGVhZGVycyA9IGhlYWRlci5zdWJIZWFkZXJzKSAhPSBudWxsICYmIF9oZWFkZXIkc3ViSGVhZGVycy5sZW5ndGgpO1xuICAgICAgfSk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRDZW50ZXJMZWFmSGVhZGVycycpKTtcbiAgICB0YWJsZS5nZXRMZWZ0TGVhZkhlYWRlcnMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRMZWZ0RmxhdEhlYWRlcnMoKV0sIGZsYXRIZWFkZXJzID0+IHtcbiAgICAgIHJldHVybiBmbGF0SGVhZGVycy5maWx0ZXIoaGVhZGVyID0+IHtcbiAgICAgICAgdmFyIF9oZWFkZXIkc3ViSGVhZGVyczI7XG4gICAgICAgIHJldHVybiAhKChfaGVhZGVyJHN1YkhlYWRlcnMyID0gaGVhZGVyLnN1YkhlYWRlcnMpICE9IG51bGwgJiYgX2hlYWRlciRzdWJIZWFkZXJzMi5sZW5ndGgpO1xuICAgICAgfSk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRMZWZ0TGVhZkhlYWRlcnMnKSk7XG4gICAgdGFibGUuZ2V0UmlnaHRMZWFmSGVhZGVycyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldFJpZ2h0RmxhdEhlYWRlcnMoKV0sIGZsYXRIZWFkZXJzID0+IHtcbiAgICAgIHJldHVybiBmbGF0SGVhZGVycy5maWx0ZXIoaGVhZGVyID0+IHtcbiAgICAgICAgdmFyIF9oZWFkZXIkc3ViSGVhZGVyczM7XG4gICAgICAgIHJldHVybiAhKChfaGVhZGVyJHN1YkhlYWRlcnMzID0gaGVhZGVyLnN1YkhlYWRlcnMpICE9IG51bGwgJiYgX2hlYWRlciRzdWJIZWFkZXJzMy5sZW5ndGgpO1xuICAgICAgfSk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgZGVidWcsICdnZXRSaWdodExlYWZIZWFkZXJzJykpO1xuICAgIHRhYmxlLmdldExlYWZIZWFkZXJzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0TGVmdEhlYWRlckdyb3VwcygpLCB0YWJsZS5nZXRDZW50ZXJIZWFkZXJHcm91cHMoKSwgdGFibGUuZ2V0UmlnaHRIZWFkZXJHcm91cHMoKV0sIChsZWZ0LCBjZW50ZXIsIHJpZ2h0KSA9PiB7XG4gICAgICB2YXIgX2xlZnQkMCRoZWFkZXJzLCBfbGVmdCQsIF9jZW50ZXIkMCRoZWFkZXJzLCBfY2VudGVyJCwgX3JpZ2h0JDAkaGVhZGVycywgX3JpZ2h0JDtcbiAgICAgIHJldHVybiBbLi4uKChfbGVmdCQwJGhlYWRlcnMgPSAoX2xlZnQkID0gbGVmdFswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9sZWZ0JC5oZWFkZXJzKSAhPSBudWxsID8gX2xlZnQkMCRoZWFkZXJzIDogW10pLCAuLi4oKF9jZW50ZXIkMCRoZWFkZXJzID0gKF9jZW50ZXIkID0gY2VudGVyWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2NlbnRlciQuaGVhZGVycykgIT0gbnVsbCA/IF9jZW50ZXIkMCRoZWFkZXJzIDogW10pLCAuLi4oKF9yaWdodCQwJGhlYWRlcnMgPSAoX3JpZ2h0JCA9IHJpZ2h0WzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3JpZ2h0JC5oZWFkZXJzKSAhPSBudWxsID8gX3JpZ2h0JDAkaGVhZGVycyA6IFtdKV0ubWFwKGhlYWRlciA9PiB7XG4gICAgICAgIHJldHVybiBoZWFkZXIuZ2V0TGVhZkhlYWRlcnMoKTtcbiAgICAgIH0pLmZsYXQoKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCBkZWJ1ZywgJ2dldExlYWZIZWFkZXJzJykpO1xuICB9XG59O1xuZnVuY3Rpb24gYnVpbGRIZWFkZXJHcm91cHMoYWxsQ29sdW1ucywgY29sdW1uc1RvR3JvdXAsIHRhYmxlLCBoZWFkZXJGYW1pbHkpIHtcbiAgdmFyIF9oZWFkZXJHcm91cHMkMCRoZWFkZSwgX2hlYWRlckdyb3VwcyQ7XG4gIC8vIEZpbmQgdGhlIG1heCBkZXB0aCBvZiB0aGUgY29sdW1uczpcbiAgLy8gYnVpbGQgdGhlIGxlYWYgY29sdW1uIHJvd1xuICAvLyBidWlsZCBlYWNoIGJ1ZmZlciByb3cgZ29pbmcgdXBcbiAgLy8gICAgcGxhY2Vob2xkZXIgZm9yIG5vbi1leGlzdGVudCBsZXZlbFxuICAvLyAgICByZWFsIGNvbHVtbiBmb3IgZXhpc3RpbmcgbGV2ZWxcblxuICBsZXQgbWF4RGVwdGggPSAwO1xuICBjb25zdCBmaW5kTWF4RGVwdGggPSBmdW5jdGlvbiAoY29sdW1ucywgZGVwdGgpIHtcbiAgICBpZiAoZGVwdGggPT09IHZvaWQgMCkge1xuICAgICAgZGVwdGggPSAxO1xuICAgIH1cbiAgICBtYXhEZXB0aCA9IE1hdGgubWF4KG1heERlcHRoLCBkZXB0aCk7XG4gICAgY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5nZXRJc1Zpc2libGUoKSkuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgdmFyIF9jb2x1bW4kY29sdW1ucztcbiAgICAgIGlmICgoX2NvbHVtbiRjb2x1bW5zID0gY29sdW1uLmNvbHVtbnMpICE9IG51bGwgJiYgX2NvbHVtbiRjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICBmaW5kTWF4RGVwdGgoY29sdW1uLmNvbHVtbnMsIGRlcHRoICsgMSk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH07XG4gIGZpbmRNYXhEZXB0aChhbGxDb2x1bW5zKTtcbiAgbGV0IGhlYWRlckdyb3VwcyA9IFtdO1xuICBjb25zdCBjcmVhdGVIZWFkZXJHcm91cCA9IChoZWFkZXJzVG9Hcm91cCwgZGVwdGgpID0+IHtcbiAgICAvLyBUaGUgaGVhZGVyIGdyb3VwIHdlIGFyZSBjcmVhdGluZ1xuICAgIGNvbnN0IGhlYWRlckdyb3VwID0ge1xuICAgICAgZGVwdGgsXG4gICAgICBpZDogW2hlYWRlckZhbWlseSwgYCR7ZGVwdGh9YF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ18nKSxcbiAgICAgIGhlYWRlcnM6IFtdXG4gICAgfTtcblxuICAgIC8vIFRoZSBwYXJlbnQgY29sdW1ucyB3ZSdyZSBnb2luZyB0byBzY2FuIG5leHRcbiAgICBjb25zdCBwZW5kaW5nUGFyZW50SGVhZGVycyA9IFtdO1xuXG4gICAgLy8gU2NhbiBlYWNoIGNvbHVtbiBmb3IgcGFyZW50c1xuICAgIGhlYWRlcnNUb0dyb3VwLmZvckVhY2goaGVhZGVyVG9Hcm91cCA9PiB7XG4gICAgICAvLyBXaGF0IGlzIHRoZSBsYXRlc3QgKGxhc3QpIHBhcmVudCBjb2x1bW4/XG5cbiAgICAgIGNvbnN0IGxhdGVzdFBlbmRpbmdQYXJlbnRIZWFkZXIgPSBbLi4ucGVuZGluZ1BhcmVudEhlYWRlcnNdLnJldmVyc2UoKVswXTtcbiAgICAgIGNvbnN0IGlzTGVhZkhlYWRlciA9IGhlYWRlclRvR3JvdXAuY29sdW1uLmRlcHRoID09PSBoZWFkZXJHcm91cC5kZXB0aDtcbiAgICAgIGxldCBjb2x1bW47XG4gICAgICBsZXQgaXNQbGFjZWhvbGRlciA9IGZhbHNlO1xuICAgICAgaWYgKGlzTGVhZkhlYWRlciAmJiBoZWFkZXJUb0dyb3VwLmNvbHVtbi5wYXJlbnQpIHtcbiAgICAgICAgLy8gVGhlIHBhcmVudCBoZWFkZXIgaXMgbmV3XG4gICAgICAgIGNvbHVtbiA9IGhlYWRlclRvR3JvdXAuY29sdW1uLnBhcmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBwYXJlbnQgaGVhZGVyIGlzIHJlcGVhdGVkXG4gICAgICAgIGNvbHVtbiA9IGhlYWRlclRvR3JvdXAuY29sdW1uO1xuICAgICAgICBpc1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChsYXRlc3RQZW5kaW5nUGFyZW50SGVhZGVyICYmIChsYXRlc3RQZW5kaW5nUGFyZW50SGVhZGVyID09IG51bGwgPyB2b2lkIDAgOiBsYXRlc3RQZW5kaW5nUGFyZW50SGVhZGVyLmNvbHVtbikgPT09IGNvbHVtbikge1xuICAgICAgICAvLyBUaGlzIGNvbHVtbiBpcyByZXBlYXRlZC4gQWRkIGl0IGFzIGEgc3ViIGhlYWRlciB0byB0aGUgbmV4dCBiYXRjaFxuICAgICAgICBsYXRlc3RQZW5kaW5nUGFyZW50SGVhZGVyLnN1YkhlYWRlcnMucHVzaChoZWFkZXJUb0dyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBuZXcgaGVhZGVyLiBMZXQncyBjcmVhdGUgaXRcbiAgICAgICAgY29uc3QgaGVhZGVyID0gY3JlYXRlSGVhZGVyKHRhYmxlLCBjb2x1bW4sIHtcbiAgICAgICAgICBpZDogW2hlYWRlckZhbWlseSwgZGVwdGgsIGNvbHVtbi5pZCwgaGVhZGVyVG9Hcm91cCA9PSBudWxsID8gdm9pZCAwIDogaGVhZGVyVG9Hcm91cC5pZF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ18nKSxcbiAgICAgICAgICBpc1BsYWNlaG9sZGVyLFxuICAgICAgICAgIHBsYWNlaG9sZGVySWQ6IGlzUGxhY2Vob2xkZXIgPyBgJHtwZW5kaW5nUGFyZW50SGVhZGVycy5maWx0ZXIoZCA9PiBkLmNvbHVtbiA9PT0gY29sdW1uKS5sZW5ndGh9YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBpbmRleDogcGVuZGluZ1BhcmVudEhlYWRlcnMubGVuZ3RoXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgaGVhZGVyVG9Hcm91cCBhcyBhIHN1YkhlYWRlciBvZiB0aGUgbmV3IGhlYWRlclxuICAgICAgICBoZWFkZXIuc3ViSGVhZGVycy5wdXNoKGhlYWRlclRvR3JvdXApO1xuICAgICAgICAvLyBBZGQgdGhlIG5ldyBoZWFkZXIgdG8gdGhlIHBlbmRpbmdQYXJlbnRIZWFkZXJzIHRvIGdldCBncm91cGVkXG4gICAgICAgIC8vIGluIHRoZSBuZXh0IGJhdGNoXG4gICAgICAgIHBlbmRpbmdQYXJlbnRIZWFkZXJzLnB1c2goaGVhZGVyKTtcbiAgICAgIH1cbiAgICAgIGhlYWRlckdyb3VwLmhlYWRlcnMucHVzaChoZWFkZXJUb0dyb3VwKTtcbiAgICAgIGhlYWRlclRvR3JvdXAuaGVhZGVyR3JvdXAgPSBoZWFkZXJHcm91cDtcbiAgICB9KTtcbiAgICBoZWFkZXJHcm91cHMucHVzaChoZWFkZXJHcm91cCk7XG4gICAgaWYgKGRlcHRoID4gMCkge1xuICAgICAgY3JlYXRlSGVhZGVyR3JvdXAocGVuZGluZ1BhcmVudEhlYWRlcnMsIGRlcHRoIC0gMSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBib3R0b21IZWFkZXJzID0gY29sdW1uc1RvR3JvdXAubWFwKChjb2x1bW4sIGluZGV4KSA9PiBjcmVhdGVIZWFkZXIodGFibGUsIGNvbHVtbiwge1xuICAgIGRlcHRoOiBtYXhEZXB0aCxcbiAgICBpbmRleFxuICB9KSk7XG4gIGNyZWF0ZUhlYWRlckdyb3VwKGJvdHRvbUhlYWRlcnMsIG1heERlcHRoIC0gMSk7XG4gIGhlYWRlckdyb3Vwcy5yZXZlcnNlKCk7XG5cbiAgLy8gaGVhZGVyR3JvdXBzID0gaGVhZGVyR3JvdXBzLmZpbHRlcihoZWFkZXJHcm91cCA9PiB7XG4gIC8vICAgcmV0dXJuICFoZWFkZXJHcm91cC5oZWFkZXJzLmV2ZXJ5KGhlYWRlciA9PiBoZWFkZXIuaXNQbGFjZWhvbGRlcilcbiAgLy8gfSlcblxuICBjb25zdCByZWN1cnNlSGVhZGVyc0ZvclNwYW5zID0gaGVhZGVycyA9PiB7XG4gICAgY29uc3QgZmlsdGVyZWRIZWFkZXJzID0gaGVhZGVycy5maWx0ZXIoaGVhZGVyID0+IGhlYWRlci5jb2x1bW4uZ2V0SXNWaXNpYmxlKCkpO1xuICAgIHJldHVybiBmaWx0ZXJlZEhlYWRlcnMubWFwKGhlYWRlciA9PiB7XG4gICAgICBsZXQgY29sU3BhbiA9IDA7XG4gICAgICBsZXQgcm93U3BhbiA9IDA7XG4gICAgICBsZXQgY2hpbGRSb3dTcGFucyA9IFswXTtcbiAgICAgIGlmIChoZWFkZXIuc3ViSGVhZGVycyAmJiBoZWFkZXIuc3ViSGVhZGVycy5sZW5ndGgpIHtcbiAgICAgICAgY2hpbGRSb3dTcGFucyA9IFtdO1xuICAgICAgICByZWN1cnNlSGVhZGVyc0ZvclNwYW5zKGhlYWRlci5zdWJIZWFkZXJzKS5mb3JFYWNoKF9yZWYgPT4ge1xuICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICBjb2xTcGFuOiBjaGlsZENvbFNwYW4sXG4gICAgICAgICAgICByb3dTcGFuOiBjaGlsZFJvd1NwYW5cbiAgICAgICAgICB9ID0gX3JlZjtcbiAgICAgICAgICBjb2xTcGFuICs9IGNoaWxkQ29sU3BhbjtcbiAgICAgICAgICBjaGlsZFJvd1NwYW5zLnB1c2goY2hpbGRSb3dTcGFuKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xTcGFuID0gMTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkNoaWxkUm93U3BhbiA9IE1hdGgubWluKC4uLmNoaWxkUm93U3BhbnMpO1xuICAgICAgcm93U3BhbiA9IHJvd1NwYW4gKyBtaW5DaGlsZFJvd1NwYW47XG4gICAgICBoZWFkZXIuY29sU3BhbiA9IGNvbFNwYW47XG4gICAgICBoZWFkZXIucm93U3BhbiA9IHJvd1NwYW47XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xTcGFuLFxuICAgICAgICByb3dTcGFuXG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuICByZWN1cnNlSGVhZGVyc0ZvclNwYW5zKChfaGVhZGVyR3JvdXBzJDAkaGVhZGUgPSAoX2hlYWRlckdyb3VwcyQgPSBoZWFkZXJHcm91cHNbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfaGVhZGVyR3JvdXBzJC5oZWFkZXJzKSAhPSBudWxsID8gX2hlYWRlckdyb3VwcyQwJGhlYWRlIDogW10pO1xuICByZXR1cm4gaGVhZGVyR3JvdXBzO1xufVxuXG5jb25zdCBjcmVhdGVSb3cgPSAodGFibGUsIGlkLCBvcmlnaW5hbCwgcm93SW5kZXgsIGRlcHRoLCBzdWJSb3dzLCBwYXJlbnRJZCkgPT4ge1xuICBsZXQgcm93ID0ge1xuICAgIGlkLFxuICAgIGluZGV4OiByb3dJbmRleCxcbiAgICBvcmlnaW5hbCxcbiAgICBkZXB0aCxcbiAgICBwYXJlbnRJZCxcbiAgICBfdmFsdWVzQ2FjaGU6IHt9LFxuICAgIF91bmlxdWVWYWx1ZXNDYWNoZToge30sXG4gICAgZ2V0VmFsdWU6IGNvbHVtbklkID0+IHtcbiAgICAgIGlmIChyb3cuX3ZhbHVlc0NhY2hlLmhhc093blByb3BlcnR5KGNvbHVtbklkKSkge1xuICAgICAgICByZXR1cm4gcm93Ll92YWx1ZXNDYWNoZVtjb2x1bW5JZF07XG4gICAgICB9XG4gICAgICBjb25zdCBjb2x1bW4gPSB0YWJsZS5nZXRDb2x1bW4oY29sdW1uSWQpO1xuICAgICAgaWYgKCEoY29sdW1uICE9IG51bGwgJiYgY29sdW1uLmFjY2Vzc29yRm4pKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByb3cuX3ZhbHVlc0NhY2hlW2NvbHVtbklkXSA9IGNvbHVtbi5hY2Nlc3NvckZuKHJvdy5vcmlnaW5hbCwgcm93SW5kZXgpO1xuICAgICAgcmV0dXJuIHJvdy5fdmFsdWVzQ2FjaGVbY29sdW1uSWRdO1xuICAgIH0sXG4gICAgZ2V0VW5pcXVlVmFsdWVzOiBjb2x1bW5JZCA9PiB7XG4gICAgICBpZiAocm93Ll91bmlxdWVWYWx1ZXNDYWNoZS5oYXNPd25Qcm9wZXJ0eShjb2x1bW5JZCkpIHtcbiAgICAgICAgcmV0dXJuIHJvdy5fdW5pcXVlVmFsdWVzQ2FjaGVbY29sdW1uSWRdO1xuICAgICAgfVxuICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuZ2V0Q29sdW1uKGNvbHVtbklkKTtcbiAgICAgIGlmICghKGNvbHVtbiAhPSBudWxsICYmIGNvbHVtbi5hY2Nlc3NvckZuKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKCFjb2x1bW4uY29sdW1uRGVmLmdldFVuaXF1ZVZhbHVlcykge1xuICAgICAgICByb3cuX3VuaXF1ZVZhbHVlc0NhY2hlW2NvbHVtbklkXSA9IFtyb3cuZ2V0VmFsdWUoY29sdW1uSWQpXTtcbiAgICAgICAgcmV0dXJuIHJvdy5fdW5pcXVlVmFsdWVzQ2FjaGVbY29sdW1uSWRdO1xuICAgICAgfVxuICAgICAgcm93Ll91bmlxdWVWYWx1ZXNDYWNoZVtjb2x1bW5JZF0gPSBjb2x1bW4uY29sdW1uRGVmLmdldFVuaXF1ZVZhbHVlcyhyb3cub3JpZ2luYWwsIHJvd0luZGV4KTtcbiAgICAgIHJldHVybiByb3cuX3VuaXF1ZVZhbHVlc0NhY2hlW2NvbHVtbklkXTtcbiAgICB9LFxuICAgIHJlbmRlclZhbHVlOiBjb2x1bW5JZCA9PiB7XG4gICAgICB2YXIgX3JvdyRnZXRWYWx1ZTtcbiAgICAgIHJldHVybiAoX3JvdyRnZXRWYWx1ZSA9IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCkpICE9IG51bGwgPyBfcm93JGdldFZhbHVlIDogdGFibGUub3B0aW9ucy5yZW5kZXJGYWxsYmFja1ZhbHVlO1xuICAgIH0sXG4gICAgc3ViUm93czogc3ViUm93cyAhPSBudWxsID8gc3ViUm93cyA6IFtdLFxuICAgIGdldExlYWZSb3dzOiAoKSA9PiBmbGF0dGVuQnkocm93LnN1YlJvd3MsIGQgPT4gZC5zdWJSb3dzKSxcbiAgICBnZXRQYXJlbnRSb3c6ICgpID0+IHJvdy5wYXJlbnRJZCA/IHRhYmxlLmdldFJvdyhyb3cucGFyZW50SWQsIHRydWUpIDogdW5kZWZpbmVkLFxuICAgIGdldFBhcmVudFJvd3M6ICgpID0+IHtcbiAgICAgIGxldCBwYXJlbnRSb3dzID0gW107XG4gICAgICBsZXQgY3VycmVudFJvdyA9IHJvdztcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFJvdyA9IGN1cnJlbnRSb3cuZ2V0UGFyZW50Um93KCk7XG4gICAgICAgIGlmICghcGFyZW50Um93KSBicmVhaztcbiAgICAgICAgcGFyZW50Um93cy5wdXNoKHBhcmVudFJvdyk7XG4gICAgICAgIGN1cnJlbnRSb3cgPSBwYXJlbnRSb3c7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyZW50Um93cy5yZXZlcnNlKCk7XG4gICAgfSxcbiAgICBnZXRBbGxDZWxsczogbWVtbygoKSA9PiBbdGFibGUuZ2V0QWxsTGVhZkNvbHVtbnMoKV0sIGxlYWZDb2x1bW5zID0+IHtcbiAgICAgIHJldHVybiBsZWFmQ29sdW1ucy5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUNlbGwodGFibGUsIHJvdywgY29sdW1uLCBjb2x1bW4uaWQpO1xuICAgICAgfSk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnUm93cycsICdnZXRBbGxDZWxscycpKSxcbiAgICBfZ2V0QWxsQ2VsbHNCeUNvbHVtbklkOiBtZW1vKCgpID0+IFtyb3cuZ2V0QWxsQ2VsbHMoKV0sIGFsbENlbGxzID0+IHtcbiAgICAgIHJldHVybiBhbGxDZWxscy5yZWR1Y2UoKGFjYywgY2VsbCkgPT4ge1xuICAgICAgICBhY2NbY2VsbC5jb2x1bW4uaWRdID0gY2VsbDtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdSb3dzJywgJ2dldEFsbENlbGxzQnlDb2x1bW5JZCcpKVxuICB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlLl9mZWF0dXJlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGZlYXR1cmUgPSB0YWJsZS5fZmVhdHVyZXNbaV07XG4gICAgZmVhdHVyZSA9PSBudWxsIHx8IGZlYXR1cmUuY3JlYXRlUm93ID09IG51bGwgfHwgZmVhdHVyZS5jcmVhdGVSb3cocm93LCB0YWJsZSk7XG4gIH1cbiAgcmV0dXJuIHJvdztcbn07XG5cbi8vXG5cbmNvbnN0IENvbHVtbkZhY2V0aW5nID0ge1xuICBjcmVhdGVDb2x1bW46IChjb2x1bW4sIHRhYmxlKSA9PiB7XG4gICAgY29sdW1uLl9nZXRGYWNldGVkUm93TW9kZWwgPSB0YWJsZS5vcHRpb25zLmdldEZhY2V0ZWRSb3dNb2RlbCAmJiB0YWJsZS5vcHRpb25zLmdldEZhY2V0ZWRSb3dNb2RlbCh0YWJsZSwgY29sdW1uLmlkKTtcbiAgICBjb2x1bW4uZ2V0RmFjZXRlZFJvd01vZGVsID0gKCkgPT4ge1xuICAgICAgaWYgKCFjb2x1bW4uX2dldEZhY2V0ZWRSb3dNb2RlbCkge1xuICAgICAgICByZXR1cm4gdGFibGUuZ2V0UHJlRmlsdGVyZWRSb3dNb2RlbCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbHVtbi5fZ2V0RmFjZXRlZFJvd01vZGVsKCk7XG4gICAgfTtcbiAgICBjb2x1bW4uX2dldEZhY2V0ZWRVbmlxdWVWYWx1ZXMgPSB0YWJsZS5vcHRpb25zLmdldEZhY2V0ZWRVbmlxdWVWYWx1ZXMgJiYgdGFibGUub3B0aW9ucy5nZXRGYWNldGVkVW5pcXVlVmFsdWVzKHRhYmxlLCBjb2x1bW4uaWQpO1xuICAgIGNvbHVtbi5nZXRGYWNldGVkVW5pcXVlVmFsdWVzID0gKCkgPT4ge1xuICAgICAgaWYgKCFjb2x1bW4uX2dldEZhY2V0ZWRVbmlxdWVWYWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW4uX2dldEZhY2V0ZWRVbmlxdWVWYWx1ZXMoKTtcbiAgICB9O1xuICAgIGNvbHVtbi5fZ2V0RmFjZXRlZE1pbk1heFZhbHVlcyA9IHRhYmxlLm9wdGlvbnMuZ2V0RmFjZXRlZE1pbk1heFZhbHVlcyAmJiB0YWJsZS5vcHRpb25zLmdldEZhY2V0ZWRNaW5NYXhWYWx1ZXModGFibGUsIGNvbHVtbi5pZCk7XG4gICAgY29sdW1uLmdldEZhY2V0ZWRNaW5NYXhWYWx1ZXMgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNvbHVtbi5fZ2V0RmFjZXRlZE1pbk1heFZhbHVlcykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbHVtbi5fZ2V0RmFjZXRlZE1pbk1heFZhbHVlcygpO1xuICAgIH07XG4gIH1cbn07XG5cbmNvbnN0IGluY2x1ZGVzU3RyaW5nID0gKHJvdywgY29sdW1uSWQsIGZpbHRlclZhbHVlKSA9PiB7XG4gIHZhciBfZmlsdGVyVmFsdWUkdG9TdHJpbmcsIF9yb3ckZ2V0VmFsdWU7XG4gIGNvbnN0IHNlYXJjaCA9IGZpbHRlclZhbHVlID09IG51bGwgfHwgKF9maWx0ZXJWYWx1ZSR0b1N0cmluZyA9IGZpbHRlclZhbHVlLnRvU3RyaW5nKCkpID09IG51bGwgPyB2b2lkIDAgOiBfZmlsdGVyVmFsdWUkdG9TdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIEJvb2xlYW4oKF9yb3ckZ2V0VmFsdWUgPSByb3cuZ2V0VmFsdWUoY29sdW1uSWQpKSA9PSBudWxsIHx8IChfcm93JGdldFZhbHVlID0gX3JvdyRnZXRWYWx1ZS50b1N0cmluZygpKSA9PSBudWxsIHx8IChfcm93JGdldFZhbHVlID0gX3JvdyRnZXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSA9PSBudWxsID8gdm9pZCAwIDogX3JvdyRnZXRWYWx1ZS5pbmNsdWRlcyhzZWFyY2gpKTtcbn07XG5pbmNsdWRlc1N0cmluZy5hdXRvUmVtb3ZlID0gdmFsID0+IHRlc3RGYWxzZXkodmFsKTtcbmNvbnN0IGluY2x1ZGVzU3RyaW5nU2Vuc2l0aXZlID0gKHJvdywgY29sdW1uSWQsIGZpbHRlclZhbHVlKSA9PiB7XG4gIHZhciBfcm93JGdldFZhbHVlMjtcbiAgcmV0dXJuIEJvb2xlYW4oKF9yb3ckZ2V0VmFsdWUyID0gcm93LmdldFZhbHVlKGNvbHVtbklkKSkgPT0gbnVsbCB8fCAoX3JvdyRnZXRWYWx1ZTIgPSBfcm93JGdldFZhbHVlMi50b1N0cmluZygpKSA9PSBudWxsID8gdm9pZCAwIDogX3JvdyRnZXRWYWx1ZTIuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcbn07XG5pbmNsdWRlc1N0cmluZ1NlbnNpdGl2ZS5hdXRvUmVtb3ZlID0gdmFsID0+IHRlc3RGYWxzZXkodmFsKTtcbmNvbnN0IGVxdWFsc1N0cmluZyA9IChyb3csIGNvbHVtbklkLCBmaWx0ZXJWYWx1ZSkgPT4ge1xuICB2YXIgX3JvdyRnZXRWYWx1ZTM7XG4gIHJldHVybiAoKF9yb3ckZ2V0VmFsdWUzID0gcm93LmdldFZhbHVlKGNvbHVtbklkKSkgPT0gbnVsbCB8fCAoX3JvdyRnZXRWYWx1ZTMgPSBfcm93JGdldFZhbHVlMy50b1N0cmluZygpKSA9PSBudWxsID8gdm9pZCAwIDogX3JvdyRnZXRWYWx1ZTMudG9Mb3dlckNhc2UoKSkgPT09IChmaWx0ZXJWYWx1ZSA9PSBudWxsID8gdm9pZCAwIDogZmlsdGVyVmFsdWUudG9Mb3dlckNhc2UoKSk7XG59O1xuZXF1YWxzU3RyaW5nLmF1dG9SZW1vdmUgPSB2YWwgPT4gdGVzdEZhbHNleSh2YWwpO1xuY29uc3QgYXJySW5jbHVkZXMgPSAocm93LCBjb2x1bW5JZCwgZmlsdGVyVmFsdWUpID0+IHtcbiAgdmFyIF9yb3ckZ2V0VmFsdWU0O1xuICByZXR1cm4gKF9yb3ckZ2V0VmFsdWU0ID0gcm93LmdldFZhbHVlKGNvbHVtbklkKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yb3ckZ2V0VmFsdWU0LmluY2x1ZGVzKGZpbHRlclZhbHVlKTtcbn07XG5hcnJJbmNsdWRlcy5hdXRvUmVtb3ZlID0gdmFsID0+IHRlc3RGYWxzZXkodmFsKSB8fCAhKHZhbCAhPSBudWxsICYmIHZhbC5sZW5ndGgpO1xuY29uc3QgYXJySW5jbHVkZXNBbGwgPSAocm93LCBjb2x1bW5JZCwgZmlsdGVyVmFsdWUpID0+IHtcbiAgcmV0dXJuICFmaWx0ZXJWYWx1ZS5zb21lKHZhbCA9PiB7XG4gICAgdmFyIF9yb3ckZ2V0VmFsdWU1O1xuICAgIHJldHVybiAhKChfcm93JGdldFZhbHVlNSA9IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCkpICE9IG51bGwgJiYgX3JvdyRnZXRWYWx1ZTUuaW5jbHVkZXModmFsKSk7XG4gIH0pO1xufTtcbmFyckluY2x1ZGVzQWxsLmF1dG9SZW1vdmUgPSB2YWwgPT4gdGVzdEZhbHNleSh2YWwpIHx8ICEodmFsICE9IG51bGwgJiYgdmFsLmxlbmd0aCk7XG5jb25zdCBhcnJJbmNsdWRlc1NvbWUgPSAocm93LCBjb2x1bW5JZCwgZmlsdGVyVmFsdWUpID0+IHtcbiAgcmV0dXJuIGZpbHRlclZhbHVlLnNvbWUodmFsID0+IHtcbiAgICB2YXIgX3JvdyRnZXRWYWx1ZTY7XG4gICAgcmV0dXJuIChfcm93JGdldFZhbHVlNiA9IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCkpID09IG51bGwgPyB2b2lkIDAgOiBfcm93JGdldFZhbHVlNi5pbmNsdWRlcyh2YWwpO1xuICB9KTtcbn07XG5hcnJJbmNsdWRlc1NvbWUuYXV0b1JlbW92ZSA9IHZhbCA9PiB0ZXN0RmFsc2V5KHZhbCkgfHwgISh2YWwgIT0gbnVsbCAmJiB2YWwubGVuZ3RoKTtcbmNvbnN0IGVxdWFscyA9IChyb3csIGNvbHVtbklkLCBmaWx0ZXJWYWx1ZSkgPT4ge1xuICByZXR1cm4gcm93LmdldFZhbHVlKGNvbHVtbklkKSA9PT0gZmlsdGVyVmFsdWU7XG59O1xuZXF1YWxzLmF1dG9SZW1vdmUgPSB2YWwgPT4gdGVzdEZhbHNleSh2YWwpO1xuY29uc3Qgd2Vha0VxdWFscyA9IChyb3csIGNvbHVtbklkLCBmaWx0ZXJWYWx1ZSkgPT4ge1xuICByZXR1cm4gcm93LmdldFZhbHVlKGNvbHVtbklkKSA9PSBmaWx0ZXJWYWx1ZTtcbn07XG53ZWFrRXF1YWxzLmF1dG9SZW1vdmUgPSB2YWwgPT4gdGVzdEZhbHNleSh2YWwpO1xuY29uc3QgaW5OdW1iZXJSYW5nZSA9IChyb3csIGNvbHVtbklkLCBmaWx0ZXJWYWx1ZSkgPT4ge1xuICBsZXQgW21pbiwgbWF4XSA9IGZpbHRlclZhbHVlO1xuICBjb25zdCByb3dWYWx1ZSA9IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCk7XG4gIHJldHVybiByb3dWYWx1ZSA+PSBtaW4gJiYgcm93VmFsdWUgPD0gbWF4O1xufTtcbmluTnVtYmVyUmFuZ2UucmVzb2x2ZUZpbHRlclZhbHVlID0gdmFsID0+IHtcbiAgbGV0IFt1bnNhZmVNaW4sIHVuc2FmZU1heF0gPSB2YWw7XG4gIGxldCBwYXJzZWRNaW4gPSB0eXBlb2YgdW5zYWZlTWluICE9PSAnbnVtYmVyJyA/IHBhcnNlRmxvYXQodW5zYWZlTWluKSA6IHVuc2FmZU1pbjtcbiAgbGV0IHBhcnNlZE1heCA9IHR5cGVvZiB1bnNhZmVNYXggIT09ICdudW1iZXInID8gcGFyc2VGbG9hdCh1bnNhZmVNYXgpIDogdW5zYWZlTWF4O1xuICBsZXQgbWluID0gdW5zYWZlTWluID09PSBudWxsIHx8IE51bWJlci5pc05hTihwYXJzZWRNaW4pID8gLUluZmluaXR5IDogcGFyc2VkTWluO1xuICBsZXQgbWF4ID0gdW5zYWZlTWF4ID09PSBudWxsIHx8IE51bWJlci5pc05hTihwYXJzZWRNYXgpID8gSW5maW5pdHkgOiBwYXJzZWRNYXg7XG4gIGlmIChtaW4gPiBtYXgpIHtcbiAgICBjb25zdCB0ZW1wID0gbWluO1xuICAgIG1pbiA9IG1heDtcbiAgICBtYXggPSB0ZW1wO1xuICB9XG4gIHJldHVybiBbbWluLCBtYXhdO1xufTtcbmluTnVtYmVyUmFuZ2UuYXV0b1JlbW92ZSA9IHZhbCA9PiB0ZXN0RmFsc2V5KHZhbCkgfHwgdGVzdEZhbHNleSh2YWxbMF0pICYmIHRlc3RGYWxzZXkodmFsWzFdKTtcblxuLy8gRXhwb3J0XG5cbmNvbnN0IGZpbHRlckZucyA9IHtcbiAgaW5jbHVkZXNTdHJpbmcsXG4gIGluY2x1ZGVzU3RyaW5nU2Vuc2l0aXZlLFxuICBlcXVhbHNTdHJpbmcsXG4gIGFyckluY2x1ZGVzLFxuICBhcnJJbmNsdWRlc0FsbCxcbiAgYXJySW5jbHVkZXNTb21lLFxuICBlcXVhbHMsXG4gIHdlYWtFcXVhbHMsXG4gIGluTnVtYmVyUmFuZ2Vcbn07XG4vLyBVdGlsc1xuXG5mdW5jdGlvbiB0ZXN0RmFsc2V5KHZhbCkge1xuICByZXR1cm4gdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBudWxsIHx8IHZhbCA9PT0gJyc7XG59XG5cbi8vXG5cbmNvbnN0IENvbHVtbkZpbHRlcmluZyA9IHtcbiAgZ2V0RGVmYXVsdENvbHVtbkRlZjogKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWx0ZXJGbjogJ2F1dG8nXG4gICAgfTtcbiAgfSxcbiAgZ2V0SW5pdGlhbFN0YXRlOiBzdGF0ZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbkZpbHRlcnM6IFtdLFxuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvbkNvbHVtbkZpbHRlcnNDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ2NvbHVtbkZpbHRlcnMnLCB0YWJsZSksXG4gICAgICBmaWx0ZXJGcm9tTGVhZlJvd3M6IGZhbHNlLFxuICAgICAgbWF4TGVhZlJvd0ZpbHRlckRlcHRoOiAxMDBcbiAgICB9O1xuICB9LFxuICBjcmVhdGVDb2x1bW46IChjb2x1bW4sIHRhYmxlKSA9PiB7XG4gICAgY29sdW1uLmdldEF1dG9GaWx0ZXJGbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0Um93ID0gdGFibGUuZ2V0Q29yZVJvd01vZGVsKCkuZmxhdFJvd3NbMF07XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpcnN0Um93ID09IG51bGwgPyB2b2lkIDAgOiBmaXJzdFJvdy5nZXRWYWx1ZShjb2x1bW4uaWQpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlckZucy5pbmNsdWRlc1N0cmluZztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJGbnMuaW5OdW1iZXJSYW5nZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gZmlsdGVyRm5zLmVxdWFscztcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJGbnMuZXF1YWxzO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJGbnMuYXJySW5jbHVkZXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyRm5zLndlYWtFcXVhbHM7XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0RmlsdGVyRm4gPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkZmlsdGVyLCBfdGFibGUkb3B0aW9ucyRmaWx0ZXIyO1xuICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY29sdW1uLmNvbHVtbkRlZi5maWx0ZXJGbikgPyBjb2x1bW4uY29sdW1uRGVmLmZpbHRlckZuIDogY29sdW1uLmNvbHVtbkRlZi5maWx0ZXJGbiA9PT0gJ2F1dG8nID8gY29sdW1uLmdldEF1dG9GaWx0ZXJGbigpIDogLy8gQHRzLWlnbm9yZVxuICAgICAgKF90YWJsZSRvcHRpb25zJGZpbHRlciA9IChfdGFibGUkb3B0aW9ucyRmaWx0ZXIyID0gdGFibGUub3B0aW9ucy5maWx0ZXJGbnMpID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkb3B0aW9ucyRmaWx0ZXIyW2NvbHVtbi5jb2x1bW5EZWYuZmlsdGVyRm5dKSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMkZmlsdGVyIDogZmlsdGVyRm5zW2NvbHVtbi5jb2x1bW5EZWYuZmlsdGVyRm5dO1xuICAgIH07XG4gICAgY29sdW1uLmdldENhbkZpbHRlciA9ICgpID0+IHtcbiAgICAgIHZhciBfY29sdW1uJGNvbHVtbkRlZiRlbmEsIF90YWJsZSRvcHRpb25zJGVuYWJsZSwgX3RhYmxlJG9wdGlvbnMkZW5hYmxlMjtcbiAgICAgIHJldHVybiAoKF9jb2x1bW4kY29sdW1uRGVmJGVuYSA9IGNvbHVtbi5jb2x1bW5EZWYuZW5hYmxlQ29sdW1uRmlsdGVyKSAhPSBudWxsID8gX2NvbHVtbiRjb2x1bW5EZWYkZW5hIDogdHJ1ZSkgJiYgKChfdGFibGUkb3B0aW9ucyRlbmFibGUgPSB0YWJsZS5vcHRpb25zLmVuYWJsZUNvbHVtbkZpbHRlcnMpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0cnVlKSAmJiAoKF90YWJsZSRvcHRpb25zJGVuYWJsZTIgPSB0YWJsZS5vcHRpb25zLmVuYWJsZUZpbHRlcnMpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUyIDogdHJ1ZSkgJiYgISFjb2x1bW4uYWNjZXNzb3JGbjtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRJc0ZpbHRlcmVkID0gKCkgPT4gY29sdW1uLmdldEZpbHRlckluZGV4KCkgPiAtMTtcbiAgICBjb2x1bW4uZ2V0RmlsdGVyVmFsdWUgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldFN0YXRlJGNvbHVtO1xuICAgICAgcmV0dXJuIChfdGFibGUkZ2V0U3RhdGUkY29sdW0gPSB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtbkZpbHRlcnMpID09IG51bGwgfHwgKF90YWJsZSRnZXRTdGF0ZSRjb2x1bSA9IF90YWJsZSRnZXRTdGF0ZSRjb2x1bS5maW5kKGQgPT4gZC5pZCA9PT0gY29sdW1uLmlkKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRnZXRTdGF0ZSRjb2x1bS52YWx1ZTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRGaWx0ZXJJbmRleCA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkZ2V0U3RhdGUkY29sdW0yLCBfdGFibGUkZ2V0U3RhdGUkY29sdW0zO1xuICAgICAgcmV0dXJuIChfdGFibGUkZ2V0U3RhdGUkY29sdW0yID0gKF90YWJsZSRnZXRTdGF0ZSRjb2x1bTMgPSB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtbkZpbHRlcnMpID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkZ2V0U3RhdGUkY29sdW0zLmZpbmRJbmRleChkID0+IGQuaWQgPT09IGNvbHVtbi5pZCkpICE9IG51bGwgPyBfdGFibGUkZ2V0U3RhdGUkY29sdW0yIDogLTE7XG4gICAgfTtcbiAgICBjb2x1bW4uc2V0RmlsdGVyVmFsdWUgPSB2YWx1ZSA9PiB7XG4gICAgICB0YWJsZS5zZXRDb2x1bW5GaWx0ZXJzKG9sZCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlckZuID0gY29sdW1uLmdldEZpbHRlckZuKCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRmlsdGVyID0gb2xkID09IG51bGwgPyB2b2lkIDAgOiBvbGQuZmluZChkID0+IGQuaWQgPT09IGNvbHVtbi5pZCk7XG4gICAgICAgIGNvbnN0IG5ld0ZpbHRlciA9IGZ1bmN0aW9uYWxVcGRhdGUodmFsdWUsIHByZXZpb3VzRmlsdGVyID8gcHJldmlvdXNGaWx0ZXIudmFsdWUgOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIC8vXG4gICAgICAgIGlmIChzaG91bGRBdXRvUmVtb3ZlRmlsdGVyKGZpbHRlckZuLCBuZXdGaWx0ZXIsIGNvbHVtbikpIHtcbiAgICAgICAgICB2YXIgX29sZCRmaWx0ZXI7XG4gICAgICAgICAgcmV0dXJuIChfb2xkJGZpbHRlciA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLmZpbHRlcihkID0+IGQuaWQgIT09IGNvbHVtbi5pZCkpICE9IG51bGwgPyBfb2xkJGZpbHRlciA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0ZpbHRlck9iaiA9IHtcbiAgICAgICAgICBpZDogY29sdW1uLmlkLFxuICAgICAgICAgIHZhbHVlOiBuZXdGaWx0ZXJcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHByZXZpb3VzRmlsdGVyKSB7XG4gICAgICAgICAgdmFyIF9vbGQkbWFwO1xuICAgICAgICAgIHJldHVybiAoX29sZCRtYXAgPSBvbGQgPT0gbnVsbCA/IHZvaWQgMCA6IG9sZC5tYXAoZCA9PiB7XG4gICAgICAgICAgICBpZiAoZC5pZCA9PT0gY29sdW1uLmlkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXdGaWx0ZXJPYmo7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZDtcbiAgICAgICAgICB9KSkgIT0gbnVsbCA/IF9vbGQkbWFwIDogW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9sZCAhPSBudWxsICYmIG9sZC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gWy4uLm9sZCwgbmV3RmlsdGVyT2JqXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25ld0ZpbHRlck9ial07XG4gICAgICB9KTtcbiAgICB9O1xuICB9LFxuICBjcmVhdGVSb3c6IChyb3csIF90YWJsZSkgPT4ge1xuICAgIHJvdy5jb2x1bW5GaWx0ZXJzID0ge307XG4gICAgcm93LmNvbHVtbkZpbHRlcnNNZXRhID0ge307XG4gIH0sXG4gIGNyZWF0ZVRhYmxlOiB0YWJsZSA9PiB7XG4gICAgdGFibGUuc2V0Q29sdW1uRmlsdGVycyA9IHVwZGF0ZXIgPT4ge1xuICAgICAgY29uc3QgbGVhZkNvbHVtbnMgPSB0YWJsZS5nZXRBbGxMZWFmQ29sdW1ucygpO1xuICAgICAgY29uc3QgdXBkYXRlRm4gPSBvbGQgPT4ge1xuICAgICAgICB2YXIgX2Z1bmN0aW9uYWxVcGRhdGU7XG4gICAgICAgIHJldHVybiAoX2Z1bmN0aW9uYWxVcGRhdGUgPSBmdW5jdGlvbmFsVXBkYXRlKHVwZGF0ZXIsIG9sZCkpID09IG51bGwgPyB2b2lkIDAgOiBfZnVuY3Rpb25hbFVwZGF0ZS5maWx0ZXIoZmlsdGVyID0+IHtcbiAgICAgICAgICBjb25zdCBjb2x1bW4gPSBsZWFmQ29sdW1ucy5maW5kKGQgPT4gZC5pZCA9PT0gZmlsdGVyLmlkKTtcbiAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGbiA9IGNvbHVtbi5nZXRGaWx0ZXJGbigpO1xuICAgICAgICAgICAgaWYgKHNob3VsZEF1dG9SZW1vdmVGaWx0ZXIoZmlsdGVyRm4sIGZpbHRlci52YWx1ZSwgY29sdW1uKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0YWJsZS5vcHRpb25zLm9uQ29sdW1uRmlsdGVyc0NoYW5nZSA9PSBudWxsIHx8IHRhYmxlLm9wdGlvbnMub25Db2x1bW5GaWx0ZXJzQ2hhbmdlKHVwZGF0ZUZuKTtcbiAgICB9O1xuICAgIHRhYmxlLnJlc2V0Q29sdW1uRmlsdGVycyA9IGRlZmF1bHRTdGF0ZSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGluaXRpYWxTdGF0ZSRjLCBfdGFibGUkaW5pdGlhbFN0YXRlO1xuICAgICAgdGFibGUuc2V0Q29sdW1uRmlsdGVycyhkZWZhdWx0U3RhdGUgPyBbXSA6IChfdGFibGUkaW5pdGlhbFN0YXRlJGMgPSAoX3RhYmxlJGluaXRpYWxTdGF0ZSA9IHRhYmxlLmluaXRpYWxTdGF0ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRpbml0aWFsU3RhdGUuY29sdW1uRmlsdGVycykgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkYyA6IFtdKTtcbiAgICB9O1xuICAgIHRhYmxlLmdldFByZUZpbHRlcmVkUm93TW9kZWwgPSAoKSA9PiB0YWJsZS5nZXRDb3JlUm93TW9kZWwoKTtcbiAgICB0YWJsZS5nZXRGaWx0ZXJlZFJvd01vZGVsID0gKCkgPT4ge1xuICAgICAgaWYgKCF0YWJsZS5fZ2V0RmlsdGVyZWRSb3dNb2RlbCAmJiB0YWJsZS5vcHRpb25zLmdldEZpbHRlcmVkUm93TW9kZWwpIHtcbiAgICAgICAgdGFibGUuX2dldEZpbHRlcmVkUm93TW9kZWwgPSB0YWJsZS5vcHRpb25zLmdldEZpbHRlcmVkUm93TW9kZWwodGFibGUpO1xuICAgICAgfVxuICAgICAgaWYgKHRhYmxlLm9wdGlvbnMubWFudWFsRmlsdGVyaW5nIHx8ICF0YWJsZS5fZ2V0RmlsdGVyZWRSb3dNb2RlbCkge1xuICAgICAgICByZXR1cm4gdGFibGUuZ2V0UHJlRmlsdGVyZWRSb3dNb2RlbCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYmxlLl9nZXRGaWx0ZXJlZFJvd01vZGVsKCk7XG4gICAgfTtcbiAgfVxufTtcbmZ1bmN0aW9uIHNob3VsZEF1dG9SZW1vdmVGaWx0ZXIoZmlsdGVyRm4sIHZhbHVlLCBjb2x1bW4pIHtcbiAgcmV0dXJuIChmaWx0ZXJGbiAmJiBmaWx0ZXJGbi5hdXRvUmVtb3ZlID8gZmlsdGVyRm4uYXV0b1JlbW92ZSh2YWx1ZSwgY29sdW1uKSA6IGZhbHNlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIXZhbHVlO1xufVxuXG5jb25zdCBzdW0gPSAoY29sdW1uSWQsIF9sZWFmUm93cywgY2hpbGRSb3dzKSA9PiB7XG4gIC8vIEl0J3MgZmFzdGVyIHRvIGp1c3QgYWRkIHRoZSBhZ2dyZWdhdGlvbnMgdG9nZXRoZXIgaW5zdGVhZCBvZlxuICAvLyBwcm9jZXNzIGxlYWYgbm9kZXMgaW5kaXZpZHVhbGx5XG4gIHJldHVybiBjaGlsZFJvd3MucmVkdWNlKChzdW0sIG5leHQpID0+IHtcbiAgICBjb25zdCBuZXh0VmFsdWUgPSBuZXh0LmdldFZhbHVlKGNvbHVtbklkKTtcbiAgICByZXR1cm4gc3VtICsgKHR5cGVvZiBuZXh0VmFsdWUgPT09ICdudW1iZXInID8gbmV4dFZhbHVlIDogMCk7XG4gIH0sIDApO1xufTtcbmNvbnN0IG1pbiA9IChjb2x1bW5JZCwgX2xlYWZSb3dzLCBjaGlsZFJvd3MpID0+IHtcbiAgbGV0IG1pbjtcbiAgY2hpbGRSb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJvdy5nZXRWYWx1ZShjb2x1bW5JZCk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgKG1pbiA+IHZhbHVlIHx8IG1pbiA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkge1xuICAgICAgbWluID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG1pbjtcbn07XG5jb25zdCBtYXggPSAoY29sdW1uSWQsIF9sZWFmUm93cywgY2hpbGRSb3dzKSA9PiB7XG4gIGxldCBtYXg7XG4gIGNoaWxkUm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSByb3cuZ2V0VmFsdWUoY29sdW1uSWQpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIChtYXggPCB2YWx1ZSB8fCBtYXggPT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA+PSB2YWx1ZSkpIHtcbiAgICAgIG1heCA9IHZhbHVlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBtYXg7XG59O1xuY29uc3QgZXh0ZW50ID0gKGNvbHVtbklkLCBfbGVhZlJvd3MsIGNoaWxkUm93cykgPT4ge1xuICBsZXQgbWluO1xuICBsZXQgbWF4O1xuICBjaGlsZFJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gcm93LmdldFZhbHVlKGNvbHVtbklkKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKG1pbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh2YWx1ZSA+PSB2YWx1ZSkgbWluID0gbWF4ID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobWluID4gdmFsdWUpIG1pbiA9IHZhbHVlO1xuICAgICAgICBpZiAobWF4IDwgdmFsdWUpIG1heCA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBbbWluLCBtYXhdO1xufTtcbmNvbnN0IG1lYW4gPSAoY29sdW1uSWQsIGxlYWZSb3dzKSA9PiB7XG4gIGxldCBjb3VudCA9IDA7XG4gIGxldCBzdW0gPSAwO1xuICBsZWFmUm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgbGV0IHZhbHVlID0gcm93LmdldFZhbHVlKGNvbHVtbklkKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiAodmFsdWUgPSArdmFsdWUpID49IHZhbHVlKSB7XG4gICAgICArK2NvdW50LCBzdW0gKz0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgaWYgKGNvdW50KSByZXR1cm4gc3VtIC8gY291bnQ7XG4gIHJldHVybjtcbn07XG5jb25zdCBtZWRpYW4gPSAoY29sdW1uSWQsIGxlYWZSb3dzKSA9PiB7XG4gIGlmICghbGVhZlJvd3MubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHZhbHVlcyA9IGxlYWZSb3dzLm1hcChyb3cgPT4gcm93LmdldFZhbHVlKGNvbHVtbklkKSk7XG4gIGlmICghaXNOdW1iZXJBcnJheSh2YWx1ZXMpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHZhbHVlc1swXTtcbiAgfVxuICBjb25zdCBtaWQgPSBNYXRoLmZsb29yKHZhbHVlcy5sZW5ndGggLyAyKTtcbiAgY29uc3QgbnVtcyA9IHZhbHVlcy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gIHJldHVybiB2YWx1ZXMubGVuZ3RoICUgMiAhPT0gMCA/IG51bXNbbWlkXSA6IChudW1zW21pZCAtIDFdICsgbnVtc1ttaWRdKSAvIDI7XG59O1xuY29uc3QgdW5pcXVlID0gKGNvbHVtbklkLCBsZWFmUm93cykgPT4ge1xuICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGxlYWZSb3dzLm1hcChkID0+IGQuZ2V0VmFsdWUoY29sdW1uSWQpKSkudmFsdWVzKCkpO1xufTtcbmNvbnN0IHVuaXF1ZUNvdW50ID0gKGNvbHVtbklkLCBsZWFmUm93cykgPT4ge1xuICByZXR1cm4gbmV3IFNldChsZWFmUm93cy5tYXAoZCA9PiBkLmdldFZhbHVlKGNvbHVtbklkKSkpLnNpemU7XG59O1xuY29uc3QgY291bnQgPSAoX2NvbHVtbklkLCBsZWFmUm93cykgPT4ge1xuICByZXR1cm4gbGVhZlJvd3MubGVuZ3RoO1xufTtcbmNvbnN0IGFnZ3JlZ2F0aW9uRm5zID0ge1xuICBzdW0sXG4gIG1pbixcbiAgbWF4LFxuICBleHRlbnQsXG4gIG1lYW4sXG4gIG1lZGlhbixcbiAgdW5pcXVlLFxuICB1bmlxdWVDb3VudCxcbiAgY291bnRcbn07XG5cbi8vXG5cbmNvbnN0IENvbHVtbkdyb3VwaW5nID0ge1xuICBnZXREZWZhdWx0Q29sdW1uRGVmOiAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFnZ3JlZ2F0ZWRDZWxsOiBwcm9wcyA9PiB7XG4gICAgICAgIHZhciBfdG9TdHJpbmcsIF9wcm9wcyRnZXRWYWx1ZTtcbiAgICAgICAgcmV0dXJuIChfdG9TdHJpbmcgPSAoX3Byb3BzJGdldFZhbHVlID0gcHJvcHMuZ2V0VmFsdWUoKSkgPT0gbnVsbCB8fCBfcHJvcHMkZ2V0VmFsdWUudG9TdHJpbmcgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcm9wcyRnZXRWYWx1ZS50b1N0cmluZygpKSAhPSBudWxsID8gX3RvU3RyaW5nIDogbnVsbDtcbiAgICAgIH0sXG4gICAgICBhZ2dyZWdhdGlvbkZuOiAnYXV0bydcbiAgICB9O1xuICB9LFxuICBnZXRJbml0aWFsU3RhdGU6IHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZ3JvdXBpbmc6IFtdLFxuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvbkdyb3VwaW5nQ2hhbmdlOiBtYWtlU3RhdGVVcGRhdGVyKCdncm91cGluZycsIHRhYmxlKSxcbiAgICAgIGdyb3VwZWRDb2x1bW5Nb2RlOiAncmVvcmRlcidcbiAgICB9O1xuICB9LFxuICBjcmVhdGVDb2x1bW46IChjb2x1bW4sIHRhYmxlKSA9PiB7XG4gICAgY29sdW1uLnRvZ2dsZUdyb3VwaW5nID0gKCkgPT4ge1xuICAgICAgdGFibGUuc2V0R3JvdXBpbmcob2xkID0+IHtcbiAgICAgICAgLy8gRmluZCBhbnkgZXhpc3RpbmcgZ3JvdXBpbmcgZm9yIHRoaXMgY29sdW1uXG4gICAgICAgIGlmIChvbGQgIT0gbnVsbCAmJiBvbGQuaW5jbHVkZXMoY29sdW1uLmlkKSkge1xuICAgICAgICAgIHJldHVybiBvbGQuZmlsdGVyKGQgPT4gZCAhPT0gY29sdW1uLmlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLihvbGQgIT0gbnVsbCA/IG9sZCA6IFtdKSwgY29sdW1uLmlkXTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29sdW1uLmdldENhbkdyb3VwID0gKCkgPT4ge1xuICAgICAgdmFyIF9jb2x1bW4kY29sdW1uRGVmJGVuYSwgX3RhYmxlJG9wdGlvbnMkZW5hYmxlO1xuICAgICAgcmV0dXJuICgoX2NvbHVtbiRjb2x1bW5EZWYkZW5hID0gY29sdW1uLmNvbHVtbkRlZi5lbmFibGVHcm91cGluZykgIT0gbnVsbCA/IF9jb2x1bW4kY29sdW1uRGVmJGVuYSA6IHRydWUpICYmICgoX3RhYmxlJG9wdGlvbnMkZW5hYmxlID0gdGFibGUub3B0aW9ucy5lbmFibGVHcm91cGluZykgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGVuYWJsZSA6IHRydWUpICYmICghIWNvbHVtbi5hY2Nlc3NvckZuIHx8ICEhY29sdW1uLmNvbHVtbkRlZi5nZXRHcm91cGluZ1ZhbHVlKTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRJc0dyb3VwZWQgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldFN0YXRlJGdyb3VwO1xuICAgICAgcmV0dXJuIChfdGFibGUkZ2V0U3RhdGUkZ3JvdXAgPSB0YWJsZS5nZXRTdGF0ZSgpLmdyb3VwaW5nKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJGdyb3VwLmluY2x1ZGVzKGNvbHVtbi5pZCk7XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0R3JvdXBlZEluZGV4ID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRnZXRTdGF0ZSRncm91cDI7XG4gICAgICByZXR1cm4gKF90YWJsZSRnZXRTdGF0ZSRncm91cDIgPSB0YWJsZS5nZXRTdGF0ZSgpLmdyb3VwaW5nKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJGdyb3VwMi5pbmRleE9mKGNvbHVtbi5pZCk7XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0VG9nZ2xlR3JvdXBpbmdIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgY2FuR3JvdXAgPSBjb2x1bW4uZ2V0Q2FuR3JvdXAoKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmICghY2FuR3JvdXApIHJldHVybjtcbiAgICAgICAgY29sdW1uLnRvZ2dsZUdyb3VwaW5nKCk7XG4gICAgICB9O1xuICAgIH07XG4gICAgY29sdW1uLmdldEF1dG9BZ2dyZWdhdGlvbkZuID0gKCkgPT4ge1xuICAgICAgY29uc3QgZmlyc3RSb3cgPSB0YWJsZS5nZXRDb3JlUm93TW9kZWwoKS5mbGF0Um93c1swXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmlyc3RSb3cgPT0gbnVsbCA/IHZvaWQgMCA6IGZpcnN0Um93LmdldFZhbHVlKGNvbHVtbi5pZCk7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gYWdncmVnYXRpb25GbnMuc3VtO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICByZXR1cm4gYWdncmVnYXRpb25GbnMuZXh0ZW50O1xuICAgICAgfVxuICAgIH07XG4gICAgY29sdW1uLmdldEFnZ3JlZ2F0aW9uRm4gPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkYWdncmVnLCBfdGFibGUkb3B0aW9ucyRhZ2dyZWcyO1xuICAgICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihjb2x1bW4uY29sdW1uRGVmLmFnZ3JlZ2F0aW9uRm4pID8gY29sdW1uLmNvbHVtbkRlZi5hZ2dyZWdhdGlvbkZuIDogY29sdW1uLmNvbHVtbkRlZi5hZ2dyZWdhdGlvbkZuID09PSAnYXV0bycgPyBjb2x1bW4uZ2V0QXV0b0FnZ3JlZ2F0aW9uRm4oKSA6IChfdGFibGUkb3B0aW9ucyRhZ2dyZWcgPSAoX3RhYmxlJG9wdGlvbnMkYWdncmVnMiA9IHRhYmxlLm9wdGlvbnMuYWdncmVnYXRpb25GbnMpID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkb3B0aW9ucyRhZ2dyZWcyW2NvbHVtbi5jb2x1bW5EZWYuYWdncmVnYXRpb25Gbl0pICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRhZ2dyZWcgOiBhZ2dyZWdhdGlvbkZuc1tjb2x1bW4uY29sdW1uRGVmLmFnZ3JlZ2F0aW9uRm5dO1xuICAgIH07XG4gIH0sXG4gIGNyZWF0ZVRhYmxlOiB0YWJsZSA9PiB7XG4gICAgdGFibGUuc2V0R3JvdXBpbmcgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Hcm91cGluZ0NoYW5nZSA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5vbkdyb3VwaW5nQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIHRhYmxlLnJlc2V0R3JvdXBpbmcgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkZywgX3RhYmxlJGluaXRpYWxTdGF0ZTtcbiAgICAgIHRhYmxlLnNldEdyb3VwaW5nKGRlZmF1bHRTdGF0ZSA/IFtdIDogKF90YWJsZSRpbml0aWFsU3RhdGUkZyA9IChfdGFibGUkaW5pdGlhbFN0YXRlID0gdGFibGUuaW5pdGlhbFN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGluaXRpYWxTdGF0ZS5ncm91cGluZykgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkZyA6IFtdKTtcbiAgICB9O1xuICAgIHRhYmxlLmdldFByZUdyb3VwZWRSb3dNb2RlbCA9ICgpID0+IHRhYmxlLmdldEZpbHRlcmVkUm93TW9kZWwoKTtcbiAgICB0YWJsZS5nZXRHcm91cGVkUm93TW9kZWwgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRhYmxlLl9nZXRHcm91cGVkUm93TW9kZWwgJiYgdGFibGUub3B0aW9ucy5nZXRHcm91cGVkUm93TW9kZWwpIHtcbiAgICAgICAgdGFibGUuX2dldEdyb3VwZWRSb3dNb2RlbCA9IHRhYmxlLm9wdGlvbnMuZ2V0R3JvdXBlZFJvd01vZGVsKHRhYmxlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0YWJsZS5vcHRpb25zLm1hbnVhbEdyb3VwaW5nIHx8ICF0YWJsZS5fZ2V0R3JvdXBlZFJvd01vZGVsKSB7XG4gICAgICAgIHJldHVybiB0YWJsZS5nZXRQcmVHcm91cGVkUm93TW9kZWwoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWJsZS5fZ2V0R3JvdXBlZFJvd01vZGVsKCk7XG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlUm93OiAocm93LCB0YWJsZSkgPT4ge1xuICAgIHJvdy5nZXRJc0dyb3VwZWQgPSAoKSA9PiAhIXJvdy5ncm91cGluZ0NvbHVtbklkO1xuICAgIHJvdy5nZXRHcm91cGluZ1ZhbHVlID0gY29sdW1uSWQgPT4ge1xuICAgICAgaWYgKHJvdy5fZ3JvdXBpbmdWYWx1ZXNDYWNoZS5oYXNPd25Qcm9wZXJ0eShjb2x1bW5JZCkpIHtcbiAgICAgICAgcmV0dXJuIHJvdy5fZ3JvdXBpbmdWYWx1ZXNDYWNoZVtjb2x1bW5JZF07XG4gICAgICB9XG4gICAgICBjb25zdCBjb2x1bW4gPSB0YWJsZS5nZXRDb2x1bW4oY29sdW1uSWQpO1xuICAgICAgaWYgKCEoY29sdW1uICE9IG51bGwgJiYgY29sdW1uLmNvbHVtbkRlZi5nZXRHcm91cGluZ1ZhbHVlKSkge1xuICAgICAgICByZXR1cm4gcm93LmdldFZhbHVlKGNvbHVtbklkKTtcbiAgICAgIH1cbiAgICAgIHJvdy5fZ3JvdXBpbmdWYWx1ZXNDYWNoZVtjb2x1bW5JZF0gPSBjb2x1bW4uY29sdW1uRGVmLmdldEdyb3VwaW5nVmFsdWUocm93Lm9yaWdpbmFsKTtcbiAgICAgIHJldHVybiByb3cuX2dyb3VwaW5nVmFsdWVzQ2FjaGVbY29sdW1uSWRdO1xuICAgIH07XG4gICAgcm93Ll9ncm91cGluZ1ZhbHVlc0NhY2hlID0ge307XG4gIH0sXG4gIGNyZWF0ZUNlbGw6IChjZWxsLCBjb2x1bW4sIHJvdywgdGFibGUpID0+IHtcbiAgICBjZWxsLmdldElzR3JvdXBlZCA9ICgpID0+IGNvbHVtbi5nZXRJc0dyb3VwZWQoKSAmJiBjb2x1bW4uaWQgPT09IHJvdy5ncm91cGluZ0NvbHVtbklkO1xuICAgIGNlbGwuZ2V0SXNQbGFjZWhvbGRlciA9ICgpID0+ICFjZWxsLmdldElzR3JvdXBlZCgpICYmIGNvbHVtbi5nZXRJc0dyb3VwZWQoKTtcbiAgICBjZWxsLmdldElzQWdncmVnYXRlZCA9ICgpID0+IHtcbiAgICAgIHZhciBfcm93JHN1YlJvd3M7XG4gICAgICByZXR1cm4gIWNlbGwuZ2V0SXNHcm91cGVkKCkgJiYgIWNlbGwuZ2V0SXNQbGFjZWhvbGRlcigpICYmICEhKChfcm93JHN1YlJvd3MgPSByb3cuc3ViUm93cykgIT0gbnVsbCAmJiBfcm93JHN1YlJvd3MubGVuZ3RoKTtcbiAgICB9O1xuICB9XG59O1xuZnVuY3Rpb24gb3JkZXJDb2x1bW5zKGxlYWZDb2x1bW5zLCBncm91cGluZywgZ3JvdXBlZENvbHVtbk1vZGUpIHtcbiAgaWYgKCEoZ3JvdXBpbmcgIT0gbnVsbCAmJiBncm91cGluZy5sZW5ndGgpIHx8ICFncm91cGVkQ29sdW1uTW9kZSkge1xuICAgIHJldHVybiBsZWFmQ29sdW1ucztcbiAgfVxuICBjb25zdCBub25Hcm91cGluZ0NvbHVtbnMgPSBsZWFmQ29sdW1ucy5maWx0ZXIoY29sID0+ICFncm91cGluZy5pbmNsdWRlcyhjb2wuaWQpKTtcbiAgaWYgKGdyb3VwZWRDb2x1bW5Nb2RlID09PSAncmVtb3ZlJykge1xuICAgIHJldHVybiBub25Hcm91cGluZ0NvbHVtbnM7XG4gIH1cbiAgY29uc3QgZ3JvdXBpbmdDb2x1bW5zID0gZ3JvdXBpbmcubWFwKGcgPT4gbGVhZkNvbHVtbnMuZmluZChjb2wgPT4gY29sLmlkID09PSBnKSkuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gWy4uLmdyb3VwaW5nQ29sdW1ucywgLi4ubm9uR3JvdXBpbmdDb2x1bW5zXTtcbn1cblxuLy9cblxuY29uc3QgQ29sdW1uT3JkZXJpbmcgPSB7XG4gIGdldEluaXRpYWxTdGF0ZTogc3RhdGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBjb2x1bW5PcmRlcjogW10sXG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRPcHRpb25zOiB0YWJsZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uQ29sdW1uT3JkZXJDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ2NvbHVtbk9yZGVyJywgdGFibGUpXG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlQ29sdW1uOiAoY29sdW1uLCB0YWJsZSkgPT4ge1xuICAgIGNvbHVtbi5nZXRJbmRleCA9IG1lbW8ocG9zaXRpb24gPT4gW19nZXRWaXNpYmxlTGVhZkNvbHVtbnModGFibGUsIHBvc2l0aW9uKV0sIGNvbHVtbnMgPT4gY29sdW1ucy5maW5kSW5kZXgoZCA9PiBkLmlkID09PSBjb2x1bW4uaWQpLCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldEluZGV4JykpO1xuICAgIGNvbHVtbi5nZXRJc0ZpcnN0Q29sdW1uID0gcG9zaXRpb24gPT4ge1xuICAgICAgdmFyIF9jb2x1bW5zJDtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBfZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKHRhYmxlLCBwb3NpdGlvbik7XG4gICAgICByZXR1cm4gKChfY29sdW1ucyQgPSBjb2x1bW5zWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2NvbHVtbnMkLmlkKSA9PT0gY29sdW1uLmlkO1xuICAgIH07XG4gICAgY29sdW1uLmdldElzTGFzdENvbHVtbiA9IHBvc2l0aW9uID0+IHtcbiAgICAgIHZhciBfY29sdW1ucztcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBfZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKHRhYmxlLCBwb3NpdGlvbik7XG4gICAgICByZXR1cm4gKChfY29sdW1ucyA9IGNvbHVtbnNbY29sdW1ucy5sZW5ndGggLSAxXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jb2x1bW5zLmlkKSA9PT0gY29sdW1uLmlkO1xuICAgIH07XG4gIH0sXG4gIGNyZWF0ZVRhYmxlOiB0YWJsZSA9PiB7XG4gICAgdGFibGUuc2V0Q29sdW1uT3JkZXIgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Db2x1bW5PcmRlckNoYW5nZSA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5vbkNvbHVtbk9yZGVyQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIHRhYmxlLnJlc2V0Q29sdW1uT3JkZXIgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkYztcbiAgICAgIHRhYmxlLnNldENvbHVtbk9yZGVyKGRlZmF1bHRTdGF0ZSA/IFtdIDogKF90YWJsZSRpbml0aWFsU3RhdGUkYyA9IHRhYmxlLmluaXRpYWxTdGF0ZS5jb2x1bW5PcmRlcikgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkYyA6IFtdKTtcbiAgICB9O1xuICAgIHRhYmxlLl9nZXRPcmRlckNvbHVtbnNGbiA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldFN0YXRlKCkuY29sdW1uT3JkZXIsIHRhYmxlLmdldFN0YXRlKCkuZ3JvdXBpbmcsIHRhYmxlLm9wdGlvbnMuZ3JvdXBlZENvbHVtbk1vZGVdLCAoY29sdW1uT3JkZXIsIGdyb3VwaW5nLCBncm91cGVkQ29sdW1uTW9kZSkgPT4gY29sdW1ucyA9PiB7XG4gICAgICAvLyBTb3J0IGdyb3VwZWQgY29sdW1ucyB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbHVtbiBsaXN0XG4gICAgICAvLyBiZWZvcmUgdGhlIGhlYWRlcnMgYXJlIGJ1aWx0XG4gICAgICBsZXQgb3JkZXJlZENvbHVtbnMgPSBbXTtcblxuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gb3JkZXIsIHJldHVybiB0aGUgbm9ybWFsIGNvbHVtbnNcbiAgICAgIGlmICghKGNvbHVtbk9yZGVyICE9IG51bGwgJiYgY29sdW1uT3JkZXIubGVuZ3RoKSkge1xuICAgICAgICBvcmRlcmVkQ29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb2x1bW5PcmRlckNvcHkgPSBbLi4uY29sdW1uT3JkZXJdO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGFuIG9yZGVyLCBtYWtlIGEgY29weSBvZiB0aGUgY29sdW1uc1xuICAgICAgICBjb25zdCBjb2x1bW5zQ29weSA9IFsuLi5jb2x1bW5zXTtcblxuICAgICAgICAvLyBBbmQgbWFrZSBhIG5ldyBvcmRlcmVkIGFycmF5IG9mIHRoZSBjb2x1bW5zXG5cbiAgICAgICAgLy8gTG9vcCBvdmVyIHRoZSBjb2x1bW5zIGFuZCBwbGFjZSB0aGVtIGluIG9yZGVyIGludG8gdGhlIG5ldyBhcnJheVxuICAgICAgICB3aGlsZSAoY29sdW1uc0NvcHkubGVuZ3RoICYmIGNvbHVtbk9yZGVyQ29weS5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW5JZCA9IGNvbHVtbk9yZGVyQ29weS5zaGlmdCgpO1xuICAgICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBjb2x1bW5zQ29weS5maW5kSW5kZXgoZCA9PiBkLmlkID09PSB0YXJnZXRDb2x1bW5JZCk7XG4gICAgICAgICAgaWYgKGZvdW5kSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgb3JkZXJlZENvbHVtbnMucHVzaChjb2x1bW5zQ29weS5zcGxpY2UoZm91bmRJbmRleCwgMSlbMF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgY29sdW1ucyBsZWZ0LCBhZGQgdGhlbSB0byB0aGUgZW5kXG4gICAgICAgIG9yZGVyZWRDb2x1bW5zID0gWy4uLm9yZGVyZWRDb2x1bW5zLCAuLi5jb2x1bW5zQ29weV07XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JkZXJDb2x1bW5zKG9yZGVyZWRDb2x1bW5zLCBncm91cGluZywgZ3JvdXBlZENvbHVtbk1vZGUpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1RhYmxlJywgJ19nZXRPcmRlckNvbHVtbnNGbicpKTtcbiAgfVxufTtcblxuLy9cblxuY29uc3QgZ2V0RGVmYXVsdENvbHVtblBpbm5pbmdTdGF0ZSA9ICgpID0+ICh7XG4gIGxlZnQ6IFtdLFxuICByaWdodDogW11cbn0pO1xuY29uc3QgQ29sdW1uUGlubmluZyA9IHtcbiAgZ2V0SW5pdGlhbFN0YXRlOiBzdGF0ZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtblBpbm5pbmc6IGdldERlZmF1bHRDb2x1bW5QaW5uaW5nU3RhdGUoKSxcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdE9wdGlvbnM6IHRhYmxlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgb25Db2x1bW5QaW5uaW5nQ2hhbmdlOiBtYWtlU3RhdGVVcGRhdGVyKCdjb2x1bW5QaW5uaW5nJywgdGFibGUpXG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlQ29sdW1uOiAoY29sdW1uLCB0YWJsZSkgPT4ge1xuICAgIGNvbHVtbi5waW4gPSBwb3NpdGlvbiA9PiB7XG4gICAgICBjb25zdCBjb2x1bW5JZHMgPSBjb2x1bW4uZ2V0TGVhZkNvbHVtbnMoKS5tYXAoZCA9PiBkLmlkKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB0YWJsZS5zZXRDb2x1bW5QaW5uaW5nKG9sZCA9PiB7XG4gICAgICAgIHZhciBfb2xkJGxlZnQzLCBfb2xkJHJpZ2h0MztcbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgdmFyIF9vbGQkbGVmdCwgX29sZCRyaWdodDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogKChfb2xkJGxlZnQgPSBvbGQgPT0gbnVsbCA/IHZvaWQgMCA6IG9sZC5sZWZ0KSAhPSBudWxsID8gX29sZCRsZWZ0IDogW10pLmZpbHRlcihkID0+ICEoY29sdW1uSWRzICE9IG51bGwgJiYgY29sdW1uSWRzLmluY2x1ZGVzKGQpKSksXG4gICAgICAgICAgICByaWdodDogWy4uLigoX29sZCRyaWdodCA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnJpZ2h0KSAhPSBudWxsID8gX29sZCRyaWdodCA6IFtdKS5maWx0ZXIoZCA9PiAhKGNvbHVtbklkcyAhPSBudWxsICYmIGNvbHVtbklkcy5pbmNsdWRlcyhkKSkpLCAuLi5jb2x1bW5JZHNdXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgIHZhciBfb2xkJGxlZnQyLCBfb2xkJHJpZ2h0MjtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogWy4uLigoX29sZCRsZWZ0MiA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLmxlZnQpICE9IG51bGwgPyBfb2xkJGxlZnQyIDogW10pLmZpbHRlcihkID0+ICEoY29sdW1uSWRzICE9IG51bGwgJiYgY29sdW1uSWRzLmluY2x1ZGVzKGQpKSksIC4uLmNvbHVtbklkc10sXG4gICAgICAgICAgICByaWdodDogKChfb2xkJHJpZ2h0MiA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnJpZ2h0KSAhPSBudWxsID8gX29sZCRyaWdodDIgOiBbXSkuZmlsdGVyKGQgPT4gIShjb2x1bW5JZHMgIT0gbnVsbCAmJiBjb2x1bW5JZHMuaW5jbHVkZXMoZCkpKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsZWZ0OiAoKF9vbGQkbGVmdDMgPSBvbGQgPT0gbnVsbCA/IHZvaWQgMCA6IG9sZC5sZWZ0KSAhPSBudWxsID8gX29sZCRsZWZ0MyA6IFtdKS5maWx0ZXIoZCA9PiAhKGNvbHVtbklkcyAhPSBudWxsICYmIGNvbHVtbklkcy5pbmNsdWRlcyhkKSkpLFxuICAgICAgICAgIHJpZ2h0OiAoKF9vbGQkcmlnaHQzID0gb2xkID09IG51bGwgPyB2b2lkIDAgOiBvbGQucmlnaHQpICE9IG51bGwgPyBfb2xkJHJpZ2h0MyA6IFtdKS5maWx0ZXIoZCA9PiAhKGNvbHVtbklkcyAhPSBudWxsICYmIGNvbHVtbklkcy5pbmNsdWRlcyhkKSkpXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRDYW5QaW4gPSAoKSA9PiB7XG4gICAgICBjb25zdCBsZWFmQ29sdW1ucyA9IGNvbHVtbi5nZXRMZWFmQ29sdW1ucygpO1xuICAgICAgcmV0dXJuIGxlYWZDb2x1bW5zLnNvbWUoZCA9PiB7XG4gICAgICAgIHZhciBfZCRjb2x1bW5EZWYkZW5hYmxlUGksIF9yZWYsIF90YWJsZSRvcHRpb25zJGVuYWJsZTtcbiAgICAgICAgcmV0dXJuICgoX2QkY29sdW1uRGVmJGVuYWJsZVBpID0gZC5jb2x1bW5EZWYuZW5hYmxlUGlubmluZykgIT0gbnVsbCA/IF9kJGNvbHVtbkRlZiRlbmFibGVQaSA6IHRydWUpICYmICgoX3JlZiA9IChfdGFibGUkb3B0aW9ucyRlbmFibGUgPSB0YWJsZS5vcHRpb25zLmVuYWJsZUNvbHVtblBpbm5pbmcpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0YWJsZS5vcHRpb25zLmVuYWJsZVBpbm5pbmcpICE9IG51bGwgPyBfcmVmIDogdHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRJc1Bpbm5lZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGxlYWZDb2x1bW5JZHMgPSBjb2x1bW4uZ2V0TGVhZkNvbHVtbnMoKS5tYXAoZCA9PiBkLmlkKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbGVmdCxcbiAgICAgICAgcmlnaHRcbiAgICAgIH0gPSB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmc7XG4gICAgICBjb25zdCBpc0xlZnQgPSBsZWFmQ29sdW1uSWRzLnNvbWUoZCA9PiBsZWZ0ID09IG51bGwgPyB2b2lkIDAgOiBsZWZ0LmluY2x1ZGVzKGQpKTtcbiAgICAgIGNvbnN0IGlzUmlnaHQgPSBsZWFmQ29sdW1uSWRzLnNvbWUoZCA9PiByaWdodCA9PSBudWxsID8gdm9pZCAwIDogcmlnaHQuaW5jbHVkZXMoZCkpO1xuICAgICAgcmV0dXJuIGlzTGVmdCA/ICdsZWZ0JyA6IGlzUmlnaHQgPyAncmlnaHQnIDogZmFsc2U7XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0UGlubmVkSW5kZXggPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldFN0YXRlJGNvbHVtLCBfdGFibGUkZ2V0U3RhdGUkY29sdW0yO1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBjb2x1bW4uZ2V0SXNQaW5uZWQoKTtcbiAgICAgIHJldHVybiBwb3NpdGlvbiA/IChfdGFibGUkZ2V0U3RhdGUkY29sdW0gPSAoX3RhYmxlJGdldFN0YXRlJGNvbHVtMiA9IHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZykgPT0gbnVsbCB8fCAoX3RhYmxlJGdldFN0YXRlJGNvbHVtMiA9IF90YWJsZSRnZXRTdGF0ZSRjb2x1bTJbcG9zaXRpb25dKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJGNvbHVtMi5pbmRleE9mKGNvbHVtbi5pZCkpICE9IG51bGwgPyBfdGFibGUkZ2V0U3RhdGUkY29sdW0gOiAtMSA6IDA7XG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlUm93OiAocm93LCB0YWJsZSkgPT4ge1xuICAgIHJvdy5nZXRDZW50ZXJWaXNpYmxlQ2VsbHMgPSBtZW1vKCgpID0+IFtyb3cuX2dldEFsbFZpc2libGVDZWxscygpLCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcubGVmdCwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5QaW5uaW5nLnJpZ2h0XSwgKGFsbENlbGxzLCBsZWZ0LCByaWdodCkgPT4ge1xuICAgICAgY29uc3QgbGVmdEFuZFJpZ2h0ID0gWy4uLihsZWZ0ICE9IG51bGwgPyBsZWZ0IDogW10pLCAuLi4ocmlnaHQgIT0gbnVsbCA/IHJpZ2h0IDogW10pXTtcbiAgICAgIHJldHVybiBhbGxDZWxscy5maWx0ZXIoZCA9PiAhbGVmdEFuZFJpZ2h0LmluY2x1ZGVzKGQuY29sdW1uLmlkKSk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnUm93cycsICdnZXRDZW50ZXJWaXNpYmxlQ2VsbHMnKSk7XG4gICAgcm93LmdldExlZnRWaXNpYmxlQ2VsbHMgPSBtZW1vKCgpID0+IFtyb3cuX2dldEFsbFZpc2libGVDZWxscygpLCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcubGVmdF0sIChhbGxDZWxscywgbGVmdCkgPT4ge1xuICAgICAgY29uc3QgY2VsbHMgPSAobGVmdCAhPSBudWxsID8gbGVmdCA6IFtdKS5tYXAoY29sdW1uSWQgPT4gYWxsQ2VsbHMuZmluZChjZWxsID0+IGNlbGwuY29sdW1uLmlkID09PSBjb2x1bW5JZCkpLmZpbHRlcihCb29sZWFuKS5tYXAoZCA9PiAoe1xuICAgICAgICAuLi5kLFxuICAgICAgICBwb3NpdGlvbjogJ2xlZnQnXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gY2VsbHM7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnUm93cycsICdnZXRMZWZ0VmlzaWJsZUNlbGxzJykpO1xuICAgIHJvdy5nZXRSaWdodFZpc2libGVDZWxscyA9IG1lbW8oKCkgPT4gW3Jvdy5fZ2V0QWxsVmlzaWJsZUNlbGxzKCksIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZy5yaWdodF0sIChhbGxDZWxscywgcmlnaHQpID0+IHtcbiAgICAgIGNvbnN0IGNlbGxzID0gKHJpZ2h0ICE9IG51bGwgPyByaWdodCA6IFtdKS5tYXAoY29sdW1uSWQgPT4gYWxsQ2VsbHMuZmluZChjZWxsID0+IGNlbGwuY29sdW1uLmlkID09PSBjb2x1bW5JZCkpLmZpbHRlcihCb29sZWFuKS5tYXAoZCA9PiAoe1xuICAgICAgICAuLi5kLFxuICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0J1xuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIGNlbGxzO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnZ2V0UmlnaHRWaXNpYmxlQ2VsbHMnKSk7XG4gIH0sXG4gIGNyZWF0ZVRhYmxlOiB0YWJsZSA9PiB7XG4gICAgdGFibGUuc2V0Q29sdW1uUGlubmluZyA9IHVwZGF0ZXIgPT4gdGFibGUub3B0aW9ucy5vbkNvbHVtblBpbm5pbmdDaGFuZ2UgPT0gbnVsbCA/IHZvaWQgMCA6IHRhYmxlLm9wdGlvbnMub25Db2x1bW5QaW5uaW5nQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIHRhYmxlLnJlc2V0Q29sdW1uUGlubmluZyA9IGRlZmF1bHRTdGF0ZSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGluaXRpYWxTdGF0ZSRjLCBfdGFibGUkaW5pdGlhbFN0YXRlO1xuICAgICAgcmV0dXJuIHRhYmxlLnNldENvbHVtblBpbm5pbmcoZGVmYXVsdFN0YXRlID8gZ2V0RGVmYXVsdENvbHVtblBpbm5pbmdTdGF0ZSgpIDogKF90YWJsZSRpbml0aWFsU3RhdGUkYyA9IChfdGFibGUkaW5pdGlhbFN0YXRlID0gdGFibGUuaW5pdGlhbFN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGluaXRpYWxTdGF0ZS5jb2x1bW5QaW5uaW5nKSAhPSBudWxsID8gX3RhYmxlJGluaXRpYWxTdGF0ZSRjIDogZ2V0RGVmYXVsdENvbHVtblBpbm5pbmdTdGF0ZSgpKTtcbiAgICB9O1xuICAgIHRhYmxlLmdldElzU29tZUNvbHVtbnNQaW5uZWQgPSBwb3NpdGlvbiA9PiB7XG4gICAgICB2YXIgX3Bpbm5pbmdTdGF0ZSRwb3NpdGlvO1xuICAgICAgY29uc3QgcGlubmluZ1N0YXRlID0gdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5QaW5uaW5nO1xuICAgICAgaWYgKCFwb3NpdGlvbikge1xuICAgICAgICB2YXIgX3Bpbm5pbmdTdGF0ZSRsZWZ0LCBfcGlubmluZ1N0YXRlJHJpZ2h0O1xuICAgICAgICByZXR1cm4gQm9vbGVhbigoKF9waW5uaW5nU3RhdGUkbGVmdCA9IHBpbm5pbmdTdGF0ZS5sZWZ0KSA9PSBudWxsID8gdm9pZCAwIDogX3Bpbm5pbmdTdGF0ZSRsZWZ0Lmxlbmd0aCkgfHwgKChfcGlubmluZ1N0YXRlJHJpZ2h0ID0gcGlubmluZ1N0YXRlLnJpZ2h0KSA9PSBudWxsID8gdm9pZCAwIDogX3Bpbm5pbmdTdGF0ZSRyaWdodC5sZW5ndGgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKChfcGlubmluZ1N0YXRlJHBvc2l0aW8gPSBwaW5uaW5nU3RhdGVbcG9zaXRpb25dKSA9PSBudWxsID8gdm9pZCAwIDogX3Bpbm5pbmdTdGF0ZSRwb3NpdGlvLmxlbmd0aCk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRMZWZ0TGVhZkNvbHVtbnMgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRBbGxMZWFmQ29sdW1ucygpLCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcubGVmdF0sIChhbGxDb2x1bW5zLCBsZWZ0KSA9PiB7XG4gICAgICByZXR1cm4gKGxlZnQgIT0gbnVsbCA/IGxlZnQgOiBbXSkubWFwKGNvbHVtbklkID0+IGFsbENvbHVtbnMuZmluZChjb2x1bW4gPT4gY29sdW1uLmlkID09PSBjb2x1bW5JZCkpLmZpbHRlcihCb29sZWFuKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldExlZnRMZWFmQ29sdW1ucycpKTtcbiAgICB0YWJsZS5nZXRSaWdodExlYWZDb2x1bW5zID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0QWxsTGVhZkNvbHVtbnMoKSwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5QaW5uaW5nLnJpZ2h0XSwgKGFsbENvbHVtbnMsIHJpZ2h0KSA9PiB7XG4gICAgICByZXR1cm4gKHJpZ2h0ICE9IG51bGwgPyByaWdodCA6IFtdKS5tYXAoY29sdW1uSWQgPT4gYWxsQ29sdW1ucy5maW5kKGNvbHVtbiA9PiBjb2x1bW4uaWQgPT09IGNvbHVtbklkKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z0NvbHVtbnMnLCAnZ2V0UmlnaHRMZWFmQ29sdW1ucycpKTtcbiAgICB0YWJsZS5nZXRDZW50ZXJMZWFmQ29sdW1ucyA9IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbExlYWZDb2x1bW5zKCksIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uUGlubmluZy5sZWZ0LCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblBpbm5pbmcucmlnaHRdLCAoYWxsQ29sdW1ucywgbGVmdCwgcmlnaHQpID0+IHtcbiAgICAgIGNvbnN0IGxlZnRBbmRSaWdodCA9IFsuLi4obGVmdCAhPSBudWxsID8gbGVmdCA6IFtdKSwgLi4uKHJpZ2h0ICE9IG51bGwgPyByaWdodCA6IFtdKV07XG4gICAgICByZXR1cm4gYWxsQ29sdW1ucy5maWx0ZXIoZCA9PiAhbGVmdEFuZFJpZ2h0LmluY2x1ZGVzKGQuaWQpKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldENlbnRlckxlYWZDb2x1bW5zJykpO1xuICB9XG59O1xuXG4vL1xuXG4vL1xuXG5jb25zdCBkZWZhdWx0Q29sdW1uU2l6aW5nID0ge1xuICBzaXplOiAxNTAsXG4gIG1pblNpemU6IDIwLFxuICBtYXhTaXplOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxufTtcbmNvbnN0IGdldERlZmF1bHRDb2x1bW5TaXppbmdJbmZvU3RhdGUgPSAoKSA9PiAoe1xuICBzdGFydE9mZnNldDogbnVsbCxcbiAgc3RhcnRTaXplOiBudWxsLFxuICBkZWx0YU9mZnNldDogbnVsbCxcbiAgZGVsdGFQZXJjZW50YWdlOiBudWxsLFxuICBpc1Jlc2l6aW5nQ29sdW1uOiBmYWxzZSxcbiAgY29sdW1uU2l6aW5nU3RhcnQ6IFtdXG59KTtcbmNvbnN0IENvbHVtblNpemluZyA9IHtcbiAgZ2V0RGVmYXVsdENvbHVtbkRlZjogKCkgPT4ge1xuICAgIHJldHVybiBkZWZhdWx0Q29sdW1uU2l6aW5nO1xuICB9LFxuICBnZXRJbml0aWFsU3RhdGU6IHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uU2l6aW5nOiB7fSxcbiAgICAgIGNvbHVtblNpemluZ0luZm86IGdldERlZmF1bHRDb2x1bW5TaXppbmdJbmZvU3RhdGUoKSxcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdE9wdGlvbnM6IHRhYmxlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uUmVzaXplTW9kZTogJ29uRW5kJyxcbiAgICAgIGNvbHVtblJlc2l6ZURpcmVjdGlvbjogJ2x0cicsXG4gICAgICBvbkNvbHVtblNpemluZ0NoYW5nZTogbWFrZVN0YXRlVXBkYXRlcignY29sdW1uU2l6aW5nJywgdGFibGUpLFxuICAgICAgb25Db2x1bW5TaXppbmdJbmZvQ2hhbmdlOiBtYWtlU3RhdGVVcGRhdGVyKCdjb2x1bW5TaXppbmdJbmZvJywgdGFibGUpXG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlQ29sdW1uOiAoY29sdW1uLCB0YWJsZSkgPT4ge1xuICAgIGNvbHVtbi5nZXRTaXplID0gKCkgPT4ge1xuICAgICAgdmFyIF9jb2x1bW4kY29sdW1uRGVmJG1pbiwgX3JlZiwgX2NvbHVtbiRjb2x1bW5EZWYkbWF4O1xuICAgICAgY29uc3QgY29sdW1uU2l6ZSA9IHRhYmxlLmdldFN0YXRlKCkuY29sdW1uU2l6aW5nW2NvbHVtbi5pZF07XG4gICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoKF9jb2x1bW4kY29sdW1uRGVmJG1pbiA9IGNvbHVtbi5jb2x1bW5EZWYubWluU2l6ZSkgIT0gbnVsbCA/IF9jb2x1bW4kY29sdW1uRGVmJG1pbiA6IGRlZmF1bHRDb2x1bW5TaXppbmcubWluU2l6ZSwgKF9yZWYgPSBjb2x1bW5TaXplICE9IG51bGwgPyBjb2x1bW5TaXplIDogY29sdW1uLmNvbHVtbkRlZi5zaXplKSAhPSBudWxsID8gX3JlZiA6IGRlZmF1bHRDb2x1bW5TaXppbmcuc2l6ZSksIChfY29sdW1uJGNvbHVtbkRlZiRtYXggPSBjb2x1bW4uY29sdW1uRGVmLm1heFNpemUpICE9IG51bGwgPyBfY29sdW1uJGNvbHVtbkRlZiRtYXggOiBkZWZhdWx0Q29sdW1uU2l6aW5nLm1heFNpemUpO1xuICAgIH07XG4gICAgY29sdW1uLmdldFN0YXJ0ID0gbWVtbyhwb3NpdGlvbiA9PiBbcG9zaXRpb24sIF9nZXRWaXNpYmxlTGVhZkNvbHVtbnModGFibGUsIHBvc2l0aW9uKSwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5TaXppbmddLCAocG9zaXRpb24sIGNvbHVtbnMpID0+IGNvbHVtbnMuc2xpY2UoMCwgY29sdW1uLmdldEluZGV4KHBvc2l0aW9uKSkucmVkdWNlKChzdW0sIGNvbHVtbikgPT4gc3VtICsgY29sdW1uLmdldFNpemUoKSwgMCksIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z0NvbHVtbnMnLCAnZ2V0U3RhcnQnKSk7XG4gICAgY29sdW1uLmdldEFmdGVyID0gbWVtbyhwb3NpdGlvbiA9PiBbcG9zaXRpb24sIF9nZXRWaXNpYmxlTGVhZkNvbHVtbnModGFibGUsIHBvc2l0aW9uKSwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5TaXppbmddLCAocG9zaXRpb24sIGNvbHVtbnMpID0+IGNvbHVtbnMuc2xpY2UoY29sdW1uLmdldEluZGV4KHBvc2l0aW9uKSArIDEpLnJlZHVjZSgoc3VtLCBjb2x1bW4pID0+IHN1bSArIGNvbHVtbi5nZXRTaXplKCksIDApLCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldEFmdGVyJykpO1xuICAgIGNvbHVtbi5yZXNldFNpemUgPSAoKSA9PiB7XG4gICAgICB0YWJsZS5zZXRDb2x1bW5TaXppbmcoX3JlZjIgPT4ge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIFtjb2x1bW4uaWRdOiBfLFxuICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgfSA9IF9yZWYyO1xuICAgICAgICByZXR1cm4gcmVzdDtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29sdW1uLmdldENhblJlc2l6ZSA9ICgpID0+IHtcbiAgICAgIHZhciBfY29sdW1uJGNvbHVtbkRlZiRlbmEsIF90YWJsZSRvcHRpb25zJGVuYWJsZTtcbiAgICAgIHJldHVybiAoKF9jb2x1bW4kY29sdW1uRGVmJGVuYSA9IGNvbHVtbi5jb2x1bW5EZWYuZW5hYmxlUmVzaXppbmcpICE9IG51bGwgPyBfY29sdW1uJGNvbHVtbkRlZiRlbmEgOiB0cnVlKSAmJiAoKF90YWJsZSRvcHRpb25zJGVuYWJsZSA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlQ29sdW1uUmVzaXppbmcpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0cnVlKTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRJc1Jlc2l6aW5nID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYmxlLmdldFN0YXRlKCkuY29sdW1uU2l6aW5nSW5mby5pc1Jlc2l6aW5nQ29sdW1uID09PSBjb2x1bW4uaWQ7XG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlSGVhZGVyOiAoaGVhZGVyLCB0YWJsZSkgPT4ge1xuICAgIGhlYWRlci5nZXRTaXplID0gKCkgPT4ge1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBjb25zdCByZWN1cnNlID0gaGVhZGVyID0+IHtcbiAgICAgICAgaWYgKGhlYWRlci5zdWJIZWFkZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGhlYWRlci5zdWJIZWFkZXJzLmZvckVhY2gocmVjdXJzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIF9oZWFkZXIkY29sdW1uJGdldFNpejtcbiAgICAgICAgICBzdW0gKz0gKF9oZWFkZXIkY29sdW1uJGdldFNpeiA9IGhlYWRlci5jb2x1bW4uZ2V0U2l6ZSgpKSAhPSBudWxsID8gX2hlYWRlciRjb2x1bW4kZ2V0U2l6IDogMDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJlY3Vyc2UoaGVhZGVyKTtcbiAgICAgIHJldHVybiBzdW07XG4gICAgfTtcbiAgICBoZWFkZXIuZ2V0U3RhcnQgPSAoKSA9PiB7XG4gICAgICBpZiAoaGVhZGVyLmluZGV4ID4gMCkge1xuICAgICAgICBjb25zdCBwcmV2U2libGluZ0hlYWRlciA9IGhlYWRlci5oZWFkZXJHcm91cC5oZWFkZXJzW2hlYWRlci5pbmRleCAtIDFdO1xuICAgICAgICByZXR1cm4gcHJldlNpYmxpbmdIZWFkZXIuZ2V0U3RhcnQoKSArIHByZXZTaWJsaW5nSGVhZGVyLmdldFNpemUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH07XG4gICAgaGVhZGVyLmdldFJlc2l6ZUhhbmRsZXIgPSBfY29udGV4dERvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRhYmxlLmdldENvbHVtbihoZWFkZXIuY29sdW1uLmlkKTtcbiAgICAgIGNvbnN0IGNhblJlc2l6ZSA9IGNvbHVtbiA9PSBudWxsID8gdm9pZCAwIDogY29sdW1uLmdldENhblJlc2l6ZSgpO1xuICAgICAgcmV0dXJuIGUgPT4ge1xuICAgICAgICBpZiAoIWNvbHVtbiB8fCAhY2FuUmVzaXplKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGUucGVyc2lzdCA9PSBudWxsIHx8IGUucGVyc2lzdCgpO1xuICAgICAgICBpZiAoaXNUb3VjaFN0YXJ0RXZlbnQoZSkpIHtcbiAgICAgICAgICAvLyBsZXRzIG5vdCByZXNwb25kIHRvIG11bHRpcGxlIHRvdWNoZXMgKGUuZy4gMiBvciAzIGZpbmdlcnMpXG4gICAgICAgICAgaWYgKGUudG91Y2hlcyAmJiBlLnRvdWNoZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydFNpemUgPSBoZWFkZXIuZ2V0U2l6ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5TaXppbmdTdGFydCA9IGhlYWRlciA/IGhlYWRlci5nZXRMZWFmSGVhZGVycygpLm1hcChkID0+IFtkLmNvbHVtbi5pZCwgZC5jb2x1bW4uZ2V0U2l6ZSgpXSkgOiBbW2NvbHVtbi5pZCwgY29sdW1uLmdldFNpemUoKV1dO1xuICAgICAgICBjb25zdCBjbGllbnRYID0gaXNUb3VjaFN0YXJ0RXZlbnQoZSkgPyBNYXRoLnJvdW5kKGUudG91Y2hlc1swXS5jbGllbnRYKSA6IGUuY2xpZW50WDtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uU2l6aW5nID0ge307XG4gICAgICAgIGNvbnN0IHVwZGF0ZU9mZnNldCA9IChldmVudFR5cGUsIGNsaWVudFhQb3MpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGNsaWVudFhQb3MgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRhYmxlLnNldENvbHVtblNpemluZ0luZm8ob2xkID0+IHtcbiAgICAgICAgICAgIHZhciBfb2xkJHN0YXJ0T2Zmc2V0LCBfb2xkJHN0YXJ0U2l6ZTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhRGlyZWN0aW9uID0gdGFibGUub3B0aW9ucy5jb2x1bW5SZXNpemVEaXJlY3Rpb24gPT09ICdydGwnID8gLTEgOiAxO1xuICAgICAgICAgICAgY29uc3QgZGVsdGFPZmZzZXQgPSAoY2xpZW50WFBvcyAtICgoX29sZCRzdGFydE9mZnNldCA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnN0YXJ0T2Zmc2V0KSAhPSBudWxsID8gX29sZCRzdGFydE9mZnNldCA6IDApKSAqIGRlbHRhRGlyZWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgZGVsdGFQZXJjZW50YWdlID0gTWF0aC5tYXgoZGVsdGFPZmZzZXQgLyAoKF9vbGQkc3RhcnRTaXplID0gb2xkID09IG51bGwgPyB2b2lkIDAgOiBvbGQuc3RhcnRTaXplKSAhPSBudWxsID8gX29sZCRzdGFydFNpemUgOiAwKSwgLTAuOTk5OTk5KTtcbiAgICAgICAgICAgIG9sZC5jb2x1bW5TaXppbmdTdGFydC5mb3JFYWNoKF9yZWYzID0+IHtcbiAgICAgICAgICAgICAgbGV0IFtjb2x1bW5JZCwgaGVhZGVyU2l6ZV0gPSBfcmVmMztcbiAgICAgICAgICAgICAgbmV3Q29sdW1uU2l6aW5nW2NvbHVtbklkXSA9IE1hdGgucm91bmQoTWF0aC5tYXgoaGVhZGVyU2l6ZSArIGhlYWRlclNpemUgKiBkZWx0YVBlcmNlbnRhZ2UsIDApICogMTAwKSAvIDEwMDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4ub2xkLFxuICAgICAgICAgICAgICBkZWx0YU9mZnNldCxcbiAgICAgICAgICAgICAgZGVsdGFQZXJjZW50YWdlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh0YWJsZS5vcHRpb25zLmNvbHVtblJlc2l6ZU1vZGUgPT09ICdvbkNoYW5nZScgfHwgZXZlbnRUeXBlID09PSAnZW5kJykge1xuICAgICAgICAgICAgdGFibGUuc2V0Q29sdW1uU2l6aW5nKG9sZCA9PiAoe1xuICAgICAgICAgICAgICAuLi5vbGQsXG4gICAgICAgICAgICAgIC4uLm5ld0NvbHVtblNpemluZ1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Nb3ZlID0gY2xpZW50WFBvcyA9PiB1cGRhdGVPZmZzZXQoJ21vdmUnLCBjbGllbnRYUG9zKTtcbiAgICAgICAgY29uc3Qgb25FbmQgPSBjbGllbnRYUG9zID0+IHtcbiAgICAgICAgICB1cGRhdGVPZmZzZXQoJ2VuZCcsIGNsaWVudFhQb3MpO1xuICAgICAgICAgIHRhYmxlLnNldENvbHVtblNpemluZ0luZm8ob2xkID0+ICh7XG4gICAgICAgICAgICAuLi5vbGQsXG4gICAgICAgICAgICBpc1Jlc2l6aW5nQ29sdW1uOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBudWxsLFxuICAgICAgICAgICAgc3RhcnRTaXplOiBudWxsLFxuICAgICAgICAgICAgZGVsdGFPZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICBkZWx0YVBlcmNlbnRhZ2U6IG51bGwsXG4gICAgICAgICAgICBjb2x1bW5TaXppbmdTdGFydDogW11cbiAgICAgICAgICB9KSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbnRleHREb2N1bWVudCA9IF9jb250ZXh0RG9jdW1lbnQgfHwgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogbnVsbDtcbiAgICAgICAgY29uc3QgbW91c2VFdmVudHMgPSB7XG4gICAgICAgICAgbW92ZUhhbmRsZXI6IGUgPT4gb25Nb3ZlKGUuY2xpZW50WCksXG4gICAgICAgICAgdXBIYW5kbGVyOiBlID0+IHtcbiAgICAgICAgICAgIGNvbnRleHREb2N1bWVudCA9PSBudWxsIHx8IGNvbnRleHREb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZUV2ZW50cy5tb3ZlSGFuZGxlcik7XG4gICAgICAgICAgICBjb250ZXh0RG9jdW1lbnQgPT0gbnVsbCB8fCBjb250ZXh0RG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG1vdXNlRXZlbnRzLnVwSGFuZGxlcik7XG4gICAgICAgICAgICBvbkVuZChlLmNsaWVudFgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdG91Y2hFdmVudHMgPSB7XG4gICAgICAgICAgbW92ZUhhbmRsZXI6IGUgPT4ge1xuICAgICAgICAgICAgaWYgKGUuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbk1vdmUoZS50b3VjaGVzWzBdLmNsaWVudFgpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdXBIYW5kbGVyOiBlID0+IHtcbiAgICAgICAgICAgIHZhciBfZSR0b3VjaGVzJDtcbiAgICAgICAgICAgIGNvbnRleHREb2N1bWVudCA9PSBudWxsIHx8IGNvbnRleHREb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0b3VjaEV2ZW50cy5tb3ZlSGFuZGxlcik7XG4gICAgICAgICAgICBjb250ZXh0RG9jdW1lbnQgPT0gbnVsbCB8fCBjb250ZXh0RG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0b3VjaEV2ZW50cy51cEhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKGUuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkVuZCgoX2UkdG91Y2hlcyQgPSBlLnRvdWNoZXNbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfZSR0b3VjaGVzJC5jbGllbnRYKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBhc3NpdmVJZlN1cHBvcnRlZCA9IHBhc3NpdmVFdmVudFN1cHBvcnRlZCgpID8ge1xuICAgICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgICAgIH0gOiBmYWxzZTtcbiAgICAgICAgaWYgKGlzVG91Y2hTdGFydEV2ZW50KGUpKSB7XG4gICAgICAgICAgY29udGV4dERvY3VtZW50ID09IG51bGwgfHwgY29udGV4dERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRvdWNoRXZlbnRzLm1vdmVIYW5kbGVyLCBwYXNzaXZlSWZTdXBwb3J0ZWQpO1xuICAgICAgICAgIGNvbnRleHREb2N1bWVudCA9PSBudWxsIHx8IGNvbnRleHREb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRvdWNoRXZlbnRzLnVwSGFuZGxlciwgcGFzc2l2ZUlmU3VwcG9ydGVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0RG9jdW1lbnQgPT0gbnVsbCB8fCBjb250ZXh0RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2VFdmVudHMubW92ZUhhbmRsZXIsIHBhc3NpdmVJZlN1cHBvcnRlZCk7XG4gICAgICAgICAgY29udGV4dERvY3VtZW50ID09IG51bGwgfHwgY29udGV4dERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZUV2ZW50cy51cEhhbmRsZXIsIHBhc3NpdmVJZlN1cHBvcnRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGFibGUuc2V0Q29sdW1uU2l6aW5nSW5mbyhvbGQgPT4gKHtcbiAgICAgICAgICAuLi5vbGQsXG4gICAgICAgICAgc3RhcnRPZmZzZXQ6IGNsaWVudFgsXG4gICAgICAgICAgc3RhcnRTaXplLFxuICAgICAgICAgIGRlbHRhT2Zmc2V0OiAwLFxuICAgICAgICAgIGRlbHRhUGVyY2VudGFnZTogMCxcbiAgICAgICAgICBjb2x1bW5TaXppbmdTdGFydCxcbiAgICAgICAgICBpc1Jlc2l6aW5nQ29sdW1uOiBjb2x1bW4uaWRcbiAgICAgICAgfSkpO1xuICAgICAgfTtcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIHRhYmxlLnNldENvbHVtblNpemluZyA9IHVwZGF0ZXIgPT4gdGFibGUub3B0aW9ucy5vbkNvbHVtblNpemluZ0NoYW5nZSA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5vbkNvbHVtblNpemluZ0NoYW5nZSh1cGRhdGVyKTtcbiAgICB0YWJsZS5zZXRDb2x1bW5TaXppbmdJbmZvID0gdXBkYXRlciA9PiB0YWJsZS5vcHRpb25zLm9uQ29sdW1uU2l6aW5nSW5mb0NoYW5nZSA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5vbkNvbHVtblNpemluZ0luZm9DaGFuZ2UodXBkYXRlcik7XG4gICAgdGFibGUucmVzZXRDb2x1bW5TaXppbmcgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkYztcbiAgICAgIHRhYmxlLnNldENvbHVtblNpemluZyhkZWZhdWx0U3RhdGUgPyB7fSA6IChfdGFibGUkaW5pdGlhbFN0YXRlJGMgPSB0YWJsZS5pbml0aWFsU3RhdGUuY29sdW1uU2l6aW5nKSAhPSBudWxsID8gX3RhYmxlJGluaXRpYWxTdGF0ZSRjIDoge30pO1xuICAgIH07XG4gICAgdGFibGUucmVzZXRIZWFkZXJTaXplSW5mbyA9IGRlZmF1bHRTdGF0ZSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGluaXRpYWxTdGF0ZSRjMjtcbiAgICAgIHRhYmxlLnNldENvbHVtblNpemluZ0luZm8oZGVmYXVsdFN0YXRlID8gZ2V0RGVmYXVsdENvbHVtblNpemluZ0luZm9TdGF0ZSgpIDogKF90YWJsZSRpbml0aWFsU3RhdGUkYzIgPSB0YWJsZS5pbml0aWFsU3RhdGUuY29sdW1uU2l6aW5nSW5mbykgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkYzIgOiBnZXREZWZhdWx0Q29sdW1uU2l6aW5nSW5mb1N0YXRlKCkpO1xuICAgIH07XG4gICAgdGFibGUuZ2V0VG90YWxTaXplID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRnZXRIZWFkZXJHcm91cCwgX3RhYmxlJGdldEhlYWRlckdyb3VwMjtcbiAgICAgIHJldHVybiAoX3RhYmxlJGdldEhlYWRlckdyb3VwID0gKF90YWJsZSRnZXRIZWFkZXJHcm91cDIgPSB0YWJsZS5nZXRIZWFkZXJHcm91cHMoKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRnZXRIZWFkZXJHcm91cDIuaGVhZGVycy5yZWR1Y2UoKHN1bSwgaGVhZGVyKSA9PiB7XG4gICAgICAgIHJldHVybiBzdW0gKyBoZWFkZXIuZ2V0U2l6ZSgpO1xuICAgICAgfSwgMCkpICE9IG51bGwgPyBfdGFibGUkZ2V0SGVhZGVyR3JvdXAgOiAwO1xuICAgIH07XG4gICAgdGFibGUuZ2V0TGVmdFRvdGFsU2l6ZSA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkZ2V0TGVmdEhlYWRlckcsIF90YWJsZSRnZXRMZWZ0SGVhZGVyRzI7XG4gICAgICByZXR1cm4gKF90YWJsZSRnZXRMZWZ0SGVhZGVyRyA9IChfdGFibGUkZ2V0TGVmdEhlYWRlckcyID0gdGFibGUuZ2V0TGVmdEhlYWRlckdyb3VwcygpWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldExlZnRIZWFkZXJHMi5oZWFkZXJzLnJlZHVjZSgoc3VtLCBoZWFkZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1bSArIGhlYWRlci5nZXRTaXplKCk7XG4gICAgICB9LCAwKSkgIT0gbnVsbCA/IF90YWJsZSRnZXRMZWZ0SGVhZGVyRyA6IDA7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRDZW50ZXJUb3RhbFNpemUgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldENlbnRlckhlYWRlLCBfdGFibGUkZ2V0Q2VudGVySGVhZGUyO1xuICAgICAgcmV0dXJuIChfdGFibGUkZ2V0Q2VudGVySGVhZGUgPSAoX3RhYmxlJGdldENlbnRlckhlYWRlMiA9IHRhYmxlLmdldENlbnRlckhlYWRlckdyb3VwcygpWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldENlbnRlckhlYWRlMi5oZWFkZXJzLnJlZHVjZSgoc3VtLCBoZWFkZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1bSArIGhlYWRlci5nZXRTaXplKCk7XG4gICAgICB9LCAwKSkgIT0gbnVsbCA/IF90YWJsZSRnZXRDZW50ZXJIZWFkZSA6IDA7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRSaWdodFRvdGFsU2l6ZSA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkZ2V0UmlnaHRIZWFkZXIsIF90YWJsZSRnZXRSaWdodEhlYWRlcjI7XG4gICAgICByZXR1cm4gKF90YWJsZSRnZXRSaWdodEhlYWRlciA9IChfdGFibGUkZ2V0UmlnaHRIZWFkZXIyID0gdGFibGUuZ2V0UmlnaHRIZWFkZXJHcm91cHMoKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRnZXRSaWdodEhlYWRlcjIuaGVhZGVycy5yZWR1Y2UoKHN1bSwgaGVhZGVyKSA9PiB7XG4gICAgICAgIHJldHVybiBzdW0gKyBoZWFkZXIuZ2V0U2l6ZSgpO1xuICAgICAgfSwgMCkpICE9IG51bGwgPyBfdGFibGUkZ2V0UmlnaHRIZWFkZXIgOiAwO1xuICAgIH07XG4gIH1cbn07XG5sZXQgcGFzc2l2ZVN1cHBvcnRlZCA9IG51bGw7XG5mdW5jdGlvbiBwYXNzaXZlRXZlbnRTdXBwb3J0ZWQoKSB7XG4gIGlmICh0eXBlb2YgcGFzc2l2ZVN1cHBvcnRlZCA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcGFzc2l2ZVN1cHBvcnRlZDtcbiAgbGV0IHN1cHBvcnRlZCA9IGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBnZXQgcGFzc2l2ZSgpIHtcbiAgICAgICAgc3VwcG9ydGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0Jywgbm9vcCwgb3B0aW9ucyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBub29wKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgc3VwcG9ydGVkID0gZmFsc2U7XG4gIH1cbiAgcGFzc2l2ZVN1cHBvcnRlZCA9IHN1cHBvcnRlZDtcbiAgcmV0dXJuIHBhc3NpdmVTdXBwb3J0ZWQ7XG59XG5mdW5jdGlvbiBpc1RvdWNoU3RhcnRFdmVudChlKSB7XG4gIHJldHVybiBlLnR5cGUgPT09ICd0b3VjaHN0YXJ0Jztcbn1cblxuLy9cblxuY29uc3QgQ29sdW1uVmlzaWJpbGl0eSA9IHtcbiAgZ2V0SW5pdGlhbFN0YXRlOiBzdGF0ZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtblZpc2liaWxpdHk6IHt9LFxuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvbkNvbHVtblZpc2liaWxpdHlDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ2NvbHVtblZpc2liaWxpdHknLCB0YWJsZSlcbiAgICB9O1xuICB9LFxuICBjcmVhdGVDb2x1bW46IChjb2x1bW4sIHRhYmxlKSA9PiB7XG4gICAgY29sdW1uLnRvZ2dsZVZpc2liaWxpdHkgPSB2YWx1ZSA9PiB7XG4gICAgICBpZiAoY29sdW1uLmdldENhbkhpZGUoKSkge1xuICAgICAgICB0YWJsZS5zZXRDb2x1bW5WaXNpYmlsaXR5KG9sZCA9PiAoe1xuICAgICAgICAgIC4uLm9sZCxcbiAgICAgICAgICBbY29sdW1uLmlkXTogdmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogIWNvbHVtbi5nZXRJc1Zpc2libGUoKVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0SXNWaXNpYmxlID0gKCkgPT4ge1xuICAgICAgdmFyIF9yZWYsIF90YWJsZSRnZXRTdGF0ZSRjb2x1bTtcbiAgICAgIGNvbnN0IGNoaWxkQ29sdW1ucyA9IGNvbHVtbi5jb2x1bW5zO1xuICAgICAgcmV0dXJuIChfcmVmID0gY2hpbGRDb2x1bW5zLmxlbmd0aCA/IGNoaWxkQ29sdW1ucy5zb21lKGMgPT4gYy5nZXRJc1Zpc2libGUoKSkgOiAoX3RhYmxlJGdldFN0YXRlJGNvbHVtID0gdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5WaXNpYmlsaXR5KSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJGNvbHVtW2NvbHVtbi5pZF0pICE9IG51bGwgPyBfcmVmIDogdHJ1ZTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRDYW5IaWRlID0gKCkgPT4ge1xuICAgICAgdmFyIF9jb2x1bW4kY29sdW1uRGVmJGVuYSwgX3RhYmxlJG9wdGlvbnMkZW5hYmxlO1xuICAgICAgcmV0dXJuICgoX2NvbHVtbiRjb2x1bW5EZWYkZW5hID0gY29sdW1uLmNvbHVtbkRlZi5lbmFibGVIaWRpbmcpICE9IG51bGwgPyBfY29sdW1uJGNvbHVtbkRlZiRlbmEgOiB0cnVlKSAmJiAoKF90YWJsZSRvcHRpb25zJGVuYWJsZSA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlSGlkaW5nKSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMkZW5hYmxlIDogdHJ1ZSk7XG4gICAgfTtcbiAgICBjb2x1bW4uZ2V0VG9nZ2xlVmlzaWJpbGl0eUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gZSA9PiB7XG4gICAgICAgIGNvbHVtbi50b2dnbGVWaXNpYmlsaXR5ID09IG51bGwgfHwgY29sdW1uLnRvZ2dsZVZpc2liaWxpdHkoZS50YXJnZXQuY2hlY2tlZCk7XG4gICAgICB9O1xuICAgIH07XG4gIH0sXG4gIGNyZWF0ZVJvdzogKHJvdywgdGFibGUpID0+IHtcbiAgICByb3cuX2dldEFsbFZpc2libGVDZWxscyA9IG1lbW8oKCkgPT4gW3Jvdy5nZXRBbGxDZWxscygpLCB0YWJsZS5nZXRTdGF0ZSgpLmNvbHVtblZpc2liaWxpdHldLCBjZWxscyA9PiB7XG4gICAgICByZXR1cm4gY2VsbHMuZmlsdGVyKGNlbGwgPT4gY2VsbC5jb2x1bW4uZ2V0SXNWaXNpYmxlKCkpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnX2dldEFsbFZpc2libGVDZWxscycpKTtcbiAgICByb3cuZ2V0VmlzaWJsZUNlbGxzID0gbWVtbygoKSA9PiBbcm93LmdldExlZnRWaXNpYmxlQ2VsbHMoKSwgcm93LmdldENlbnRlclZpc2libGVDZWxscygpLCByb3cuZ2V0UmlnaHRWaXNpYmxlQ2VsbHMoKV0sIChsZWZ0LCBjZW50ZXIsIHJpZ2h0KSA9PiBbLi4ubGVmdCwgLi4uY2VudGVyLCAuLi5yaWdodF0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnZ2V0VmlzaWJsZUNlbGxzJykpO1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIGNvbnN0IG1ha2VWaXNpYmxlQ29sdW1uc01ldGhvZCA9IChrZXksIGdldENvbHVtbnMpID0+IHtcbiAgICAgIHJldHVybiBtZW1vKCgpID0+IFtnZXRDb2x1bW5zKCksIGdldENvbHVtbnMoKS5maWx0ZXIoZCA9PiBkLmdldElzVmlzaWJsZSgpKS5tYXAoZCA9PiBkLmlkKS5qb2luKCdfJyldLCBjb2x1bW5zID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnMuZmlsdGVyKGQgPT4gZC5nZXRJc1Zpc2libGUgPT0gbnVsbCA/IHZvaWQgMCA6IGQuZ2V0SXNWaXNpYmxlKCkpO1xuICAgICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnQ29sdW1ucycsIGtleSkpO1xuICAgIH07XG4gICAgdGFibGUuZ2V0VmlzaWJsZUZsYXRDb2x1bW5zID0gbWFrZVZpc2libGVDb2x1bW5zTWV0aG9kKCdnZXRWaXNpYmxlRmxhdENvbHVtbnMnLCAoKSA9PiB0YWJsZS5nZXRBbGxGbGF0Q29sdW1ucygpKTtcbiAgICB0YWJsZS5nZXRWaXNpYmxlTGVhZkNvbHVtbnMgPSBtYWtlVmlzaWJsZUNvbHVtbnNNZXRob2QoJ2dldFZpc2libGVMZWFmQ29sdW1ucycsICgpID0+IHRhYmxlLmdldEFsbExlYWZDb2x1bW5zKCkpO1xuICAgIHRhYmxlLmdldExlZnRWaXNpYmxlTGVhZkNvbHVtbnMgPSBtYWtlVmlzaWJsZUNvbHVtbnNNZXRob2QoJ2dldExlZnRWaXNpYmxlTGVhZkNvbHVtbnMnLCAoKSA9PiB0YWJsZS5nZXRMZWZ0TGVhZkNvbHVtbnMoKSk7XG4gICAgdGFibGUuZ2V0UmlnaHRWaXNpYmxlTGVhZkNvbHVtbnMgPSBtYWtlVmlzaWJsZUNvbHVtbnNNZXRob2QoJ2dldFJpZ2h0VmlzaWJsZUxlYWZDb2x1bW5zJywgKCkgPT4gdGFibGUuZ2V0UmlnaHRMZWFmQ29sdW1ucygpKTtcbiAgICB0YWJsZS5nZXRDZW50ZXJWaXNpYmxlTGVhZkNvbHVtbnMgPSBtYWtlVmlzaWJsZUNvbHVtbnNNZXRob2QoJ2dldENlbnRlclZpc2libGVMZWFmQ29sdW1ucycsICgpID0+IHRhYmxlLmdldENlbnRlckxlYWZDb2x1bW5zKCkpO1xuICAgIHRhYmxlLnNldENvbHVtblZpc2liaWxpdHkgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Db2x1bW5WaXNpYmlsaXR5Q2hhbmdlID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLm9uQ29sdW1uVmlzaWJpbGl0eUNoYW5nZSh1cGRhdGVyKTtcbiAgICB0YWJsZS5yZXNldENvbHVtblZpc2liaWxpdHkgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkYztcbiAgICAgIHRhYmxlLnNldENvbHVtblZpc2liaWxpdHkoZGVmYXVsdFN0YXRlID8ge30gOiAoX3RhYmxlJGluaXRpYWxTdGF0ZSRjID0gdGFibGUuaW5pdGlhbFN0YXRlLmNvbHVtblZpc2liaWxpdHkpICE9IG51bGwgPyBfdGFibGUkaW5pdGlhbFN0YXRlJGMgOiB7fSk7XG4gICAgfTtcbiAgICB0YWJsZS50b2dnbGVBbGxDb2x1bW5zVmlzaWJsZSA9IHZhbHVlID0+IHtcbiAgICAgIHZhciBfdmFsdWU7XG4gICAgICB2YWx1ZSA9IChfdmFsdWUgPSB2YWx1ZSkgIT0gbnVsbCA/IF92YWx1ZSA6ICF0YWJsZS5nZXRJc0FsbENvbHVtbnNWaXNpYmxlKCk7XG4gICAgICB0YWJsZS5zZXRDb2x1bW5WaXNpYmlsaXR5KHRhYmxlLmdldEFsbExlYWZDb2x1bW5zKCkucmVkdWNlKChvYmosIGNvbHVtbikgPT4gKHtcbiAgICAgICAgLi4ub2JqLFxuICAgICAgICBbY29sdW1uLmlkXTogIXZhbHVlID8gIShjb2x1bW4uZ2V0Q2FuSGlkZSAhPSBudWxsICYmIGNvbHVtbi5nZXRDYW5IaWRlKCkpIDogdmFsdWVcbiAgICAgIH0pLCB7fSkpO1xuICAgIH07XG4gICAgdGFibGUuZ2V0SXNBbGxDb2x1bW5zVmlzaWJsZSA9ICgpID0+ICF0YWJsZS5nZXRBbGxMZWFmQ29sdW1ucygpLnNvbWUoY29sdW1uID0+ICEoY29sdW1uLmdldElzVmlzaWJsZSAhPSBudWxsICYmIGNvbHVtbi5nZXRJc1Zpc2libGUoKSkpO1xuICAgIHRhYmxlLmdldElzU29tZUNvbHVtbnNWaXNpYmxlID0gKCkgPT4gdGFibGUuZ2V0QWxsTGVhZkNvbHVtbnMoKS5zb21lKGNvbHVtbiA9PiBjb2x1bW4uZ2V0SXNWaXNpYmxlID09IG51bGwgPyB2b2lkIDAgOiBjb2x1bW4uZ2V0SXNWaXNpYmxlKCkpO1xuICAgIHRhYmxlLmdldFRvZ2dsZUFsbENvbHVtbnNWaXNpYmlsaXR5SGFuZGxlciA9ICgpID0+IHtcbiAgICAgIHJldHVybiBlID0+IHtcbiAgICAgICAgdmFyIF90YXJnZXQ7XG4gICAgICAgIHRhYmxlLnRvZ2dsZUFsbENvbHVtbnNWaXNpYmxlKChfdGFyZ2V0ID0gZS50YXJnZXQpID09IG51bGwgPyB2b2lkIDAgOiBfdGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG59O1xuZnVuY3Rpb24gX2dldFZpc2libGVMZWFmQ29sdW1ucyh0YWJsZSwgcG9zaXRpb24pIHtcbiAgcmV0dXJuICFwb3NpdGlvbiA/IHRhYmxlLmdldFZpc2libGVMZWFmQ29sdW1ucygpIDogcG9zaXRpb24gPT09ICdjZW50ZXInID8gdGFibGUuZ2V0Q2VudGVyVmlzaWJsZUxlYWZDb2x1bW5zKCkgOiBwb3NpdGlvbiA9PT0gJ2xlZnQnID8gdGFibGUuZ2V0TGVmdFZpc2libGVMZWFmQ29sdW1ucygpIDogdGFibGUuZ2V0UmlnaHRWaXNpYmxlTGVhZkNvbHVtbnMoKTtcbn1cblxuLy9cblxuY29uc3QgR2xvYmFsRmFjZXRpbmcgPSB7XG4gIGNyZWF0ZVRhYmxlOiB0YWJsZSA9PiB7XG4gICAgdGFibGUuX2dldEdsb2JhbEZhY2V0ZWRSb3dNb2RlbCA9IHRhYmxlLm9wdGlvbnMuZ2V0RmFjZXRlZFJvd01vZGVsICYmIHRhYmxlLm9wdGlvbnMuZ2V0RmFjZXRlZFJvd01vZGVsKHRhYmxlLCAnX19nbG9iYWxfXycpO1xuICAgIHRhYmxlLmdldEdsb2JhbEZhY2V0ZWRSb3dNb2RlbCA9ICgpID0+IHtcbiAgICAgIGlmICh0YWJsZS5vcHRpb25zLm1hbnVhbEZpbHRlcmluZyB8fCAhdGFibGUuX2dldEdsb2JhbEZhY2V0ZWRSb3dNb2RlbCkge1xuICAgICAgICByZXR1cm4gdGFibGUuZ2V0UHJlRmlsdGVyZWRSb3dNb2RlbCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYmxlLl9nZXRHbG9iYWxGYWNldGVkUm93TW9kZWwoKTtcbiAgICB9O1xuICAgIHRhYmxlLl9nZXRHbG9iYWxGYWNldGVkVW5pcXVlVmFsdWVzID0gdGFibGUub3B0aW9ucy5nZXRGYWNldGVkVW5pcXVlVmFsdWVzICYmIHRhYmxlLm9wdGlvbnMuZ2V0RmFjZXRlZFVuaXF1ZVZhbHVlcyh0YWJsZSwgJ19fZ2xvYmFsX18nKTtcbiAgICB0YWJsZS5nZXRHbG9iYWxGYWNldGVkVW5pcXVlVmFsdWVzID0gKCkgPT4ge1xuICAgICAgaWYgKCF0YWJsZS5fZ2V0R2xvYmFsRmFjZXRlZFVuaXF1ZVZhbHVlcykge1xuICAgICAgICByZXR1cm4gbmV3IE1hcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYmxlLl9nZXRHbG9iYWxGYWNldGVkVW5pcXVlVmFsdWVzKCk7XG4gICAgfTtcbiAgICB0YWJsZS5fZ2V0R2xvYmFsRmFjZXRlZE1pbk1heFZhbHVlcyA9IHRhYmxlLm9wdGlvbnMuZ2V0RmFjZXRlZE1pbk1heFZhbHVlcyAmJiB0YWJsZS5vcHRpb25zLmdldEZhY2V0ZWRNaW5NYXhWYWx1ZXModGFibGUsICdfX2dsb2JhbF9fJyk7XG4gICAgdGFibGUuZ2V0R2xvYmFsRmFjZXRlZE1pbk1heFZhbHVlcyA9ICgpID0+IHtcbiAgICAgIGlmICghdGFibGUuX2dldEdsb2JhbEZhY2V0ZWRNaW5NYXhWYWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYmxlLl9nZXRHbG9iYWxGYWNldGVkTWluTWF4VmFsdWVzKCk7XG4gICAgfTtcbiAgfVxufTtcblxuLy9cblxuY29uc3QgR2xvYmFsRmlsdGVyaW5nID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2xvYmFsRmlsdGVyOiB1bmRlZmluZWQsXG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRPcHRpb25zOiB0YWJsZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uR2xvYmFsRmlsdGVyQ2hhbmdlOiBtYWtlU3RhdGVVcGRhdGVyKCdnbG9iYWxGaWx0ZXInLCB0YWJsZSksXG4gICAgICBnbG9iYWxGaWx0ZXJGbjogJ2F1dG8nLFxuICAgICAgZ2V0Q29sdW1uQ2FuR2xvYmFsRmlsdGVyOiBjb2x1bW4gPT4ge1xuICAgICAgICB2YXIgX3RhYmxlJGdldENvcmVSb3dNb2RlO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChfdGFibGUkZ2V0Q29yZVJvd01vZGUgPSB0YWJsZS5nZXRDb3JlUm93TW9kZWwoKS5mbGF0Um93c1swXSkgPT0gbnVsbCB8fCAoX3RhYmxlJGdldENvcmVSb3dNb2RlID0gX3RhYmxlJGdldENvcmVSb3dNb2RlLl9nZXRBbGxDZWxsc0J5Q29sdW1uSWQoKVtjb2x1bW4uaWRdKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldENvcmVSb3dNb2RlLmdldFZhbHVlKCk7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlQ29sdW1uOiAoY29sdW1uLCB0YWJsZSkgPT4ge1xuICAgIGNvbHVtbi5nZXRDYW5HbG9iYWxGaWx0ZXIgPSAoKSA9PiB7XG4gICAgICB2YXIgX2NvbHVtbiRjb2x1bW5EZWYkZW5hLCBfdGFibGUkb3B0aW9ucyRlbmFibGUsIF90YWJsZSRvcHRpb25zJGVuYWJsZTIsIF90YWJsZSRvcHRpb25zJGdldENvbDtcbiAgICAgIHJldHVybiAoKF9jb2x1bW4kY29sdW1uRGVmJGVuYSA9IGNvbHVtbi5jb2x1bW5EZWYuZW5hYmxlR2xvYmFsRmlsdGVyKSAhPSBudWxsID8gX2NvbHVtbiRjb2x1bW5EZWYkZW5hIDogdHJ1ZSkgJiYgKChfdGFibGUkb3B0aW9ucyRlbmFibGUgPSB0YWJsZS5vcHRpb25zLmVuYWJsZUdsb2JhbEZpbHRlcikgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGVuYWJsZSA6IHRydWUpICYmICgoX3RhYmxlJG9wdGlvbnMkZW5hYmxlMiA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlRmlsdGVycykgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGVuYWJsZTIgOiB0cnVlKSAmJiAoKF90YWJsZSRvcHRpb25zJGdldENvbCA9IHRhYmxlLm9wdGlvbnMuZ2V0Q29sdW1uQ2FuR2xvYmFsRmlsdGVyID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLmdldENvbHVtbkNhbkdsb2JhbEZpbHRlcihjb2x1bW4pKSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMkZ2V0Q29sIDogdHJ1ZSkgJiYgISFjb2x1bW4uYWNjZXNzb3JGbjtcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIHRhYmxlLmdldEdsb2JhbEF1dG9GaWx0ZXJGbiA9ICgpID0+IHtcbiAgICAgIHJldHVybiBmaWx0ZXJGbnMuaW5jbHVkZXNTdHJpbmc7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRHbG9iYWxGaWx0ZXJGbiA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRmaWx0ZXIsIF90YWJsZSRvcHRpb25zJGZpbHRlcjI7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGdsb2JhbEZpbHRlckZuOiBnbG9iYWxGaWx0ZXJGblxuICAgICAgfSA9IHRhYmxlLm9wdGlvbnM7XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihnbG9iYWxGaWx0ZXJGbikgPyBnbG9iYWxGaWx0ZXJGbiA6IGdsb2JhbEZpbHRlckZuID09PSAnYXV0bycgPyB0YWJsZS5nZXRHbG9iYWxBdXRvRmlsdGVyRm4oKSA6IChfdGFibGUkb3B0aW9ucyRmaWx0ZXIgPSAoX3RhYmxlJG9wdGlvbnMkZmlsdGVyMiA9IHRhYmxlLm9wdGlvbnMuZmlsdGVyRm5zKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJG9wdGlvbnMkZmlsdGVyMltnbG9iYWxGaWx0ZXJGbl0pICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRmaWx0ZXIgOiBmaWx0ZXJGbnNbZ2xvYmFsRmlsdGVyRm5dO1xuICAgIH07XG4gICAgdGFibGUuc2V0R2xvYmFsRmlsdGVyID0gdXBkYXRlciA9PiB7XG4gICAgICB0YWJsZS5vcHRpb25zLm9uR2xvYmFsRmlsdGVyQ2hhbmdlID09IG51bGwgfHwgdGFibGUub3B0aW9ucy5vbkdsb2JhbEZpbHRlckNoYW5nZSh1cGRhdGVyKTtcbiAgICB9O1xuICAgIHRhYmxlLnJlc2V0R2xvYmFsRmlsdGVyID0gZGVmYXVsdFN0YXRlID0+IHtcbiAgICAgIHRhYmxlLnNldEdsb2JhbEZpbHRlcihkZWZhdWx0U3RhdGUgPyB1bmRlZmluZWQgOiB0YWJsZS5pbml0aWFsU3RhdGUuZ2xvYmFsRmlsdGVyKTtcbiAgICB9O1xuICB9XG59O1xuXG4vL1xuXG5jb25zdCBSb3dFeHBhbmRpbmcgPSB7XG4gIGdldEluaXRpYWxTdGF0ZTogc3RhdGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBleHBhbmRlZDoge30sXG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRPcHRpb25zOiB0YWJsZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uRXhwYW5kZWRDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ2V4cGFuZGVkJywgdGFibGUpLFxuICAgICAgcGFnaW5hdGVFeHBhbmRlZFJvd3M6IHRydWVcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIGxldCByZWdpc3RlcmVkID0gZmFsc2U7XG4gICAgbGV0IHF1ZXVlZCA9IGZhbHNlO1xuICAgIHRhYmxlLl9hdXRvUmVzZXRFeHBhbmRlZCA9ICgpID0+IHtcbiAgICAgIHZhciBfcmVmLCBfdGFibGUkb3B0aW9ucyRhdXRvUmU7XG4gICAgICBpZiAoIXJlZ2lzdGVyZWQpIHtcbiAgICAgICAgdGFibGUuX3F1ZXVlKCgpID0+IHtcbiAgICAgICAgICByZWdpc3RlcmVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICgoX3JlZiA9IChfdGFibGUkb3B0aW9ucyRhdXRvUmUgPSB0YWJsZS5vcHRpb25zLmF1dG9SZXNldEFsbCkgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGF1dG9SZSA6IHRhYmxlLm9wdGlvbnMuYXV0b1Jlc2V0RXhwYW5kZWQpICE9IG51bGwgPyBfcmVmIDogIXRhYmxlLm9wdGlvbnMubWFudWFsRXhwYW5kaW5nKSB7XG4gICAgICAgIGlmIChxdWV1ZWQpIHJldHVybjtcbiAgICAgICAgcXVldWVkID0gdHJ1ZTtcbiAgICAgICAgdGFibGUuX3F1ZXVlKCgpID0+IHtcbiAgICAgICAgICB0YWJsZS5yZXNldEV4cGFuZGVkKCk7XG4gICAgICAgICAgcXVldWVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgdGFibGUuc2V0RXhwYW5kZWQgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25FeHBhbmRlZENoYW5nZSA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5vbkV4cGFuZGVkQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIHRhYmxlLnRvZ2dsZUFsbFJvd3NFeHBhbmRlZCA9IGV4cGFuZGVkID0+IHtcbiAgICAgIGlmIChleHBhbmRlZCAhPSBudWxsID8gZXhwYW5kZWQgOiAhdGFibGUuZ2V0SXNBbGxSb3dzRXhwYW5kZWQoKSkge1xuICAgICAgICB0YWJsZS5zZXRFeHBhbmRlZCh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYmxlLnNldEV4cGFuZGVkKHt9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRhYmxlLnJlc2V0RXhwYW5kZWQgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkZSwgX3RhYmxlJGluaXRpYWxTdGF0ZTtcbiAgICAgIHRhYmxlLnNldEV4cGFuZGVkKGRlZmF1bHRTdGF0ZSA/IHt9IDogKF90YWJsZSRpbml0aWFsU3RhdGUkZSA9IChfdGFibGUkaW5pdGlhbFN0YXRlID0gdGFibGUuaW5pdGlhbFN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGluaXRpYWxTdGF0ZS5leHBhbmRlZCkgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkZSA6IHt9KTtcbiAgICB9O1xuICAgIHRhYmxlLmdldENhblNvbWVSb3dzRXhwYW5kID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYmxlLmdldFByZVBhZ2luYXRpb25Sb3dNb2RlbCgpLmZsYXRSb3dzLnNvbWUocm93ID0+IHJvdy5nZXRDYW5FeHBhbmQoKSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRUb2dnbGVBbGxSb3dzRXhwYW5kZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGUgPT4ge1xuICAgICAgICBlLnBlcnNpc3QgPT0gbnVsbCB8fCBlLnBlcnNpc3QoKTtcbiAgICAgICAgdGFibGUudG9nZ2xlQWxsUm93c0V4cGFuZGVkKCk7XG4gICAgICB9O1xuICAgIH07XG4gICAgdGFibGUuZ2V0SXNTb21lUm93c0V4cGFuZGVkID0gKCkgPT4ge1xuICAgICAgY29uc3QgZXhwYW5kZWQgPSB0YWJsZS5nZXRTdGF0ZSgpLmV4cGFuZGVkO1xuICAgICAgcmV0dXJuIGV4cGFuZGVkID09PSB0cnVlIHx8IE9iamVjdC52YWx1ZXMoZXhwYW5kZWQpLnNvbWUoQm9vbGVhbik7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRJc0FsbFJvd3NFeHBhbmRlZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGFibGUuZ2V0U3RhdGUoKS5leHBhbmRlZDtcblxuICAgICAgLy8gSWYgZXhwYW5kZWQgaXMgdHJ1ZSwgc2F2ZSBzb21lIGN5Y2xlcyBhbmQgcmV0dXJuIHRydWVcbiAgICAgIGlmICh0eXBlb2YgZXhwYW5kZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gZXhwYW5kZWQgPT09IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5rZXlzKGV4cGFuZGVkKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBhbnkgcm93IGlzIG5vdCBleHBhbmRlZCwgcmV0dXJuIGZhbHNlXG4gICAgICBpZiAodGFibGUuZ2V0Um93TW9kZWwoKS5mbGF0Um93cy5zb21lKHJvdyA9PiAhcm93LmdldElzRXhwYW5kZWQoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGV5IG11c3QgYWxsIGJlIGV4cGFuZGVkIDpzaHJ1ZzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgdGFibGUuZ2V0RXhwYW5kZWREZXB0aCA9ICgpID0+IHtcbiAgICAgIGxldCBtYXhEZXB0aCA9IDA7XG4gICAgICBjb25zdCByb3dJZHMgPSB0YWJsZS5nZXRTdGF0ZSgpLmV4cGFuZGVkID09PSB0cnVlID8gT2JqZWN0LmtleXModGFibGUuZ2V0Um93TW9kZWwoKS5yb3dzQnlJZCkgOiBPYmplY3Qua2V5cyh0YWJsZS5nZXRTdGF0ZSgpLmV4cGFuZGVkKTtcbiAgICAgIHJvd0lkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXRJZCA9IGlkLnNwbGl0KCcuJyk7XG4gICAgICAgIG1heERlcHRoID0gTWF0aC5tYXgobWF4RGVwdGgsIHNwbGl0SWQubGVuZ3RoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG1heERlcHRoO1xuICAgIH07XG4gICAgdGFibGUuZ2V0UHJlRXhwYW5kZWRSb3dNb2RlbCA9ICgpID0+IHRhYmxlLmdldFNvcnRlZFJvd01vZGVsKCk7XG4gICAgdGFibGUuZ2V0RXhwYW5kZWRSb3dNb2RlbCA9ICgpID0+IHtcbiAgICAgIGlmICghdGFibGUuX2dldEV4cGFuZGVkUm93TW9kZWwgJiYgdGFibGUub3B0aW9ucy5nZXRFeHBhbmRlZFJvd01vZGVsKSB7XG4gICAgICAgIHRhYmxlLl9nZXRFeHBhbmRlZFJvd01vZGVsID0gdGFibGUub3B0aW9ucy5nZXRFeHBhbmRlZFJvd01vZGVsKHRhYmxlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0YWJsZS5vcHRpb25zLm1hbnVhbEV4cGFuZGluZyB8fCAhdGFibGUuX2dldEV4cGFuZGVkUm93TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlLmdldFByZUV4cGFuZGVkUm93TW9kZWwoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWJsZS5fZ2V0RXhwYW5kZWRSb3dNb2RlbCgpO1xuICAgIH07XG4gIH0sXG4gIGNyZWF0ZVJvdzogKHJvdywgdGFibGUpID0+IHtcbiAgICByb3cudG9nZ2xlRXhwYW5kZWQgPSBleHBhbmRlZCA9PiB7XG4gICAgICB0YWJsZS5zZXRFeHBhbmRlZChvbGQgPT4ge1xuICAgICAgICB2YXIgX2V4cGFuZGVkO1xuICAgICAgICBjb25zdCBleGlzdHMgPSBvbGQgPT09IHRydWUgPyB0cnVlIDogISEob2xkICE9IG51bGwgJiYgb2xkW3Jvdy5pZF0pO1xuICAgICAgICBsZXQgb2xkRXhwYW5kZWQgPSB7fTtcbiAgICAgICAgaWYgKG9sZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRhYmxlLmdldFJvd01vZGVsKCkucm93c0J5SWQpLmZvckVhY2gocm93SWQgPT4ge1xuICAgICAgICAgICAgb2xkRXhwYW5kZWRbcm93SWRdID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbGRFeHBhbmRlZCA9IG9sZDtcbiAgICAgICAgfVxuICAgICAgICBleHBhbmRlZCA9IChfZXhwYW5kZWQgPSBleHBhbmRlZCkgIT0gbnVsbCA/IF9leHBhbmRlZCA6ICFleGlzdHM7XG4gICAgICAgIGlmICghZXhpc3RzICYmIGV4cGFuZGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLm9sZEV4cGFuZGVkLFxuICAgICAgICAgICAgW3Jvdy5pZF06IHRydWVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChleGlzdHMgJiYgIWV4cGFuZGVkKSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgW3Jvdy5pZF06IF8sXG4gICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgICAgfSA9IG9sZEV4cGFuZGVkO1xuICAgICAgICAgIHJldHVybiByZXN0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvbGQ7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJvdy5nZXRJc0V4cGFuZGVkID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRvcHRpb25zJGdldElzUjtcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGFibGUuZ2V0U3RhdGUoKS5leHBhbmRlZDtcbiAgICAgIHJldHVybiAhISgoX3RhYmxlJG9wdGlvbnMkZ2V0SXNSID0gdGFibGUub3B0aW9ucy5nZXRJc1Jvd0V4cGFuZGVkID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLmdldElzUm93RXhwYW5kZWQocm93KSkgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGdldElzUiA6IGV4cGFuZGVkID09PSB0cnVlIHx8IChleHBhbmRlZCA9PSBudWxsID8gdm9pZCAwIDogZXhwYW5kZWRbcm93LmlkXSkpO1xuICAgIH07XG4gICAgcm93LmdldENhbkV4cGFuZCA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRnZXRSb3csIF90YWJsZSRvcHRpb25zJGVuYWJsZSwgX3JvdyRzdWJSb3dzO1xuICAgICAgcmV0dXJuIChfdGFibGUkb3B0aW9ucyRnZXRSb3cgPSB0YWJsZS5vcHRpb25zLmdldFJvd0NhbkV4cGFuZCA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5nZXRSb3dDYW5FeHBhbmQocm93KSkgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGdldFJvdyA6ICgoX3RhYmxlJG9wdGlvbnMkZW5hYmxlID0gdGFibGUub3B0aW9ucy5lbmFibGVFeHBhbmRpbmcpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0cnVlKSAmJiAhISgoX3JvdyRzdWJSb3dzID0gcm93LnN1YlJvd3MpICE9IG51bGwgJiYgX3JvdyRzdWJSb3dzLmxlbmd0aCk7XG4gICAgfTtcbiAgICByb3cuZ2V0SXNBbGxQYXJlbnRzRXhwYW5kZWQgPSAoKSA9PiB7XG4gICAgICBsZXQgaXNGdWxseUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIGxldCBjdXJyZW50Um93ID0gcm93O1xuICAgICAgd2hpbGUgKGlzRnVsbHlFeHBhbmRlZCAmJiBjdXJyZW50Um93LnBhcmVudElkKSB7XG4gICAgICAgIGN1cnJlbnRSb3cgPSB0YWJsZS5nZXRSb3coY3VycmVudFJvdy5wYXJlbnRJZCwgdHJ1ZSk7XG4gICAgICAgIGlzRnVsbHlFeHBhbmRlZCA9IGN1cnJlbnRSb3cuZ2V0SXNFeHBhbmRlZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzRnVsbHlFeHBhbmRlZDtcbiAgICB9O1xuICAgIHJvdy5nZXRUb2dnbGVFeHBhbmRlZEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjYW5FeHBhbmQgPSByb3cuZ2V0Q2FuRXhwYW5kKCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoIWNhbkV4cGFuZCkgcmV0dXJuO1xuICAgICAgICByb3cudG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgIH07XG4gICAgfTtcbiAgfVxufTtcblxuLy9cblxuY29uc3QgZGVmYXVsdFBhZ2VJbmRleCA9IDA7XG5jb25zdCBkZWZhdWx0UGFnZVNpemUgPSAxMDtcbmNvbnN0IGdldERlZmF1bHRQYWdpbmF0aW9uU3RhdGUgPSAoKSA9PiAoe1xuICBwYWdlSW5kZXg6IGRlZmF1bHRQYWdlSW5kZXgsXG4gIHBhZ2VTaXplOiBkZWZhdWx0UGFnZVNpemVcbn0pO1xuY29uc3QgUm93UGFnaW5hdGlvbiA9IHtcbiAgZ2V0SW5pdGlhbFN0YXRlOiBzdGF0ZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAuLi5nZXREZWZhdWx0UGFnaW5hdGlvblN0YXRlKCksXG4gICAgICAgIC4uLihzdGF0ZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGUucGFnaW5hdGlvbilcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvblBhZ2luYXRpb25DaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ3BhZ2luYXRpb24nLCB0YWJsZSlcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIGxldCByZWdpc3RlcmVkID0gZmFsc2U7XG4gICAgbGV0IHF1ZXVlZCA9IGZhbHNlO1xuICAgIHRhYmxlLl9hdXRvUmVzZXRQYWdlSW5kZXggPSAoKSA9PiB7XG4gICAgICB2YXIgX3JlZiwgX3RhYmxlJG9wdGlvbnMkYXV0b1JlO1xuICAgICAgaWYgKCFyZWdpc3RlcmVkKSB7XG4gICAgICAgIHRhYmxlLl9xdWV1ZSgoKSA9PiB7XG4gICAgICAgICAgcmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoKF9yZWYgPSAoX3RhYmxlJG9wdGlvbnMkYXV0b1JlID0gdGFibGUub3B0aW9ucy5hdXRvUmVzZXRBbGwpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRhdXRvUmUgOiB0YWJsZS5vcHRpb25zLmF1dG9SZXNldFBhZ2VJbmRleCkgIT0gbnVsbCA/IF9yZWYgOiAhdGFibGUub3B0aW9ucy5tYW51YWxQYWdpbmF0aW9uKSB7XG4gICAgICAgIGlmIChxdWV1ZWQpIHJldHVybjtcbiAgICAgICAgcXVldWVkID0gdHJ1ZTtcbiAgICAgICAgdGFibGUuX3F1ZXVlKCgpID0+IHtcbiAgICAgICAgICB0YWJsZS5yZXNldFBhZ2VJbmRleCgpO1xuICAgICAgICAgIHF1ZXVlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRhYmxlLnNldFBhZ2luYXRpb24gPSB1cGRhdGVyID0+IHtcbiAgICAgIGNvbnN0IHNhZmVVcGRhdGVyID0gb2xkID0+IHtcbiAgICAgICAgbGV0IG5ld1N0YXRlID0gZnVuY3Rpb25hbFVwZGF0ZSh1cGRhdGVyLCBvbGQpO1xuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRhYmxlLm9wdGlvbnMub25QYWdpbmF0aW9uQ2hhbmdlID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLm9uUGFnaW5hdGlvbkNoYW5nZShzYWZlVXBkYXRlcik7XG4gICAgfTtcbiAgICB0YWJsZS5yZXNldFBhZ2luYXRpb24gPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkcDtcbiAgICAgIHRhYmxlLnNldFBhZ2luYXRpb24oZGVmYXVsdFN0YXRlID8gZ2V0RGVmYXVsdFBhZ2luYXRpb25TdGF0ZSgpIDogKF90YWJsZSRpbml0aWFsU3RhdGUkcCA9IHRhYmxlLmluaXRpYWxTdGF0ZS5wYWdpbmF0aW9uKSAhPSBudWxsID8gX3RhYmxlJGluaXRpYWxTdGF0ZSRwIDogZ2V0RGVmYXVsdFBhZ2luYXRpb25TdGF0ZSgpKTtcbiAgICB9O1xuICAgIHRhYmxlLnNldFBhZ2VJbmRleCA9IHVwZGF0ZXIgPT4ge1xuICAgICAgdGFibGUuc2V0UGFnaW5hdGlvbihvbGQgPT4ge1xuICAgICAgICBsZXQgcGFnZUluZGV4ID0gZnVuY3Rpb25hbFVwZGF0ZSh1cGRhdGVyLCBvbGQucGFnZUluZGV4KTtcbiAgICAgICAgY29uc3QgbWF4UGFnZUluZGV4ID0gdHlwZW9mIHRhYmxlLm9wdGlvbnMucGFnZUNvdW50ID09PSAndW5kZWZpbmVkJyB8fCB0YWJsZS5vcHRpb25zLnBhZ2VDb3VudCA9PT0gLTEgPyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiA6IHRhYmxlLm9wdGlvbnMucGFnZUNvdW50IC0gMTtcbiAgICAgICAgcGFnZUluZGV4ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4ocGFnZUluZGV4LCBtYXhQYWdlSW5kZXgpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5vbGQsXG4gICAgICAgICAgcGFnZUluZGV4XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHRhYmxlLnJlc2V0UGFnZUluZGV4ID0gZGVmYXVsdFN0YXRlID0+IHtcbiAgICAgIHZhciBfdGFibGUkaW5pdGlhbFN0YXRlJHAyLCBfdGFibGUkaW5pdGlhbFN0YXRlO1xuICAgICAgdGFibGUuc2V0UGFnZUluZGV4KGRlZmF1bHRTdGF0ZSA/IGRlZmF1bHRQYWdlSW5kZXggOiAoX3RhYmxlJGluaXRpYWxTdGF0ZSRwMiA9IChfdGFibGUkaW5pdGlhbFN0YXRlID0gdGFibGUuaW5pdGlhbFN0YXRlKSA9PSBudWxsIHx8IChfdGFibGUkaW5pdGlhbFN0YXRlID0gX3RhYmxlJGluaXRpYWxTdGF0ZS5wYWdpbmF0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGluaXRpYWxTdGF0ZS5wYWdlSW5kZXgpICE9IG51bGwgPyBfdGFibGUkaW5pdGlhbFN0YXRlJHAyIDogZGVmYXVsdFBhZ2VJbmRleCk7XG4gICAgfTtcbiAgICB0YWJsZS5yZXNldFBhZ2VTaXplID0gZGVmYXVsdFN0YXRlID0+IHtcbiAgICAgIHZhciBfdGFibGUkaW5pdGlhbFN0YXRlJHAzLCBfdGFibGUkaW5pdGlhbFN0YXRlMjtcbiAgICAgIHRhYmxlLnNldFBhZ2VTaXplKGRlZmF1bHRTdGF0ZSA/IGRlZmF1bHRQYWdlU2l6ZSA6IChfdGFibGUkaW5pdGlhbFN0YXRlJHAzID0gKF90YWJsZSRpbml0aWFsU3RhdGUyID0gdGFibGUuaW5pdGlhbFN0YXRlKSA9PSBudWxsIHx8IChfdGFibGUkaW5pdGlhbFN0YXRlMiA9IF90YWJsZSRpbml0aWFsU3RhdGUyLnBhZ2luYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkaW5pdGlhbFN0YXRlMi5wYWdlU2l6ZSkgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkcDMgOiBkZWZhdWx0UGFnZVNpemUpO1xuICAgIH07XG4gICAgdGFibGUuc2V0UGFnZVNpemUgPSB1cGRhdGVyID0+IHtcbiAgICAgIHRhYmxlLnNldFBhZ2luYXRpb24ob2xkID0+IHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heCgxLCBmdW5jdGlvbmFsVXBkYXRlKHVwZGF0ZXIsIG9sZC5wYWdlU2l6ZSkpO1xuICAgICAgICBjb25zdCB0b3BSb3dJbmRleCA9IG9sZC5wYWdlU2l6ZSAqIG9sZC5wYWdlSW5kZXg7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IodG9wUm93SW5kZXggLyBwYWdlU2l6ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2xkLFxuICAgICAgICAgIHBhZ2VJbmRleCxcbiAgICAgICAgICBwYWdlU2l6ZVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfTtcbiAgICAvL2RlcHJlY2F0ZWRcbiAgICB0YWJsZS5zZXRQYWdlQ291bnQgPSB1cGRhdGVyID0+IHRhYmxlLnNldFBhZ2luYXRpb24ob2xkID0+IHtcbiAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRwYWdlQ287XG4gICAgICBsZXQgbmV3UGFnZUNvdW50ID0gZnVuY3Rpb25hbFVwZGF0ZSh1cGRhdGVyLCAoX3RhYmxlJG9wdGlvbnMkcGFnZUNvID0gdGFibGUub3B0aW9ucy5wYWdlQ291bnQpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRwYWdlQ28gOiAtMSk7XG4gICAgICBpZiAodHlwZW9mIG5ld1BhZ2VDb3VudCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgbmV3UGFnZUNvdW50ID0gTWF0aC5tYXgoLTEsIG5ld1BhZ2VDb3VudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vbGQsXG4gICAgICAgIHBhZ2VDb3VudDogbmV3UGFnZUNvdW50XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRhYmxlLmdldFBhZ2VPcHRpb25zID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0UGFnZUNvdW50KCldLCBwYWdlQ291bnQgPT4ge1xuICAgICAgbGV0IHBhZ2VPcHRpb25zID0gW107XG4gICAgICBpZiAocGFnZUNvdW50ICYmIHBhZ2VDb3VudCA+IDApIHtcbiAgICAgICAgcGFnZU9wdGlvbnMgPSBbLi4ubmV3IEFycmF5KHBhZ2VDb3VudCldLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYWdlT3B0aW9ucztcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRQYWdlT3B0aW9ucycpKTtcbiAgICB0YWJsZS5nZXRDYW5QcmV2aW91c1BhZ2UgPSAoKSA9PiB0YWJsZS5nZXRTdGF0ZSgpLnBhZ2luYXRpb24ucGFnZUluZGV4ID4gMDtcbiAgICB0YWJsZS5nZXRDYW5OZXh0UGFnZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFnZUluZGV4XG4gICAgICB9ID0gdGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uO1xuICAgICAgY29uc3QgcGFnZUNvdW50ID0gdGFibGUuZ2V0UGFnZUNvdW50KCk7XG4gICAgICBpZiAocGFnZUNvdW50ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwYWdlQ291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZ2VJbmRleCA8IHBhZ2VDb3VudCAtIDE7XG4gICAgfTtcbiAgICB0YWJsZS5wcmV2aW91c1BhZ2UgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gdGFibGUuc2V0UGFnZUluZGV4KG9sZCA9PiBvbGQgLSAxKTtcbiAgICB9O1xuICAgIHRhYmxlLm5leHRQYWdlID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYmxlLnNldFBhZ2VJbmRleChvbGQgPT4ge1xuICAgICAgICByZXR1cm4gb2xkICsgMTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgdGFibGUuZmlyc3RQYWdlID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYmxlLnNldFBhZ2VJbmRleCgwKTtcbiAgICB9O1xuICAgIHRhYmxlLmxhc3RQYWdlID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYmxlLnNldFBhZ2VJbmRleCh0YWJsZS5nZXRQYWdlQ291bnQoKSAtIDEpO1xuICAgIH07XG4gICAgdGFibGUuZ2V0UHJlUGFnaW5hdGlvblJvd01vZGVsID0gKCkgPT4gdGFibGUuZ2V0RXhwYW5kZWRSb3dNb2RlbCgpO1xuICAgIHRhYmxlLmdldFBhZ2luYXRpb25Sb3dNb2RlbCA9ICgpID0+IHtcbiAgICAgIGlmICghdGFibGUuX2dldFBhZ2luYXRpb25Sb3dNb2RlbCAmJiB0YWJsZS5vcHRpb25zLmdldFBhZ2luYXRpb25Sb3dNb2RlbCkge1xuICAgICAgICB0YWJsZS5fZ2V0UGFnaW5hdGlvblJvd01vZGVsID0gdGFibGUub3B0aW9ucy5nZXRQYWdpbmF0aW9uUm93TW9kZWwodGFibGUpO1xuICAgICAgfVxuICAgICAgaWYgKHRhYmxlLm9wdGlvbnMubWFudWFsUGFnaW5hdGlvbiB8fCAhdGFibGUuX2dldFBhZ2luYXRpb25Sb3dNb2RlbCkge1xuICAgICAgICByZXR1cm4gdGFibGUuZ2V0UHJlUGFnaW5hdGlvblJvd01vZGVsKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFibGUuX2dldFBhZ2luYXRpb25Sb3dNb2RlbCgpO1xuICAgIH07XG4gICAgdGFibGUuZ2V0UGFnZUNvdW50ID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRvcHRpb25zJHBhZ2VDbzI7XG4gICAgICByZXR1cm4gKF90YWJsZSRvcHRpb25zJHBhZ2VDbzIgPSB0YWJsZS5vcHRpb25zLnBhZ2VDb3VudCkgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJHBhZ2VDbzIgOiBNYXRoLmNlaWwodGFibGUuZ2V0Um93Q291bnQoKSAvIHRhYmxlLmdldFN0YXRlKCkucGFnaW5hdGlvbi5wYWdlU2l6ZSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRSb3dDb3VudCA9ICgpID0+IHtcbiAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRyb3dDb3U7XG4gICAgICByZXR1cm4gKF90YWJsZSRvcHRpb25zJHJvd0NvdSA9IHRhYmxlLm9wdGlvbnMucm93Q291bnQpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRyb3dDb3UgOiB0YWJsZS5nZXRQcmVQYWdpbmF0aW9uUm93TW9kZWwoKS5yb3dzLmxlbmd0aDtcbiAgICB9O1xuICB9XG59O1xuXG4vL1xuXG5jb25zdCBnZXREZWZhdWx0Um93UGlubmluZ1N0YXRlID0gKCkgPT4gKHtcbiAgdG9wOiBbXSxcbiAgYm90dG9tOiBbXVxufSk7XG5jb25zdCBSb3dQaW5uaW5nID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93UGlubmluZzogZ2V0RGVmYXVsdFJvd1Bpbm5pbmdTdGF0ZSgpLFxuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvblJvd1Bpbm5pbmdDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ3Jvd1Bpbm5pbmcnLCB0YWJsZSlcbiAgICB9O1xuICB9LFxuICBjcmVhdGVSb3c6IChyb3csIHRhYmxlKSA9PiB7XG4gICAgcm93LnBpbiA9IChwb3NpdGlvbiwgaW5jbHVkZUxlYWZSb3dzLCBpbmNsdWRlUGFyZW50Um93cykgPT4ge1xuICAgICAgY29uc3QgbGVhZlJvd0lkcyA9IGluY2x1ZGVMZWFmUm93cyA/IHJvdy5nZXRMZWFmUm93cygpLm1hcChfcmVmID0+IHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBpZFxuICAgICAgICB9ID0gX3JlZjtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfSkgOiBbXTtcbiAgICAgIGNvbnN0IHBhcmVudFJvd0lkcyA9IGluY2x1ZGVQYXJlbnRSb3dzID8gcm93LmdldFBhcmVudFJvd3MoKS5tYXAoX3JlZjIgPT4ge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIGlkXG4gICAgICAgIH0gPSBfcmVmMjtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfSkgOiBbXTtcbiAgICAgIGNvbnN0IHJvd0lkcyA9IG5ldyBTZXQoWy4uLnBhcmVudFJvd0lkcywgcm93LmlkLCAuLi5sZWFmUm93SWRzXSk7XG4gICAgICB0YWJsZS5zZXRSb3dQaW5uaW5nKG9sZCA9PiB7XG4gICAgICAgIHZhciBfb2xkJHRvcDMsIF9vbGQkYm90dG9tMztcbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgIHZhciBfb2xkJHRvcCwgX29sZCRib3R0b207XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogKChfb2xkJHRvcCA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnRvcCkgIT0gbnVsbCA/IF9vbGQkdG9wIDogW10pLmZpbHRlcihkID0+ICEocm93SWRzICE9IG51bGwgJiYgcm93SWRzLmhhcyhkKSkpLFxuICAgICAgICAgICAgYm90dG9tOiBbLi4uKChfb2xkJGJvdHRvbSA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLmJvdHRvbSkgIT0gbnVsbCA/IF9vbGQkYm90dG9tIDogW10pLmZpbHRlcihkID0+ICEocm93SWRzICE9IG51bGwgJiYgcm93SWRzLmhhcyhkKSkpLCAuLi5BcnJheS5mcm9tKHJvd0lkcyldXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgdmFyIF9vbGQkdG9wMiwgX29sZCRib3R0b20yO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IFsuLi4oKF9vbGQkdG9wMiA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnRvcCkgIT0gbnVsbCA/IF9vbGQkdG9wMiA6IFtdKS5maWx0ZXIoZCA9PiAhKHJvd0lkcyAhPSBudWxsICYmIHJvd0lkcy5oYXMoZCkpKSwgLi4uQXJyYXkuZnJvbShyb3dJZHMpXSxcbiAgICAgICAgICAgIGJvdHRvbTogKChfb2xkJGJvdHRvbTIgPSBvbGQgPT0gbnVsbCA/IHZvaWQgMCA6IG9sZC5ib3R0b20pICE9IG51bGwgPyBfb2xkJGJvdHRvbTIgOiBbXSkuZmlsdGVyKGQgPT4gIShyb3dJZHMgIT0gbnVsbCAmJiByb3dJZHMuaGFzKGQpKSlcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG9wOiAoKF9vbGQkdG9wMyA9IG9sZCA9PSBudWxsID8gdm9pZCAwIDogb2xkLnRvcCkgIT0gbnVsbCA/IF9vbGQkdG9wMyA6IFtdKS5maWx0ZXIoZCA9PiAhKHJvd0lkcyAhPSBudWxsICYmIHJvd0lkcy5oYXMoZCkpKSxcbiAgICAgICAgICBib3R0b206ICgoX29sZCRib3R0b20zID0gb2xkID09IG51bGwgPyB2b2lkIDAgOiBvbGQuYm90dG9tKSAhPSBudWxsID8gX29sZCRib3R0b20zIDogW10pLmZpbHRlcihkID0+ICEocm93SWRzICE9IG51bGwgJiYgcm93SWRzLmhhcyhkKSkpXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJvdy5nZXRDYW5QaW4gPSAoKSA9PiB7XG4gICAgICB2YXIgX3JlZjM7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGVuYWJsZVJvd1Bpbm5pbmcsXG4gICAgICAgIGVuYWJsZVBpbm5pbmdcbiAgICAgIH0gPSB0YWJsZS5vcHRpb25zO1xuICAgICAgaWYgKHR5cGVvZiBlbmFibGVSb3dQaW5uaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBlbmFibGVSb3dQaW5uaW5nKHJvdyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKF9yZWYzID0gZW5hYmxlUm93UGlubmluZyAhPSBudWxsID8gZW5hYmxlUm93UGlubmluZyA6IGVuYWJsZVBpbm5pbmcpICE9IG51bGwgPyBfcmVmMyA6IHRydWU7XG4gICAgfTtcbiAgICByb3cuZ2V0SXNQaW5uZWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCByb3dJZHMgPSBbcm93LmlkXTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgdG9wLFxuICAgICAgICBib3R0b21cbiAgICAgIH0gPSB0YWJsZS5nZXRTdGF0ZSgpLnJvd1Bpbm5pbmc7XG4gICAgICBjb25zdCBpc1RvcCA9IHJvd0lkcy5zb21lKGQgPT4gdG9wID09IG51bGwgPyB2b2lkIDAgOiB0b3AuaW5jbHVkZXMoZCkpO1xuICAgICAgY29uc3QgaXNCb3R0b20gPSByb3dJZHMuc29tZShkID0+IGJvdHRvbSA9PSBudWxsID8gdm9pZCAwIDogYm90dG9tLmluY2x1ZGVzKGQpKTtcbiAgICAgIHJldHVybiBpc1RvcCA/ICd0b3AnIDogaXNCb3R0b20gPyAnYm90dG9tJyA6IGZhbHNlO1xuICAgIH07XG4gICAgcm93LmdldFBpbm5lZEluZGV4ID0gKCkgPT4ge1xuICAgICAgdmFyIF9yZWY0LCBfdmlzaWJsZVBpbm5lZFJvd0lkcyQ7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHJvdy5nZXRJc1Bpbm5lZCgpO1xuICAgICAgaWYgKCFwb3NpdGlvbikgcmV0dXJuIC0xO1xuICAgICAgY29uc3QgdmlzaWJsZVBpbm5lZFJvd0lkcyA9IChfcmVmNCA9IHBvc2l0aW9uID09PSAndG9wJyA/IHRhYmxlLmdldFRvcFJvd3MoKSA6IHRhYmxlLmdldEJvdHRvbVJvd3MoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWY0Lm1hcChfcmVmNSA9PiB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfSA9IF9yZWY1O1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoX3Zpc2libGVQaW5uZWRSb3dJZHMkID0gdmlzaWJsZVBpbm5lZFJvd0lkcyA9PSBudWxsID8gdm9pZCAwIDogdmlzaWJsZVBpbm5lZFJvd0lkcy5pbmRleE9mKHJvdy5pZCkpICE9IG51bGwgPyBfdmlzaWJsZVBpbm5lZFJvd0lkcyQgOiAtMTtcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIHRhYmxlLnNldFJvd1Bpbm5pbmcgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Sb3dQaW5uaW5nQ2hhbmdlID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLm9uUm93UGlubmluZ0NoYW5nZSh1cGRhdGVyKTtcbiAgICB0YWJsZS5yZXNldFJvd1Bpbm5pbmcgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkciwgX3RhYmxlJGluaXRpYWxTdGF0ZTtcbiAgICAgIHJldHVybiB0YWJsZS5zZXRSb3dQaW5uaW5nKGRlZmF1bHRTdGF0ZSA/IGdldERlZmF1bHRSb3dQaW5uaW5nU3RhdGUoKSA6IChfdGFibGUkaW5pdGlhbFN0YXRlJHIgPSAoX3RhYmxlJGluaXRpYWxTdGF0ZSA9IHRhYmxlLmluaXRpYWxTdGF0ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRpbml0aWFsU3RhdGUucm93UGlubmluZykgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkciA6IGdldERlZmF1bHRSb3dQaW5uaW5nU3RhdGUoKSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRJc1NvbWVSb3dzUGlubmVkID0gcG9zaXRpb24gPT4ge1xuICAgICAgdmFyIF9waW5uaW5nU3RhdGUkcG9zaXRpbztcbiAgICAgIGNvbnN0IHBpbm5pbmdTdGF0ZSA9IHRhYmxlLmdldFN0YXRlKCkucm93UGlubmluZztcbiAgICAgIGlmICghcG9zaXRpb24pIHtcbiAgICAgICAgdmFyIF9waW5uaW5nU3RhdGUkdG9wLCBfcGlubmluZ1N0YXRlJGJvdHRvbTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oKChfcGlubmluZ1N0YXRlJHRvcCA9IHBpbm5pbmdTdGF0ZS50b3ApID09IG51bGwgPyB2b2lkIDAgOiBfcGlubmluZ1N0YXRlJHRvcC5sZW5ndGgpIHx8ICgoX3Bpbm5pbmdTdGF0ZSRib3R0b20gPSBwaW5uaW5nU3RhdGUuYm90dG9tKSA9PSBudWxsID8gdm9pZCAwIDogX3Bpbm5pbmdTdGF0ZSRib3R0b20ubGVuZ3RoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gQm9vbGVhbigoX3Bpbm5pbmdTdGF0ZSRwb3NpdGlvID0gcGlubmluZ1N0YXRlW3Bvc2l0aW9uXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9waW5uaW5nU3RhdGUkcG9zaXRpby5sZW5ndGgpO1xuICAgIH07XG4gICAgdGFibGUuX2dldFBpbm5lZFJvd3MgPSAodmlzaWJsZVJvd3MsIHBpbm5lZFJvd0lkcywgcG9zaXRpb24pID0+IHtcbiAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRrZWVwUGk7XG4gICAgICBjb25zdCByb3dzID0gKChfdGFibGUkb3B0aW9ucyRrZWVwUGkgPSB0YWJsZS5vcHRpb25zLmtlZXBQaW5uZWRSb3dzKSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMka2VlcFBpIDogdHJ1ZSkgP1xuICAgICAgLy9nZXQgYWxsIHJvd3MgdGhhdCBhcmUgcGlubmVkIGV2ZW4gaWYgdGhleSB3b3VsZCBub3QgYmUgb3RoZXJ3aXNlIHZpc2libGVcbiAgICAgIC8vYWNjb3VudCBmb3IgZXhwYW5kZWQgcGFyZW50IHJvd3MsIGJ1dCBub3QgcGFnaW5hdGlvbiBvciBmaWx0ZXJpbmdcbiAgICAgIChwaW5uZWRSb3dJZHMgIT0gbnVsbCA/IHBpbm5lZFJvd0lkcyA6IFtdKS5tYXAocm93SWQgPT4ge1xuICAgICAgICBjb25zdCByb3cgPSB0YWJsZS5nZXRSb3cocm93SWQsIHRydWUpO1xuICAgICAgICByZXR1cm4gcm93LmdldElzQWxsUGFyZW50c0V4cGFuZGVkKCkgPyByb3cgOiBudWxsO1xuICAgICAgfSkgOlxuICAgICAgLy9lbHNlIGdldCBvbmx5IHZpc2libGUgcm93cyB0aGF0IGFyZSBwaW5uZWRcbiAgICAgIChwaW5uZWRSb3dJZHMgIT0gbnVsbCA/IHBpbm5lZFJvd0lkcyA6IFtdKS5tYXAocm93SWQgPT4gdmlzaWJsZVJvd3MuZmluZChyb3cgPT4gcm93LmlkID09PSByb3dJZCkpO1xuICAgICAgcmV0dXJuIHJvd3MuZmlsdGVyKEJvb2xlYW4pLm1hcChkID0+ICh7XG4gICAgICAgIC4uLmQsXG4gICAgICAgIHBvc2l0aW9uXG4gICAgICB9KSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRUb3BSb3dzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0Um93TW9kZWwoKS5yb3dzLCB0YWJsZS5nZXRTdGF0ZSgpLnJvd1Bpbm5pbmcudG9wXSwgKGFsbFJvd3MsIHRvcFBpbm5lZFJvd0lkcykgPT4gdGFibGUuX2dldFBpbm5lZFJvd3MoYWxsUm93cywgdG9wUGlubmVkUm93SWRzLCAndG9wJyksIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnZ2V0VG9wUm93cycpKTtcbiAgICB0YWJsZS5nZXRCb3R0b21Sb3dzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0Um93TW9kZWwoKS5yb3dzLCB0YWJsZS5nZXRTdGF0ZSgpLnJvd1Bpbm5pbmcuYm90dG9tXSwgKGFsbFJvd3MsIGJvdHRvbVBpbm5lZFJvd0lkcykgPT4gdGFibGUuX2dldFBpbm5lZFJvd3MoYWxsUm93cywgYm90dG9tUGlubmVkUm93SWRzLCAnYm90dG9tJyksIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnZ2V0Qm90dG9tUm93cycpKTtcbiAgICB0YWJsZS5nZXRDZW50ZXJSb3dzID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0Um93TW9kZWwoKS5yb3dzLCB0YWJsZS5nZXRTdGF0ZSgpLnJvd1Bpbm5pbmcudG9wLCB0YWJsZS5nZXRTdGF0ZSgpLnJvd1Bpbm5pbmcuYm90dG9tXSwgKGFsbFJvd3MsIHRvcCwgYm90dG9tKSA9PiB7XG4gICAgICBjb25zdCB0b3BBbmRCb3R0b20gPSBuZXcgU2V0KFsuLi4odG9wICE9IG51bGwgPyB0b3AgOiBbXSksIC4uLihib3R0b20gIT0gbnVsbCA/IGJvdHRvbSA6IFtdKV0pO1xuICAgICAgcmV0dXJuIGFsbFJvd3MuZmlsdGVyKGQgPT4gIXRvcEFuZEJvdHRvbS5oYXMoZC5pZCkpO1xuICAgIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1Jvd3MnLCAnZ2V0Q2VudGVyUm93cycpKTtcbiAgfVxufTtcblxuLy9cblxuY29uc3QgUm93U2VsZWN0aW9uID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93U2VsZWN0aW9uOiB7fSxcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdE9wdGlvbnM6IHRhYmxlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgb25Sb3dTZWxlY3Rpb25DaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ3Jvd1NlbGVjdGlvbicsIHRhYmxlKSxcbiAgICAgIGVuYWJsZVJvd1NlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIGVuYWJsZU11bHRpUm93U2VsZWN0aW9uOiB0cnVlLFxuICAgICAgZW5hYmxlU3ViUm93U2VsZWN0aW9uOiB0cnVlXG4gICAgICAvLyBlbmFibGVHcm91cGluZ1Jvd1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAvLyBpc0FkZGl0aXZlU2VsZWN0RXZlbnQ6IChlOiB1bmtub3duKSA9PiAhIWUubWV0YUtleSxcbiAgICAgIC8vIGlzSW5jbHVzaXZlU2VsZWN0RXZlbnQ6IChlOiB1bmtub3duKSA9PiAhIWUuc2hpZnRLZXksXG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlVGFibGU6IHRhYmxlID0+IHtcbiAgICB0YWJsZS5zZXRSb3dTZWxlY3Rpb24gPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Sb3dTZWxlY3Rpb25DaGFuZ2UgPT0gbnVsbCA/IHZvaWQgMCA6IHRhYmxlLm9wdGlvbnMub25Sb3dTZWxlY3Rpb25DaGFuZ2UodXBkYXRlcik7XG4gICAgdGFibGUucmVzZXRSb3dTZWxlY3Rpb24gPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkcjtcbiAgICAgIHJldHVybiB0YWJsZS5zZXRSb3dTZWxlY3Rpb24oZGVmYXVsdFN0YXRlID8ge30gOiAoX3RhYmxlJGluaXRpYWxTdGF0ZSRyID0gdGFibGUuaW5pdGlhbFN0YXRlLnJvd1NlbGVjdGlvbikgIT0gbnVsbCA/IF90YWJsZSRpbml0aWFsU3RhdGUkciA6IHt9KTtcbiAgICB9O1xuICAgIHRhYmxlLnRvZ2dsZUFsbFJvd3NTZWxlY3RlZCA9IHZhbHVlID0+IHtcbiAgICAgIHRhYmxlLnNldFJvd1NlbGVjdGlvbihvbGQgPT4ge1xuICAgICAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgPyB2YWx1ZSA6ICF0YWJsZS5nZXRJc0FsbFJvd3NTZWxlY3RlZCgpO1xuICAgICAgICBjb25zdCByb3dTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgLi4ub2xkXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHByZUdyb3VwZWRGbGF0Um93cyA9IHRhYmxlLmdldFByZUdyb3VwZWRSb3dNb2RlbCgpLmZsYXRSb3dzO1xuXG4gICAgICAgIC8vIFdlIGRvbid0IHVzZSBgbXV0YXRlUm93SXNTZWxlY3RlZGAgaGVyZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy5cbiAgICAgICAgLy8gQWxsIG9mIHRoZSByb3dzIGFyZSBmbGF0IGFscmVhZHksIHNvIGl0IHdvdWxkbid0IGJlIHdvcnRoIGl0XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHByZUdyb3VwZWRGbGF0Um93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICBpZiAoIXJvdy5nZXRDYW5TZWxlY3QoKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3dTZWxlY3Rpb25bcm93LmlkXSA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJlR3JvdXBlZEZsYXRSb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZSByb3dTZWxlY3Rpb25bcm93LmlkXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93U2VsZWN0aW9uO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB0YWJsZS50b2dnbGVBbGxQYWdlUm93c1NlbGVjdGVkID0gdmFsdWUgPT4gdGFibGUuc2V0Um93U2VsZWN0aW9uKG9sZCA9PiB7XG4gICAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogIXRhYmxlLmdldElzQWxsUGFnZVJvd3NTZWxlY3RlZCgpO1xuICAgICAgY29uc3Qgcm93U2VsZWN0aW9uID0ge1xuICAgICAgICAuLi5vbGRcbiAgICAgIH07XG4gICAgICB0YWJsZS5nZXRSb3dNb2RlbCgpLnJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICBtdXRhdGVSb3dJc1NlbGVjdGVkKHJvd1NlbGVjdGlvbiwgcm93LmlkLCByZXNvbHZlZFZhbHVlLCB0cnVlLCB0YWJsZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByb3dTZWxlY3Rpb247XG4gICAgfSk7XG5cbiAgICAvLyBhZGRSb3dTZWxlY3Rpb25SYW5nZTogcm93SWQgPT4ge1xuICAgIC8vICAgY29uc3Qge1xuICAgIC8vICAgICByb3dzLFxuICAgIC8vICAgICByb3dzQnlJZCxcbiAgICAvLyAgICAgb3B0aW9uczogeyBzZWxlY3RHcm91cGluZ1Jvd3MsIHNlbGVjdFN1YlJvd3MgfSxcbiAgICAvLyAgIH0gPSB0YWJsZVxuXG4gICAgLy8gICBjb25zdCBmaW5kU2VsZWN0ZWRSb3cgPSAocm93czogUm93W10pID0+IHtcbiAgICAvLyAgICAgbGV0IGZvdW5kXG4gICAgLy8gICAgIHJvd3MuZmluZChkID0+IHtcbiAgICAvLyAgICAgICBpZiAoZC5nZXRJc1NlbGVjdGVkKCkpIHtcbiAgICAvLyAgICAgICAgIGZvdW5kID0gZFxuICAgIC8vICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgY29uc3Qgc3ViRm91bmQgPSBmaW5kU2VsZWN0ZWRSb3coZC5zdWJSb3dzIHx8IFtdKVxuICAgIC8vICAgICAgIGlmIChzdWJGb3VuZCkge1xuICAgIC8vICAgICAgICAgZm91bmQgPSBzdWJGb3VuZFxuICAgIC8vICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgcmV0dXJuIGZhbHNlXG4gICAgLy8gICAgIH0pXG4gICAgLy8gICAgIHJldHVybiBmb3VuZFxuICAgIC8vICAgfVxuXG4gICAgLy8gICBjb25zdCBmaXJzdFJvdyA9IGZpbmRTZWxlY3RlZFJvdyhyb3dzKSB8fCByb3dzWzBdXG4gICAgLy8gICBjb25zdCBsYXN0Um93ID0gcm93c0J5SWRbcm93SWRdXG5cbiAgICAvLyAgIGxldCBpbmNsdWRlID0gZmFsc2VcbiAgICAvLyAgIGNvbnN0IHNlbGVjdGVkUm93SWRzID0ge31cblxuICAgIC8vICAgY29uc3QgYWRkUm93ID0gKHJvdzogUm93KSA9PiB7XG4gICAgLy8gICAgIG11dGF0ZVJvd0lzU2VsZWN0ZWQoc2VsZWN0ZWRSb3dJZHMsIHJvdy5pZCwgdHJ1ZSwge1xuICAgIC8vICAgICAgIHJvd3NCeUlkLFxuICAgIC8vICAgICAgIHNlbGVjdEdyb3VwaW5nUm93czogc2VsZWN0R3JvdXBpbmdSb3dzISxcbiAgICAvLyAgICAgICBzZWxlY3RTdWJSb3dzOiBzZWxlY3RTdWJSb3dzISxcbiAgICAvLyAgICAgfSlcbiAgICAvLyAgIH1cblxuICAgIC8vICAgdGFibGUucm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgLy8gICAgIGNvbnN0IGlzRmlyc3RSb3cgPSByb3cuaWQgPT09IGZpcnN0Um93LmlkXG4gICAgLy8gICAgIGNvbnN0IGlzTGFzdFJvdyA9IHJvdy5pZCA9PT0gbGFzdFJvdy5pZFxuXG4gICAgLy8gICAgIGlmIChpc0ZpcnN0Um93IHx8IGlzTGFzdFJvdykge1xuICAgIC8vICAgICAgIGlmICghaW5jbHVkZSkge1xuICAgIC8vICAgICAgICAgaW5jbHVkZSA9IHRydWVcbiAgICAvLyAgICAgICB9IGVsc2UgaWYgKGluY2x1ZGUpIHtcbiAgICAvLyAgICAgICAgIGFkZFJvdyhyb3cpXG4gICAgLy8gICAgICAgICBpbmNsdWRlID0gZmFsc2VcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICBpZiAoaW5jbHVkZSkge1xuICAgIC8vICAgICAgIGFkZFJvdyhyb3cpXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH0pXG5cbiAgICAvLyAgIHRhYmxlLnNldFJvd1NlbGVjdGlvbihzZWxlY3RlZFJvd0lkcylcbiAgICAvLyB9LFxuICAgIHRhYmxlLmdldFByZVNlbGVjdGVkUm93TW9kZWwgPSAoKSA9PiB0YWJsZS5nZXRDb3JlUm93TW9kZWwoKTtcbiAgICB0YWJsZS5nZXRTZWxlY3RlZFJvd01vZGVsID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0U3RhdGUoKS5yb3dTZWxlY3Rpb24sIHRhYmxlLmdldENvcmVSb3dNb2RlbCgpXSwgKHJvd1NlbGVjdGlvbiwgcm93TW9kZWwpID0+IHtcbiAgICAgIGlmICghT2JqZWN0LmtleXMocm93U2VsZWN0aW9uKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByb3dzOiBbXSxcbiAgICAgICAgICBmbGF0Um93czogW10sXG4gICAgICAgICAgcm93c0J5SWQ6IHt9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VsZWN0Um93c0ZuKHRhYmxlLCByb3dNb2RlbCk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnVGFibGUnLCAnZ2V0U2VsZWN0ZWRSb3dNb2RlbCcpKTtcbiAgICB0YWJsZS5nZXRGaWx0ZXJlZFNlbGVjdGVkUm93TW9kZWwgPSBtZW1vKCgpID0+IFt0YWJsZS5nZXRTdGF0ZSgpLnJvd1NlbGVjdGlvbiwgdGFibGUuZ2V0RmlsdGVyZWRSb3dNb2RlbCgpXSwgKHJvd1NlbGVjdGlvbiwgcm93TW9kZWwpID0+IHtcbiAgICAgIGlmICghT2JqZWN0LmtleXMocm93U2VsZWN0aW9uKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByb3dzOiBbXSxcbiAgICAgICAgICBmbGF0Um93czogW10sXG4gICAgICAgICAgcm93c0J5SWQ6IHt9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VsZWN0Um93c0ZuKHRhYmxlLCByb3dNb2RlbCk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnVGFibGUnLCAnZ2V0RmlsdGVyZWRTZWxlY3RlZFJvd01vZGVsJykpO1xuICAgIHRhYmxlLmdldEdyb3VwZWRTZWxlY3RlZFJvd01vZGVsID0gbWVtbygoKSA9PiBbdGFibGUuZ2V0U3RhdGUoKS5yb3dTZWxlY3Rpb24sIHRhYmxlLmdldFNvcnRlZFJvd01vZGVsKCldLCAocm93U2VsZWN0aW9uLCByb3dNb2RlbCkgPT4ge1xuICAgICAgaWYgKCFPYmplY3Qua2V5cyhyb3dTZWxlY3Rpb24pLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJvd3M6IFtdLFxuICAgICAgICAgIGZsYXRSb3dzOiBbXSxcbiAgICAgICAgICByb3dzQnlJZDoge31cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWxlY3RSb3dzRm4odGFibGUsIHJvd01vZGVsKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRHcm91cGVkU2VsZWN0ZWRSb3dNb2RlbCcpKTtcblxuICAgIC8vL1xuXG4gICAgLy8gZ2V0R3JvdXBpbmdSb3dDYW5TZWxlY3Q6IHJvd0lkID0+IHtcbiAgICAvLyAgIGNvbnN0IHJvdyA9IHRhYmxlLmdldFJvdyhyb3dJZClcblxuICAgIC8vICAgaWYgKCFyb3cpIHtcbiAgICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKClcbiAgICAvLyAgIH1cblxuICAgIC8vICAgaWYgKHR5cGVvZiB0YWJsZS5vcHRpb25zLmVuYWJsZUdyb3VwaW5nUm93U2VsZWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgIHJldHVybiB0YWJsZS5vcHRpb25zLmVuYWJsZUdyb3VwaW5nUm93U2VsZWN0aW9uKHJvdylcbiAgICAvLyAgIH1cblxuICAgIC8vICAgcmV0dXJuIHRhYmxlLm9wdGlvbnMuZW5hYmxlR3JvdXBpbmdSb3dTZWxlY3Rpb24gPz8gZmFsc2VcbiAgICAvLyB9LFxuXG4gICAgdGFibGUuZ2V0SXNBbGxSb3dzU2VsZWN0ZWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwcmVHcm91cGVkRmxhdFJvd3MgPSB0YWJsZS5nZXRGaWx0ZXJlZFJvd01vZGVsKCkuZmxhdFJvd3M7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJvd1NlbGVjdGlvblxuICAgICAgfSA9IHRhYmxlLmdldFN0YXRlKCk7XG4gICAgICBsZXQgaXNBbGxSb3dzU2VsZWN0ZWQgPSBCb29sZWFuKHByZUdyb3VwZWRGbGF0Um93cy5sZW5ndGggJiYgT2JqZWN0LmtleXMocm93U2VsZWN0aW9uKS5sZW5ndGgpO1xuICAgICAgaWYgKGlzQWxsUm93c1NlbGVjdGVkKSB7XG4gICAgICAgIGlmIChwcmVHcm91cGVkRmxhdFJvd3Muc29tZShyb3cgPT4gcm93LmdldENhblNlbGVjdCgpICYmICFyb3dTZWxlY3Rpb25bcm93LmlkXSkpIHtcbiAgICAgICAgICBpc0FsbFJvd3NTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNBbGxSb3dzU2VsZWN0ZWQ7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRJc0FsbFBhZ2VSb3dzU2VsZWN0ZWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYWdpbmF0aW9uRmxhdFJvd3MgPSB0YWJsZS5nZXRQYWdpbmF0aW9uUm93TW9kZWwoKS5mbGF0Um93cy5maWx0ZXIocm93ID0+IHJvdy5nZXRDYW5TZWxlY3QoKSk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJvd1NlbGVjdGlvblxuICAgICAgfSA9IHRhYmxlLmdldFN0YXRlKCk7XG4gICAgICBsZXQgaXNBbGxQYWdlUm93c1NlbGVjdGVkID0gISFwYWdpbmF0aW9uRmxhdFJvd3MubGVuZ3RoO1xuICAgICAgaWYgKGlzQWxsUGFnZVJvd3NTZWxlY3RlZCAmJiBwYWdpbmF0aW9uRmxhdFJvd3Muc29tZShyb3cgPT4gIXJvd1NlbGVjdGlvbltyb3cuaWRdKSkge1xuICAgICAgICBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWQ7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRJc1NvbWVSb3dzU2VsZWN0ZWQgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldFN0YXRlJHJvd1NlO1xuICAgICAgY29uc3QgdG90YWxTZWxlY3RlZCA9IE9iamVjdC5rZXlzKChfdGFibGUkZ2V0U3RhdGUkcm93U2UgPSB0YWJsZS5nZXRTdGF0ZSgpLnJvd1NlbGVjdGlvbikgIT0gbnVsbCA/IF90YWJsZSRnZXRTdGF0ZSRyb3dTZSA6IHt9KS5sZW5ndGg7XG4gICAgICByZXR1cm4gdG90YWxTZWxlY3RlZCA+IDAgJiYgdG90YWxTZWxlY3RlZCA8IHRhYmxlLmdldEZpbHRlcmVkUm93TW9kZWwoKS5mbGF0Um93cy5sZW5ndGg7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRJc1NvbWVQYWdlUm93c1NlbGVjdGVkID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFnaW5hdGlvbkZsYXRSb3dzID0gdGFibGUuZ2V0UGFnaW5hdGlvblJvd01vZGVsKCkuZmxhdFJvd3M7XG4gICAgICByZXR1cm4gdGFibGUuZ2V0SXNBbGxQYWdlUm93c1NlbGVjdGVkKCkgPyBmYWxzZSA6IHBhZ2luYXRpb25GbGF0Um93cy5maWx0ZXIocm93ID0+IHJvdy5nZXRDYW5TZWxlY3QoKSkuc29tZShkID0+IGQuZ2V0SXNTZWxlY3RlZCgpIHx8IGQuZ2V0SXNTb21lU2VsZWN0ZWQoKSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRUb2dnbGVBbGxSb3dzU2VsZWN0ZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGUgPT4ge1xuICAgICAgICB0YWJsZS50b2dnbGVBbGxSb3dzU2VsZWN0ZWQoZS50YXJnZXQuY2hlY2tlZCk7XG4gICAgICB9O1xuICAgIH07XG4gICAgdGFibGUuZ2V0VG9nZ2xlQWxsUGFnZVJvd3NTZWxlY3RlZEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gZSA9PiB7XG4gICAgICAgIHRhYmxlLnRvZ2dsZUFsbFBhZ2VSb3dzU2VsZWN0ZWQoZS50YXJnZXQuY2hlY2tlZCk7XG4gICAgICB9O1xuICAgIH07XG4gIH0sXG4gIGNyZWF0ZVJvdzogKHJvdywgdGFibGUpID0+IHtcbiAgICByb3cudG9nZ2xlU2VsZWN0ZWQgPSAodmFsdWUsIG9wdHMpID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSByb3cuZ2V0SXNTZWxlY3RlZCgpO1xuICAgICAgdGFibGUuc2V0Um93U2VsZWN0aW9uKG9sZCA9PiB7XG4gICAgICAgIHZhciBfb3B0cyRzZWxlY3RDaGlsZHJlbjtcbiAgICAgICAgdmFsdWUgPSB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnID8gdmFsdWUgOiAhaXNTZWxlY3RlZDtcbiAgICAgICAgaWYgKHJvdy5nZXRDYW5TZWxlY3QoKSAmJiBpc1NlbGVjdGVkID09PSB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBvbGQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSb3dJZHMgPSB7XG4gICAgICAgICAgLi4ub2xkXG4gICAgICAgIH07XG4gICAgICAgIG11dGF0ZVJvd0lzU2VsZWN0ZWQoc2VsZWN0ZWRSb3dJZHMsIHJvdy5pZCwgdmFsdWUsIChfb3B0cyRzZWxlY3RDaGlsZHJlbiA9IG9wdHMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdHMuc2VsZWN0Q2hpbGRyZW4pICE9IG51bGwgPyBfb3B0cyRzZWxlY3RDaGlsZHJlbiA6IHRydWUsIHRhYmxlKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkUm93SWRzO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByb3cuZ2V0SXNTZWxlY3RlZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcm93U2VsZWN0aW9uXG4gICAgICB9ID0gdGFibGUuZ2V0U3RhdGUoKTtcbiAgICAgIHJldHVybiBpc1Jvd1NlbGVjdGVkKHJvdywgcm93U2VsZWN0aW9uKTtcbiAgICB9O1xuICAgIHJvdy5nZXRJc1NvbWVTZWxlY3RlZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcm93U2VsZWN0aW9uXG4gICAgICB9ID0gdGFibGUuZ2V0U3RhdGUoKTtcbiAgICAgIHJldHVybiBpc1N1YlJvd1NlbGVjdGVkKHJvdywgcm93U2VsZWN0aW9uKSA9PT0gJ3NvbWUnO1xuICAgIH07XG4gICAgcm93LmdldElzQWxsU3ViUm93c1NlbGVjdGVkID0gKCkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICByb3dTZWxlY3Rpb25cbiAgICAgIH0gPSB0YWJsZS5nZXRTdGF0ZSgpO1xuICAgICAgcmV0dXJuIGlzU3ViUm93U2VsZWN0ZWQocm93LCByb3dTZWxlY3Rpb24pID09PSAnYWxsJztcbiAgICB9O1xuICAgIHJvdy5nZXRDYW5TZWxlY3QgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkZW5hYmxlO1xuICAgICAgaWYgKHR5cGVvZiB0YWJsZS5vcHRpb25zLmVuYWJsZVJvd1NlbGVjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdGFibGUub3B0aW9ucy5lbmFibGVSb3dTZWxlY3Rpb24ocm93KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoX3RhYmxlJG9wdGlvbnMkZW5hYmxlID0gdGFibGUub3B0aW9ucy5lbmFibGVSb3dTZWxlY3Rpb24pICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0cnVlO1xuICAgIH07XG4gICAgcm93LmdldENhblNlbGVjdFN1YlJvd3MgPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkZW5hYmxlMjtcbiAgICAgIGlmICh0eXBlb2YgdGFibGUub3B0aW9ucy5lbmFibGVTdWJSb3dTZWxlY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlLm9wdGlvbnMuZW5hYmxlU3ViUm93U2VsZWN0aW9uKHJvdyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKF90YWJsZSRvcHRpb25zJGVuYWJsZTIgPSB0YWJsZS5vcHRpb25zLmVuYWJsZVN1YlJvd1NlbGVjdGlvbikgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGVuYWJsZTIgOiB0cnVlO1xuICAgIH07XG4gICAgcm93LmdldENhbk11bHRpU2VsZWN0ID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRvcHRpb25zJGVuYWJsZTM7XG4gICAgICBpZiAodHlwZW9mIHRhYmxlLm9wdGlvbnMuZW5hYmxlTXVsdGlSb3dTZWxlY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlLm9wdGlvbnMuZW5hYmxlTXVsdGlSb3dTZWxlY3Rpb24ocm93KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoX3RhYmxlJG9wdGlvbnMkZW5hYmxlMyA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlTXVsdGlSb3dTZWxlY3Rpb24pICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUzIDogdHJ1ZTtcbiAgICB9O1xuICAgIHJvdy5nZXRUb2dnbGVTZWxlY3RlZEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjYW5TZWxlY3QgPSByb3cuZ2V0Q2FuU2VsZWN0KCk7XG4gICAgICByZXR1cm4gZSA9PiB7XG4gICAgICAgIHZhciBfdGFyZ2V0O1xuICAgICAgICBpZiAoIWNhblNlbGVjdCkgcmV0dXJuO1xuICAgICAgICByb3cudG9nZ2xlU2VsZWN0ZWQoKF90YXJnZXQgPSBlLnRhcmdldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YXJnZXQuY2hlY2tlZCk7XG4gICAgICB9O1xuICAgIH07XG4gIH1cbn07XG5jb25zdCBtdXRhdGVSb3dJc1NlbGVjdGVkID0gKHNlbGVjdGVkUm93SWRzLCBpZCwgdmFsdWUsIGluY2x1ZGVDaGlsZHJlbiwgdGFibGUpID0+IHtcbiAgdmFyIF9yb3ckc3ViUm93cztcbiAgY29uc3Qgcm93ID0gdGFibGUuZ2V0Um93KGlkLCB0cnVlKTtcblxuICAvLyBjb25zdCBpc0dyb3VwZWQgPSByb3cuZ2V0SXNHcm91cGVkKClcblxuICAvLyBpZiAoIC8vIFRPRE86IGVuZm9yY2UgZ3JvdXBpbmcgcm93IHNlbGVjdGlvbiBydWxlc1xuICAvLyAgICFpc0dyb3VwZWQgfHxcbiAgLy8gICAoaXNHcm91cGVkICYmIHRhYmxlLm9wdGlvbnMuZW5hYmxlR3JvdXBpbmdSb3dTZWxlY3Rpb24pXG4gIC8vICkge1xuICBpZiAodmFsdWUpIHtcbiAgICBpZiAoIXJvdy5nZXRDYW5NdWx0aVNlbGVjdCgpKSB7XG4gICAgICBPYmplY3Qua2V5cyhzZWxlY3RlZFJvd0lkcykuZm9yRWFjaChrZXkgPT4gZGVsZXRlIHNlbGVjdGVkUm93SWRzW2tleV0pO1xuICAgIH1cbiAgICBpZiAocm93LmdldENhblNlbGVjdCgpKSB7XG4gICAgICBzZWxlY3RlZFJvd0lkc1tpZF0gPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgc2VsZWN0ZWRSb3dJZHNbaWRdO1xuICB9XG4gIC8vIH1cblxuICBpZiAoaW5jbHVkZUNoaWxkcmVuICYmIChfcm93JHN1YlJvd3MgPSByb3cuc3ViUm93cykgIT0gbnVsbCAmJiBfcm93JHN1YlJvd3MubGVuZ3RoICYmIHJvdy5nZXRDYW5TZWxlY3RTdWJSb3dzKCkpIHtcbiAgICByb3cuc3ViUm93cy5mb3JFYWNoKHJvdyA9PiBtdXRhdGVSb3dJc1NlbGVjdGVkKHNlbGVjdGVkUm93SWRzLCByb3cuaWQsIHZhbHVlLCBpbmNsdWRlQ2hpbGRyZW4sIHRhYmxlKSk7XG4gIH1cbn07XG5mdW5jdGlvbiBzZWxlY3RSb3dzRm4odGFibGUsIHJvd01vZGVsKSB7XG4gIGNvbnN0IHJvd1NlbGVjdGlvbiA9IHRhYmxlLmdldFN0YXRlKCkucm93U2VsZWN0aW9uO1xuICBjb25zdCBuZXdTZWxlY3RlZEZsYXRSb3dzID0gW107XG4gIGNvbnN0IG5ld1NlbGVjdGVkUm93c0J5SWQgPSB7fTtcblxuICAvLyBGaWx0ZXJzIHRvcCBsZXZlbCBhbmQgbmVzdGVkIHJvd3NcbiAgY29uc3QgcmVjdXJzZVJvd3MgPSBmdW5jdGlvbiAocm93cywgZGVwdGgpIHtcbiAgICByZXR1cm4gcm93cy5tYXAocm93ID0+IHtcbiAgICAgIHZhciBfcm93JHN1YlJvd3MyO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGlzUm93U2VsZWN0ZWQocm93LCByb3dTZWxlY3Rpb24pO1xuICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgbmV3U2VsZWN0ZWRGbGF0Um93cy5wdXNoKHJvdyk7XG4gICAgICAgIG5ld1NlbGVjdGVkUm93c0J5SWRbcm93LmlkXSA9IHJvdztcbiAgICAgIH1cbiAgICAgIGlmICgoX3JvdyRzdWJSb3dzMiA9IHJvdy5zdWJSb3dzKSAhPSBudWxsICYmIF9yb3ckc3ViUm93czIubGVuZ3RoKSB7XG4gICAgICAgIHJvdyA9IHtcbiAgICAgICAgICAuLi5yb3csXG4gICAgICAgICAgc3ViUm93czogcmVjdXJzZVJvd3Mocm93LnN1YlJvd3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gcm93O1xuICAgICAgfVxuICAgIH0pLmZpbHRlcihCb29sZWFuKTtcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICByb3dzOiByZWN1cnNlUm93cyhyb3dNb2RlbC5yb3dzKSxcbiAgICBmbGF0Um93czogbmV3U2VsZWN0ZWRGbGF0Um93cyxcbiAgICByb3dzQnlJZDogbmV3U2VsZWN0ZWRSb3dzQnlJZFxuICB9O1xufVxuZnVuY3Rpb24gaXNSb3dTZWxlY3RlZChyb3csIHNlbGVjdGlvbikge1xuICB2YXIgX3NlbGVjdGlvbiRyb3ckaWQ7XG4gIHJldHVybiAoX3NlbGVjdGlvbiRyb3ckaWQgPSBzZWxlY3Rpb25bcm93LmlkXSkgIT0gbnVsbCA/IF9zZWxlY3Rpb24kcm93JGlkIDogZmFsc2U7XG59XG5mdW5jdGlvbiBpc1N1YlJvd1NlbGVjdGVkKHJvdywgc2VsZWN0aW9uLCB0YWJsZSkge1xuICB2YXIgX3JvdyRzdWJSb3dzMztcbiAgaWYgKCEoKF9yb3ckc3ViUm93czMgPSByb3cuc3ViUm93cykgIT0gbnVsbCAmJiBfcm93JHN1YlJvd3MzLmxlbmd0aCkpIHJldHVybiBmYWxzZTtcbiAgbGV0IGFsbENoaWxkcmVuU2VsZWN0ZWQgPSB0cnVlO1xuICBsZXQgc29tZVNlbGVjdGVkID0gZmFsc2U7XG4gIHJvdy5zdWJSb3dzLmZvckVhY2goc3ViUm93ID0+IHtcbiAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB3ZSBrbm93IGJvdGggb2YgdGhlc2VcbiAgICBpZiAoc29tZVNlbGVjdGVkICYmICFhbGxDaGlsZHJlblNlbGVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzdWJSb3cuZ2V0Q2FuU2VsZWN0KCkpIHtcbiAgICAgIGlmIChpc1Jvd1NlbGVjdGVkKHN1YlJvdywgc2VsZWN0aW9uKSkge1xuICAgICAgICBzb21lU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsQ2hpbGRyZW5TZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIHJvdyBzZWxlY3Rpb24gb2YgbmVzdGVkIHN1YnJvd3NcbiAgICBpZiAoc3ViUm93LnN1YlJvd3MgJiYgc3ViUm93LnN1YlJvd3MubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWJSb3dDaGlsZHJlblNlbGVjdGVkID0gaXNTdWJSb3dTZWxlY3RlZChzdWJSb3csIHNlbGVjdGlvbik7XG4gICAgICBpZiAoc3ViUm93Q2hpbGRyZW5TZWxlY3RlZCA9PT0gJ2FsbCcpIHtcbiAgICAgICAgc29tZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoc3ViUm93Q2hpbGRyZW5TZWxlY3RlZCA9PT0gJ3NvbWUnKSB7XG4gICAgICAgIHNvbWVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIGFsbENoaWxkcmVuU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFsbENoaWxkcmVuU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYWxsQ2hpbGRyZW5TZWxlY3RlZCA/ICdhbGwnIDogc29tZVNlbGVjdGVkID8gJ3NvbWUnIDogZmFsc2U7XG59XG5cbmNvbnN0IHJlU3BsaXRBbHBoYU51bWVyaWMgPSAvKFswLTldKykvZ207XG5jb25zdCBhbHBoYW51bWVyaWMgPSAocm93QSwgcm93QiwgY29sdW1uSWQpID0+IHtcbiAgcmV0dXJuIGNvbXBhcmVBbHBoYW51bWVyaWModG9TdHJpbmcocm93QS5nZXRWYWx1ZShjb2x1bW5JZCkpLnRvTG93ZXJDYXNlKCksIHRvU3RyaW5nKHJvd0IuZ2V0VmFsdWUoY29sdW1uSWQpKS50b0xvd2VyQ2FzZSgpKTtcbn07XG5jb25zdCBhbHBoYW51bWVyaWNDYXNlU2Vuc2l0aXZlID0gKHJvd0EsIHJvd0IsIGNvbHVtbklkKSA9PiB7XG4gIHJldHVybiBjb21wYXJlQWxwaGFudW1lcmljKHRvU3RyaW5nKHJvd0EuZ2V0VmFsdWUoY29sdW1uSWQpKSwgdG9TdHJpbmcocm93Qi5nZXRWYWx1ZShjb2x1bW5JZCkpKTtcbn07XG5cbi8vIFRoZSB0ZXh0IGZpbHRlciBpcyBtb3JlIGJhc2ljIChsZXNzIG51bWVyaWMgc3VwcG9ydClcbi8vIGJ1dCBpcyBtdWNoIGZhc3RlclxuY29uc3QgdGV4dCA9IChyb3dBLCByb3dCLCBjb2x1bW5JZCkgPT4ge1xuICByZXR1cm4gY29tcGFyZUJhc2ljKHRvU3RyaW5nKHJvd0EuZ2V0VmFsdWUoY29sdW1uSWQpKS50b0xvd2VyQ2FzZSgpLCB0b1N0cmluZyhyb3dCLmdldFZhbHVlKGNvbHVtbklkKSkudG9Mb3dlckNhc2UoKSk7XG59O1xuXG4vLyBUaGUgdGV4dCBmaWx0ZXIgaXMgbW9yZSBiYXNpYyAobGVzcyBudW1lcmljIHN1cHBvcnQpXG4vLyBidXQgaXMgbXVjaCBmYXN0ZXJcbmNvbnN0IHRleHRDYXNlU2Vuc2l0aXZlID0gKHJvd0EsIHJvd0IsIGNvbHVtbklkKSA9PiB7XG4gIHJldHVybiBjb21wYXJlQmFzaWModG9TdHJpbmcocm93QS5nZXRWYWx1ZShjb2x1bW5JZCkpLCB0b1N0cmluZyhyb3dCLmdldFZhbHVlKGNvbHVtbklkKSkpO1xufTtcbmNvbnN0IGRhdGV0aW1lID0gKHJvd0EsIHJvd0IsIGNvbHVtbklkKSA9PiB7XG4gIGNvbnN0IGEgPSByb3dBLmdldFZhbHVlKGNvbHVtbklkKTtcbiAgY29uc3QgYiA9IHJvd0IuZ2V0VmFsdWUoY29sdW1uSWQpO1xuXG4gIC8vIENhbiBoYW5kbGUgbnVsbGlzaCB2YWx1ZXNcbiAgLy8gVXNlID4gYW5kIDwgYmVjYXVzZSA9PSAoYW5kID09PSkgZG9lc24ndCB3b3JrIHdpdGhcbiAgLy8gRGF0ZSBvYmplY3RzICh3b3VsZCByZXF1aXJlIGNhbGxpbmcgZ2V0VGltZSgpKS5cbiAgcmV0dXJuIGEgPiBiID8gMSA6IGEgPCBiID8gLTEgOiAwO1xufTtcbmNvbnN0IGJhc2ljID0gKHJvd0EsIHJvd0IsIGNvbHVtbklkKSA9PiB7XG4gIHJldHVybiBjb21wYXJlQmFzaWMocm93QS5nZXRWYWx1ZShjb2x1bW5JZCksIHJvd0IuZ2V0VmFsdWUoY29sdW1uSWQpKTtcbn07XG5cbi8vIFV0aWxzXG5cbmZ1bmN0aW9uIGNvbXBhcmVCYXNpYyhhLCBiKSB7XG4gIHJldHVybiBhID09PSBiID8gMCA6IGEgPiBiID8gMSA6IC0xO1xufVxuZnVuY3Rpb24gdG9TdHJpbmcoYSkge1xuICBpZiAodHlwZW9mIGEgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKGlzTmFOKGEpIHx8IGEgPT09IEluZmluaXR5IHx8IGEgPT09IC1JbmZpbml0eSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKGEpO1xuICB9XG4gIGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYTtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8vIE1peGVkIHNvcnRpbmcgaXMgc2xvdywgYnV0IHZlcnkgaW5jbHVzaXZlIG9mIG1hbnkgZWRnZSBjYXNlcy5cbi8vIEl0IGhhbmRsZXMgbnVtYmVycywgbWl4ZWQgYWxwaGFudW1lcmljIGNvbWJpbmF0aW9ucywgYW5kIGV2ZW5cbi8vIG51bGwsIHVuZGVmaW5lZCwgYW5kIEluZmluaXR5XG5mdW5jdGlvbiBjb21wYXJlQWxwaGFudW1lcmljKGFTdHIsIGJTdHIpIHtcbiAgLy8gU3BsaXQgb24gbnVtYmVyIGdyb3VwcywgYnV0IGtlZXAgdGhlIGRlbGltaXRlclxuICAvLyBUaGVuIHJlbW92ZSBmYWxzZXkgc3BsaXQgdmFsdWVzXG4gIGNvbnN0IGEgPSBhU3RyLnNwbGl0KHJlU3BsaXRBbHBoYU51bWVyaWMpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgYiA9IGJTdHIuc3BsaXQocmVTcGxpdEFscGhhTnVtZXJpYykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIC8vIFdoaWxlXG4gIHdoaWxlIChhLmxlbmd0aCAmJiBiLmxlbmd0aCkge1xuICAgIGNvbnN0IGFhID0gYS5zaGlmdCgpO1xuICAgIGNvbnN0IGJiID0gYi5zaGlmdCgpO1xuICAgIGNvbnN0IGFuID0gcGFyc2VJbnQoYWEsIDEwKTtcbiAgICBjb25zdCBibiA9IHBhcnNlSW50KGJiLCAxMCk7XG4gICAgY29uc3QgY29tYm8gPSBbYW4sIGJuXS5zb3J0KCk7XG5cbiAgICAvLyBCb3RoIGFyZSBzdHJpbmdcbiAgICBpZiAoaXNOYU4oY29tYm9bMF0pKSB7XG4gICAgICBpZiAoYWEgPiBiYikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmIChiYiA+IGFhKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIE9uZSBpcyBhIHN0cmluZywgb25lIGlzIGEgbnVtYmVyXG4gICAgaWYgKGlzTmFOKGNvbWJvWzFdKSkge1xuICAgICAgcmV0dXJuIGlzTmFOKGFuKSA/IC0xIDogMTtcbiAgICB9XG5cbiAgICAvLyBCb3RoIGFyZSBudW1iZXJzXG4gICAgaWYgKGFuID4gYm4pIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBpZiAoYm4gPiBhbikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYS5sZW5ndGggLSBiLmxlbmd0aDtcbn1cblxuLy8gRXhwb3J0c1xuXG5jb25zdCBzb3J0aW5nRm5zID0ge1xuICBhbHBoYW51bWVyaWMsXG4gIGFscGhhbnVtZXJpY0Nhc2VTZW5zaXRpdmUsXG4gIHRleHQsXG4gIHRleHRDYXNlU2Vuc2l0aXZlLFxuICBkYXRldGltZSxcbiAgYmFzaWNcbn07XG5cbi8vXG5cbmNvbnN0IFJvd1NvcnRpbmcgPSB7XG4gIGdldEluaXRpYWxTdGF0ZTogc3RhdGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3J0aW5nOiBbXSxcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdENvbHVtbkRlZjogKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3J0aW5nRm46ICdhdXRvJyxcbiAgICAgIHNvcnRVbmRlZmluZWQ6IDFcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0T3B0aW9uczogdGFibGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvblNvcnRpbmdDaGFuZ2U6IG1ha2VTdGF0ZVVwZGF0ZXIoJ3NvcnRpbmcnLCB0YWJsZSksXG4gICAgICBpc011bHRpU29ydEV2ZW50OiBlID0+IHtcbiAgICAgICAgcmV0dXJuIGUuc2hpZnRLZXk7XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgY3JlYXRlQ29sdW1uOiAoY29sdW1uLCB0YWJsZSkgPT4ge1xuICAgIGNvbHVtbi5nZXRBdXRvU29ydGluZ0ZuID0gKCkgPT4ge1xuICAgICAgY29uc3QgZmlyc3RSb3dzID0gdGFibGUuZ2V0RmlsdGVyZWRSb3dNb2RlbCgpLmZsYXRSb3dzLnNsaWNlKDEwKTtcbiAgICAgIGxldCBpc1N0cmluZyA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByb3cgb2YgZmlyc3RSb3dzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm93ID09IG51bGwgPyB2b2lkIDAgOiByb3cuZ2V0VmFsdWUoY29sdW1uLmlkKTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgIHJldHVybiBzb3J0aW5nRm5zLmRhdGV0aW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaXNTdHJpbmcgPSB0cnVlO1xuICAgICAgICAgIGlmICh2YWx1ZS5zcGxpdChyZVNwbGl0QWxwaGFOdW1lcmljKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gc29ydGluZ0Zucy5hbHBoYW51bWVyaWM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRpbmdGbnMudGV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzb3J0aW5nRm5zLmJhc2ljO1xuICAgIH07XG4gICAgY29sdW1uLmdldEF1dG9Tb3J0RGlyID0gKCkgPT4ge1xuICAgICAgY29uc3QgZmlyc3RSb3cgPSB0YWJsZS5nZXRGaWx0ZXJlZFJvd01vZGVsKCkuZmxhdFJvd3NbMF07XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpcnN0Um93ID09IG51bGwgPyB2b2lkIDAgOiBmaXJzdFJvdy5nZXRWYWx1ZShjb2x1bW4uaWQpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuICdhc2MnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdkZXNjJztcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRTb3J0aW5nRm4gPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkc29ydGluLCBfdGFibGUkb3B0aW9ucyRzb3J0aW4yO1xuICAgICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihjb2x1bW4uY29sdW1uRGVmLnNvcnRpbmdGbikgPyBjb2x1bW4uY29sdW1uRGVmLnNvcnRpbmdGbiA6IGNvbHVtbi5jb2x1bW5EZWYuc29ydGluZ0ZuID09PSAnYXV0bycgPyBjb2x1bW4uZ2V0QXV0b1NvcnRpbmdGbigpIDogKF90YWJsZSRvcHRpb25zJHNvcnRpbiA9IChfdGFibGUkb3B0aW9ucyRzb3J0aW4yID0gdGFibGUub3B0aW9ucy5zb3J0aW5nRm5zKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJG9wdGlvbnMkc29ydGluMltjb2x1bW4uY29sdW1uRGVmLnNvcnRpbmdGbl0pICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRzb3J0aW4gOiBzb3J0aW5nRm5zW2NvbHVtbi5jb2x1bW5EZWYuc29ydGluZ0ZuXTtcbiAgICB9O1xuICAgIGNvbHVtbi50b2dnbGVTb3J0aW5nID0gKGRlc2MsIG11bHRpKSA9PiB7XG4gICAgICAvLyBpZiAoY29sdW1uLmNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAvLyAgIGNvbHVtbi5jb2x1bW5zLmZvckVhY2goKGMsIGkpID0+IHtcbiAgICAgIC8vICAgICBpZiAoYy5pZCkge1xuICAgICAgLy8gICAgICAgdGFibGUudG9nZ2xlQ29sdW1uU29ydGluZyhjLmlkLCB1bmRlZmluZWQsIG11bHRpIHx8ICEhaSlcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgIH0pXG4gICAgICAvLyAgIHJldHVyblxuICAgICAgLy8gfVxuXG4gICAgICAvLyB0aGlzIG5lZWRzIHRvIGJlIG91dHNpZGUgb2YgdGFibGUuc2V0U29ydGluZyB0byBiZSBpbiBzeW5jIHdpdGggcmVyZW5kZXJcbiAgICAgIGNvbnN0IG5leHRTb3J0aW5nT3JkZXIgPSBjb2x1bW4uZ2V0TmV4dFNvcnRpbmdPcmRlcigpO1xuICAgICAgY29uc3QgaGFzTWFudWFsVmFsdWUgPSB0eXBlb2YgZGVzYyAhPT0gJ3VuZGVmaW5lZCcgJiYgZGVzYyAhPT0gbnVsbDtcbiAgICAgIHRhYmxlLnNldFNvcnRpbmcob2xkID0+IHtcbiAgICAgICAgLy8gRmluZCBhbnkgZXhpc3Rpbmcgc29ydGluZyBmb3IgdGhpcyBjb2x1bW5cbiAgICAgICAgY29uc3QgZXhpc3RpbmdTb3J0aW5nID0gb2xkID09IG51bGwgPyB2b2lkIDAgOiBvbGQuZmluZChkID0+IGQuaWQgPT09IGNvbHVtbi5pZCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBvbGQgPT0gbnVsbCA/IHZvaWQgMCA6IG9sZC5maW5kSW5kZXgoZCA9PiBkLmlkID09PSBjb2x1bW4uaWQpO1xuICAgICAgICBsZXQgbmV3U29ydGluZyA9IFtdO1xuXG4gICAgICAgIC8vIFdoYXQgc2hvdWxkIHdlIGRvIHdpdGggdGhpcyBzb3J0IGFjdGlvbj9cbiAgICAgICAgbGV0IHNvcnRBY3Rpb247XG4gICAgICAgIGxldCBuZXh0RGVzYyA9IGhhc01hbnVhbFZhbHVlID8gZGVzYyA6IG5leHRTb3J0aW5nT3JkZXIgPT09ICdkZXNjJztcblxuICAgICAgICAvLyBNdWx0aS1tb2RlXG4gICAgICAgIGlmIChvbGQgIT0gbnVsbCAmJiBvbGQubGVuZ3RoICYmIGNvbHVtbi5nZXRDYW5NdWx0aVNvcnQoKSAmJiBtdWx0aSkge1xuICAgICAgICAgIGlmIChleGlzdGluZ1NvcnRpbmcpIHtcbiAgICAgICAgICAgIHNvcnRBY3Rpb24gPSAndG9nZ2xlJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc29ydEFjdGlvbiA9ICdhZGQnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBOb3JtYWwgbW9kZVxuICAgICAgICAgIGlmIChvbGQgIT0gbnVsbCAmJiBvbGQubGVuZ3RoICYmIGV4aXN0aW5nSW5kZXggIT09IG9sZC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBzb3J0QWN0aW9uID0gJ3JlcGxhY2UnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdTb3J0aW5nKSB7XG4gICAgICAgICAgICBzb3J0QWN0aW9uID0gJ3RvZ2dsZSc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNvcnRBY3Rpb24gPSAncmVwbGFjZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIHRvZ2dsZSBzdGF0ZXMgdGhhdCB3aWxsIHJlbW92ZSB0aGUgc29ydGluZ1xuICAgICAgICBpZiAoc29ydEFjdGlvbiA9PT0gJ3RvZ2dsZScpIHtcbiAgICAgICAgICAvLyBJZiB3ZSBhcmUgXCJhY3R1YWxseVwiIHRvZ2dsaW5nIChub3QgYSBtYW51YWwgc2V0IHZhbHVlKSwgc2hvdWxkIHdlIHJlbW92ZSB0aGUgc29ydGluZz9cbiAgICAgICAgICBpZiAoIWhhc01hbnVhbFZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJcyBvdXIgaW50ZW50aW9uIHRvIHJlbW92ZT9cbiAgICAgICAgICAgIGlmICghbmV4dFNvcnRpbmdPcmRlcikge1xuICAgICAgICAgICAgICBzb3J0QWN0aW9uID0gJ3JlbW92ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0QWN0aW9uID09PSAnYWRkJykge1xuICAgICAgICAgIHZhciBfdGFibGUkb3B0aW9ucyRtYXhNdWw7XG4gICAgICAgICAgbmV3U29ydGluZyA9IFsuLi5vbGQsIHtcbiAgICAgICAgICAgIGlkOiBjb2x1bW4uaWQsXG4gICAgICAgICAgICBkZXNjOiBuZXh0RGVzY1xuICAgICAgICAgIH1dO1xuICAgICAgICAgIC8vIFRha2UgbGF0ZXN0IG4gY29sdW1uc1xuICAgICAgICAgIG5ld1NvcnRpbmcuc3BsaWNlKDAsIG5ld1NvcnRpbmcubGVuZ3RoIC0gKChfdGFibGUkb3B0aW9ucyRtYXhNdWwgPSB0YWJsZS5vcHRpb25zLm1heE11bHRpU29ydENvbENvdW50KSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMkbWF4TXVsIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3J0QWN0aW9uID09PSAndG9nZ2xlJykge1xuICAgICAgICAgIC8vIFRoaXMgZmxpcHMgKG9yIHNldHMpIHRoZVxuICAgICAgICAgIG5ld1NvcnRpbmcgPSBvbGQubWFwKGQgPT4ge1xuICAgICAgICAgICAgaWYgKGQuaWQgPT09IGNvbHVtbi5pZCkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmQsXG4gICAgICAgICAgICAgICAgZGVzYzogbmV4dERlc2NcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNvcnRBY3Rpb24gPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgbmV3U29ydGluZyA9IG9sZC5maWx0ZXIoZCA9PiBkLmlkICE9PSBjb2x1bW4uaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1NvcnRpbmcgPSBbe1xuICAgICAgICAgICAgaWQ6IGNvbHVtbi5pZCxcbiAgICAgICAgICAgIGRlc2M6IG5leHREZXNjXG4gICAgICAgICAgfV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1NvcnRpbmc7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRGaXJzdFNvcnREaXIgPSAoKSA9PiB7XG4gICAgICB2YXIgX3JlZiwgX2NvbHVtbiRjb2x1bW5EZWYkc29yO1xuICAgICAgY29uc3Qgc29ydERlc2NGaXJzdCA9IChfcmVmID0gKF9jb2x1bW4kY29sdW1uRGVmJHNvciA9IGNvbHVtbi5jb2x1bW5EZWYuc29ydERlc2NGaXJzdCkgIT0gbnVsbCA/IF9jb2x1bW4kY29sdW1uRGVmJHNvciA6IHRhYmxlLm9wdGlvbnMuc29ydERlc2NGaXJzdCkgIT0gbnVsbCA/IF9yZWYgOiBjb2x1bW4uZ2V0QXV0b1NvcnREaXIoKSA9PT0gJ2Rlc2MnO1xuICAgICAgcmV0dXJuIHNvcnREZXNjRmlyc3QgPyAnZGVzYycgOiAnYXNjJztcbiAgICB9O1xuICAgIGNvbHVtbi5nZXROZXh0U29ydGluZ09yZGVyID0gbXVsdGkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRvcHRpb25zJGVuYWJsZSwgX3RhYmxlJG9wdGlvbnMkZW5hYmxlMjtcbiAgICAgIGNvbnN0IGZpcnN0U29ydERpcmVjdGlvbiA9IGNvbHVtbi5nZXRGaXJzdFNvcnREaXIoKTtcbiAgICAgIGNvbnN0IGlzU29ydGVkID0gY29sdW1uLmdldElzU29ydGVkKCk7XG4gICAgICBpZiAoIWlzU29ydGVkKSB7XG4gICAgICAgIHJldHVybiBmaXJzdFNvcnREaXJlY3Rpb247XG4gICAgICB9XG4gICAgICBpZiAoaXNTb3J0ZWQgIT09IGZpcnN0U29ydERpcmVjdGlvbiAmJiAoKF90YWJsZSRvcHRpb25zJGVuYWJsZSA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlU29ydGluZ1JlbW92YWwpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUgOiB0cnVlKSAmJiAoXG4gICAgICAvLyBJZiBlbmFibGVTb3J0UmVtb3ZlLCBlbmFibGUgaW4gZ2VuZXJhbFxuICAgICAgbXVsdGkgPyAoX3RhYmxlJG9wdGlvbnMkZW5hYmxlMiA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlTXVsdGlSZW1vdmUpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRlbmFibGUyIDogdHJ1ZSA6IHRydWUpIC8vIElmIG11bHRpLCBkb24ndCBhbGxvdyBpZiBlbmFibGVNdWx0aVJlbW92ZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzU29ydGVkID09PSAnZGVzYycgPyAnYXNjJyA6ICdkZXNjJztcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRDYW5Tb3J0ID0gKCkgPT4ge1xuICAgICAgdmFyIF9jb2x1bW4kY29sdW1uRGVmJGVuYSwgX3RhYmxlJG9wdGlvbnMkZW5hYmxlMztcbiAgICAgIHJldHVybiAoKF9jb2x1bW4kY29sdW1uRGVmJGVuYSA9IGNvbHVtbi5jb2x1bW5EZWYuZW5hYmxlU29ydGluZykgIT0gbnVsbCA/IF9jb2x1bW4kY29sdW1uRGVmJGVuYSA6IHRydWUpICYmICgoX3RhYmxlJG9wdGlvbnMkZW5hYmxlMyA9IHRhYmxlLm9wdGlvbnMuZW5hYmxlU29ydGluZykgIT0gbnVsbCA/IF90YWJsZSRvcHRpb25zJGVuYWJsZTMgOiB0cnVlKSAmJiAhIWNvbHVtbi5hY2Nlc3NvckZuO1xuICAgIH07XG4gICAgY29sdW1uLmdldENhbk11bHRpU29ydCA9ICgpID0+IHtcbiAgICAgIHZhciBfcmVmMiwgX2NvbHVtbiRjb2x1bW5EZWYkZW5hMjtcbiAgICAgIHJldHVybiAoX3JlZjIgPSAoX2NvbHVtbiRjb2x1bW5EZWYkZW5hMiA9IGNvbHVtbi5jb2x1bW5EZWYuZW5hYmxlTXVsdGlTb3J0KSAhPSBudWxsID8gX2NvbHVtbiRjb2x1bW5EZWYkZW5hMiA6IHRhYmxlLm9wdGlvbnMuZW5hYmxlTXVsdGlTb3J0KSAhPSBudWxsID8gX3JlZjIgOiAhIWNvbHVtbi5hY2Nlc3NvckZuO1xuICAgIH07XG4gICAgY29sdW1uLmdldElzU29ydGVkID0gKCkgPT4ge1xuICAgICAgdmFyIF90YWJsZSRnZXRTdGF0ZSRzb3J0aTtcbiAgICAgIGNvbnN0IGNvbHVtblNvcnQgPSAoX3RhYmxlJGdldFN0YXRlJHNvcnRpID0gdGFibGUuZ2V0U3RhdGUoKS5zb3J0aW5nKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJHNvcnRpLmZpbmQoZCA9PiBkLmlkID09PSBjb2x1bW4uaWQpO1xuICAgICAgcmV0dXJuICFjb2x1bW5Tb3J0ID8gZmFsc2UgOiBjb2x1bW5Tb3J0LmRlc2MgPyAnZGVzYycgOiAnYXNjJztcbiAgICB9O1xuICAgIGNvbHVtbi5nZXRTb3J0SW5kZXggPSAoKSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJGdldFN0YXRlJHNvcnRpMiwgX3RhYmxlJGdldFN0YXRlJHNvcnRpMztcbiAgICAgIHJldHVybiAoX3RhYmxlJGdldFN0YXRlJHNvcnRpMiA9IChfdGFibGUkZ2V0U3RhdGUkc29ydGkzID0gdGFibGUuZ2V0U3RhdGUoKS5zb3J0aW5nKSA9PSBudWxsID8gdm9pZCAwIDogX3RhYmxlJGdldFN0YXRlJHNvcnRpMy5maW5kSW5kZXgoZCA9PiBkLmlkID09PSBjb2x1bW4uaWQpKSAhPSBudWxsID8gX3RhYmxlJGdldFN0YXRlJHNvcnRpMiA6IC0xO1xuICAgIH07XG4gICAgY29sdW1uLmNsZWFyU29ydGluZyA9ICgpID0+IHtcbiAgICAgIC8vY2xlYXIgc29ydGluZyBmb3IganVzdCAxIGNvbHVtblxuICAgICAgdGFibGUuc2V0U29ydGluZyhvbGQgPT4gb2xkICE9IG51bGwgJiYgb2xkLmxlbmd0aCA/IG9sZC5maWx0ZXIoZCA9PiBkLmlkICE9PSBjb2x1bW4uaWQpIDogW10pO1xuICAgIH07XG4gICAgY29sdW1uLmdldFRvZ2dsZVNvcnRpbmdIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgY2FuU29ydCA9IGNvbHVtbi5nZXRDYW5Tb3J0KCk7XG4gICAgICByZXR1cm4gZSA9PiB7XG4gICAgICAgIGlmICghY2FuU29ydCkgcmV0dXJuO1xuICAgICAgICBlLnBlcnNpc3QgPT0gbnVsbCB8fCBlLnBlcnNpc3QoKTtcbiAgICAgICAgY29sdW1uLnRvZ2dsZVNvcnRpbmcgPT0gbnVsbCB8fCBjb2x1bW4udG9nZ2xlU29ydGluZyh1bmRlZmluZWQsIGNvbHVtbi5nZXRDYW5NdWx0aVNvcnQoKSA/IHRhYmxlLm9wdGlvbnMuaXNNdWx0aVNvcnRFdmVudCA9PSBudWxsID8gdm9pZCAwIDogdGFibGUub3B0aW9ucy5pc011bHRpU29ydEV2ZW50KGUpIDogZmFsc2UpO1xuICAgICAgfTtcbiAgICB9O1xuICB9LFxuICBjcmVhdGVUYWJsZTogdGFibGUgPT4ge1xuICAgIHRhYmxlLnNldFNvcnRpbmcgPSB1cGRhdGVyID0+IHRhYmxlLm9wdGlvbnMub25Tb3J0aW5nQ2hhbmdlID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLm9uU29ydGluZ0NoYW5nZSh1cGRhdGVyKTtcbiAgICB0YWJsZS5yZXNldFNvcnRpbmcgPSBkZWZhdWx0U3RhdGUgPT4ge1xuICAgICAgdmFyIF90YWJsZSRpbml0aWFsU3RhdGUkcywgX3RhYmxlJGluaXRpYWxTdGF0ZTtcbiAgICAgIHRhYmxlLnNldFNvcnRpbmcoZGVmYXVsdFN0YXRlID8gW10gOiAoX3RhYmxlJGluaXRpYWxTdGF0ZSRzID0gKF90YWJsZSRpbml0aWFsU3RhdGUgPSB0YWJsZS5pbml0aWFsU3RhdGUpID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkaW5pdGlhbFN0YXRlLnNvcnRpbmcpICE9IG51bGwgPyBfdGFibGUkaW5pdGlhbFN0YXRlJHMgOiBbXSk7XG4gICAgfTtcbiAgICB0YWJsZS5nZXRQcmVTb3J0ZWRSb3dNb2RlbCA9ICgpID0+IHRhYmxlLmdldEdyb3VwZWRSb3dNb2RlbCgpO1xuICAgIHRhYmxlLmdldFNvcnRlZFJvd01vZGVsID0gKCkgPT4ge1xuICAgICAgaWYgKCF0YWJsZS5fZ2V0U29ydGVkUm93TW9kZWwgJiYgdGFibGUub3B0aW9ucy5nZXRTb3J0ZWRSb3dNb2RlbCkge1xuICAgICAgICB0YWJsZS5fZ2V0U29ydGVkUm93TW9kZWwgPSB0YWJsZS5vcHRpb25zLmdldFNvcnRlZFJvd01vZGVsKHRhYmxlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0YWJsZS5vcHRpb25zLm1hbnVhbFNvcnRpbmcgfHwgIXRhYmxlLl9nZXRTb3J0ZWRSb3dNb2RlbCkge1xuICAgICAgICByZXR1cm4gdGFibGUuZ2V0UHJlU29ydGVkUm93TW9kZWwoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWJsZS5fZ2V0U29ydGVkUm93TW9kZWwoKTtcbiAgICB9O1xuICB9XG59O1xuXG5jb25zdCBidWlsdEluRmVhdHVyZXMgPSBbSGVhZGVycywgQ29sdW1uVmlzaWJpbGl0eSwgQ29sdW1uT3JkZXJpbmcsIENvbHVtblBpbm5pbmcsIENvbHVtbkZhY2V0aW5nLCBDb2x1bW5GaWx0ZXJpbmcsIEdsb2JhbEZhY2V0aW5nLFxuLy9kZXBlbmRzIG9uIENvbHVtbkZhY2V0aW5nXG5HbG9iYWxGaWx0ZXJpbmcsXG4vL2RlcGVuZHMgb24gQ29sdW1uRmlsdGVyaW5nXG5Sb3dTb3J0aW5nLCBDb2x1bW5Hcm91cGluZyxcbi8vZGVwZW5kcyBvbiBSb3dTb3J0aW5nXG5Sb3dFeHBhbmRpbmcsIFJvd1BhZ2luYXRpb24sIFJvd1Bpbm5pbmcsIFJvd1NlbGVjdGlvbiwgQ29sdW1uU2l6aW5nXTtcblxuLy9cblxuZnVuY3Rpb24gY3JlYXRlVGFibGUob3B0aW9ucykge1xuICB2YXIgX29wdGlvbnMkX2ZlYXR1cmVzLCBfb3B0aW9ucyRpbml0aWFsU3RhdGU7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIChvcHRpb25zLmRlYnVnQWxsIHx8IG9wdGlvbnMuZGVidWdUYWJsZSkpIHtcbiAgICBjb25zb2xlLmluZm8oJ0NyZWF0aW5nIFRhYmxlIEluc3RhbmNlLi4uJyk7XG4gIH1cbiAgY29uc3QgX2ZlYXR1cmVzID0gWy4uLmJ1aWx0SW5GZWF0dXJlcywgLi4uKChfb3B0aW9ucyRfZmVhdHVyZXMgPSBvcHRpb25zLl9mZWF0dXJlcykgIT0gbnVsbCA/IF9vcHRpb25zJF9mZWF0dXJlcyA6IFtdKV07XG4gIGxldCB0YWJsZSA9IHtcbiAgICBfZmVhdHVyZXNcbiAgfTtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB0YWJsZS5fZmVhdHVyZXMucmVkdWNlKChvYmosIGZlYXR1cmUpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvYmosIGZlYXR1cmUuZ2V0RGVmYXVsdE9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IGZlYXR1cmUuZ2V0RGVmYXVsdE9wdGlvbnModGFibGUpKTtcbiAgfSwge30pO1xuICBjb25zdCBtZXJnZU9wdGlvbnMgPSBvcHRpb25zID0+IHtcbiAgICBpZiAodGFibGUub3B0aW9ucy5tZXJnZU9wdGlvbnMpIHtcbiAgICAgIHJldHVybiB0YWJsZS5vcHRpb25zLm1lcmdlT3B0aW9ucyhkZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuICB9O1xuICBjb25zdCBjb3JlSW5pdGlhbFN0YXRlID0ge307XG4gIGxldCBpbml0aWFsU3RhdGUgPSB7XG4gICAgLi4uY29yZUluaXRpYWxTdGF0ZSxcbiAgICAuLi4oKF9vcHRpb25zJGluaXRpYWxTdGF0ZSA9IG9wdGlvbnMuaW5pdGlhbFN0YXRlKSAhPSBudWxsID8gX29wdGlvbnMkaW5pdGlhbFN0YXRlIDoge30pXG4gIH07XG4gIHRhYmxlLl9mZWF0dXJlcy5mb3JFYWNoKGZlYXR1cmUgPT4ge1xuICAgIHZhciBfZmVhdHVyZSRnZXRJbml0aWFsU3Q7XG4gICAgaW5pdGlhbFN0YXRlID0gKF9mZWF0dXJlJGdldEluaXRpYWxTdCA9IGZlYXR1cmUuZ2V0SW5pdGlhbFN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBmZWF0dXJlLmdldEluaXRpYWxTdGF0ZShpbml0aWFsU3RhdGUpKSAhPSBudWxsID8gX2ZlYXR1cmUkZ2V0SW5pdGlhbFN0IDogaW5pdGlhbFN0YXRlO1xuICB9KTtcbiAgY29uc3QgcXVldWVkID0gW107XG4gIGxldCBxdWV1ZWRUaW1lb3V0ID0gZmFsc2U7XG4gIGNvbnN0IGNvcmVJbnN0YW5jZSA9IHtcbiAgICBfZmVhdHVyZXMsXG4gICAgb3B0aW9uczoge1xuICAgICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSxcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgX3F1ZXVlOiBjYiA9PiB7XG4gICAgICBxdWV1ZWQucHVzaChjYik7XG4gICAgICBpZiAoIXF1ZXVlZFRpbWVvdXQpIHtcbiAgICAgICAgcXVldWVkVGltZW91dCA9IHRydWU7XG5cbiAgICAgICAgLy8gU2NoZWR1bGUgYSBtaWNyb3Rhc2sgdG8gcnVuIHRoZSBxdWV1ZWQgY2FsbGJhY2tzIGFmdGVyXG4gICAgICAgIC8vIHRoZSBjdXJyZW50IGNhbGwgc3RhY2sgKHJlbmRlciwgZXRjKSBoYXMgZmluaXNoZWQuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHdoaWxlIChxdWV1ZWQubGVuZ3RoKSB7XG4gICAgICAgICAgICBxdWV1ZWQuc2hpZnQoKSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxdWV1ZWRUaW1lb3V0ID0gZmFsc2U7XG4gICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSxcbiAgICByZXNldDogKCkgPT4ge1xuICAgICAgdGFibGUuc2V0U3RhdGUodGFibGUuaW5pdGlhbFN0YXRlKTtcbiAgICB9LFxuICAgIHNldE9wdGlvbnM6IHVwZGF0ZXIgPT4ge1xuICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IGZ1bmN0aW9uYWxVcGRhdGUodXBkYXRlciwgdGFibGUub3B0aW9ucyk7XG4gICAgICB0YWJsZS5vcHRpb25zID0gbWVyZ2VPcHRpb25zKG5ld09wdGlvbnMpO1xuICAgIH0sXG4gICAgZ2V0U3RhdGU6ICgpID0+IHtcbiAgICAgIHJldHVybiB0YWJsZS5vcHRpb25zLnN0YXRlO1xuICAgIH0sXG4gICAgc2V0U3RhdGU6IHVwZGF0ZXIgPT4ge1xuICAgICAgdGFibGUub3B0aW9ucy5vblN0YXRlQ2hhbmdlID09IG51bGwgfHwgdGFibGUub3B0aW9ucy5vblN0YXRlQ2hhbmdlKHVwZGF0ZXIpO1xuICAgIH0sXG4gICAgX2dldFJvd0lkOiAocm93LCBpbmRleCwgcGFyZW50KSA9PiB7XG4gICAgICB2YXIgX3RhYmxlJG9wdGlvbnMkZ2V0Um93O1xuICAgICAgcmV0dXJuIChfdGFibGUkb3B0aW9ucyRnZXRSb3cgPSB0YWJsZS5vcHRpb25zLmdldFJvd0lkID09IG51bGwgPyB2b2lkIDAgOiB0YWJsZS5vcHRpb25zLmdldFJvd0lkKHJvdywgaW5kZXgsIHBhcmVudCkpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRnZXRSb3cgOiBgJHtwYXJlbnQgPyBbcGFyZW50LmlkLCBpbmRleF0uam9pbignLicpIDogaW5kZXh9YDtcbiAgICB9LFxuICAgIGdldENvcmVSb3dNb2RlbDogKCkgPT4ge1xuICAgICAgaWYgKCF0YWJsZS5fZ2V0Q29yZVJvd01vZGVsKSB7XG4gICAgICAgIHRhYmxlLl9nZXRDb3JlUm93TW9kZWwgPSB0YWJsZS5vcHRpb25zLmdldENvcmVSb3dNb2RlbCh0YWJsZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFibGUuX2dldENvcmVSb3dNb2RlbCgpO1xuICAgIH0sXG4gICAgLy8gVGhlIGZpbmFsIGNhbGxzIHN0YXJ0IGF0IHRoZSBib3R0b20gb2YgdGhlIG1vZGVsLFxuICAgIC8vIGV4cGFuZGVkIHJvd3MsIHdoaWNoIHRoZW4gd29yayB0aGVpciB3YXkgdXBcblxuICAgIGdldFJvd01vZGVsOiAoKSA9PiB7XG4gICAgICByZXR1cm4gdGFibGUuZ2V0UGFnaW5hdGlvblJvd01vZGVsKCk7XG4gICAgfSxcbiAgICAvL2luIG5leHQgdmVyc2lvbiwgd2Ugc2hvdWxkIGp1c3QgcGFzcyBpbiB0aGUgcm93IG1vZGVsIGFzIHRoZSBvcHRpb25hbCAybmQgYXJnXG4gICAgZ2V0Um93OiAoaWQsIHNlYXJjaEFsbCkgPT4ge1xuICAgICAgbGV0IHJvdyA9IChzZWFyY2hBbGwgPyB0YWJsZS5nZXRQcmVQYWdpbmF0aW9uUm93TW9kZWwoKSA6IHRhYmxlLmdldFJvd01vZGVsKCkpLnJvd3NCeUlkW2lkXTtcbiAgICAgIGlmICghcm93KSB7XG4gICAgICAgIHJvdyA9IHRhYmxlLmdldENvcmVSb3dNb2RlbCgpLnJvd3NCeUlkW2lkXTtcbiAgICAgICAgaWYgKCFyb3cpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBnZXRSb3cgY291bGQgbm90IGZpbmQgcm93IHdpdGggSUQ6ICR7aWR9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcm93O1xuICAgIH0sXG4gICAgX2dldERlZmF1bHRDb2x1bW5EZWY6IG1lbW8oKCkgPT4gW3RhYmxlLm9wdGlvbnMuZGVmYXVsdENvbHVtbl0sIGRlZmF1bHRDb2x1bW4gPT4ge1xuICAgICAgdmFyIF9kZWZhdWx0Q29sdW1uO1xuICAgICAgZGVmYXVsdENvbHVtbiA9IChfZGVmYXVsdENvbHVtbiA9IGRlZmF1bHRDb2x1bW4pICE9IG51bGwgPyBfZGVmYXVsdENvbHVtbiA6IHt9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGVhZGVyOiBwcm9wcyA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRDb2x1bW5EZWYgPSBwcm9wcy5oZWFkZXIuY29sdW1uLmNvbHVtbkRlZjtcbiAgICAgICAgICBpZiAocmVzb2x2ZWRDb2x1bW5EZWYuYWNjZXNzb3JLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENvbHVtbkRlZi5hY2Nlc3NvcktleTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc29sdmVkQ29sdW1uRGVmLmFjY2Vzc29yRm4pIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENvbHVtbkRlZi5pZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIGZvb3RlcjogcHJvcHMgPT4gcHJvcHMuaGVhZGVyLmNvbHVtbi5pZCxcbiAgICAgICAgY2VsbDogcHJvcHMgPT4ge1xuICAgICAgICAgIHZhciBfcHJvcHMkcmVuZGVyVmFsdWUkdG8sIF9wcm9wcyRyZW5kZXJWYWx1ZTtcbiAgICAgICAgICByZXR1cm4gKF9wcm9wcyRyZW5kZXJWYWx1ZSR0byA9IChfcHJvcHMkcmVuZGVyVmFsdWUgPSBwcm9wcy5yZW5kZXJWYWx1ZSgpKSA9PSBudWxsIHx8IF9wcm9wcyRyZW5kZXJWYWx1ZS50b1N0cmluZyA9PSBudWxsID8gdm9pZCAwIDogX3Byb3BzJHJlbmRlclZhbHVlLnRvU3RyaW5nKCkpICE9IG51bGwgPyBfcHJvcHMkcmVuZGVyVmFsdWUkdG8gOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICAuLi50YWJsZS5fZmVhdHVyZXMucmVkdWNlKChvYmosIGZlYXR1cmUpID0+IHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvYmosIGZlYXR1cmUuZ2V0RGVmYXVsdENvbHVtbkRlZiA9PSBudWxsID8gdm9pZCAwIDogZmVhdHVyZS5nZXREZWZhdWx0Q29sdW1uRGVmKCkpO1xuICAgICAgICB9LCB7fSksXG4gICAgICAgIC4uLmRlZmF1bHRDb2x1bW5cbiAgICAgIH07XG4gICAgfSwgZ2V0TWVtb09wdGlvbnMob3B0aW9ucywgJ2RlYnVnQ29sdW1ucycsICdfZ2V0RGVmYXVsdENvbHVtbkRlZicpKSxcbiAgICBfZ2V0Q29sdW1uRGVmczogKCkgPT4gdGFibGUub3B0aW9ucy5jb2x1bW5zLFxuICAgIGdldEFsbENvbHVtbnM6IG1lbW8oKCkgPT4gW3RhYmxlLl9nZXRDb2x1bW5EZWZzKCldLCBjb2x1bW5EZWZzID0+IHtcbiAgICAgIGNvbnN0IHJlY3Vyc2VDb2x1bW5zID0gZnVuY3Rpb24gKGNvbHVtbkRlZnMsIHBhcmVudCwgZGVwdGgpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSB2b2lkIDApIHtcbiAgICAgICAgICBkZXB0aCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZnMubWFwKGNvbHVtbkRlZiA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gY3JlYXRlQ29sdW1uKHRhYmxlLCBjb2x1bW5EZWYsIGRlcHRoLCBwYXJlbnQpO1xuICAgICAgICAgIGNvbnN0IGdyb3VwaW5nQ29sdW1uRGVmID0gY29sdW1uRGVmO1xuICAgICAgICAgIGNvbHVtbi5jb2x1bW5zID0gZ3JvdXBpbmdDb2x1bW5EZWYuY29sdW1ucyA/IHJlY3Vyc2VDb2x1bW5zKGdyb3VwaW5nQ29sdW1uRGVmLmNvbHVtbnMsIGNvbHVtbiwgZGVwdGggKyAxKSA6IFtdO1xuICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiByZWN1cnNlQ29sdW1ucyhjb2x1bW5EZWZzKTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyhvcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldEFsbENvbHVtbnMnKSksXG4gICAgZ2V0QWxsRmxhdENvbHVtbnM6IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbENvbHVtbnMoKV0sIGFsbENvbHVtbnMgPT4ge1xuICAgICAgcmV0dXJuIGFsbENvbHVtbnMuZmxhdE1hcChjb2x1bW4gPT4ge1xuICAgICAgICByZXR1cm4gY29sdW1uLmdldEZsYXRDb2x1bW5zKCk7XG4gICAgICB9KTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyhvcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldEFsbEZsYXRDb2x1bW5zJykpLFxuICAgIF9nZXRBbGxGbGF0Q29sdW1uc0J5SWQ6IG1lbW8oKCkgPT4gW3RhYmxlLmdldEFsbEZsYXRDb2x1bW5zKCldLCBmbGF0Q29sdW1ucyA9PiB7XG4gICAgICByZXR1cm4gZmxhdENvbHVtbnMucmVkdWNlKChhY2MsIGNvbHVtbikgPT4ge1xuICAgICAgICBhY2NbY29sdW1uLmlkXSA9IGNvbHVtbjtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgICB9LCBnZXRNZW1vT3B0aW9ucyhvcHRpb25zLCAnZGVidWdDb2x1bW5zJywgJ2dldEFsbEZsYXRDb2x1bW5zQnlJZCcpKSxcbiAgICBnZXRBbGxMZWFmQ29sdW1uczogbWVtbygoKSA9PiBbdGFibGUuZ2V0QWxsQ29sdW1ucygpLCB0YWJsZS5fZ2V0T3JkZXJDb2x1bW5zRm4oKV0sIChhbGxDb2x1bW5zLCBvcmRlckNvbHVtbnMpID0+IHtcbiAgICAgIGxldCBsZWFmQ29sdW1ucyA9IGFsbENvbHVtbnMuZmxhdE1hcChjb2x1bW4gPT4gY29sdW1uLmdldExlYWZDb2x1bW5zKCkpO1xuICAgICAgcmV0dXJuIG9yZGVyQ29sdW1ucyhsZWFmQ29sdW1ucyk7XG4gICAgfSwgZ2V0TWVtb09wdGlvbnMob3B0aW9ucywgJ2RlYnVnQ29sdW1ucycsICdnZXRBbGxMZWFmQ29sdW1ucycpKSxcbiAgICBnZXRDb2x1bW46IGNvbHVtbklkID0+IHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRhYmxlLl9nZXRBbGxGbGF0Q29sdW1uc0J5SWQoKVtjb2x1bW5JZF07XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhY29sdW1uKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtUYWJsZV0gQ29sdW1uIHdpdGggaWQgJyR7Y29sdW1uSWR9JyBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuICB9O1xuICBPYmplY3QuYXNzaWduKHRhYmxlLCBjb3JlSW5zdGFuY2UpO1xuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFibGUuX2ZlYXR1cmVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IGZlYXR1cmUgPSB0YWJsZS5fZmVhdHVyZXNbaW5kZXhdO1xuICAgIGZlYXR1cmUgPT0gbnVsbCB8fCBmZWF0dXJlLmNyZWF0ZVRhYmxlID09IG51bGwgfHwgZmVhdHVyZS5jcmVhdGVUYWJsZSh0YWJsZSk7XG4gIH1cbiAgcmV0dXJuIHRhYmxlO1xufVxuXG5mdW5jdGlvbiBnZXRDb3JlUm93TW9kZWwoKSB7XG4gIHJldHVybiB0YWJsZSA9PiBtZW1vKCgpID0+IFt0YWJsZS5vcHRpb25zLmRhdGFdLCBkYXRhID0+IHtcbiAgICBjb25zdCByb3dNb2RlbCA9IHtcbiAgICAgIHJvd3M6IFtdLFxuICAgICAgZmxhdFJvd3M6IFtdLFxuICAgICAgcm93c0J5SWQ6IHt9XG4gICAgfTtcbiAgICBjb25zdCBhY2Nlc3NSb3dzID0gZnVuY3Rpb24gKG9yaWdpbmFsUm93cywgZGVwdGgsIHBhcmVudFJvdykge1xuICAgICAgaWYgKGRlcHRoID09PSB2b2lkIDApIHtcbiAgICAgICAgZGVwdGggPSAwO1xuICAgICAgfVxuICAgICAgY29uc3Qgcm93cyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcmlnaW5hbFJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gVGhpcyBjb3VsZCBiZSBhbiBleHBlbnNpdmUgY2hlY2sgYXQgc2NhbGUsIHNvIHdlIHNob3VsZCBtb3ZlIGl0IHNvbWV3aGVyZSBlbHNlLCBidXQgd2hlcmU/XG4gICAgICAgIC8vIGlmICghaWQpIHtcbiAgICAgICAgLy8gICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKGBnZXRSb3dJZCBleHBlY3RlZCBhbiBJRCwgYnV0IGdvdCAke2lkfWApXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gTWFrZSB0aGUgcm93XG4gICAgICAgIGNvbnN0IHJvdyA9IGNyZWF0ZVJvdyh0YWJsZSwgdGFibGUuX2dldFJvd0lkKG9yaWdpbmFsUm93c1tpXSwgaSwgcGFyZW50Um93KSwgb3JpZ2luYWxSb3dzW2ldLCBpLCBkZXB0aCwgdW5kZWZpbmVkLCBwYXJlbnRSb3cgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcmVudFJvdy5pZCk7XG5cbiAgICAgICAgLy8gS2VlcCB0cmFjayBvZiBldmVyeSByb3cgaW4gYSBmbGF0IGFycmF5XG4gICAgICAgIHJvd01vZGVsLmZsYXRSb3dzLnB1c2gocm93KTtcbiAgICAgICAgLy8gQWxzbyBrZWVwIHRyYWNrIG9mIGV2ZXJ5IHJvdyBieSBpdHMgSURcbiAgICAgICAgcm93TW9kZWwucm93c0J5SWRbcm93LmlkXSA9IHJvdztcbiAgICAgICAgLy8gUHVzaCB0YWJsZSByb3cgaW50byBwYXJlbnRcbiAgICAgICAgcm93cy5wdXNoKHJvdyk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBvcmlnaW5hbCBzdWJyb3dzXG4gICAgICAgIGlmICh0YWJsZS5vcHRpb25zLmdldFN1YlJvd3MpIHtcbiAgICAgICAgICB2YXIgX3JvdyRvcmlnaW5hbFN1YlJvd3M7XG4gICAgICAgICAgcm93Lm9yaWdpbmFsU3ViUm93cyA9IHRhYmxlLm9wdGlvbnMuZ2V0U3ViUm93cyhvcmlnaW5hbFJvd3NbaV0sIGkpO1xuXG4gICAgICAgICAgLy8gVGhlbiByZWN1cnNpdmVseSBhY2Nlc3MgdGhlbVxuICAgICAgICAgIGlmICgoX3JvdyRvcmlnaW5hbFN1YlJvd3MgPSByb3cub3JpZ2luYWxTdWJSb3dzKSAhPSBudWxsICYmIF9yb3ckb3JpZ2luYWxTdWJSb3dzLmxlbmd0aCkge1xuICAgICAgICAgICAgcm93LnN1YlJvd3MgPSBhY2Nlc3NSb3dzKHJvdy5vcmlnaW5hbFN1YlJvd3MsIGRlcHRoICsgMSwgcm93KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByb3dzO1xuICAgIH07XG4gICAgcm93TW9kZWwucm93cyA9IGFjY2Vzc1Jvd3MoZGF0YSk7XG4gICAgcmV0dXJuIHJvd01vZGVsO1xuICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRSb3dNb2RlbCcsICgpID0+IHRhYmxlLl9hdXRvUmVzZXRQYWdlSW5kZXgoKSkpO1xufVxuXG5mdW5jdGlvbiBnZXRFeHBhbmRlZFJvd01vZGVsKCkge1xuICByZXR1cm4gdGFibGUgPT4gbWVtbygoKSA9PiBbdGFibGUuZ2V0U3RhdGUoKS5leHBhbmRlZCwgdGFibGUuZ2V0UHJlRXhwYW5kZWRSb3dNb2RlbCgpLCB0YWJsZS5vcHRpb25zLnBhZ2luYXRlRXhwYW5kZWRSb3dzXSwgKGV4cGFuZGVkLCByb3dNb2RlbCwgcGFnaW5hdGVFeHBhbmRlZFJvd3MpID0+IHtcbiAgICBpZiAoIXJvd01vZGVsLnJvd3MubGVuZ3RoIHx8IGV4cGFuZGVkICE9PSB0cnVlICYmICFPYmplY3Qua2V5cyhleHBhbmRlZCAhPSBudWxsID8gZXhwYW5kZWQgOiB7fSkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcm93TW9kZWw7XG4gICAgfVxuICAgIGlmICghcGFnaW5hdGVFeHBhbmRlZFJvd3MpIHtcbiAgICAgIC8vIE9ubHkgZXhwYW5kIHJvd3MgYXQgdGhpcyBwb2ludCBpZiB0aGV5IGFyZSBiZWluZyBwYWdpbmF0ZWRcbiAgICAgIHJldHVybiByb3dNb2RlbDtcbiAgICB9XG4gICAgcmV0dXJuIGV4cGFuZFJvd3Mocm93TW9kZWwpO1xuICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRFeHBhbmRlZFJvd01vZGVsJykpO1xufVxuZnVuY3Rpb24gZXhwYW5kUm93cyhyb3dNb2RlbCkge1xuICBjb25zdCBleHBhbmRlZFJvd3MgPSBbXTtcbiAgY29uc3QgaGFuZGxlUm93ID0gcm93ID0+IHtcbiAgICB2YXIgX3JvdyRzdWJSb3dzO1xuICAgIGV4cGFuZGVkUm93cy5wdXNoKHJvdyk7XG4gICAgaWYgKChfcm93JHN1YlJvd3MgPSByb3cuc3ViUm93cykgIT0gbnVsbCAmJiBfcm93JHN1YlJvd3MubGVuZ3RoICYmIHJvdy5nZXRJc0V4cGFuZGVkKCkpIHtcbiAgICAgIHJvdy5zdWJSb3dzLmZvckVhY2goaGFuZGxlUm93KTtcbiAgICB9XG4gIH07XG4gIHJvd01vZGVsLnJvd3MuZm9yRWFjaChoYW5kbGVSb3cpO1xuICByZXR1cm4ge1xuICAgIHJvd3M6IGV4cGFuZGVkUm93cyxcbiAgICBmbGF0Um93czogcm93TW9kZWwuZmxhdFJvd3MsXG4gICAgcm93c0J5SWQ6IHJvd01vZGVsLnJvd3NCeUlkXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEZhY2V0ZWRNaW5NYXhWYWx1ZXMoKSB7XG4gIHJldHVybiAodGFibGUsIGNvbHVtbklkKSA9PiBtZW1vKCgpID0+IHtcbiAgICB2YXIgX3RhYmxlJGdldENvbHVtbjtcbiAgICByZXR1cm4gWyhfdGFibGUkZ2V0Q29sdW1uID0gdGFibGUuZ2V0Q29sdW1uKGNvbHVtbklkKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRnZXRDb2x1bW4uZ2V0RmFjZXRlZFJvd01vZGVsKCldO1xuICB9LCBmYWNldGVkUm93TW9kZWwgPT4ge1xuICAgIGlmICghZmFjZXRlZFJvd01vZGVsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHVuaXF1ZVZhbHVlcyA9IGZhY2V0ZWRSb3dNb2RlbC5mbGF0Um93cy5mbGF0TWFwKGZsYXRSb3cgPT4ge1xuICAgICAgdmFyIF9mbGF0Um93JGdldFVuaXF1ZVZhbDtcbiAgICAgIHJldHVybiAoX2ZsYXRSb3ckZ2V0VW5pcXVlVmFsID0gZmxhdFJvdy5nZXRVbmlxdWVWYWx1ZXMoY29sdW1uSWQpKSAhPSBudWxsID8gX2ZsYXRSb3ckZ2V0VW5pcXVlVmFsIDogW107XG4gICAgfSkubWFwKE51bWJlcikuZmlsdGVyKHZhbHVlID0+ICFOdW1iZXIuaXNOYU4odmFsdWUpKTtcbiAgICBpZiAoIXVuaXF1ZVZhbHVlcy5sZW5ndGgpIHJldHVybjtcbiAgICBsZXQgZmFjZXRlZE1pblZhbHVlID0gdW5pcXVlVmFsdWVzWzBdO1xuICAgIGxldCBmYWNldGVkTWF4VmFsdWUgPSB1bmlxdWVWYWx1ZXNbdW5pcXVlVmFsdWVzLmxlbmd0aCAtIDFdO1xuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdW5pcXVlVmFsdWVzKSB7XG4gICAgICBpZiAodmFsdWUgPCBmYWNldGVkTWluVmFsdWUpIGZhY2V0ZWRNaW5WYWx1ZSA9IHZhbHVlO2Vsc2UgaWYgKHZhbHVlID4gZmFjZXRlZE1heFZhbHVlKSBmYWNldGVkTWF4VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIFtmYWNldGVkTWluVmFsdWUsIGZhY2V0ZWRNYXhWYWx1ZV07XG4gIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1RhYmxlJywgJ2dldEZhY2V0ZWRNaW5NYXhWYWx1ZXMnKSk7XG59XG5cbmZ1bmN0aW9uIGZpbHRlclJvd3Mocm93cywgZmlsdGVyUm93SW1wbCwgdGFibGUpIHtcbiAgaWYgKHRhYmxlLm9wdGlvbnMuZmlsdGVyRnJvbUxlYWZSb3dzKSB7XG4gICAgcmV0dXJuIGZpbHRlclJvd01vZGVsRnJvbUxlYWZzKHJvd3MsIGZpbHRlclJvd0ltcGwsIHRhYmxlKTtcbiAgfVxuICByZXR1cm4gZmlsdGVyUm93TW9kZWxGcm9tUm9vdChyb3dzLCBmaWx0ZXJSb3dJbXBsLCB0YWJsZSk7XG59XG5mdW5jdGlvbiBmaWx0ZXJSb3dNb2RlbEZyb21MZWFmcyhyb3dzVG9GaWx0ZXIsIGZpbHRlclJvdywgdGFibGUpIHtcbiAgdmFyIF90YWJsZSRvcHRpb25zJG1heExlYTtcbiAgY29uc3QgbmV3RmlsdGVyZWRGbGF0Um93cyA9IFtdO1xuICBjb25zdCBuZXdGaWx0ZXJlZFJvd3NCeUlkID0ge307XG4gIGNvbnN0IG1heERlcHRoID0gKF90YWJsZSRvcHRpb25zJG1heExlYSA9IHRhYmxlLm9wdGlvbnMubWF4TGVhZlJvd0ZpbHRlckRlcHRoKSAhPSBudWxsID8gX3RhYmxlJG9wdGlvbnMkbWF4TGVhIDogMTAwO1xuICBjb25zdCByZWN1cnNlRmlsdGVyUm93cyA9IGZ1bmN0aW9uIChyb3dzVG9GaWx0ZXIsIGRlcHRoKSB7XG4gICAgaWYgKGRlcHRoID09PSB2b2lkIDApIHtcbiAgICAgIGRlcHRoID0gMDtcbiAgICB9XG4gICAgY29uc3Qgcm93cyA9IFtdO1xuXG4gICAgLy8gRmlsdGVyIGZyb20gY2hpbGRyZW4gdXAgZmlyc3RcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3NUb0ZpbHRlci5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIF9yb3ckc3ViUm93cztcbiAgICAgIGxldCByb3cgPSByb3dzVG9GaWx0ZXJbaV07XG4gICAgICBjb25zdCBuZXdSb3cgPSBjcmVhdGVSb3codGFibGUsIHJvdy5pZCwgcm93Lm9yaWdpbmFsLCByb3cuaW5kZXgsIHJvdy5kZXB0aCwgdW5kZWZpbmVkLCByb3cucGFyZW50SWQpO1xuICAgICAgbmV3Um93LmNvbHVtbkZpbHRlcnMgPSByb3cuY29sdW1uRmlsdGVycztcbiAgICAgIGlmICgoX3JvdyRzdWJSb3dzID0gcm93LnN1YlJvd3MpICE9IG51bGwgJiYgX3JvdyRzdWJSb3dzLmxlbmd0aCAmJiBkZXB0aCA8IG1heERlcHRoKSB7XG4gICAgICAgIG5ld1Jvdy5zdWJSb3dzID0gcmVjdXJzZUZpbHRlclJvd3Mocm93LnN1YlJvd3MsIGRlcHRoICsgMSk7XG4gICAgICAgIHJvdyA9IG5ld1JvdztcbiAgICAgICAgaWYgKGZpbHRlclJvdyhyb3cpICYmICFuZXdSb3cuc3ViUm93cy5sZW5ndGgpIHtcbiAgICAgICAgICByb3dzLnB1c2gocm93KTtcbiAgICAgICAgICBuZXdGaWx0ZXJlZFJvd3NCeUlkW3Jvdy5pZF0gPSByb3c7XG4gICAgICAgICAgbmV3RmlsdGVyZWRGbGF0Um93cy5wdXNoKHJvdyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlclJvdyhyb3cpIHx8IG5ld1Jvdy5zdWJSb3dzLmxlbmd0aCkge1xuICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgICAgICAgIG5ld0ZpbHRlcmVkUm93c0J5SWRbcm93LmlkXSA9IHJvdztcbiAgICAgICAgICBuZXdGaWx0ZXJlZEZsYXRSb3dzLnB1c2gocm93KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm93ID0gbmV3Um93O1xuICAgICAgICBpZiAoZmlsdGVyUm93KHJvdykpIHtcbiAgICAgICAgICByb3dzLnB1c2gocm93KTtcbiAgICAgICAgICBuZXdGaWx0ZXJlZFJvd3NCeUlkW3Jvdy5pZF0gPSByb3c7XG4gICAgICAgICAgbmV3RmlsdGVyZWRGbGF0Um93cy5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG4gIH07XG4gIHJldHVybiB7XG4gICAgcm93czogcmVjdXJzZUZpbHRlclJvd3Mocm93c1RvRmlsdGVyKSxcbiAgICBmbGF0Um93czogbmV3RmlsdGVyZWRGbGF0Um93cyxcbiAgICByb3dzQnlJZDogbmV3RmlsdGVyZWRSb3dzQnlJZFxuICB9O1xufVxuZnVuY3Rpb24gZmlsdGVyUm93TW9kZWxGcm9tUm9vdChyb3dzVG9GaWx0ZXIsIGZpbHRlclJvdywgdGFibGUpIHtcbiAgdmFyIF90YWJsZSRvcHRpb25zJG1heExlYTI7XG4gIGNvbnN0IG5ld0ZpbHRlcmVkRmxhdFJvd3MgPSBbXTtcbiAgY29uc3QgbmV3RmlsdGVyZWRSb3dzQnlJZCA9IHt9O1xuICBjb25zdCBtYXhEZXB0aCA9IChfdGFibGUkb3B0aW9ucyRtYXhMZWEyID0gdGFibGUub3B0aW9ucy5tYXhMZWFmUm93RmlsdGVyRGVwdGgpICE9IG51bGwgPyBfdGFibGUkb3B0aW9ucyRtYXhMZWEyIDogMTAwO1xuXG4gIC8vIEZpbHRlcnMgdG9wIGxldmVsIGFuZCBuZXN0ZWQgcm93c1xuICBjb25zdCByZWN1cnNlRmlsdGVyUm93cyA9IGZ1bmN0aW9uIChyb3dzVG9GaWx0ZXIsIGRlcHRoKSB7XG4gICAgaWYgKGRlcHRoID09PSB2b2lkIDApIHtcbiAgICAgIGRlcHRoID0gMDtcbiAgICB9XG4gICAgLy8gRmlsdGVyIGZyb20gcGFyZW50cyBkb3dud2FyZCBmaXJzdFxuXG4gICAgY29uc3Qgcm93cyA9IFtdO1xuXG4gICAgLy8gQXBwbHkgdGhlIGZpbHRlciB0byBhbnkgc3ViUm93c1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93c1RvRmlsdGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgcm93ID0gcm93c1RvRmlsdGVyW2ldO1xuICAgICAgY29uc3QgcGFzcyA9IGZpbHRlclJvdyhyb3cpO1xuICAgICAgaWYgKHBhc3MpIHtcbiAgICAgICAgdmFyIF9yb3ckc3ViUm93czI7XG4gICAgICAgIGlmICgoX3JvdyRzdWJSb3dzMiA9IHJvdy5zdWJSb3dzKSAhPSBudWxsICYmIF9yb3ckc3ViUm93czIubGVuZ3RoICYmIGRlcHRoIDwgbWF4RGVwdGgpIHtcbiAgICAgICAgICBjb25zdCBuZXdSb3cgPSBjcmVhdGVSb3codGFibGUsIHJvdy5pZCwgcm93Lm9yaWdpbmFsLCByb3cuaW5kZXgsIHJvdy5kZXB0aCwgdW5kZWZpbmVkLCByb3cucGFyZW50SWQpO1xuICAgICAgICAgIG5ld1Jvdy5zdWJSb3dzID0gcmVjdXJzZUZpbHRlclJvd3Mocm93LnN1YlJvd3MsIGRlcHRoICsgMSk7XG4gICAgICAgICAgcm93ID0gbmV3Um93O1xuICAgICAgICB9XG4gICAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgICAgICBuZXdGaWx0ZXJlZEZsYXRSb3dzLnB1c2gocm93KTtcbiAgICAgICAgbmV3RmlsdGVyZWRSb3dzQnlJZFtyb3cuaWRdID0gcm93O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcm93cztcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICByb3dzOiByZWN1cnNlRmlsdGVyUm93cyhyb3dzVG9GaWx0ZXIpLFxuICAgIGZsYXRSb3dzOiBuZXdGaWx0ZXJlZEZsYXRSb3dzLFxuICAgIHJvd3NCeUlkOiBuZXdGaWx0ZXJlZFJvd3NCeUlkXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEZhY2V0ZWRSb3dNb2RlbCgpIHtcbiAgcmV0dXJuICh0YWJsZSwgY29sdW1uSWQpID0+IG1lbW8oKCkgPT4gW3RhYmxlLmdldFByZUZpbHRlcmVkUm93TW9kZWwoKSwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5GaWx0ZXJzLCB0YWJsZS5nZXRTdGF0ZSgpLmdsb2JhbEZpbHRlciwgdGFibGUuZ2V0RmlsdGVyZWRSb3dNb2RlbCgpXSwgKHByZVJvd01vZGVsLCBjb2x1bW5GaWx0ZXJzLCBnbG9iYWxGaWx0ZXIpID0+IHtcbiAgICBpZiAoIXByZVJvd01vZGVsLnJvd3MubGVuZ3RoIHx8ICEoY29sdW1uRmlsdGVycyAhPSBudWxsICYmIGNvbHVtbkZpbHRlcnMubGVuZ3RoKSAmJiAhZ2xvYmFsRmlsdGVyKSB7XG4gICAgICByZXR1cm4gcHJlUm93TW9kZWw7XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlcmFibGVJZHMgPSBbLi4uY29sdW1uRmlsdGVycy5tYXAoZCA9PiBkLmlkKS5maWx0ZXIoZCA9PiBkICE9PSBjb2x1bW5JZCksIGdsb2JhbEZpbHRlciA/ICdfX2dsb2JhbF9fJyA6IHVuZGVmaW5lZF0uZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IGZpbHRlclJvd3NJbXBsID0gcm93ID0+IHtcbiAgICAgIC8vIEhvcml6b250YWxseSBmaWx0ZXIgcm93cyB0aHJvdWdoIGVhY2ggY29sdW1uXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmFibGVJZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHJvdy5jb2x1bW5GaWx0ZXJzW2ZpbHRlcmFibGVJZHNbaV1dID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4gZmlsdGVyUm93cyhwcmVSb3dNb2RlbC5yb3dzLCBmaWx0ZXJSb3dzSW1wbCwgdGFibGUpO1xuICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRGYWNldGVkUm93TW9kZWwnKSk7XG59XG5cbmZ1bmN0aW9uIGdldEZhY2V0ZWRVbmlxdWVWYWx1ZXMoKSB7XG4gIHJldHVybiAodGFibGUsIGNvbHVtbklkKSA9PiBtZW1vKCgpID0+IHtcbiAgICB2YXIgX3RhYmxlJGdldENvbHVtbjtcbiAgICByZXR1cm4gWyhfdGFibGUkZ2V0Q29sdW1uID0gdGFibGUuZ2V0Q29sdW1uKGNvbHVtbklkKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWJsZSRnZXRDb2x1bW4uZ2V0RmFjZXRlZFJvd01vZGVsKCldO1xuICB9LCBmYWNldGVkUm93TW9kZWwgPT4ge1xuICAgIGlmICghZmFjZXRlZFJvd01vZGVsKSByZXR1cm4gbmV3IE1hcCgpO1xuICAgIGxldCBmYWNldGVkVW5pcXVlVmFsdWVzID0gbmV3IE1hcCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmFjZXRlZFJvd01vZGVsLmZsYXRSb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBmYWNldGVkUm93TW9kZWwuZmxhdFJvd3NbaV0uZ2V0VW5pcXVlVmFsdWVzKGNvbHVtbklkKTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2pdO1xuICAgICAgICBpZiAoZmFjZXRlZFVuaXF1ZVZhbHVlcy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgdmFyIF9mYWNldGVkVW5pcXVlVmFsdWVzJDtcbiAgICAgICAgICBmYWNldGVkVW5pcXVlVmFsdWVzLnNldCh2YWx1ZSwgKChfZmFjZXRlZFVuaXF1ZVZhbHVlcyQgPSBmYWNldGVkVW5pcXVlVmFsdWVzLmdldCh2YWx1ZSkpICE9IG51bGwgPyBfZmFjZXRlZFVuaXF1ZVZhbHVlcyQgOiAwKSArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZhY2V0ZWRVbmlxdWVWYWx1ZXMuc2V0KHZhbHVlLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFjZXRlZFVuaXF1ZVZhbHVlcztcbiAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnVGFibGUnLCBgZ2V0RmFjZXRlZFVuaXF1ZVZhbHVlc18ke2NvbHVtbklkfWApKTtcbn1cblxuZnVuY3Rpb24gZ2V0RmlsdGVyZWRSb3dNb2RlbCgpIHtcbiAgcmV0dXJuIHRhYmxlID0+IG1lbW8oKCkgPT4gW3RhYmxlLmdldFByZUZpbHRlcmVkUm93TW9kZWwoKSwgdGFibGUuZ2V0U3RhdGUoKS5jb2x1bW5GaWx0ZXJzLCB0YWJsZS5nZXRTdGF0ZSgpLmdsb2JhbEZpbHRlcl0sIChyb3dNb2RlbCwgY29sdW1uRmlsdGVycywgZ2xvYmFsRmlsdGVyKSA9PiB7XG4gICAgaWYgKCFyb3dNb2RlbC5yb3dzLmxlbmd0aCB8fCAhKGNvbHVtbkZpbHRlcnMgIT0gbnVsbCAmJiBjb2x1bW5GaWx0ZXJzLmxlbmd0aCkgJiYgIWdsb2JhbEZpbHRlcikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dNb2RlbC5mbGF0Um93cy5sZW5ndGg7IGkrKykge1xuICAgICAgICByb3dNb2RlbC5mbGF0Um93c1tpXS5jb2x1bW5GaWx0ZXJzID0ge307XG4gICAgICAgIHJvd01vZGVsLmZsYXRSb3dzW2ldLmNvbHVtbkZpbHRlcnNNZXRhID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gcm93TW9kZWw7XG4gICAgfVxuICAgIGNvbnN0IHJlc29sdmVkQ29sdW1uRmlsdGVycyA9IFtdO1xuICAgIGNvbnN0IHJlc29sdmVkR2xvYmFsRmlsdGVycyA9IFtdO1xuICAgIChjb2x1bW5GaWx0ZXJzICE9IG51bGwgPyBjb2x1bW5GaWx0ZXJzIDogW10pLmZvckVhY2goZCA9PiB7XG4gICAgICB2YXIgX2ZpbHRlckZuJHJlc29sdmVGaWx0O1xuICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuZ2V0Q29sdW1uKGQuaWQpO1xuICAgICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsdGVyRm4gPSBjb2x1bW4uZ2V0RmlsdGVyRm4oKTtcbiAgICAgIGlmICghZmlsdGVyRm4pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYENvdWxkIG5vdCBmaW5kIGEgdmFsaWQgJ2NvbHVtbi5maWx0ZXJGbicgZm9yIGNvbHVtbiB3aXRoIHRoZSBJRDogJHtjb2x1bW4uaWR9LmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkQ29sdW1uRmlsdGVycy5wdXNoKHtcbiAgICAgICAgaWQ6IGQuaWQsXG4gICAgICAgIGZpbHRlckZuLFxuICAgICAgICByZXNvbHZlZFZhbHVlOiAoX2ZpbHRlckZuJHJlc29sdmVGaWx0ID0gZmlsdGVyRm4ucmVzb2x2ZUZpbHRlclZhbHVlID09IG51bGwgPyB2b2lkIDAgOiBmaWx0ZXJGbi5yZXNvbHZlRmlsdGVyVmFsdWUoZC52YWx1ZSkpICE9IG51bGwgPyBfZmlsdGVyRm4kcmVzb2x2ZUZpbHQgOiBkLnZhbHVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBmaWx0ZXJhYmxlSWRzID0gKGNvbHVtbkZpbHRlcnMgIT0gbnVsbCA/IGNvbHVtbkZpbHRlcnMgOiBbXSkubWFwKGQgPT4gZC5pZCk7XG4gICAgY29uc3QgZ2xvYmFsRmlsdGVyRm4gPSB0YWJsZS5nZXRHbG9iYWxGaWx0ZXJGbigpO1xuICAgIGNvbnN0IGdsb2JhbGx5RmlsdGVyYWJsZUNvbHVtbnMgPSB0YWJsZS5nZXRBbGxMZWFmQ29sdW1ucygpLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLmdldENhbkdsb2JhbEZpbHRlcigpKTtcbiAgICBpZiAoZ2xvYmFsRmlsdGVyICYmIGdsb2JhbEZpbHRlckZuICYmIGdsb2JhbGx5RmlsdGVyYWJsZUNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXJhYmxlSWRzLnB1c2goJ19fZ2xvYmFsX18nKTtcbiAgICAgIGdsb2JhbGx5RmlsdGVyYWJsZUNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICB2YXIgX2dsb2JhbEZpbHRlckZuJHJlc29sO1xuICAgICAgICByZXNvbHZlZEdsb2JhbEZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgaWQ6IGNvbHVtbi5pZCxcbiAgICAgICAgICBmaWx0ZXJGbjogZ2xvYmFsRmlsdGVyRm4sXG4gICAgICAgICAgcmVzb2x2ZWRWYWx1ZTogKF9nbG9iYWxGaWx0ZXJGbiRyZXNvbCA9IGdsb2JhbEZpbHRlckZuLnJlc29sdmVGaWx0ZXJWYWx1ZSA9PSBudWxsID8gdm9pZCAwIDogZ2xvYmFsRmlsdGVyRm4ucmVzb2x2ZUZpbHRlclZhbHVlKGdsb2JhbEZpbHRlcikpICE9IG51bGwgPyBfZ2xvYmFsRmlsdGVyRm4kcmVzb2wgOiBnbG9iYWxGaWx0ZXJcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRDb2x1bW5GaWx0ZXI7XG4gICAgbGV0IGN1cnJlbnRHbG9iYWxGaWx0ZXI7XG5cbiAgICAvLyBGbGFnIHRoZSBwcmVmaWx0ZXJlZCByb3cgbW9kZWwgd2l0aCBlYWNoIGZpbHRlciBzdGF0ZVxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgcm93TW9kZWwuZmxhdFJvd3MubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHJvdyA9IHJvd01vZGVsLmZsYXRSb3dzW2pdO1xuICAgICAgcm93LmNvbHVtbkZpbHRlcnMgPSB7fTtcbiAgICAgIGlmIChyZXNvbHZlZENvbHVtbkZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzb2x2ZWRDb2x1bW5GaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY3VycmVudENvbHVtbkZpbHRlciA9IHJlc29sdmVkQ29sdW1uRmlsdGVyc1tpXTtcbiAgICAgICAgICBjb25zdCBpZCA9IGN1cnJlbnRDb2x1bW5GaWx0ZXIuaWQ7XG5cbiAgICAgICAgICAvLyBUYWcgdGhlIHJvdyB3aXRoIHRoZSBjb2x1bW4gZmlsdGVyIHN0YXRlXG4gICAgICAgICAgcm93LmNvbHVtbkZpbHRlcnNbaWRdID0gY3VycmVudENvbHVtbkZpbHRlci5maWx0ZXJGbihyb3csIGlkLCBjdXJyZW50Q29sdW1uRmlsdGVyLnJlc29sdmVkVmFsdWUsIGZpbHRlck1ldGEgPT4ge1xuICAgICAgICAgICAgcm93LmNvbHVtbkZpbHRlcnNNZXRhW2lkXSA9IGZpbHRlck1ldGE7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChyZXNvbHZlZEdsb2JhbEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzb2x2ZWRHbG9iYWxGaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY3VycmVudEdsb2JhbEZpbHRlciA9IHJlc29sdmVkR2xvYmFsRmlsdGVyc1tpXTtcbiAgICAgICAgICBjb25zdCBpZCA9IGN1cnJlbnRHbG9iYWxGaWx0ZXIuaWQ7XG4gICAgICAgICAgLy8gVGFnIHRoZSByb3cgd2l0aCB0aGUgZmlyc3QgdHJ1dGh5IGdsb2JhbCBmaWx0ZXIgc3RhdGVcbiAgICAgICAgICBpZiAoY3VycmVudEdsb2JhbEZpbHRlci5maWx0ZXJGbihyb3csIGlkLCBjdXJyZW50R2xvYmFsRmlsdGVyLnJlc29sdmVkVmFsdWUsIGZpbHRlck1ldGEgPT4ge1xuICAgICAgICAgICAgcm93LmNvbHVtbkZpbHRlcnNNZXRhW2lkXSA9IGZpbHRlck1ldGE7XG4gICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgIHJvdy5jb2x1bW5GaWx0ZXJzLl9fZ2xvYmFsX18gPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyb3cuY29sdW1uRmlsdGVycy5fX2dsb2JhbF9fICE9PSB0cnVlKSB7XG4gICAgICAgICAgcm93LmNvbHVtbkZpbHRlcnMuX19nbG9iYWxfXyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlclJvd3NJbXBsID0gcm93ID0+IHtcbiAgICAgIC8vIEhvcml6b250YWxseSBmaWx0ZXIgcm93cyB0aHJvdWdoIGVhY2ggY29sdW1uXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmFibGVJZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHJvdy5jb2x1bW5GaWx0ZXJzW2ZpbHRlcmFibGVJZHNbaV1dID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIC8vIEZpbHRlciBmaW5hbCByb3dzIHVzaW5nIGFsbCBvZiB0aGUgYWN0aXZlIGZpbHRlcnNcbiAgICByZXR1cm4gZmlsdGVyUm93cyhyb3dNb2RlbC5yb3dzLCBmaWx0ZXJSb3dzSW1wbCwgdGFibGUpO1xuICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRGaWx0ZXJlZFJvd01vZGVsJywgKCkgPT4gdGFibGUuX2F1dG9SZXNldFBhZ2VJbmRleCgpKSk7XG59XG5cbmZ1bmN0aW9uIGdldEdyb3VwZWRSb3dNb2RlbCgpIHtcbiAgcmV0dXJuIHRhYmxlID0+IG1lbW8oKCkgPT4gW3RhYmxlLmdldFN0YXRlKCkuZ3JvdXBpbmcsIHRhYmxlLmdldFByZUdyb3VwZWRSb3dNb2RlbCgpXSwgKGdyb3VwaW5nLCByb3dNb2RlbCkgPT4ge1xuICAgIGlmICghcm93TW9kZWwucm93cy5sZW5ndGggfHwgIWdyb3VwaW5nLmxlbmd0aCkge1xuICAgICAgcm93TW9kZWwucm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgIHJvdy5kZXB0aCA9IDA7XG4gICAgICAgIHJvdy5wYXJlbnRJZCA9IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJvd01vZGVsO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciB0aGUgZ3JvdXBpbmcgbGlzdCBkb3duIHRvIGNvbHVtbnMgdGhhdCBleGlzdFxuICAgIGNvbnN0IGV4aXN0aW5nR3JvdXBpbmcgPSBncm91cGluZy5maWx0ZXIoY29sdW1uSWQgPT4gdGFibGUuZ2V0Q29sdW1uKGNvbHVtbklkKSk7XG4gICAgY29uc3QgZ3JvdXBlZEZsYXRSb3dzID0gW107XG4gICAgY29uc3QgZ3JvdXBlZFJvd3NCeUlkID0ge307XG4gICAgLy8gY29uc3Qgb25seUdyb3VwZWRGbGF0Um93czogUm93W10gPSBbXTtcbiAgICAvLyBjb25zdCBvbmx5R3JvdXBlZFJvd3NCeUlkOiBSZWNvcmQ8Um93SWQsIFJvdz4gPSB7fTtcbiAgICAvLyBjb25zdCBub25Hcm91cGVkRmxhdFJvd3M6IFJvd1tdID0gW107XG4gICAgLy8gY29uc3Qgbm9uR3JvdXBlZFJvd3NCeUlkOiBSZWNvcmQ8Um93SWQsIFJvdz4gPSB7fTtcblxuICAgIC8vIFJlY3Vyc2l2ZWx5IGdyb3VwIHRoZSBkYXRhXG4gICAgY29uc3QgZ3JvdXBVcFJlY3Vyc2l2ZWx5ID0gZnVuY3Rpb24gKHJvd3MsIGRlcHRoLCBwYXJlbnRJZCkge1xuICAgICAgaWYgKGRlcHRoID09PSB2b2lkIDApIHtcbiAgICAgICAgZGVwdGggPSAwO1xuICAgICAgfVxuICAgICAgLy8gR3JvdXBpbmcgZGVwdGggaGFzIGJlZW4gYmVlbiBtZXRcbiAgICAgIC8vIFN0b3AgZ3JvdXBpbmcgYW5kIHNpbXBseSByZXdyaXRlIHRoZCBkZXB0aCBhbmQgcm93IHJlbGF0aW9uc2hpcHNcbiAgICAgIGlmIChkZXB0aCA+PSBleGlzdGluZ0dyb3VwaW5nLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcm93cy5tYXAocm93ID0+IHtcbiAgICAgICAgICByb3cuZGVwdGggPSBkZXB0aDtcbiAgICAgICAgICBncm91cGVkRmxhdFJvd3MucHVzaChyb3cpO1xuICAgICAgICAgIGdyb3VwZWRSb3dzQnlJZFtyb3cuaWRdID0gcm93O1xuICAgICAgICAgIGlmIChyb3cuc3ViUm93cykge1xuICAgICAgICAgICAgcm93LnN1YlJvd3MgPSBncm91cFVwUmVjdXJzaXZlbHkocm93LnN1YlJvd3MsIGRlcHRoICsgMSwgcm93LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBjb2x1bW5JZCA9IGV4aXN0aW5nR3JvdXBpbmdbZGVwdGhdO1xuXG4gICAgICAvLyBHcm91cCB0aGUgcm93cyB0b2dldGhlciBmb3IgdGhpcyBsZXZlbFxuICAgICAgY29uc3Qgcm93R3JvdXBzTWFwID0gZ3JvdXBCeShyb3dzLCBjb2x1bW5JZCk7XG5cbiAgICAgIC8vIFBlcmZvcm0gYWdncmVnYXRpb25zIGZvciBlYWNoIGdyb3VwXG4gICAgICBjb25zdCBhZ2dyZWdhdGVkR3JvdXBlZFJvd3MgPSBBcnJheS5mcm9tKHJvd0dyb3Vwc01hcC5lbnRyaWVzKCkpLm1hcCgoX3JlZiwgaW5kZXgpID0+IHtcbiAgICAgICAgbGV0IFtncm91cGluZ1ZhbHVlLCBncm91cGVkUm93c10gPSBfcmVmO1xuICAgICAgICBsZXQgaWQgPSBgJHtjb2x1bW5JZH06JHtncm91cGluZ1ZhbHVlfWA7XG4gICAgICAgIGlkID0gcGFyZW50SWQgPyBgJHtwYXJlbnRJZH0+JHtpZH1gIDogaWQ7XG5cbiAgICAgICAgLy8gRmlyc3QsIFJlY3Vyc2UgdG8gZ3JvdXAgc3ViIHJvd3MgYmVmb3JlIGFnZ3JlZ2F0aW9uXG4gICAgICAgIGNvbnN0IHN1YlJvd3MgPSBncm91cFVwUmVjdXJzaXZlbHkoZ3JvdXBlZFJvd3MsIGRlcHRoICsgMSwgaWQpO1xuICAgICAgICBzdWJSb3dzLmZvckVhY2goc3ViUm93ID0+IHtcbiAgICAgICAgICBzdWJSb3cucGFyZW50SWQgPSBpZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRmxhdHRlbiB0aGUgbGVhZiByb3dzIG9mIHRoZSByb3dzIGluIHRoaXMgZ3JvdXBcbiAgICAgICAgY29uc3QgbGVhZlJvd3MgPSBkZXB0aCA/IGZsYXR0ZW5CeShncm91cGVkUm93cywgcm93ID0+IHJvdy5zdWJSb3dzKSA6IGdyb3VwZWRSb3dzO1xuICAgICAgICBjb25zdCByb3cgPSBjcmVhdGVSb3codGFibGUsIGlkLCBsZWFmUm93c1swXS5vcmlnaW5hbCwgaW5kZXgsIGRlcHRoLCB1bmRlZmluZWQsIHBhcmVudElkKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyb3csIHtcbiAgICAgICAgICBncm91cGluZ0NvbHVtbklkOiBjb2x1bW5JZCxcbiAgICAgICAgICBncm91cGluZ1ZhbHVlLFxuICAgICAgICAgIHN1YlJvd3MsXG4gICAgICAgICAgbGVhZlJvd3MsXG4gICAgICAgICAgZ2V0VmFsdWU6IGNvbHVtbklkID0+IHtcbiAgICAgICAgICAgIC8vIERvbid0IGFnZ3JlZ2F0ZSBjb2x1bW5zIHRoYXQgYXJlIGluIHRoZSBncm91cGluZ1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nR3JvdXBpbmcuaW5jbHVkZXMoY29sdW1uSWQpKSB7XG4gICAgICAgICAgICAgIGlmIChyb3cuX3ZhbHVlc0NhY2hlLmhhc093blByb3BlcnR5KGNvbHVtbklkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByb3cuX3ZhbHVlc0NhY2hlW2NvbHVtbklkXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoZ3JvdXBlZFJvd3NbMF0pIHtcbiAgICAgICAgICAgICAgICB2YXIgX2dyb3VwZWRSb3dzJDAkZ2V0VmFsO1xuICAgICAgICAgICAgICAgIHJvdy5fdmFsdWVzQ2FjaGVbY29sdW1uSWRdID0gKF9ncm91cGVkUm93cyQwJGdldFZhbCA9IGdyb3VwZWRSb3dzWzBdLmdldFZhbHVlKGNvbHVtbklkKSkgIT0gbnVsbCA/IF9ncm91cGVkUm93cyQwJGdldFZhbCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcm93Ll92YWx1ZXNDYWNoZVtjb2x1bW5JZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocm93Ll9ncm91cGluZ1ZhbHVlc0NhY2hlLmhhc093blByb3BlcnR5KGNvbHVtbklkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gcm93Ll9ncm91cGluZ1ZhbHVlc0NhY2hlW2NvbHVtbklkXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWdncmVnYXRlIHRoZSB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRhYmxlLmdldENvbHVtbihjb2x1bW5JZCk7XG4gICAgICAgICAgICBjb25zdCBhZ2dyZWdhdGVGbiA9IGNvbHVtbiA9PSBudWxsID8gdm9pZCAwIDogY29sdW1uLmdldEFnZ3JlZ2F0aW9uRm4oKTtcbiAgICAgICAgICAgIGlmIChhZ2dyZWdhdGVGbikge1xuICAgICAgICAgICAgICByb3cuX2dyb3VwaW5nVmFsdWVzQ2FjaGVbY29sdW1uSWRdID0gYWdncmVnYXRlRm4oY29sdW1uSWQsIGxlYWZSb3dzLCBncm91cGVkUm93cyk7XG4gICAgICAgICAgICAgIHJldHVybiByb3cuX2dyb3VwaW5nVmFsdWVzQ2FjaGVbY29sdW1uSWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHN1YlJvd3MuZm9yRWFjaChzdWJSb3cgPT4ge1xuICAgICAgICAgIGdyb3VwZWRGbGF0Um93cy5wdXNoKHN1YlJvdyk7XG4gICAgICAgICAgZ3JvdXBlZFJvd3NCeUlkW3N1YlJvdy5pZF0gPSBzdWJSb3c7XG4gICAgICAgICAgLy8gaWYgKHN1YlJvdy5nZXRJc0dyb3VwZWQ/LigpKSB7XG4gICAgICAgICAgLy8gICBvbmx5R3JvdXBlZEZsYXRSb3dzLnB1c2goc3ViUm93KTtcbiAgICAgICAgICAvLyAgIG9ubHlHcm91cGVkUm93c0J5SWRbc3ViUm93LmlkXSA9IHN1YlJvdztcbiAgICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgIC8vICAgbm9uR3JvdXBlZEZsYXRSb3dzLnB1c2goc3ViUm93KTtcbiAgICAgICAgICAvLyAgIG5vbkdyb3VwZWRSb3dzQnlJZFtzdWJSb3cuaWRdID0gc3ViUm93O1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByb3c7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhZ2dyZWdhdGVkR3JvdXBlZFJvd3M7XG4gICAgfTtcbiAgICBjb25zdCBncm91cGVkUm93cyA9IGdyb3VwVXBSZWN1cnNpdmVseShyb3dNb2RlbC5yb3dzLCAwKTtcbiAgICBncm91cGVkUm93cy5mb3JFYWNoKHN1YlJvdyA9PiB7XG4gICAgICBncm91cGVkRmxhdFJvd3MucHVzaChzdWJSb3cpO1xuICAgICAgZ3JvdXBlZFJvd3NCeUlkW3N1YlJvdy5pZF0gPSBzdWJSb3c7XG4gICAgICAvLyBpZiAoc3ViUm93LmdldElzR3JvdXBlZD8uKCkpIHtcbiAgICAgIC8vICAgb25seUdyb3VwZWRGbGF0Um93cy5wdXNoKHN1YlJvdyk7XG4gICAgICAvLyAgIG9ubHlHcm91cGVkUm93c0J5SWRbc3ViUm93LmlkXSA9IHN1YlJvdztcbiAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAvLyAgIG5vbkdyb3VwZWRGbGF0Um93cy5wdXNoKHN1YlJvdyk7XG4gICAgICAvLyAgIG5vbkdyb3VwZWRSb3dzQnlJZFtzdWJSb3cuaWRdID0gc3ViUm93O1xuICAgICAgLy8gfVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICByb3dzOiBncm91cGVkUm93cyxcbiAgICAgIGZsYXRSb3dzOiBncm91cGVkRmxhdFJvd3MsXG4gICAgICByb3dzQnlJZDogZ3JvdXBlZFJvd3NCeUlkXG4gICAgfTtcbiAgfSwgZ2V0TWVtb09wdGlvbnModGFibGUub3B0aW9ucywgJ2RlYnVnVGFibGUnLCAnZ2V0R3JvdXBlZFJvd01vZGVsJywgKCkgPT4ge1xuICAgIHRhYmxlLl9xdWV1ZSgoKSA9PiB7XG4gICAgICB0YWJsZS5fYXV0b1Jlc2V0RXhwYW5kZWQoKTtcbiAgICAgIHRhYmxlLl9hdXRvUmVzZXRQYWdlSW5kZXgoKTtcbiAgICB9KTtcbiAgfSkpO1xufVxuZnVuY3Rpb24gZ3JvdXBCeShyb3dzLCBjb2x1bW5JZCkge1xuICBjb25zdCBncm91cE1hcCA9IG5ldyBNYXAoKTtcbiAgcmV0dXJuIHJvd3MucmVkdWNlKChtYXAsIHJvdykgPT4ge1xuICAgIGNvbnN0IHJlc0tleSA9IGAke3Jvdy5nZXRHcm91cGluZ1ZhbHVlKGNvbHVtbklkKX1gO1xuICAgIGNvbnN0IHByZXZpb3VzID0gbWFwLmdldChyZXNLZXkpO1xuICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgIG1hcC5zZXQocmVzS2V5LCBbcm93XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZXZpb3VzLnB1c2gocm93KTtcbiAgICB9XG4gICAgcmV0dXJuIG1hcDtcbiAgfSwgZ3JvdXBNYXApO1xufVxuXG5mdW5jdGlvbiBnZXRQYWdpbmF0aW9uUm93TW9kZWwob3B0cykge1xuICByZXR1cm4gdGFibGUgPT4gbWVtbygoKSA9PiBbdGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uLCB0YWJsZS5nZXRQcmVQYWdpbmF0aW9uUm93TW9kZWwoKSwgdGFibGUub3B0aW9ucy5wYWdpbmF0ZUV4cGFuZGVkUm93cyA/IHVuZGVmaW5lZCA6IHRhYmxlLmdldFN0YXRlKCkuZXhwYW5kZWRdLCAocGFnaW5hdGlvbiwgcm93TW9kZWwpID0+IHtcbiAgICBpZiAoIXJvd01vZGVsLnJvd3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcm93TW9kZWw7XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIHBhZ2VTaXplLFxuICAgICAgcGFnZUluZGV4XG4gICAgfSA9IHBhZ2luYXRpb247XG4gICAgbGV0IHtcbiAgICAgIHJvd3MsXG4gICAgICBmbGF0Um93cyxcbiAgICAgIHJvd3NCeUlkXG4gICAgfSA9IHJvd01vZGVsO1xuICAgIGNvbnN0IHBhZ2VTdGFydCA9IHBhZ2VTaXplICogcGFnZUluZGV4O1xuICAgIGNvbnN0IHBhZ2VFbmQgPSBwYWdlU3RhcnQgKyBwYWdlU2l6ZTtcbiAgICByb3dzID0gcm93cy5zbGljZShwYWdlU3RhcnQsIHBhZ2VFbmQpO1xuICAgIGxldCBwYWdpbmF0ZWRSb3dNb2RlbDtcbiAgICBpZiAoIXRhYmxlLm9wdGlvbnMucGFnaW5hdGVFeHBhbmRlZFJvd3MpIHtcbiAgICAgIHBhZ2luYXRlZFJvd01vZGVsID0gZXhwYW5kUm93cyh7XG4gICAgICAgIHJvd3MsXG4gICAgICAgIGZsYXRSb3dzLFxuICAgICAgICByb3dzQnlJZFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2luYXRlZFJvd01vZGVsID0ge1xuICAgICAgICByb3dzLFxuICAgICAgICBmbGF0Um93cyxcbiAgICAgICAgcm93c0J5SWRcbiAgICAgIH07XG4gICAgfVxuICAgIHBhZ2luYXRlZFJvd01vZGVsLmZsYXRSb3dzID0gW107XG4gICAgY29uc3QgaGFuZGxlUm93ID0gcm93ID0+IHtcbiAgICAgIHBhZ2luYXRlZFJvd01vZGVsLmZsYXRSb3dzLnB1c2gocm93KTtcbiAgICAgIGlmIChyb3cuc3ViUm93cy5sZW5ndGgpIHtcbiAgICAgICAgcm93LnN1YlJvd3MuZm9yRWFjaChoYW5kbGVSb3cpO1xuICAgICAgfVxuICAgIH07XG4gICAgcGFnaW5hdGVkUm93TW9kZWwucm93cy5mb3JFYWNoKGhhbmRsZVJvdyk7XG4gICAgcmV0dXJuIHBhZ2luYXRlZFJvd01vZGVsO1xuICB9LCBnZXRNZW1vT3B0aW9ucyh0YWJsZS5vcHRpb25zLCAnZGVidWdUYWJsZScsICdnZXRQYWdpbmF0aW9uUm93TW9kZWwnKSk7XG59XG5cbmZ1bmN0aW9uIGdldFNvcnRlZFJvd01vZGVsKCkge1xuICByZXR1cm4gdGFibGUgPT4gbWVtbygoKSA9PiBbdGFibGUuZ2V0U3RhdGUoKS5zb3J0aW5nLCB0YWJsZS5nZXRQcmVTb3J0ZWRSb3dNb2RlbCgpXSwgKHNvcnRpbmcsIHJvd01vZGVsKSA9PiB7XG4gICAgaWYgKCFyb3dNb2RlbC5yb3dzLmxlbmd0aCB8fCAhKHNvcnRpbmcgIT0gbnVsbCAmJiBzb3J0aW5nLmxlbmd0aCkpIHtcbiAgICAgIHJldHVybiByb3dNb2RlbDtcbiAgICB9XG4gICAgY29uc3Qgc29ydGluZ1N0YXRlID0gdGFibGUuZ2V0U3RhdGUoKS5zb3J0aW5nO1xuICAgIGNvbnN0IHNvcnRlZEZsYXRSb3dzID0gW107XG5cbiAgICAvLyBGaWx0ZXIgb3V0IHNvcnRpbmdzIHRoYXQgY29ycmVzcG9uZCB0byBub24gZXhpc3RpbmcgY29sdW1uc1xuICAgIGNvbnN0IGF2YWlsYWJsZVNvcnRpbmcgPSBzb3J0aW5nU3RhdGUuZmlsdGVyKHNvcnQgPT4ge1xuICAgICAgdmFyIF90YWJsZSRnZXRDb2x1bW47XG4gICAgICByZXR1cm4gKF90YWJsZSRnZXRDb2x1bW4gPSB0YWJsZS5nZXRDb2x1bW4oc29ydC5pZCkpID09IG51bGwgPyB2b2lkIDAgOiBfdGFibGUkZ2V0Q29sdW1uLmdldENhblNvcnQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBjb2x1bW5JbmZvQnlJZCA9IHt9O1xuICAgIGF2YWlsYWJsZVNvcnRpbmcuZm9yRWFjaChzb3J0RW50cnkgPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuZ2V0Q29sdW1uKHNvcnRFbnRyeS5pZCk7XG4gICAgICBpZiAoIWNvbHVtbikgcmV0dXJuO1xuICAgICAgY29sdW1uSW5mb0J5SWRbc29ydEVudHJ5LmlkXSA9IHtcbiAgICAgICAgc29ydFVuZGVmaW5lZDogY29sdW1uLmNvbHVtbkRlZi5zb3J0VW5kZWZpbmVkLFxuICAgICAgICBpbnZlcnRTb3J0aW5nOiBjb2x1bW4uY29sdW1uRGVmLmludmVydFNvcnRpbmcsXG4gICAgICAgIHNvcnRpbmdGbjogY29sdW1uLmdldFNvcnRpbmdGbigpXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHNvcnREYXRhID0gcm93cyA9PiB7XG4gICAgICAvLyBUaGlzIHdpbGwgYWxzbyBwZXJmb3JtIGEgc3RhYmxlIHNvcnRpbmcgdXNpbmcgdGhlIHJvdyBpbmRleFxuICAgICAgLy8gaWYgbmVlZGVkLlxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHJvd3MubWFwKHJvdyA9PiAoe1xuICAgICAgICAuLi5yb3dcbiAgICAgIH0pKTtcbiAgICAgIHNvcnRlZERhdGEuc29ydCgocm93QSwgcm93QikgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF2YWlsYWJsZVNvcnRpbmcubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICB2YXIgX3NvcnRFbnRyeSRkZXNjO1xuICAgICAgICAgIGNvbnN0IHNvcnRFbnRyeSA9IGF2YWlsYWJsZVNvcnRpbmdbaV07XG4gICAgICAgICAgY29uc3QgY29sdW1uSW5mbyA9IGNvbHVtbkluZm9CeUlkW3NvcnRFbnRyeS5pZF07XG4gICAgICAgICAgY29uc3Qgc29ydFVuZGVmaW5lZCA9IGNvbHVtbkluZm8uc29ydFVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBpc0Rlc2MgPSAoX3NvcnRFbnRyeSRkZXNjID0gc29ydEVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiBzb3J0RW50cnkuZGVzYykgIT0gbnVsbCA/IF9zb3J0RW50cnkkZGVzYyA6IGZhbHNlO1xuICAgICAgICAgIGxldCBzb3J0SW50ID0gMDtcblxuICAgICAgICAgIC8vIEFsbCBzb3J0aW5nIGludHMgc2hvdWxkIGFsd2F5cyByZXR1cm4gaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAgICAgICAgaWYgKHNvcnRVbmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFWYWx1ZSA9IHJvd0EuZ2V0VmFsdWUoc29ydEVudHJ5LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGJWYWx1ZSA9IHJvd0IuZ2V0VmFsdWUoc29ydEVudHJ5LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGFVbmRlZmluZWQgPSBhVmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGJVbmRlZmluZWQgPSBiVmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChhVW5kZWZpbmVkIHx8IGJVbmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgaWYgKHNvcnRVbmRlZmluZWQgPT09ICdmaXJzdCcpIHJldHVybiBhVW5kZWZpbmVkID8gLTEgOiAxO1xuICAgICAgICAgICAgICBpZiAoc29ydFVuZGVmaW5lZCA9PT0gJ2xhc3QnKSByZXR1cm4gYVVuZGVmaW5lZCA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgc29ydEludCA9IGFVbmRlZmluZWQgJiYgYlVuZGVmaW5lZCA/IDAgOiBhVW5kZWZpbmVkID8gc29ydFVuZGVmaW5lZCA6IC1zb3J0VW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc29ydEludCA9PT0gMCkge1xuICAgICAgICAgICAgc29ydEludCA9IGNvbHVtbkluZm8uc29ydGluZ0ZuKHJvd0EsIHJvd0IsIHNvcnRFbnRyeS5pZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgc29ydGluZyBpcyBub24temVybywgdGFrZSBjYXJlIG9mIGRlc2MgYW5kIGludmVyc2lvblxuICAgICAgICAgIGlmIChzb3J0SW50ICE9PSAwKSB7XG4gICAgICAgICAgICBpZiAoaXNEZXNjKSB7XG4gICAgICAgICAgICAgIHNvcnRJbnQgKj0gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29sdW1uSW5mby5pbnZlcnRTb3J0aW5nKSB7XG4gICAgICAgICAgICAgIHNvcnRJbnQgKj0gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc29ydEludDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvd0EuaW5kZXggLSByb3dCLmluZGV4O1xuICAgICAgfSk7XG5cbiAgICAgIC8vIElmIHRoZXJlIGFyZSBzdWItcm93cywgc29ydCB0aGVtXG4gICAgICBzb3J0ZWREYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgdmFyIF9yb3ckc3ViUm93cztcbiAgICAgICAgc29ydGVkRmxhdFJvd3MucHVzaChyb3cpO1xuICAgICAgICBpZiAoKF9yb3ckc3ViUm93cyA9IHJvdy5zdWJSb3dzKSAhPSBudWxsICYmIF9yb3ckc3ViUm93cy5sZW5ndGgpIHtcbiAgICAgICAgICByb3cuc3ViUm93cyA9IHNvcnREYXRhKHJvdy5zdWJSb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gc29ydGVkRGF0YTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICByb3dzOiBzb3J0RGF0YShyb3dNb2RlbC5yb3dzKSxcbiAgICAgIGZsYXRSb3dzOiBzb3J0ZWRGbGF0Um93cyxcbiAgICAgIHJvd3NCeUlkOiByb3dNb2RlbC5yb3dzQnlJZFxuICAgIH07XG4gIH0sIGdldE1lbW9PcHRpb25zKHRhYmxlLm9wdGlvbnMsICdkZWJ1Z1RhYmxlJywgJ2dldFNvcnRlZFJvd01vZGVsJywgKCkgPT4gdGFibGUuX2F1dG9SZXNldFBhZ2VJbmRleCgpKSk7XG59XG5cbmV4cG9ydCB7IENvbHVtbkZhY2V0aW5nLCBDb2x1bW5GaWx0ZXJpbmcsIENvbHVtbkdyb3VwaW5nLCBDb2x1bW5PcmRlcmluZywgQ29sdW1uUGlubmluZywgQ29sdW1uU2l6aW5nLCBDb2x1bW5WaXNpYmlsaXR5LCBHbG9iYWxGYWNldGluZywgR2xvYmFsRmlsdGVyaW5nLCBIZWFkZXJzLCBSb3dFeHBhbmRpbmcsIFJvd1BhZ2luYXRpb24sIFJvd1Bpbm5pbmcsIFJvd1NlbGVjdGlvbiwgUm93U29ydGluZywgX2dldFZpc2libGVMZWFmQ29sdW1ucywgYWdncmVnYXRpb25GbnMsIGJ1aWxkSGVhZGVyR3JvdXBzLCBjcmVhdGVDZWxsLCBjcmVhdGVDb2x1bW4sIGNyZWF0ZUNvbHVtbkhlbHBlciwgY3JlYXRlUm93LCBjcmVhdGVUYWJsZSwgZGVmYXVsdENvbHVtblNpemluZywgZXhwYW5kUm93cywgZmlsdGVyRm5zLCBmbGF0dGVuQnksIGZ1bmN0aW9uYWxVcGRhdGUsIGdldENvcmVSb3dNb2RlbCwgZ2V0RXhwYW5kZWRSb3dNb2RlbCwgZ2V0RmFjZXRlZE1pbk1heFZhbHVlcywgZ2V0RmFjZXRlZFJvd01vZGVsLCBnZXRGYWNldGVkVW5pcXVlVmFsdWVzLCBnZXRGaWx0ZXJlZFJvd01vZGVsLCBnZXRHcm91cGVkUm93TW9kZWwsIGdldE1lbW9PcHRpb25zLCBnZXRQYWdpbmF0aW9uUm93TW9kZWwsIGdldFNvcnRlZFJvd01vZGVsLCBpc0Z1bmN0aW9uLCBpc051bWJlckFycmF5LCBpc1Jvd1NlbGVjdGVkLCBpc1N1YlJvd1NlbGVjdGVkLCBtYWtlU3RhdGVVcGRhdGVyLCBtZW1vLCBub29wLCBvcmRlckNvbHVtbnMsIHBhc3NpdmVFdmVudFN1cHBvcnRlZCwgcmVTcGxpdEFscGhhTnVtZXJpYywgc2VsZWN0Um93c0ZuLCBzaG91bGRBdXRvUmVtb3ZlRmlsdGVyLCBzb3J0aW5nRm5zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@tanstack/table-core/build/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js": /*!*******************************************************!*\ !*** ./node_modules/aria-hidden/dist/es2015/index.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hideOthers: () => (/* binding */ hideOthers),\n/* harmony export */ inertOthers: () => (/* binding */ inertOthers),\n/* harmony export */ supportsInert: () => (/* binding */ supportsInert),\n/* harmony export */ suppressOthers: () => (/* binding */ suppressOthers)\n/* harmony export */ });\nvar getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nvar supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9hcmlhLWhpZGRlbi9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwrQkFBK0Isb0JBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLFdBQVcscUJBQXFCO0FBQ2hDO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLE1BQU07QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXJpYS1oaWRkZW4vZGlzdC9lczIwMTUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldERlZmF1bHRQYXJlbnQgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHNhbXBsZVRhcmdldCA9IEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXRbMF0gOiBvcmlnaW5hbFRhcmdldDtcbiAgICByZXR1cm4gc2FtcGxlVGFyZ2V0Lm93bmVyRG9jdW1lbnQuYm9keTtcbn07XG52YXIgY291bnRlck1hcCA9IG5ldyBXZWFrTWFwKCk7XG52YXIgdW5jb250cm9sbGVkTm9kZXMgPSBuZXcgV2Vha01hcCgpO1xudmFyIG1hcmtlck1hcCA9IHt9O1xudmFyIGxvY2tDb3VudCA9IDA7XG52YXIgdW53cmFwSG9zdCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgKG5vZGUuaG9zdCB8fCB1bndyYXBIb3N0KG5vZGUucGFyZW50Tm9kZSkpO1xufTtcbnZhciBjb3JyZWN0VGFyZ2V0cyA9IGZ1bmN0aW9uIChwYXJlbnQsIHRhcmdldHMpIHtcbiAgICByZXR1cm4gdGFyZ2V0c1xuICAgICAgICAubWFwKGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb3JyZWN0ZWRUYXJnZXQgPSB1bndyYXBIb3N0KHRhcmdldCk7XG4gICAgICAgIGlmIChjb3JyZWN0ZWRUYXJnZXQgJiYgcGFyZW50LmNvbnRhaW5zKGNvcnJlY3RlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjb3JyZWN0ZWRUYXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcignYXJpYS1oaWRkZW4nLCB0YXJnZXQsICdpbiBub3QgY29udGFpbmVkIGluc2lkZScsIHBhcmVudCwgJy4gRG9pbmcgbm90aGluZycpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiBCb29sZWFuKHgpOyB9KTtcbn07XG4vKipcbiAqIE1hcmtzIGV2ZXJ5dGhpbmcgZXhjZXB0IGdpdmVuIG5vZGUob3Igbm9kZXMpIGFzIGFyaWEtaGlkZGVuXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBFbGVtZW50W119IG9yaWdpbmFsVGFyZ2V0IC0gZWxlbWVudHMgdG8ga2VlcCBvbiB0aGUgcGFnZVxuICogQHBhcmFtIFtwYXJlbnROb2RlXSAtIHRvcCBlbGVtZW50LCBkZWZhdWx0cyB0byBkb2N1bWVudC5ib2R5XG4gKiBAcGFyYW0ge1N0cmluZ30gW21hcmtlck5hbWVdIC0gYSBzcGVjaWFsIGF0dHJpYnV0ZSB0byBtYXJrIGV2ZXJ5IG5vZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBbY29udHJvbEF0dHJpYnV0ZV0gLSBodG1sIEF0dHJpYnV0ZSB0byBjb250cm9sXG4gKiBAcmV0dXJuIHtVbmRvfSB1bmRvIGNvbW1hbmRcbiAqL1xudmFyIGFwcGx5QXR0cmlidXRlVG9PdGhlcnMgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUsIGNvbnRyb2xBdHRyaWJ1dGUpIHtcbiAgICB2YXIgdGFyZ2V0cyA9IGNvcnJlY3RUYXJnZXRzKHBhcmVudE5vZGUsIEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXQgOiBbb3JpZ2luYWxUYXJnZXRdKTtcbiAgICBpZiAoIW1hcmtlck1hcFttYXJrZXJOYW1lXSkge1xuICAgICAgICBtYXJrZXJNYXBbbWFya2VyTmFtZV0gPSBuZXcgV2Vha01hcCgpO1xuICAgIH1cbiAgICB2YXIgbWFya2VyQ291bnRlciA9IG1hcmtlck1hcFttYXJrZXJOYW1lXTtcbiAgICB2YXIgaGlkZGVuTm9kZXMgPSBbXTtcbiAgICB2YXIgZWxlbWVudHNUb0tlZXAgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGVsZW1lbnRzVG9TdG9wID0gbmV3IFNldCh0YXJnZXRzKTtcbiAgICB2YXIga2VlcCA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICBpZiAoIWVsIHx8IGVsZW1lbnRzVG9LZWVwLmhhcyhlbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50c1RvS2VlcC5hZGQoZWwpO1xuICAgICAgICBrZWVwKGVsLnBhcmVudE5vZGUpO1xuICAgIH07XG4gICAgdGFyZ2V0cy5mb3JFYWNoKGtlZXApO1xuICAgIHZhciBkZWVwID0gZnVuY3Rpb24gKHBhcmVudCkge1xuICAgICAgICBpZiAoIXBhcmVudCB8fCBlbGVtZW50c1RvU3RvcC5oYXMocGFyZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGFyZW50LmNoaWxkcmVuLCBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzVG9LZWVwLmhhcyhub2RlKSkge1xuICAgICAgICAgICAgICAgIGRlZXAobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IG5vZGUuZ2V0QXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWxyZWFkeUhpZGRlbiA9IGF0dHIgIT09IG51bGwgJiYgYXR0ciAhPT0gJ2ZhbHNlJztcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50ZXJWYWx1ZSA9IChjb3VudGVyTWFwLmdldChub2RlKSB8fCAwKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXJrZXJWYWx1ZSA9IChtYXJrZXJDb3VudGVyLmdldChub2RlKSB8fCAwKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJNYXAuc2V0KG5vZGUsIGNvdW50ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmtlckNvdW50ZXIuc2V0KG5vZGUsIG1hcmtlclZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJWYWx1ZSA9PT0gMSAmJiBhbHJlYWR5SGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmNvbnRyb2xsZWROb2Rlcy5zZXQobm9kZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hcmtlclZhbHVlID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShtYXJrZXJOYW1lLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeUhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoY29udHJvbEF0dHJpYnV0ZSwgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdhcmlhLWhpZGRlbjogY2Fubm90IG9wZXJhdGUgb24gJywgbm9kZSwgZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGRlZXAocGFyZW50Tm9kZSk7XG4gICAgZWxlbWVudHNUb0tlZXAuY2xlYXIoKTtcbiAgICBsb2NrQ291bnQrKztcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBoaWRkZW5Ob2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICB2YXIgY291bnRlclZhbHVlID0gY291bnRlck1hcC5nZXQobm9kZSkgLSAxO1xuICAgICAgICAgICAgdmFyIG1hcmtlclZhbHVlID0gbWFya2VyQ291bnRlci5nZXQobm9kZSkgLSAxO1xuICAgICAgICAgICAgY291bnRlck1hcC5zZXQobm9kZSwgY291bnRlclZhbHVlKTtcbiAgICAgICAgICAgIG1hcmtlckNvdW50ZXIuc2V0KG5vZGUsIG1hcmtlclZhbHVlKTtcbiAgICAgICAgICAgIGlmICghY291bnRlclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF1bmNvbnRyb2xsZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoY29udHJvbEF0dHJpYnV0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVuY29udHJvbGxlZE5vZGVzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbWFya2VyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShtYXJrZXJOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxvY2tDb3VudC0tO1xuICAgICAgICBpZiAoIWxvY2tDb3VudCkge1xuICAgICAgICAgICAgLy8gY2xlYXJcbiAgICAgICAgICAgIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgICAgICAgY291bnRlck1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgICAgICB1bmNvbnRyb2xsZWROb2RlcyA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgICAgICBtYXJrZXJNYXAgPSB7fTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuLyoqXG4gKiBNYXJrcyBldmVyeXRoaW5nIGV4Y2VwdCBnaXZlbiBub2RlKG9yIG5vZGVzKSBhcyBhcmlhLWhpZGRlblxuICogQHBhcmFtIHtFbGVtZW50IHwgRWxlbWVudFtdfSBvcmlnaW5hbFRhcmdldCAtIGVsZW1lbnRzIHRvIGtlZXAgb24gdGhlIHBhZ2VcbiAqIEBwYXJhbSBbcGFyZW50Tm9kZV0gLSB0b3AgZWxlbWVudCwgZGVmYXVsdHMgdG8gZG9jdW1lbnQuYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFttYXJrZXJOYW1lXSAtIGEgc3BlY2lhbCBhdHRyaWJ1dGUgdG8gbWFyayBldmVyeSBub2RlXG4gKiBAcmV0dXJuIHtVbmRvfSB1bmRvIGNvbW1hbmRcbiAqL1xuZXhwb3J0IHZhciBoaWRlT3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKSB7XG4gICAgaWYgKG1hcmtlck5hbWUgPT09IHZvaWQgMCkgeyBtYXJrZXJOYW1lID0gJ2RhdGEtYXJpYS1oaWRkZW4nOyB9XG4gICAgdmFyIHRhcmdldHMgPSBBcnJheS5mcm9tKEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXQgOiBbb3JpZ2luYWxUYXJnZXRdKTtcbiAgICB2YXIgYWN0aXZlUGFyZW50Tm9kZSA9IHBhcmVudE5vZGUgfHwgZ2V0RGVmYXVsdFBhcmVudChvcmlnaW5hbFRhcmdldCk7XG4gICAgaWYgKCFhY3RpdmVQYXJlbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9O1xuICAgIH1cbiAgICAvLyB3ZSBzaG91bGQgbm90IGhpZGUgYXJpYUxpdmUgZWxlbWVudHMgLSBodHRwczovL2dpdGh1Yi5jb20vdGhlS2FzaGV5L2FyaWEtaGlkZGVuL2lzc3Vlcy8xMFxuICAgIHRhcmdldHMucHVzaC5hcHBseSh0YXJnZXRzLCBBcnJheS5mcm9tKGFjdGl2ZVBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtbGl2ZV0nKSkpO1xuICAgIHJldHVybiBhcHBseUF0dHJpYnV0ZVRvT3RoZXJzKHRhcmdldHMsIGFjdGl2ZVBhcmVudE5vZGUsIG1hcmtlck5hbWUsICdhcmlhLWhpZGRlbicpO1xufTtcbi8qKlxuICogTWFya3MgZXZlcnl0aGluZyBleGNlcHQgZ2l2ZW4gbm9kZShvciBub2RlcykgYXMgaW5lcnRcbiAqIEBwYXJhbSB7RWxlbWVudCB8IEVsZW1lbnRbXX0gb3JpZ2luYWxUYXJnZXQgLSBlbGVtZW50cyB0byBrZWVwIG9uIHRoZSBwYWdlXG4gKiBAcGFyYW0gW3BhcmVudE5vZGVdIC0gdG9wIGVsZW1lbnQsIGRlZmF1bHRzIHRvIGRvY3VtZW50LmJvZHlcbiAqIEBwYXJhbSB7U3RyaW5nfSBbbWFya2VyTmFtZV0gLSBhIHNwZWNpYWwgYXR0cmlidXRlIHRvIG1hcmsgZXZlcnkgbm9kZVxuICogQHJldHVybiB7VW5kb30gdW5kbyBjb21tYW5kXG4gKi9cbmV4cG9ydCB2YXIgaW5lcnRPdGhlcnMgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUpIHtcbiAgICBpZiAobWFya2VyTmFtZSA9PT0gdm9pZCAwKSB7IG1hcmtlck5hbWUgPSAnZGF0YS1pbmVydC1lZCc7IH1cbiAgICB2YXIgYWN0aXZlUGFyZW50Tm9kZSA9IHBhcmVudE5vZGUgfHwgZ2V0RGVmYXVsdFBhcmVudChvcmlnaW5hbFRhcmdldCk7XG4gICAgaWYgKCFhY3RpdmVQYXJlbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9O1xuICAgIH1cbiAgICByZXR1cm4gYXBwbHlBdHRyaWJ1dGVUb090aGVycyhvcmlnaW5hbFRhcmdldCwgYWN0aXZlUGFyZW50Tm9kZSwgbWFya2VyTmFtZSwgJ2luZXJ0Jyk7XG59O1xuLyoqXG4gKiBAcmV0dXJucyBpZiBjdXJyZW50IGJyb3dzZXIgc3VwcG9ydHMgaW5lcnRcbiAqL1xuZXhwb3J0IHZhciBzdXBwb3J0c0luZXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0eXBlb2YgSFRNTEVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIEhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnaW5lcnQnKTtcbn07XG4vKipcbiAqIEF1dG9tYXRpYyBmdW5jdGlvbiB0byBcInN1cHByZXNzXCIgRE9NIGVsZW1lbnRzIC0gX2hpZGVfIG9yIF9pbmVydF8gaW4gdGhlIGJlc3QgcG9zc2libGUgd2F5XG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBFbGVtZW50W119IG9yaWdpbmFsVGFyZ2V0IC0gZWxlbWVudHMgdG8ga2VlcCBvbiB0aGUgcGFnZVxuICogQHBhcmFtIFtwYXJlbnROb2RlXSAtIHRvcCBlbGVtZW50LCBkZWZhdWx0cyB0byBkb2N1bWVudC5ib2R5XG4gKiBAcGFyYW0ge1N0cmluZ30gW21hcmtlck5hbWVdIC0gYSBzcGVjaWFsIGF0dHJpYnV0ZSB0byBtYXJrIGV2ZXJ5IG5vZGVcbiAqIEByZXR1cm4ge1VuZG99IHVuZG8gY29tbWFuZFxuICovXG5leHBvcnQgdmFyIHN1cHByZXNzT3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKSB7XG4gICAgaWYgKG1hcmtlck5hbWUgPT09IHZvaWQgMCkgeyBtYXJrZXJOYW1lID0gJ2RhdGEtc3VwcHJlc3NlZCc7IH1cbiAgICByZXR1cm4gKHN1cHBvcnRzSW5lcnQoKSA/IGluZXJ0T3RoZXJzIDogaGlkZU90aGVycykob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUpO1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/adapters/adapters.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/adapters/adapters.js ***! \*****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./http.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/null.js\");\n/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./xhr.js */ \"(app-pages-browser)/./node_modules/axios/lib/adapters/xhr.js\");\n/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fetch.js */ \"(app-pages-browser)/./node_modules/axios/lib/adapters/fetch.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n\n\nconst knownAdapters = {\n http: _http_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n fetch: _fetch_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => _utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isFunction(adapter) || adapter === null || adapter === false;\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n getAdapter: (adapters) => {\n adapters = _utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMvYWRhcHRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWdDO0FBQ0k7QUFDRjtBQUNJO0FBQ1M7O0FBRS9DO0FBQ0EsUUFBUSxnREFBVztBQUNuQixPQUFPLCtDQUFVO0FBQ2pCLFNBQVMsaURBQVk7QUFDckI7O0FBRUEsaURBQUs7QUFDTDtBQUNBO0FBQ0EseUNBQXlDLE1BQU07QUFDL0MsTUFBTTtBQUNOO0FBQ0E7QUFDQSw4Q0FBOEMsTUFBTTtBQUNwRDtBQUNBLENBQUM7O0FBRUQsc0NBQXNDLE9BQU87O0FBRTdDLHNDQUFzQyxpREFBSzs7QUFFM0MsaUVBQWU7QUFDZjtBQUNBLGVBQWUsaURBQUs7O0FBRXBCLFdBQVcsUUFBUTtBQUNuQjtBQUNBOztBQUVBOztBQUVBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQiwyREFBVSxxQkFBcUIsR0FBRztBQUN0RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EseUNBQXlDLElBQUk7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCLDJEQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgaHR0cEFkYXB0ZXIgZnJvbSAnLi9odHRwLmpzJztcbmltcG9ydCB4aHJBZGFwdGVyIGZyb20gJy4veGhyLmpzJztcbmltcG9ydCBmZXRjaEFkYXB0ZXIgZnJvbSAnLi9mZXRjaC5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tIFwiLi4vY29yZS9BeGlvc0Vycm9yLmpzXCI7XG5cbmNvbnN0IGtub3duQWRhcHRlcnMgPSB7XG4gIGh0dHA6IGh0dHBBZGFwdGVyLFxuICB4aHI6IHhockFkYXB0ZXIsXG4gIGZldGNoOiBmZXRjaEFkYXB0ZXJcbn1cblxudXRpbHMuZm9yRWFjaChrbm93bkFkYXB0ZXJzLCAoZm4sIHZhbHVlKSA9PiB7XG4gIGlmIChmbikge1xuICAgIHRyeSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4sICduYW1lJywge3ZhbHVlfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmbiwgJ2FkYXB0ZXJOYW1lJywge3ZhbHVlfSk7XG4gIH1cbn0pO1xuXG5jb25zdCByZW5kZXJSZWFzb24gPSAocmVhc29uKSA9PiBgLSAke3JlYXNvbn1gO1xuXG5jb25zdCBpc1Jlc29sdmVkSGFuZGxlID0gKGFkYXB0ZXIpID0+IHV0aWxzLmlzRnVuY3Rpb24oYWRhcHRlcikgfHwgYWRhcHRlciA9PT0gbnVsbCB8fCBhZGFwdGVyID09PSBmYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXRBZGFwdGVyOiAoYWRhcHRlcnMpID0+IHtcbiAgICBhZGFwdGVycyA9IHV0aWxzLmlzQXJyYXkoYWRhcHRlcnMpID8gYWRhcHRlcnMgOiBbYWRhcHRlcnNdO1xuXG4gICAgY29uc3Qge2xlbmd0aH0gPSBhZGFwdGVycztcbiAgICBsZXQgbmFtZU9yQWRhcHRlcjtcbiAgICBsZXQgYWRhcHRlcjtcblxuICAgIGNvbnN0IHJlamVjdGVkUmVhc29ucyA9IHt9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgbmFtZU9yQWRhcHRlciA9IGFkYXB0ZXJzW2ldO1xuICAgICAgbGV0IGlkO1xuXG4gICAgICBhZGFwdGVyID0gbmFtZU9yQWRhcHRlcjtcblxuICAgICAgaWYgKCFpc1Jlc29sdmVkSGFuZGxlKG5hbWVPckFkYXB0ZXIpKSB7XG4gICAgICAgIGFkYXB0ZXIgPSBrbm93bkFkYXB0ZXJzWyhpZCA9IFN0cmluZyhuYW1lT3JBZGFwdGVyKSkudG9Mb3dlckNhc2UoKV07XG5cbiAgICAgICAgaWYgKGFkYXB0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKGBVbmtub3duIGFkYXB0ZXIgJyR7aWR9J2ApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhZGFwdGVyKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZWplY3RlZFJlYXNvbnNbaWQgfHwgJyMnICsgaV0gPSBhZGFwdGVyO1xuICAgIH1cblxuICAgIGlmICghYWRhcHRlcikge1xuXG4gICAgICBjb25zdCByZWFzb25zID0gT2JqZWN0LmVudHJpZXMocmVqZWN0ZWRSZWFzb25zKVxuICAgICAgICAubWFwKChbaWQsIHN0YXRlXSkgPT4gYGFkYXB0ZXIgJHtpZH0gYCArXG4gICAgICAgICAgKHN0YXRlID09PSBmYWxzZSA/ICdpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCcgOiAnaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQnKVxuICAgICAgICApO1xuXG4gICAgICBsZXQgcyA9IGxlbmd0aCA/XG4gICAgICAgIChyZWFzb25zLmxlbmd0aCA+IDEgPyAnc2luY2UgOlxcbicgKyByZWFzb25zLm1hcChyZW5kZXJSZWFzb24pLmpvaW4oJ1xcbicpIDogJyAnICsgcmVuZGVyUmVhc29uKHJlYXNvbnNbMF0pKSA6XG4gICAgICAgICdhcyBubyBhZGFwdGVyIHNwZWNpZmllZCc7XG5cbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICBgVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCBgICsgcyxcbiAgICAgICAgJ0VSUl9OT1RfU1VQUE9SVCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkYXB0ZXI7XG4gIH0sXG4gIGFkYXB0ZXJzOiBrbm93bkFkYXB0ZXJzXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/adapters/adapters.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/adapters/fetch.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/adapters/fetch.js ***! \**************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/composeSignals.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/composeSignals.js\");\n/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/trackStream.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/trackStream.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/progressEventReducer.js\");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/resolveConfig.js\");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/settle.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/settle.js\");\n\n\n\n\n\n\n\n\n\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](`Response type '${type}' is not supported`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isBlob(body)) {\n return body.size;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isSpecCompliantForm(body)) {\n const _request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isArrayBufferView(body) || _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = (0,_helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n requestContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onUploadProgress))\n );\n\n data = (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n responseContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(resolve, reject, {\n data: responseData,\n headers: _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].from(err, err && err.code, config, request);\n }\n}));\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMvZmV0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUE0QztBQUNaO0FBQ2U7QUFDVztBQUNKO0FBQ0g7QUFDNkQ7QUFDeEQ7QUFDakI7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEscUNBQXFDLDBEQUFRO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQSxhQUFhLGlEQUFLOzs7QUFHbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyQ0FBMkMsaURBQUs7QUFDaEQ7QUFDQSxrQkFBa0IsMkRBQVUsbUJBQW1CLEtBQUsscUJBQXFCLDJEQUFVO0FBQ25GLE9BQU87QUFDUCxHQUFHO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxLQUFLLGlEQUFLO0FBQ1Y7QUFDQTs7QUFFQSxLQUFLLGlEQUFLO0FBQ1YsaUNBQWlDLDBEQUFRO0FBQ3pDO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxLQUFLLGlEQUFLLDRCQUE0QixpREFBSztBQUMzQztBQUNBOztBQUVBLEtBQUssaURBQUs7QUFDVjtBQUNBOztBQUVBLEtBQUssaURBQUs7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIsaURBQUs7O0FBRXRCO0FBQ0E7O0FBRUEsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksRUFBRSxxRUFBYTs7QUFFbkI7O0FBRUEsdUJBQXVCLHNFQUFjOztBQUVyQzs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQOztBQUVBLFVBQVUsaURBQUs7QUFDZjtBQUNBOztBQUVBO0FBQ0Esb0NBQW9DLHdGQUFzQjtBQUMxRDtBQUNBLFVBQVUsc0ZBQW9CLENBQUMsZ0ZBQWM7QUFDN0M7O0FBRUEsZUFBZSxvRUFBVztBQUMxQjtBQUNBOztBQUVBLFNBQVMsaURBQUs7QUFDZDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87O0FBRVAsb0NBQW9DLGlEQUFLOztBQUV6Qyx3REFBd0Qsd0ZBQXNCO0FBQzlFO0FBQ0EsUUFBUSxzRkFBb0IsQ0FBQyxnRkFBYztBQUMzQzs7QUFFQTtBQUNBLFFBQVEsb0VBQVc7QUFDbkI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsdUNBQXVDLGlEQUFLOztBQUU1Qzs7QUFFQTtBQUNBLE1BQU0sMkRBQU07QUFDWjtBQUNBLGlCQUFpQiw2REFBWTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQSxZQUFZLDJEQUFVLGtCQUFrQiwyREFBVTtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVUsMkRBQVU7QUFDcEI7QUFDQSxDQUFDLENBQUMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2ZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwbGF0Zm9ybSBmcm9tIFwiLi4vcGxhdGZvcm0vaW5kZXguanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gXCIuLi9jb3JlL0F4aW9zRXJyb3IuanNcIjtcbmltcG9ydCBjb21wb3NlU2lnbmFscyBmcm9tIFwiLi4vaGVscGVycy9jb21wb3NlU2lnbmFscy5qc1wiO1xuaW1wb3J0IHt0cmFja1N0cmVhbX0gZnJvbSBcIi4uL2hlbHBlcnMvdHJhY2tTdHJlYW0uanNcIjtcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQge3Byb2dyZXNzRXZlbnRSZWR1Y2VyLCBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yLCBhc3luY0RlY29yYXRvcn0gZnJvbSBcIi4uL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanNcIjtcbmltcG9ydCByZXNvbHZlQ29uZmlnIGZyb20gXCIuLi9oZWxwZXJzL3Jlc29sdmVDb25maWcuanNcIjtcbmltcG9ydCBzZXR0bGUgZnJvbSBcIi4uL2NvcmUvc2V0dGxlLmpzXCI7XG5cbmNvbnN0IGlzRmV0Y2hTdXBwb3J0ZWQgPSB0eXBlb2YgZmV0Y2ggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIFJlcXVlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIFJlc3BvbnNlID09PSAnZnVuY3Rpb24nO1xuY29uc3QgaXNSZWFkYWJsZVN0cmVhbVN1cHBvcnRlZCA9IGlzRmV0Y2hTdXBwb3J0ZWQgJiYgdHlwZW9mIFJlYWRhYmxlU3RyZWFtID09PSAnZnVuY3Rpb24nO1xuXG4vLyB1c2VkIG9ubHkgaW5zaWRlIHRoZSBmZXRjaCBhZGFwdGVyXG5jb25zdCBlbmNvZGVUZXh0ID0gaXNGZXRjaFN1cHBvcnRlZCAmJiAodHlwZW9mIFRleHRFbmNvZGVyID09PSAnZnVuY3Rpb24nID9cbiAgICAoKGVuY29kZXIpID0+IChzdHIpID0+IGVuY29kZXIuZW5jb2RlKHN0cikpKG5ldyBUZXh0RW5jb2RlcigpKSA6XG4gICAgYXN5bmMgKHN0cikgPT4gbmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKHN0cikuYXJyYXlCdWZmZXIoKSlcbik7XG5cbmNvbnN0IHRlc3QgPSAoZm4sIC4uLmFyZ3MpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFmbiguLi5hcmdzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmNvbnN0IHN1cHBvcnRzUmVxdWVzdFN0cmVhbSA9IGlzUmVhZGFibGVTdHJlYW1TdXBwb3J0ZWQgJiYgdGVzdCgoKSA9PiB7XG4gIGxldCBkdXBsZXhBY2Nlc3NlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGhhc0NvbnRlbnRUeXBlID0gbmV3IFJlcXVlc3QocGxhdGZvcm0ub3JpZ2luLCB7XG4gICAgYm9keTogbmV3IFJlYWRhYmxlU3RyZWFtKCksXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgZ2V0IGR1cGxleCgpIHtcbiAgICAgIGR1cGxleEFjY2Vzc2VkID0gdHJ1ZTtcbiAgICAgIHJldHVybiAnaGFsZic7XG4gICAgfSxcbiAgfSkuaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpO1xuXG4gIHJldHVybiBkdXBsZXhBY2Nlc3NlZCAmJiAhaGFzQ29udGVudFR5cGU7XG59KTtcblxuY29uc3QgREVGQVVMVF9DSFVOS19TSVpFID0gNjQgKiAxMDI0O1xuXG5jb25zdCBzdXBwb3J0c1Jlc3BvbnNlU3RyZWFtID0gaXNSZWFkYWJsZVN0cmVhbVN1cHBvcnRlZCAmJlxuICB0ZXN0KCgpID0+IHV0aWxzLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCcnKS5ib2R5KSk7XG5cblxuY29uc3QgcmVzb2x2ZXJzID0ge1xuICBzdHJlYW06IHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gJiYgKChyZXMpID0+IHJlcy5ib2R5KVxufTtcblxuaXNGZXRjaFN1cHBvcnRlZCAmJiAoKChyZXMpID0+IHtcbiAgWyd0ZXh0JywgJ2FycmF5QnVmZmVyJywgJ2Jsb2InLCAnZm9ybURhdGEnLCAnc3RyZWFtJ10uZm9yRWFjaCh0eXBlID0+IHtcbiAgICAhcmVzb2x2ZXJzW3R5cGVdICYmIChyZXNvbHZlcnNbdHlwZV0gPSB1dGlscy5pc0Z1bmN0aW9uKHJlc1t0eXBlXSkgPyAocmVzKSA9PiByZXNbdHlwZV0oKSA6XG4gICAgICAoXywgY29uZmlnKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKGBSZXNwb25zZSB0eXBlICcke3R5cGV9JyBpcyBub3Qgc3VwcG9ydGVkYCwgQXhpb3NFcnJvci5FUlJfTk9UX1NVUFBPUlQsIGNvbmZpZyk7XG4gICAgICB9KVxuICB9KTtcbn0pKG5ldyBSZXNwb25zZSkpO1xuXG5jb25zdCBnZXRCb2R5TGVuZ3RoID0gYXN5bmMgKGJvZHkpID0+IHtcbiAgaWYgKGJvZHkgPT0gbnVsbCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYodXRpbHMuaXNCbG9iKGJvZHkpKSB7XG4gICAgcmV0dXJuIGJvZHkuc2l6ZTtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzU3BlY0NvbXBsaWFudEZvcm0oYm9keSkpIHtcbiAgICBjb25zdCBfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHBsYXRmb3JtLm9yaWdpbiwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5LFxuICAgIH0pO1xuICAgIHJldHVybiAoYXdhaXQgX3JlcXVlc3QuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpIHx8IHV0aWxzLmlzQXJyYXlCdWZmZXIoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5ieXRlTGVuZ3RoO1xuICB9XG5cbiAgaWYodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoYm9keSkpIHtcbiAgICBib2R5ID0gYm9keSArICcnO1xuICB9XG5cbiAgaWYodXRpbHMuaXNTdHJpbmcoYm9keSkpIHtcbiAgICByZXR1cm4gKGF3YWl0IGVuY29kZVRleHQoYm9keSkpLmJ5dGVMZW5ndGg7XG4gIH1cbn1cblxuY29uc3QgcmVzb2x2ZUJvZHlMZW5ndGggPSBhc3luYyAoaGVhZGVycywgYm9keSkgPT4ge1xuICBjb25zdCBsZW5ndGggPSB1dGlscy50b0Zpbml0ZU51bWJlcihoZWFkZXJzLmdldENvbnRlbnRMZW5ndGgoKSk7XG5cbiAgcmV0dXJuIGxlbmd0aCA9PSBudWxsID8gZ2V0Qm9keUxlbmd0aChib2R5KSA6IGxlbmd0aDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGZXRjaFN1cHBvcnRlZCAmJiAoYXN5bmMgKGNvbmZpZykgPT4ge1xuICBsZXQge1xuICAgIHVybCxcbiAgICBtZXRob2QsXG4gICAgZGF0YSxcbiAgICBzaWduYWwsXG4gICAgY2FuY2VsVG9rZW4sXG4gICAgdGltZW91dCxcbiAgICBvbkRvd25sb2FkUHJvZ3Jlc3MsXG4gICAgb25VcGxvYWRQcm9ncmVzcyxcbiAgICByZXNwb25zZVR5cGUsXG4gICAgaGVhZGVycyxcbiAgICB3aXRoQ3JlZGVudGlhbHMgPSAnc2FtZS1vcmlnaW4nLFxuICAgIGZldGNoT3B0aW9uc1xuICB9ID0gcmVzb2x2ZUNvbmZpZyhjb25maWcpO1xuXG4gIHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZSA/IChyZXNwb25zZVR5cGUgKyAnJykudG9Mb3dlckNhc2UoKSA6ICd0ZXh0JztcblxuICBsZXQgY29tcG9zZWRTaWduYWwgPSBjb21wb3NlU2lnbmFscyhbc2lnbmFsLCBjYW5jZWxUb2tlbiAmJiBjYW5jZWxUb2tlbi50b0Fib3J0U2lnbmFsKCldLCB0aW1lb3V0KTtcblxuICBsZXQgcmVxdWVzdDtcblxuICBjb25zdCB1bnN1YnNjcmliZSA9IGNvbXBvc2VkU2lnbmFsICYmIGNvbXBvc2VkU2lnbmFsLnVuc3Vic2NyaWJlICYmICgoKSA9PiB7XG4gICAgICBjb21wb3NlZFNpZ25hbC51bnN1YnNjcmliZSgpO1xuICB9KTtcblxuICBsZXQgcmVxdWVzdENvbnRlbnRMZW5ndGg7XG5cbiAgdHJ5IHtcbiAgICBpZiAoXG4gICAgICBvblVwbG9hZFByb2dyZXNzICYmIHN1cHBvcnRzUmVxdWVzdFN0cmVhbSAmJiBtZXRob2QgIT09ICdnZXQnICYmIG1ldGhvZCAhPT0gJ2hlYWQnICYmXG4gICAgICAocmVxdWVzdENvbnRlbnRMZW5ndGggPSBhd2FpdCByZXNvbHZlQm9keUxlbmd0aChoZWFkZXJzLCBkYXRhKSkgIT09IDBcbiAgICApIHtcbiAgICAgIGxldCBfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgZHVwbGV4OiBcImhhbGZcIlxuICAgICAgfSk7XG5cbiAgICAgIGxldCBjb250ZW50VHlwZUhlYWRlcjtcblxuICAgICAgaWYgKHV0aWxzLmlzRm9ybURhdGEoZGF0YSkgJiYgKGNvbnRlbnRUeXBlSGVhZGVyID0gX3JlcXVlc3QuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpKSkge1xuICAgICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlSGVhZGVyKVxuICAgICAgfVxuXG4gICAgICBpZiAoX3JlcXVlc3QuYm9keSkge1xuICAgICAgICBjb25zdCBbb25Qcm9ncmVzcywgZmx1c2hdID0gcHJvZ3Jlc3NFdmVudERlY29yYXRvcihcbiAgICAgICAgICByZXF1ZXN0Q29udGVudExlbmd0aCxcbiAgICAgICAgICBwcm9ncmVzc0V2ZW50UmVkdWNlcihhc3luY0RlY29yYXRvcihvblVwbG9hZFByb2dyZXNzKSlcbiAgICAgICAgKTtcblxuICAgICAgICBkYXRhID0gdHJhY2tTdHJlYW0oX3JlcXVlc3QuYm9keSwgREVGQVVMVF9DSFVOS19TSVpFLCBvblByb2dyZXNzLCBmbHVzaCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF1dGlscy5pc1N0cmluZyh3aXRoQ3JlZGVudGlhbHMpKSB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHMgPyAnaW5jbHVkZScgOiAnb21pdCc7XG4gICAgfVxuXG4gICAgLy8gQ2xvdWRmbGFyZSBXb3JrZXJzIHRocm93cyB3aGVuIGNyZWRlbnRpYWxzIGFyZSBkZWZpbmVkXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGZsYXJlL3dvcmtlcmQvaXNzdWVzLzkwMlxuICAgIGNvbnN0IGlzQ3JlZGVudGlhbHNTdXBwb3J0ZWQgPSBcImNyZWRlbnRpYWxzXCIgaW4gUmVxdWVzdC5wcm90b3R5cGU7XG4gICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgLi4uZmV0Y2hPcHRpb25zLFxuICAgICAgc2lnbmFsOiBjb21wb3NlZFNpZ25hbCxcbiAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLm5vcm1hbGl6ZSgpLnRvSlNPTigpLFxuICAgICAgYm9keTogZGF0YSxcbiAgICAgIGR1cGxleDogXCJoYWxmXCIsXG4gICAgICBjcmVkZW50aWFsczogaXNDcmVkZW50aWFsc1N1cHBvcnRlZCA/IHdpdGhDcmVkZW50aWFscyA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCk7XG5cbiAgICBjb25zdCBpc1N0cmVhbVJlc3BvbnNlID0gc3VwcG9ydHNSZXNwb25zZVN0cmVhbSAmJiAocmVzcG9uc2VUeXBlID09PSAnc3RyZWFtJyB8fCByZXNwb25zZVR5cGUgPT09ICdyZXNwb25zZScpO1xuXG4gICAgaWYgKHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gJiYgKG9uRG93bmxvYWRQcm9ncmVzcyB8fCAoaXNTdHJlYW1SZXNwb25zZSAmJiB1bnN1YnNjcmliZSkpKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICAgIFsnc3RhdHVzJywgJ3N0YXR1c1RleHQnLCAnaGVhZGVycyddLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgIG9wdGlvbnNbcHJvcF0gPSByZXNwb25zZVtwcm9wXTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZUNvbnRlbnRMZW5ndGggPSB1dGlscy50b0Zpbml0ZU51bWJlcihyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC1sZW5ndGgnKSk7XG5cbiAgICAgIGNvbnN0IFtvblByb2dyZXNzLCBmbHVzaF0gPSBvbkRvd25sb2FkUHJvZ3Jlc3MgJiYgcHJvZ3Jlc3NFdmVudERlY29yYXRvcihcbiAgICAgICAgcmVzcG9uc2VDb250ZW50TGVuZ3RoLFxuICAgICAgICBwcm9ncmVzc0V2ZW50UmVkdWNlcihhc3luY0RlY29yYXRvcihvbkRvd25sb2FkUHJvZ3Jlc3MpLCB0cnVlKVxuICAgICAgKSB8fCBbXTtcblxuICAgICAgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoXG4gICAgICAgIHRyYWNrU3RyZWFtKHJlc3BvbnNlLmJvZHksIERFRkFVTFRfQ0hVTktfU0laRSwgb25Qcm9ncmVzcywgKCkgPT4ge1xuICAgICAgICAgIGZsdXNoICYmIGZsdXNoKCk7XG4gICAgICAgICAgdW5zdWJzY3JpYmUgJiYgdW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlIHx8ICd0ZXh0JztcblxuICAgIGxldCByZXNwb25zZURhdGEgPSBhd2FpdCByZXNvbHZlcnNbdXRpbHMuZmluZEtleShyZXNvbHZlcnMsIHJlc3BvbnNlVHlwZSkgfHwgJ3RleHQnXShyZXNwb25zZSwgY29uZmlnKTtcblxuICAgICFpc1N0cmVhbVJlc3BvbnNlICYmIHVuc3Vic2NyaWJlICYmIHVuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwge1xuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgIGhlYWRlcnM6IEF4aW9zSGVhZGVycy5mcm9tKHJlc3BvbnNlLmhlYWRlcnMpLFxuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByZXF1ZXN0XG4gICAgICB9KVxuICAgIH0pXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHVuc3Vic2NyaWJlICYmIHVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoZXJyICYmIGVyci5uYW1lID09PSAnVHlwZUVycm9yJyAmJiAvZmV0Y2gvaS50ZXN0KGVyci5tZXNzYWdlKSkge1xuICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgbmV3IEF4aW9zRXJyb3IoJ05ldHdvcmsgRXJyb3InLCBBeGlvc0Vycm9yLkVSUl9ORVRXT1JLLCBjb25maWcsIHJlcXVlc3QpLFxuICAgICAgICB7XG4gICAgICAgICAgY2F1c2U6IGVyci5jYXVzZSB8fCBlcnJcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cblxuICAgIHRocm93IEF4aW9zRXJyb3IuZnJvbShlcnIsIGVyciAmJiBlcnIuY29kZSwgY29uZmlnLCByZXF1ZXN0KTtcbiAgfVxufSk7XG5cblxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/adapters/fetch.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/adapters/xhr.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/adapters/xhr.js ***! \************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../core/settle.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/settle.js\");\n/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/transitional.js */ \"(app-pages-browser)/./node_modules/axios/lib/defaults/transitional.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/parseProtocol.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/progressEventReducer.js\");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/resolveConfig.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(config);\n let requestData = _config.data;\n const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n _utils_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"](null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(_config.url);\n\n if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].protocols.indexOf(protocol) === -1) {\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Unsupported protocol ' + protocol + ':', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMveGhyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQWtDO0FBQ087QUFDc0I7QUFDaEI7QUFDUTtBQUNDO0FBQ1o7QUFDTztBQUNxQjtBQUNoQjs7QUFFeEQ7O0FBRUEsaUVBQWU7QUFDZjtBQUNBLG9CQUFvQixxRUFBYTtBQUNqQztBQUNBLDJCQUEyQiw2REFBWTtBQUN2QyxTQUFTLG9EQUFvRDtBQUM3RDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0M7QUFDcEMsd0NBQXdDOztBQUV4Qzs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw2REFBWTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSwyREFBTTtBQUNaO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQiwyREFBVSxvQkFBb0IsMkRBQVU7O0FBRXpEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwyREFBVSxrQkFBa0IsMkRBQVU7O0FBRXZEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsaUVBQW9CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwyREFBVTtBQUMzQjtBQUNBLDJDQUEyQywyREFBVSxhQUFhLDJEQUFVO0FBQzVFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0saURBQUs7QUFDWDtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBLFNBQVMsaURBQUs7QUFDZDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0Q0FBNEMsc0ZBQW9CO0FBQ2hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdDQUF3QyxzRkFBb0I7O0FBRTVEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsZ0VBQWE7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLHFFQUFhOztBQUVsQyxvQkFBb0IsMERBQVE7QUFDNUIsaUJBQWlCLDJEQUFVLDJDQUEyQywyREFBVTtBQUNoRjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy94aHIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuaW1wb3J0IHNldHRsZSBmcm9tICcuLy4uL2NvcmUvc2V0dGxlLmpzJztcbmltcG9ydCB0cmFuc2l0aW9uYWxEZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cy90cmFuc2l0aW9uYWwuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBwYXJzZVByb3RvY29sIGZyb20gJy4uL2hlbHBlcnMvcGFyc2VQcm90b2NvbC5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5pbXBvcnQge3Byb2dyZXNzRXZlbnRSZWR1Y2VyfSBmcm9tICcuLi9oZWxwZXJzL3Byb2dyZXNzRXZlbnRSZWR1Y2VyLmpzJztcbmltcG9ydCByZXNvbHZlQ29uZmlnIGZyb20gXCIuLi9oZWxwZXJzL3Jlc29sdmVDb25maWcuanNcIjtcblxuY29uc3QgaXNYSFJBZGFwdGVyU3VwcG9ydGVkID0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJztcblxuZXhwb3J0IGRlZmF1bHQgaXNYSFJBZGFwdGVyU3VwcG9ydGVkICYmIGZ1bmN0aW9uIChjb25maWcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIGRpc3BhdGNoWGhyUmVxdWVzdChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBjb25zdCBfY29uZmlnID0gcmVzb2x2ZUNvbmZpZyhjb25maWcpO1xuICAgIGxldCByZXF1ZXN0RGF0YSA9IF9jb25maWcuZGF0YTtcbiAgICBjb25zdCByZXF1ZXN0SGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKF9jb25maWcuaGVhZGVycykubm9ybWFsaXplKCk7XG4gICAgbGV0IHtyZXNwb25zZVR5cGUsIG9uVXBsb2FkUHJvZ3Jlc3MsIG9uRG93bmxvYWRQcm9ncmVzc30gPSBfY29uZmlnO1xuICAgIGxldCBvbkNhbmNlbGVkO1xuICAgIGxldCB1cGxvYWRUaHJvdHRsZWQsIGRvd25sb2FkVGhyb3R0bGVkO1xuICAgIGxldCBmbHVzaFVwbG9hZCwgZmx1c2hEb3dubG9hZDtcblxuICAgIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgICBmbHVzaFVwbG9hZCAmJiBmbHVzaFVwbG9hZCgpOyAvLyBmbHVzaCBldmVudHNcbiAgICAgIGZsdXNoRG93bmxvYWQgJiYgZmx1c2hEb3dubG9hZCgpOyAvLyBmbHVzaCBldmVudHNcblxuICAgICAgX2NvbmZpZy5jYW5jZWxUb2tlbiAmJiBfY29uZmlnLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG9uQ2FuY2VsZWQpO1xuXG4gICAgICBfY29uZmlnLnNpZ25hbCAmJiBfY29uZmlnLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQ2FuY2VsZWQpO1xuICAgIH1cblxuICAgIGxldCByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICByZXF1ZXN0Lm9wZW4oX2NvbmZpZy5tZXRob2QudG9VcHBlckNhc2UoKSwgX2NvbmZpZy51cmwsIHRydWUpO1xuXG4gICAgLy8gU2V0IHRoZSByZXF1ZXN0IHRpbWVvdXQgaW4gTVNcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBfY29uZmlnLnRpbWVvdXQ7XG5cbiAgICBmdW5jdGlvbiBvbmxvYWRlbmQoKSB7XG4gICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKFxuICAgICAgICAnZ2V0QWxsUmVzcG9uc2VIZWFkZXJzJyBpbiByZXF1ZXN0ICYmIHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSAhcmVzcG9uc2VUeXBlIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nID9cbiAgICAgICAgcmVxdWVzdC5yZXNwb25zZVRleHQgOiByZXF1ZXN0LnJlc3BvbnNlO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YSxcbiAgICAgICAgc3RhdHVzOiByZXF1ZXN0LnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgc2V0dGxlKGZ1bmN0aW9uIF9yZXNvbHZlKHZhbHVlKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9LCBmdW5jdGlvbiBfcmVqZWN0KGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgcmVzcG9uc2UpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoJ29ubG9hZGVuZCcgaW4gcmVxdWVzdCkge1xuICAgICAgLy8gVXNlIG9ubG9hZGVuZCBpZiBhdmFpbGFibGVcbiAgICAgIHJlcXVlc3Qub25sb2FkZW5kID0gb25sb2FkZW5kO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMaXN0ZW4gZm9yIHJlYWR5IHN0YXRlIHRvIGVtdWxhdGUgb25sb2FkZW5kXG4gICAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUxvYWQoKSB7XG4gICAgICAgIGlmICghcmVxdWVzdCB8fCByZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgcmVxdWVzdCBlcnJvcmVkIG91dCBhbmQgd2UgZGlkbid0IGdldCBhIHJlc3BvbnNlLCB0aGlzIHdpbGwgYmVcbiAgICAgICAgLy8gaGFuZGxlZCBieSBvbmVycm9yIGluc3RlYWRcbiAgICAgICAgLy8gV2l0aCBvbmUgZXhjZXB0aW9uOiByZXF1ZXN0IHRoYXQgdXNpbmcgZmlsZTogcHJvdG9jb2wsIG1vc3QgYnJvd3NlcnNcbiAgICAgICAgLy8gd2lsbCByZXR1cm4gc3RhdHVzIGFzIDAgZXZlbiB0aG91Z2ggaXQncyBhIHN1Y2Nlc3NmdWwgcmVxdWVzdFxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDAgJiYgIShyZXF1ZXN0LnJlc3BvbnNlVVJMICYmIHJlcXVlc3QucmVzcG9uc2VVUkwuaW5kZXhPZignZmlsZTonKSA9PT0gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVhZHlzdGF0ZSBoYW5kbGVyIGlzIGNhbGxpbmcgYmVmb3JlIG9uZXJyb3Igb3Igb250aW1lb3V0IGhhbmRsZXJzLFxuICAgICAgICAvLyBzbyB3ZSBzaG91bGQgY2FsbCBvbmxvYWRlbmQgb24gdGhlIG5leHQgJ3RpY2snXG4gICAgICAgIHNldFRpbWVvdXQob25sb2FkZW5kKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGJyb3dzZXIgcmVxdWVzdCBjYW5jZWxsYXRpb24gKGFzIG9wcG9zZWQgdG8gYSBtYW51YWwgY2FuY2VsbGF0aW9uKVxuICAgIHJlcXVlc3Qub25hYm9ydCA9IGZ1bmN0aW9uIGhhbmRsZUFib3J0KCkge1xuICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdSZXF1ZXN0IGFib3J0ZWQnLCBBeGlvc0Vycm9yLkVDT05OQUJPUlRFRCwgY29uZmlnLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgbG93IGxldmVsIG5ldHdvcmsgZXJyb3JzXG4gICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gaGFuZGxlRXJyb3IoKSB7XG4gICAgICAvLyBSZWFsIGVycm9ycyBhcmUgaGlkZGVuIGZyb20gdXMgYnkgdGhlIGJyb3dzZXJcbiAgICAgIC8vIG9uZXJyb3Igc2hvdWxkIG9ubHkgZmlyZSBpZiBpdCdzIGEgbmV0d29yayBlcnJvclxuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdOZXR3b3JrIEVycm9yJywgQXhpb3NFcnJvci5FUlJfTkVUV09SSywgY29uZmlnLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgdGltZW91dFxuICAgIHJlcXVlc3Qub250aW1lb3V0ID0gZnVuY3Rpb24gaGFuZGxlVGltZW91dCgpIHtcbiAgICAgIGxldCB0aW1lb3V0RXJyb3JNZXNzYWdlID0gX2NvbmZpZy50aW1lb3V0ID8gJ3RpbWVvdXQgb2YgJyArIF9jb25maWcudGltZW91dCArICdtcyBleGNlZWRlZCcgOiAndGltZW91dCBleGNlZWRlZCc7XG4gICAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSBfY29uZmlnLnRyYW5zaXRpb25hbCB8fCB0cmFuc2l0aW9uYWxEZWZhdWx0cztcbiAgICAgIGlmIChfY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSA9IF9jb25maWcudGltZW91dEVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSxcbiAgICAgICAgdHJhbnNpdGlvbmFsLmNsYXJpZnlUaW1lb3V0RXJyb3IgPyBBeGlvc0Vycm9yLkVUSU1FRE9VVCA6IEF4aW9zRXJyb3IuRUNPTk5BQk9SVEVELFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlcXVlc3QpKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfTtcblxuICAgIC8vIFJlbW92ZSBDb250ZW50LVR5cGUgaWYgZGF0YSBpcyB1bmRlZmluZWRcbiAgICByZXF1ZXN0RGF0YSA9PT0gdW5kZWZpbmVkICYmIHJlcXVlc3RIZWFkZXJzLnNldENvbnRlbnRUeXBlKG51bGwpO1xuXG4gICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcbiAgICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHJlcXVlc3QpIHtcbiAgICAgIHV0aWxzLmZvckVhY2gocmVxdWVzdEhlYWRlcnMudG9KU09OKCksIGZ1bmN0aW9uIHNldFJlcXVlc3RIZWFkZXIodmFsLCBrZXkpIHtcbiAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgdmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFkZCB3aXRoQ3JlZGVudGlhbHMgdG8gcmVxdWVzdCBpZiBuZWVkZWRcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKF9jb25maWcud2l0aENyZWRlbnRpYWxzKSkge1xuICAgICAgcmVxdWVzdC53aXRoQ3JlZGVudGlhbHMgPSAhIV9jb25maWcud2l0aENyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIC8vIEFkZCByZXNwb25zZVR5cGUgdG8gcmVxdWVzdCBpZiBuZWVkZWRcbiAgICBpZiAocmVzcG9uc2VUeXBlICYmIHJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XG4gICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9IF9jb25maWcucmVzcG9uc2VUeXBlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBwcm9ncmVzcyBpZiBuZWVkZWRcbiAgICBpZiAob25Eb3dubG9hZFByb2dyZXNzKSB7XG4gICAgICAoW2Rvd25sb2FkVGhyb3R0bGVkLCBmbHVzaERvd25sb2FkXSA9IHByb2dyZXNzRXZlbnRSZWR1Y2VyKG9uRG93bmxvYWRQcm9ncmVzcywgdHJ1ZSkpO1xuICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGRvd25sb2FkVGhyb3R0bGVkKTtcbiAgICB9XG5cbiAgICAvLyBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdXBsb2FkIGV2ZW50c1xuICAgIGlmIChvblVwbG9hZFByb2dyZXNzICYmIHJlcXVlc3QudXBsb2FkKSB7XG4gICAgICAoW3VwbG9hZFRocm90dGxlZCwgZmx1c2hVcGxvYWRdID0gcHJvZ3Jlc3NFdmVudFJlZHVjZXIob25VcGxvYWRQcm9ncmVzcykpO1xuXG4gICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIHVwbG9hZFRocm90dGxlZCk7XG5cbiAgICAgIHJlcXVlc3QudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBmbHVzaFVwbG9hZCk7XG4gICAgfVxuXG4gICAgaWYgKF9jb25maWcuY2FuY2VsVG9rZW4gfHwgX2NvbmZpZy5zaWduYWwpIHtcbiAgICAgIC8vIEhhbmRsZSBjYW5jZWxsYXRpb25cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgICBvbkNhbmNlbGVkID0gY2FuY2VsID0+IHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdCghY2FuY2VsIHx8IGNhbmNlbC50eXBlID8gbmV3IENhbmNlbGVkRXJyb3IobnVsbCwgY29uZmlnLCByZXF1ZXN0KSA6IGNhbmNlbCk7XG4gICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICB9O1xuXG4gICAgICBfY29uZmlnLmNhbmNlbFRva2VuICYmIF9jb25maWcuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKG9uQ2FuY2VsZWQpO1xuICAgICAgaWYgKF9jb25maWcuc2lnbmFsKSB7XG4gICAgICAgIF9jb25maWcuc2lnbmFsLmFib3J0ZWQgPyBvbkNhbmNlbGVkKCkgOiBfY29uZmlnLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQ2FuY2VsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3RvY29sID0gcGFyc2VQcm90b2NvbChfY29uZmlnLnVybCk7XG5cbiAgICBpZiAocHJvdG9jb2wgJiYgcGxhdGZvcm0ucHJvdG9jb2xzLmluZGV4T2YocHJvdG9jb2wpID09PSAtMSkge1xuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdVbnN1cHBvcnRlZCBwcm90b2NvbCAnICsgcHJvdG9jb2wgKyAnOicsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVFVRVNULCBjb25maWcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cblxuICAgIC8vIFNlbmQgdGhlIHJlcXVlc3RcbiAgICByZXF1ZXN0LnNlbmQocmVxdWVzdERhdGEgfHwgbnVsbCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/adapters/xhr.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/axios.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/axios.js ***! \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/bind.js\");\n/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/Axios.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/Axios.js\");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/formDataToJSON.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cancel/CanceledError.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CancelToken.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CancelToken.js\");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/isCancel.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/isCancel.js\");\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./env/data.js */ \"(app-pages-browser)/./node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/toFormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/spread.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/spread.js\");\n/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/isAxiosError.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ \"(app-pages-browser)/./node_modules/axios/lib/adapters/adapters.js\");\n/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/HttpStatusCode.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](defaultConfig);\n const instance = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype.request, context);\n\n // Copy axios.prototype to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance((0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n// Expose Cancel & CancelToken\naxios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\naxios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\naxios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\naxios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_8__.VERSION;\naxios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n\n// Expose AxiosError class\naxios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n\n// Expose isAxiosError\naxios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n\n// Expose mergeConfig\naxios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n\naxios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n\naxios.formToJSON = thing => (0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(_utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"].getAdapter;\n\naxios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"];\n\naxios.default = axios;\n\n// this module should only have a default export\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (axios);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYXhpb3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWE7O0FBRWtCO0FBQ007QUFDRDtBQUNZO0FBQ0w7QUFDYztBQUNIO0FBQ0o7QUFDTjtBQUNOO0FBQ1c7QUFDSDtBQUNMO0FBQ1k7QUFDSDtBQUNKO0FBQ1c7O0FBRXpEO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0Esc0JBQXNCLHNEQUFLO0FBQzNCLG1CQUFtQiw0REFBSSxDQUFDLHNEQUFLOztBQUU3QjtBQUNBLEVBQUUsaURBQUssa0JBQWtCLHNEQUFLLHNCQUFzQixpQkFBaUI7O0FBRXJFO0FBQ0EsRUFBRSxpREFBSyxrQ0FBa0MsaUJBQWlCOztBQUUxRDtBQUNBO0FBQ0EsMEJBQTBCLGdFQUFXO0FBQ3JDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsMERBQVE7O0FBRXJDO0FBQ0EsY0FBYyxzREFBSzs7QUFFbkI7QUFDQSxzQkFBc0IsZ0VBQWE7QUFDbkMsb0JBQW9CLDhEQUFXO0FBQy9CLGlCQUFpQiwyREFBUTtBQUN6QixnQkFBZ0IsaURBQU87QUFDdkIsbUJBQW1CLDhEQUFVOztBQUU3QjtBQUNBLG1CQUFtQiw0REFBVTs7QUFFN0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLDJEQUFNOztBQUVyQjtBQUNBLHFCQUFxQixpRUFBWTs7QUFFakM7QUFDQSxvQkFBb0IsNERBQVc7O0FBRS9CLHFCQUFxQiw4REFBWTs7QUFFakMsNEJBQTRCLHVFQUFjLENBQUMsaURBQUs7O0FBRWhELG1CQUFtQiw4REFBUTs7QUFFM0IsdUJBQXVCLG1FQUFjOztBQUVyQzs7QUFFQTtBQUNBLGlFQUFlLEtBQUsiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9heGlvcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzLmpzJztcbmltcG9ydCBiaW5kIGZyb20gJy4vaGVscGVycy9iaW5kLmpzJztcbmltcG9ydCBBeGlvcyBmcm9tICcuL2NvcmUvQXhpb3MuanMnO1xuaW1wb3J0IG1lcmdlQ29uZmlnIGZyb20gJy4vY29yZS9tZXJnZUNvbmZpZy5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cy9pbmRleC5qcyc7XG5pbXBvcnQgZm9ybURhdGFUb0pTT04gZnJvbSAnLi9oZWxwZXJzL2Zvcm1EYXRhVG9KU09OLmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4vY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMnO1xuaW1wb3J0IENhbmNlbFRva2VuIGZyb20gJy4vY2FuY2VsL0NhbmNlbFRva2VuLmpzJztcbmltcG9ydCBpc0NhbmNlbCBmcm9tICcuL2NhbmNlbC9pc0NhbmNlbC5qcyc7XG5pbXBvcnQge1ZFUlNJT059IGZyb20gJy4vZW52L2RhdGEuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi9oZWxwZXJzL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IHNwcmVhZCBmcm9tICcuL2hlbHBlcnMvc3ByZWFkLmpzJztcbmltcG9ydCBpc0F4aW9zRXJyb3IgZnJvbSAnLi9oZWxwZXJzL2lzQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gXCIuL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQgYWRhcHRlcnMgZnJvbSAnLi9hZGFwdGVycy9hZGFwdGVycy5qcyc7XG5pbXBvcnQgSHR0cFN0YXR1c0NvZGUgZnJvbSAnLi9oZWxwZXJzL0h0dHBTdGF0dXNDb2RlLmpzJztcblxuLyoqXG4gKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXhpb3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdENvbmZpZyBUaGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm5zIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdENvbmZpZykge1xuICBjb25zdCBjb250ZXh0ID0gbmV3IEF4aW9zKGRlZmF1bHRDb25maWcpO1xuICBjb25zdCBpbnN0YW5jZSA9IGJpbmQoQXhpb3MucHJvdG90eXBlLnJlcXVlc3QsIGNvbnRleHQpO1xuXG4gIC8vIENvcHkgYXhpb3MucHJvdG90eXBlIHRvIGluc3RhbmNlXG4gIHV0aWxzLmV4dGVuZChpbnN0YW5jZSwgQXhpb3MucHJvdG90eXBlLCBjb250ZXh0LCB7YWxsT3duS2V5czogdHJ1ZX0pO1xuXG4gIC8vIENvcHkgY29udGV4dCB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIGNvbnRleHQsIG51bGwsIHthbGxPd25LZXlzOiB0cnVlfSk7XG5cbiAgLy8gRmFjdG9yeSBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICBpbnN0YW5jZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoaW5zdGFuY2VDb25maWcpIHtcbiAgICByZXR1cm4gY3JlYXRlSW5zdGFuY2UobWVyZ2VDb25maWcoZGVmYXVsdENvbmZpZywgaW5zdGFuY2VDb25maWcpKTtcbiAgfTtcblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIENyZWF0ZSB0aGUgZGVmYXVsdCBpbnN0YW5jZSB0byBiZSBleHBvcnRlZFxuY29uc3QgYXhpb3MgPSBjcmVhdGVJbnN0YW5jZShkZWZhdWx0cyk7XG5cbi8vIEV4cG9zZSBBeGlvcyBjbGFzcyB0byBhbGxvdyBjbGFzcyBpbmhlcml0YW5jZVxuYXhpb3MuQXhpb3MgPSBBeGlvcztcblxuLy8gRXhwb3NlIENhbmNlbCAmIENhbmNlbFRva2VuXG5heGlvcy5DYW5jZWxlZEVycm9yID0gQ2FuY2VsZWRFcnJvcjtcbmF4aW9zLkNhbmNlbFRva2VuID0gQ2FuY2VsVG9rZW47XG5heGlvcy5pc0NhbmNlbCA9IGlzQ2FuY2VsO1xuYXhpb3MuVkVSU0lPTiA9IFZFUlNJT047XG5heGlvcy50b0Zvcm1EYXRhID0gdG9Gb3JtRGF0YTtcblxuLy8gRXhwb3NlIEF4aW9zRXJyb3IgY2xhc3NcbmF4aW9zLkF4aW9zRXJyb3IgPSBBeGlvc0Vycm9yO1xuXG4vLyBhbGlhcyBmb3IgQ2FuY2VsZWRFcnJvciBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuYXhpb3MuQ2FuY2VsID0gYXhpb3MuQ2FuY2VsZWRFcnJvcjtcblxuLy8gRXhwb3NlIGFsbC9zcHJlYWRcbmF4aW9zLmFsbCA9IGZ1bmN0aW9uIGFsbChwcm9taXNlcykge1xuICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufTtcblxuYXhpb3Muc3ByZWFkID0gc3ByZWFkO1xuXG4vLyBFeHBvc2UgaXNBeGlvc0Vycm9yXG5heGlvcy5pc0F4aW9zRXJyb3IgPSBpc0F4aW9zRXJyb3I7XG5cbi8vIEV4cG9zZSBtZXJnZUNvbmZpZ1xuYXhpb3MubWVyZ2VDb25maWcgPSBtZXJnZUNvbmZpZztcblxuYXhpb3MuQXhpb3NIZWFkZXJzID0gQXhpb3NIZWFkZXJzO1xuXG5heGlvcy5mb3JtVG9KU09OID0gdGhpbmcgPT4gZm9ybURhdGFUb0pTT04odXRpbHMuaXNIVE1MRm9ybSh0aGluZykgPyBuZXcgRm9ybURhdGEodGhpbmcpIDogdGhpbmcpO1xuXG5heGlvcy5nZXRBZGFwdGVyID0gYWRhcHRlcnMuZ2V0QWRhcHRlcjtcblxuYXhpb3MuSHR0cFN0YXR1c0NvZGUgPSBIdHRwU3RhdHVzQ29kZTtcblxuYXhpb3MuZGVmYXVsdCA9IGF4aW9zO1xuXG4vLyB0aGlzIG1vZHVsZSBzaG91bGQgb25seSBoYXZlIGEgZGVmYXVsdCBleHBvcnRcbmV4cG9ydCBkZWZhdWx0IGF4aW9zXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/axios.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/cancel/CancelToken.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\");\n\n\n\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CancelToken);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWE7O0FBRWtDOztBQUUvQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEseUJBQXlCLHlEQUFhO0FBQ3RDO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9DYW5jZWxUb2tlbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4vQ2FuY2VsZWRFcnJvci5qcyc7XG5cbi8qKlxuICogQSBgQ2FuY2VsVG9rZW5gIGlzIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcXVlc3QgY2FuY2VsbGF0aW9uIG9mIGFuIG9wZXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBleGVjdXRvciBUaGUgZXhlY3V0b3IgZnVuY3Rpb24uXG4gKlxuICogQHJldHVybnMge0NhbmNlbFRva2VufVxuICovXG5jbGFzcyBDYW5jZWxUb2tlbiB7XG4gIGNvbnN0cnVjdG9yKGV4ZWN1dG9yKSB7XG4gICAgaWYgKHR5cGVvZiBleGVjdXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgIH1cblxuICAgIGxldCByZXNvbHZlUHJvbWlzZTtcblxuICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIHByb21pc2VFeGVjdXRvcihyZXNvbHZlKSB7XG4gICAgICByZXNvbHZlUHJvbWlzZSA9IHJlc29sdmU7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2tlbiA9IHRoaXM7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIHRoaXMucHJvbWlzZS50aGVuKGNhbmNlbCA9PiB7XG4gICAgICBpZiAoIXRva2VuLl9saXN0ZW5lcnMpIHJldHVybjtcblxuICAgICAgbGV0IGkgPSB0b2tlbi5fbGlzdGVuZXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKGktLSA+IDApIHtcbiAgICAgICAgdG9rZW4uX2xpc3RlbmVyc1tpXShjYW5jZWwpO1xuICAgICAgfVxuICAgICAgdG9rZW4uX2xpc3RlbmVycyA9IG51bGw7XG4gICAgfSk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIHRoaXMucHJvbWlzZS50aGVuID0gb25mdWxmaWxsZWQgPT4ge1xuICAgICAgbGV0IF9yZXNvbHZlO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgdG9rZW4uc3Vic2NyaWJlKHJlc29sdmUpO1xuICAgICAgICBfcmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICB9KS50aGVuKG9uZnVsZmlsbGVkKTtcblxuICAgICAgcHJvbWlzZS5jYW5jZWwgPSBmdW5jdGlvbiByZWplY3QoKSB7XG4gICAgICAgIHRva2VuLnVuc3Vic2NyaWJlKF9yZXNvbHZlKTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBleGVjdXRvcihmdW5jdGlvbiBjYW5jZWwobWVzc2FnZSwgY29uZmlnLCByZXF1ZXN0KSB7XG4gICAgICBpZiAodG9rZW4ucmVhc29uKSB7XG4gICAgICAgIC8vIENhbmNlbGxhdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHJlcXVlc3RlZFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRva2VuLnJlYXNvbiA9IG5ldyBDYW5jZWxlZEVycm9yKG1lc3NhZ2UsIGNvbmZpZywgcmVxdWVzdCk7XG4gICAgICByZXNvbHZlUHJvbWlzZSh0b2tlbi5yZWFzb24pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhIGBDYW5jZWxlZEVycm9yYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICAgKi9cbiAgdGhyb3dJZlJlcXVlc3RlZCgpIHtcbiAgICBpZiAodGhpcy5yZWFzb24pIHtcbiAgICAgIHRocm93IHRoaXMucmVhc29uO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gdGhlIGNhbmNlbCBzaWduYWxcbiAgICovXG5cbiAgc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBsaXN0ZW5lcih0aGlzLnJlYXNvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xpc3RlbmVycykge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0ZW5lcnMgPSBbbGlzdGVuZXJdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSBmcm9tIHRoZSBjYW5jZWwgc2lnbmFsXG4gICAqL1xuXG4gIHVuc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgdG9BYm9ydFNpZ25hbCgpIHtcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgY29uc3QgYWJvcnQgPSAoZXJyKSA9PiB7XG4gICAgICBjb250cm9sbGVyLmFib3J0KGVycik7XG4gICAgfTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKGFib3J0KTtcblxuICAgIGNvbnRyb2xsZXIuc2lnbmFsLnVuc3Vic2NyaWJlID0gKCkgPT4gdGhpcy51bnN1YnNjcmliZShhYm9ydCk7XG5cbiAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIG5ldyBgQ2FuY2VsVG9rZW5gIGFuZCBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLFxuICAgKiBjYW5jZWxzIHRoZSBgQ2FuY2VsVG9rZW5gLlxuICAgKi9cbiAgc3RhdGljIHNvdXJjZSgpIHtcbiAgICBsZXQgY2FuY2VsO1xuICAgIGNvbnN0IHRva2VuID0gbmV3IENhbmNlbFRva2VuKGZ1bmN0aW9uIGV4ZWN1dG9yKGMpIHtcbiAgICAgIGNhbmNlbCA9IGM7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgY2FuY2VsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDYW5jZWxUb2tlbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/cancel/CancelToken.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/cancel/CanceledError.js ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].call(this, message == null ? 'canceled' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n __CANCEL__: true\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CanceledError);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWE7O0FBRWtDO0FBQ2Y7O0FBRWhDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLFNBQVM7QUFDcEIsV0FBVyxTQUFTO0FBQ3BCO0FBQ0EsYUFBYSxlQUFlO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkRBQVUsb0RBQW9ELDJEQUFVO0FBQzFFO0FBQ0E7O0FBRUEsaURBQUsseUJBQXlCLDJEQUFVO0FBQ3hDO0FBQ0EsQ0FBQzs7QUFFRCxpRUFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIEEgYENhbmNlbGVkRXJyb3JgIGlzIGFuIG9iamVjdCB0aGF0IGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyBjYW5jZWxlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZz19IG1lc3NhZ2UgVGhlIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdD19IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3Q9fSByZXF1ZXN0IFRoZSByZXF1ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtDYW5jZWxlZEVycm9yfSBUaGUgY3JlYXRlZCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gQ2FuY2VsZWRFcnJvcihtZXNzYWdlLCBjb25maWcsIHJlcXVlc3QpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIEF4aW9zRXJyb3IuY2FsbCh0aGlzLCBtZXNzYWdlID09IG51bGwgPyAnY2FuY2VsZWQnIDogbWVzc2FnZSwgQXhpb3NFcnJvci5FUlJfQ0FOQ0VMRUQsIGNvbmZpZywgcmVxdWVzdCk7XG4gIHRoaXMubmFtZSA9ICdDYW5jZWxlZEVycm9yJztcbn1cblxudXRpbHMuaW5oZXJpdHMoQ2FuY2VsZWRFcnJvciwgQXhpb3NFcnJvciwge1xuICBfX0NBTkNFTF9fOiB0cnVlXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FuY2VsZWRFcnJvcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/cancel/isCancel.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/cancel/isCancel.js ***! \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isCancel)\n/* harmony export */ });\n\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL2lzQ2FuY2VsLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFRTtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvaXNDYW5jZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/cancel/isCancel.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/Axios.js": /*!**********************************************!*\ !*** ./node_modules/axios/lib/core/Axios.js ***! \**********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/buildURL.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/buildURL.js\");\n/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InterceptorManager.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/InterceptorManager.js\");\n/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dispatchRequest.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/dispatchRequest.js\");\n/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeConfig.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./buildFullPath.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/buildFullPath.js\");\n/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/validator.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/validator.js\");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](),\n response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].merge(\n headers.common,\n headers[config.method]\n );\n\n headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this.defaults, config);\n const fullPath = (0,_buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(config.baseURL, config.url, config.allowAbsoluteUrls);\n return (0,_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\n_utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBYTs7QUFFcUI7QUFDWTtBQUNXO0FBQ047QUFDUjtBQUNJO0FBQ0M7QUFDSDs7QUFFN0MsbUJBQW1CLDZEQUFTOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw4REFBa0I7QUFDckMsb0JBQW9CLDhEQUFrQjtBQUN0QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZUFBZTtBQUM1QixhQUFhLFNBQVM7QUFDdEI7QUFDQSxlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBLGFBQWEsMkRBQVc7O0FBRXhCLFdBQVcseUNBQXlDOztBQUVwRDtBQUNBLE1BQU0sNkRBQVM7QUFDZjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQSxVQUFVLGlEQUFLO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLFFBQVEsNkRBQVM7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBLElBQUksNkRBQVM7QUFDYjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0Esb0NBQW9DLGlEQUFLO0FBQ3pDO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLGlEQUFLO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLHdEQUFZOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsMkRBQWU7QUFDcEM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsMkRBQWU7QUFDL0IsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGFBQWEsMkRBQVc7QUFDeEIscUJBQXFCLDZEQUFhO0FBQ2xDLFdBQVcsZ0VBQVE7QUFDbkI7QUFDQTs7QUFFQTtBQUNBLGlEQUFLO0FBQ0w7QUFDQTtBQUNBLHdCQUF3QiwyREFBVyxhQUFhO0FBQ2hEO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsS0FBSztBQUNMO0FBQ0EsQ0FBQzs7QUFFRCxpREFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIsMkRBQVcsYUFBYTtBQUNsRDtBQUNBO0FBQ0E7QUFDQSxVQUFVLElBQUk7QUFDZDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxDQUFDOztBQUVELGlFQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgYnVpbGRVUkwgZnJvbSAnLi4vaGVscGVycy9idWlsZFVSTC5qcyc7XG5pbXBvcnQgSW50ZXJjZXB0b3JNYW5hZ2VyIGZyb20gJy4vSW50ZXJjZXB0b3JNYW5hZ2VyLmpzJztcbmltcG9ydCBkaXNwYXRjaFJlcXVlc3QgZnJvbSAnLi9kaXNwYXRjaFJlcXVlc3QuanMnO1xuaW1wb3J0IG1lcmdlQ29uZmlnIGZyb20gJy4vbWVyZ2VDb25maWcuanMnO1xuaW1wb3J0IGJ1aWxkRnVsbFBhdGggZnJvbSAnLi9idWlsZEZ1bGxQYXRoLmpzJztcbmltcG9ydCB2YWxpZGF0b3IgZnJvbSAnLi4vaGVscGVycy92YWxpZGF0b3IuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuL0F4aW9zSGVhZGVycy5qcyc7XG5cbmNvbnN0IHZhbGlkYXRvcnMgPSB2YWxpZGF0b3IudmFsaWRhdG9ycztcblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaW5zdGFuY2VDb25maWcgVGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgaW5zdGFuY2VcbiAqXG4gKiBAcmV0dXJuIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuY2xhc3MgQXhpb3Mge1xuICBjb25zdHJ1Y3RvcihpbnN0YW5jZUNvbmZpZykge1xuICAgIHRoaXMuZGVmYXVsdHMgPSBpbnN0YW5jZUNvbmZpZztcbiAgICB0aGlzLmludGVyY2VwdG9ycyA9IHtcbiAgICAgIHJlcXVlc3Q6IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKSxcbiAgICAgIHJlc3BvbnNlOiBuZXcgSW50ZXJjZXB0b3JNYW5hZ2VyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoIGEgcmVxdWVzdFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGNvbmZpZ09yVXJsIFRoZSBjb25maWcgc3BlY2lmaWMgZm9yIHRoaXMgcmVxdWVzdCAobWVyZ2VkIHdpdGggdGhpcy5kZWZhdWx0cylcbiAgICogQHBhcmFtIHs/T2JqZWN0fSBjb25maWdcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9IFRoZSBQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZFxuICAgKi9cbiAgYXN5bmMgcmVxdWVzdChjb25maWdPclVybCwgY29uZmlnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGxldCBkdW1teSA9IHt9O1xuXG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlID8gRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZHVtbXkpIDogKGR1bW15ID0gbmV3IEVycm9yKCkpO1xuXG4gICAgICAgIC8vIHNsaWNlIG9mZiB0aGUgRXJyb3I6IC4uLiBsaW5lXG4gICAgICAgIGNvbnN0IHN0YWNrID0gZHVtbXkuc3RhY2sgPyBkdW1teS5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCAnJykgOiAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoIWVyci5zdGFjaykge1xuICAgICAgICAgICAgZXJyLnN0YWNrID0gc3RhY2s7XG4gICAgICAgICAgICAvLyBtYXRjaCB3aXRob3V0IHRoZSAyIHRvcCBzdGFjayBsaW5lc1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhY2sgJiYgIVN0cmluZyhlcnIuc3RhY2spLmVuZHNXaXRoKHN0YWNrLnJlcGxhY2UoL14uK1xcbi4rXFxuLywgJycpKSkge1xuICAgICAgICAgICAgZXJyLnN0YWNrICs9ICdcXG4nICsgc3RhY2tcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBpZ25vcmUgdGhlIGNhc2Ugd2hlcmUgXCJzdGFja1wiIGlzIGFuIHVuLXdyaXRhYmxlIHByb3BlcnR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIF9yZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpIHtcbiAgICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgICAvLyBBbGxvdyBmb3IgYXhpb3MoJ2V4YW1wbGUvdXJsJ1ssIGNvbmZpZ10pIGEgbGEgZmV0Y2ggQVBJXG4gICAgaWYgKHR5cGVvZiBjb25maWdPclVybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcbiAgICAgIGNvbmZpZy51cmwgPSBjb25maWdPclVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gY29uZmlnT3JVcmwgfHwge307XG4gICAgfVxuXG4gICAgY29uZmlnID0gbWVyZ2VDb25maWcodGhpcy5kZWZhdWx0cywgY29uZmlnKTtcblxuICAgIGNvbnN0IHt0cmFuc2l0aW9uYWwsIHBhcmFtc1NlcmlhbGl6ZXIsIGhlYWRlcnN9ID0gY29uZmlnO1xuXG4gICAgaWYgKHRyYW5zaXRpb25hbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWxpZGF0b3IuYXNzZXJ0T3B0aW9ucyh0cmFuc2l0aW9uYWwsIHtcbiAgICAgICAgc2lsZW50SlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiksXG4gICAgICAgIGZvcmNlZEpTT05QYXJzaW5nOiB2YWxpZGF0b3JzLnRyYW5zaXRpb25hbCh2YWxpZGF0b3JzLmJvb2xlYW4pLFxuICAgICAgICBjbGFyaWZ5VGltZW91dEVycm9yOiB2YWxpZGF0b3JzLnRyYW5zaXRpb25hbCh2YWxpZGF0b3JzLmJvb2xlYW4pXG4gICAgICB9LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtc1NlcmlhbGl6ZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHV0aWxzLmlzRnVuY3Rpb24ocGFyYW1zU2VyaWFsaXplcikpIHtcbiAgICAgICAgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIgPSB7XG4gICAgICAgICAgc2VyaWFsaXplOiBwYXJhbXNTZXJpYWxpemVyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHBhcmFtc1NlcmlhbGl6ZXIsIHtcbiAgICAgICAgICBlbmNvZGU6IHZhbGlkYXRvcnMuZnVuY3Rpb24sXG4gICAgICAgICAgc2VyaWFsaXplOiB2YWxpZGF0b3JzLmZ1bmN0aW9uXG4gICAgICAgIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCBjb25maWcuYWxsb3dBYnNvbHV0ZVVybHNcbiAgICBpZiAoY29uZmlnLmFsbG93QWJzb2x1dGVVcmxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uZmlnLmFsbG93QWJzb2x1dGVVcmxzID0gdGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLmFsbG93QWJzb2x1dGVVcmxzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YWxpZGF0b3IuYXNzZXJ0T3B0aW9ucyhjb25maWcsIHtcbiAgICAgIGJhc2VVcmw6IHZhbGlkYXRvcnMuc3BlbGxpbmcoJ2Jhc2VVUkwnKSxcbiAgICAgIHdpdGhYc3JmVG9rZW46IHZhbGlkYXRvcnMuc3BlbGxpbmcoJ3dpdGhYU1JGVG9rZW4nKVxuICAgIH0sIHRydWUpO1xuXG4gICAgLy8gU2V0IGNvbmZpZy5tZXRob2RcbiAgICBjb25maWcubWV0aG9kID0gKGNvbmZpZy5tZXRob2QgfHwgdGhpcy5kZWZhdWx0cy5tZXRob2QgfHwgJ2dldCcpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAvLyBGbGF0dGVuIGhlYWRlcnNcbiAgICBsZXQgY29udGV4dEhlYWRlcnMgPSBoZWFkZXJzICYmIHV0aWxzLm1lcmdlKFxuICAgICAgaGVhZGVycy5jb21tb24sXG4gICAgICBoZWFkZXJzW2NvbmZpZy5tZXRob2RdXG4gICAgKTtcblxuICAgIGhlYWRlcnMgJiYgdXRpbHMuZm9yRWFjaChcbiAgICAgIFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJywgJ2NvbW1vbiddLFxuICAgICAgKG1ldGhvZCkgPT4ge1xuICAgICAgICBkZWxldGUgaGVhZGVyc1ttZXRob2RdO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25maWcuaGVhZGVycyA9IEF4aW9zSGVhZGVycy5jb25jYXQoY29udGV4dEhlYWRlcnMsIGhlYWRlcnMpO1xuXG4gICAgLy8gZmlsdGVyIG91dCBza2lwcGVkIGludGVyY2VwdG9yc1xuICAgIGNvbnN0IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluID0gW107XG4gICAgbGV0IHN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycyA9IHRydWU7XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uIHVuc2hpZnRSZXF1ZXN0SW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgICBpZiAodHlwZW9mIGludGVyY2VwdG9yLnJ1bldoZW4gPT09ICdmdW5jdGlvbicgJiYgaW50ZXJjZXB0b3IucnVuV2hlbihjb25maWcpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycyA9IHN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycyAmJiBpbnRlcmNlcHRvci5zeW5jaHJvbm91cztcblxuICAgICAgcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4udW5zaGlmdChpbnRlcmNlcHRvci5mdWxmaWxsZWQsIGludGVyY2VwdG9yLnJlamVjdGVkKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbiA9IFtdO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24gcHVzaFJlc3BvbnNlSW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgICByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4ucHVzaChpbnRlcmNlcHRvci5mdWxmaWxsZWQsIGludGVyY2VwdG9yLnJlamVjdGVkKTtcbiAgICB9KTtcblxuICAgIGxldCBwcm9taXNlO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgbGVuO1xuXG4gICAgaWYgKCFzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMpIHtcbiAgICAgIGNvbnN0IGNoYWluID0gW2Rpc3BhdGNoUmVxdWVzdC5iaW5kKHRoaXMpLCB1bmRlZmluZWRdO1xuICAgICAgY2hhaW4udW5zaGlmdC5hcHBseShjaGFpbiwgcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4pO1xuICAgICAgY2hhaW4ucHVzaC5hcHBseShjaGFpbiwgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluKTtcbiAgICAgIGxlbiA9IGNoYWluLmxlbmd0aDtcblxuICAgICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShjb25maWcpO1xuXG4gICAgICB3aGlsZSAoaSA8IGxlbikge1xuICAgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGNoYWluW2krK10sIGNoYWluW2krK10pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICBsZW4gPSByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi5sZW5ndGg7XG5cbiAgICBsZXQgbmV3Q29uZmlnID0gY29uZmlnO1xuXG4gICAgaSA9IDA7XG5cbiAgICB3aGlsZSAoaSA8IGxlbikge1xuICAgICAgY29uc3Qgb25GdWxmaWxsZWQgPSByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbltpKytdO1xuICAgICAgY29uc3Qgb25SZWplY3RlZCA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluW2krK107XG4gICAgICB0cnkge1xuICAgICAgICBuZXdDb25maWcgPSBvbkZ1bGZpbGxlZChuZXdDb25maWcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgb25SZWplY3RlZC5jYWxsKHRoaXMsIGVycm9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHByb21pc2UgPSBkaXNwYXRjaFJlcXVlc3QuY2FsbCh0aGlzLCBuZXdDb25maWcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH1cblxuICAgIGkgPSAwO1xuICAgIGxlbiA9IHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbi5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaSA8IGxlbikge1xuICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihyZXNwb25zZUludGVyY2VwdG9yQ2hhaW5baSsrXSwgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluW2krK10pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgZ2V0VXJpKGNvbmZpZykge1xuICAgIGNvbmZpZyA9IG1lcmdlQ29uZmlnKHRoaXMuZGVmYXVsdHMsIGNvbmZpZyk7XG4gICAgY29uc3QgZnVsbFBhdGggPSBidWlsZEZ1bGxQYXRoKGNvbmZpZy5iYXNlVVJMLCBjb25maWcudXJsLCBjb25maWcuYWxsb3dBYnNvbHV0ZVVybHMpO1xuICAgIHJldHVybiBidWlsZFVSTChmdWxsUGF0aCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpO1xuICB9XG59XG5cbi8vIFByb3ZpZGUgYWxpYXNlcyBmb3Igc3VwcG9ydGVkIHJlcXVlc3QgbWV0aG9kc1xudXRpbHMuZm9yRWFjaChbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdvcHRpb25zJ10sIGZ1bmN0aW9uIGZvckVhY2hNZXRob2ROb0RhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odXJsLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsLFxuICAgICAgZGF0YTogKGNvbmZpZyB8fCB7fSkuZGF0YVxuICAgIH0pKTtcbiAgfTtcbn0pO1xuXG51dGlscy5mb3JFYWNoKFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZFdpdGhEYXRhKG1ldGhvZCkge1xuICAvKmVzbGludCBmdW5jLW5hbWVzOjAqL1xuXG4gIGZ1bmN0aW9uIGdlbmVyYXRlSFRUUE1ldGhvZChpc0Zvcm0pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaHR0cE1ldGhvZCh1cmwsIGRhdGEsIGNvbmZpZykge1xuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChtZXJnZUNvbmZpZyhjb25maWcgfHwge30sIHtcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiBpc0Zvcm0gPyB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xuICAgICAgICB9IDoge30sXG4gICAgICAgIHVybCxcbiAgICAgICAgZGF0YVxuICAgICAgfSkpO1xuICAgIH07XG4gIH1cblxuICBBeGlvcy5wcm90b3R5cGVbbWV0aG9kXSA9IGdlbmVyYXRlSFRUUE1ldGhvZCgpO1xuXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2QgKyAnRm9ybSddID0gZ2VuZXJhdGVIVFRQTWV0aG9kKHRydWUpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/Axios.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/core/AxiosError.js ***! \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWE7O0FBRW1COztBQUVoQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaURBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxpREFBSztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkIsQ0FBQzs7QUFFRDtBQUNBLGtEQUFrRCxZQUFZOztBQUU5RDtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxpREFBSztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLGlFQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3NFcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBtZXNzYWdlLCBjb25maWcsIGVycm9yIGNvZGUsIHJlcXVlc3QgYW5kIHJlc3BvbnNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbY29uZmlnXSBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBjcmVhdGVkIGVycm9yLlxuICovXG5mdW5jdGlvbiBBeGlvc0Vycm9yKG1lc3NhZ2UsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcbiAgfVxuXG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMubmFtZSA9ICdBeGlvc0Vycm9yJztcbiAgY29kZSAmJiAodGhpcy5jb2RlID0gY29kZSk7XG4gIGNvbmZpZyAmJiAodGhpcy5jb25maWcgPSBjb25maWcpO1xuICByZXF1ZXN0ICYmICh0aGlzLnJlcXVlc3QgPSByZXF1ZXN0KTtcbiAgaWYgKHJlc3BvbnNlKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgIHRoaXMuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzID8gcmVzcG9uc2Uuc3RhdHVzIDogbnVsbDtcbiAgfVxufVxuXG51dGlscy5pbmhlcml0cyhBeGlvc0Vycm9yLCBFcnJvciwge1xuICB0b0pTT046IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gU3RhbmRhcmRcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIC8vIE1pY3Jvc29mdFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBudW1iZXI6IHRoaXMubnVtYmVyLFxuICAgICAgLy8gTW96aWxsYVxuICAgICAgZmlsZU5hbWU6IHRoaXMuZmlsZU5hbWUsXG4gICAgICBsaW5lTnVtYmVyOiB0aGlzLmxpbmVOdW1iZXIsXG4gICAgICBjb2x1bW5OdW1iZXI6IHRoaXMuY29sdW1uTnVtYmVyLFxuICAgICAgc3RhY2s6IHRoaXMuc3RhY2ssXG4gICAgICAvLyBBeGlvc1xuICAgICAgY29uZmlnOiB1dGlscy50b0pTT05PYmplY3QodGhpcy5jb25maWcpLFxuICAgICAgY29kZTogdGhpcy5jb2RlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1c1xuICAgIH07XG4gIH1cbn0pO1xuXG5jb25zdCBwcm90b3R5cGUgPSBBeGlvc0Vycm9yLnByb3RvdHlwZTtcbmNvbnN0IGRlc2NyaXB0b3JzID0ge307XG5cbltcbiAgJ0VSUl9CQURfT1BUSU9OX1ZBTFVFJyxcbiAgJ0VSUl9CQURfT1BUSU9OJyxcbiAgJ0VDT05OQUJPUlRFRCcsXG4gICdFVElNRURPVVQnLFxuICAnRVJSX05FVFdPUksnLFxuICAnRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUycsXG4gICdFUlJfREVQUkVDQVRFRCcsXG4gICdFUlJfQkFEX1JFU1BPTlNFJyxcbiAgJ0VSUl9CQURfUkVRVUVTVCcsXG4gICdFUlJfQ0FOQ0VMRUQnLFxuICAnRVJSX05PVF9TVVBQT1JUJyxcbiAgJ0VSUl9JTlZBTElEX1VSTCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5dLmZvckVhY2goY29kZSA9PiB7XG4gIGRlc2NyaXB0b3JzW2NvZGVdID0ge3ZhbHVlOiBjb2RlfTtcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhBeGlvc0Vycm9yLCBkZXNjcmlwdG9ycyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnaXNBeGlvc0Vycm9yJywge3ZhbHVlOiB0cnVlfSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5BeGlvc0Vycm9yLmZyb20gPSAoZXJyb3IsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UsIGN1c3RvbVByb3BzKSA9PiB7XG4gIGNvbnN0IGF4aW9zRXJyb3IgPSBPYmplY3QuY3JlYXRlKHByb3RvdHlwZSk7XG5cbiAgdXRpbHMudG9GbGF0T2JqZWN0KGVycm9yLCBheGlvc0Vycm9yLCBmdW5jdGlvbiBmaWx0ZXIob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAhPT0gRXJyb3IucHJvdG90eXBlO1xuICB9LCBwcm9wID0+IHtcbiAgICByZXR1cm4gcHJvcCAhPT0gJ2lzQXhpb3NFcnJvcic7XG4gIH0pO1xuXG4gIEF4aW9zRXJyb3IuY2FsbChheGlvc0Vycm9yLCBlcnJvci5tZXNzYWdlLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlKTtcblxuICBheGlvc0Vycm9yLmNhdXNlID0gZXJyb3I7XG5cbiAgYXhpb3NFcnJvci5uYW1lID0gZXJyb3IubmFtZTtcblxuICBjdXN0b21Qcm9wcyAmJiBPYmplY3QuYXNzaWduKGF4aW9zRXJyb3IsIGN1c3RvbVByb3BzKTtcblxuICByZXR1cm4gYXhpb3NFcnJvcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zRXJyb3I7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/core/AxiosHeaders.js ***! \*****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/parseHeaders.js\");\n\n\n\n\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(value)) return;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders((0,_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(header), valueOrRewrite);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this, (value, header) => {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].freezeMethods(AxiosHeaders);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosHeaders);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0hlYWRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWE7O0FBRW1CO0FBQ3NCOztBQUV0RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUyxpREFBSztBQUNkOztBQUVBO0FBQ0E7QUFDQSwyQkFBMkIsbUJBQW1CO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsTUFBTSxpREFBSztBQUNYO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLE9BQU8saURBQUs7O0FBRVosTUFBTSxpREFBSztBQUNYO0FBQ0E7O0FBRUEsTUFBTSxpREFBSztBQUNYO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLHVCQUF1QixpREFBSzs7QUFFNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGlEQUFLOztBQUV2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0saURBQUs7O0FBRVgsUUFBUSxpREFBSztBQUNiO0FBQ0EsTUFBTSxRQUFRLGlEQUFLO0FBQ25CLGlCQUFpQixvRUFBWTtBQUM3QixNQUFNLFNBQVMsaURBQUs7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLGlEQUFLOztBQUV2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsWUFBWSxpREFBSztBQUNqQjtBQUNBOztBQUVBLFlBQVksaURBQUs7QUFDakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLGlEQUFLOztBQUV2QjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IsaURBQUs7O0FBRXpCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsUUFBUSxpREFBSztBQUNiO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlEQUFLO0FBQ1Qsa0JBQWtCLGlEQUFLOztBQUV2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxJQUFJLGlEQUFLO0FBQ1Qsc0VBQXNFLGlEQUFLO0FBQzNFLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpREFBSzs7QUFFVDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxpREFBSyw2Q0FBNkMsTUFBTTtBQUN4RCxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpREFBSzs7QUFFTCxpRUFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0F4aW9zSGVhZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgcGFyc2VIZWFkZXJzIGZyb20gJy4uL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzJztcblxuY29uc3QgJGludGVybmFscyA9IFN5bWJvbCgnaW50ZXJuYWxzJyk7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlciAmJiBTdHJpbmcoaGVhZGVyKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWUodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHV0aWxzLmlzQXJyYXkodmFsdWUpID8gdmFsdWUubWFwKG5vcm1hbGl6ZVZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVG9rZW5zKHN0cikge1xuICBjb25zdCB0b2tlbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBjb25zdCB0b2tlbnNSRSA9IC8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2c7XG4gIGxldCBtYXRjaDtcblxuICB3aGlsZSAoKG1hdGNoID0gdG9rZW5zUkUuZXhlYyhzdHIpKSkge1xuICAgIHRva2Vuc1ttYXRjaFsxXV0gPSBtYXRjaFsyXTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmNvbnN0IGlzVmFsaWRIZWFkZXJOYW1lID0gKHN0cikgPT4gL15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChzdHIudHJpbSgpKTtcblxuZnVuY3Rpb24gbWF0Y2hIZWFkZXJWYWx1ZShjb250ZXh0LCB2YWx1ZSwgaGVhZGVyLCBmaWx0ZXIsIGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICBpZiAodXRpbHMuaXNGdW5jdGlvbihmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIGZpbHRlci5jYWxsKHRoaXMsIHZhbHVlLCBoZWFkZXIpO1xuICB9XG5cbiAgaWYgKGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICAgIHZhbHVlID0gaGVhZGVyO1xuICB9XG5cbiAgaWYgKCF1dGlscy5pc1N0cmluZyh2YWx1ZSkpIHJldHVybjtcblxuICBpZiAodXRpbHMuaXNTdHJpbmcoZmlsdGVyKSkge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICB9XG5cbiAgaWYgKHV0aWxzLmlzUmVnRXhwKGZpbHRlcikpIHtcbiAgICByZXR1cm4gZmlsdGVyLnRlc3QodmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlci50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csICh3LCBjaGFyLCBzdHIpID0+IHtcbiAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCkgKyBzdHI7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQWNjZXNzb3JzKG9iaiwgaGVhZGVyKSB7XG4gIGNvbnN0IGFjY2Vzc29yTmFtZSA9IHV0aWxzLnRvQ2FtZWxDYXNlKCcgJyArIGhlYWRlcik7XG5cbiAgWydnZXQnLCAnc2V0JywgJ2hhcyddLmZvckVhY2gobWV0aG9kTmFtZSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgbWV0aG9kTmFtZSArIGFjY2Vzc29yTmFtZSwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlzLCBoZWFkZXIsIGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9KTtcbn1cblxuY2xhc3MgQXhpb3NIZWFkZXJzIHtcbiAgY29uc3RydWN0b3IoaGVhZGVycykge1xuICAgIGhlYWRlcnMgJiYgdGhpcy5zZXQoaGVhZGVycyk7XG4gIH1cblxuICBzZXQoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSwgcmV3cml0ZSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gc2V0SGVhZGVyKF92YWx1ZSwgX2hlYWRlciwgX3Jld3JpdGUpIHtcbiAgICAgIGNvbnN0IGxIZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoX2hlYWRlcik7XG5cbiAgICAgIGlmICghbEhlYWRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkoc2VsZiwgbEhlYWRlcik7XG5cbiAgICAgIGlmKCFrZXkgfHwgc2VsZltrZXldID09PSB1bmRlZmluZWQgfHwgX3Jld3JpdGUgPT09IHRydWUgfHwgKF9yZXdyaXRlID09PSB1bmRlZmluZWQgJiYgc2VsZltrZXldICE9PSBmYWxzZSkpIHtcbiAgICAgICAgc2VsZltrZXkgfHwgX2hlYWRlcl0gPSBub3JtYWxpemVWYWx1ZShfdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldEhlYWRlcnMgPSAoaGVhZGVycywgX3Jld3JpdGUpID0+XG4gICAgICB1dGlscy5mb3JFYWNoKGhlYWRlcnMsIChfdmFsdWUsIF9oZWFkZXIpID0+IHNldEhlYWRlcihfdmFsdWUsIF9oZWFkZXIsIF9yZXdyaXRlKSk7XG5cbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChoZWFkZXIpIHx8IGhlYWRlciBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpIHtcbiAgICAgIHNldEhlYWRlcnMoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSlcbiAgICB9IGVsc2UgaWYodXRpbHMuaXNTdHJpbmcoaGVhZGVyKSAmJiAoaGVhZGVyID0gaGVhZGVyLnRyaW0oKSkgJiYgIWlzVmFsaWRIZWFkZXJOYW1lKGhlYWRlcikpIHtcbiAgICAgIHNldEhlYWRlcnMocGFyc2VIZWFkZXJzKGhlYWRlciksIHZhbHVlT3JSZXdyaXRlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzSGVhZGVycyhoZWFkZXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXIuZW50cmllcygpKSB7XG4gICAgICAgIHNldEhlYWRlcih2YWx1ZSwga2V5LCByZXdyaXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyICE9IG51bGwgJiYgc2V0SGVhZGVyKHZhbHVlT3JSZXdyaXRlLCBoZWFkZXIsIHJld3JpdGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0KGhlYWRlciwgcGFyc2VyKSB7XG4gICAgaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKGhlYWRlcik7XG5cbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHRoaXMsIGhlYWRlcik7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW2tleV07XG5cbiAgICAgICAgaWYgKCFwYXJzZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VyID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5zKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1dGlscy5pc0Z1bmN0aW9uKHBhcnNlcikpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VyLmNhbGwodGhpcywgdmFsdWUsIGtleSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXRpbHMuaXNSZWdFeHAocGFyc2VyKSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZXIuZXhlYyh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhcyhoZWFkZXIsIG1hdGNoZXIpIHtcbiAgICBoZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoaGVhZGVyKTtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkodGhpcywgaGVhZGVyKTtcblxuICAgICAgcmV0dXJuICEhKGtleSAmJiB0aGlzW2tleV0gIT09IHVuZGVmaW5lZCAmJiAoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlcikpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBkZWxldGUoaGVhZGVyLCBtYXRjaGVyKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgbGV0IGRlbGV0ZWQgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGRlbGV0ZUhlYWRlcihfaGVhZGVyKSB7XG4gICAgICBfaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoX2hlYWRlcikge1xuICAgICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHNlbGYsIF9oZWFkZXIpO1xuXG4gICAgICAgIGlmIChrZXkgJiYgKCFtYXRjaGVyIHx8IG1hdGNoSGVhZGVyVmFsdWUoc2VsZiwgc2VsZltrZXldLCBrZXksIG1hdGNoZXIpKSkge1xuICAgICAgICAgIGRlbGV0ZSBzZWxmW2tleV07XG5cbiAgICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5KGhlYWRlcikpIHtcbiAgICAgIGhlYWRlci5mb3JFYWNoKGRlbGV0ZUhlYWRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZUhlYWRlcihoZWFkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVkO1xuICB9XG5cbiAgY2xlYXIobWF0Y2hlcikge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlciwgdHJ1ZSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXNba2V5XTtcbiAgICAgICAgZGVsZXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICBub3JtYWxpemUoZm9ybWF0KSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3QgaGVhZGVycyA9IHt9O1xuXG4gICAgdXRpbHMuZm9yRWFjaCh0aGlzLCAodmFsdWUsIGhlYWRlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleShoZWFkZXJzLCBoZWFkZXIpO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHNlbGZba2V5XSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBub3JtYWxpemVkID0gZm9ybWF0ID8gZm9ybWF0SGVhZGVyKGhlYWRlcikgOiBTdHJpbmcoaGVhZGVyKS50cmltKCk7XG5cbiAgICAgIGlmIChub3JtYWxpemVkICE9PSBoZWFkZXIpIHtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgIH1cblxuICAgICAgc2VsZltub3JtYWxpemVkXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgaGVhZGVyc1tub3JtYWxpemVkXSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbmNhdCguLi50YXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsIC4uLnRhcmdldHMpO1xuICB9XG5cbiAgdG9KU09OKGFzU3RyaW5ncykge1xuICAgIGNvbnN0IG9iaiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICB1dGlscy5mb3JFYWNoKHRoaXMsICh2YWx1ZSwgaGVhZGVyKSA9PiB7XG4gICAgICB2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9PSBmYWxzZSAmJiAob2JqW2hlYWRlcl0gPSBhc1N0cmluZ3MgJiYgdXRpbHMuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCcsICcpIDogdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbaGVhZGVyLCB2YWx1ZV0pID0+IGhlYWRlciArICc6ICcgKyB2YWx1ZSkuam9pbignXFxuJyk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdBeGlvc0hlYWRlcnMnO1xuICB9XG5cbiAgc3RhdGljIGZyb20odGhpbmcpIHtcbiAgICByZXR1cm4gdGhpbmcgaW5zdGFuY2VvZiB0aGlzID8gdGhpbmcgOiBuZXcgdGhpcyh0aGluZyk7XG4gIH1cblxuICBzdGF0aWMgY29uY2F0KGZpcnN0LCAuLi50YXJnZXRzKSB7XG4gICAgY29uc3QgY29tcHV0ZWQgPSBuZXcgdGhpcyhmaXJzdCk7XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4gY29tcHV0ZWQuc2V0KHRhcmdldCkpO1xuXG4gICAgcmV0dXJuIGNvbXB1dGVkO1xuICB9XG5cbiAgc3RhdGljIGFjY2Vzc29yKGhlYWRlcikge1xuICAgIGNvbnN0IGludGVybmFscyA9IHRoaXNbJGludGVybmFsc10gPSAodGhpc1skaW50ZXJuYWxzXSA9IHtcbiAgICAgIGFjY2Vzc29yczoge31cbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IGludGVybmFscy5hY2Nlc3NvcnM7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdGhpcy5wcm90b3R5cGU7XG5cbiAgICBmdW5jdGlvbiBkZWZpbmVBY2Nlc3NvcihfaGVhZGVyKSB7XG4gICAgICBjb25zdCBsSGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoIWFjY2Vzc29yc1tsSGVhZGVyXSkge1xuICAgICAgICBidWlsZEFjY2Vzc29ycyhwcm90b3R5cGUsIF9oZWFkZXIpO1xuICAgICAgICBhY2Nlc3NvcnNbbEhlYWRlcl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHV0aWxzLmlzQXJyYXkoaGVhZGVyKSA/IGhlYWRlci5mb3JFYWNoKGRlZmluZUFjY2Vzc29yKSA6IGRlZmluZUFjY2Vzc29yKGhlYWRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG5BeGlvc0hlYWRlcnMuYWNjZXNzb3IoWydDb250ZW50LVR5cGUnLCAnQ29udGVudC1MZW5ndGgnLCAnQWNjZXB0JywgJ0FjY2VwdC1FbmNvZGluZycsICdVc2VyLUFnZW50JywgJ0F1dGhvcml6YXRpb24nXSk7XG5cbi8vIHJlc2VydmVkIG5hbWVzIGhvdGZpeFxudXRpbHMucmVkdWNlRGVzY3JpcHRvcnMoQXhpb3NIZWFkZXJzLnByb3RvdHlwZSwgKHt2YWx1ZX0sIGtleSkgPT4ge1xuICBsZXQgbWFwcGVkID0ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7IC8vIG1hcCBgc2V0YCA9PiBgU2V0YFxuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4gdmFsdWUsXG4gICAgc2V0KGhlYWRlclZhbHVlKSB7XG4gICAgICB0aGlzW21hcHBlZF0gPSBoZWFkZXJWYWx1ZTtcbiAgICB9XG4gIH1cbn0pO1xuXG51dGlscy5mcmVlemVNZXRob2RzKEF4aW9zSGVhZGVycyk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zSGVhZGVycztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/InterceptorManager.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterceptorManager);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9JbnRlcmNlcHRvck1hbmFnZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBYTs7QUFFcUI7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsVUFBVTtBQUN2QixhQUFhLFVBQVU7QUFDdkI7QUFDQSxjQUFjLFFBQVE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQSxlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQSxJQUFJLGlEQUFLO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUEsaUVBQWUsa0JBQWtCLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0ludGVyY2VwdG9yTWFuYWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuY2xhc3MgSW50ZXJjZXB0b3JNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5oYW5kbGVycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBpbnRlcmNlcHRvciB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVsZmlsbGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHRoZW5gIGZvciBhIGBQcm9taXNlYFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3RlZCBUaGUgZnVuY3Rpb24gdG8gaGFuZGxlIGByZWplY3RgIGZvciBhIGBQcm9taXNlYFxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9IEFuIElEIHVzZWQgdG8gcmVtb3ZlIGludGVyY2VwdG9yIGxhdGVyXG4gICAqL1xuICB1c2UoZnVsZmlsbGVkLCByZWplY3RlZCwgb3B0aW9ucykge1xuICAgIHRoaXMuaGFuZGxlcnMucHVzaCh7XG4gICAgICBmdWxmaWxsZWQsXG4gICAgICByZWplY3RlZCxcbiAgICAgIHN5bmNocm9ub3VzOiBvcHRpb25zID8gb3B0aW9ucy5zeW5jaHJvbm91cyA6IGZhbHNlLFxuICAgICAgcnVuV2hlbjogb3B0aW9ucyA/IG9wdGlvbnMucnVuV2hlbiA6IG51bGxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVycy5sZW5ndGggLSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBpbnRlcmNlcHRvciBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gaWQgVGhlIElEIHRoYXQgd2FzIHJldHVybmVkIGJ5IGB1c2VgXG4gICAqXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgdGhlIGludGVyY2VwdG9yIHdhcyByZW1vdmVkLCBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgZWplY3QoaWQpIHtcbiAgICBpZiAodGhpcy5oYW5kbGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuaGFuZGxlcnNbaWRdID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGludGVyY2VwdG9ycyBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXJzKSB7XG4gICAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNraXBwaW5nIG92ZXIgYW55XG4gICAqIGludGVyY2VwdG9ycyB0aGF0IG1heSBoYXZlIGJlY29tZSBgbnVsbGAgY2FsbGluZyBgZWplY3RgLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBpbnRlcmNlcHRvclxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZvckVhY2goZm4pIHtcbiAgICB1dGlscy5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsIGZ1bmN0aW9uIGZvckVhY2hIYW5kbGVyKGgpIHtcbiAgICAgIGlmIChoICE9PSBudWxsKSB7XG4gICAgICAgIGZuKGgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyY2VwdG9yTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/InterceptorManager.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/buildFullPath.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/buildFullPath.js ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ buildFullPath)\n/* harmony export */ });\n/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/isAbsoluteURL.js\");\n/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/combineURLs.js\");\n\n\n\n\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(baseURL, requestedURL);\n }\n return requestedURL;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9idWlsZEZ1bGxQYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFhOztBQUUyQztBQUNKOztBQUVwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsUUFBUTtBQUNyQjtBQUNlO0FBQ2YsdUJBQXVCLHFFQUFhO0FBQ3BDO0FBQ0EsV0FBVyxtRUFBVztBQUN0QjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL2J1aWxkRnVsbFBhdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgaXNBYnNvbHV0ZVVSTCBmcm9tICcuLi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanMnO1xuaW1wb3J0IGNvbWJpbmVVUkxzIGZyb20gJy4uL2hlbHBlcnMvY29tYmluZVVSTHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgYmFzZVVSTCB3aXRoIHRoZSByZXF1ZXN0ZWRVUkwsXG4gKiBvbmx5IHdoZW4gdGhlIHJlcXVlc3RlZFVSTCBpcyBub3QgYWxyZWFkeSBhbiBhYnNvbHV0ZSBVUkwuXG4gKiBJZiB0aGUgcmVxdWVzdFVSTCBpcyBhYnNvbHV0ZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXF1ZXN0ZWRVUkwgdW50b3VjaGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVVJMIFRoZSBiYXNlIFVSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3RlZFVSTCBBYnNvbHV0ZSBvciByZWxhdGl2ZSBVUkwgdG8gY29tYmluZVxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBmdWxsIHBhdGhcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRGdWxsUGF0aChiYXNlVVJMLCByZXF1ZXN0ZWRVUkwsIGFsbG93QWJzb2x1dGVVcmxzKSB7XG4gIGxldCBpc1JlbGF0aXZlVXJsID0gIWlzQWJzb2x1dGVVUkwocmVxdWVzdGVkVVJMKTtcbiAgaWYgKGJhc2VVUkwgJiYgKGlzUmVsYXRpdmVVcmwgfHwgYWxsb3dBYnNvbHV0ZVVybHMgPT0gZmFsc2UpKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVVUkxzKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCk7XG4gIH1cbiAgcmV0dXJuIHJlcXVlc3RlZFVSTDtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/buildFullPath.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/dispatchRequest.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ dispatchRequest)\n/* harmony export */ });\n/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transformData.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/transformData.js\");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../cancel/isCancel.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/isCancel.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../adapters/adapters.js */ \"(app-pages-browser)/./node_modules/axios/lib/adapters/adapters.js\");\n\n\n\n\n\n\n\n\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(config.headers);\n\n // Transform request data\n config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!(0,_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9kaXNwYXRjaFJlcXVlc3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFhOztBQUVrQztBQUNGO0FBQ0Q7QUFDVztBQUNKO0FBQ0o7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyxnRUFBYTtBQUMzQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsU0FBUztBQUN0QjtBQUNlO0FBQ2Y7O0FBRUEsbUJBQW1CLDZEQUFZOztBQUUvQjtBQUNBLGdCQUFnQix5REFBYTtBQUM3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtCQUFrQiw2REFBUSw4QkFBOEIsMERBQVE7O0FBRWhFO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IseURBQWE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCLDZEQUFZOztBQUVuQztBQUNBLEdBQUc7QUFDSCxTQUFTLCtEQUFRO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0IseURBQWE7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsNkRBQVk7QUFDOUM7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHRyYW5zZm9ybURhdGEgZnJvbSAnLi90cmFuc2Zvcm1EYXRhLmpzJztcbmltcG9ydCBpc0NhbmNlbCBmcm9tICcuLi9jYW5jZWwvaXNDYW5jZWwuanMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL2luZGV4LmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuaW1wb3J0IGFkYXB0ZXJzIGZyb20gXCIuLi9hZGFwdGVycy9hZGFwdGVycy5qc1wiO1xuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxlZEVycm9yYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgVGhlIGNvbmZpZyB0aGF0IGlzIHRvIGJlIHVzZWQgZm9yIHRoZSByZXF1ZXN0XG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKSB7XG4gIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICBjb25maWcuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5zaWduYWwgJiYgY29uZmlnLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IENhbmNlbGVkRXJyb3IobnVsbCwgY29uZmlnKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIHVzaW5nIHRoZSBjb25maWd1cmVkIGFkYXB0ZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnIHRoYXQgaXMgdG8gYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3RcbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gVGhlIFByb21pc2UgdG8gYmUgZnVsZmlsbGVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIGNvbmZpZy5oZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oY29uZmlnLmhlYWRlcnMpO1xuXG4gIC8vIFRyYW5zZm9ybSByZXF1ZXN0IGRhdGFcbiAgY29uZmlnLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgY29uZmlnLFxuICAgIGNvbmZpZy50cmFuc2Zvcm1SZXF1ZXN0XG4gICk7XG5cbiAgaWYgKFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXS5pbmRleE9mKGNvbmZpZy5tZXRob2QpICE9PSAtMSkge1xuICAgIGNvbmZpZy5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLCBmYWxzZSk7XG4gIH1cblxuICBjb25zdCBhZGFwdGVyID0gYWRhcHRlcnMuZ2V0QWRhcHRlcihjb25maWcuYWRhcHRlciB8fCBkZWZhdWx0cy5hZGFwdGVyKTtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgICAgICByZWFzb24ucmVzcG9uc2VcbiAgICAgICAgKTtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZWFzb24ucmVzcG9uc2UuaGVhZGVycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlYXNvbik7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/dispatchRequest.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/mergeConfig.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/mergeConfig.js ***! \****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mergeConfig)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\n\nconst headersToObject = (thing) => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].merge.call({caseless}, target, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].merge({}, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9tZXJnZUNvbmZpZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBYTs7QUFFbUI7QUFDYTs7QUFFN0Msb0RBQW9ELHdEQUFZLEtBQUssV0FBVzs7QUFFaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLGlEQUFLLDBCQUEwQixpREFBSztBQUM1QyxhQUFhLGlEQUFLLGFBQWEsU0FBUztBQUN4QyxNQUFNLFNBQVMsaURBQUs7QUFDcEIsYUFBYSxpREFBSyxTQUFTO0FBQzNCLE1BQU0sU0FBUyxpREFBSztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUyxpREFBSztBQUNkO0FBQ0EsTUFBTSxVQUFVLGlEQUFLO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUyxpREFBSztBQUNkO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUyxpREFBSztBQUNkO0FBQ0EsTUFBTSxVQUFVLGlEQUFLO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxpREFBSyxxQ0FBcUM7QUFDNUM7QUFDQTtBQUNBLEtBQUssaURBQUs7QUFDVixHQUFHOztBQUVIO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4vQXhpb3NIZWFkZXJzLmpzXCI7XG5cbmNvbnN0IGhlYWRlcnNUb09iamVjdCA9ICh0aGluZykgPT4gdGhpbmcgaW5zdGFuY2VvZiBBeGlvc0hlYWRlcnMgPyB7IC4uLnRoaW5nIH0gOiB0aGluZztcblxuLyoqXG4gKiBDb25maWctc3BlY2lmaWMgbWVyZ2UtZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyBhIG5ldyBjb25maWctb2JqZWN0XG4gKiBieSBtZXJnaW5nIHR3byBjb25maWd1cmF0aW9uIG9iamVjdHMgdG9nZXRoZXIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzFcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcyXG4gKlxuICogQHJldHVybnMge09iamVjdH0gTmV3IG9iamVjdCByZXN1bHRpbmcgZnJvbSBtZXJnaW5nIGNvbmZpZzIgdG8gY29uZmlnMVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZUNvbmZpZyhjb25maWcxLCBjb25maWcyKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBjb25maWcyID0gY29uZmlnMiB8fCB7fTtcbiAgY29uc3QgY29uZmlnID0ge307XG5cbiAgZnVuY3Rpb24gZ2V0TWVyZ2VkVmFsdWUodGFyZ2V0LCBzb3VyY2UsIHByb3AsIGNhc2VsZXNzKSB7XG4gICAgaWYgKHV0aWxzLmlzUGxhaW5PYmplY3QodGFyZ2V0KSAmJiB1dGlscy5pc1BsYWluT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiB1dGlscy5tZXJnZS5jYWxsKHtjYXNlbGVzc30sIHRhcmdldCwgc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlKHt9LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gc291cmNlLnNsaWNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gbWVyZ2VEZWVwUHJvcGVydGllcyhhLCBiLCBwcm9wICwgY2FzZWxlc3MpIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGIpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUoYSwgYiwgcHJvcCAsIGNhc2VsZXNzKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChhKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYSwgcHJvcCAsIGNhc2VsZXNzKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gdmFsdWVGcm9tQ29uZmlnMihhLCBiKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChiKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYik7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gIGZ1bmN0aW9uIGRlZmF1bHRUb0NvbmZpZzIoYSwgYikge1xuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYikpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGIpO1xuICAgIH0gZWxzZSBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGEpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBhKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gbWVyZ2VEaXJlY3RLZXlzKGEsIGIsIHByb3ApIHtcbiAgICBpZiAocHJvcCBpbiBjb25maWcyKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUoYSwgYik7XG4gICAgfSBlbHNlIGlmIChwcm9wIGluIGNvbmZpZzEpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGEpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG1lcmdlTWFwID0ge1xuICAgIHVybDogdmFsdWVGcm9tQ29uZmlnMixcbiAgICBtZXRob2Q6IHZhbHVlRnJvbUNvbmZpZzIsXG4gICAgZGF0YTogdmFsdWVGcm9tQ29uZmlnMixcbiAgICBiYXNlVVJMOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRyYW5zZm9ybVJlcXVlc3Q6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdHJhbnNmb3JtUmVzcG9uc2U6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgcGFyYW1zU2VyaWFsaXplcjogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0aW1lb3V0OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRpbWVvdXRNZXNzYWdlOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHdpdGhDcmVkZW50aWFsczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB3aXRoWFNSRlRva2VuOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGFkYXB0ZXI6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgcmVzcG9uc2VUeXBlOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHhzcmZDb29raWVOYW1lOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHhzcmZIZWFkZXJOYW1lOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIG9uVXBsb2FkUHJvZ3Jlc3M6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgb25Eb3dubG9hZFByb2dyZXNzOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGRlY29tcHJlc3M6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgbWF4Q29udGVudExlbmd0aDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBtYXhCb2R5TGVuZ3RoOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGJlZm9yZVJlZGlyZWN0OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRyYW5zcG9ydDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBodHRwQWdlbnQ6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgaHR0cHNBZ2VudDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBjYW5jZWxUb2tlbjogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBzb2NrZXRQYXRoOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHJlc3BvbnNlRW5jb2Rpbmc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdmFsaWRhdGVTdGF0dXM6IG1lcmdlRGlyZWN0S2V5cyxcbiAgICBoZWFkZXJzOiAoYSwgYiAsIHByb3ApID0+IG1lcmdlRGVlcFByb3BlcnRpZXMoaGVhZGVyc1RvT2JqZWN0KGEpLCBoZWFkZXJzVG9PYmplY3QoYikscHJvcCwgdHJ1ZSlcbiAgfTtcblxuICB1dGlscy5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZzEsIGNvbmZpZzIpKSwgZnVuY3Rpb24gY29tcHV0ZUNvbmZpZ1ZhbHVlKHByb3ApIHtcbiAgICBjb25zdCBtZXJnZSA9IG1lcmdlTWFwW3Byb3BdIHx8IG1lcmdlRGVlcFByb3BlcnRpZXM7XG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSBtZXJnZShjb25maWcxW3Byb3BdLCBjb25maWcyW3Byb3BdLCBwcm9wKTtcbiAgICAodXRpbHMuaXNVbmRlZmluZWQoY29uZmlnVmFsdWUpICYmIG1lcmdlICE9PSBtZXJnZURpcmVjdEtleXMpIHx8IChjb25maWdbcHJvcF0gPSBjb25maWdWYWx1ZSk7XG4gIH0pO1xuXG4gIHJldHVybiBjb25maWc7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/mergeConfig.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/settle.js": /*!***********************************************!*\ !*** ./node_modules/axios/lib/core/settle.js ***! \***********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ settle)\n/* harmony export */ });\n/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](\n 'Request failed with status code ' + response.status,\n [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9zZXR0bGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBYTs7QUFFNEI7O0FBRXpDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZUFBZSxzREFBVTtBQUN6QjtBQUNBLE9BQU8sc0RBQVUsa0JBQWtCLHNEQUFVO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvc2V0dGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi9BeGlvc0Vycm9yLmpzJztcblxuLyoqXG4gKiBSZXNvbHZlIG9yIHJlamVjdCBhIFByb21pc2UgYmFzZWQgb24gcmVzcG9uc2Ugc3RhdHVzLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlc29sdmUgQSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVqZWN0IEEgZnVuY3Rpb24gdGhhdCByZWplY3RzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtvYmplY3R9IHJlc3BvbnNlIFRoZSByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IHZhbGlkYXRlU3RhdHVzID0gcmVzcG9uc2UuY29uZmlnLnZhbGlkYXRlU3RhdHVzO1xuICBpZiAoIXJlc3BvbnNlLnN0YXR1cyB8fCAhdmFsaWRhdGVTdGF0dXMgfHwgdmFsaWRhdGVTdGF0dXMocmVzcG9uc2Uuc3RhdHVzKSkge1xuICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICB9IGVsc2Uge1xuICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICcgKyByZXNwb25zZS5zdGF0dXMsXG4gICAgICBbQXhpb3NFcnJvci5FUlJfQkFEX1JFUVVFU1QsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihyZXNwb25zZS5zdGF0dXMgLyAxMDApIC0gNF0sXG4gICAgICByZXNwb25zZS5jb25maWcsXG4gICAgICByZXNwb25zZS5yZXF1ZXN0LFxuICAgICAgcmVzcG9uc2VcbiAgICApKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/settle.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/core/transformData.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/transformData.js ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ transformData)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../defaults/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\n\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n const context = response || config;\n const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(context.headers);\n let data = context.data;\n\n _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS90cmFuc2Zvcm1EYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBYTs7QUFFcUI7QUFDVTtBQUNPOztBQUVuRDtBQUNBO0FBQ0E7QUFDQSxXQUFXLGdCQUFnQjtBQUMzQixXQUFXLFNBQVM7QUFDcEI7QUFDQSxhQUFhLEdBQUc7QUFDaEI7QUFDZTtBQUNmLHlCQUF5QiwwREFBUTtBQUNqQztBQUNBLGtCQUFrQiw2REFBWTtBQUM5Qjs7QUFFQSxFQUFFLGlEQUFLO0FBQ1A7QUFDQSxHQUFHOztBQUVIOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3RyYW5zZm9ybURhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMvaW5kZXguanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBkYXRhIGZvciBhIHJlcXVlc3Qgb3IgYSByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb259IGZucyBBIHNpbmdsZSBmdW5jdGlvbiBvciBBcnJheSBvZiBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7P09iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgcmVzdWx0aW5nIHRyYW5zZm9ybWVkIGRhdGFcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShmbnMsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IGNvbmZpZyA9IHRoaXMgfHwgZGVmYXVsdHM7XG4gIGNvbnN0IGNvbnRleHQgPSByZXNwb25zZSB8fCBjb25maWc7XG4gIGNvbnN0IGhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShjb250ZXh0LmhlYWRlcnMpO1xuICBsZXQgZGF0YSA9IGNvbnRleHQuZGF0YTtcblxuICB1dGlscy5mb3JFYWNoKGZucywgZnVuY3Rpb24gdHJhbnNmb3JtKGZuKSB7XG4gICAgZGF0YSA9IGZuLmNhbGwoY29uZmlnLCBkYXRhLCBoZWFkZXJzLm5vcm1hbGl6ZSgpLCByZXNwb25zZSA/IHJlc3BvbnNlLnN0YXR1cyA6IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGhlYWRlcnMubm9ybWFsaXplKCk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/core/transformData.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/defaults/index.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/defaults/index.js ***! \**************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitional.js */ \"(app-pages-browser)/./node_modules/axios/lib/defaults/transitional.js\");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toFormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/toURLEncodedForm.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/formDataToJSON.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(data);\n\n if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify((0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(data)) : data;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isStream(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFile(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBlob(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isReadableStream(data)\n ) {\n return data;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBufferView(data)) {\n return data.buffer;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(data, this.formSerializer).toString();\n }\n\n if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isReadableStream(data)) {\n return data;\n }\n\n if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].classes.FormData,\n Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaults);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBYTs7QUFFbUI7QUFDZTtBQUNNO0FBQ0g7QUFDWTtBQUNsQjtBQUNjOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsS0FBSztBQUNoQixXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxNQUFNLGlEQUFLO0FBQ1g7QUFDQTtBQUNBLGFBQWEsaURBQUs7QUFDbEIsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxnQkFBZ0Isd0RBQW9COztBQUVwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsaURBQUs7O0FBRWpDLDJCQUEyQixpREFBSztBQUNoQztBQUNBOztBQUVBLHVCQUF1QixpREFBSzs7QUFFNUI7QUFDQSxpREFBaUQsc0VBQWM7QUFDL0Q7O0FBRUEsUUFBUSxpREFBSztBQUNiLE1BQU0saURBQUs7QUFDWCxNQUFNLGlEQUFLO0FBQ1gsTUFBTSxpREFBSztBQUNYLE1BQU0saURBQUs7QUFDWCxNQUFNLGlEQUFLO0FBQ1g7QUFDQTtBQUNBO0FBQ0EsUUFBUSxpREFBSztBQUNiO0FBQ0E7QUFDQSxRQUFRLGlEQUFLO0FBQ2IsZ0VBQWdFO0FBQ2hFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLGVBQWUsd0VBQWdCO0FBQy9COztBQUVBLHdCQUF3QixpREFBSztBQUM3Qjs7QUFFQSxlQUFlLGtFQUFVO0FBQ3pCLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsUUFBUSxpREFBSyxxQkFBcUIsaURBQUs7QUFDdkM7QUFDQTs7QUFFQSxnQkFBZ0IsaURBQUs7QUFDckI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxrQkFBa0IsMkRBQVUsU0FBUywyREFBVTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGNBQWMsMERBQVE7QUFDdEIsVUFBVSwwREFBUTtBQUNsQixHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlEQUFLO0FBQ0w7QUFDQSxDQUFDOztBQUVELGlFQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2RlZmF1bHRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbmFsRGVmYXVsdHMgZnJvbSAnLi90cmFuc2l0aW9uYWwuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi4vaGVscGVycy90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCB0b1VSTEVuY29kZWRGb3JtIGZyb20gJy4uL2hlbHBlcnMvdG9VUkxFbmNvZGVkRm9ybS5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuaW1wb3J0IGZvcm1EYXRhVG9KU09OIGZyb20gJy4uL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMnO1xuXG4vKipcbiAqIEl0IHRha2VzIGEgc3RyaW5nLCB0cmllcyB0byBwYXJzZSBpdCwgYW5kIGlmIGl0IGZhaWxzLCBpdCByZXR1cm5zIHRoZSBzdHJpbmdpZmllZCB2ZXJzaW9uXG4gKiBvZiB0aGUgaW5wdXRcbiAqXG4gKiBAcGFyYW0ge2FueX0gcmF3VmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgc3RyaW5naWZpZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJzZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcGFyc2VzIGEgc3RyaW5nIGludG8gYSBKYXZhU2NyaXB0IG9iamVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVuY29kZXIgLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBhbmQgcmV0dXJucyBhIHN0cmluZy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZ2lmaWVkIHZlcnNpb24gb2YgdGhlIHJhd1ZhbHVlLlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG5cbiAgdHJhbnNpdGlvbmFsOiB0cmFuc2l0aW9uYWxEZWZhdWx0cyxcblxuICBhZGFwdGVyOiBbJ3hocicsICdodHRwJywgJ2ZldGNoJ10sXG5cbiAgdHJhbnNmb3JtUmVxdWVzdDogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlcXVlc3QoZGF0YSwgaGVhZGVycykge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gaGVhZGVycy5nZXRDb250ZW50VHlwZSgpIHx8ICcnO1xuICAgIGNvbnN0IGhhc0pTT05Db250ZW50VHlwZSA9IGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA+IC0xO1xuICAgIGNvbnN0IGlzT2JqZWN0UGF5bG9hZCA9IHV0aWxzLmlzT2JqZWN0KGRhdGEpO1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCAmJiB1dGlscy5pc0hUTUxGb3JtKGRhdGEpKSB7XG4gICAgICBkYXRhID0gbmV3IEZvcm1EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRm9ybURhdGEgPSB1dGlscy5pc0Zvcm1EYXRhKGRhdGEpO1xuXG4gICAgaWYgKGlzRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiBoYXNKU09OQ29udGVudFR5cGUgPyBKU09OLnN0cmluZ2lmeShmb3JtRGF0YVRvSlNPTihkYXRhKSkgOiBkYXRhO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0J1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNTdHJlYW0oZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzRmlsZShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCbG9iKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc1JlYWRhYmxlU3RyZWFtKGRhdGEpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5idWZmZXI7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhkYXRhKSkge1xuICAgICAgaGVhZGVycy5zZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnLCBmYWxzZSk7XG4gICAgICByZXR1cm4gZGF0YS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGxldCBpc0ZpbGVMaXN0O1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCkge1xuICAgICAgaWYgKGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRvVVJMRW5jb2RlZEZvcm0oZGF0YSwgdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKChpc0ZpbGVMaXN0ID0gdXRpbHMuaXNGaWxlTGlzdChkYXRhKSkgfHwgY29udGVudFR5cGUuaW5kZXhPZignbXVsdGlwYXJ0L2Zvcm0tZGF0YScpID4gLTEpIHtcbiAgICAgICAgY29uc3QgX0Zvcm1EYXRhID0gdGhpcy5lbnYgJiYgdGhpcy5lbnYuRm9ybURhdGE7XG5cbiAgICAgICAgcmV0dXJuIHRvRm9ybURhdGEoXG4gICAgICAgICAgaXNGaWxlTGlzdCA/IHsnZmlsZXNbXSc6IGRhdGF9IDogZGF0YSxcbiAgICAgICAgICBfRm9ybURhdGEgJiYgbmV3IF9Gb3JtRGF0YSgpLFxuICAgICAgICAgIHRoaXMuZm9ybVNlcmlhbGl6ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3RQYXlsb2FkIHx8IGhhc0pTT05Db250ZW50VHlwZSApIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoJ2FwcGxpY2F0aW9uL2pzb24nLCBmYWxzZSk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICB0cmFuc2Zvcm1SZXNwb25zZTogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlc3BvbnNlKGRhdGEpIHtcbiAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSB0aGlzLnRyYW5zaXRpb25hbCB8fCBkZWZhdWx0cy50cmFuc2l0aW9uYWw7XG4gICAgY29uc3QgZm9yY2VkSlNPTlBhcnNpbmcgPSB0cmFuc2l0aW9uYWwgJiYgdHJhbnNpdGlvbmFsLmZvcmNlZEpTT05QYXJzaW5nO1xuICAgIGNvbnN0IEpTT05SZXF1ZXN0ZWQgPSB0aGlzLnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nO1xuXG4gICAgaWYgKHV0aWxzLmlzUmVzcG9uc2UoZGF0YSkgfHwgdXRpbHMuaXNSZWFkYWJsZVN0cmVhbShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgdXRpbHMuaXNTdHJpbmcoZGF0YSkgJiYgKChmb3JjZWRKU09OUGFyc2luZyAmJiAhdGhpcy5yZXNwb25zZVR5cGUpIHx8IEpTT05SZXF1ZXN0ZWQpKSB7XG4gICAgICBjb25zdCBzaWxlbnRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuc2lsZW50SlNPTlBhcnNpbmc7XG4gICAgICBjb25zdCBzdHJpY3RKU09OUGFyc2luZyA9ICFzaWxlbnRKU09OUGFyc2luZyAmJiBKU09OUmVxdWVzdGVkO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHN0cmljdEpTT05QYXJzaW5nKSB7XG4gICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgQXhpb3NFcnJvci5mcm9tKGUsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRSwgdGhpcywgbnVsbCwgdGhpcy5yZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgLyoqXG4gICAqIEEgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gYWJvcnQgYSByZXF1ZXN0LiBJZiBzZXQgdG8gMCAoZGVmYXVsdCkgYVxuICAgKiB0aW1lb3V0IGlzIG5vdCBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dDogMCxcblxuICB4c3JmQ29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxuICB4c3JmSGVhZGVyTmFtZTogJ1gtWFNSRi1UT0tFTicsXG5cbiAgbWF4Q29udGVudExlbmd0aDogLTEsXG4gIG1heEJvZHlMZW5ndGg6IC0xLFxuXG4gIGVudjoge1xuICAgIEZvcm1EYXRhOiBwbGF0Zm9ybS5jbGFzc2VzLkZvcm1EYXRhLFxuICAgIEJsb2I6IHBsYXRmb3JtLmNsYXNzZXMuQmxvYlxuICB9LFxuXG4gIHZhbGlkYXRlU3RhdHVzOiBmdW5jdGlvbiB2YWxpZGF0ZVN0YXR1cyhzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDA7XG4gIH0sXG5cbiAgaGVhZGVyczoge1xuICAgIGNvbW1vbjoge1xuICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxufTtcblxudXRpbHMuZm9yRWFjaChbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCddLCAobWV0aG9kKSA9PiB7XG4gIGRlZmF1bHRzLmhlYWRlcnNbbWV0aG9kXSA9IHt9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/defaults/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/defaults/transitional.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/defaults/transitional.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvdHJhbnNpdGlvbmFsLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFYixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2RlZmF1bHRzL3RyYW5zaXRpb25hbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2lsZW50SlNPTlBhcnNpbmc6IHRydWUsXG4gIGZvcmNlZEpTT05QYXJzaW5nOiB0cnVlLFxuICBjbGFyaWZ5VGltZW91dEVycm9yOiBmYWxzZVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/defaults/transitional.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/env/data.js": /*!********************************************!*\ !*** ./node_modules/axios/lib/env/data.js ***! \********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VERSION: () => (/* binding */ VERSION)\n/* harmony export */ });\nconst VERSION = \"1.8.4\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZW52L2RhdGEuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZW52L2RhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjEuOC40XCI7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/env/data.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js": /*!****************************************************************!*\ !*** ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js\");\n\n\n\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosURLSearchParams);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9BeGlvc1VSTFNlYXJjaFBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFhOztBQUU0Qjs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEMsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUVBLFlBQVksMERBQVU7QUFDdEI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQSxpRUFBZSxvQkFBb0IsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuXG4vKipcbiAqIEl0IGVuY29kZXMgYSBzdHJpbmcgYnkgcmVwbGFjaW5nIGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBpbiB0aGUgdW5yZXNlcnZlZCBzZXQgd2l0aFxuICogdGhlaXIgcGVyY2VudC1lbmNvZGVkIGVxdWl2YWxlbnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gZW5jb2RlLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlKHN0cikge1xuICBjb25zdCBjaGFyTWFwID0ge1xuICAgICchJzogJyUyMScsXG4gICAgXCInXCI6ICclMjcnLFxuICAgICcoJzogJyUyOCcsXG4gICAgJyknOiAnJTI5JyxcbiAgICAnfic6ICclN0UnLFxuICAgICclMjAnOiAnKycsXG4gICAgJyUwMCc6ICdcXHgwMCdcbiAgfTtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLCBmdW5jdGlvbiByZXBsYWNlcihtYXRjaCkge1xuICAgIHJldHVybiBjaGFyTWFwW21hdGNoXTtcbiAgfSk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXJhbXMgb2JqZWN0IGFuZCBjb252ZXJ0cyBpdCB0byBhIEZvcm1EYXRhIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gYmUgY29udmVydGVkIHRvIGEgRm9ybURhdGEgb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byB0aGUgQXhpb3MgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIEF4aW9zVVJMU2VhcmNoUGFyYW1zKHBhcmFtcywgb3B0aW9ucykge1xuICB0aGlzLl9wYWlycyA9IFtdO1xuXG4gIHBhcmFtcyAmJiB0b0Zvcm1EYXRhKHBhcmFtcywgdGhpcywgb3B0aW9ucyk7XG59XG5cbmNvbnN0IHByb3RvdHlwZSA9IEF4aW9zVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcblxucHJvdG90eXBlLmFwcGVuZCA9IGZ1bmN0aW9uIGFwcGVuZChuYW1lLCB2YWx1ZSkge1xuICB0aGlzLl9wYWlycy5wdXNoKFtuYW1lLCB2YWx1ZV0pO1xufTtcblxucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoZW5jb2Rlcikge1xuICBjb25zdCBfZW5jb2RlID0gZW5jb2RlciA/IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIGVuY29kZXIuY2FsbCh0aGlzLCB2YWx1ZSwgZW5jb2RlKTtcbiAgfSA6IGVuY29kZTtcblxuICByZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uIGVhY2gocGFpcikge1xuICAgIHJldHVybiBfZW5jb2RlKHBhaXJbMF0pICsgJz0nICsgX2VuY29kZShwYWlyWzFdKTtcbiAgfSwgJycpLmpvaW4oJyYnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zVVJMU2VhcmNoUGFyYW1zO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/HttpStatusCode.js": /*!**********************************************************!*\ !*** ./node_modules/axios/lib/helpers/HttpStatusCode.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9IdHRwU3RhdHVzQ29kZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpRUFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL0h0dHBTdGF0dXNDb2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEh0dHBTdGF0dXNDb2RlID0ge1xuICBDb250aW51ZTogMTAwLFxuICBTd2l0Y2hpbmdQcm90b2NvbHM6IDEwMSxcbiAgUHJvY2Vzc2luZzogMTAyLFxuICBFYXJseUhpbnRzOiAxMDMsXG4gIE9rOiAyMDAsXG4gIENyZWF0ZWQ6IDIwMSxcbiAgQWNjZXB0ZWQ6IDIwMixcbiAgTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOiAyMDMsXG4gIE5vQ29udGVudDogMjA0LFxuICBSZXNldENvbnRlbnQ6IDIwNSxcbiAgUGFydGlhbENvbnRlbnQ6IDIwNixcbiAgTXVsdGlTdGF0dXM6IDIwNyxcbiAgQWxyZWFkeVJlcG9ydGVkOiAyMDgsXG4gIEltVXNlZDogMjI2LFxuICBNdWx0aXBsZUNob2ljZXM6IDMwMCxcbiAgTW92ZWRQZXJtYW5lbnRseTogMzAxLFxuICBGb3VuZDogMzAyLFxuICBTZWVPdGhlcjogMzAzLFxuICBOb3RNb2RpZmllZDogMzA0LFxuICBVc2VQcm94eTogMzA1LFxuICBVbnVzZWQ6IDMwNixcbiAgVGVtcG9yYXJ5UmVkaXJlY3Q6IDMwNyxcbiAgUGVybWFuZW50UmVkaXJlY3Q6IDMwOCxcbiAgQmFkUmVxdWVzdDogNDAwLFxuICBVbmF1dGhvcml6ZWQ6IDQwMSxcbiAgUGF5bWVudFJlcXVpcmVkOiA0MDIsXG4gIEZvcmJpZGRlbjogNDAzLFxuICBOb3RGb3VuZDogNDA0LFxuICBNZXRob2ROb3RBbGxvd2VkOiA0MDUsXG4gIE5vdEFjY2VwdGFibGU6IDQwNixcbiAgUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOiA0MDcsXG4gIFJlcXVlc3RUaW1lb3V0OiA0MDgsXG4gIENvbmZsaWN0OiA0MDksXG4gIEdvbmU6IDQxMCxcbiAgTGVuZ3RoUmVxdWlyZWQ6IDQxMSxcbiAgUHJlY29uZGl0aW9uRmFpbGVkOiA0MTIsXG4gIFBheWxvYWRUb29MYXJnZTogNDEzLFxuICBVcmlUb29Mb25nOiA0MTQsXG4gIFVuc3VwcG9ydGVkTWVkaWFUeXBlOiA0MTUsXG4gIFJhbmdlTm90U2F0aXNmaWFibGU6IDQxNixcbiAgRXhwZWN0YXRpb25GYWlsZWQ6IDQxNyxcbiAgSW1BVGVhcG90OiA0MTgsXG4gIE1pc2RpcmVjdGVkUmVxdWVzdDogNDIxLFxuICBVbnByb2Nlc3NhYmxlRW50aXR5OiA0MjIsXG4gIExvY2tlZDogNDIzLFxuICBGYWlsZWREZXBlbmRlbmN5OiA0MjQsXG4gIFRvb0Vhcmx5OiA0MjUsXG4gIFVwZ3JhZGVSZXF1aXJlZDogNDI2LFxuICBQcmVjb25kaXRpb25SZXF1aXJlZDogNDI4LFxuICBUb29NYW55UmVxdWVzdHM6IDQyOSxcbiAgUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOiA0MzEsXG4gIFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOiA0NTEsXG4gIEludGVybmFsU2VydmVyRXJyb3I6IDUwMCxcbiAgTm90SW1wbGVtZW50ZWQ6IDUwMSxcbiAgQmFkR2F0ZXdheTogNTAyLFxuICBTZXJ2aWNlVW5hdmFpbGFibGU6IDUwMyxcbiAgR2F0ZXdheVRpbWVvdXQ6IDUwNCxcbiAgSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6IDUwNSxcbiAgVmFyaWFudEFsc29OZWdvdGlhdGVzOiA1MDYsXG4gIEluc3VmZmljaWVudFN0b3JhZ2U6IDUwNyxcbiAgTG9vcERldGVjdGVkOiA1MDgsXG4gIE5vdEV4dGVuZGVkOiA1MTAsXG4gIE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOiA1MTEsXG59O1xuXG5PYmplY3QuZW50cmllcyhIdHRwU3RhdHVzQ29kZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gIEh0dHBTdGF0dXNDb2RlW3ZhbHVlXSA9IGtleTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBIdHRwU3RhdHVzQ29kZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/HttpStatusCode.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/bind.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/helpers/bind.js ***! \************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ bind)\n/* harmony export */ });\n\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9iaW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFRTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9iaW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykge1xuICByZXR1cm4gZnVuY3Rpb24gd3JhcCgpIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/bind.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/buildURL.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/helpers/buildURL.js ***! \****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ buildURL)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(params) ?\n params.toString() :\n new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9idWlsZFVSTC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBYTs7QUFFbUI7QUFDc0M7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxvQkFBb0I7QUFDL0I7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLGlEQUFLO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSix1QkFBdUIsaURBQUs7QUFDNUI7QUFDQSxVQUFVLHdFQUFvQjtBQUM5Qjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4uL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMnO1xuXG4vKipcbiAqIEl0IHJlcGxhY2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNoYXJhY3RlcnMgYDpgLCBgJGAsIGAsYCwgYCtgLCBgW2AsIGFuZCBgXWAgd2l0aCB0aGVpclxuICogVVJJIGVuY29kZWQgY291bnRlcnBhcnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbCBUaGUgdmFsdWUgdG8gYmUgZW5jb2RlZC5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW5jb2RlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlKHZhbCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbCkuXG4gICAgcmVwbGFjZSgvJTNBL2dpLCAnOicpLlxuICAgIHJlcGxhY2UoLyUyNC9nLCAnJCcpLlxuICAgIHJlcGxhY2UoLyUyQy9naSwgJywnKS5cbiAgICByZXBsYWNlKC8lMjAvZywgJysnKS5cbiAgICByZXBsYWNlKC8lNUIvZ2ksICdbJykuXG4gICAgcmVwbGFjZSgvJTVEL2dpLCAnXScpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGJ5IGFwcGVuZGluZyBwYXJhbXMgdG8gdGhlIGVuZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGJhc2Ugb2YgdGhlIHVybCAoZS5nLiwgaHR0cDovL3d3dy5nb29nbGUuY29tKVxuICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIFRoZSBwYXJhbXMgdG8gYmUgYXBwZW5kZWRcbiAqIEBwYXJhbSB7PyhvYmplY3R8RnVuY3Rpb24pfSBvcHRpb25zXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCB1cmxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRVUkwodXJsLCBwYXJhbXMsIG9wdGlvbnMpIHtcbiAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gIGlmICghcGFyYW1zKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICBcbiAgY29uc3QgX2VuY29kZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5lbmNvZGUgfHwgZW5jb2RlO1xuXG4gIGlmICh1dGlscy5pc0Z1bmN0aW9uKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHNlcmlhbGl6ZTogb3B0aW9uc1xuICAgIH07XG4gIH0gXG5cbiAgY29uc3Qgc2VyaWFsaXplRm4gPSBvcHRpb25zICYmIG9wdGlvbnMuc2VyaWFsaXplO1xuXG4gIGxldCBzZXJpYWxpemVkUGFyYW1zO1xuXG4gIGlmIChzZXJpYWxpemVGbikge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBzZXJpYWxpemVGbihwYXJhbXMsIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSB1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMpID9cbiAgICAgIHBhcmFtcy50b1N0cmluZygpIDpcbiAgICAgIG5ldyBBeGlvc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMsIG9wdGlvbnMpLnRvU3RyaW5nKF9lbmNvZGUpO1xuICB9XG5cbiAgaWYgKHNlcmlhbGl6ZWRQYXJhbXMpIHtcbiAgICBjb25zdCBoYXNobWFya0luZGV4ID0gdXJsLmluZGV4T2YoXCIjXCIpO1xuXG4gICAgaWYgKGhhc2htYXJrSW5kZXggIT09IC0xKSB7XG4gICAgICB1cmwgPSB1cmwuc2xpY2UoMCwgaGFzaG1hcmtJbmRleCk7XG4gICAgfVxuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgc2VyaWFsaXplZFBhcmFtcztcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/buildURL.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/combineURLs.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ combineURLs)\n/* harmony export */ });\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21iaW5lVVJMcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsUUFBUTtBQUNyQjtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFVSTCBieSBjb21iaW5pbmcgdGhlIHNwZWNpZmllZCBVUkxzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJhc2VVUkwgVGhlIGJhc2UgVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVsYXRpdmVVUkwgVGhlIHJlbGF0aXZlIFVSTFxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBVUkxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tYmluZVVSTHMoYmFzZVVSTCwgcmVsYXRpdmVVUkwpIHtcbiAgcmV0dXJuIHJlbGF0aXZlVVJMXG4gICAgPyBiYXNlVVJMLnJlcGxhY2UoL1xcLz9cXC8kLywgJycpICsgJy8nICsgcmVsYXRpdmVVUkwucmVwbGFjZSgvXlxcLysvLCAnJylcbiAgICA6IGJhc2VVUkw7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/combineURLs.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/composeSignals.js": /*!**********************************************************!*\ !*** ./node_modules/axios/lib/helpers/composeSignals.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"(app-pages-browser)/./node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? err : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](`timeout ${timeout} of ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].asap(unsubscribe);\n\n return signal;\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21wb3NlU2lnbmFscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVEO0FBQ1I7QUFDZjs7QUFFaEM7QUFDQSxTQUFTLFFBQVE7O0FBRWpCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QywyREFBVSxhQUFhLGdFQUFhO0FBQzVFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQiwyREFBVSxZQUFZLFNBQVMsaUJBQWlCLDJEQUFVO0FBQzVFLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxXQUFXLFFBQVE7O0FBRW5CLCtCQUErQixpREFBSzs7QUFFcEM7QUFDQTtBQUNBOztBQUVBLGlFQUFlLGNBQWMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tcG9zZVNpZ25hbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSBcIi4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzXCI7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tIFwiLi4vY29yZS9BeGlvc0Vycm9yLmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG5jb25zdCBjb21wb3NlU2lnbmFscyA9IChzaWduYWxzLCB0aW1lb3V0KSA9PiB7XG4gIGNvbnN0IHtsZW5ndGh9ID0gKHNpZ25hbHMgPSBzaWduYWxzID8gc2lnbmFscy5maWx0ZXIoQm9vbGVhbikgOiBbXSk7XG5cbiAgaWYgKHRpbWVvdXQgfHwgbGVuZ3RoKSB7XG4gICAgbGV0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBsZXQgYWJvcnRlZDtcblxuICAgIGNvbnN0IG9uYWJvcnQgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICBpZiAoIWFib3J0ZWQpIHtcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG4gICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGNvbnN0IGVyciA9IHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uIDogdGhpcy5yZWFzb247XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoZXJyIGluc3RhbmNlb2YgQXhpb3NFcnJvciA/IGVyciA6IG5ldyBDYW5jZWxlZEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnIpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGltZXIgPSB0aW1lb3V0ICYmIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGltZXIgPSBudWxsO1xuICAgICAgb25hYm9ydChuZXcgQXhpb3NFcnJvcihgdGltZW91dCAke3RpbWVvdXR9IG9mIG1zIGV4Y2VlZGVkYCwgQXhpb3NFcnJvci5FVElNRURPVVQpKVxuICAgIH0sIHRpbWVvdXQpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9ICgpID0+IHtcbiAgICAgIGlmIChzaWduYWxzKSB7XG4gICAgICAgIHRpbWVyICYmIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgICAgc2lnbmFscy5mb3JFYWNoKHNpZ25hbCA9PiB7XG4gICAgICAgICAgc2lnbmFsLnVuc3Vic2NyaWJlID8gc2lnbmFsLnVuc3Vic2NyaWJlKG9uYWJvcnQpIDogc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzaWduYWxzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzaWduYWxzLmZvckVhY2goKHNpZ25hbCkgPT4gc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCkpO1xuXG4gICAgY29uc3Qge3NpZ25hbH0gPSBjb250cm9sbGVyO1xuXG4gICAgc2lnbmFsLnVuc3Vic2NyaWJlID0gKCkgPT4gdXRpbHMuYXNhcCh1bnN1YnNjcmliZSk7XG5cbiAgICByZXR1cm4gc2lnbmFsO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvc2VTaWduYWxzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/composeSignals.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/cookies.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/helpers/cookies.js ***! \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(path) && cookie.push('path=' + path);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n });\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFrQztBQUNVOztBQUU1QyxpRUFBZSwwREFBUTs7QUFFdkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxpREFBSzs7QUFFWCxNQUFNLGlEQUFLOztBQUVYLE1BQU0saURBQUs7O0FBRVg7O0FBRUEsdUNBQXVDO0FBQ3ZDLEtBQUs7O0FBRUw7QUFDQSwwREFBMEQsd0JBQXdCO0FBQ2xGO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Nvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgcGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyRW52ID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgc3VwcG9ydCBkb2N1bWVudC5jb29raWVcbiAge1xuICAgIHdyaXRlKG5hbWUsIHZhbHVlLCBleHBpcmVzLCBwYXRoLCBkb21haW4sIHNlY3VyZSkge1xuICAgICAgY29uc3QgY29va2llID0gW25hbWUgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpXTtcblxuICAgICAgdXRpbHMuaXNOdW1iZXIoZXhwaXJlcykgJiYgY29va2llLnB1c2goJ2V4cGlyZXM9JyArIG5ldyBEYXRlKGV4cGlyZXMpLnRvR01UU3RyaW5nKCkpO1xuXG4gICAgICB1dGlscy5pc1N0cmluZyhwYXRoKSAmJiBjb29raWUucHVzaCgncGF0aD0nICsgcGF0aCk7XG5cbiAgICAgIHV0aWxzLmlzU3RyaW5nKGRvbWFpbikgJiYgY29va2llLnB1c2goJ2RvbWFpbj0nICsgZG9tYWluKTtcblxuICAgICAgc2VjdXJlID09PSB0cnVlICYmIGNvb2tpZS5wdXNoKCdzZWN1cmUnKTtcblxuICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llLmpvaW4oJzsgJyk7XG4gICAgfSxcblxuICAgIHJlYWQobmFtZSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58O1xcXFxzKikoJyArIG5hbWUgKyAnKT0oW147XSopJykpO1xuICAgICAgcmV0dXJuIChtYXRjaCA/IGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFszXSkgOiBudWxsKTtcbiAgICB9LFxuXG4gICAgcmVtb3ZlKG5hbWUpIHtcbiAgICAgIHRoaXMud3JpdGUobmFtZSwgJycsIERhdGUubm93KCkgLSA4NjQwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgOlxuXG4gIC8vIE5vbi1zdGFuZGFyZCBicm93c2VyIGVudiAod2ViIHdvcmtlcnMsIHJlYWN0LW5hdGl2ZSkgbGFjayBuZWVkZWQgc3VwcG9ydC5cbiAge1xuICAgIHdyaXRlKCkge30sXG4gICAgcmVhZCgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgcmVtb3ZlKCkge31cbiAgfTtcblxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/cookies.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/formDataToJSON.js": /*!**********************************************************!*\ !*** ./node_modules/axios/lib/helpers/formDataToJSON.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(target) ? target.length : name;\n\n if (isLast) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(formData.entries)) {\n const obj = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formDataToJSON);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9mb3JtRGF0YVRvSlNPTi5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFhOztBQUVtQjs7QUFFaEM7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGlEQUFLO0FBQ2Q7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxZQUFZO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsNEJBQTRCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxvQkFBb0IsaURBQUs7O0FBRXpCO0FBQ0EsVUFBVSxpREFBSztBQUNmO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSwwQkFBMEIsaURBQUs7QUFDL0I7QUFDQTs7QUFFQTs7QUFFQSxrQkFBa0IsaURBQUs7QUFDdkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBLE1BQU0saURBQUsseUJBQXlCLGlEQUFLO0FBQ3pDOztBQUVBLElBQUksaURBQUs7QUFDVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlFQUFlLGNBQWMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIEl0IHRha2VzIGEgc3RyaW5nIGxpa2UgYGZvb1t4XVt5XVt6XWAgYW5kIHJldHVybnMgYW4gYXJyYXkgbGlrZSBgWydmb28nLCAneCcsICd5JywgJ3onXVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzLlxuICovXG5mdW5jdGlvbiBwYXJzZVByb3BQYXRoKG5hbWUpIHtcbiAgLy8gZm9vW3hdW3ldW3pdXG4gIC8vIGZvby54LnkuelxuICAvLyBmb28teC15LXpcbiAgLy8gZm9vIHggeSB6XG4gIHJldHVybiB1dGlscy5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csIG5hbWUpLm1hcChtYXRjaCA9PiB7XG4gICAgcmV0dXJuIG1hdGNoWzBdID09PSAnW10nID8gJycgOiBtYXRjaFsxXSB8fCBtYXRjaFswXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydCBhbiBhcnJheSB0byBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtBcnJheTxhbnk+fSBhcnIgLSBUaGUgYXJyYXkgdG8gY29udmVydCB0byBhbiBvYmplY3QuXG4gKlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIHNhbWUga2V5cyBhbmQgdmFsdWVzIGFzIHRoZSBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlUb09iamVjdChhcnIpIHtcbiAgY29uc3Qgb2JqID0ge307XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhcnIpO1xuICBsZXQgaTtcbiAgY29uc3QgbGVuID0ga2V5cy5sZW5ndGg7XG4gIGxldCBrZXk7XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGtleSA9IGtleXNbaV07XG4gICAgb2JqW2tleV0gPSBhcnJba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgRm9ybURhdGEgb2JqZWN0IGFuZCByZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybURhdGEgVGhlIEZvcm1EYXRhIG9iamVjdCB0byBjb252ZXJ0IHRvIEpTT04uXG4gKlxuICogQHJldHVybnMge09iamVjdDxzdHJpbmcsIGFueT4gfCBudWxsfSBUaGUgY29udmVydGVkIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZm9ybURhdGFUb0pTT04oZm9ybURhdGEpIHtcbiAgZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGgsIHZhbHVlLCB0YXJnZXQsIGluZGV4KSB7XG4gICAgbGV0IG5hbWUgPSBwYXRoW2luZGV4KytdO1xuXG4gICAgaWYgKG5hbWUgPT09ICdfX3Byb3RvX18nKSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IGlzTnVtZXJpY0tleSA9IE51bWJlci5pc0Zpbml0ZSgrbmFtZSk7XG4gICAgY29uc3QgaXNMYXN0ID0gaW5kZXggPj0gcGF0aC5sZW5ndGg7XG4gICAgbmFtZSA9ICFuYW1lICYmIHV0aWxzLmlzQXJyYXkodGFyZ2V0KSA/IHRhcmdldC5sZW5ndGggOiBuYW1lO1xuXG4gICAgaWYgKGlzTGFzdCkge1xuICAgICAgaWYgKHV0aWxzLmhhc093blByb3AodGFyZ2V0LCBuYW1lKSkge1xuICAgICAgICB0YXJnZXRbbmFtZV0gPSBbdGFyZ2V0W25hbWVdLCB2YWx1ZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICFpc051bWVyaWNLZXk7XG4gICAgfVxuXG4gICAgaWYgKCF0YXJnZXRbbmFtZV0gfHwgIXV0aWxzLmlzT2JqZWN0KHRhcmdldFtuYW1lXSkpIHtcbiAgICAgIHRhcmdldFtuYW1lXSA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkUGF0aChwYXRoLCB2YWx1ZSwgdGFyZ2V0W25hbWVdLCBpbmRleCk7XG5cbiAgICBpZiAocmVzdWx0ICYmIHV0aWxzLmlzQXJyYXkodGFyZ2V0W25hbWVdKSkge1xuICAgICAgdGFyZ2V0W25hbWVdID0gYXJyYXlUb09iamVjdCh0YXJnZXRbbmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiAhaXNOdW1lcmljS2V5O1xuICB9XG5cbiAgaWYgKHV0aWxzLmlzRm9ybURhdGEoZm9ybURhdGEpICYmIHV0aWxzLmlzRnVuY3Rpb24oZm9ybURhdGEuZW50cmllcykpIHtcbiAgICBjb25zdCBvYmogPSB7fTtcblxuICAgIHV0aWxzLmZvckVhY2hFbnRyeShmb3JtRGF0YSwgKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICBidWlsZFBhdGgocGFyc2VQcm9wUGF0aChuYW1lKSwgdmFsdWUsIG9iaiwgMCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1EYXRhVG9KU09OO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/formDataToJSON.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/isAbsoluteURL.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isAbsoluteURL)\n/* harmony export */ });\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc0Fic29sdXRlVVJMLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIFVSTCBpcyBhYnNvbHV0ZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0Fic29sdXRlVVJMKHVybCkge1xuICAvLyBBIFVSTCBpcyBjb25zaWRlcmVkIGFic29sdXRlIGlmIGl0IGJlZ2lucyB3aXRoIFwiPHNjaGVtZT46Ly9cIiBvciBcIi8vXCIgKHByb3RvY29sLXJlbGF0aXZlIFVSTCkuXG4gIC8vIFJGQyAzOTg2IGRlZmluZXMgc2NoZW1lIG5hbWUgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBmb2xsb3dlZFxuICAvLyBieSBhbnkgY29tYmluYXRpb24gb2YgbGV0dGVycywgZGlnaXRzLCBwbHVzLCBwZXJpb2QsIG9yIGh5cGhlbi5cbiAgcmV0dXJuIC9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KHVybCk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/isAbsoluteURL.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/isAxiosError.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isAxiosError)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(payload) && (payload.isAxiosError === true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc0F4aW9zRXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBYTs7QUFFcUI7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ2U7QUFDZixTQUFTLGlEQUFLO0FBQ2QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQXhpb3NFcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zXG4gKlxuICogQHBhcmFtIHsqfSBwYXlsb2FkIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBeGlvc0Vycm9yKHBheWxvYWQpIHtcbiAgcmV0dXJuIHV0aWxzLmlzT2JqZWN0KHBheWxvYWQpICYmIChwYXlsb2FkLmlzQXhpb3NFcnJvciA9PT0gdHJ1ZSk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/isAxiosError.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/isURLSameOrigin.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin),\n _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator && /(msie|trident)/i.test(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator.userAgent)\n) : () => true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc1VSTFNhbWVPcmlnaW4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNEM7O0FBRTVDLGlFQUFlLDBEQUFRO0FBQ3ZCLHFCQUFxQiwwREFBUTs7QUFFN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxVQUFVLDBEQUFRO0FBQ2xCLEVBQUUsMERBQVEscUNBQXFDLDBEQUFRO0FBQ3ZELGNBQWMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudiA/ICgob3JpZ2luLCBpc01TSUUpID0+ICh1cmwpID0+IHtcbiAgdXJsID0gbmV3IFVSTCh1cmwsIHBsYXRmb3JtLm9yaWdpbik7XG5cbiAgcmV0dXJuIChcbiAgICBvcmlnaW4ucHJvdG9jb2wgPT09IHVybC5wcm90b2NvbCAmJlxuICAgIG9yaWdpbi5ob3N0ID09PSB1cmwuaG9zdCAmJlxuICAgIChpc01TSUUgfHwgb3JpZ2luLnBvcnQgPT09IHVybC5wb3J0KVxuICApO1xufSkoXG4gIG5ldyBVUkwocGxhdGZvcm0ub3JpZ2luKSxcbiAgcGxhdGZvcm0ubmF2aWdhdG9yICYmIC8obXNpZXx0cmlkZW50KS9pLnRlc3QocGxhdGZvcm0ubmF2aWdhdG9yLnVzZXJBZ2VudClcbikgOiAoKSA9PiB0cnVlO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/isURLSameOrigin.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/null.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/helpers/null.js ***! \************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// eslint-disable-next-line strict\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (null);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9udWxsLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLGlFQUFlLElBQUksRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvbnVsbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc3RyaWN0XG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/null.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/parseHeaders.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBYTs7QUFFcUI7O0FBRWxDO0FBQ0E7QUFDQSwwQkFBMEIsaURBQUs7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsUUFBUTtBQUNyQjtBQUNBLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5cbi8vIFJhd0F4aW9zSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbmNvbnN0IGlnbm9yZUR1cGxpY2F0ZU9mID0gdXRpbHMudG9PYmplY3RTZXQoW1xuICAnYWdlJywgJ2F1dGhvcml6YXRpb24nLCAnY29udGVudC1sZW5ndGgnLCAnY29udGVudC10eXBlJywgJ2V0YWcnLFxuICAnZXhwaXJlcycsICdmcm9tJywgJ2hvc3QnLCAnaWYtbW9kaWZpZWQtc2luY2UnLCAnaWYtdW5tb2RpZmllZC1zaW5jZScsXG4gICdsYXN0LW1vZGlmaWVkJywgJ2xvY2F0aW9uJywgJ21heC1mb3J3YXJkcycsICdwcm94eS1hdXRob3JpemF0aW9uJyxcbiAgJ3JlZmVyZXInLCAncmV0cnktYWZ0ZXInLCAndXNlci1hZ2VudCdcbl0pO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmF3SGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKlxuICogQHJldHVybnMge09iamVjdH0gSGVhZGVycyBwYXJzZWQgaW50byBhbiBvYmplY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgcmF3SGVhZGVycyA9PiB7XG4gIGNvbnN0IHBhcnNlZCA9IHt9O1xuICBsZXQga2V5O1xuICBsZXQgdmFsO1xuICBsZXQgaTtcblxuICByYXdIZWFkZXJzICYmIHJhd0hlYWRlcnMuc3BsaXQoJ1xcbicpLmZvckVhY2goZnVuY3Rpb24gcGFyc2VyKGxpbmUpIHtcbiAgICBpID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgaSkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gbGluZS5zdWJzdHJpbmcoaSArIDEpLnRyaW0oKTtcblxuICAgIGlmICgha2V5IHx8IChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZltrZXldKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgaWYgKHBhcnNlZFtrZXldKSB7XG4gICAgICAgIHBhcnNlZFtrZXldLnB1c2godmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZFtrZXldID0gW3ZhbF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlZFtrZXldID0gcGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSArICcsICcgKyB2YWwgOiB2YWw7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcGFyc2VkO1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/parseHeaders.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/parseProtocol.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ parseProtocol)\n/* harmony export */ });\n\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZVByb3RvY29sLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFRTtBQUNmLDBCQUEwQixLQUFLO0FBQy9CO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3BhcnNlUHJvdG9jb2wuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJzZVByb3RvY29sKHVybCkge1xuICBjb25zdCBtYXRjaCA9IC9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKHVybCk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/parseProtocol.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/progressEventReducer.js": /*!****************************************************************!*\ !*** ./node_modules/axios/lib/helpers/progressEventReducer.js ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ asyncDecorator: () => (/* binding */ asyncDecorator),\n/* harmony export */ progressEventDecorator: () => (/* binding */ progressEventDecorator),\n/* harmony export */ progressEventReducer: () => (/* binding */ progressEventReducer)\n/* harmony export */ });\n/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/speedometer.js\");\n/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/throttle.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n\n\n\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(50, 250);\n\n return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nconst asyncDecorator = (fn) => (...args) => _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].asap(() => fn(...args));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wcm9ncmVzc0V2ZW50UmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBMkM7QUFDTjtBQUNMOztBQUV6QjtBQUNQO0FBQ0EsdUJBQXVCLDJEQUFXOztBQUVsQyxTQUFTLHdEQUFRO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDs7QUFFTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVPLDRDQUE0QyxpREFBSyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNwZWVkb21ldGVyIGZyb20gXCIuL3NwZWVkb21ldGVyLmpzXCI7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSBcIi4vdGhyb3R0bGUuanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzRXZlbnRSZWR1Y2VyID0gKGxpc3RlbmVyLCBpc0Rvd25sb2FkU3RyZWFtLCBmcmVxID0gMykgPT4ge1xuICBsZXQgYnl0ZXNOb3RpZmllZCA9IDA7XG4gIGNvbnN0IF9zcGVlZG9tZXRlciA9IHNwZWVkb21ldGVyKDUwLCAyNTApO1xuXG4gIHJldHVybiB0aHJvdHRsZShlID0+IHtcbiAgICBjb25zdCBsb2FkZWQgPSBlLmxvYWRlZDtcbiAgICBjb25zdCB0b3RhbCA9IGUubGVuZ3RoQ29tcHV0YWJsZSA/IGUudG90YWwgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJvZ3Jlc3NCeXRlcyA9IGxvYWRlZCAtIGJ5dGVzTm90aWZpZWQ7XG4gICAgY29uc3QgcmF0ZSA9IF9zcGVlZG9tZXRlcihwcm9ncmVzc0J5dGVzKTtcbiAgICBjb25zdCBpblJhbmdlID0gbG9hZGVkIDw9IHRvdGFsO1xuXG4gICAgYnl0ZXNOb3RpZmllZCA9IGxvYWRlZDtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBsb2FkZWQsXG4gICAgICB0b3RhbCxcbiAgICAgIHByb2dyZXNzOiB0b3RhbCA/IChsb2FkZWQgLyB0b3RhbCkgOiB1bmRlZmluZWQsXG4gICAgICBieXRlczogcHJvZ3Jlc3NCeXRlcyxcbiAgICAgIHJhdGU6IHJhdGUgPyByYXRlIDogdW5kZWZpbmVkLFxuICAgICAgZXN0aW1hdGVkOiByYXRlICYmIHRvdGFsICYmIGluUmFuZ2UgPyAodG90YWwgLSBsb2FkZWQpIC8gcmF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgIGV2ZW50OiBlLFxuICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdG90YWwgIT0gbnVsbCxcbiAgICAgIFtpc0Rvd25sb2FkU3RyZWFtID8gJ2Rvd25sb2FkJyA6ICd1cGxvYWQnXTogdHJ1ZVxuICAgIH07XG5cbiAgICBsaXN0ZW5lcihkYXRhKTtcbiAgfSwgZnJlcSk7XG59XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yID0gKHRvdGFsLCB0aHJvdHRsZWQpID0+IHtcbiAgY29uc3QgbGVuZ3RoQ29tcHV0YWJsZSA9IHRvdGFsICE9IG51bGw7XG5cbiAgcmV0dXJuIFsobG9hZGVkKSA9PiB0aHJvdHRsZWRbMF0oe1xuICAgIGxlbmd0aENvbXB1dGFibGUsXG4gICAgdG90YWwsXG4gICAgbG9hZGVkXG4gIH0pLCB0aHJvdHRsZWRbMV1dO1xufVxuXG5leHBvcnQgY29uc3QgYXN5bmNEZWNvcmF0b3IgPSAoZm4pID0+ICguLi5hcmdzKSA9PiB1dGlscy5hc2FwKCgpID0+IGZuKC4uLmFyZ3MpKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/progressEventReducer.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/resolveConfig.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/resolveConfig.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isURLSameOrigin.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/isURLSameOrigin.js\");\n/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cookies.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/cookies.js\");\n/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/buildFullPath.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/buildFullPath.js\");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/mergeConfig.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildURL.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/buildURL.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => {\n const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(headers);\n\n newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].isFormData(data)) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].hasStandardBrowserEnv) {\n withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n});\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9yZXNvbHZlQ29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUE0QztBQUNaO0FBQ21CO0FBQ2hCO0FBQ2tCO0FBQ0o7QUFDRTtBQUNkOztBQUVyQyxpRUFBZTtBQUNmLG9CQUFvQixnRUFBVyxHQUFHOztBQUVsQyxPQUFPLG9FQUFvRTs7QUFFM0UsZ0NBQWdDLDZEQUFZOztBQUU1QyxrQkFBa0Isd0RBQVEsQ0FBQyxrRUFBYTs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLE1BQU0saURBQUs7QUFDWCxRQUFRLDBEQUFRLDBCQUEwQiwwREFBUTtBQUNsRCx5Q0FBeUM7QUFDekMsTUFBTTtBQUNOO0FBQ0Esa0VBQWtFO0FBQ2xFLGdGQUFnRjtBQUNoRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLDBEQUFRO0FBQ2QscUJBQXFCLGlEQUFLOztBQUUxQixxREFBcUQsK0RBQWU7QUFDcEU7QUFDQSw0REFBNEQsbURBQU87O0FBRW5FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9yZXNvbHZlQ29uZmlnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwbGF0Zm9ybSBmcm9tIFwiLi4vcGxhdGZvcm0vaW5kZXguanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCBpc1VSTFNhbWVPcmlnaW4gZnJvbSBcIi4vaXNVUkxTYW1lT3JpZ2luLmpzXCI7XG5pbXBvcnQgY29va2llcyBmcm9tIFwiLi9jb29raWVzLmpzXCI7XG5pbXBvcnQgYnVpbGRGdWxsUGF0aCBmcm9tIFwiLi4vY29yZS9idWlsZEZ1bGxQYXRoLmpzXCI7XG5pbXBvcnQgbWVyZ2VDb25maWcgZnJvbSBcIi4uL2NvcmUvbWVyZ2VDb25maWcuanNcIjtcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQgYnVpbGRVUkwgZnJvbSBcIi4vYnVpbGRVUkwuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgKGNvbmZpZykgPT4ge1xuICBjb25zdCBuZXdDb25maWcgPSBtZXJnZUNvbmZpZyh7fSwgY29uZmlnKTtcblxuICBsZXQge2RhdGEsIHdpdGhYU1JGVG9rZW4sIHhzcmZIZWFkZXJOYW1lLCB4c3JmQ29va2llTmFtZSwgaGVhZGVycywgYXV0aH0gPSBuZXdDb25maWc7XG5cbiAgbmV3Q29uZmlnLmhlYWRlcnMgPSBoZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oaGVhZGVycyk7XG5cbiAgbmV3Q29uZmlnLnVybCA9IGJ1aWxkVVJMKGJ1aWxkRnVsbFBhdGgobmV3Q29uZmlnLmJhc2VVUkwsIG5ld0NvbmZpZy51cmwsIG5ld0NvbmZpZy5hbGxvd0Fic29sdXRlVXJscyksIGNvbmZpZy5wYXJhbXMsIGNvbmZpZy5wYXJhbXNTZXJpYWxpemVyKTtcblxuICAvLyBIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uXG4gIGlmIChhdXRoKSB7XG4gICAgaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArXG4gICAgICBidG9hKChhdXRoLnVzZXJuYW1lIHx8ICcnKSArICc6JyArIChhdXRoLnBhc3N3b3JkID8gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgucGFzc3dvcmQpKSA6ICcnKSlcbiAgICApO1xuICB9XG5cbiAgbGV0IGNvbnRlbnRUeXBlO1xuXG4gIGlmICh1dGlscy5pc0Zvcm1EYXRhKGRhdGEpKSB7XG4gICAgaWYgKHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudiB8fCBwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUodW5kZWZpbmVkKTsgLy8gTGV0IHRoZSBicm93c2VyIHNldCBpdFxuICAgIH0gZWxzZSBpZiAoKGNvbnRlbnRUeXBlID0gaGVhZGVycy5nZXRDb250ZW50VHlwZSgpKSAhPT0gZmFsc2UpIHtcbiAgICAgIC8vIGZpeCBzZW1pY29sb24gZHVwbGljYXRpb24gaXNzdWUgZm9yIFJlYWN0TmF0aXZlIEZvcm1EYXRhIGltcGxlbWVudGF0aW9uXG4gICAgICBjb25zdCBbdHlwZSwgLi4udG9rZW5zXSA9IGNvbnRlbnRUeXBlID8gY29udGVudFR5cGUuc3BsaXQoJzsnKS5tYXAodG9rZW4gPT4gdG9rZW4udHJpbSgpKS5maWx0ZXIoQm9vbGVhbikgOiBbXTtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoW3R5cGUgfHwgJ211bHRpcGFydC9mb3JtLWRhdGEnLCAuLi50b2tlbnNdLmpvaW4oJzsgJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB4c3JmIGhlYWRlclxuICAvLyBUaGlzIGlzIG9ubHkgZG9uZSBpZiBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudC5cbiAgLy8gU3BlY2lmaWNhbGx5IG5vdCBpZiB3ZSdyZSBpbiBhIHdlYiB3b3JrZXIsIG9yIHJlYWN0LW5hdGl2ZS5cblxuICBpZiAocGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyRW52KSB7XG4gICAgd2l0aFhTUkZUb2tlbiAmJiB1dGlscy5pc0Z1bmN0aW9uKHdpdGhYU1JGVG9rZW4pICYmICh3aXRoWFNSRlRva2VuID0gd2l0aFhTUkZUb2tlbihuZXdDb25maWcpKTtcblxuICAgIGlmICh3aXRoWFNSRlRva2VuIHx8ICh3aXRoWFNSRlRva2VuICE9PSBmYWxzZSAmJiBpc1VSTFNhbWVPcmlnaW4obmV3Q29uZmlnLnVybCkpKSB7XG4gICAgICAvLyBBZGQgeHNyZiBoZWFkZXJcbiAgICAgIGNvbnN0IHhzcmZWYWx1ZSA9IHhzcmZIZWFkZXJOYW1lICYmIHhzcmZDb29raWVOYW1lICYmIGNvb2tpZXMucmVhZCh4c3JmQ29va2llTmFtZSk7XG5cbiAgICAgIGlmICh4c3JmVmFsdWUpIHtcbiAgICAgICAgaGVhZGVycy5zZXQoeHNyZkhlYWRlck5hbWUsIHhzcmZWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0NvbmZpZztcbn1cblxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/resolveConfig.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/speedometer.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/speedometer.js ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (speedometer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcGVlZG9tZXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWE7O0FBRWI7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGlFQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvc3BlZWRvbWV0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENhbGN1bGF0ZSBkYXRhIG1heFJhdGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBbc2FtcGxlc0NvdW50PSAxMF1cbiAqIEBwYXJhbSB7TnVtYmVyfSBbbWluPSAxMDAwXVxuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBzcGVlZG9tZXRlcihzYW1wbGVzQ291bnQsIG1pbikge1xuICBzYW1wbGVzQ291bnQgPSBzYW1wbGVzQ291bnQgfHwgMTA7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IEFycmF5KHNhbXBsZXNDb3VudCk7XG4gIGNvbnN0IHRpbWVzdGFtcHMgPSBuZXcgQXJyYXkoc2FtcGxlc0NvdW50KTtcbiAgbGV0IGhlYWQgPSAwO1xuICBsZXQgdGFpbCA9IDA7XG4gIGxldCBmaXJzdFNhbXBsZVRTO1xuXG4gIG1pbiA9IG1pbiAhPT0gdW5kZWZpbmVkID8gbWluIDogMTAwMDtcblxuICByZXR1cm4gZnVuY3Rpb24gcHVzaChjaHVua0xlbmd0aCkge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBzdGFydGVkQXQgPSB0aW1lc3RhbXBzW3RhaWxdO1xuXG4gICAgaWYgKCFmaXJzdFNhbXBsZVRTKSB7XG4gICAgICBmaXJzdFNhbXBsZVRTID0gbm93O1xuICAgIH1cblxuICAgIGJ5dGVzW2hlYWRdID0gY2h1bmtMZW5ndGg7XG4gICAgdGltZXN0YW1wc1toZWFkXSA9IG5vdztcblxuICAgIGxldCBpID0gdGFpbDtcbiAgICBsZXQgYnl0ZXNDb3VudCA9IDA7XG5cbiAgICB3aGlsZSAoaSAhPT0gaGVhZCkge1xuICAgICAgYnl0ZXNDb3VudCArPSBieXRlc1tpKytdO1xuICAgICAgaSA9IGkgJSBzYW1wbGVzQ291bnQ7XG4gICAgfVxuXG4gICAgaGVhZCA9IChoZWFkICsgMSkgJSBzYW1wbGVzQ291bnQ7XG5cbiAgICBpZiAoaGVhZCA9PT0gdGFpbCkge1xuICAgICAgdGFpbCA9ICh0YWlsICsgMSkgJSBzYW1wbGVzQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKG5vdyAtIGZpcnN0U2FtcGxlVFMgPCBtaW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXNzZWQgPSBzdGFydGVkQXQgJiYgbm93IC0gc3RhcnRlZEF0O1xuXG4gICAgcmV0dXJuIHBhc3NlZCA/IE1hdGgucm91bmQoYnl0ZXNDb3VudCAqIDEwMDAgLyBwYXNzZWQpIDogdW5kZWZpbmVkO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzcGVlZG9tZXRlcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/speedometer.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/spread.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/helpers/spread.js ***! \**************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ spread)\n/* harmony export */ });\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcHJlYWQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBLGFBQWE7QUFDYjtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwcmVhZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogU3ludGFjdGljIHN1Z2FyIGZvciBpbnZva2luZyBhIGZ1bmN0aW9uIGFuZCBleHBhbmRpbmcgYW4gYXJyYXkgZm9yIGFyZ3VtZW50cy5cbiAqXG4gKiBDb21tb24gdXNlIGNhc2Ugd291bGQgYmUgdG8gdXNlIGBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHlgLlxuICpcbiAqICBgYGBqc1xuICogIGZ1bmN0aW9uIGYoeCwgeSwgeikge31cbiAqICB2YXIgYXJncyA9IFsxLCAyLCAzXTtcbiAqICBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICogIGBgYFxuICpcbiAqIFdpdGggYHNwcmVhZGAgdGhpcyBleGFtcGxlIGNhbiBiZSByZS13cml0dGVuLlxuICpcbiAqICBgYGBqc1xuICogIHNwcmVhZChmdW5jdGlvbih4LCB5LCB6KSB7fSkoWzEsIDIsIDNdKTtcbiAqICBgYGBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3ByZWFkKGNhbGxiYWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKGFycikge1xuICAgIHJldHVybiBjYWxsYmFjay5hcHBseShudWxsLCBhcnIpO1xuICB9O1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/spread.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/throttle.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/helpers/throttle.js ***! \****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90aHJvdHRsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLGlFQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdGhyb3R0bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaHJvdHRsZSBkZWNvcmF0b3JcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcGFyYW0ge051bWJlcn0gZnJlcVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKi9cbmZ1bmN0aW9uIHRocm90dGxlKGZuLCBmcmVxKSB7XG4gIGxldCB0aW1lc3RhbXAgPSAwO1xuICBsZXQgdGhyZXNob2xkID0gMTAwMCAvIGZyZXE7XG4gIGxldCBsYXN0QXJncztcbiAgbGV0IHRpbWVyO1xuXG4gIGNvbnN0IGludm9rZSA9IChhcmdzLCBub3cgPSBEYXRlLm5vdygpKSA9PiB7XG4gICAgdGltZXN0YW1wID0gbm93O1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBpZiAodGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB0aW1lciA9IG51bGw7XG4gICAgfVxuICAgIGZuLmFwcGx5KG51bGwsIGFyZ3MpO1xuICB9XG5cbiAgY29uc3QgdGhyb3R0bGVkID0gKC4uLmFyZ3MpID0+IHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHBhc3NlZCA9IG5vdyAtIHRpbWVzdGFtcDtcbiAgICBpZiAoIHBhc3NlZCA+PSB0aHJlc2hvbGQpIHtcbiAgICAgIGludm9rZShhcmdzLCBub3cpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0QXJncyA9IGFyZ3M7XG4gICAgICBpZiAoIXRpbWVyKSB7XG4gICAgICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGltZXIgPSBudWxsO1xuICAgICAgICAgIGludm9rZShsYXN0QXJncylcbiAgICAgICAgfSwgdGhyZXNob2xkIC0gcGFzc2VkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBmbHVzaCA9ICgpID0+IGxhc3RBcmdzICYmIGludm9rZShsYXN0QXJncyk7XG5cbiAgcmV0dXJuIFt0aHJvdHRsZWQsIGZsdXNoXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdGhyb3R0bGU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/throttle.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/helpers/toFormData.js ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/null.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")[\"Buffer\"];\n\n\n\n\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\n\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isSpecCompliantForm(formData);\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBlob(value)) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]('Blob is not supported. Use a Buffer instead.');\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) && isFlatArray(value)) ||\n ((_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '[]')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(value, function each(el, key) {\n const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(el) || el === null) && visitor.call(\n formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toFormData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b0Zvcm1EYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWE7O0FBRW1CO0FBQ2U7QUFDL0M7QUFDb0U7O0FBRXBFO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsU0FBUyxpREFBSyx5QkFBeUIsaURBQUs7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxTQUFTLGlEQUFLO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkI7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxZQUFZO0FBQ3ZCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxTQUFTLGlEQUFLO0FBQ2Q7O0FBRUEsbUJBQW1CLGlEQUFLLGNBQWMsaURBQUssSUFBSTtBQUMvQztBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixXQUFXLFNBQVM7QUFDcEIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsU0FBUztBQUNwQixXQUFXLFNBQVM7QUFDcEIsV0FBVyxVQUFVO0FBQ3JCO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsa0JBQWtCO0FBQzdCLFdBQVcsUUFBUTtBQUNuQixXQUFXLHFCQUFxQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8saURBQUs7QUFDWjtBQUNBOztBQUVBO0FBQ0EsOEJBQThCLDBFQUFnQjs7QUFFOUM7QUFDQSxZQUFZLGlEQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLFlBQVksaURBQUs7QUFDakIsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaURBQUs7O0FBRWhDLE9BQU8saURBQUs7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsUUFBUSxpREFBSztBQUNiO0FBQ0E7O0FBRUEsb0JBQW9CLGlEQUFLO0FBQ3pCLGdCQUFnQiwyREFBVTtBQUMxQjs7QUFFQSxRQUFRLGlEQUFLLHlCQUF5QixpREFBSztBQUMzQyx5RUFBeUUsTUFBTTtBQUMvRTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsR0FBRztBQUNoQixhQUFhLGVBQWU7QUFDNUIsYUFBYSxzQkFBc0I7QUFDbkMsWUFBWTtBQUNaO0FBQ0EsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsaURBQUssa0JBQWtCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLFNBQVMsaURBQUs7QUFDZCxVQUFVLGlEQUFLLHNCQUFzQixpREFBSyxnQ0FBZ0MsaURBQUs7QUFDL0U7QUFDQTtBQUNBOztBQUVBO0FBQ0EsWUFBWSxpREFBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsUUFBUSxpREFBSzs7QUFFYjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsSUFBSSxpREFBSztBQUNULHVCQUF1QixpREFBSztBQUM1QixzQkFBc0IsaURBQUs7QUFDM0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBLE9BQU8saURBQUs7QUFDWjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUEsaUVBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b0Zvcm1EYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG4vLyB0ZW1wb3JhcnkgaG90Zml4IHRvIGF2b2lkIGNpcmN1bGFyIHJlZmVyZW5jZXMgdW50aWwgQXhpb3NVUkxTZWFyY2hQYXJhbXMgaXMgcmVmYWN0b3JlZFxuaW1wb3J0IFBsYXRmb3JtRm9ybURhdGEgZnJvbSAnLi4vcGxhdGZvcm0vbm9kZS9jbGFzc2VzL0Zvcm1EYXRhLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0aGluZyBpcyBhIGFycmF5IG9yIGpzIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGhpbmcgLSBUaGUgb2JqZWN0IG9yIGFycmF5IHRvIGJlIHZpc2l0ZWQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVmlzaXRhYmxlKHRoaW5nKSB7XG4gIHJldHVybiB1dGlscy5pc1BsYWluT2JqZWN0KHRoaW5nKSB8fCB1dGlscy5pc0FycmF5KHRoaW5nKTtcbn1cblxuLyoqXG4gKiBJdCByZW1vdmVzIHRoZSBicmFja2V0cyBmcm9tIHRoZSBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgcGFyYW1ldGVyLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBrZXkgd2l0aG91dCB0aGUgYnJhY2tldHMuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUJyYWNrZXRzKGtleSkge1xuICByZXR1cm4gdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSA/IGtleS5zbGljZSgwLCAtMikgOiBrZXk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXRoLCBhIGtleSwgYW5kIGEgYm9vbGVhbiwgYW5kIHJldHVybnMgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBjdXJyZW50IG9iamVjdCBiZWluZyBpdGVyYXRlZCBvdmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGRvdHMgLSBJZiB0cnVlLCB0aGUga2V5IHdpbGwgYmUgcmVuZGVyZWQgd2l0aCBkb3RzIGluc3RlYWQgb2YgYnJhY2tldHMuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHBhdGggdG8gdGhlIGN1cnJlbnQga2V5LlxuICovXG5mdW5jdGlvbiByZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSB7XG4gIGlmICghcGF0aCkgcmV0dXJuIGtleTtcbiAgcmV0dXJuIHBhdGguY29uY2F0KGtleSkubWFwKGZ1bmN0aW9uIGVhY2godG9rZW4sIGkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB0b2tlbiA9IHJlbW92ZUJyYWNrZXRzKHRva2VuKTtcbiAgICByZXR1cm4gIWRvdHMgJiYgaSA/ICdbJyArIHRva2VuICsgJ10nIDogdG9rZW47XG4gIH0pLmpvaW4oZG90cyA/ICcuJyA6ICcnKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgYXJyYXkgaXMgYW4gYXJyYXkgYW5kIG5vbmUgb2YgaXRzIGVsZW1lbnRzIGFyZSB2aXNpdGFibGUsIHRoZW4gaXQncyBhIGZsYXQgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheTxhbnk+fSBhcnIgLSBUaGUgYXJyYXkgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGbGF0QXJyYXkoYXJyKSB7XG4gIHJldHVybiB1dGlscy5pc0FycmF5KGFycikgJiYgIWFyci5zb21lKGlzVmlzaXRhYmxlKTtcbn1cblxuY29uc3QgcHJlZGljYXRlcyA9IHV0aWxzLnRvRmxhdE9iamVjdCh1dGlscywge30sIG51bGwsIGZ1bmN0aW9uIGZpbHRlcihwcm9wKSB7XG4gIHJldHVybiAvXmlzW0EtWl0vLnRlc3QocHJvcCk7XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgZGF0YSBvYmplY3QgdG8gRm9ybURhdGFcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0gez9PYmplY3R9IFtmb3JtRGF0YV1cbiAqIEBwYXJhbSB7P09iamVjdH0gW29wdGlvbnNdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy52aXNpdG9yXVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5tZXRhVG9rZW5zID0gdHJ1ZV1cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuZG90cyA9IGZhbHNlXVxuICogQHBhcmFtIHs/Qm9vbGVhbn0gW29wdGlvbnMuaW5kZXhlcyA9IGZhbHNlXVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKiovXG5cbi8qKlxuICogSXQgY29udmVydHMgYW4gb2JqZWN0IGludG8gYSBGb3JtRGF0YSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gY29udmVydCB0byBmb3JtIGRhdGEuXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybURhdGEgLSBUaGUgRm9ybURhdGEgb2JqZWN0IHRvIGFwcGVuZCB0by5cbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIHRvRm9ybURhdGEob2JqLCBmb3JtRGF0YSwgb3B0aW9ucykge1xuICBpZiAoIXV0aWxzLmlzT2JqZWN0KG9iaikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBmb3JtRGF0YSA9IGZvcm1EYXRhIHx8IG5ldyAoUGxhdGZvcm1Gb3JtRGF0YSB8fCBGb3JtRGF0YSkoKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgb3B0aW9ucyA9IHV0aWxzLnRvRmxhdE9iamVjdChvcHRpb25zLCB7XG4gICAgbWV0YVRva2VuczogdHJ1ZSxcbiAgICBkb3RzOiBmYWxzZSxcbiAgICBpbmRleGVzOiBmYWxzZVxuICB9LCBmYWxzZSwgZnVuY3Rpb24gZGVmaW5lZChvcHRpb24sIHNvdXJjZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICAgIHJldHVybiAhdXRpbHMuaXNVbmRlZmluZWQoc291cmNlW29wdGlvbl0pO1xuICB9KTtcblxuICBjb25zdCBtZXRhVG9rZW5zID0gb3B0aW9ucy5tZXRhVG9rZW5zO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgY29uc3QgdmlzaXRvciA9IG9wdGlvbnMudmlzaXRvciB8fCBkZWZhdWx0VmlzaXRvcjtcbiAgY29uc3QgZG90cyA9IG9wdGlvbnMuZG90cztcbiAgY29uc3QgaW5kZXhlcyA9IG9wdGlvbnMuaW5kZXhlcztcbiAgY29uc3QgX0Jsb2IgPSBvcHRpb25zLkJsb2IgfHwgdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIEJsb2I7XG4gIGNvbnN0IHVzZUJsb2IgPSBfQmxvYiAmJiB1dGlscy5pc1NwZWNDb21wbGlhbnRGb3JtKGZvcm1EYXRhKTtcblxuICBpZiAoIXV0aWxzLmlzRnVuY3Rpb24odmlzaXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gY29udmVydFZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XG5cbiAgICBpZiAodXRpbHMuaXNEYXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VCbG9iICYmIHV0aWxzLmlzQmxvYih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLicpO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKHZhbHVlKSB8fCB1dGlscy5pc1R5cGVkQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdXNlQmxvYiAmJiB0eXBlb2YgQmxvYiA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBCbG9iKFt2YWx1ZV0pIDogQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHZpc2l0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAgICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSBrZXlcbiAgICogQHBhcmFtIHtBcnJheTxTdHJpbmd8TnVtYmVyPn0gcGF0aFxuICAgKiBAdGhpcyB7Rm9ybURhdGF9XG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm4gdHJ1ZSB0byB2aXNpdCB0aGUgZWFjaCBwcm9wIG9mIHRoZSB2YWx1ZSByZWN1cnNpdmVseVxuICAgKi9cbiAgZnVuY3Rpb24gZGVmYXVsdFZpc2l0b3IodmFsdWUsIGtleSwgcGF0aCkge1xuICAgIGxldCBhcnIgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSAmJiAhcGF0aCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodXRpbHMuZW5kc1dpdGgoa2V5LCAne30nKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAga2V5ID0gbWV0YVRva2VucyA/IGtleSA6IGtleS5zbGljZSgwLCAtMik7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICh1dGlscy5pc0FycmF5KHZhbHVlKSAmJiBpc0ZsYXRBcnJheSh2YWx1ZSkpIHx8XG4gICAgICAgICgodXRpbHMuaXNGaWxlTGlzdCh2YWx1ZSkgfHwgdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSkgJiYgKGFyciA9IHV0aWxzLnRvQXJyYXkodmFsdWUpKVxuICAgICAgICApKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBrZXkgPSByZW1vdmVCcmFja2V0cyhrZXkpO1xuXG4gICAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIGVhY2goZWwsIGluZGV4KSB7XG4gICAgICAgICAgISh1dGlscy5pc1VuZGVmaW5lZChlbCkgfHwgZWwgPT09IG51bGwpICYmIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgICAgICAgaW5kZXhlcyA9PT0gdHJ1ZSA/IHJlbmRlcktleShba2V5XSwgaW5kZXgsIGRvdHMpIDogKGluZGV4ZXMgPT09IG51bGwgPyBrZXkgOiBrZXkgKyAnW10nKSxcbiAgICAgICAgICAgIGNvbnZlcnRWYWx1ZShlbClcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc1Zpc2l0YWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvcm1EYXRhLmFwcGVuZChyZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSwgY29udmVydFZhbHVlKHZhbHVlKSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBzdGFjayA9IFtdO1xuXG4gIGNvbnN0IGV4cG9zZWRIZWxwZXJzID0gT2JqZWN0LmFzc2lnbihwcmVkaWNhdGVzLCB7XG4gICAgZGVmYXVsdFZpc2l0b3IsXG4gICAgY29udmVydFZhbHVlLFxuICAgIGlzVmlzaXRhYmxlXG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGJ1aWxkKHZhbHVlLCBwYXRoKSB7XG4gICAgaWYgKHV0aWxzLmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpICE9PSAtMSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0NpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAnICsgcGF0aC5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG4gICAgdXRpbHMuZm9yRWFjaCh2YWx1ZSwgZnVuY3Rpb24gZWFjaChlbCwga2V5KSB7XG4gICAgICBjb25zdCByZXN1bHQgPSAhKHV0aWxzLmlzVW5kZWZpbmVkKGVsKSB8fCBlbCA9PT0gbnVsbCkgJiYgdmlzaXRvci5jYWxsKFxuICAgICAgICBmb3JtRGF0YSwgZWwsIHV0aWxzLmlzU3RyaW5nKGtleSkgPyBrZXkudHJpbSgpIDoga2V5LCBwYXRoLCBleHBvc2VkSGVscGVyc1xuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICBidWlsZChlbCwgcGF0aCA/IHBhdGguY29uY2F0KGtleSkgOiBba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdGFjay5wb3AoKTtcbiAgfVxuXG4gIGlmICghdXRpbHMuaXNPYmplY3Qob2JqKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RhdGEgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIGJ1aWxkKG9iaik7XG5cbiAgcmV0dXJuIGZvcm1EYXRhO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b0Zvcm1EYXRhO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/toURLEncodedForm.js": /*!************************************************************!*\ !*** ./node_modules/axios/lib/helpers/toURLEncodedForm.js ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ toURLEncodedForm)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/index.js\");\n\n\n\n\n\n\nfunction toURLEncodedForm(data, options) {\n return (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b1VSTEVuY29kZWRGb3JtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBYTs7QUFFbUI7QUFDUztBQUNHOztBQUU3QjtBQUNmLFNBQVMsMERBQVUsV0FBVywwREFBUTtBQUN0QztBQUNBLFVBQVUsMERBQVEsV0FBVyxpREFBSztBQUNsQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdG9VUkxFbmNvZGVkRm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9VUkxFbmNvZGVkRm9ybShkYXRhLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0Zvcm1EYXRhKGRhdGEsIG5ldyBwbGF0Zm9ybS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcygpLCBPYmplY3QuYXNzaWduKHtcbiAgICB2aXNpdG9yOiBmdW5jdGlvbih2YWx1ZSwga2V5LCBwYXRoLCBoZWxwZXJzKSB7XG4gICAgICBpZiAocGxhdGZvcm0uaXNOb2RlICYmIHV0aWxzLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhlbHBlcnMuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH0sIG9wdGlvbnMpKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/toURLEncodedForm.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/trackStream.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/trackStream.js ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ readBytes: () => (/* binding */ readBytes),\n/* harmony export */ streamChunk: () => (/* binding */ streamChunk),\n/* harmony export */ trackStream: () => (/* binding */ trackStream)\n/* harmony export */ });\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90cmFja1N0cmVhbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ087QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWCxhQUFhLGFBQWE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsYUFBYTs7QUFFNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90cmFja1N0cmVhbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBzdHJlYW1DaHVuayA9IGZ1bmN0aW9uKiAoY2h1bmssIGNodW5rU2l6ZSkge1xuICBsZXQgbGVuID0gY2h1bmsuYnl0ZUxlbmd0aDtcblxuICBpZiAoIWNodW5rU2l6ZSB8fCBsZW4gPCBjaHVua1NpemUpIHtcbiAgICB5aWVsZCBjaHVuaztcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgcG9zID0gMDtcbiAgbGV0IGVuZDtcblxuICB3aGlsZSAocG9zIDwgbGVuKSB7XG4gICAgZW5kID0gcG9zICsgY2h1bmtTaXplO1xuICAgIHlpZWxkIGNodW5rLnNsaWNlKHBvcywgZW5kKTtcbiAgICBwb3MgPSBlbmQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlYWRCeXRlcyA9IGFzeW5jIGZ1bmN0aW9uKiAoaXRlcmFibGUsIGNodW5rU2l6ZSkge1xuICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHJlYWRTdHJlYW0oaXRlcmFibGUpKSB7XG4gICAgeWllbGQqIHN0cmVhbUNodW5rKGNodW5rLCBjaHVua1NpemUpO1xuICB9XG59XG5cbmNvbnN0IHJlYWRTdHJlYW0gPSBhc3luYyBmdW5jdGlvbiogKHN0cmVhbSkge1xuICBpZiAoc3RyZWFtW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSkge1xuICAgIHlpZWxkKiBzdHJlYW07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICB0cnkge1xuICAgIGZvciAoOzspIHtcbiAgICAgIGNvbnN0IHtkb25lLCB2YWx1ZX0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB5aWVsZCB2YWx1ZTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcmVhZGVyLmNhbmNlbCgpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmFja1N0cmVhbSA9IChzdHJlYW0sIGNodW5rU2l6ZSwgb25Qcm9ncmVzcywgb25GaW5pc2gpID0+IHtcbiAgY29uc3QgaXRlcmF0b3IgPSByZWFkQnl0ZXMoc3RyZWFtLCBjaHVua1NpemUpO1xuXG4gIGxldCBieXRlcyA9IDA7XG4gIGxldCBkb25lO1xuICBsZXQgX29uRmluaXNoID0gKGUpID0+IHtcbiAgICBpZiAoIWRvbmUpIHtcbiAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgb25GaW5pc2ggJiYgb25GaW5pc2goZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgYXN5bmMgcHVsbChjb250cm9sbGVyKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7ZG9uZSwgdmFsdWV9ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuXG4gICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICBfb25GaW5pc2goKTtcbiAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxlbiA9IHZhbHVlLmJ5dGVMZW5ndGg7XG4gICAgICAgIGlmIChvblByb2dyZXNzKSB7XG4gICAgICAgICAgbGV0IGxvYWRlZEJ5dGVzID0gYnl0ZXMgKz0gbGVuO1xuICAgICAgICAgIG9uUHJvZ3Jlc3MobG9hZGVkQnl0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgVWludDhBcnJheSh2YWx1ZSkpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIF9vbkZpbmlzaChlcnIpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfSxcbiAgICBjYW5jZWwocmVhc29uKSB7XG4gICAgICBfb25GaW5pc2gocmVhc29uKTtcbiAgICAgIHJldHVybiBpdGVyYXRvci5yZXR1cm4oKTtcbiAgICB9XG4gIH0sIHtcbiAgICBoaWdoV2F0ZXJNYXJrOiAyXG4gIH0pXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/trackStream.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/helpers/validator.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/helpers/validator.js ***! \*****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ \"(app-pages-browser)/./node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"(app-pages-browser)/./node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__.VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION);\n }\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n assertOptions,\n validators\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy92YWxpZGF0b3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWE7O0FBRTBCO0FBQ1E7O0FBRS9DOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsbUJBQW1CO0FBQzlCLFdBQVcsU0FBUztBQUNwQixXQUFXLFNBQVM7QUFDcEI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlEQUFPO0FBQy9COztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyREFBVTtBQUMxQjtBQUNBLFFBQVEsMkRBQVU7QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLEtBQUssNkJBQTZCLGdCQUFnQjtBQUN0RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckI7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLGNBQWMsMkRBQVUsOEJBQThCLDJEQUFVO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDJEQUFVLHlDQUF5QywyREFBVTtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyREFBVSwwQkFBMEIsMkRBQVU7QUFDOUQ7QUFDQTtBQUNBOztBQUVBLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBLENBQUMsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHtWRVJTSU9OfSBmcm9tICcuLi9lbnYvZGF0YS5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuXG5jb25zdCB2YWxpZGF0b3JzID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5bJ29iamVjdCcsICdib29sZWFuJywgJ251bWJlcicsICdmdW5jdGlvbicsICdzdHJpbmcnLCAnc3ltYm9sJ10uZm9yRWFjaCgodHlwZSwgaSkgPT4ge1xuICB2YWxpZGF0b3JzW3R5cGVdID0gZnVuY3Rpb24gdmFsaWRhdG9yKHRoaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gdHlwZSB8fCAnYScgKyAoaSA8IDEgPyAnbiAnIDogJyAnKSArIHR5cGU7XG4gIH07XG59KTtcblxuY29uc3QgZGVwcmVjYXRlZFdhcm5pbmdzID0ge307XG5cbi8qKlxuICogVHJhbnNpdGlvbmFsIG9wdGlvbiB2YWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufGJvb2xlYW4/fSB2YWxpZGF0b3IgLSBzZXQgdG8gZmFsc2UgaWYgdGhlIHRyYW5zaXRpb25hbCBvcHRpb24gaGFzIGJlZW4gcmVtb3ZlZFxuICogQHBhcmFtIHtzdHJpbmc/fSB2ZXJzaW9uIC0gZGVwcmVjYXRlZCB2ZXJzaW9uIC8gcmVtb3ZlZCBzaW5jZSB2ZXJzaW9uXG4gKiBAcGFyYW0ge3N0cmluZz99IG1lc3NhZ2UgLSBzb21lIG1lc3NhZ2Ugd2l0aCBhZGRpdGlvbmFsIGluZm9cbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbnZhbGlkYXRvcnMudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gdHJhbnNpdGlvbmFsKHZhbGlkYXRvciwgdmVyc2lvbiwgbWVzc2FnZSkge1xuICBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG9wdCwgZGVzYykge1xuICAgIHJldHVybiAnW0F4aW9zIHYnICsgVkVSU0lPTiArICddIFRyYW5zaXRpb25hbCBvcHRpb24gXFwnJyArIG9wdCArICdcXCcnICsgZGVzYyArIChtZXNzYWdlID8gJy4gJyArIG1lc3NhZ2UgOiAnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gKHZhbHVlLCBvcHQsIG9wdHMpID0+IHtcbiAgICBpZiAodmFsaWRhdG9yID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoXG4gICAgICAgIGZvcm1hdE1lc3NhZ2Uob3B0LCAnIGhhcyBiZWVuIHJlbW92ZWQnICsgKHZlcnNpb24gPyAnIGluICcgKyB2ZXJzaW9uIDogJycpKSxcbiAgICAgICAgQXhpb3NFcnJvci5FUlJfREVQUkVDQVRFRFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodmVyc2lvbiAmJiAhZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0pIHtcbiAgICAgIGRlcHJlY2F0ZWRXYXJuaW5nc1tvcHRdID0gdHJ1ZTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGZvcm1hdE1lc3NhZ2UoXG4gICAgICAgICAgb3B0LFxuICAgICAgICAgICcgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2JyArIHZlcnNpb24gKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3IgPyB2YWxpZGF0b3IodmFsdWUsIG9wdCwgb3B0cykgOiB0cnVlO1xuICB9O1xufTtcblxudmFsaWRhdG9ycy5zcGVsbGluZyA9IGZ1bmN0aW9uIHNwZWxsaW5nKGNvcnJlY3RTcGVsbGluZykge1xuICByZXR1cm4gKHZhbHVlLCBvcHQpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybihgJHtvcHR9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7Y29ycmVjdFNwZWxsaW5nfWApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG4vKipcbiAqIEFzc2VydCBvYmplY3QncyBwcm9wZXJ0aWVzIHR5cGVcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYVxuICogQHBhcmFtIHtib29sZWFuP30gYWxsb3dVbmtub3duXG4gKlxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBhc3NlcnRPcHRpb25zKG9wdGlvbnMsIHNjaGVtYSwgYWxsb3dVbmtub3duKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcsIEF4aW9zRXJyb3IuRVJSX0JBRF9PUFRJT05fVkFMVUUpO1xuICB9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgbGV0IGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBjb25zdCBvcHQgPSBrZXlzW2ldO1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IHNjaGVtYVtvcHRdO1xuICAgIGlmICh2YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1tvcHRdO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWxpZGF0b3IodmFsdWUsIG9wdCwgb3B0aW9ucyk7XG4gICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdvcHRpb24gJyArIG9wdCArICcgbXVzdCBiZSAnICsgcmVzdWx0LCBBeGlvc0Vycm9yLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYWxsb3dVbmtub3duICE9PSB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignVW5rbm93biBvcHRpb24gJyArIG9wdCwgQXhpb3NFcnJvci5FUlJfQkFEX09QVElPTik7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXNzZXJ0T3B0aW9ucyxcbiAgdmFsaWRhdG9yc1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/helpers/validator.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/Blob.js": /*!*****************************************************************!*\ !*** ./node_modules/axios/lib/platform/browser/classes/Blob.js ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof Blob !== 'undefined' ? Blob : null);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL0Jsb2IuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFZOztBQUVaLGlFQUFlLHlDQUF5QyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3BsYXRmb3JtL2Jyb3dzZXIvY2xhc3Nlcy9CbG9iLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5leHBvcnQgZGVmYXVsdCB0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgPyBCbG9iIDogbnVsbFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/Blob.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/FormData.js": /*!*********************************************************************!*\ !*** ./node_modules/axios/lib/platform/browser/classes/FormData.js ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof FormData !== 'undefined' ? FormData : null);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL0Zvcm1EYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBYTs7QUFFYixpRUFBZSxpREFBaUQsRUFBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3BsYXRmb3JtL2Jyb3dzZXIvY2xhc3Nlcy9Gb3JtRGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgPyBGb3JtRGF0YSA6IG51bGw7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/FormData.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js": /*!****************************************************************************!*\ !*** ./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***! \****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof URLSearchParams !== 'undefined' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL1VSTFNlYXJjaFBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFhOztBQUUrRDtBQUM1RSxpRUFBZSwyREFBMkQsd0VBQW9CLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9icm93c2VyL2NsYXNzZXMvVVJMU2VhcmNoUGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IEF4aW9zVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMnO1xuZXhwb3J0IGRlZmF1bHQgdHlwZW9mIFVSTFNlYXJjaFBhcmFtcyAhPT0gJ3VuZGVmaW5lZCcgPyBVUkxTZWFyY2hQYXJhbXMgOiBBeGlvc1VSTFNlYXJjaFBhcmFtcztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/browser/index.js": /*!**********************************************************!*\ !*** ./node_modules/axios/lib/platform/browser/index.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js\");\n/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/FormData.js\");\n/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/browser/classes/Blob.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isBrowser: true,\n classes: {\n URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTBEO0FBQ2Q7QUFDUjs7QUFFcEMsaUVBQWU7QUFDZjtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLFlBQVk7QUFDWixRQUFRO0FBQ1IsR0FBRztBQUNIO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4vY2xhc3Nlcy9VUkxTZWFyY2hQYXJhbXMuanMnXG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnLi9jbGFzc2VzL0Zvcm1EYXRhLmpzJ1xuaW1wb3J0IEJsb2IgZnJvbSAnLi9jbGFzc2VzL0Jsb2IuanMnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNCcm93c2VyOiB0cnVlLFxuICBjbGFzc2VzOiB7XG4gICAgVVJMU2VhcmNoUGFyYW1zLFxuICAgIEZvcm1EYXRhLFxuICAgIEJsb2JcbiAgfSxcbiAgcHJvdG9jb2xzOiBbJ2h0dHAnLCAnaHR0cHMnLCAnZmlsZScsICdibG9iJywgJ3VybCcsICdkYXRhJ11cbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/browser/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/common/utils.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/platform/common/utils.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasBrowserEnv: () => (/* binding */ hasBrowserEnv),\n/* harmony export */ hasStandardBrowserEnv: () => (/* binding */ hasStandardBrowserEnv),\n/* harmony export */ hasStandardBrowserWebWorkerEnv: () => (/* binding */ hasStandardBrowserWebWorkerEnv),\n/* harmony export */ navigator: () => (/* binding */ _navigator),\n/* harmony export */ origin: () => (/* binding */ origin)\n/* harmony export */ });\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vY29tbW9uL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBUUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9jb21tb24vdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaGFzQnJvd3NlckVudiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG5cbmNvbnN0IF9uYXZpZ2F0b3IgPSB0eXBlb2YgbmF2aWdhdG9yID09PSAnb2JqZWN0JyAmJiBuYXZpZ2F0b3IgfHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudFxuICpcbiAqIFRoaXMgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXIsIGFuZCByZWFjdC1uYXRpdmUuXG4gKiBCb3RoIGVudmlyb25tZW50cyBzdXBwb3J0IFhNTEh0dHBSZXF1ZXN0LCBidXQgbm90IGZ1bGx5IHN0YW5kYXJkIGdsb2JhbHMuXG4gKlxuICogd2ViIHdvcmtlcnM6XG4gKiAgdHlwZW9mIHdpbmRvdyAtPiB1bmRlZmluZWRcbiAqICB0eXBlb2YgZG9jdW1lbnQgLT4gdW5kZWZpbmVkXG4gKlxuICogcmVhY3QtbmF0aXZlOlxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdSZWFjdE5hdGl2ZSdcbiAqIG5hdGl2ZXNjcmlwdFxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdOYXRpdmVTY3JpcHQnIG9yICdOUydcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuY29uc3QgaGFzU3RhbmRhcmRCcm93c2VyRW52ID0gaGFzQnJvd3NlckVudiAmJlxuICAoIV9uYXZpZ2F0b3IgfHwgWydSZWFjdE5hdGl2ZScsICdOYXRpdmVTY3JpcHQnLCAnTlMnXS5pbmRleE9mKF9uYXZpZ2F0b3IucHJvZHVjdCkgPCAwKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgd2UncmUgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgd2ViV29ya2VyIGVudmlyb25tZW50XG4gKlxuICogQWx0aG91Z2ggdGhlIGBpc1N0YW5kYXJkQnJvd3NlckVudmAgbWV0aG9kIGluZGljYXRlcyB0aGF0XG4gKiBgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXJgLCB0aGUgV2ViV29ya2VyIHdpbGwgc3RpbGwgYmVcbiAqIGZpbHRlcmVkIG91dCBkdWUgdG8gaXRzIGp1ZGdtZW50IHN0YW5kYXJkXG4gKiBgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ2AuXG4gKiBUaGlzIGxlYWRzIHRvIGEgcHJvYmxlbSB3aGVuIGF4aW9zIHBvc3QgYEZvcm1EYXRhYCBpbiB3ZWJXb3JrZXJcbiAqL1xuY29uc3QgaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52ID0gKCgpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlICYmXG4gICAgdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cyA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufSkoKTtcblxuY29uc3Qgb3JpZ2luID0gaGFzQnJvd3NlckVudiAmJiB3aW5kb3cubG9jYXRpb24uaHJlZiB8fCAnaHR0cDovL2xvY2FsaG9zdCc7XG5cbmV4cG9ydCB7XG4gIGhhc0Jyb3dzZXJFbnYsXG4gIGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudixcbiAgaGFzU3RhbmRhcmRCcm93c2VyRW52LFxuICBfbmF2aWdhdG9yIGFzIG5hdmlnYXRvcixcbiAgb3JpZ2luXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/common/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/platform/index.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/platform/index.js ***! \**************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node/index.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/browser/index.js\");\n/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/utils.js */ \"(app-pages-browser)/./node_modules/axios/lib/platform/common/utils.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n ..._common_utils_js__WEBPACK_IMPORTED_MODULE_0__,\n ..._node_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVDO0FBQ0k7O0FBRTNDLGlFQUFlO0FBQ2YsS0FBSyw2Q0FBSztBQUNWLEtBQUssc0RBQVE7QUFDYixDQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4vbm9kZS9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL2NvbW1vbi91dGlscy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLi4udXRpbHMsXG4gIC4uLnBsYXRmb3JtXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/platform/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/axios/lib/utils.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/utils.js ***! \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ \"(app-pages-browser)/./node_modules/axios/lib/helpers/bind.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\n\n\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWE7O0FBRXdCOztBQUVyQzs7QUFFQSxPQUFPLFVBQVU7QUFDakIsT0FBTyxnQkFBZ0I7O0FBRXZCO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0EsT0FBTyxTQUFTOztBQUVoQjtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBLGFBQWEsU0FBUztBQUN0QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2Q7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2Q7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBLGFBQWEsU0FBUztBQUN0QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2Q7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBiaW5kIGZyb20gJy4vaGVscGVycy9iaW5kLmpzJztcblxuLy8gdXRpbHMgaXMgYSBsaWJyYXJ5IG9mIGdlbmVyaWMgaGVscGVyIGZ1bmN0aW9ucyBub24tc3BlY2lmaWMgdG8gYXhpb3NcblxuY29uc3Qge3RvU3RyaW5nfSA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCB7Z2V0UHJvdG90eXBlT2Z9ID0gT2JqZWN0O1xuXG5jb25zdCBraW5kT2YgPSAoY2FjaGUgPT4gdGhpbmcgPT4ge1xuICAgIGNvbnN0IHN0ciA9IHRvU3RyaW5nLmNhbGwodGhpbmcpO1xuICAgIHJldHVybiBjYWNoZVtzdHJdIHx8IChjYWNoZVtzdHJdID0gc3RyLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpKTtcbn0pKE9iamVjdC5jcmVhdGUobnVsbCkpO1xuXG5jb25zdCBraW5kT2ZUZXN0ID0gKHR5cGUpID0+IHtcbiAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuICh0aGluZykgPT4ga2luZE9mKHRoaW5nKSA9PT0gdHlwZVxufVxuXG5jb25zdCB0eXBlT2ZUZXN0ID0gdHlwZSA9PiB0aGluZyA9PiB0eXBlb2YgdGhpbmcgPT09IHR5cGU7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXksIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCB7aXNBcnJheX0gPSBBcnJheTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB1bmRlZmluZWQsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1VuZGVmaW5lZCA9IHR5cGVPZlRlc3QoJ3VuZGVmaW5lZCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQnVmZmVyXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmICFpc1VuZGVmaW5lZCh2YWwpICYmIHZhbC5jb25zdHJ1Y3RvciAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsLmNvbnN0cnVjdG9yKVxuICAgICYmIGlzRnVuY3Rpb24odmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSAmJiB2YWwuY29uc3RydWN0b3IuaXNCdWZmZXIodmFsKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0FycmF5QnVmZmVyID0ga2luZE9mVGVzdCgnQXJyYXlCdWZmZXInKTtcblxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSB2aWV3IG9uIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUJ1ZmZlclZpZXcodmFsKSB7XG4gIGxldCByZXN1bHQ7XG4gIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJykgJiYgKEFycmF5QnVmZmVyLmlzVmlldykpIHtcbiAgICByZXN1bHQgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSAodmFsKSAmJiAodmFsLmJ1ZmZlcikgJiYgKGlzQXJyYXlCdWZmZXIodmFsLmJ1ZmZlcikpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyaW5nLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNTdHJpbmcgPSB0eXBlT2ZUZXN0KCdzdHJpbmcnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRnVuY3Rpb24sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Z1bmN0aW9uID0gdHlwZU9mVGVzdCgnZnVuY3Rpb24nKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIE51bWJlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBOdW1iZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc051bWJlciA9IHR5cGVPZlRlc3QoJ251bWJlcicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIE9iamVjdFxuICpcbiAqIEBwYXJhbSB7Kn0gdGhpbmcgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBPYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc09iamVjdCA9ICh0aGluZykgPT4gdGhpbmcgIT09IG51bGwgJiYgdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0JztcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJvb2xlYW5cbiAqXG4gKiBAcGFyYW0geyp9IHRoaW5nIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJvb2xlYW4sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Jvb2xlYW4gPSB0aGluZyA9PiB0aGluZyA9PT0gdHJ1ZSB8fCB0aGluZyA9PT0gZmFsc2U7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2YWwpID0+IHtcbiAgaWYgKGtpbmRPZih2YWwpICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiAocHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSA9PT0gbnVsbCkgJiYgIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdmFsKSAmJiAhKFN5bWJvbC5pdGVyYXRvciBpbiB2YWwpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBEYXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNEYXRlID0ga2luZE9mVGVzdCgnRGF0ZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBGaWxlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGaWxlID0ga2luZE9mVGVzdCgnRmlsZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCbG9iLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNCbG9iID0ga2luZE9mVGVzdCgnQmxvYicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZUxpc3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRmlsZUxpc3QgPSBraW5kT2ZUZXN0KCdGaWxlTGlzdCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgU3RyZWFtXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmVhbSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzU3RyZWFtID0gKHZhbCkgPT4gaXNPYmplY3QodmFsKSAmJiBpc0Z1bmN0aW9uKHZhbC5waXBlKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZvcm1EYXRhXG4gKlxuICogQHBhcmFtIHsqfSB0aGluZyBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEZvcm1EYXRhLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGb3JtRGF0YSA9ICh0aGluZykgPT4ge1xuICBsZXQga2luZDtcbiAgcmV0dXJuIHRoaW5nICYmIChcbiAgICAodHlwZW9mIEZvcm1EYXRhID09PSAnZnVuY3Rpb24nICYmIHRoaW5nIGluc3RhbmNlb2YgRm9ybURhdGEpIHx8IChcbiAgICAgIGlzRnVuY3Rpb24odGhpbmcuYXBwZW5kKSAmJiAoXG4gICAgICAgIChraW5kID0ga2luZE9mKHRoaW5nKSkgPT09ICdmb3JtZGF0YScgfHxcbiAgICAgICAgLy8gZGV0ZWN0IGZvcm0tZGF0YSBpbnN0YW5jZVxuICAgICAgICAoa2luZCA9PT0gJ29iamVjdCcgJiYgaXNGdW5jdGlvbih0aGluZy50b1N0cmluZykgJiYgdGhpbmcudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgRm9ybURhdGFdJylcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzVVJMU2VhcmNoUGFyYW1zID0ga2luZE9mVGVzdCgnVVJMU2VhcmNoUGFyYW1zJyk7XG5cbmNvbnN0IFtpc1JlYWRhYmxlU3RyZWFtLCBpc1JlcXVlc3QsIGlzUmVzcG9uc2UsIGlzSGVhZGVyc10gPSBbJ1JlYWRhYmxlU3RyZWFtJywgJ1JlcXVlc3QnLCAnUmVzcG9uc2UnLCAnSGVhZGVycyddLm1hcChraW5kT2ZUZXN0KTtcblxuLyoqXG4gKiBUcmltIGV4Y2VzcyB3aGl0ZXNwYWNlIG9mZiB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBTdHJpbmcgdG8gdHJpbVxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBTdHJpbmcgZnJlZWQgb2YgZXhjZXNzIHdoaXRlc3BhY2VcbiAqL1xuY29uc3QgdHJpbSA9IChzdHIpID0+IHN0ci50cmltID9cbiAgc3RyLnRyaW0oKSA6IHN0ci5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywgJycpO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBhbiBBcnJheSBvciBhbiBPYmplY3QgaW52b2tpbmcgYSBmdW5jdGlvbiBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmIGBvYmpgIGlzIGFuIEFycmF5IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHBhc3NpbmdcbiAqIHRoZSB2YWx1ZSwgaW5kZXgsIGFuZCBjb21wbGV0ZSBhcnJheSBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmICdvYmonIGlzIGFuIE9iamVjdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGtleSwgYW5kIGNvbXBsZXRlIG9iamVjdCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdHxBcnJheX0gb2JqIFRoZSBvYmplY3QgdG8gaXRlcmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGNhbGxiYWNrIHRvIGludm9rZSBmb3IgZWFjaCBpdGVtXG4gKlxuICogQHBhcmFtIHtCb29sZWFufSBbYWxsT3duS2V5cyA9IGZhbHNlXVxuICogQHJldHVybnMge2FueX1cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaChvYmosIGZuLCB7YWxsT3duS2V5cyA9IGZhbHNlfSA9IHt9KSB7XG4gIC8vIERvbid0IGJvdGhlciBpZiBubyB2YWx1ZSBwcm92aWRlZFxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGk7XG4gIGxldCBsO1xuXG4gIC8vIEZvcmNlIGFuIGFycmF5IGlmIG5vdCBhbHJlYWR5IHNvbWV0aGluZyBpdGVyYWJsZVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgICBvYmogPSBbb2JqXTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KG9iaikpIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgYXJyYXkgdmFsdWVzXG4gICAgZm9yIChpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2ldLCBpLCBvYmopO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgb2JqZWN0IGtleXNcbiAgICBjb25zdCBrZXlzID0gYWxsT3duS2V5cyA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikgOiBPYmplY3Qua2V5cyhvYmopO1xuICAgIGNvbnN0IGxlbiA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBmbi5jYWxsKG51bGwsIG9ialtrZXldLCBrZXksIG9iaik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRLZXkob2JqLCBrZXkpIHtcbiAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICBsZXQgX2tleTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBfa2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoa2V5ID09PSBfa2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiBfa2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuY29uc3QgX2dsb2JhbCA9ICgoKSA9PiB7XG4gIC8qZXNsaW50IG5vLXVuZGVmOjAqL1xuICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBnbG9iYWxUaGlzO1xuICByZXR1cm4gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogZ2xvYmFsKVxufSkoKTtcblxuY29uc3QgaXNDb250ZXh0RGVmaW5lZCA9IChjb250ZXh0KSA9PiAhaXNVbmRlZmluZWQoY29udGV4dCkgJiYgY29udGV4dCAhPT0gX2dsb2JhbDtcblxuLyoqXG4gKiBBY2NlcHRzIHZhcmFyZ3MgZXhwZWN0aW5nIGVhY2ggYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0LCB0aGVuXG4gKiBpbW11dGFibHkgbWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIG9mIGVhY2ggb2JqZWN0IGFuZCByZXR1cm5zIHJlc3VsdC5cbiAqXG4gKiBXaGVuIG11bHRpcGxlIG9iamVjdHMgY29udGFpbiB0aGUgc2FtZSBrZXkgdGhlIGxhdGVyIG9iamVjdCBpblxuICogdGhlIGFyZ3VtZW50cyBsaXN0IHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIHZhciByZXN1bHQgPSBtZXJnZSh7Zm9vOiAxMjN9LCB7Zm9vOiA0NTZ9KTtcbiAqIGNvbnNvbGUubG9nKHJlc3VsdC5mb28pOyAvLyBvdXRwdXRzIDQ1NlxuICogYGBgXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iajEgT2JqZWN0IHRvIG1lcmdlXG4gKlxuICogQHJldHVybnMge09iamVjdH0gUmVzdWx0IG9mIGFsbCBtZXJnZSBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlKC8qIG9iajEsIG9iajIsIG9iajMsIC4uLiAqLykge1xuICBjb25zdCB7Y2FzZWxlc3N9ID0gaXNDb250ZXh0RGVmaW5lZCh0aGlzKSAmJiB0aGlzIHx8IHt9O1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgY29uc3QgYXNzaWduVmFsdWUgPSAodmFsLCBrZXkpID0+IHtcbiAgICBjb25zdCB0YXJnZXRLZXkgPSBjYXNlbGVzcyAmJiBmaW5kS2V5KHJlc3VsdCwga2V5KSB8fCBrZXk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QocmVzdWx0W3RhcmdldEtleV0pICYmIGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZShyZXN1bHRbdGFyZ2V0S2V5XSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZSh7fSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWwuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYXJndW1lbnRzW2ldICYmIGZvckVhY2goYXJndW1lbnRzW2ldLCBhc3NpZ25WYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBFeHRlbmRzIG9iamVjdCBhIGJ5IG11dGFibHkgYWRkaW5nIHRvIGl0IHRoZSBwcm9wZXJ0aWVzIG9mIG9iamVjdCBiLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBhIFRoZSBvYmplY3QgdG8gYmUgZXh0ZW5kZWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBiIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEBwYXJhbSB7T2JqZWN0fSB0aGlzQXJnIFRoZSBvYmplY3QgdG8gYmluZCBmdW5jdGlvbiB0b1xuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2FsbE93bktleXNdXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIHZhbHVlIG9mIG9iamVjdCBhXG4gKi9cbmNvbnN0IGV4dGVuZCA9IChhLCBiLCB0aGlzQXJnLCB7YWxsT3duS2V5c309IHt9KSA9PiB7XG4gIGZvckVhY2goYiwgKHZhbCwga2V5KSA9PiB7XG4gICAgaWYgKHRoaXNBcmcgJiYgaXNGdW5jdGlvbih2YWwpKSB7XG4gICAgICBhW2tleV0gPSBiaW5kKHZhbCwgdGhpc0FyZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFba2V5XSA9IHZhbDtcbiAgICB9XG4gIH0sIHthbGxPd25LZXlzfSk7XG4gIHJldHVybiBhO1xufVxuXG4vKipcbiAqIFJlbW92ZSBieXRlIG9yZGVyIG1hcmtlci4gVGhpcyBjYXRjaGVzIEVGIEJCIEJGICh0aGUgVVRGLTggQk9NKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IHdpdGggQk9NXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gY29udGVudCB2YWx1ZSB3aXRob3V0IEJPTVxuICovXG5jb25zdCBzdHJpcEJPTSA9IChjb250ZW50KSA9PiB7XG4gIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKipcbiAqIEluaGVyaXQgdGhlIHByb3RvdHlwZSBtZXRob2RzIGZyb20gb25lIGNvbnN0cnVjdG9yIGludG8gYW5vdGhlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHN1cGVyQ29uc3RydWN0b3JcbiAqIEBwYXJhbSB7b2JqZWN0fSBbcHJvcHNdXG4gKiBAcGFyYW0ge29iamVjdH0gW2Rlc2NyaXB0b3JzXVxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5jb25zdCBpbmhlcml0cyA9IChjb25zdHJ1Y3Rvciwgc3VwZXJDb25zdHJ1Y3RvciwgcHJvcHMsIGRlc2NyaXB0b3JzKSA9PiB7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIGRlc2NyaXB0b3JzKTtcbiAgY29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zdHJ1Y3RvciwgJ3N1cGVyJywge1xuICAgIHZhbHVlOiBzdXBlckNvbnN0cnVjdG9yLnByb3RvdHlwZVxuICB9KTtcbiAgcHJvcHMgJiYgT2JqZWN0LmFzc2lnbihjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3BzKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIG9iamVjdCB3aXRoIGRlZXAgcHJvdG90eXBlIGNoYWluIHRvIGEgZmxhdCBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2VPYmogc291cmNlIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IFtkZXN0T2JqXVxuICogQHBhcmFtIHtGdW5jdGlvbnxCb29sZWFufSBbZmlsdGVyXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BGaWx0ZXJdXG4gKlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuY29uc3QgdG9GbGF0T2JqZWN0ID0gKHNvdXJjZU9iaiwgZGVzdE9iaiwgZmlsdGVyLCBwcm9wRmlsdGVyKSA9PiB7XG4gIGxldCBwcm9wcztcbiAgbGV0IGk7XG4gIGxldCBwcm9wO1xuICBjb25zdCBtZXJnZWQgPSB7fTtcblxuICBkZXN0T2JqID0gZGVzdE9iaiB8fCB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIGlmIChzb3VyY2VPYmogPT0gbnVsbCkgcmV0dXJuIGRlc3RPYmo7XG5cbiAgZG8ge1xuICAgIHByb3BzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlT2JqKTtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICBwcm9wID0gcHJvcHNbaV07XG4gICAgICBpZiAoKCFwcm9wRmlsdGVyIHx8IHByb3BGaWx0ZXIocHJvcCwgc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgIW1lcmdlZFtwcm9wXSkge1xuICAgICAgICBkZXN0T2JqW3Byb3BdID0gc291cmNlT2JqW3Byb3BdO1xuICAgICAgICBtZXJnZWRbcHJvcF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3VyY2VPYmogPSBmaWx0ZXIgIT09IGZhbHNlICYmIGdldFByb3RvdHlwZU9mKHNvdXJjZU9iaik7XG4gIH0gd2hpbGUgKHNvdXJjZU9iaiAmJiAoIWZpbHRlciB8fCBmaWx0ZXIoc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgc291cmNlT2JqICE9PSBPYmplY3QucHJvdG90eXBlKTtcblxuICByZXR1cm4gZGVzdE9iajtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBjaGFyYWN0ZXJzIG9mIGEgc3BlY2lmaWVkIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hTdHJpbmdcbiAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb249IDBdXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGVuZHNXaXRoID0gKHN0ciwgc2VhcmNoU3RyaW5nLCBwb3NpdGlvbikgPT4ge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgcG9zaXRpb24gPiBzdHIubGVuZ3RoKSB7XG4gICAgcG9zaXRpb24gPSBzdHIubGVuZ3RoO1xuICB9XG4gIHBvc2l0aW9uIC09IHNlYXJjaFN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHN0ci5pbmRleE9mKHNlYXJjaFN0cmluZywgcG9zaXRpb24pO1xuICByZXR1cm4gbGFzdEluZGV4ICE9PSAtMSAmJiBsYXN0SW5kZXggPT09IHBvc2l0aW9uO1xufVxuXG5cbi8qKlxuICogUmV0dXJucyBuZXcgYXJyYXkgZnJvbSBhcnJheSBsaWtlIG9iamVjdCBvciBudWxsIGlmIGZhaWxlZFxuICpcbiAqIEBwYXJhbSB7Kn0gW3RoaW5nXVxuICpcbiAqIEByZXR1cm5zIHs/QXJyYXl9XG4gKi9cbmNvbnN0IHRvQXJyYXkgPSAodGhpbmcpID0+IHtcbiAgaWYgKCF0aGluZykgcmV0dXJuIG51bGw7XG4gIGlmIChpc0FycmF5KHRoaW5nKSkgcmV0dXJuIHRoaW5nO1xuICBsZXQgaSA9IHRoaW5nLmxlbmd0aDtcbiAgaWYgKCFpc051bWJlcihpKSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IGFyciA9IG5ldyBBcnJheShpKTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBhcnJbaV0gPSB0aGluZ1tpXTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vKipcbiAqIENoZWNraW5nIGlmIHRoZSBVaW50OEFycmF5IGV4aXN0cyBhbmQgaWYgaXQgZG9lcywgaXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZVxuICogdGhpbmcgcGFzc2VkIGluIGlzIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXlcbiAqXG4gKiBAcGFyYW0ge1R5cGVkQXJyYXl9XG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuY29uc3QgaXNUeXBlZEFycmF5ID0gKFR5cGVkQXJyYXkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gdGhpbmcgPT4ge1xuICAgIHJldHVybiBUeXBlZEFycmF5ICYmIHRoaW5nIGluc3RhbmNlb2YgVHlwZWRBcnJheTtcbiAgfTtcbn0pKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyAmJiBnZXRQcm90b3R5cGVPZihVaW50OEFycmF5KSk7XG5cbi8qKlxuICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIG9iamVjdCwgY2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB0aGUga2V5IGFuZCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBlbnRyeS5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgZm9yRWFjaEVudHJ5ID0gKG9iaiwgZm4pID0+IHtcbiAgY29uc3QgZ2VuZXJhdG9yID0gb2JqICYmIG9ialtTeW1ib2wuaXRlcmF0b3JdO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZ2VuZXJhdG9yLmNhbGwob2JqKTtcblxuICBsZXQgcmVzdWx0O1xuXG4gIHdoaWxlICgocmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpKSAmJiAhcmVzdWx0LmRvbmUpIHtcbiAgICBjb25zdCBwYWlyID0gcmVzdWx0LnZhbHVlO1xuICAgIGZuLmNhbGwob2JqLCBwYWlyWzBdLCBwYWlyWzFdKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCBhIHN0cmluZywgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHRoZSBtYXRjaGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlZ0V4cCAtIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggYWdhaW5zdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXk8Ym9vbGVhbj59XG4gKi9cbmNvbnN0IG1hdGNoQWxsID0gKHJlZ0V4cCwgc3RyKSA9PiB7XG4gIGxldCBtYXRjaGVzO1xuICBjb25zdCBhcnIgPSBbXTtcblxuICB3aGlsZSAoKG1hdGNoZXMgPSByZWdFeHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgIGFyci5wdXNoKG1hdGNoZXMpO1xuICB9XG5cbiAgcmV0dXJuIGFycjtcbn1cblxuLyogQ2hlY2tpbmcgaWYgdGhlIGtpbmRPZlRlc3QgZnVuY3Rpb24gcmV0dXJucyB0cnVlIHdoZW4gcGFzc2VkIGFuIEhUTUxGb3JtRWxlbWVudC4gKi9cbmNvbnN0IGlzSFRNTEZvcm0gPSBraW5kT2ZUZXN0KCdIVE1MRm9ybUVsZW1lbnQnKTtcblxuY29uc3QgdG9DYW1lbENhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxcbiAgICBmdW5jdGlvbiByZXBsYWNlcihtLCBwMSwgcDIpIHtcbiAgICAgIHJldHVybiBwMS50b1VwcGVyQ2FzZSgpICsgcDI7XG4gICAgfVxuICApO1xufTtcblxuLyogQ3JlYXRpbmcgYSBmdW5jdGlvbiB0aGF0IHdpbGwgY2hlY2sgaWYgYW4gb2JqZWN0IGhhcyBhIHByb3BlcnR5LiAqL1xuY29uc3QgaGFzT3duUHJvcGVydHkgPSAoKHtoYXNPd25Qcm9wZXJ0eX0pID0+IChvYmosIHByb3ApID0+IGhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkoT2JqZWN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBSZWdFeHAgb2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFJlZ0V4cCBvYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1JlZ0V4cCA9IGtpbmRPZlRlc3QoJ1JlZ0V4cCcpO1xuXG5jb25zdCByZWR1Y2VEZXNjcmlwdG9ycyA9IChvYmosIHJlZHVjZXIpID0+IHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvYmopO1xuICBjb25zdCByZWR1Y2VkRGVzY3JpcHRvcnMgPSB7fTtcblxuICBmb3JFYWNoKGRlc2NyaXB0b3JzLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIGxldCByZXQ7XG4gICAgaWYgKChyZXQgPSByZWR1Y2VyKGRlc2NyaXB0b3IsIG5hbWUsIG9iaikpICE9PSBmYWxzZSkge1xuICAgICAgcmVkdWNlZERlc2NyaXB0b3JzW25hbWVdID0gcmV0IHx8IGRlc2NyaXB0b3I7XG4gICAgfVxuICB9KTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvYmosIHJlZHVjZWREZXNjcmlwdG9ycyk7XG59XG5cbi8qKlxuICogTWFrZXMgYWxsIG1ldGhvZHMgcmVhZC1vbmx5XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKi9cblxuY29uc3QgZnJlZXplTWV0aG9kcyA9IChvYmopID0+IHtcbiAgcmVkdWNlRGVzY3JpcHRvcnMob2JqLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIC8vIHNraXAgcmVzdHJpY3RlZCBwcm9wcyBpbiBzdHJpY3QgbW9kZVxuICAgIGlmIChpc0Z1bmN0aW9uKG9iaikgJiYgWydhcmd1bWVudHMnLCAnY2FsbGVyJywgJ2NhbGxlZSddLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBvYmpbbmFtZV07XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24odmFsdWUpKSByZXR1cm47XG5cbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBmYWxzZTtcblxuICAgIGlmICgnd3JpdGFibGUnIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgIGRlc2NyaXB0b3Iud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRlc2NyaXB0b3Iuc2V0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNldCA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0NhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFxcJycgKyBuYW1lICsgJ1xcJycpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCB0b09iamVjdFNldCA9IChhcnJheU9yU3RyaW5nLCBkZWxpbWl0ZXIpID0+IHtcbiAgY29uc3Qgb2JqID0ge307XG5cbiAgY29uc3QgZGVmaW5lID0gKGFycikgPT4ge1xuICAgIGFyci5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgIG9ialt2YWx1ZV0gPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgaXNBcnJheShhcnJheU9yU3RyaW5nKSA/IGRlZmluZShhcnJheU9yU3RyaW5nKSA6IGRlZmluZShTdHJpbmcoYXJyYXlPclN0cmluZykuc3BsaXQoZGVsaW1pdGVyKSk7XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbmNvbnN0IHRvRmluaXRlTnVtYmVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUpID0+IHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlID0gK3ZhbHVlKSA/IHZhbHVlIDogZGVmYXVsdFZhbHVlO1xufVxuXG4vKipcbiAqIElmIHRoZSB0aGluZyBpcyBhIEZvcm1EYXRhIG9iamVjdCwgcmV0dXJuIHRydWUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB0aGluZyAtIFRoZSB0aGluZyB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNTcGVjQ29tcGxpYW50Rm9ybSh0aGluZykge1xuICByZXR1cm4gISEodGhpbmcgJiYgaXNGdW5jdGlvbih0aGluZy5hcHBlbmQpICYmIHRoaW5nW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdGb3JtRGF0YScgJiYgdGhpbmdbU3ltYm9sLml0ZXJhdG9yXSk7XG59XG5cbmNvbnN0IHRvSlNPTk9iamVjdCA9IChvYmopID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgQXJyYXkoMTApO1xuXG4gIGNvbnN0IHZpc2l0ID0gKHNvdXJjZSwgaSkgPT4ge1xuXG4gICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIGlmIChzdGFjay5pbmRleE9mKHNvdXJjZSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmKCEoJ3RvSlNPTicgaW4gc291cmNlKSkge1xuICAgICAgICBzdGFja1tpXSA9IHNvdXJjZTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gaXNBcnJheShzb3VyY2UpID8gW10gOiB7fTtcblxuICAgICAgICBmb3JFYWNoKHNvdXJjZSwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCByZWR1Y2VkVmFsdWUgPSB2aXNpdCh2YWx1ZSwgaSArIDEpO1xuICAgICAgICAgICFpc1VuZGVmaW5lZChyZWR1Y2VkVmFsdWUpICYmICh0YXJnZXRba2V5XSA9IHJlZHVjZWRWYWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW2ldID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIHJldHVybiB2aXNpdChvYmosIDApO1xufVxuXG5jb25zdCBpc0FzeW5jRm4gPSBraW5kT2ZUZXN0KCdBc3luY0Z1bmN0aW9uJyk7XG5cbmNvbnN0IGlzVGhlbmFibGUgPSAodGhpbmcpID0+XG4gIHRoaW5nICYmIChpc09iamVjdCh0aGluZykgfHwgaXNGdW5jdGlvbih0aGluZykpICYmIGlzRnVuY3Rpb24odGhpbmcudGhlbikgJiYgaXNGdW5jdGlvbih0aGluZy5jYXRjaCk7XG5cbi8vIG9yaWdpbmFsIGNvZGVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EaWdpdGFsQnJhaW5KUy9BeGlvc1Byb21pc2UvYmxvYi8xNmRlYWIxMzcxMGVjMDk3Nzk5MjIxMzFmM2ZhNTk1NDMyMGY4M2FiL2xpYi91dGlscy5qcyNMMTEtTDM0XG5cbmNvbnN0IF9zZXRJbW1lZGlhdGUgPSAoKHNldEltbWVkaWF0ZVN1cHBvcnRlZCwgcG9zdE1lc3NhZ2VTdXBwb3J0ZWQpID0+IHtcbiAgaWYgKHNldEltbWVkaWF0ZVN1cHBvcnRlZCkge1xuICAgIHJldHVybiBzZXRJbW1lZGlhdGU7XG4gIH1cblxuICByZXR1cm4gcG9zdE1lc3NhZ2VTdXBwb3J0ZWQgPyAoKHRva2VuLCBjYWxsYmFja3MpID0+IHtcbiAgICBfZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsICh7c291cmNlLCBkYXRhfSkgPT4ge1xuICAgICAgaWYgKHNvdXJjZSA9PT0gX2dsb2JhbCAmJiBkYXRhID09PSB0b2tlbikge1xuICAgICAgICBjYWxsYmFja3MubGVuZ3RoICYmIGNhbGxiYWNrcy5zaGlmdCgpKCk7XG4gICAgICB9XG4gICAgfSwgZmFsc2UpO1xuXG4gICAgcmV0dXJuIChjYikgPT4ge1xuICAgICAgY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgX2dsb2JhbC5wb3N0TWVzc2FnZSh0b2tlbiwgXCIqXCIpO1xuICAgIH1cbiAgfSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLCBbXSkgOiAoY2IpID0+IHNldFRpbWVvdXQoY2IpO1xufSkoXG4gIHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICdmdW5jdGlvbicsXG4gIGlzRnVuY3Rpb24oX2dsb2JhbC5wb3N0TWVzc2FnZSlcbik7XG5cbmNvbnN0IGFzYXAgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgIT09ICd1bmRlZmluZWQnID9cbiAgcXVldWVNaWNyb3Rhc2suYmluZChfZ2xvYmFsKSA6ICggdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MubmV4dFRpY2sgfHwgX3NldEltbWVkaWF0ZSk7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzQXJyYXksXG4gIGlzQXJyYXlCdWZmZXIsXG4gIGlzQnVmZmVyLFxuICBpc0Zvcm1EYXRhLFxuICBpc0FycmF5QnVmZmVyVmlldyxcbiAgaXNTdHJpbmcsXG4gIGlzTnVtYmVyLFxuICBpc0Jvb2xlYW4sXG4gIGlzT2JqZWN0LFxuICBpc1BsYWluT2JqZWN0LFxuICBpc1JlYWRhYmxlU3RyZWFtLFxuICBpc1JlcXVlc3QsXG4gIGlzUmVzcG9uc2UsXG4gIGlzSGVhZGVycyxcbiAgaXNVbmRlZmluZWQsXG4gIGlzRGF0ZSxcbiAgaXNGaWxlLFxuICBpc0Jsb2IsXG4gIGlzUmVnRXhwLFxuICBpc0Z1bmN0aW9uLFxuICBpc1N0cmVhbSxcbiAgaXNVUkxTZWFyY2hQYXJhbXMsXG4gIGlzVHlwZWRBcnJheSxcbiAgaXNGaWxlTGlzdCxcbiAgZm9yRWFjaCxcbiAgbWVyZ2UsXG4gIGV4dGVuZCxcbiAgdHJpbSxcbiAgc3RyaXBCT00sXG4gIGluaGVyaXRzLFxuICB0b0ZsYXRPYmplY3QsXG4gIGtpbmRPZixcbiAga2luZE9mVGVzdCxcbiAgZW5kc1dpdGgsXG4gIHRvQXJyYXksXG4gIGZvckVhY2hFbnRyeSxcbiAgbWF0Y2hBbGwsXG4gIGlzSFRNTEZvcm0sXG4gIGhhc093blByb3BlcnR5LFxuICBoYXNPd25Qcm9wOiBoYXNPd25Qcm9wZXJ0eSwgLy8gYW4gYWxpYXMgdG8gYXZvaWQgRVNMaW50IG5vLXByb3RvdHlwZS1idWlsdGlucyBkZXRlY3Rpb25cbiAgcmVkdWNlRGVzY3JpcHRvcnMsXG4gIGZyZWV6ZU1ldGhvZHMsXG4gIHRvT2JqZWN0U2V0LFxuICB0b0NhbWVsQ2FzZSxcbiAgbm9vcCxcbiAgdG9GaW5pdGVOdW1iZXIsXG4gIGZpbmRLZXksXG4gIGdsb2JhbDogX2dsb2JhbCxcbiAgaXNDb250ZXh0RGVmaW5lZCxcbiAgaXNTcGVjQ29tcGxpYW50Rm9ybSxcbiAgdG9KU09OT2JqZWN0LFxuICBpc0FzeW5jRm4sXG4gIGlzVGhlbmFibGUsXG4gIHNldEltbWVkaWF0ZTogX3NldEltbWVkaWF0ZSxcbiAgYXNhcFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/axios/lib/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/class-variance-authority/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cva: () => (/* binding */ cva),\n/* harmony export */ cx: () => (/* binding */ cx)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ \nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nconst cx = clsx__WEBPACK_IMPORTED_MODULE_0__.clsx;\nconst cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbGFzcy12YXJpYW5jZS1hdXRob3JpdHkvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBZ0M7QUFDaEMsK0RBQStELE1BQU07QUFDOUQsV0FBVyxzQ0FBSTtBQUNmO0FBQ1A7QUFDQTtBQUNBLGdCQUFnQiw0QkFBNEI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxJQUFJO0FBQ2I7QUFDQSxrQkFBa0Isb0VBQW9FO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5L2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMjIgSm9lIEJlbGwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXG4gKiAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZVxuICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAqIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gKiBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICogdGhlIExpY2Vuc2UuXG4gKi8gaW1wb3J0IHsgY2xzeCB9IGZyb20gXCJjbHN4XCI7XG5jb25zdCBmYWxzeVRvU3RyaW5nID0gKHZhbHVlKT0+dHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIiA/IGAke3ZhbHVlfWAgOiB2YWx1ZSA9PT0gMCA/IFwiMFwiIDogdmFsdWU7XG5leHBvcnQgY29uc3QgY3ggPSBjbHN4O1xuZXhwb3J0IGNvbnN0IGN2YSA9IChiYXNlLCBjb25maWcpPT4ocHJvcHMpPT57XG4gICAgICAgIHZhciBfY29uZmlnX2NvbXBvdW5kVmFyaWFudHM7XG4gICAgICAgIGlmICgoY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29uZmlnLnZhcmlhbnRzKSA9PSBudWxsKSByZXR1cm4gY3goYmFzZSwgcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmNsYXNzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3NOYW1lKTtcbiAgICAgICAgY29uc3QgeyB2YXJpYW50cywgZGVmYXVsdFZhcmlhbnRzIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGdldFZhcmlhbnRDbGFzc05hbWVzID0gT2JqZWN0LmtleXModmFyaWFudHMpLm1hcCgodmFyaWFudCk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRQcm9wID0gcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzW3ZhcmlhbnRdO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhcmlhbnRQcm9wID0gZGVmYXVsdFZhcmlhbnRzID09PSBudWxsIHx8IGRlZmF1bHRWYXJpYW50cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmYXVsdFZhcmlhbnRzW3ZhcmlhbnRdO1xuICAgICAgICAgICAgaWYgKHZhcmlhbnRQcm9wID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRLZXkgPSBmYWxzeVRvU3RyaW5nKHZhcmlhbnRQcm9wKSB8fCBmYWxzeVRvU3RyaW5nKGRlZmF1bHRWYXJpYW50UHJvcCk7XG4gICAgICAgICAgICByZXR1cm4gdmFyaWFudHNbdmFyaWFudF1bdmFyaWFudEtleV07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwcm9wc1dpdGhvdXRVbmRlZmluZWQgPSBwcm9wcyAmJiBPYmplY3QuZW50cmllcyhwcm9wcykucmVkdWNlKChhY2MsIHBhcmFtKT0+e1xuICAgICAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgY29uc3QgZ2V0Q29tcG91bmRWYXJpYW50Q2xhc3NOYW1lcyA9IGNvbmZpZyA9PT0gbnVsbCB8fCBjb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfY29uZmlnX2NvbXBvdW5kVmFyaWFudHMgPSBjb25maWcuY29tcG91bmRWYXJpYW50cykgPT09IG51bGwgfHwgX2NvbmZpZ19jb21wb3VuZFZhcmlhbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY29uZmlnX2NvbXBvdW5kVmFyaWFudHMucmVkdWNlKChhY2MsIHBhcmFtKT0+e1xuICAgICAgICAgICAgbGV0IHsgY2xhc3M6IGN2Q2xhc3MsIGNsYXNzTmFtZTogY3ZDbGFzc05hbWUsIC4uLmNvbXBvdW5kVmFyaWFudE9wdGlvbnMgfSA9IHBhcmFtO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbXBvdW5kVmFyaWFudE9wdGlvbnMpLmV2ZXJ5KChwYXJhbSk9PntcbiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gcGFyYW07XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuaW5jbHVkZXMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1ba2V5XSkgOiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pW2tleV0gPT09IHZhbHVlO1xuICAgICAgICAgICAgfSkgPyBbXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgIGN2Q2xhc3MsXG4gICAgICAgICAgICAgICAgY3ZDbGFzc05hbWVcbiAgICAgICAgICAgIF0gOiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICAgICAgcmV0dXJuIGN4KGJhc2UsIGdldFZhcmlhbnRDbGFzc05hbWVzLCBnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3MsIHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5jbGFzc05hbWUpO1xuICAgIH07XG5cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs": /*!*****************************************!*\ !*** ./node_modules/clsx/dist/clsx.mjs ***! \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: () => (/* binding */ clsx),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxjQUFjLGFBQWEsK0NBQStDLGdEQUFnRCxlQUFlLFFBQVEsSUFBSSwwQ0FBMEMseUNBQXlDLFNBQWdCLGdCQUFnQix3Q0FBd0MsSUFBSSxtREFBbUQsU0FBUyxpRUFBZSxJQUFJIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcihlKXt2YXIgdCxmLG49XCJcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGUpbis9ZTtlbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBlKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBvPWUubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyllW3RdJiYoZj1yKGVbdF0pKSYmKG4mJihuKz1cIiBcIiksbis9Zil9ZWxzZSBmb3IoZiBpbiBlKWVbZl0mJihuJiYobis9XCIgXCIpLG4rPWYpO3JldHVybiBufWV4cG9ydCBmdW5jdGlvbiBjbHN4KCl7Zm9yKHZhciBlLHQsZj0wLG49XCJcIixvPWFyZ3VtZW50cy5sZW5ndGg7ZjxvO2YrKykoZT1hcmd1bWVudHNbZl0pJiYodD1yKGUpKSYmKG4mJihuKz1cIiBcIiksbis9dCk7cmV0dXJuIG59ZXhwb3J0IGRlZmF1bHQgY2xzeDsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/dist/chunk-NZJY6EH4.mjs": /*!***************************************************!*\ !*** ./node_modules/cmdk/dist/chunk-NZJY6EH4.mjs ***! \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ a: () => (/* binding */ W)\n/* harmony export */ });\nvar U=1,Y=.9,H=.8,J=.17,p=.1,u=.999,$=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(_,C,h,P,A,f,O){if(f===C.length)return A===_.length?U:k;var T=`${A},${f}`;if(O[T]!==void 0)return O[T];for(var L=P.charAt(f),c=h.indexOf(L,A),S=0,E,N,R,M;c>=0;)E=G(_,C,h,P,c+1,f+1,O),E>S&&(c===A?E*=U:m.test(_.charAt(c-1))?(E*=H,R=_.slice(A,c-1).match(B),R&&A>0&&(E*=Math.pow(u,R.length))):K.test(_.charAt(c-1))?(E*=Y,M=_.slice(A,c-1).match(X),M&&A>0&&(E*=Math.pow(u,M.length))):(E*=J,A>0&&(E*=Math.pow(u,c-A))),_.charAt(c)!==C.charAt(f)&&(E*=$)),(E<p&&h.charAt(c-1)===P.charAt(f+1)||P.charAt(f+1)===P.charAt(f)&&h.charAt(c-1)!==P.charAt(f))&&(N=G(_,C,h,P,c+1,f+2,O),N*p>E&&(E=N*p)),E>S&&(S=E),c=h.indexOf(L,c+1);return O[T]=S,S}function D(_){return _.toLowerCase().replace(X,\" \")}function W(_,C,h){return _=h&&h.length>0?`${_+\" \"+h.join(\" \")}`:_,G(_,C,D(_),D(C),0,0,{})}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL2Rpc3QvY2h1bmstTlpKWTZFSDQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw0Q0FBNEMsOEJBQThCLHdCQUF3QiwwQkFBMEIsMEJBQTBCLHdDQUF3QyxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsNkJBQTZCLG1EQUFtRCxLQUFLLHFjQUFxYyxnQkFBZ0IsY0FBYyxzQ0FBc0Msa0JBQWtCLDBCQUEwQixrQkFBa0IsMEJBQTBCLEVBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL2Rpc3QvY2h1bmstTlpKWTZFSDQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBVPTEsWT0uOSxIPS44LEo9LjE3LHA9LjEsdT0uOTk5LCQ9Ljk5OTk7dmFyIGs9Ljk5LG09L1tcXFxcXFwvXysuI1wiQFxcW1xcKFxceyZdLyxCPS9bXFxcXFxcL18rLiNcIkBcXFtcXChcXHsmXS9nLEs9L1tcXHMtXS8sWD0vW1xccy1dL2c7ZnVuY3Rpb24gRyhfLEMsaCxQLEEsZixPKXtpZihmPT09Qy5sZW5ndGgpcmV0dXJuIEE9PT1fLmxlbmd0aD9VOms7dmFyIFQ9YCR7QX0sJHtmfWA7aWYoT1tUXSE9PXZvaWQgMClyZXR1cm4gT1tUXTtmb3IodmFyIEw9UC5jaGFyQXQoZiksYz1oLmluZGV4T2YoTCxBKSxTPTAsRSxOLFIsTTtjPj0wOylFPUcoXyxDLGgsUCxjKzEsZisxLE8pLEU+UyYmKGM9PT1BP0UqPVU6bS50ZXN0KF8uY2hhckF0KGMtMSkpPyhFKj1ILFI9Xy5zbGljZShBLGMtMSkubWF0Y2goQiksUiYmQT4wJiYoRSo9TWF0aC5wb3codSxSLmxlbmd0aCkpKTpLLnRlc3QoXy5jaGFyQXQoYy0xKSk/KEUqPVksTT1fLnNsaWNlKEEsYy0xKS5tYXRjaChYKSxNJiZBPjAmJihFKj1NYXRoLnBvdyh1LE0ubGVuZ3RoKSkpOihFKj1KLEE+MCYmKEUqPU1hdGgucG93KHUsYy1BKSkpLF8uY2hhckF0KGMpIT09Qy5jaGFyQXQoZikmJihFKj0kKSksKEU8cCYmaC5jaGFyQXQoYy0xKT09PVAuY2hhckF0KGYrMSl8fFAuY2hhckF0KGYrMSk9PT1QLmNoYXJBdChmKSYmaC5jaGFyQXQoYy0xKSE9PVAuY2hhckF0KGYpKSYmKE49RyhfLEMsaCxQLGMrMSxmKzIsTyksTipwPkUmJihFPU4qcCkpLEU+UyYmKFM9RSksYz1oLmluZGV4T2YoTCxjKzEpO3JldHVybiBPW1RdPVMsU31mdW5jdGlvbiBEKF8pe3JldHVybiBfLnRvTG93ZXJDYXNlKCkucmVwbGFjZShYLFwiIFwiKX1mdW5jdGlvbiBXKF8sQyxoKXtyZXR1cm4gXz1oJiZoLmxlbmd0aD4wP2Ake18rXCIgXCIraC5qb2luKFwiIFwiKX1gOl8sRyhfLEMsRChfKSxEKEMpLDAsMCx7fSl9ZXhwb3J0e1cgYXMgYX07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/dist/chunk-NZJY6EH4.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/dist/index.mjs": /*!******************************************!*\ !*** ./node_modules/cmdk/dist/index.mjs ***! \******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Command: () => (/* binding */ He),\n/* harmony export */ CommandDialog: () => (/* binding */ Ce),\n/* harmony export */ CommandEmpty: () => (/* binding */ xe),\n/* harmony export */ CommandGroup: () => (/* binding */ he),\n/* harmony export */ CommandInput: () => (/* binding */ Ee),\n/* harmony export */ CommandItem: () => (/* binding */ be),\n/* harmony export */ CommandList: () => (/* binding */ Se),\n/* harmony export */ CommandLoading: () => (/* binding */ Pe),\n/* harmony export */ CommandRoot: () => (/* binding */ me),\n/* harmony export */ CommandSeparator: () => (/* binding */ ye),\n/* harmony export */ useCommandState: () => (/* binding */ D)\n/* harmony export */ });\n/* harmony import */ var _chunk_NZJY6EH4_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chunk-NZJY6EH4.mjs */ \"(app-pages-browser)/./node_modules/cmdk/dist/chunk-NZJY6EH4.mjs\");\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\nvar V='[cmdk-group=\"\"]',X='[cmdk-group-items=\"\"]',ge='[cmdk-group-heading=\"\"]',Y='[cmdk-item=\"\"]',le=`${Y}:not([aria-disabled=\"true\"])`,Q=\"cmdk-item-select\",M=\"data-value\",Re=(r,o,n)=>(0,_chunk_NZJY6EH4_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(r,o,n),ue=react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0),G=()=>react__WEBPACK_IMPORTED_MODULE_0__.useContext(ue),de=react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0),Z=()=>react__WEBPACK_IMPORTED_MODULE_0__.useContext(de),fe=react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0),me=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let n=k(()=>{var e,s;return{search:\"\",value:(s=(e=r.value)!=null?e:r.defaultValue)!=null?s:\"\",filtered:{count:0,items:new Map,groups:new Set}}}),u=k(()=>new Set),c=k(()=>new Map),d=k(()=>new Map),f=k(()=>new Set),p=pe(r),{label:v,children:b,value:l,onValueChange:y,filter:S,shouldFilter:C,loop:L,disablePointerSelection:ee=!1,vimBindings:j=!0,...H}=r,te=react__WEBPACK_IMPORTED_MODULE_0__.useId(),$=react__WEBPACK_IMPORTED_MODULE_0__.useId(),K=react__WEBPACK_IMPORTED_MODULE_0__.useId(),x=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),g=Me();T(()=>{if(l!==void 0){let e=l.trim();n.current.value=e,h.emit()}},[l]),T(()=>{g(6,re)},[]);let h=react__WEBPACK_IMPORTED_MODULE_0__.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>n.current,setState:(e,s,i)=>{var a,m,R;if(!Object.is(n.current[e],s)){if(n.current[e]=s,e===\"search\")z(),q(),g(1,U);else if(e===\"value\"&&(i||g(5,re),((a=p.current)==null?void 0:a.value)!==void 0)){let E=s!=null?s:\"\";(R=(m=p.current).onValueChange)==null||R.call(m,E);return}h.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),B=react__WEBPACK_IMPORTED_MODULE_0__.useMemo(()=>({value:(e,s,i)=>{var a;s!==((a=d.current.get(e))==null?void 0:a.value)&&(d.current.set(e,{value:s,keywords:i}),n.current.filtered.items.set(e,ne(s,i)),g(2,()=>{q(),h.emit()}))},item:(e,s)=>(u.current.add(e),s&&(c.current.has(s)?c.current.get(s).add(e):c.current.set(s,new Set([e]))),g(3,()=>{z(),q(),n.current.value||U(),h.emit()}),()=>{d.current.delete(e),u.current.delete(e),n.current.filtered.items.delete(e);let i=O();g(4,()=>{z(),(i==null?void 0:i.getAttribute(\"id\"))===e&&U(),h.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:v||r[\"aria-label\"],disablePointerSelection:ee,listId:te,inputId:K,labelId:$,listInnerRef:x}),[]);function ne(e,s){var a,m;let i=(m=(a=p.current)==null?void 0:a.filter)!=null?m:Re;return e?i(e,n.current.search,s):0}function q(){if(!n.current.search||p.current.shouldFilter===!1)return;let e=n.current.filtered.items,s=[];n.current.filtered.groups.forEach(a=>{let m=c.current.get(a),R=0;m.forEach(E=>{let P=e.get(E);R=Math.max(P,R)}),s.push([a,R])});let i=x.current;A().sort((a,m)=>{var P,_;let R=a.getAttribute(\"id\"),E=m.getAttribute(\"id\");return((P=e.get(E))!=null?P:0)-((_=e.get(R))!=null?_:0)}).forEach(a=>{let m=a.closest(X);m?m.appendChild(a.parentElement===m?a:a.closest(`${X} > *`)):i.appendChild(a.parentElement===i?a:a.closest(`${X} > *`))}),s.sort((a,m)=>m[1]-a[1]).forEach(a=>{let m=x.current.querySelector(`${V}[${M}=\"${encodeURIComponent(a[0])}\"]`);m==null||m.parentElement.appendChild(m)})}function U(){let e=A().find(i=>i.getAttribute(\"aria-disabled\")!==\"true\"),s=e==null?void 0:e.getAttribute(M);h.setState(\"value\",s||void 0)}function z(){var s,i,a,m;if(!n.current.search||p.current.shouldFilter===!1){n.current.filtered.count=u.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let R of u.current){let E=(i=(s=d.current.get(R))==null?void 0:s.value)!=null?i:\"\",P=(m=(a=d.current.get(R))==null?void 0:a.keywords)!=null?m:[],_=ne(E,P);n.current.filtered.items.set(R,_),_>0&&e++}for(let[R,E]of c.current)for(let P of E)if(n.current.filtered.items.get(P)>0){n.current.filtered.groups.add(R);break}n.current.filtered.count=e}function re(){var s,i,a;let e=O();e&&(((s=e.parentElement)==null?void 0:s.firstChild)===e&&((a=(i=e.closest(V))==null?void 0:i.querySelector(ge))==null||a.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function O(){var e;return(e=x.current)==null?void 0:e.querySelector(`${Y}[aria-selected=\"true\"]`)}function A(){var e;return Array.from((e=x.current)==null?void 0:e.querySelectorAll(le))}function W(e){let i=A()[e];i&&h.setState(\"value\",i.getAttribute(M))}function J(e){var R;let s=O(),i=A(),a=i.findIndex(E=>E===s),m=i[a+e];(R=p.current)!=null&&R.loop&&(m=a+e<0?i[i.length-1]:a+e===i.length?i[0]:i[a+e]),m&&h.setState(\"value\",m.getAttribute(M))}function oe(e){let s=O(),i=s==null?void 0:s.closest(V),a;for(;i&&!a;)i=e>0?we(i,V):Ie(i,V),a=i==null?void 0:i.querySelector(le);a?h.setState(\"value\",a.getAttribute(M)):J(e)}let ie=()=>W(A().length-1),ae=e=>{e.preventDefault(),e.metaKey?ie():e.altKey?oe(1):J(1)},se=e=>{e.preventDefault(),e.metaKey?W(0):e.altKey?oe(-1):J(-1)};return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:o,tabIndex:-1,...H,\"cmdk-root\":\"\",onKeyDown:e=>{var s;if((s=H.onKeyDown)==null||s.call(H,e),!e.defaultPrevented)switch(e.key){case\"n\":case\"j\":{j&&e.ctrlKey&&ae(e);break}case\"ArrowDown\":{ae(e);break}case\"p\":case\"k\":{j&&e.ctrlKey&&se(e);break}case\"ArrowUp\":{se(e);break}case\"Home\":{e.preventDefault(),W(0);break}case\"End\":{e.preventDefault(),ie();break}case\"Enter\":if(!e.nativeEvent.isComposing&&e.keyCode!==229){e.preventDefault();let i=O();if(i){let a=new Event(Q);i.dispatchEvent(a)}}}}},react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:B.inputId,id:B.labelId,style:De},v),F(r,e=>react__WEBPACK_IMPORTED_MODULE_0__.createElement(de.Provider,{value:h},react__WEBPACK_IMPORTED_MODULE_0__.createElement(ue.Provider,{value:B},e))))}),be=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{var K,x;let n=react__WEBPACK_IMPORTED_MODULE_0__.useId(),u=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),c=react__WEBPACK_IMPORTED_MODULE_0__.useContext(fe),d=G(),f=pe(r),p=(x=(K=f.current)==null?void 0:K.forceMount)!=null?x:c==null?void 0:c.forceMount;T(()=>{if(!p)return d.item(n,c==null?void 0:c.id)},[p]);let v=ve(n,u,[r.value,r.children,u],r.keywords),b=Z(),l=D(g=>g.value&&g.value===v.current),y=D(g=>p||d.filter()===!1?!0:g.search?g.filtered.items.get(n)>0:!0);react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{let g=u.current;if(!(!g||r.disabled))return g.addEventListener(Q,S),()=>g.removeEventListener(Q,S)},[y,r.onSelect,r.disabled]);function S(){var g,h;C(),(h=(g=f.current).onSelect)==null||h.call(g,v.current)}function C(){b.setState(\"value\",v.current,!0)}if(!y)return null;let{disabled:L,value:ee,onSelect:j,forceMount:H,keywords:te,...$}=r;return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:N([u,o]),...$,id:n,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":!!L,\"aria-selected\":!!l,\"data-disabled\":!!L,\"data-selected\":!!l,onPointerMove:L||d.disablePointerSelection?void 0:C,onClick:L?void 0:S},r.children)}),he=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{heading:n,children:u,forceMount:c,...d}=r,f=react__WEBPACK_IMPORTED_MODULE_0__.useId(),p=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),v=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),b=react__WEBPACK_IMPORTED_MODULE_0__.useId(),l=G(),y=D(C=>c||l.filter()===!1?!0:C.search?C.filtered.groups.has(f):!0);T(()=>l.group(f),[]),ve(f,p,[r.value,r.heading,v]);let S=react__WEBPACK_IMPORTED_MODULE_0__.useMemo(()=>({id:f,forceMount:c}),[c]);return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:N([p,o]),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:y?void 0:!0},n&&react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{ref:v,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:b},n),F(r,C=>react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":n?b:void 0},react__WEBPACK_IMPORTED_MODULE_0__.createElement(fe.Provider,{value:S},C))))}),ye=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{alwaysRender:n,...u}=r,c=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),d=D(f=>!f.search);return!n&&!d?null:react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:N([c,o]),...u,\"cmdk-separator\":\"\",role:\"separator\"})}),Ee=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{onValueChange:n,...u}=r,c=r.value!=null,d=Z(),f=D(l=>l.search),p=D(l=>l.value),v=G(),b=react__WEBPACK_IMPORTED_MODULE_0__.useMemo(()=>{var y;let l=(y=v.listInnerRef.current)==null?void 0:y.querySelector(`${Y}[${M}=\"${encodeURIComponent(p)}\"]`);return l==null?void 0:l.getAttribute(\"id\")},[]);return react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.input,{ref:o,...u,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":v.listId,\"aria-labelledby\":v.labelId,\"aria-activedescendant\":b,id:v.inputId,type:\"text\",value:c?r.value:f,onChange:l=>{c||d.setState(\"search\",l.target.value),n==null||n(l.target.value)}})}),Se=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{children:n,label:u=\"Suggestions\",...c}=r,d=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),f=react__WEBPACK_IMPORTED_MODULE_0__.useRef(null),p=G();return react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{if(f.current&&d.current){let v=f.current,b=d.current,l,y=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let S=v.offsetHeight;b.style.setProperty(\"--cmdk-list-height\",S.toFixed(1)+\"px\")})});return y.observe(v),()=>{cancelAnimationFrame(l),y.unobserve(v)}}},[]),react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:N([d,o]),...c,\"cmdk-list\":\"\",role:\"listbox\",\"aria-label\":u,id:p.listId},F(r,v=>react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{ref:N([f,p.listInnerRef]),\"cmdk-list-sizer\":\"\"},v)))}),Ce=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{open:n,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root,{open:n,onOpenChange:u},react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal,{container:f},react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay,{\"cmdk-overlay\":\"\",className:c}),react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},react__WEBPACK_IMPORTED_MODULE_0__.createElement(me,{ref:o,...p}))))}),xe=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>D(u=>u.filtered.count===0)?react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:o,...r,\"cmdk-empty\":\"\",role:\"presentation\"}):null),Pe=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((r,o)=>{let{progress:n,children:u,label:c=\"Loading...\",...d}=r;return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.div,{ref:o,...d,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":n,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":c},F(r,f=>react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{\"aria-hidden\":!0},f)))}),He=Object.assign(me,{List:Se,Item:be,Input:Ee,Group:he,Separator:ye,Dialog:Ce,Empty:xe,Loading:Pe});function we(r,o){let n=r.nextElementSibling;for(;n;){if(n.matches(o))return n;n=n.nextElementSibling}}function Ie(r,o){let n=r.previousElementSibling;for(;n;){if(n.matches(o))return n;n=n.previousElementSibling}}function pe(r){let o=react__WEBPACK_IMPORTED_MODULE_0__.useRef(r);return T(()=>{o.current=r}),o}var T=typeof window==\"undefined\"?react__WEBPACK_IMPORTED_MODULE_0__.useEffect:react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;function k(r){let o=react__WEBPACK_IMPORTED_MODULE_0__.useRef();return o.current===void 0&&(o.current=r()),o}function N(r){return o=>{r.forEach(n=>{typeof n==\"function\"?n(o):n!=null&&(n.current=o)})}}function D(r){let o=Z(),n=()=>r(o.snapshot());return react__WEBPACK_IMPORTED_MODULE_0__.useSyncExternalStore(o.subscribe,n,n)}function ve(r,o,n,u=[]){let c=react__WEBPACK_IMPORTED_MODULE_0__.useRef(),d=G();return T(()=>{var v;let f=(()=>{var b;for(let l of n){if(typeof l==\"string\")return l.trim();if(typeof l==\"object\"&&\"current\"in l)return l.current?(b=l.current.textContent)==null?void 0:b.trim():c.current}})(),p=u.map(b=>b.trim());d.value(r,f,p),(v=o.current)==null||v.setAttribute(M,f),c.current=f}),c}var Me=()=>{let[r,o]=react__WEBPACK_IMPORTED_MODULE_0__.useState(),n=k(()=>new Map);return T(()=>{n.current.forEach(u=>u()),n.current=new Map},[r]),(u,c)=>{n.current.set(u,c),o({})}};function Te(r){let o=r.type;return typeof o==\"function\"?o(r.props):\"render\"in o?o.render(r.props):r}function F({asChild:r,children:o},n){return r&&react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(o)?react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(Te(o),{ref:o.ref},n(o.props.children)):n(o)}var De={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpSyx3R0FBd0csRUFBRSw4RUFBOEUsc0RBQUUsV0FBVyxnREFBZSxlQUFlLDZDQUFZLFFBQVEsZ0RBQWUsZUFBZSw2Q0FBWSxRQUFRLGdEQUFlLFlBQVksNkNBQVksU0FBUyxhQUFhLFFBQVEsT0FBTyw0RUFBNEUsdUNBQXVDLCtFQUErRSw4SEFBOEgsTUFBTSx3Q0FBTyxLQUFLLHdDQUFPLEtBQUssd0NBQU8sS0FBSyx5Q0FBUSxjQUFjLE9BQU8sZUFBZSxlQUFlLDRCQUE0QixhQUFhLFFBQVEsS0FBSyxNQUFNLDBDQUFTLE9BQU8sa0dBQWtHLFVBQVUsK0JBQStCLDhDQUE4QyxpRkFBaUYsbUJBQW1CLG1EQUFtRCxPQUFPLFVBQVUsV0FBVywyQkFBMkIsUUFBUSwwQ0FBUyxPQUFPLGdCQUFnQixNQUFNLG1FQUFtRSxtQkFBbUIsbURBQW1ELGFBQWEsR0FBRyxvSEFBb0gsc0NBQXNDLE9BQU8sMkVBQTJFLFVBQVUsU0FBUyw0REFBNEQsRUFBRSw0REFBNEQsd0NBQXdDLHFJQUFxSSxNQUFNLGlCQUFpQixRQUFRLHlEQUF5RCxtQ0FBbUMsYUFBYSx5REFBeUQsb0NBQW9DLHNDQUFzQywyQkFBMkIsY0FBYyxlQUFlLGdCQUFnQixnQkFBZ0IsRUFBRSxnQkFBZ0IsaUJBQWlCLFFBQVEsa0RBQWtELHdEQUF3RCxjQUFjLG1CQUFtQixtREFBbUQsR0FBRyx3REFBd0QsR0FBRyxPQUFPLHVDQUF1QyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsSUFBSSx5QkFBeUIsS0FBSyx3Q0FBd0MsRUFBRSxhQUFhLCtGQUErRiw4QkFBOEIsYUFBYSxZQUFZLG1EQUFtRCx3Q0FBd0MsT0FBTyxrQ0FBa0MsUUFBUSx3QkFBd0IsdUlBQXVJLDJDQUEyQyw4RUFBOEUsaUNBQWlDLE1BQU0sMkJBQTJCLGNBQWMsVUFBVSxVQUFVLHlJ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NENBQVcsQ0FBQyxrREFBaUIsQ0FBQyxjQUFjLE1BQU0seUNBQVEsR0FBRyw2Q0FBNkMsY0FBYyxXQUFXLGNBQWMsaURBQWlELEdBQUcsY0FBYyxnQ0FBZ0MsT0FBTyx1REFBc0Isa0JBQWtCLHdCQUF3QixNQUFNLHlDQUFRLFNBQVMsY0FBYyxNQUFNLFlBQVksTUFBTSxnQkFBZ0Isc0NBQXNDLGlIQUFpSCx5QkFBeUIsb0VBQW9FLElBQUksWUFBWSxTQUFTLDJDQUFVLG9CQUFvQixjQUFjLDRDQUE0QyxjQUFjLHVCQUF1QixJQUFJLGVBQWUsYUFBYSx3RUFBd0UsWUFBWSxxQkFBcUIsSUFBSSxVQUFVLGlEQUFnQixJQUFJLCtDQUFjLFFBQVEsVUFBVSwyQkFBMkIsUUFBUSxzSkFBZ1giLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0e2EgYXMgY2V9ZnJvbVwiLi9jaHVuay1OWkpZNkVINC5tanNcIjtpbXBvcnQqYXMgdyBmcm9tXCJAcmFkaXgtdWkvcmVhY3QtZGlhbG9nXCI7aW1wb3J0KmFzIHQgZnJvbVwicmVhY3RcIjtpbXBvcnR7UHJpbWl0aXZlIGFzIEl9ZnJvbVwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO3ZhciBWPSdbY21kay1ncm91cD1cIlwiXScsWD0nW2NtZGstZ3JvdXAtaXRlbXM9XCJcIl0nLGdlPSdbY21kay1ncm91cC1oZWFkaW5nPVwiXCJdJyxZPSdbY21kay1pdGVtPVwiXCJdJyxsZT1gJHtZfTpub3QoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdKWAsUT1cImNtZGstaXRlbS1zZWxlY3RcIixNPVwiZGF0YS12YWx1ZVwiLFJlPShyLG8sbik9PmNlKHIsbyxuKSx1ZT10LmNyZWF0ZUNvbnRleHQodm9pZCAwKSxHPSgpPT50LnVzZUNvbnRleHQodWUpLGRlPXQuY3JlYXRlQ29udGV4dCh2b2lkIDApLFo9KCk9PnQudXNlQ29udGV4dChkZSksZmU9dC5jcmVhdGVDb250ZXh0KHZvaWQgMCksbWU9dC5mb3J3YXJkUmVmKChyLG8pPT57bGV0IG49aygoKT0+e3ZhciBlLHM7cmV0dXJue3NlYXJjaDpcIlwiLHZhbHVlOihzPShlPXIudmFsdWUpIT1udWxsP2U6ci5kZWZhdWx0VmFsdWUpIT1udWxsP3M6XCJcIixmaWx0ZXJlZDp7Y291bnQ6MCxpdGVtczpuZXcgTWFwLGdyb3VwczpuZXcgU2V0fX19KSx1PWsoKCk9Pm5ldyBTZXQpLGM9aygoKT0+bmV3IE1hcCksZD1rKCgpPT5uZXcgTWFwKSxmPWsoKCk9Pm5ldyBTZXQpLHA9cGUocikse2xhYmVsOnYsY2hpbGRyZW46Yix2YWx1ZTpsLG9uVmFsdWVDaGFuZ2U6eSxmaWx0ZXI6UyxzaG91bGRGaWx0ZXI6Qyxsb29wOkwsZGlzYWJsZVBvaW50ZXJTZWxlY3Rpb246ZWU9ITEsdmltQmluZGluZ3M6aj0hMCwuLi5IfT1yLHRlPXQudXNlSWQoKSwkPXQudXNlSWQoKSxLPXQudXNlSWQoKSx4PXQudXNlUmVmKG51bGwpLGc9TWUoKTtUKCgpPT57aWYobCE9PXZvaWQgMCl7bGV0IGU9bC50cmltKCk7bi5jdXJyZW50LnZhbHVlPWUsaC5lbWl0KCl9fSxbbF0pLFQoKCk9PntnKDYscmUpfSxbXSk7bGV0IGg9dC51c2VNZW1vKCgpPT4oe3N1YnNjcmliZTplPT4oZi5jdXJyZW50LmFkZChlKSwoKT0+Zi5jdXJyZW50LmRlbGV0ZShlKSksc25hcHNob3Q6KCk9Pm4uY3VycmVudCxzZXRTdGF0ZTooZSxzLGkpPT57dmFyIGEsbSxSO2lmKCFPYmplY3QuaXMobi5jdXJyZW50W2VdLHMpKXtpZihuLmN1cnJlbnRbZV09cyxlPT09XCJzZWFyY2hcIil6KCkscSgpLGcoMSxVKTtlbHNlIGlmKGU9PT1cInZhbHVlXCImJihpfHxnKDUscmUpLCgoYT1wLmN1cnJlbnQpPT1udWxsP3ZvaWQgMDphLnZhbHVlKSE9PXZvaWQgMCkpe2xldCBFPXMhPW51bGw/czpcIlwiOyhSPShtPXAuY3VycmVudCkub25WYWx1ZUNoYW5nZSk9PW51bGx8fFIuY2FsbChtLEUpO3JldHVybn1oLmVtaXQoKX19LGVtaXQ6KCk9PntmLmN1cnJlbnQuZm9yRWFjaChlPT5lKCkpfX0pLFtdKSxCPXQudXNlTWVtbygoKT0+KHt2YWx1ZTooZSxzLGkpPT57dmFyIGE7cyE9PSgoYT1kLmN1cnJlbnQuZ2V0KGUpKT09bnVsbD92b2lkIDA6YS52YWx1ZSkmJihkLmN1cnJlbnQuc2V0KGUse3ZhbHVlOnMsa2V5d29yZHM6aX0pLG4uY3VycmVudC5maWx0ZXJlZC5pdGVtcy5zZXQoZSxuZShzLGkpKSxnKDIsKCk9PntxKCksaC5lbWl0KCl9KSl9LGl0ZW06KGUscyk9Pih1LmN1cnJlbnQuYWRkKGUpLHMmJihjLmN1cnJlbnQuaGFzKHMpP2MuY3VycmVudC5nZXQocykuYWRkKGUpOmMuY3VycmVudC5zZXQocyxuZXcgU2V0KFtlXSkpKSxnKDMsKCk9Pnt6KCkscSgpLG4uY3VycmVudC52YWx1ZXx8VSgpLGguZW1pdCgpfSksKCk9PntkLmN1cnJlbnQuZGVsZXRlKGUpLHUuY3VycmVudC5kZWxldGUoZSksbi5jdXJyZW50LmZpbHRlcmVkLml0ZW1zLmRlbGV0ZShlKTtsZXQgaT1PKCk7Zyg0LCgpPT57eigpLChpPT1udWxsP3ZvaWQgMDppLmdldEF0dHJpYnV0ZShcImlkXCIpKT09PWUmJlUoKSxoLmVtaXQoKX0pfSksZ3JvdXA6ZT0+KGMuY3VycmVudC5oYXMoZSl8fGMuY3VycmVudC5zZXQoZSxuZXcgU2V0KSwoKT0+e2QuY3VycmVudC5kZWxldGUoZSksYy5jdXJyZW50LmRlbGV0ZShlKX0pLGZpbHRlcjooKT0+cC5jdXJyZW50LnNob3VsZEZpbHRlcixsYWJlbDp2fHxyW1wiYXJpYS1sYWJlbFwiXSxkaXNhYmxlUG9pbnRlclNlbGVjdGlvbjplZSxsaXN0SWQ6dGUsaW5wdXRJZDpLLGxhYmVsSWQ6JCxsaXN0SW5uZXJSZWY6eH0pLFtdKTtmdW5jdGlvbiBuZShlLHMpe3ZhciBhLG07bGV0IGk9KG09KGE9cC5jdXJyZW50KT09bnVsbD92b2lkIDA6YS5maWx0ZXIpIT1udWxsP206UmU7cmV0dXJuIGU/aShlLG4uY3VycmVudC5zZWFyY2gscyk6MH1mdW5jdGlvbiBxKCl7aWYoIW4uY3VycmVudC5zZWFyY2h8fHAuY3VycmVudC5zaG91bGRGaWx0ZXI9PT0hMSlyZXR1cm47bGV0IGU9bi5jdXJyZW50LmZpbHRlcmVkLml0ZW1zLHM9W107bi5jdXJyZW50LmZpbHRlcmVkLmdyb3Vwcy5mb3JFYWNoKGE9PntsZXQgbT1jLmN1cnJlbnQuZ2V0KGEpLFI9MDttLmZvckVhY2goRT0+e2xldCBQPWUuZ2V0KEUpO1I9TWF0aC5tYXgoUCxSKX0pLHMucHVzaChbYSxSXSl9KTtsZXQgaT14LmN1cnJlbnQ7QSgpLnNvcnQoKGEsbSk9Pnt2YXIgUCxfO2xldCBSPWEuZ2V0QXR0cmlidXRlKFwiaWRcIiksRT1tLmdldEF0dHJpYnV0ZShcImlkXCIpO3JldHVybigoUD1lLmdldChFKSkhPW51bGw/UDowKS0oKF89ZS5nZXQoUikpIT1udWxsP186MCl9KS5mb3JFYWNoKGE9PntsZXQgbT1hLmNsb3Nlc3QoWCk7bT9tLmFwcGVuZENoaWxkKGEucGFyZW50RWxlbWVudD09PW0/YTphLmNsb3Nlc3QoYCR7WH0gPiAqYCkpOmkuYXBwZW5kQ2hpbGQoYS5wYXJlbnRFbGVtZW50PT09aT9hOmEuY2xvc2VzdChgJHtYfSA+ICpgKSl9KSxzLnNvcnQoKGEsbSk9Pm1bMV0tYVsxXSkuZm9yRWFjaChhPT57bGV0IG09eC5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoYCR7Vn1bJHtNfT1cIiR7ZW5jb2RlVVJJQ29tcG9uZW50KGFbMF0pfVwiXWApO209PW51bGx8fG0ucGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChtKX0pfWZ1bmN0aW9uIFUoKXtsZXQgZT1BKCkuZmluZChpPT5pLmdldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIikhPT1cInRydWVcIikscz1lPT1udWxsP3ZvaWQgMDplLmdldEF0dHJpYnV0ZShNKTtoLnNldFN0YXRlKFwidmFsdWVcIixzfHx2b2lkIDApfWZ1bmN0aW9uIHooKXt2YXIgcyxpLGEsbTtpZighbi5jdXJyZW50LnNlYXJjaHx8cC5jdXJyZW50LnNob3VsZEZpbHRlcj09PSExKXtuLmN1cnJlbnQuZmlsdGVyZWQuY291bnQ9dS5jdXJyZW50LnNpemU7cmV0dXJufW4uY3VycmVudC5maWx0ZXJlZC5ncm91cHM9bmV3IFNldDtsZXQgZT0wO2ZvcihsZXQgUiBvZiB1LmN1cnJlbnQpe2xldCBFPShpPShzPWQuY3VycmVudC5nZXQoUikpPT1udWxsP3ZvaWQgMDpzLnZhbHVlKSE9bnVsbD9pOlwiXCIsUD0obT0oYT1kLmN1cnJlbnQuZ2V0KFIpKT09bnVsbD92b2lkIDA6YS5rZXl3b3JkcykhPW51bGw/bTpbXSxfPW5lKEUsUCk7bi5jdXJyZW50LmZpbHRlcmVkLml0ZW1zLnNldChSLF8pLF8+MCYmZSsrfWZvcihsZXRbUixFXW9mIGMuY3VycmVudClmb3IobGV0IFAgb2YgRSlpZihuLmN1cnJlbnQuZmlsdGVyZWQuaXRlbXMuZ2V0KFApPjApe24uY3VycmVudC5maWx0ZXJlZC5ncm91cHMuYWRkKFIpO2JyZWFrfW4uY3VycmVudC5maWx0ZXJlZC5jb3VudD1lfWZ1bmN0aW9uIHJlKCl7dmFyIHMsaSxhO2xldCBlPU8oKTtlJiYoKChzPWUucGFyZW50RWxlbWVudCk9PW51bGw/dm9pZCAwOnMuZmlyc3RDaGlsZCk9PT1lJiYoKGE9KGk9ZS5jbG9zZXN0KFYpKT09bnVsbD92b2lkIDA6aS5xdWVyeVNlbGVjdG9yKGdlKSk9PW51bGx8fGEuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOlwibmVhcmVzdFwifSkpLGUuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOlwibmVhcmVzdFwifSkpfWZ1bmN0aW9uIE8oKXt2YXIgZTtyZXR1cm4oZT14LmN1cnJlbnQpPT1udWxsP3ZvaWQgMDplLnF1ZXJ5U2VsZWN0b3IoYCR7WX1bYXJpYS1zZWxlY3RlZD1cInRydWVcIl1gKX1mdW5jdGlvbiBBKCl7dmFyIGU7cmV0dXJuIEFycmF5LmZyb20oKGU9eC5jdXJyZW50KT09bnVsbD92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKGxlKSl9ZnVuY3Rpb24gVyhlKXtsZXQgaT1BKClbZV07aSYmaC5zZXRTdGF0ZShcInZhbHVlXCIsaS5nZXRBdHRyaWJ1dGUoTSkpfWZ1bmN0aW9uIEooZSl7dmFyIFI7bGV0IHM9TygpLGk9QSgpLGE9aS5maW5kSW5kZXgoRT0+RT09PXMpLG09aVthK2VdOyhSPXAuY3VycmVudCkhPW51bGwmJlIubG9vcCYmKG09YStlPDA/aVtpLmxlbmd0aC0xXTphK2U9PT1pLmxlbmd0aD9pWzBdOmlbYStlXSksbSYmaC5zZXRTdGF0ZShcInZhbHVlXCIsbS5nZXRBdHRyaWJ1dGUoTSkpfWZ1bmN0aW9uIG9lKGUpe2xldCBzPU8oKSxpPXM9PW51bGw/dm9pZCAwOnMuY2xvc2VzdChWKSxhO2Zvcig7aSYmIWE7KWk9ZT4wP3dlKGksVik6SWUoaSxWKSxhPWk9PW51bGw/dm9pZCAwOmkucXVlcnlTZWxlY3RvcihsZSk7YT9oLnNldFN0YXRlKFwidmFsdWVcIixhLmdldEF0dHJpYnV0ZShNKSk6SihlKX1sZXQgaWU9KCk9PlcoQSgpLmxlbmd0aC0xKSxhZT1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpLGUubWV0YUtleT9pZSgpOmUuYWx0S2V5P29lKDEpOkooMSl9LHNlPWU9PntlLnByZXZlbnREZWZhdWx0KCksZS5tZXRhS2V5P1coMCk6ZS5hbHRLZXk/b2UoLTEpOkooLTEpfTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KEkuZGl2LHtyZWY6byx0YWJJbmRleDotMSwuLi5ILFwiY21kay1yb290XCI6XCJcIixvbktleURvd246ZT0+e3ZhciBzO2lmKChzPUgub25LZXlEb3duKT09bnVsbHx8cy5jYWxsKEgsZSksIWUuZGVmYXVsdFByZXZlbnRlZClzd2l0Y2goZS5rZXkpe2Nhc2VcIm5cIjpjYXNlXCJqXCI6e2omJmUuY3RybEtleSYmYWUoZSk7YnJlYWt9Y2FzZVwiQXJyb3dEb3duXCI6e2FlKGUpO2JyZWFrfWNhc2VcInBcIjpjYXNlXCJrXCI6e2omJmUuY3RybEtleSYmc2UoZSk7YnJlYWt9Y2FzZVwiQXJyb3dVcFwiOntzZShlKTticmVha31jYXNlXCJIb21lXCI6e2UucHJldmVudERlZmF1bHQoKSxXKDApO2JyZWFrfWNhc2VcIkVuZFwiOntlLnByZXZlbnREZWZhdWx0KCksaWUoKTticmVha31jYXNlXCJFbnRlclwiOmlmKCFlLm5hdGl2ZUV2ZW50LmlzQ29tcG9zaW5nJiZlLmtleUNvZGUhPT0yMjkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgaT1PKCk7aWYoaSl7bGV0IGE9bmV3IEV2ZW50KFEpO2kuZGlzcGF0Y2hFdmVudChhKX19fX19LHQuY3JlYXRlRWxlbWVudChcImxhYmVsXCIse1wiY21kay1sYWJlbFwiOlwiXCIsaHRtbEZvcjpCLmlucHV0SWQsaWQ6Qi5sYWJlbElkLHN0eWxlOkRlfSx2KSxGKHIsZT0+dC5jcmVhdGVFbGVtZW50KGRlLlByb3ZpZGVyLHt2YWx1ZTpofSx0LmNyZWF0ZUVsZW1lbnQodWUuUHJvdmlkZXIse3ZhbHVlOkJ9LGUpKSkpfSksYmU9dC5mb3J3YXJkUmVmKChyLG8pPT57dmFyIEsseDtsZXQgbj10LnVzZUlkKCksdT10LnVzZVJlZihudWxsKSxjPXQudXNlQ29udGV4dChmZSksZD1HKCksZj1wZShyKSxwPSh4PShLPWYuY3VycmVudCk9PW51bGw/dm9pZCAwOksuZm9yY2VNb3VudCkhPW51bGw/eDpjPT1udWxsP3ZvaWQgMDpjLmZvcmNlTW91bnQ7VCgoKT0+e2lmKCFwKXJldHVybiBkLml0ZW0obixjPT1udWxsP3ZvaWQgMDpjLmlkKX0sW3BdKTtsZXQgdj12ZShuLHUsW3IudmFsdWUsci5jaGlsZHJlbix1XSxyLmtleXdvcmRzKSxiPVooKSxsPUQoZz0+Zy52YWx1ZSYmZy52YWx1ZT09PXYuY3VycmVudCkseT1EKGc9PnB8fGQuZmlsdGVyKCk9PT0hMT8hMDpnLnNlYXJjaD9nLmZpbHRlcmVkLml0ZW1zLmdldChuKT4wOiEwKTt0LnVzZUVmZmVjdCgoKT0+e2xldCBnPXUuY3VycmVudDtpZighKCFnfHxyLmRpc2FibGVkKSlyZXR1cm4gZy5hZGRFdmVudExpc3RlbmVyKFEsUyksKCk9PmcucmVtb3ZlRXZlbnRMaXN0ZW5lcihRLFMpfSxbeSxyLm9uU2VsZWN0LHIuZGlzYWJsZWRdKTtmdW5jdGlvbiBTKCl7dmFyIGcsaDtDKCksKGg9KGc9Zi5jdXJyZW50KS5vblNlbGVjdCk9PW51bGx8fGguY2FsbChnLHYuY3VycmVudCl9ZnVuY3Rpb24gQygpe2Iuc2V0U3RhdGUoXCJ2YWx1ZVwiLHYuY3VycmVudCwhMCl9aWYoIXkpcmV0dXJuIG51bGw7bGV0e2Rpc2FibGVkOkwsdmFsdWU6ZWUsb25TZWxlY3Q6aixmb3JjZU1vdW50Okgsa2V5d29yZHM6dGUsLi4uJH09cjtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KEkuZGl2LHtyZWY6TihbdSxvXSksLi4uJCxpZDpuLFwiY21kay1pdGVtXCI6XCJcIixyb2xlOlwib3B0aW9uXCIsXCJhcmlhLWRpc2FibGVkXCI6ISFMLFwiYXJpYS1zZWxlY3RlZFwiOiEhbCxcImRhdGEtZGlzYWJsZWRcIjohIUwsXCJkYXRhLXNlbGVjdGVkXCI6ISFsLG9uUG9pbnRlck1vdmU6THx8ZC5kaXNhYmxlUG9pbnRlclNlbGVjdGlvbj92b2lkIDA6QyxvbkNsaWNrOkw/dm9pZCAwOlN9LHIuY2hpbGRyZW4pfSksaGU9dC5mb3J3YXJkUmVmKChyLG8pPT57bGV0e2hlYWRpbmc6bixjaGlsZHJlbjp1LGZvcmNlTW91bnQ6YywuLi5kfT1yLGY9dC51c2VJZCgpLHA9dC51c2VSZWYobnVsbCksdj10LnVzZVJlZihudWxsKSxiPXQudXNlSWQoKSxsPUcoKSx5PUQoQz0+Y3x8bC5maWx0ZXIoKT09PSExPyEwOkMuc2VhcmNoP0MuZmlsdGVyZWQuZ3JvdXBzLmhhcyhmKTohMCk7VCgoKT0+bC5ncm91cChmKSxbXSksdmUoZixwLFtyLnZhbHVlLHIuaGVhZGluZyx2XSk7bGV0IFM9dC51c2VNZW1vKCgpPT4oe2lkOmYsZm9yY2VNb3VudDpjfSksW2NdKTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KEkuZGl2LHtyZWY6TihbcCxvXSksLi4uZCxcImNtZGstZ3JvdXBcIjpcIlwiLHJvbGU6XCJwcmVzZW50YXRpb25cIixoaWRkZW46eT92b2lkIDA6ITB9LG4mJnQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6dixcImNtZGstZ3JvdXAtaGVhZGluZ1wiOlwiXCIsXCJhcmlhLWhpZGRlblwiOiEwLGlkOmJ9LG4pLEYocixDPT50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJjbWRrLWdyb3VwLWl0ZW1zXCI6XCJcIixyb2xlOlwiZ3JvdXBcIixcImFyaWEtbGFiZWxsZWRieVwiOm4/Yjp2b2lkIDB9LHQuY3JlYXRlRWxlbWVudChmZS5Qcm92aWRlcix7dmFsdWU6U30sQykpKSl9KSx5ZT10LmZvcndhcmRSZWYoKHIsbyk9PntsZXR7YWx3YXlzUmVuZGVyOm4sLi4udX09cixjPXQudXNlUmVmKG51bGwpLGQ9RChmPT4hZi5zZWFyY2gpO3JldHVybiFuJiYhZD9udWxsOnQuY3JlYXRlRWxlbWVudChJLmRpdix7cmVmOk4oW2Msb10pLC4uLnUsXCJjbWRrLXNlcGFyYXRvclwiOlwiXCIscm9sZTpcInNlcGFyYXRvclwifSl9KSxFZT10LmZvcndhcmRSZWYoKHIsbyk9PntsZXR7b25WYWx1ZUNoYW5nZTpuLC4uLnV9PXIsYz1yLnZhbHVlIT1udWxsLGQ9WigpLGY9RChsPT5sLnNlYXJjaCkscD1EKGw9PmwudmFsdWUpLHY9RygpLGI9dC51c2VNZW1vKCgpPT57dmFyIHk7bGV0IGw9KHk9di5saXN0SW5uZXJSZWYuY3VycmVudCk9PW51bGw/dm9pZCAwOnkucXVlcnlTZWxlY3RvcihgJHtZfVske019PVwiJHtlbmNvZGVVUklDb21wb25lbnQocCl9XCJdYCk7cmV0dXJuIGw9PW51bGw/dm9pZCAwOmwuZ2V0QXR0cmlidXRlKFwiaWRcIil9LFtdKTtyZXR1cm4gdC51c2VFZmZlY3QoKCk9PntyLnZhbHVlIT1udWxsJiZkLnNldFN0YXRlKFwic2VhcmNoXCIsci52YWx1ZSl9LFtyLnZhbHVlXSksdC5jcmVhdGVFbGVtZW50KEkuaW5wdXQse3JlZjpvLC4uLnUsXCJjbWRrLWlucHV0XCI6XCJcIixhdXRvQ29tcGxldGU6XCJvZmZcIixhdXRvQ29ycmVjdDpcIm9mZlwiLHNwZWxsQ2hlY2s6ITEsXCJhcmlhLWF1dG9jb21wbGV0ZVwiOlwibGlzdFwiLHJvbGU6XCJjb21ib2JveFwiLFwiYXJpYS1leHBhbmRlZFwiOiEwLFwiYXJpYS1jb250cm9sc1wiOnYubGlzdElkLFwiYXJpYS1sYWJlbGxlZGJ5XCI6di5sYWJlbElkLFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6YixpZDp2LmlucHV0SWQsdHlwZTpcInRleHRcIix2YWx1ZTpjP3IudmFsdWU6ZixvbkNoYW5nZTpsPT57Y3x8ZC5zZXRTdGF0ZShcInNlYXJjaFwiLGwudGFyZ2V0LnZhbHVlKSxuPT1udWxsfHxuKGwudGFyZ2V0LnZhbHVlKX19KX0pLFNlPXQuZm9yd2FyZFJlZigocixvKT0+e2xldHtjaGlsZHJlbjpuLGxhYmVsOnU9XCJTdWdnZXN0aW9uc1wiLC4uLmN9PXIsZD10LnVzZVJlZihudWxsKSxmPXQudXNlUmVmKG51bGwpLHA9RygpO3JldHVybiB0LnVzZUVmZmVjdCgoKT0+e2lmKGYuY3VycmVudCYmZC5jdXJyZW50KXtsZXQgdj1mLmN1cnJlbnQsYj1kLmN1cnJlbnQsbCx5PW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e2w9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IFM9di5vZmZzZXRIZWlnaHQ7Yi5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tY21kay1saXN0LWhlaWdodFwiLFMudG9GaXhlZCgxKStcInB4XCIpfSl9KTtyZXR1cm4geS5vYnNlcnZlKHYpLCgpPT57Y2FuY2VsQW5pbWF0aW9uRnJhbWUobCkseS51bm9ic2VydmUodil9fX0sW10pLHQuY3JlYXRlRWxlbWVudChJLmRpdix7cmVmOk4oW2Qsb10pLC4uLmMsXCJjbWRrLWxpc3RcIjpcIlwiLHJvbGU6XCJsaXN0Ym94XCIsXCJhcmlhLWxhYmVsXCI6dSxpZDpwLmxpc3RJZH0sRihyLHY9PnQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6TihbZixwLmxpc3RJbm5lclJlZl0pLFwiY21kay1saXN0LXNpemVyXCI6XCJcIn0sdikpKX0pLENlPXQuZm9yd2FyZFJlZigocixvKT0+e2xldHtvcGVuOm4sb25PcGVuQ2hhbmdlOnUsb3ZlcmxheUNsYXNzTmFtZTpjLGNvbnRlbnRDbGFzc05hbWU6ZCxjb250YWluZXI6ZiwuLi5wfT1yO3JldHVybiB0LmNyZWF0ZUVsZW1lbnQody5Sb290LHtvcGVuOm4sb25PcGVuQ2hhbmdlOnV9LHQuY3JlYXRlRWxlbWVudCh3LlBvcnRhbCx7Y29udGFpbmVyOmZ9LHQuY3JlYXRlRWxlbWVudCh3Lk92ZXJsYXkse1wiY21kay1vdmVybGF5XCI6XCJcIixjbGFzc05hbWU6Y30pLHQuY3JlYXRlRWxlbWVudCh3LkNvbnRlbnQse1wiYXJpYS1sYWJlbFwiOnIubGFiZWwsXCJjbWRrLWRpYWxvZ1wiOlwiXCIsY2xhc3NOYW1lOmR9LHQuY3JlYXRlRWxlbWVudChtZSx7cmVmOm8sLi4ucH0pKSkpfSkseGU9dC5mb3J3YXJkUmVmKChyLG8pPT5EKHU9PnUuZmlsdGVyZWQuY291bnQ9PT0wKT90LmNyZWF0ZUVsZW1lbnQoSS5kaXYse3JlZjpvLC4uLnIsXCJjbWRrLWVtcHR5XCI6XCJcIixyb2xlOlwicHJlc2VudGF0aW9uXCJ9KTpudWxsKSxQZT10LmZvcndhcmRSZWYoKHIsbyk9PntsZXR7cHJvZ3Jlc3M6bixjaGlsZHJlbjp1LGxhYmVsOmM9XCJMb2FkaW5nLi4uXCIsLi4uZH09cjtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KEkuZGl2LHtyZWY6bywuLi5kLFwiY21kay1sb2FkaW5nXCI6XCJcIixyb2xlOlwicHJvZ3Jlc3NiYXJcIixcImFyaWEtdmFsdWVub3dcIjpuLFwiYXJpYS12YWx1ZW1pblwiOjAsXCJhcmlhLXZhbHVlbWF4XCI6MTAwLFwiYXJpYS1sYWJlbFwiOmN9LEYocixmPT50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJhcmlhLWhpZGRlblwiOiEwfSxmKSkpfSksSGU9T2JqZWN0LmFzc2lnbihtZSx7TGlzdDpTZSxJdGVtOmJlLElucHV0OkVlLEdyb3VwOmhlLFNlcGFyYXRvcjp5ZSxEaWFsb2c6Q2UsRW1wdHk6eGUsTG9hZGluZzpQZX0pO2Z1bmN0aW9uIHdlKHIsbyl7bGV0IG49ci5uZXh0RWxlbWVudFNpYmxpbmc7Zm9yKDtuOyl7aWYobi5tYXRjaGVzKG8pKXJldHVybiBuO249bi5uZXh0RWxlbWVudFNpYmxpbmd9fWZ1bmN0aW9uIEllKHIsbyl7bGV0IG49ci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO2Zvcig7bjspe2lmKG4ubWF0Y2hlcyhvKSlyZXR1cm4gbjtuPW4ucHJldmlvdXNFbGVtZW50U2libGluZ319ZnVuY3Rpb24gcGUocil7bGV0IG89dC51c2VSZWYocik7cmV0dXJuIFQoKCk9PntvLmN1cnJlbnQ9cn0pLG99dmFyIFQ9dHlwZW9mIHdpbmRvdz09XCJ1bmRlZmluZWRcIj90LnVzZUVmZmVjdDp0LnVzZUxheW91dEVmZmVjdDtmdW5jdGlvbiBrKHIpe2xldCBvPXQudXNlUmVmKCk7cmV0dXJuIG8uY3VycmVudD09PXZvaWQgMCYmKG8uY3VycmVudD1yKCkpLG99ZnVuY3Rpb24gTihyKXtyZXR1cm4gbz0+e3IuZm9yRWFjaChuPT57dHlwZW9mIG49PVwiZnVuY3Rpb25cIj9uKG8pOm4hPW51bGwmJihuLmN1cnJlbnQ9byl9KX19ZnVuY3Rpb24gRChyKXtsZXQgbz1aKCksbj0oKT0+cihvLnNuYXBzaG90KCkpO3JldHVybiB0LnVzZVN5bmNFeHRlcm5hbFN0b3JlKG8uc3Vic2NyaWJlLG4sbil9ZnVuY3Rpb24gdmUocixvLG4sdT1bXSl7bGV0IGM9dC51c2VSZWYoKSxkPUcoKTtyZXR1cm4gVCgoKT0+e3ZhciB2O2xldCBmPSgoKT0+e3ZhciBiO2ZvcihsZXQgbCBvZiBuKXtpZih0eXBlb2YgbD09XCJzdHJpbmdcIilyZXR1cm4gbC50cmltKCk7aWYodHlwZW9mIGw9PVwib2JqZWN0XCImJlwiY3VycmVudFwiaW4gbClyZXR1cm4gbC5jdXJyZW50PyhiPWwuY3VycmVudC50ZXh0Q29udGVudCk9PW51bGw/dm9pZCAwOmIudHJpbSgpOmMuY3VycmVudH19KSgpLHA9dS5tYXAoYj0+Yi50cmltKCkpO2QudmFsdWUocixmLHApLCh2PW8uY3VycmVudCk9PW51bGx8fHYuc2V0QXR0cmlidXRlKE0sZiksYy5jdXJyZW50PWZ9KSxjfXZhciBNZT0oKT0+e2xldFtyLG9dPXQudXNlU3RhdGUoKSxuPWsoKCk9Pm5ldyBNYXApO3JldHVybiBUKCgpPT57bi5jdXJyZW50LmZvckVhY2godT0+dSgpKSxuLmN1cnJlbnQ9bmV3IE1hcH0sW3JdKSwodSxjKT0+e24uY3VycmVudC5zZXQodSxjKSxvKHt9KX19O2Z1bmN0aW9uIFRlKHIpe2xldCBvPXIudHlwZTtyZXR1cm4gdHlwZW9mIG89PVwiZnVuY3Rpb25cIj9vKHIucHJvcHMpOlwicmVuZGVyXCJpbiBvP28ucmVuZGVyKHIucHJvcHMpOnJ9ZnVuY3Rpb24gRih7YXNDaGlsZDpyLGNoaWxkcmVuOm99LG4pe3JldHVybiByJiZ0LmlzVmFsaWRFbGVtZW50KG8pP3QuY2xvbmVFbGVtZW50KFRlKG8pLHtyZWY6by5yZWZ9LG4oby5wcm9wcy5jaGlsZHJlbikpOm4obyl9dmFyIERlPXtwb3NpdGlvbjpcImFic29sdXRlXCIsd2lkdGg6XCIxcHhcIixoZWlnaHQ6XCIxcHhcIixwYWRkaW5nOlwiMFwiLG1hcmdpbjpcIi0xcHhcIixvdmVyZmxvdzpcImhpZGRlblwiLGNsaXA6XCJyZWN0KDAsIDAsIDAsIDApXCIsd2hpdGVTcGFjZTpcIm5vd3JhcFwiLGJvcmRlcldpZHRoOlwiMFwifTtleHBvcnR7SGUgYXMgQ29tbWFuZCxDZSBhcyBDb21tYW5kRGlhbG9nLHhlIGFzIENvbW1hbmRFbXB0eSxoZSBhcyBDb21tYW5kR3JvdXAsRWUgYXMgQ29tbWFuZElucHV0LGJlIGFzIENvbW1hbmRJdGVtLFNlIGFzIENvbW1hbmRMaXN0LFBlIGFzIENvbW1hbmRMb2FkaW5nLG1lIGFzIENvbW1hbmRSb290LHllIGFzIENvbW1hbmRTZXBhcmF0b3IsRCBhcyB1c2VDb21tYW5kU3RhdGV9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.mjs": /*!***************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.mjs ***! \***************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeEventHandlers: () => (/* binding */ $e42e1063c40fb3ef$export$b9ecd428b558ff10)\n/* harmony export */ });\nfunction $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented: checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw0RkFBNEYsNkRBQTZELElBQUk7QUFDN0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLMkU7QUFDM0UiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gJGU0MmUxMDYzYzQwZmIzZWYkZXhwb3J0JGI5ZWNkNDI4YjU1OGZmMTAob3JpZ2luYWxFdmVudEhhbmRsZXIsIG91ckV2ZW50SGFuZGxlciwgeyBjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQ6IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9IHRydWUgIH0gPSB7fSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBoYW5kbGVFdmVudChldmVudCkge1xuICAgICAgICBvcmlnaW5hbEV2ZW50SGFuZGxlciA9PT0gbnVsbCB8fCBvcmlnaW5hbEV2ZW50SGFuZGxlciA9PT0gdm9pZCAwIHx8IG9yaWdpbmFsRXZlbnRIYW5kbGVyKGV2ZW50KTtcbiAgICAgICAgaWYgKGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9PT0gZmFsc2UgfHwgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybiBvdXJFdmVudEhhbmRsZXIgPT09IG51bGwgfHwgb3VyRXZlbnRIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvdXJFdmVudEhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG59XG5cblxuXG5cbmV4cG9ydCB7JGU0MmUxMDYzYzQwZmIzZWYkZXhwb3J0JGI5ZWNkNDI4YjU1OGZmMTAgYXMgY29tcG9zZUV2ZW50SGFuZGxlcnN9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs": /*!************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***! \************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ $6ed0406888f73fc4$export$43e446d32b3d21af),\n/* harmony export */ useComposedRefs: () => (/* binding */ $6ed0406888f73fc4$export$c7b2cbe3552a0d05)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === 'function') ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node)\n )\n ;\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDs7O0FBR3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGtEQUFrQjtBQUM3Qjs7Ozs7QUFLZ0k7QUFDaEkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFjayBhcyAkM3ZxbXIkdXNlQ2FsbGJhY2t9IGZyb20gXCJyZWFjdFwiO1xuXG5cbi8qKlxuICogU2V0IGEgZ2l2ZW4gcmVmIHRvIGEgZ2l2ZW4gdmFsdWVcbiAqIFRoaXMgdXRpbGl0eSB0YWtlcyBjYXJlIG9mIGRpZmZlcmVudCB0eXBlcyBvZiByZWZzOiBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcbiAqLyBmdW5jdGlvbiAkNmVkMDQwNjg4OGY3M2ZjNCR2YXIkc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykgcmVmKHZhbHVlKTtcbiAgICBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHJlZi5jdXJyZW50ID0gdmFsdWU7XG59XG4vKipcbiAqIEEgdXRpbGl0eSB0byBjb21wb3NlIG11bHRpcGxlIHJlZnMgdG9nZXRoZXJcbiAqIEFjY2VwdHMgY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXG4gKi8gZnVuY3Rpb24gJDZlZDA0MDY4ODhmNzNmYzQkZXhwb3J0JDQzZTQ0NmQzMmIzZDIxYWYoLi4ucmVmcykge1xuICAgIHJldHVybiAobm9kZSk9PnJlZnMuZm9yRWFjaCgocmVmKT0+JDZlZDA0MDY4ODhmNzNmYzQkdmFyJHNldFJlZihyZWYsIG5vZGUpXG4gICAgICAgIClcbiAgICA7XG59XG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb21wb3NlcyBtdWx0aXBsZSByZWZzXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxuICovIGZ1bmN0aW9uICQ2ZWQwNDA2ODg4ZjczZmM0JGV4cG9ydCRjN2IyY2JlMzU1MmEwZDA1KC4uLnJlZnMpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgcmV0dXJuICQzdnFtciR1c2VDYWxsYmFjaygkNmVkMDQwNjg4OGY3M2ZjNCRleHBvcnQkNDNlNDQ2ZDMyYjNkMjFhZiguLi5yZWZzKSwgcmVmcyk7XG59XG5cblxuXG5cbmV4cG9ydCB7JDZlZDA0MDY4ODhmNzNmYzQkZXhwb3J0JDQzZTQ0NmQzMmIzZDIxYWYgYXMgY29tcG9zZVJlZnMsICQ2ZWQwNDA2ODg4ZjczZmM0JGV4cG9ydCRjN2IyY2JlMzU1MmEwZDA1IGFzIHVzZUNvbXBvc2VkUmVmc307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-context/dist/index.mjs": /*!*******************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-context/dist/index.mjs ***! \*******************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: () => (/* binding */ $c512c27ab02ef895$export$fd42f52fd3ae1109),\n/* harmony export */ createContextScope: () => (/* binding */ $c512c27ab02ef895$export$50c7b4e9d9f19c1)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\nfunction $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const Context = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(defaultContext);\n function Provider(props) {\n const { children: children , ...context } = props; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>context\n , Object.values(context));\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName) {\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const { scope: scope , children: children , ...context } = props;\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>context\n , Object.values(context));\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext;\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n }\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/ const createScope = ()=>{\n const scopeContexts = defaultContexts.map((defaultContext)=>{\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({\n [`__scope${scopeName}`]: {\n ...scope,\n [scopeName]: contexts\n }\n })\n , [\n scope,\n contexts\n ]);\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope1 = ()=>{\n const scopeHooks = scopes.map((createScope)=>({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope: useScope , scopeName: scopeName })=>{\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return {\n ...nextScopes,\n ...currentScope\n };\n }, {});\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n })\n , [\n nextScopes1\n ]);\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBK0o7OztBQUcvSjtBQUNBLGtDQUFrQyxvREFBb0I7QUFDdEQ7QUFDQSxnQkFBZ0Isa0NBQWtDLFNBQVM7QUFDM0Q7QUFDQSxzQkFBc0IsOENBQWM7QUFDcEM7QUFDQSw2QkFBNkIsb0RBQW9CO0FBQ2pEO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSx3QkFBd0IsaURBQWlCO0FBQ3pDO0FBQ0EsaUVBQWlFO0FBQ2pFLDZCQUE2QixhQUFhLDJCQUEyQixrQkFBa0I7QUFDdkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxvREFBb0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlEQUFpRDtBQUNyRSxvSEFBb0g7QUFDcEg7QUFDQSwwQkFBMEIsOENBQWM7QUFDeEM7QUFDQSxpQ0FBaUMsb0RBQW9CO0FBQ3JEO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixpREFBaUI7QUFDN0M7QUFDQSxxRUFBcUU7QUFDckUsaUNBQWlDLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUMzRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLG9EQUFvQjtBQUNyRCxTQUFTO0FBQ1Q7QUFDQTtBQUNBLG1CQUFtQiw4Q0FBYztBQUNqQywrQkFBK0IsVUFBVTtBQUN6QztBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxpRUFBaUUsNENBQTRDO0FBQzdHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBELFVBQVU7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLElBQUk7QUFDakIsbUJBQW1CLDhDQUFjO0FBQ2pDLCtCQUErQixvQkFBb0I7QUFDbkQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS29JO0FBQ3BJIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUNvbnRleHQgYXMgJDNia0FLJGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8gYXMgJDNia0FLJHVzZU1lbW8sIGNyZWF0ZUVsZW1lbnQgYXMgJDNia0FLJGNyZWF0ZUVsZW1lbnQsIHVzZUNvbnRleHQgYXMgJDNia0FLJHVzZUNvbnRleHR9IGZyb20gXCJyZWFjdFwiO1xuXG5cbmZ1bmN0aW9uICRjNTEyYzI3YWIwMmVmODk1JGV4cG9ydCRmZDQyZjUyZmQzYWUxMTA5KHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICAgIGNvbnN0IENvbnRleHQgPSAvKiNfX1BVUkVfXyovICQzYmtBSyRjcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcbiAgICBmdW5jdGlvbiBQcm92aWRlcihwcm9wcykge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuOiBjaGlsZHJlbiAsIC4uLmNvbnRleHQgfSA9IHByb3BzOyAvLyBPbmx5IHJlLW1lbW9pemUgd2hlbiBwcm9wIHZhbHVlcyBjaGFuZ2VcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICBjb25zdCB2YWx1ZSA9ICQzYmtBSyR1c2VNZW1vKCgpPT5jb250ZXh0XG4gICAgICAgICwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQzYmtBSyRjcmVhdGVFbGVtZW50KENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9LCBjaGlsZHJlbik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVzZUNvbnRleHQoY29uc3VtZXJOYW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSAkM2JrQUskdXNlQ29udGV4dChDb250ZXh0KTtcbiAgICAgICAgaWYgKGNvbnRleHQpIHJldHVybiBjb250ZXh0O1xuICAgICAgICBpZiAoZGVmYXVsdENvbnRleHQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRDb250ZXh0OyAvLyBpZiBhIGRlZmF1bHRDb250ZXh0IHdhc24ndCBzcGVjaWZpZWQsIGl0J3MgYSByZXF1aXJlZCBjb250ZXh0LlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gICAgfVxuICAgIFByb3ZpZGVyLmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyAnUHJvdmlkZXInO1xuICAgIHJldHVybiBbXG4gICAgICAgIFByb3ZpZGVyLFxuICAgICAgICB1c2VDb250ZXh0XG4gICAgXTtcbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIGNyZWF0ZUNvbnRleHRTY29wZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBmdW5jdGlvbiAkYzUxMmMyN2FiMDJlZjg5NSRleHBvcnQkNTBjN2I0ZTlkOWYxOWMxKHNjb3BlTmFtZSwgY3JlYXRlQ29udGV4dFNjb3BlRGVwcyA9IFtdKSB7XG4gICAgbGV0IGRlZmF1bHRDb250ZXh0cyA9IFtdO1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGNyZWF0ZUNvbnRleHRcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gZnVuY3Rpb24gJGM1MTJjMjdhYjAyZWY4OTUkZXhwb3J0JGZkNDJmNTJmZDNhZTExMDkocm9vdENvbXBvbmVudE5hbWUsIGRlZmF1bHRDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IEJhc2VDb250ZXh0ID0gLyojX19QVVJFX18qLyAkM2JrQUskY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gZGVmYXVsdENvbnRleHRzLmxlbmd0aDtcbiAgICAgICAgZGVmYXVsdENvbnRleHRzID0gW1xuICAgICAgICAgICAgLi4uZGVmYXVsdENvbnRleHRzLFxuICAgICAgICAgICAgZGVmYXVsdENvbnRleHRcbiAgICAgICAgXTtcbiAgICAgICAgZnVuY3Rpb24gUHJvdmlkZXIocHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGU6IHNjb3BlICwgY2hpbGRyZW46IGNoaWxkcmVuICwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgICAgICAgICBjb25zdCBDb250ZXh0ID0gKHNjb3BlID09PSBudWxsIHx8IHNjb3BlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY29wZVtzY29wZU5hbWVdW2luZGV4XSkgfHwgQmFzZUNvbnRleHQ7IC8vIE9ubHkgcmUtbWVtb2l6ZSB3aGVuIHByb3AgdmFsdWVzIGNoYW5nZVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkM2JrQUskdXNlTWVtbygoKT0+Y29udGV4dFxuICAgICAgICAgICAgLCBPYmplY3QudmFsdWVzKGNvbnRleHQpKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQzYmtBSyRjcmVhdGVFbGVtZW50KENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1c2VDb250ZXh0KGNvbnN1bWVyTmFtZSwgc2NvcGUpIHtcbiAgICAgICAgICAgIGNvbnN0IENvbnRleHQgPSAoc2NvcGUgPT09IG51bGwgfHwgc2NvcGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjb3BlW3Njb3BlTmFtZV1baW5kZXhdKSB8fCBCYXNlQ29udGV4dDtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSAkM2JrQUskdXNlQ29udGV4dChDb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7IC8vIGlmIGEgZGVmYXVsdENvbnRleHQgd2Fzbid0IHNwZWNpZmllZCwgaXQncyBhIHJlcXVpcmVkIGNvbnRleHQuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gICAgICAgIH1cbiAgICAgICAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArICdQcm92aWRlcic7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBQcm92aWRlcixcbiAgICAgICAgICAgIHVzZUNvbnRleHRcbiAgICAgICAgXTtcbiAgICB9XG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogY3JlYXRlU2NvcGVcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgY3JlYXRlU2NvcGUgPSAoKT0+e1xuICAgICAgICBjb25zdCBzY29wZUNvbnRleHRzID0gZGVmYXVsdENvbnRleHRzLm1hcCgoZGVmYXVsdENvbnRleHQpPT57XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkM2JrQUskY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHRzID0gKHNjb3BlID09PSBudWxsIHx8IHNjb3BlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY29wZVtzY29wZU5hbWVdKSB8fCBzY29wZUNvbnRleHRzO1xuICAgICAgICAgICAgcmV0dXJuICQzYmtBSyR1c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgICAgICAgICBbYF9fc2NvcGUke3Njb3BlTmFtZX1gXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2NvcGVOYW1lXTogY29udGV4dHNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAsIFtcbiAgICAgICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgICAgICBjb250ZXh0c1xuICAgICAgICAgICAgXSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBzY29wZU5hbWU7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgJGM1MTJjMjdhYjAyZWY4OTUkZXhwb3J0JGZkNDJmNTJmZDNhZTExMDksXG4gICAgICAgICRjNTEyYzI3YWIwMmVmODk1JHZhciRjb21wb3NlQ29udGV4dFNjb3BlcyhjcmVhdGVTY29wZSwgLi4uY3JlYXRlQ29udGV4dFNjb3BlRGVwcylcbiAgICBdO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogY29tcG9zZUNvbnRleHRTY29wZXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gZnVuY3Rpb24gJGM1MTJjMjdhYjAyZWY4OTUkdmFyJGNvbXBvc2VDb250ZXh0U2NvcGVzKC4uLnNjb3Blcykge1xuICAgIGNvbnN0IGJhc2VTY29wZSA9IHNjb3Blc1swXTtcbiAgICBpZiAoc2NvcGVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGJhc2VTY29wZTtcbiAgICBjb25zdCBjcmVhdGVTY29wZTEgPSAoKT0+e1xuICAgICAgICBjb25zdCBzY29wZUhvb2tzID0gc2NvcGVzLm1hcCgoY3JlYXRlU2NvcGUpPT4oe1xuICAgICAgICAgICAgICAgIHVzZVNjb3BlOiBjcmVhdGVTY29wZSgpLFxuICAgICAgICAgICAgICAgIHNjb3BlTmFtZTogY3JlYXRlU2NvcGUuc2NvcGVOYW1lXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gdXNlQ29tcG9zZWRTY29wZXMob3ZlcnJpZGVTY29wZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRTY29wZXMxID0gc2NvcGVIb29rcy5yZWR1Y2UoKG5leHRTY29wZXMsIHsgdXNlU2NvcGU6IHVzZVNjb3BlICwgc2NvcGVOYW1lOiBzY29wZU5hbWUgIH0pPT57XG4gICAgICAgICAgICAgICAgLy8gV2UgYXJlIGNhbGxpbmcgYSBob29rIGluc2lkZSBhIGNhbGxiYWNrIHdoaWNoIFJlYWN0IHdhcm5zIGFnYWluc3QgdG8gYXZvaWQgaW5jb25zaXN0ZW50XG4gICAgICAgICAgICAgICAgLy8gcmVuZGVycywgaG93ZXZlciwgc2NvcGluZyBkb2Vzbid0IGhhdmUgcmVuZGVyIHNpZGUgZWZmZWN0cyBzbyB3ZSBpZ25vcmUgdGhlIHJ1bGUuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVQcm9wcyA9IHVzZVNjb3BlKG92ZXJyaWRlU2NvcGVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZVByb3BzW2BfX3Njb3BlJHtzY29wZU5hbWV9YF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ubmV4dFNjb3BlcyxcbiAgICAgICAgICAgICAgICAgICAgLi4uY3VycmVudFNjb3BlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIHJldHVybiAkM2JrQUskdXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgW2BfX3Njb3BlJHtiYXNlU2NvcGUuc2NvcGVOYW1lfWBdOiBuZXh0U2NvcGVzMVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAsIFtcbiAgICAgICAgICAgICAgICBuZXh0U2NvcGVzMVxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjcmVhdGVTY29wZTEuc2NvcGVOYW1lID0gYmFzZVNjb3BlLnNjb3BlTmFtZTtcbiAgICByZXR1cm4gY3JlYXRlU2NvcGUxO1xufVxuXG5cblxuXG5leHBvcnQgeyRjNTEyYzI3YWIwMmVmODk1JGV4cG9ydCRmZDQyZjUyZmQzYWUxMTA5IGFzIGNyZWF0ZUNvbnRleHQsICRjNTEyYzI3YWIwMmVmODk1JGV4cG9ydCQ1MGM3YjRlOWQ5ZjE5YzEgYXMgY3JlYXRlQ29udGV4dFNjb3BlfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-context/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dialog/dist/index.mjs": /*!******************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-dialog/dist/index.mjs ***! \******************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Close: () => (/* binding */ $5d3850c4d0b4e6c7$export$f39c2d165cd861fe),\n/* harmony export */ Content: () => (/* binding */ $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2),\n/* harmony export */ Description: () => (/* binding */ $5d3850c4d0b4e6c7$export$393edc798c47379d),\n/* harmony export */ Dialog: () => (/* binding */ $5d3850c4d0b4e6c7$export$3ddf2d174ce01153),\n/* harmony export */ DialogClose: () => (/* binding */ $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac),\n/* harmony export */ DialogContent: () => (/* binding */ $5d3850c4d0b4e6c7$export$b6d9565de1e068cf),\n/* harmony export */ DialogDescription: () => (/* binding */ $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5),\n/* harmony export */ DialogOverlay: () => (/* binding */ $5d3850c4d0b4e6c7$export$bd1d06c79be19e17),\n/* harmony export */ DialogPortal: () => (/* binding */ $5d3850c4d0b4e6c7$export$dad7c95542bacce0),\n/* harmony export */ DialogTitle: () => (/* binding */ $5d3850c4d0b4e6c7$export$16f7638e4a34b909),\n/* harmony export */ DialogTrigger: () => (/* binding */ $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88),\n/* harmony export */ Overlay: () => (/* binding */ $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff),\n/* harmony export */ Portal: () => (/* binding */ $5d3850c4d0b4e6c7$export$602eac185826482c),\n/* harmony export */ Root: () => (/* binding */ $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9),\n/* harmony export */ Title: () => (/* binding */ $5d3850c4d0b4e6c7$export$f99233281efd08a0),\n/* harmony export */ Trigger: () => (/* binding */ $5d3850c4d0b4e6c7$export$41fb9f06171c75f4),\n/* harmony export */ WarningProvider: () => (/* binding */ $5d3850c4d0b4e6c7$export$69b62a49393917d6),\n/* harmony export */ createDialogScope: () => (/* binding */ $5d3850c4d0b4e6c7$export$cc702773b8ea3e41)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DIALOG_NAME = 'Dialog';\nconst [$5d3850c4d0b4e6c7$var$createDialogContext, $5d3850c4d0b4e6c7$export$cc702773b8ea3e41] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst [$5d3850c4d0b4e6c7$var$DialogProvider, $5d3850c4d0b4e6c7$var$useDialogContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 = (props)=>{\n const { __scopeDialog: __scopeDialog , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = true } = props;\n const triggerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const contentRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogProvider, {\n scope: __scopeDialog,\n triggerRef: triggerRef,\n contentRef: contentRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n titleId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n descriptionId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n open: open,\n onOpenChange: setOpen,\n onOpenToggle: (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ]),\n modal: modal\n }, children);\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$3ddf2d174ce01153, {\n displayName: $5d3850c4d0b4e6c7$var$DIALOG_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TRIGGER_NAME = 'DialogTrigger';\nconst $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...triggerProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.triggerRef);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$2e1e1122cf0cba88, {\n displayName: $5d3850c4d0b4e6c7$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$PORTAL_NAME = 'DialogPortal';\nconst [$5d3850c4d0b4e6c7$var$PortalProvider, $5d3850c4d0b4e6c7$var$usePortalContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, {\n forceMount: undefined\n});\nconst $5d3850c4d0b4e6c7$export$dad7c95542bacce0 = (props)=>{\n const { __scopeDialog: __scopeDialog , forceMount: forceMount , children: children , container: container } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, __scopeDialog);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$PortalProvider, {\n scope: __scopeDialog,\n forceMount: forceMount\n }, react__WEBPACK_IMPORTED_MODULE_1__.Children.map(children, (child)=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container: container\n }, child))\n ));\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$dad7c95542bacce0, {\n displayName: $5d3850c4d0b4e6c7$var$PORTAL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$OVERLAY_NAME = 'DialogOverlay';\nconst $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogOverlayImpl, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, overlayProps, {\n ref: forwardedRef\n }))) : null;\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$bd1d06c79be19e17, {\n displayName: $5d3850c4d0b4e6c7$var$OVERLAY_NAME\n});\nconst $5d3850c4d0b4e6c7$var$DialogOverlayImpl = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, __scopeDialog);\n return(/*#__PURE__*/ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__.Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ]\n }, /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.div, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, overlayProps, {\n ref: forwardedRef // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n ,\n style: {\n pointerEvents: 'auto',\n ...overlayProps.style\n }\n }))));\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CONTENT_NAME = 'DialogContent';\nconst $5d3850c4d0b4e6c7$export$b6d9565de1e068cf = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open\n }, context.modal ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogContentModal, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, contentProps, {\n ref: forwardedRef\n })) : /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogContentNonModal, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, contentProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$b6d9565de1e068cf, {\n displayName: $5d3850c4d0b4e6c7$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentModal = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const contentRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.contentRef, contentRef); // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_12__.hideOthers)(content);\n }, []);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogContentImpl, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n ref: composedRefs // we make sure focus isn't trapped once `DialogContent` has been closed\n ,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context$triggerRef$c;\n event.preventDefault();\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick; // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n }) // When focus is trapped, a `focusout` event may still happen.\n ,\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault()\n )\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentNonModal = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n const hasPointerDownOutsideRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5d3850c4d0b4e6c7$var$DialogContentImpl, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') hasPointerDownOutsideRef.current = true;\n } // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger) event.preventDefault(); // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) event.preventDefault();\n }\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentImpl = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, __scopeDialog);\n const contentRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, contentRef); // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (beacuse of the `Portal`)\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards)();\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__.DismissableLayer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, contentProps, {\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n }))), false);\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TITLE_NAME = 'DialogTitle';\nconst $5d3850c4d0b4e6c7$export$16f7638e4a34b909 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...titleProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TITLE_NAME, __scopeDialog);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.h2, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n id: context.titleId\n }, titleProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$16f7638e4a34b909, {\n displayName: $5d3850c4d0b4e6c7$var$TITLE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME = 'DialogDescription';\nconst $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...descriptionProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$DESCRIPTION_NAME, __scopeDialog);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.p, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n id: context.descriptionId\n }, descriptionProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$94e94c2ec2c954d5, {\n displayName: $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CLOSE_NAME = 'DialogClose';\nconst $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...closeProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CLOSE_NAME, __scopeDialog);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n type: \"button\"\n }, closeProps, {\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false)\n )\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac, {\n displayName: $5d3850c4d0b4e6c7$var$CLOSE_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ function $5d3850c4d0b4e6c7$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME = 'DialogTitleWarning';\nconst [$5d3850c4d0b4e6c7$export$69b62a49393917d6, $5d3850c4d0b4e6c7$var$useWarningContext] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContext)($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME, {\n contentName: $5d3850c4d0b4e6c7$var$CONTENT_NAME,\n titleName: $5d3850c4d0b4e6c7$var$TITLE_NAME,\n docsSlug: 'dialog'\n});\nconst $5d3850c4d0b4e6c7$var$TitleWarning = ({ titleId: titleId })=>{\n const titleWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) throw new Error(MESSAGE);\n }\n }, [\n MESSAGE,\n titleId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\nconst $5d3850c4d0b4e6c7$var$DescriptionWarning = ({ contentRef: contentRef , descriptionId: descriptionId })=>{\n const descriptionWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _contentRef$current;\n const describedById = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.getAttribute('aria-describedby'); // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 = $5d3850c4d0b4e6c7$export$3ddf2d174ce01153;\nconst $5d3850c4d0b4e6c7$export$41fb9f06171c75f4 = $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88;\nconst $5d3850c4d0b4e6c7$export$602eac185826482c = $5d3850c4d0b4e6c7$export$dad7c95542bacce0;\nconst $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff = $5d3850c4d0b4e6c7$export$bd1d06c79be19e17;\nconst $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 = $5d3850c4d0b4e6c7$export$b6d9565de1e068cf;\nconst $5d3850c4d0b4e6c7$export$f99233281efd08a0 = $5d3850c4d0b4e6c7$export$16f7638e4a34b909;\nconst $5d3850c4d0b4e6c7$export$393edc798c47379d = $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5;\nconst $5d3850c4d0b4e6c7$export$f39c2d165cd861fe = $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0Y7QUFDNEo7QUFDMUo7QUFDRDtBQUN3QztBQUN0RTtBQUNrRDtBQUNiO0FBQ2xCO0FBQ2I7QUFDTTtBQUNHO0FBQ2E7QUFDYjtBQUNaO0FBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCekQ7QUFDQTtBQUNBO0FBQ0EsK0ZBQStGLDJFQUF5QjtBQUN4SDtBQUNBO0FBQ0EsWUFBWSxvSkFBb0o7QUFDaEssdUJBQXVCLDZDQUFhO0FBQ3BDLHVCQUF1Qiw2Q0FBYTtBQUNwQyxvQ0FBb0MsNEZBQTJCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5QkFBeUIsb0RBQW9CO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5REFBWTtBQUMvQixpQkFBaUIseURBQVk7QUFDN0IsdUJBQXVCLHlEQUFZO0FBQ25DO0FBQ0E7QUFDQSxzQkFBc0Isa0RBQWtCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxpREFBaUI7QUFDakYsWUFBWSxpREFBaUQ7QUFDN0Q7QUFDQSwrQkFBK0IsNkVBQXNCO0FBQ3JELHlCQUF5QixvREFBb0IsQ0FBQyxnRUFBZ0IsU0FBUyw4RUFBb0M7QUFDM0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLGlCQUFpQix5RUFBMkI7QUFDNUMsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxZQUFZLHFHQUFxRztBQUNqSDtBQUNBLHlCQUF5QixvREFBb0I7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBSzBnQztBQUMxZ0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1kaWFsb2cvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IHt1c2VSZWYgYXMgJDY3VUhtJHVzZVJlZiwgY3JlYXRlRWxlbWVudCBhcyAkNjdVSG0kY3JlYXRlRWxlbWVudCwgdXNlQ2FsbGJhY2sgYXMgJDY3VUhtJHVzZUNhbGxiYWNrLCBmb3J3YXJkUmVmIGFzICQ2N1VIbSRmb3J3YXJkUmVmLCBDaGlsZHJlbiBhcyAkNjdVSG0kQ2hpbGRyZW4sIHVzZUVmZmVjdCBhcyAkNjdVSG0kdXNlRWZmZWN0LCBGcmFnbWVudCBhcyAkNjdVSG0kRnJhZ21lbnR9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtjb21wb3NlRXZlbnRIYW5kbGVycyBhcyAkNjdVSG0kY29tcG9zZUV2ZW50SGFuZGxlcnN9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XG5pbXBvcnQge3VzZUNvbXBvc2VkUmVmcyBhcyAkNjdVSG0kdXNlQ29tcG9zZWRSZWZzfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHtjcmVhdGVDb250ZXh0U2NvcGUgYXMgJDY3VUhtJGNyZWF0ZUNvbnRleHRTY29wZSwgY3JlYXRlQ29udGV4dCBhcyAkNjdVSG0kY3JlYXRlQ29udGV4dH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XG5pbXBvcnQge3VzZUlkIGFzICQ2N1VIbSR1c2VJZH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1pZFwiO1xuaW1wb3J0IHt1c2VDb250cm9sbGFibGVTdGF0ZSBhcyAkNjdVSG0kdXNlQ29udHJvbGxhYmxlU3RhdGV9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xuaW1wb3J0IHtEaXNtaXNzYWJsZUxheWVyIGFzICQ2N1VIbSREaXNtaXNzYWJsZUxheWVyfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XG5pbXBvcnQge0ZvY3VzU2NvcGUgYXMgJDY3VUhtJEZvY3VzU2NvcGV9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGVcIjtcbmltcG9ydCB7UG9ydGFsIGFzICQ2N1VIbSRQb3J0YWx9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcG9ydGFsXCI7XG5pbXBvcnQge1ByZXNlbmNlIGFzICQ2N1VIbSRQcmVzZW5jZX0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmVzZW5jZVwiO1xuaW1wb3J0IHtQcmltaXRpdmUgYXMgJDY3VUhtJFByaW1pdGl2ZX0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7dXNlRm9jdXNHdWFyZHMgYXMgJDY3VUhtJHVzZUZvY3VzR3VhcmRzfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkc1wiO1xuaW1wb3J0IHtSZW1vdmVTY3JvbGwgYXMgJDY3VUhtJFJlbW92ZVNjcm9sbH0gZnJvbSBcInJlYWN0LXJlbW92ZS1zY3JvbGxcIjtcbmltcG9ydCB7aGlkZU90aGVycyBhcyAkNjdVSG0kaGlkZU90aGVyc30gZnJvbSBcImFyaWEtaGlkZGVuXCI7XG5pbXBvcnQge1Nsb3QgYXMgJDY3VUhtJFNsb3R9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkRElBTE9HX05BTUUgPSAnRGlhbG9nJztcbmNvbnN0IFskNWQzODUwYzRkMGI0ZTZjNyR2YXIkY3JlYXRlRGlhbG9nQ29udGV4dCwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGNjNzAyNzczYjhlYTNlNDFdID0gJDY3VUhtJGNyZWF0ZUNvbnRleHRTY29wZSgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkRElBTE9HX05BTUUpO1xuY29uc3QgWyQ1ZDM4NTBjNGQwYjRlNmM3JHZhciREaWFsb2dQcm92aWRlciwgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZURpYWxvZ0NvbnRleHRdID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJGNyZWF0ZURpYWxvZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERJQUxPR19OQU1FKTtcbmNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQzZGRmMmQxNzRjZTAxMTUzID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZzogX19zY29wZURpYWxvZyAsIGNoaWxkcmVuOiBjaGlsZHJlbiAsIG9wZW46IG9wZW5Qcm9wICwgZGVmYXVsdE9wZW46IGRlZmF1bHRPcGVuICwgb25PcGVuQ2hhbmdlOiBvbk9wZW5DaGFuZ2UgLCBtb2RhbDogbW9kYWwgPSB0cnVlICB9ID0gcHJvcHM7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9ICQ2N1VIbSR1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGVudFJlZiA9ICQ2N1VIbSR1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSAkNjdVSG0kdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICAgICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgICAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlXG4gICAgfSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERpYWxvZ1Byb3ZpZGVyLCB7XG4gICAgICAgIHNjb3BlOiBfX3Njb3BlRGlhbG9nLFxuICAgICAgICB0cmlnZ2VyUmVmOiB0cmlnZ2VyUmVmLFxuICAgICAgICBjb250ZW50UmVmOiBjb250ZW50UmVmLFxuICAgICAgICBjb250ZW50SWQ6ICQ2N1VIbSR1c2VJZCgpLFxuICAgICAgICB0aXRsZUlkOiAkNjdVSG0kdXNlSWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb25JZDogJDY3VUhtJHVzZUlkKCksXG4gICAgICAgIG9wZW46IG9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogc2V0T3BlbixcbiAgICAgICAgb25PcGVuVG9nZ2xlOiAkNjdVSG0kdXNlQ2FsbGJhY2soKCk9PnNldE9wZW4oKHByZXZPcGVuKT0+IXByZXZPcGVuXG4gICAgICAgICAgICApXG4gICAgICAgICwgW1xuICAgICAgICAgICAgc2V0T3BlblxuICAgICAgICBdKSxcbiAgICAgICAgbW9kYWw6IG1vZGFsXG4gICAgfSwgY2hpbGRyZW4pO1xufTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkM2RkZjJkMTc0Y2UwMTE1Mywge1xuICAgIGRpc3BsYXlOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkRElBTE9HX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVFJJR0dFUl9OQU1FID0gJ0RpYWxvZ1RyaWdnZXInO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDJlMWUxMTIyY2YwY2JhODggPSAvKiNfX1BVUkVfXyovICQ2N1VIbSRmb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKT0+e1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZzogX19zY29wZURpYWxvZyAsIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VEaWFsb2dDb250ZXh0KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRUUklHR0VSX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbXBvc2VkVHJpZ2dlclJlZiA9ICQ2N1VIbSR1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0LnRyaWdnZXJSZWYpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ2N1VIbSRjcmVhdGVFbGVtZW50KCQ2N1VIbSRQcmltaXRpdmUuYnV0dG9uLCAkNjdVSG0kYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe1xuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJkaWFsb2dcIixcbiAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGNvbnRleHQub3BlbixcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGNvbnRleHQuY29udGVudElkLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogJDVkMzg1MGM0ZDBiNGU2YzckdmFyJGdldFN0YXRlKGNvbnRleHQub3BlbilcbiAgICB9LCB0cmlnZ2VyUHJvcHMsIHtcbiAgICAgICAgcmVmOiBjb21wb3NlZFRyaWdnZXJSZWYsXG4gICAgICAgIG9uQ2xpY2s6ICQ2N1VIbSRjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBjb250ZXh0Lm9uT3BlblRvZ2dsZSlcbiAgICB9KSk7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkMmUxZTExMjJjZjBjYmE4OCwge1xuICAgIGRpc3BsYXlOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVFJJR0dFUl9OQU1FXG59KTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1BvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkUE9SVEFMX05BTUUgPSAnRGlhbG9nUG9ydGFsJztcbmNvbnN0IFskNWQzODUwYzRkMGI0ZTZjNyR2YXIkUG9ydGFsUHJvdmlkZXIsICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VQb3J0YWxDb250ZXh0XSA9ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRjcmVhdGVEaWFsb2dDb250ZXh0KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRQT1JUQUxfTkFNRSwge1xuICAgIGZvcmNlTW91bnQ6IHVuZGVmaW5lZFxufSk7XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkZGFkN2M5NTU0MmJhY2NlMCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2c6IF9fc2NvcGVEaWFsb2cgLCBmb3JjZU1vdW50OiBmb3JjZU1vdW50ICwgY2hpbGRyZW46IGNoaWxkcmVuICwgY29udGFpbmVyOiBjb250YWluZXIgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZURpYWxvZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJFBPUlRBTF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkUG9ydGFsUHJvdmlkZXIsIHtcbiAgICAgICAgc2NvcGU6IF9fc2NvcGVEaWFsb2csXG4gICAgICAgIGZvcmNlTW91bnQ6IGZvcmNlTW91bnRcbiAgICB9LCAkNjdVSG0kQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpPT4vKiNfX1BVUkVfXyovICQ2N1VIbSRjcmVhdGVFbGVtZW50KCQ2N1VIbSRQcmVzZW5jZSwge1xuICAgICAgICAgICAgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW5cbiAgICAgICAgfSwgLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNjdVSG0kUG9ydGFsLCB7XG4gICAgICAgICAgICBhc0NoaWxkOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbmVyOiBjb250YWluZXJcbiAgICAgICAgfSwgY2hpbGQpKVxuICAgICkpO1xufTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkZGFkN2M5NTU0MmJhY2NlMCwge1xuICAgIGRpc3BsYXlOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkUE9SVEFMX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nT3ZlcmxheVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkT1ZFUkxBWV9OQU1FID0gJ0RpYWxvZ092ZXJsYXknO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGJkMWQwNmM3OWJlMTllMTcgPSAvKiNfX1BVUkVfXyovICQ2N1VIbSRmb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKT0+e1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlUG9ydGFsQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkT1ZFUkxBWV9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCB7IGZvcmNlTW91bnQ6IGZvcmNlTW91bnQgPSBwb3J0YWxDb250ZXh0LmZvcmNlTW91bnQgLCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlRGlhbG9nQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkT1ZFUkxBWV9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gY29udGV4dC5tb2RhbCA/IC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJFByZXNlbmNlLCB7XG4gICAgICAgIHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVuXG4gICAgfSwgLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkRGlhbG9nT3ZlcmxheUltcGwsICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7fSwgb3ZlcmxheVByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfSkpKSA6IG51bGw7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkYmQxZDA2Yzc5YmUxOWUxNywge1xuICAgIGRpc3BsYXlOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkT1ZFUkxBWV9OQU1FXG59KTtcbmNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciREaWFsb2dPdmVybGF5SW1wbCA9IC8qI19fUFVSRV9fKi8gJDY3VUhtJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nOiBfX3Njb3BlRGlhbG9nICwgLi4ub3ZlcmxheVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZURpYWxvZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJE9WRVJMQVlfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gLy8gTWFrZSBzdXJlIGBDb250ZW50YCBpcyBzY3JvbGxhYmxlIGV2ZW4gd2hlbiBpdCBkb2Vzbid0IGxpdmUgaW5zaWRlIGBSZW1vdmVTY3JvbGxgXG4gICAgLy8gaWUuIHdoZW4gYE92ZXJsYXlgIGFuZCBgQ29udGVudGAgYXJlIHNpYmxpbmdzXG4gICAgJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJFJlbW92ZVNjcm9sbCwge1xuICAgICAgICBhczogJDY3VUhtJFNsb3QsXG4gICAgICAgIGFsbG93UGluY2hab29tOiB0cnVlLFxuICAgICAgICBzaGFyZHM6IFtcbiAgICAgICAgICAgIGNvbnRleHQuY29udGVudFJlZlxuICAgICAgICBdXG4gICAgfSwgLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNjdVSG0kUHJpbWl0aXZlLmRpdiwgJDY3VUhtJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHtcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRnZXRTdGF0ZShjb250ZXh0Lm9wZW4pXG4gICAgfSwgb3ZlcmxheVByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmIC8vIFdlIHJlLWVuYWJsZSBwb2ludGVyLWV2ZW50cyBwcmV2ZW50ZWQgYnkgYERpYWxvZy5Db250ZW50YCB0byBhbGxvdyBzY3JvbGxpbmcgdGhlIG92ZXJsYXkuXG4gICAgICAgICxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdhdXRvJyxcbiAgICAgICAgICAgIC4uLm92ZXJsYXlQcm9wcy5zdHlsZVxuICAgICAgICB9XG4gICAgfSkpKSk7XG59KTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ0NvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENPTlRFTlRfTkFNRSA9ICdEaWFsb2dDb250ZW50JztcbmNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiNmQ5NTY1ZGUxZTA2OGNmID0gLyojX19QVVJFX18qLyAkNjdVSG0kZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCBwb3J0YWxDb250ZXh0ID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZVBvcnRhbENvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50OiBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50ICwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZURpYWxvZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJFByZXNlbmNlLCB7XG4gICAgICAgIHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVuXG4gICAgfSwgY29udGV4dC5tb2RhbCA/IC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERpYWxvZ0NvbnRlbnRNb2RhbCwgJDY3VUhtJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHt9LCBjb250ZW50UHJvcHMsIHtcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICB9KSkgOiAvKiNfX1BVUkVfXyovICQ2N1VIbSRjcmVhdGVFbGVtZW50KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciREaWFsb2dDb250ZW50Tm9uTW9kYWwsICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7fSwgY29udGVudFByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfSkpKTtcbn0pO1xuLyojX19QVVJFX18qLyBPYmplY3QuYXNzaWduKCQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiNmQ5NTY1ZGUxZTA2OGNmLCB7XG4gICAgZGlzcGxheU5hbWU6ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRDT05URU5UX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkRGlhbG9nQ29udGVudE1vZGFsID0gLyojX19QVVJFX18qLyAkNjdVSG0kZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCBjb250ZXh0ID0gJDVkMzg1MGM0ZDBiNGU2YzckdmFyJHVzZURpYWxvZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgY29udGVudFJlZiA9ICQ2N1VIbSR1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gJDY3VUhtJHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29udGVudFJlZiwgY29udGVudFJlZik7IC8vIGFyaWEtaGlkZSBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY29udGVudCAoYmV0dGVyIHN1cHBvcnRlZCBlcXVpdmFsZW50IHRvIHNldHRpbmcgYXJpYS1tb2RhbClcbiAgICAkNjdVSG0kdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmIChjb250ZW50KSByZXR1cm4gJDY3VUhtJGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ2N1VIbSRjcmVhdGVFbGVtZW50KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciREaWFsb2dDb250ZW50SW1wbCwgJDY3VUhtJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyAvLyB3ZSBtYWtlIHN1cmUgZm9jdXMgaXNuJ3QgdHJhcHBlZCBvbmNlIGBEaWFsb2dDb250ZW50YCBoYXMgYmVlbiBjbG9zZWRcbiAgICAgICAgLFxuICAgICAgICB0cmFwRm9jdXM6IGNvbnRleHQub3BlbixcbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzOiAkNjdVSG0kY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbG9zZUF1dG9Gb2N1cywgKGV2ZW50KT0+e1xuICAgICAgICAgICAgdmFyIF9jb250ZXh0JHRyaWdnZXJSZWYkYztcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAoX2NvbnRleHQkdHJpZ2dlclJlZiRjID0gY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jb250ZXh0JHRyaWdnZXJSZWYkYyA9PT0gdm9pZCAwIHx8IF9jb250ZXh0JHRyaWdnZXJSZWYkYy5mb2N1cygpO1xuICAgICAgICB9KSxcbiAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU6ICQ2N1VIbSRjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duT3V0c2lkZSwgKGV2ZW50KT0+e1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50O1xuICAgICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlzUmlnaHRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAyIHx8IGN0cmxMZWZ0Q2xpY2s7IC8vIElmIHRoZSBldmVudCBpcyBhIHJpZ2h0LWNsaWNrLCB3ZSBzaG91bGRuJ3QgY2xvc2UgYmVjYXVzZVxuICAgICAgICAgICAgLy8gaXQgaXMgZWZmZWN0aXZlbHkgYXMgaWYgd2UgcmlnaHQtY2xpY2tlZCB0aGUgYE92ZXJsYXlgLlxuICAgICAgICAgICAgaWYgKGlzUmlnaHRDbGljaykgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSkgLy8gV2hlbiBmb2N1cyBpcyB0cmFwcGVkLCBhIGBmb2N1c291dGAgZXZlbnQgbWF5IHN0aWxsIGhhcHBlbi5cbiAgICAgICAgLFxuICAgICAgICBvbkZvY3VzT3V0c2lkZTogJDY3VUhtJGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXNPdXRzaWRlLCAoZXZlbnQpPT5ldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIClcbiAgICB9KSk7XG59KTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERpYWxvZ0NvbnRlbnROb25Nb2RhbCA9IC8qI19fUFVSRV9fKi8gJDY3VUhtJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgY29udGV4dCA9ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VEaWFsb2dDb250ZXh0KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmID0gJDY3VUhtJHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmID0gJDY3VUhtJHVzZVJlZihmYWxzZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERpYWxvZ0NvbnRlbnRJbXBsLCAkNjdVSG0kYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICB0cmFwRm9jdXM6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM6IGZhbHNlLFxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzOiAoZXZlbnQpPT57XG4gICAgICAgICAgICB2YXIgX3Byb3BzJG9uQ2xvc2VBdXRvRm9jO1xuICAgICAgICAgICAgKF9wcm9wcyRvbkNsb3NlQXV0b0ZvYyA9IHByb3BzLm9uQ2xvc2VBdXRvRm9jdXMpID09PSBudWxsIHx8IF9wcm9wcyRvbkNsb3NlQXV0b0ZvYyA9PT0gdm9pZCAwIHx8IF9wcm9wcyRvbkNsb3NlQXV0b0ZvYy5jYWxsKHByb3BzLCBldmVudCk7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2NvbnRleHQkdHJpZ2dlclJlZiRjMjtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQpIChfY29udGV4dCR0cmlnZ2VyUmVmJGMyID0gY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jb250ZXh0JHRyaWdnZXJSZWYkYzIgPT09IHZvaWQgMCB8fCBfY29udGV4dCR0cmlnZ2VyUmVmJGMyLmZvY3VzKCk7IC8vIEFsd2F5cyBwcmV2ZW50IGF1dG8gZm9jdXMgYmVjYXVzZSB3ZSBlaXRoZXIgZm9jdXMgbWFudWFsbHkgb3Igd2FudCB1c2VyIGFnZW50IGZvY3VzXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlOiAoZXZlbnQpPT57XG4gICAgICAgICAgICB2YXIgX3Byb3BzJG9uSW50ZXJhY3RPdXRzLCBfY29udGV4dCR0cmlnZ2VyUmVmJGMzO1xuICAgICAgICAgICAgKF9wcm9wcyRvbkludGVyYWN0T3V0cyA9IHByb3BzLm9uSW50ZXJhY3RPdXRzaWRlKSA9PT0gbnVsbCB8fCBfcHJvcHMkb25JbnRlcmFjdE91dHMgPT09IHZvaWQgMCB8fCBfcHJvcHMkb25JbnRlcmFjdE91dHMuY2FsbChwcm9wcywgZXZlbnQpO1xuICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50LnR5cGUgPT09ICdwb2ludGVyZG93bicpIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gLy8gUHJldmVudCBkaXNtaXNzaW5nIHdoZW4gY2xpY2tpbmcgdGhlIHRyaWdnZXIuXG4gICAgICAgICAgICAvLyBBcyB0aGUgdHJpZ2dlciBpcyBhbHJlYWR5IHNldHVwIHRvIGNsb3NlLCB3aXRob3V0IGRvaW5nIHNvIHdvdWxkXG4gICAgICAgICAgICAvLyBjYXVzZSBpdCB0byBjbG9zZSBhbmQgaW1tZWRpYXRlbHkgb3Blbi5cbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldElzVHJpZ2dlciA9IChfY29udGV4dCR0cmlnZ2VyUmVmJGMzID0gY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jb250ZXh0JHRyaWdnZXJSZWYkYzMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jb250ZXh0JHRyaWdnZXJSZWYkYzMuY29udGFpbnModGFyZ2V0KTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRJc1RyaWdnZXIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIE9uIFNhZmFyaSBpZiB0aGUgdHJpZ2dlciBpcyBpbnNpZGUgYSBjb250YWluZXIgd2l0aCB0YWJJbmRleD17MH0sIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgLy8gd2Ugd2lsbCBnZXQgdGhlIHBvaW50ZXIgZG93biBvdXRzaWRlIGV2ZW50IG9uIHRoZSB0cmlnZ2VyLCBidXQgdGhlbiBhIHN1YnNlcXVlbnRcbiAgICAgICAgICAgIC8vIGZvY3VzIG91dHNpZGUgZXZlbnQgb24gdGhlIGNvbnRhaW5lciwgd2UgaWdub3JlIGFueSBmb2N1cyBvdXRzaWRlIGV2ZW50IHdoZW4gd2UndmVcbiAgICAgICAgICAgIC8vIGFscmVhZHkgaGFkIGEgcG9pbnRlciBkb3duIG91dHNpZGUgZXZlbnQuXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLm9yaWdpbmFsRXZlbnQudHlwZSA9PT0gJ2ZvY3VzaW4nICYmIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfSkpO1xufSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciREaWFsb2dDb250ZW50SW1wbCA9IC8qI19fUFVSRV9fKi8gJDY3VUhtJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nOiBfX3Njb3BlRGlhbG9nICwgdHJhcEZvY3VzOiB0cmFwRm9jdXMgLCBvbk9wZW5BdXRvRm9jdXM6IG9uT3BlbkF1dG9Gb2N1cyAsIG9uQ2xvc2VBdXRvRm9jdXM6IG9uQ2xvc2VBdXRvRm9jdXMgLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlRGlhbG9nQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkQ09OVEVOVF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gJDY3VUhtJHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSAkNjdVSG0kdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGVudFJlZik7IC8vIE1ha2Ugc3VyZSB0aGUgd2hvbGUgdHJlZSBoYXMgZm9jdXMgZ3VhcmRzIGFzIG91ciBgRGlhbG9nYCB3aWxsIGJlXG4gICAgLy8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgRE9NIChiZWFjdXNlIG9mIHRoZSBgUG9ydGFsYClcbiAgICAkNjdVSG0kdXNlRm9jdXNHdWFyZHMoKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNjdVSG0kRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJEZvY3VzU2NvcGUsIHtcbiAgICAgICAgYXNDaGlsZDogdHJ1ZSxcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdHJhcHBlZDogdHJhcEZvY3VzLFxuICAgICAgICBvbk1vdW50QXV0b0ZvY3VzOiBvbk9wZW5BdXRvRm9jdXMsXG4gICAgICAgIG9uVW5tb3VudEF1dG9Gb2N1czogb25DbG9zZUF1dG9Gb2N1c1xuICAgIH0sIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJERpc21pc3NhYmxlTGF5ZXIsICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7XG4gICAgICAgIHJvbGU6IFwiZGlhbG9nXCIsXG4gICAgICAgIGlkOiBjb250ZXh0LmNvbnRlbnRJZCxcbiAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGNvbnRleHQuZGVzY3JpcHRpb25JZCxcbiAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogY29udGV4dC50aXRsZUlkLFxuICAgICAgICBcImRhdGEtc3RhdGVcIjogJDVkMzg1MGM0ZDBiNGU2YzckdmFyJGdldFN0YXRlKGNvbnRleHQub3BlbilcbiAgICB9LCBjb250ZW50UHJvcHMsIHtcbiAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgIG9uRGlzbWlzczogKCk9PmNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKVxuICAgIH0pKSksIGZhbHNlKTtcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nVGl0bGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJFRJVExFX05BTUUgPSAnRGlhbG9nVGl0bGUnO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDE2Zjc2MzhlNGEzNGI5MDkgPSAvKiNfX1BVUkVfXyovICQ2N1VIbSRmb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKT0+e1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZzogX19zY29wZURpYWxvZyAsIC4uLnRpdGxlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlRGlhbG9nQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJFByaW1pdGl2ZS5oMiwgJDY3VUhtJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHtcbiAgICAgICAgaWQ6IGNvbnRleHQudGl0bGVJZFxuICAgIH0sIHRpdGxlUHJvcHMsIHtcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICB9KSk7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkMTZmNzYzOGU0YTM0YjkwOSwge1xuICAgIGRpc3BsYXlOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfTkFNRVxufSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dEZXNjcmlwdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkREVTQ1JJUFRJT05fTkFNRSA9ICdEaWFsb2dEZXNjcmlwdGlvbic7XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkOTRlOTRjMmVjMmM5NTRkNSA9IC8qI19fUFVSRV9fKi8gJDY3VUhtJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nOiBfX3Njb3BlRGlhbG9nICwgLi4uZGVzY3JpcHRpb25Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VEaWFsb2dDb250ZXh0KCQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRERVNDUklQVElPTl9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAkNjdVSG0kY3JlYXRlRWxlbWVudCgkNjdVSG0kUHJpbWl0aXZlLnAsICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7XG4gICAgICAgIGlkOiBjb250ZXh0LmRlc2NyaXB0aW9uSWRcbiAgICB9LCBkZXNjcmlwdGlvblByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfSkpO1xufSk7XG4vKiNfX1BVUkVfXyovIE9iamVjdC5hc3NpZ24oJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDk0ZTk0YzJlYzJjOTU0ZDUsIHtcbiAgICBkaXNwbGF5TmFtZTogJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERFU0NSSVBUSU9OX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nQ2xvc2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENMT1NFX05BTUUgPSAnRGlhbG9nQ2xvc2UnO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGZiYTJmYjdjZDc4MWI3YWMgPSAvKiNfX1BVUkVfXyovICQ2N1VIbSRmb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKT0+e1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZzogX19zY29wZURpYWxvZyAsIC4uLmNsb3NlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlRGlhbG9nQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkQ0xPU0VfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDY3VUhtJGNyZWF0ZUVsZW1lbnQoJDY3VUhtJFByaW1pdGl2ZS5idXR0b24sICQ2N1VIbSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7XG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCJcbiAgICB9LCBjbG9zZVByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBvbkNsaWNrOiAkNjdVSG0kY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgKCk9PmNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKVxuICAgICAgICApXG4gICAgfSkpO1xufSk7XG4vKiNfX1BVUkVfXyovIE9iamVjdC5hc3NpZ24oJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGZiYTJmYjdjZDc4MWI3YWMsIHtcbiAgICBkaXNwbGF5TmFtZTogJDVkMzg1MGM0ZDBiNGU2YzckdmFyJENMT1NFX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBmdW5jdGlvbiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkZ2V0U3RhdGUob3Blbikge1xuICAgIHJldHVybiBvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCc7XG59XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfV0FSTklOR19OQU1FID0gJ0RpYWxvZ1RpdGxlV2FybmluZyc7XG5jb25zdCBbJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDY5YjYyYTQ5MzkzOTE3ZDYsICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VXYXJuaW5nQ29udGV4dF0gPSAkNjdVSG0kY3JlYXRlQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfV0FSTklOR19OQU1FLCB7XG4gICAgY29udGVudE5hbWU6ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciRDT05URU5UX05BTUUsXG4gICAgdGl0bGVOYW1lOiAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfTkFNRSxcbiAgICBkb2NzU2x1ZzogJ2RpYWxvZydcbn0pO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJFRpdGxlV2FybmluZyA9ICh7IHRpdGxlSWQ6IHRpdGxlSWQgIH0pPT57XG4gICAgY29uc3QgdGl0bGVXYXJuaW5nQ29udGV4dCA9ICQ1ZDM4NTBjNGQwYjRlNmM3JHZhciR1c2VXYXJuaW5nQ29udGV4dCgkNWQzODUwYzRkMGI0ZTZjNyR2YXIkVElUTEVfV0FSTklOR19OQU1FKTtcbiAgICBjb25zdCBNRVNTQUdFID0gYFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC5jb250ZW50TmFtZX1cXGAgcmVxdWlyZXMgYSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuXG5JZiB5b3Ugd2FudCB0byBoaWRlIHRoZSBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQudGl0bGVOYW1lfVxcYCwgeW91IGNhbiB3cmFwIGl0IHdpdGggb3VyIFZpc3VhbGx5SGlkZGVuIGNvbXBvbmVudC5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JhZGl4LXVpLmNvbS9wcmltaXRpdmVzL2RvY3MvY29tcG9uZW50cy8ke3RpdGxlV2FybmluZ0NvbnRleHQuZG9jc1NsdWd9YDtcbiAgICAkNjdVSG0kdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmICh0aXRsZUlkKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpdGxlSWQpO1xuICAgICAgICAgICAgaWYgKCFoYXNUaXRsZSkgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0UpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBNRVNTQUdFLFxuICAgICAgICB0aXRsZUlkXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59O1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERFU0NSSVBUSU9OX1dBUk5JTkdfTkFNRSA9ICdEaWFsb2dEZXNjcmlwdGlvbldhcm5pbmcnO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERlc2NyaXB0aW9uV2FybmluZyA9ICh7IGNvbnRlbnRSZWY6IGNvbnRlbnRSZWYgLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkICB9KT0+e1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQgPSAkNWQzODUwYzRkMGI0ZTZjNyR2YXIkdXNlV2FybmluZ0NvbnRleHQoJDVkMzg1MGM0ZDBiNGU2YzckdmFyJERFU0NSSVBUSU9OX1dBUk5JTkdfTkFNRSk7XG4gICAgY29uc3QgTUVTU0FHRSA9IGBXYXJuaW5nOiBNaXNzaW5nIFxcYERlc2NyaXB0aW9uXFxgIG9yIFxcYGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH1cXGAgZm9yIHske2Rlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQuY29udGVudE5hbWV9fS5gO1xuICAgICQ2N1VIbSR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgdmFyIF9jb250ZW50UmVmJGN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWQgPSAoX2NvbnRlbnRSZWYkY3VycmVudCA9IGNvbnRlbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2NvbnRlbnRSZWYkY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NvbnRlbnRSZWYkY3VycmVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTsgLy8gaWYgd2UgaGF2ZSBhbiBpZCBhbmQgdGhlIHVzZXIgaGFzbid0IHNldCBhcmlhLWRlc2NyaWJlZGJ5PXt1bmRlZmluZWR9XG4gICAgICAgIGlmIChkZXNjcmlwdGlvbklkICYmIGRlc2NyaWJlZEJ5SWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVzY3JpcHRpb25JZCk7XG4gICAgICAgICAgICBpZiAoIWhhc0Rlc2NyaXB0aW9uKSBjb25zb2xlLndhcm4oTUVTU0FHRSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIE1FU1NBR0UsXG4gICAgICAgIGNvbnRlbnRSZWYsXG4gICAgICAgIGRlc2NyaXB0aW9uSWRcbiAgICBdKTtcbiAgICByZXR1cm4gbnVsbDtcbn07XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQzZGRmMmQxNzRjZTAxMTUzO1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDQxZmI5ZjA2MTcxYzc1ZjQgPSAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkMmUxZTExMjJjZjBjYmE4ODtcbmNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQ2MDJlYWMxODU4MjY0ODJjID0gJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGRhZDdjOTU1NDJiYWNjZTA7XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkYzZmZGI4MzdiMDcwYjRmZiA9ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiZDFkMDZjNzliZTE5ZTE3O1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDdjNmUyYzAyMTU3YmI3ZDIgPSAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkYjZkOTU2NWRlMWUwNjhjZjtcbmNvbnN0ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRmOTkyMzMyODFlZmQwOGEwID0gJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDE2Zjc2MzhlNGEzNGI5MDk7XG5jb25zdCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkMzkzZWRjNzk4YzQ3Mzc5ZCA9ICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQ5NGU5NGMyZWMyYzk1NGQ1O1xuY29uc3QgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGYzOWMyZDE2NWNkODYxZmUgPSAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkZmJhMmZiN2NkNzgxYjdhYztcblxuXG5cblxuZXhwb3J0IHskNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkY2M3MDI3NzNiOGVhM2U0MSBhcyBjcmVhdGVEaWFsb2dTY29wZSwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDNkZGYyZDE3NGNlMDExNTMgYXMgRGlhbG9nLCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkMmUxZTExMjJjZjBjYmE4OCBhcyBEaWFsb2dUcmlnZ2VyLCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkZGFkN2M5NTU0MmJhY2NlMCBhcyBEaWFsb2dQb3J0YWwsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiZDFkMDZjNzliZTE5ZTE3IGFzIERpYWxvZ092ZXJsYXksICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiNmQ5NTY1ZGUxZTA2OGNmIGFzIERpYWxvZ0NvbnRlbnQsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQxNmY3NjM4ZTRhMzRiOTA5IGFzIERpYWxvZ1RpdGxlLCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkOTRlOTRjMmVjMmM5NTRkNSBhcyBEaWFsb2dEZXNjcmlwdGlvbiwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGZiYTJmYjdjZDc4MWI3YWMgYXMgRGlhbG9nQ2xvc2UsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCRiZTkyYjZmNWYwM2MwZmU5IGFzIFJvb3QsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQ0MWZiOWYwNjE3MWM3NWY0IGFzIFRyaWdnZXIsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQ2MDJlYWMxODU4MjY0ODJjIGFzIFBvcnRhbCwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGM2ZmRiODM3YjA3MGI0ZmYgYXMgT3ZlcmxheSwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDdjNmUyYzAyMTU3YmI3ZDIgYXMgQ29udGVudCwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JGY5OTIzMzI4MWVmZDA4YTAgYXMgVGl0bGUsICQ1ZDM4NTBjNGQwYjRlNmM3JGV4cG9ydCQzOTNlZGM3OThjNDczNzlkIGFzIERlc2NyaXB0aW9uLCAkNWQzODUwYzRkMGI0ZTZjNyRleHBvcnQkZjM5YzJkMTY1Y2Q4NjFmZSBhcyBDbG9zZSwgJDVkMzg1MGM0ZDBiNGU2YzckZXhwb3J0JDY5YjYyYTQ5MzkzOTE3ZDYgYXMgV2FybmluZ1Byb3ZpZGVyfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dialog/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs": /*!*****************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***! \*****************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ $5cb92bef7577960e$export$aecb2ddcb55c95be),\n/* harmony export */ DismissableLayer: () => (/* binding */ $5cb92bef7577960e$export$177fb62ff3ec1f22),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ $5cb92bef7577960e$export$4d5eb2109db14228),\n/* harmony export */ Root: () => (/* binding */ $5cb92bef7577960e$export$be92b6f5f03c0fe9)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';\nconst $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\nlet $5cb92bef7577960e$var$originalBodyPointerEvents;\nconst $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set()\n});\nconst $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n var _node$ownerDocument;\n const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, (node)=>setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)((event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!node1) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n return ()=>{\n if (!node1) return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handleUpdate = ()=>force({})\n ;\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)\n ;\n }, []);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, layerProps, {\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n displayName: $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$BRANCH_NAME = 'DismissableLayerBranch';\nconst $5cb92bef7577960e$export$4d5eb2109db14228 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($5cb92bef7577960e$var$DismissableLayerContext);\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ()=>{\n context.branches.delete(node);\n };\n }\n }, [\n context.branches\n ]);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n ref: composedRefs\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$4d5eb2109db14228, {\n displayName: $5cb92bef7577960e$var$BRANCH_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ /**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n const handleClickRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(()=>{});\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handlePointerDown = (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n function handleAndDispatchPointerDownOutsideEvent() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */ if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, {\n once: true\n });\n } else handleAndDispatchPointerDownOutsideEvent();\n } else // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */ const timerId = window.setTimeout(()=>{\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handleFocus = (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return ()=>ownerDocument.removeEventListener('focusin', handleFocus)\n ;\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true\n ,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail: detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n else target.dispatchEvent(event);\n}\nconst $5cb92bef7577960e$export$be92b6f5f03c0fe9 = $5cb92bef7577960e$export$177fb62ff3ec1f22;\nconst $5cb92bef7577960e$export$aecb2ddcb55c95be = $5cb92bef7577960e$export$4d5eb2109db14228;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBc0Y7QUFDb0s7QUFDbEs7QUFDbUQ7QUFDcEQ7QUFDRTtBQUNNOzs7Ozs7Ozs7QUFTL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0Usb0RBQW9CO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxnRUFBZ0UsaURBQWlCO0FBQ2pGO0FBQ0EsWUFBWSxrUUFBa1E7QUFDOVEsb0JBQW9CLGlEQUFpQjtBQUNyQyw2QkFBNkIsK0NBQWU7QUFDNUM7QUFDQSxzQkFBc0IsK0NBQWUsR0FBRztBQUN4Qyx5QkFBeUIsNkVBQXNCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLDRIQUE0SDtBQUM1SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLG9GQUF1QjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLGdEQUFnQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZ0RBQWdCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdEQUFnQjtBQUNwQix5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUJBQXlCLG9EQUFvQixDQUFDLGdFQUFnQixNQUFNLDhFQUFvQyxHQUFHO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULHdCQUF3Qix5RUFBMkI7QUFDbkQsdUJBQXVCLHlFQUEyQjtBQUNsRCw4QkFBOEIseUVBQTJCO0FBQ3pELEtBQUs7QUFDTCxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0UsaURBQWlCO0FBQ2pGLG9CQUFvQixpREFBaUI7QUFDckMsZ0JBQWdCLDZDQUFhO0FBQzdCLHlCQUF5Qiw2RUFBc0I7QUFDL0MsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHlCQUF5QixvREFBb0IsQ0FBQyxnRUFBZ0IsTUFBTSw4RUFBb0MsR0FBRztBQUMzRztBQUNBLEtBQUs7QUFDTCxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGdGQUFxQjtBQUMxRCx3Q0FBd0MsNkNBQWE7QUFDckQsMkJBQTJCLDZDQUFhLE9BQU87QUFDL0MsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixnRkFBcUI7QUFDcEQsc0NBQXNDLDZDQUFhO0FBQ25ELElBQUksZ0RBQWdCO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUYscUJBQXFCO0FBQzFHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTCxrQkFBa0Isc0ZBQWtDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUtvUDtBQUNwUCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvY21kay9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAka3F3cEgkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCB7Y3JlYXRlQ29udGV4dCBhcyAka3F3cEgkY3JlYXRlQ29udGV4dCwgZm9yd2FyZFJlZiBhcyAka3F3cEgkZm9yd2FyZFJlZiwgdXNlQ29udGV4dCBhcyAka3F3cEgkdXNlQ29udGV4dCwgdXNlU3RhdGUgYXMgJGtxd3BIJHVzZVN0YXRlLCB1c2VFZmZlY3QgYXMgJGtxd3BIJHVzZUVmZmVjdCwgY3JlYXRlRWxlbWVudCBhcyAka3F3cEgkY3JlYXRlRWxlbWVudCwgdXNlUmVmIGFzICRrcXdwSCR1c2VSZWZ9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtjb21wb3NlRXZlbnRIYW5kbGVycyBhcyAka3F3cEgkY29tcG9zZUV2ZW50SGFuZGxlcnN9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XG5pbXBvcnQge1ByaW1pdGl2ZSBhcyAka3F3cEgkUHJpbWl0aXZlLCBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQgYXMgJGtxd3BIJGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7dXNlQ29tcG9zZWRSZWZzIGFzICRrcXdwSCR1c2VDb21wb3NlZFJlZnN9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQge3VzZUNhbGxiYWNrUmVmIGFzICRrcXdwSCR1c2VDYWxsYmFja1JlZn0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5pbXBvcnQge3VzZUVzY2FwZUtleWRvd24gYXMgJGtxd3BIJHVzZUVzY2FwZUtleWRvd259IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duXCI7XG5cblxuXG5cblxuXG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlzbWlzc2FibGVMYXllclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkRElTTUlTU0FCTEVfTEFZRVJfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyJztcbmNvbnN0ICQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciRDT05URVhUX1VQREFURSA9ICdkaXNtaXNzYWJsZUxheWVyLnVwZGF0ZSc7XG5jb25zdCAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkUE9JTlRFUl9ET1dOX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5wb2ludGVyRG93bk91dHNpZGUnO1xuY29uc3QgJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJEZPQ1VTX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5mb2N1c091dHNpZGUnO1xubGV0ICQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciRvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzO1xuY29uc3QgJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJERpc21pc3NhYmxlTGF5ZXJDb250ZXh0ID0gLyojX19QVVJFX18qLyAka3F3cEgkY3JlYXRlQ29udGV4dCh7XG4gICAgbGF5ZXJzOiBuZXcgU2V0KCksXG4gICAgbGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQ6IG5ldyBTZXQoKSxcbiAgICBicmFuY2hlczogbmV3IFNldCgpXG59KTtcbmNvbnN0ICQ1Y2I5MmJlZjc1Nzc5NjBlJGV4cG9ydCQxNzdmYjYyZmYzZWMxZjIyID0gLyojX19QVVJFX18qLyAka3F3cEgkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgICBjb25zdCB7IGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50czogZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzID0gZmFsc2UgLCBvbkVzY2FwZUtleURvd246IG9uRXNjYXBlS2V5RG93biAsIG9uUG9pbnRlckRvd25PdXRzaWRlOiBvblBvaW50ZXJEb3duT3V0c2lkZSAsIG9uRm9jdXNPdXRzaWRlOiBvbkZvY3VzT3V0c2lkZSAsIG9uSW50ZXJhY3RPdXRzaWRlOiBvbkludGVyYWN0T3V0c2lkZSAsIG9uRGlzbWlzczogb25EaXNtaXNzICwgLi4ubGF5ZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9ICRrcXdwSCR1c2VDb250ZXh0KCQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciREaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gICAgY29uc3QgW25vZGUxLCBzZXROb2RlXSA9ICRrcXdwSCR1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlMSA9PT0gbnVsbCB8fCBub2RlMSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZTEub3duZXJEb2N1bWVudCkgIT09IG51bGwgJiYgX25vZGUkb3duZXJEb2N1bWVudCAhPT0gdm9pZCAwID8gX25vZGUkb3duZXJEb2N1bWVudCA6IGdsb2JhbFRoaXMgPT09IG51bGwgfHwgZ2xvYmFsVGhpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2xvYmFsVGhpcy5kb2N1bWVudDtcbiAgICBjb25zdCBbLCBmb3JjZV0gPSAka3F3cEgkdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9ICRrcXdwSCR1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSk9PnNldE5vZGUobm9kZSlcbiAgICApO1xuICAgIGNvbnN0IGxheWVycyA9IEFycmF5LmZyb20oY29udGV4dC5sYXllcnMpO1xuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbXG4gICAgICAgIC4uLmNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRcbiAgICBdLnNsaWNlKC0xKTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgY29uc3QgaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleCA9IGxheWVycy5pbmRleE9mKGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkKTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgY29uc3QgaW5kZXggPSBub2RlMSA/IGxheWVycy5pbmRleE9mKG5vZGUxKSA6IC0xO1xuICAgIGNvbnN0IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCA9IGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA+IDA7XG4gICAgY29uc3QgaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA9IGluZGV4ID49IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXg7XG4gICAgY29uc3QgcG9pbnRlckRvd25PdXRzaWRlID0gJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJHVzZVBvaW50ZXJEb3duT3V0c2lkZSgoZXZlbnQpPT57XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgY29uc3QgaXNQb2ludGVyRG93bk9uQnJhbmNoID0gW1xuICAgICAgICAgICAgLi4uY29udGV4dC5icmFuY2hlc1xuICAgICAgICBdLnNvbWUoKGJyYW5jaCk9PmJyYW5jaC5jb250YWlucyh0YXJnZXQpXG4gICAgICAgICk7XG4gICAgICAgIGlmICghaXNQb2ludGVyRXZlbnRzRW5hYmxlZCB8fCBpc1BvaW50ZXJEb3duT25CcmFuY2gpIHJldHVybjtcbiAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUgPT09IG51bGwgfHwgb25Qb2ludGVyRG93bk91dHNpZGUgPT09IHZvaWQgMCB8fCBvblBvaW50ZXJEb3duT3V0c2lkZShldmVudCk7XG4gICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlID09PSBudWxsIHx8IG9uSW50ZXJhY3RPdXRzaWRlID09PSB2b2lkIDAgfHwgb25JbnRlcmFjdE91dHNpZGUoZXZlbnQpO1xuICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIG9uRGlzbWlzcyA9PT0gbnVsbCB8fCBvbkRpc21pc3MgPT09IHZvaWQgMCB8fCBvbkRpc21pc3MoKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcbiAgICBjb25zdCBmb2N1c091dHNpZGUgPSAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkdXNlRm9jdXNPdXRzaWRlKChldmVudCk9PntcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBjb25zdCBpc0ZvY3VzSW5CcmFuY2ggPSBbXG4gICAgICAgICAgICAuLi5jb250ZXh0LmJyYW5jaGVzXG4gICAgICAgIF0uc29tZSgoYnJhbmNoKT0+YnJhbmNoLmNvbnRhaW5zKHRhcmdldClcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGlzRm9jdXNJbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgICBvbkZvY3VzT3V0c2lkZSA9PT0gbnVsbCB8fCBvbkZvY3VzT3V0c2lkZSA9PT0gdm9pZCAwIHx8IG9uRm9jdXNPdXRzaWRlKGV2ZW50KTtcbiAgICAgICAgb25JbnRlcmFjdE91dHNpZGUgPT09IG51bGwgfHwgb25JbnRlcmFjdE91dHNpZGUgPT09IHZvaWQgMCB8fCBvbkludGVyYWN0T3V0c2lkZShldmVudCk7XG4gICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzID09PSBudWxsIHx8IG9uRGlzbWlzcyA9PT0gdm9pZCAwIHx8IG9uRGlzbWlzcygpO1xuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuICAgICRrcXdwSCR1c2VFc2NhcGVLZXlkb3duKChldmVudCk9PntcbiAgICAgICAgY29uc3QgaXNIaWdoZXN0TGF5ZXIgPSBpbmRleCA9PT0gY29udGV4dC5sYXllcnMuc2l6ZSAtIDE7XG4gICAgICAgIGlmICghaXNIaWdoZXN0TGF5ZXIpIHJldHVybjtcbiAgICAgICAgb25Fc2NhcGVLZXlEb3duID09PSBudWxsIHx8IG9uRXNjYXBlS2V5RG93biA9PT0gdm9pZCAwIHx8IG9uRXNjYXBlS2V5RG93bihldmVudCk7XG4gICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJiBvbkRpc21pc3MpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBvbkRpc21pc3MoKTtcbiAgICAgICAgfVxuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuICAgICRrcXdwSCR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFub2RlMSkgcmV0dXJuO1xuICAgICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzKSB7XG4gICAgICAgICAgICBpZiAoY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMgPSBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cztcbiAgICAgICAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuYWRkKG5vZGUxKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LmxheWVycy5hZGQobm9kZTEpO1xuICAgICAgICAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzICYmIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMSkgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cztcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIG5vZGUxLFxuICAgICAgICBvd25lckRvY3VtZW50LFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICAgIGNvbnRleHRcbiAgICBdKTtcbiAgICAvKipcbiAgICogV2UgcHVycG9zZWZ1bGx5IHByZXZlbnQgY29tYmluaW5nIHRoaXMgZWZmZWN0IHdpdGggdGhlIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIGVmZmVjdFxuICAgKiBiZWNhdXNlIGEgY2hhbmdlIHRvIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIHdvdWxkIHJlbW92ZSB0aGlzIGxheWVyIGZyb20gdGhlIHN0YWNrXG4gICAqIGFuZCBhZGQgaXQgdG8gdGhlIGVuZCBhZ2FpbiBzbyB0aGUgbGF5ZXJpbmcgb3JkZXIgd291bGRuJ3QgYmUgX2NyZWF0aW9uIG9yZGVyXy5cbiAgICogV2Ugb25seSB3YW50IHRoZW0gdG8gYmUgcmVtb3ZlZCBmcm9tIGNvbnRleHQgc3RhY2tzIHdoZW4gdW5tb3VudGVkLlxuICAgKi8gJGtxd3BIJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGlmICghbm9kZTEpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRleHQubGF5ZXJzLmRlbGV0ZShub2RlMSk7XG4gICAgICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLmRlbGV0ZShub2RlMSk7XG4gICAgICAgICAgICAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIG5vZGUxLFxuICAgICAgICBjb250ZXh0XG4gICAgXSk7XG4gICAgJGtxd3BIJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBoYW5kbGVVcGRhdGUgPSAoKT0+Zm9yY2Uoe30pXG4gICAgICAgIDtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigkNWNiOTJiZWY3NTc3OTYwZSR2YXIkQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgICAgIHJldHVybiAoKT0+ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigkNWNiOTJiZWY3NTc3OTYwZSR2YXIkQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSlcbiAgICAgICAgO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAka3F3cEgkY3JlYXRlRWxlbWVudCgka3F3cEgkUHJpbWl0aXZlLmRpdiwgJGtxd3BIJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHt9LCBsYXllclByb3BzLCB7XG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogaXNCb2R5UG9pbnRlckV2ZW50c0Rpc2FibGVkID8gaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA/ICdhdXRvJyA6ICdub25lJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlXG4gICAgICAgIH0sXG4gICAgICAgIG9uRm9jdXNDYXB0dXJlOiAka3F3cEgkY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c0NhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkZvY3VzQ2FwdHVyZSksXG4gICAgICAgIG9uQmx1ckNhcHR1cmU6ICRrcXdwSCRjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXJDYXB0dXJlLCBmb2N1c091dHNpZGUub25CbHVyQ2FwdHVyZSksXG4gICAgICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiAka3F3cEgkY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyRG93bkNhcHR1cmUsIHBvaW50ZXJEb3duT3V0c2lkZS5vblBvaW50ZXJEb3duQ2FwdHVyZSlcbiAgICB9KSk7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkMTc3ZmI2MmZmM2VjMWYyMiwge1xuICAgIGRpc3BsYXlOYW1lOiAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkRElTTUlTU0FCTEVfTEFZRVJfTkFNRVxufSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaXNtaXNzYWJsZUxheWVyQnJhbmNoXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciRCUkFOQ0hfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyQnJhbmNoJztcbmNvbnN0ICQ1Y2I5MmJlZjc1Nzc5NjBlJGV4cG9ydCQ0ZDVlYjIxMDlkYjE0MjI4ID0gLyojX19QVVJFX18qLyAka3F3cEgkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCBjb250ZXh0ID0gJGtxd3BIJHVzZUNvbnRleHQoJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJERpc21pc3NhYmxlTGF5ZXJDb250ZXh0KTtcbiAgICBjb25zdCByZWYgPSAka3F3cEgkdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9ICRrcXdwSCR1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgICRrcXdwSCR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgY29udGV4dC5icmFuY2hlcy5hZGQobm9kZSk7XG4gICAgICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJyYW5jaGVzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXNcbiAgICBdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAka3F3cEgkY3JlYXRlRWxlbWVudCgka3F3cEgkUHJpbWl0aXZlLmRpdiwgJGtxd3BIJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICByZWY6IGNvbXBvc2VkUmVmc1xuICAgIH0pKTtcbn0pO1xuLyojX19QVVJFX18qLyBPYmplY3QuYXNzaWduKCQ1Y2I5MmJlZjc1Nzc5NjBlJGV4cG9ydCQ0ZDVlYjIxMDlkYjE0MjI4LCB7XG4gICAgZGlzcGxheU5hbWU6ICQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciRCUkFOQ0hfTkFNRVxufSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIC8qKlxuICogTGlzdGVucyBmb3IgYHBvaW50ZXJkb3duYCBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS4gV2UgdXNlIGBwb2ludGVyZG93bmAgcmF0aGVyIHRoYW4gYHBvaW50ZXJ1cGBcbiAqIHRvIG1pbWljIGxheWVyIGRpc21pc3NpbmcgYmVoYXZpb3VyIHByZXNlbnQgaW4gT1MuXG4gKiBSZXR1cm5zIHByb3BzIHRvIHBhc3MgdG8gdGhlIG5vZGUgd2Ugd2FudCB0byBjaGVjayBmb3Igb3V0c2lkZSBldmVudHMuXG4gKi8gZnVuY3Rpb24gJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJHVzZVBvaW50ZXJEb3duT3V0c2lkZShvblBvaW50ZXJEb3duT3V0c2lkZSwgb3duZXJEb2N1bWVudCA9IGdsb2JhbFRoaXMgPT09IG51bGwgfHwgZ2xvYmFsVGhpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2xvYmFsVGhpcy5kb2N1bWVudCkge1xuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9ICRrcXdwSCR1c2VDYWxsYmFja1JlZihvblBvaW50ZXJEb3duT3V0c2lkZSk7XG4gICAgY29uc3QgaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmID0gJGtxd3BIJHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tSZWYgPSAka3F3cEgkdXNlUmVmKCgpPT57fSk7XG4gICAgJGtxd3BIJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IChldmVudCk9PntcbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREZXRhaWwgPSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCkge1xuICAgICAgICAgICAgICAgICAgICAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudCgkNWNiOTJiZWY3NTc3OTYwZSR2YXIkUE9JTlRFUl9ET1dOX09VVFNJREUsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NyZXRlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICogT24gdG91Y2ggZGV2aWNlcywgd2UgbmVlZCB0byB3YWl0IGZvciBhIGNsaWNrIGV2ZW50IGJlY2F1c2UgYnJvd3NlcnMgaW1wbGVtZW50XG4gICAgICAgICAqIGEgfjM1MG1zIGRlbGF5IGJldHdlZW4gdGhlIHRpbWUgdGhlIHVzZXIgc3RvcHMgdG91Y2hpbmcgdGhlIGRpc3BsYXkgYW5kIHdoZW4gdGhlXG4gICAgICAgICAqIGJyb3dzZXIgZXhlY3V0cmVzIGV2ZW50cy4gV2UgbmVlZCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVhY3RpdmF0ZSBwb2ludGVyLWV2ZW50cyB3aXRoaW5cbiAgICAgICAgICogdGhpcyB0aW1lZnJhbWUgb3RoZXJ3aXNlIHRoZSBicm93c2VyIG1heSBleGVjdXRlIGV2ZW50cyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gcHJldmVudGVkLlxuICAgICAgICAgKlxuICAgICAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYWxzbyBsZXRzIHVzIGRlYWwgYXV0b21hdGljYWxseSB3aXRoIGNhbmNlbGxhdGlvbnMgd2hlbiBhIGNsaWNrIGV2ZW50XG4gICAgICAgICAqIGlzbid0IHJhaXNlZCBiZWNhdXNlIHRoZSBwYWdlIHdhcyBjb25zaWRlcmVkIHNjcm9sbGVkL2RyYWctc2Nyb2xsZWQsIGxvbmctcHJlc3NlZCwgZXRjLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIGlzIHdoeSB3ZSBhbHNvIGNvbnRpbnVvdXNseSByZW1vdmUgdGhlIHByZXZpb3VzIGxpc3RlbmVyLCBiZWNhdXNlIHdlIGNhbm5vdCBiZVxuICAgICAgICAgKiBjZXJ0YWluIHRoYXQgaXQgd2FzIHJhaXNlZCwgYW5kIHRoZXJlZm9yZSBjbGVhbmVkLXVwLlxuICAgICAgICAgKi8gaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbmNlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgLy8gV2UgbmVlZCB0byByZW1vdmUgdGhlIGV2ZW50IGxpc3RlbmVyIGluIGNhc2UgdGhlIG91dHNpZGUgY2xpY2sgaGFzIGJlZW4gY2FuY2VsZWQuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMTcxXG4gICAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgKiBpZiB0aGlzIGhvb2sgZXhlY3V0ZXMgaW4gYSBjb21wb25lbnQgdGhhdCBtb3VudHMgdmlhIGEgYHBvaW50ZXJkb3duYCBldmVudCwgdGhlIGV2ZW50XG4gICAgICogd291bGQgYnViYmxlIHVwIHRvIHRoZSBkb2N1bWVudCBhbmQgdHJpZ2dlciBhIGBwb2ludGVyRG93bk91dHNpZGVgIGV2ZW50LiBXZSBhdm9pZFxuICAgICAqIHRoaXMgYnkgZGVsYXlpbmcgdGhlIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdHJhdGlvbiBvbiB0aGUgZG9jdW1lbnQuXG4gICAgICogVGhpcyBpcyBub3QgUmVhY3Qgc3BlY2lmaWMsIGJ1dCByYXRoZXIgaG93IHRoZSBET00gd29ya3MsIGllOlxuICAgICAqIGBgYFxuICAgICAqIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdJIHdpbGwgbG9nJyk7XG4gICAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ0kgd2lsbCBhbHNvIGxvZycpO1xuICAgICAqICAgfSlcbiAgICAgKiB9KTtcbiAgICAgKi8gY29uc3QgdGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgICB9LCAwKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIG93bmVyRG9jdW1lbnQsXG4gICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZVxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIGVuc3VyZXMgd2UgY2hlY2sgUmVhY3QgY29tcG9uZW50IHRyZWUgKG5vdCBqdXN0IERPTSB0cmVlKVxuICAgICAgICBvblBvaW50ZXJEb3duQ2FwdHVyZTogKCk9PmlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIH07XG59XG4vKipcbiAqIExpc3RlbnMgZm9yIHdoZW4gZm9jdXMgaGFwcGVucyBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgcm9vdCAobm9kZSkgb2YgdGhlIHN1YnRyZWUgd2Ugd2FudCB0byBjaGVjay5cbiAqLyBmdW5jdGlvbiAkNWNiOTJiZWY3NTc3OTYwZSR2YXIkdXNlRm9jdXNPdXRzaWRlKG9uRm9jdXNPdXRzaWRlLCBvd25lckRvY3VtZW50ID0gZ2xvYmFsVGhpcyA9PT0gbnVsbCB8fCBnbG9iYWxUaGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxUaGlzLmRvY3VtZW50KSB7XG4gICAgY29uc3QgaGFuZGxlRm9jdXNPdXRzaWRlID0gJGtxd3BIJHVzZUNhbGxiYWNrUmVmKG9uRm9jdXNPdXRzaWRlKTtcbiAgICBjb25zdCBpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmID0gJGtxd3BIJHVzZVJlZihmYWxzZSk7XG4gICAgJGtxd3BIJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudCk9PntcbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0ge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJEZPQ1VTX09VVFNJREUsIGhhbmRsZUZvY3VzT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzY3JldGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgcmV0dXJuICgpPT5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1cylcbiAgICAgICAgO1xuICAgIH0sIFtcbiAgICAgICAgb3duZXJEb2N1bWVudCxcbiAgICAgICAgaGFuZGxlRm9jdXNPdXRzaWRlXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb25Gb2N1c0NhcHR1cmU6ICgpPT5pc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICxcbiAgICAgICAgb25CbHVyQ2FwdHVyZTogKCk9PmlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfTtcbn1cbmZ1bmN0aW9uICQ1Y2I5MmJlZjc1Nzc5NjBlJHZhciRkaXNwYXRjaFVwZGF0ZSgpIHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgkNWNiOTJiZWY3NTc3OTYwZSR2YXIkQ09OVEVYVF9VUERBVEUpO1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufVxuZnVuY3Rpb24gJDVjYjkyYmVmNzU3Nzk2MGUkdmFyJGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQobmFtZSwgaGFuZGxlciwgZGV0YWlsLCB7IGRpc2NyZXRlOiBkaXNjcmV0ZSAgfSkge1xuICAgIGNvbnN0IHRhcmdldCA9IGRldGFpbC5vcmlnaW5hbEV2ZW50LnRhcmdldDtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChuYW1lLCB7XG4gICAgICAgIGJ1YmJsZXM6IGZhbHNlLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBkZXRhaWw6IGRldGFpbFxuICAgIH0pO1xuICAgIGlmIChoYW5kbGVyKSB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyLCB7XG4gICAgICAgIG9uY2U6IHRydWVcbiAgICB9KTtcbiAgICBpZiAoZGlzY3JldGUpICRrcXdwSCRkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCk7XG4gICAgZWxzZSB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG5jb25zdCAkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICQ1Y2I5MmJlZjc1Nzc5NjBlJGV4cG9ydCQxNzdmYjYyZmYzZWMxZjIyO1xuY29uc3QgJDVjYjkyYmVmNzU3Nzk2MGUkZXhwb3J0JGFlY2IyZGRjYjU1Yzk1YmUgPSAkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkNGQ1ZWIyMTA5ZGIxNDIyODtcblxuXG5cblxuZXhwb3J0IHskNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkMTc3ZmI2MmZmM2VjMWYyMiBhcyBEaXNtaXNzYWJsZUxheWVyLCAkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkNGQ1ZWIyMTA5ZGIxNDIyOCBhcyBEaXNtaXNzYWJsZUxheWVyQnJhbmNoLCAkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSBhcyBSb290LCAkNWNiOTJiZWY3NTc3OTYwZSRleHBvcnQkYWVjYjJkZGNiNTVjOTViZSBhcyBCcmFuY2h9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs": /*!***************************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***! \***************************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ $b1b2314f5f9a1d84$export$25bec8c6f54ee79a)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(callback);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdHOzs7QUFHeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNkNBQWE7QUFDckMsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQSxLQUFLLEdBQUc7QUFDUixXQUFXLDhDQUFjO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS3FFO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlUmVmIGFzICRsd2lXaiR1c2VSZWYsIHVzZUVmZmVjdCBhcyAkbHdpV2okdXNlRWZmZWN0LCB1c2VNZW1vIGFzICRsd2lXaiR1c2VNZW1vfSBmcm9tIFwicmVhY3RcIjtcblxuXG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb252ZXJ0cyBhIGNhbGxiYWNrIHRvIGEgcmVmIHRvIGF2b2lkIHRyaWdnZXJpbmcgcmUtcmVuZGVycyB3aGVuIHBhc3NlZCBhcyBhXG4gKiBwcm9wIG9yIGF2b2lkIHJlLWV4ZWN1dGluZyBlZmZlY3RzIHdoZW4gcGFzc2VkIGFzIGEgZGVwZW5kZW5jeVxuICovIGZ1bmN0aW9uICRiMWIyMzE0ZjVmOWExZDg0JGV4cG9ydCQyNWJlYzhjNmY1NGVlNzlhKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY2FsbGJhY2tSZWYgPSAkbHdpV2okdXNlUmVmKGNhbGxiYWNrKTtcbiAgICAkbHdpV2okdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgICB9KTsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTI0MFxuICAgIHJldHVybiAkbHdpV2okdXNlTWVtbygoKT0+KC4uLmFyZ3MpPT57XG4gICAgICAgICAgICB2YXIgX2NhbGxiYWNrUmVmJGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gKF9jYWxsYmFja1JlZiRjdXJyZW50ID0gY2FsbGJhY2tSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2NhbGxiYWNrUmVmJGN1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jYWxsYmFja1JlZiRjdXJyZW50LmNhbGwoY2FsbGJhY2tSZWYsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgLCBbXSk7XG59XG5cblxuXG5cbmV4cG9ydCB7JGIxYjIzMTRmNWY5YTFkODQkZXhwb3J0JDI1YmVjOGM2ZjU0ZWU3OWEgYXMgdXNlQ2FsbGJhY2tSZWZ9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs": /*!*****************************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs ***! \*****************************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEscapeKeydown: () => (/* binding */ $addc16e1bbe58fd0$export$3a72a57244d6e765)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n\n\n\n\n\n/**\n * Listens for when the escape key is down\n */ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const onEscapeKeyDown = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onEscapeKeyDownProp);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const handleKeyDown = (event)=>{\n if (event.key === 'Escape') onEscapeKeyDown(event);\n };\n ownerDocument.addEventListener('keydown', handleKeyDown);\n return ()=>ownerDocument.removeEventListener('keydown', handleKeyDown)\n ;\n }, [\n onEscapeKeyDown,\n ownerDocument\n ]);\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9EO0FBQ3FDOzs7O0FBSXpGO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixnRkFBcUI7QUFDakQsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUt1RTtBQUN2RSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvY21kay9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlRWZmZWN0IGFzICRoUFNRNSR1c2VFZmZlY3R9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHt1c2VDYWxsYmFja1JlZiBhcyAkaFBTUTUkdXNlQ2FsbGJhY2tSZWZ9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuXG5cblxuLyoqXG4gKiBMaXN0ZW5zIGZvciB3aGVuIHRoZSBlc2NhcGUga2V5IGlzIGRvd25cbiAqLyBmdW5jdGlvbiAkYWRkYzE2ZTFiYmU1OGZkMCRleHBvcnQkM2E3MmE1NzI0NGQ2ZTc2NShvbkVzY2FwZUtleURvd25Qcm9wLCBvd25lckRvY3VtZW50ID0gZ2xvYmFsVGhpcyA9PT0gbnVsbCB8fCBnbG9iYWxUaGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxUaGlzLmRvY3VtZW50KSB7XG4gICAgY29uc3Qgb25Fc2NhcGVLZXlEb3duID0gJGhQU1E1JHVzZUNhbGxiYWNrUmVmKG9uRXNjYXBlS2V5RG93blByb3ApO1xuICAgICRoUFNRNSR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCk9PntcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSBvbkVzY2FwZUtleURvd24oZXZlbnQpO1xuICAgICAgICB9O1xuICAgICAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgcmV0dXJuICgpPT5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKVxuICAgICAgICA7XG4gICAgfSwgW1xuICAgICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICAgIG93bmVyRG9jdW1lbnRcbiAgICBdKTtcbn1cblxuXG5cblxuZXhwb3J0IHskYWRkYzE2ZTFiYmU1OGZkMCRleHBvcnQkM2E3MmE1NzI0NGQ2ZTc2NSBhcyB1c2VFc2NhcGVLZXlkb3dufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-guards/dist/index.mjs": /*!************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-focus-guards/dist/index.mjs ***! \************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGuards: () => (/* binding */ $3db38b7d1fb3fe6a$export$ac5b58043b79449b),\n/* harmony export */ Root: () => (/* binding */ $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9),\n/* harmony export */ useFocusGuards: () => (/* binding */ $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$ac5b58043b79449b(props) {\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return props.children;\n}\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return ()=>{\n if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\nconst $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 = $3db38b7d1fb3fe6a$export$ac5b58043b79449b;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0Q7OztBQUdwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdEQUFnQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLFlBQVksaUJBQWlCO0FBQ3pFO0FBQ0E7QUFDQTs7Ozs7QUFLa0w7QUFDbEwiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1mb2N1cy1ndWFyZHMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VFZmZlY3QgYXMgJDF3RXJ6JHVzZUVmZmVjdH0gZnJvbSBcInJlYWN0XCI7XG5cblxuLyoqIE51bWJlciBvZiBjb21wb25lbnRzIHdoaWNoIGhhdmUgcmVxdWVzdGVkIGludGVyZXN0IHRvIGhhdmUgZm9jdXMgZ3VhcmRzICovIGxldCAkM2RiMzhiN2QxZmIzZmU2YSR2YXIkY291bnQgPSAwO1xuZnVuY3Rpb24gJDNkYjM4YjdkMWZiM2ZlNmEkZXhwb3J0JGFjNWI1ODA0M2I3OTQ0OWIocHJvcHMpIHtcbiAgICAkM2RiMzhiN2QxZmIzZmU2YSRleHBvcnQkYjdlY2UyNGEyMmFlZGE4YygpO1xuICAgIHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cbi8qKlxuICogSW5qZWN0cyBhIHBhaXIgb2YgZm9jdXMgZ3VhcmRzIGF0IHRoZSBlZGdlcyBvZiB0aGUgd2hvbGUgRE9NIHRyZWVcbiAqIHRvIGVuc3VyZSBgZm9jdXNpbmAgJiBgZm9jdXNvdXRgIGV2ZW50cyBjYW4gYmUgY2F1Z2h0IGNvbnNpc3RlbnRseS5cbiAqLyBmdW5jdGlvbiAkM2RiMzhiN2QxZmIzZmU2YSRleHBvcnQkYjdlY2UyNGEyMmFlZGE4YygpIHtcbiAgICAkMXdFcnokdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIHZhciBfZWRnZUd1YXJkcyQsIF9lZGdlR3VhcmRzJDI7XG4gICAgICAgIGNvbnN0IGVkZ2VHdWFyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yYWRpeC1mb2N1cy1ndWFyZF0nKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyYmVnaW4nLCAoX2VkZ2VHdWFyZHMkID0gZWRnZUd1YXJkc1swXSkgIT09IG51bGwgJiYgX2VkZ2VHdWFyZHMkICE9PSB2b2lkIDAgPyBfZWRnZUd1YXJkcyQgOiAkM2RiMzhiN2QxZmIzZmU2YSR2YXIkY3JlYXRlRm9jdXNHdWFyZCgpKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2JlZm9yZWVuZCcsIChfZWRnZUd1YXJkcyQyID0gZWRnZUd1YXJkc1sxXSkgIT09IG51bGwgJiYgX2VkZ2VHdWFyZHMkMiAhPT0gdm9pZCAwID8gX2VkZ2VHdWFyZHMkMiA6ICQzZGIzOGI3ZDFmYjNmZTZhJHZhciRjcmVhdGVGb2N1c0d1YXJkKCkpO1xuICAgICAgICAkM2RiMzhiN2QxZmIzZmU2YSR2YXIkY291bnQrKztcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAoJDNkYjM4YjdkMWZiM2ZlNmEkdmFyJGNvdW50ID09PSAxKSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yYWRpeC1mb2N1cy1ndWFyZF0nKS5mb3JFYWNoKChub2RlKT0+bm9kZS5yZW1vdmUoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICQzZGIzOGI3ZDFmYjNmZTZhJHZhciRjb3VudC0tO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbn1cbmZ1bmN0aW9uICQzZGIzOGI3ZDFmYjNmZTZhJHZhciRjcmVhdGVGb2N1c0d1YXJkKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmQnLCAnJyk7XG4gICAgZWxlbWVudC50YWJJbmRleCA9IDA7XG4gICAgZWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gJ291dGxpbmU6IG5vbmU7IG9wYWNpdHk6IDA7IHBvc2l0aW9uOiBmaXhlZDsgcG9pbnRlci1ldmVudHM6IG5vbmUnO1xuICAgIHJldHVybiBlbGVtZW50O1xufVxuY29uc3QgJDNkYjM4YjdkMWZiM2ZlNmEkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgPSAkM2RiMzhiN2QxZmIzZmU2YSRleHBvcnQkYWM1YjU4MDQzYjc5NDQ5YjtcblxuXG5cblxuZXhwb3J0IHskM2RiMzhiN2QxZmIzZmU2YSRleHBvcnQkYWM1YjU4MDQzYjc5NDQ5YiBhcyBGb2N1c0d1YXJkcywgJDNkYjM4YjdkMWZiM2ZlNmEkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgYXMgUm9vdCwgJDNkYjM4YjdkMWZiM2ZlNmEkZXhwb3J0JGI3ZWNlMjRhMjJhZWRhOGMgYXMgdXNlRm9jdXNHdWFyZHN9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-guards/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/dist/index.mjs": /*!***********************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***! \***********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ $d3863c46a17e8a28$export$20e40289641fbbb6),\n/* harmony export */ Root: () => (/* binding */ $d3863c46a17e8a28$export$be92b6f5f03c0fe9)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME = 'FocusScope';\nconst $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;\n const [container1, setContainer] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, (node)=>setContainer(node)\n );\n const focusScope = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current; // Takes care of trapping focus if focus is moved outside programmatically for example\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (trapped) {\n function handleFocusIn(event) {\n if (focusScope.paused || !container1) return;\n const target = event.target;\n if (container1.contains(target)) lastFocusedElementRef.current = target;\n else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n function handleFocusOut(event) {\n if (focusScope.paused || !container1) return;\n const relatedTarget = event.relatedTarget; // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return; // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container1.contains(relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n } // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations)if (mutation.removedNodes.length > 0) $d3863c46a17e8a28$var$focus(container1);\n }\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container1) mutationObserver.observe(container1, {\n childList: true,\n subtree: true\n });\n return ()=>{\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return ()=>{\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(()=>{\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n // we need to remove the listener after we `dispatchEvent`\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]); // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\n/*#__PURE__*/ Object.assign($d3863c46a17e8a28$export$20e40289641fbbb6, {\n displayName: $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n $d3863c46a17e8a28$var$focus(candidate, {\n select: select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n/**\n * Returns the first and last tabbable elements inside a container.\n */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */ function $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements){\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while(node){\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && 'select' in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({\n preventScroll: true\n }); // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();\n }\n}\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */ let stack = [];\n return {\n add (focusScope) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) updatedArray.splice(index, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter((item)=>item.tagName !== 'A'\n );\n}\nconst $d3863c46a17e8a28$export$be92b6f5f03c0fe9 = $d3863c46a17e8a28$export$20e40289641fbbb6;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFzRjtBQUMrSDtBQUM5SDtBQUNmO0FBQ2lCOzs7Ozs7O0FBT3pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxpREFBaUI7QUFDakYsWUFBWSxzSkFBc0o7QUFDbEssdUNBQXVDLCtDQUFlO0FBQ3RELDZCQUE2QixnRkFBcUI7QUFDbEQsK0JBQStCLGdGQUFxQjtBQUNwRCxrQ0FBa0MsNkNBQWE7QUFDL0MseUJBQXlCLDZFQUFzQjtBQUMvQztBQUNBLHVCQUF1Qiw2Q0FBYTtBQUNwQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsS0FBSyxXQUFXO0FBQ2hCLElBQUksZ0RBQWdCO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdEQUFnQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEdBQTRHO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsMEJBQTBCLGtEQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLG9EQUFvQixDQUFDLGdFQUFnQixNQUFNLDhFQUFvQztBQUN4RztBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsMEJBQTBCLElBQUk7QUFDMUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RkFBOEY7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdEQUFnRCxhQUFhO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCwwQkFBMEIsSUFBSTtBQUM5RTtBQUNBO0FBQ0EsaUVBQWlFO0FBQ2pFO0FBQ0E7QUFDQSxTQUFTLEdBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUtvSDtBQUNwSCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvY21kay9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkNDVRSHYkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCB7Zm9yd2FyZFJlZiBhcyAkNDVRSHYkZm9yd2FyZFJlZiwgdXNlU3RhdGUgYXMgJDQ1UUh2JHVzZVN0YXRlLCB1c2VSZWYgYXMgJDQ1UUh2JHVzZVJlZiwgdXNlRWZmZWN0IGFzICQ0NVFIdiR1c2VFZmZlY3QsIHVzZUNhbGxiYWNrIGFzICQ0NVFIdiR1c2VDYWxsYmFjaywgY3JlYXRlRWxlbWVudCBhcyAkNDVRSHYkY3JlYXRlRWxlbWVudH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge3VzZUNvbXBvc2VkUmVmcyBhcyAkNDVRSHYkdXNlQ29tcG9zZWRSZWZzfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHtQcmltaXRpdmUgYXMgJDQ1UUh2JFByaW1pdGl2ZX0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7dXNlQ2FsbGJhY2tSZWYgYXMgJDQ1UUh2JHVzZUNhbGxiYWNrUmVmfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWZcIjtcblxuXG5cblxuXG5cbmNvbnN0ICRkMzg2M2M0NmExN2U4YTI4JHZhciRBVVRPRk9DVVNfT05fTU9VTlQgPSAnZm9jdXNTY29wZS5hdXRvRm9jdXNPbk1vdW50JztcbmNvbnN0ICRkMzg2M2M0NmExN2U4YTI4JHZhciRBVVRPRk9DVVNfT05fVU5NT1VOVCA9ICdmb2N1c1Njb3BlLmF1dG9Gb2N1c09uVW5tb3VudCc7XG5jb25zdCAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkRVZFTlRfT1BUSU9OUyA9IHtcbiAgICBidWJibGVzOiBmYWxzZSxcbiAgICBjYW5jZWxhYmxlOiB0cnVlXG59O1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRm9jdXNTY29wZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkRk9DVVNfU0NPUEVfTkFNRSA9ICdGb2N1c1Njb3BlJztcbmNvbnN0ICRkMzg2M2M0NmExN2U4YTI4JGV4cG9ydCQyMGU0MDI4OTY0MWZiYmI2ID0gLyojX19QVVJFX18qLyAkNDVRSHYkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCB7IGxvb3A6IGxvb3AgPSBmYWxzZSAsIHRyYXBwZWQ6IHRyYXBwZWQgPSBmYWxzZSAsIG9uTW91bnRBdXRvRm9jdXM6IG9uTW91bnRBdXRvRm9jdXNQcm9wICwgb25Vbm1vdW50QXV0b0ZvY3VzOiBvblVubW91bnRBdXRvRm9jdXNQcm9wICwgLi4uc2NvcGVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2NvbnRhaW5lcjEsIHNldENvbnRhaW5lcl0gPSAkNDVRSHYkdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgb25Nb3VudEF1dG9Gb2N1cyA9ICQ0NVFIdiR1c2VDYWxsYmFja1JlZihvbk1vdW50QXV0b0ZvY3VzUHJvcCk7XG4gICAgY29uc3Qgb25Vbm1vdW50QXV0b0ZvY3VzID0gJDQ1UUh2JHVzZUNhbGxiYWNrUmVmKG9uVW5tb3VudEF1dG9Gb2N1c1Byb3ApO1xuICAgIGNvbnN0IGxhc3RGb2N1c2VkRWxlbWVudFJlZiA9ICQ0NVFIdiR1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gJDQ1UUh2JHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKT0+c2V0Q29udGFpbmVyKG5vZGUpXG4gICAgKTtcbiAgICBjb25zdCBmb2N1c1Njb3BlID0gJDQ1UUh2JHVzZVJlZih7XG4gICAgICAgIHBhdXNlZDogZmFsc2UsXG4gICAgICAgIHBhdXNlICgpIHtcbiAgICAgICAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdW1lICgpIHtcbiAgICAgICAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9KS5jdXJyZW50OyAvLyBUYWtlcyBjYXJlIG9mIHRyYXBwaW5nIGZvY3VzIGlmIGZvY3VzIGlzIG1vdmVkIG91dHNpZGUgcHJvZ3JhbW1hdGljYWxseSBmb3IgZXhhbXBsZVxuICAgICQ0NVFIdiR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHRyYXBwZWQpIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZvY3VzSW4oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcjEpIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lcjEuY29udGFpbnModGFyZ2V0KSkgbGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQgPSB0YXJnZXQ7XG4gICAgICAgICAgICAgICAgZWxzZSAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXMobGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c091dChldmVudCkge1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCB8fCAhY29udGFpbmVyMSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OyAvLyBBIGBmb2N1c291dGAgZXZlbnQgd2l0aCBhIGBudWxsYCBgcmVsYXRlZFRhcmdldGAgd2lsbCBoYXBwZW4gaW4gYXQgbGVhc3QgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gMS4gV2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBhcHAvdGFicy93aW5kb3dzL3RoZSBicm93c2VyIGl0c2VsZiBsb3NlcyBmb2N1cy5cbiAgICAgICAgICAgICAgICAvLyAyLiBJbiBHb29nbGUgQ2hyb21lLCB3aGVuIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET00uXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBXZSBsZXQgdGhlIGJyb3dzZXIgZG8gaXRzIHRoaW5nIGhlcmUgYmVjYXVzZTpcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIC8vIDEuIFRoZSBicm93c2VyIGFscmVhZHkga2VlcHMgYSBtZW1vcnkgb2Ygd2hhdCdzIGZvY3VzZWQgZm9yIHdoZW4gdGhlIHBhZ2UgZ2V0cyByZWZvY3VzZWQuXG4gICAgICAgICAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgaWYgd2UgdHJ5IHRvIGZvY3VzIHRoZSBkZWxldGVkIGZvY3VzZWQgZWxlbWVudCAoYXMgcGVyIGJlbG93KSwgaXRcbiAgICAgICAgICAgICAgICAvLyAgICB0aHJvd3MgdGhlIENQVSB0byAxMDAlLCBzbyB3ZSBhdm9pZCBkb2luZyBhbnl0aGluZyBmb3IgdGhpcyByZWFzb24gaGVyZSB0b28uXG4gICAgICAgICAgICAgICAgaWYgKHJlbGF0ZWRUYXJnZXQgPT09IG51bGwpIHJldHVybjsgLy8gSWYgdGhlIGZvY3VzIGhhcyBtb3ZlZCB0byBhbiBhY3R1YWwgbGVnaXRpbWF0ZSBlbGVtZW50IChgcmVsYXRlZFRhcmdldCAhPT0gbnVsbGApXG4gICAgICAgICAgICAgICAgLy8gdGhhdCBpcyBvdXRzaWRlIHRoZSBjb250YWluZXIsIHdlIG1vdmUgZm9jdXMgdG8gdGhlIGxhc3QgdmFsaWQgZm9jdXNlZCBlbGVtZW50IGluc2lkZS5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcjEuY29udGFpbnMocmVsYXRlZFRhcmdldCkpICRkMzg2M2M0NmExN2U4YTI4JHZhciRmb2N1cyhsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudCwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Q6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gLy8gV2hlbiB0aGUgZm9jdXNlZCBlbGVtZW50IGdldHMgcmVtb3ZlZCBmcm9tIHRoZSBET00sIGJyb3dzZXJzIG1vdmUgZm9jdXNcbiAgICAgICAgICAgIC8vIGJhY2sgdG8gdGhlIGRvY3VtZW50LmJvZHkuIEluIHRoaXMgY2FzZSwgd2UgbW92ZSBmb2N1cyB0byB0aGUgY29udGFpbmVyXG4gICAgICAgICAgICAvLyB0byBrZWVwIGZvY3VzIHRyYXBwZWQgY29ycmVjdGx5LlxuICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlTXV0YXRpb25zKG11dGF0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHJldHVybjtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucylpZiAobXV0YXRpb24ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApICRkMzg2M2M0NmExN2U4YTI4JHZhciRmb2N1cyhjb250YWluZXIxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXQpO1xuICAgICAgICAgICAgY29uc3QgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGhhbmRsZU11dGF0aW9ucyk7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyMSkgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lcjEsIHtcbiAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VidHJlZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dCk7XG4gICAgICAgICAgICAgICAgbXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB0cmFwcGVkLFxuICAgICAgICBjb250YWluZXIxLFxuICAgICAgICBmb2N1c1Njb3BlLnBhdXNlZFxuICAgIF0pO1xuICAgICQ0NVFIdiR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGNvbnRhaW5lcjEpIHtcbiAgICAgICAgICAgICRkMzg2M2M0NmExN2U4YTI4JHZhciRmb2N1c1Njb3Blc1N0YWNrLmFkZChmb2N1c1Njb3BlKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBoYXNGb2N1c2VkQ2FuZGlkYXRlID0gY29udGFpbmVyMS5jb250YWlucyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFoYXNGb2N1c2VkQ2FuZGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudCgkZDM4NjNjNDZhMTdlOGEyOCR2YXIkQVVUT0ZPQ1VTX09OX01PVU5ULCAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkRVZFTlRfT1BUSU9OUyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyMS5hZGRFdmVudExpc3RlbmVyKCRkMzg2M2M0NmExN2U4YTI4JHZhciRBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjEuZGlzcGF0Y2hFdmVudChtb3VudEV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoIW1vdW50RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXNGaXJzdCgkZDM4NjNjNDZhMTdlOGEyOCR2YXIkcmVtb3ZlTGlua3MoJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIxKSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkgJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGZvY3VzKGNvbnRhaW5lcjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZDM4NjNjNDZhMTdlOGEyOCR2YXIkQVVUT0ZPQ1VTX09OX01PVU5ULCBvbk1vdW50QXV0b0ZvY3VzKTsgLy8gV2UgaGl0IGEgcmVhY3QgYnVnIChmaXhlZCBpbiB2MTcpIHdpdGggZm9jdXNpbmcgaW4gdW5tb3VudC5cbiAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGRlbGF5IHRoZSBmb2N1cyBhIGxpdHRsZSB0byBnZXQgYXJvdW5kIGl0IGZvciBub3cuXG4gICAgICAgICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE3ODk0XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1bm1vdW50RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJGQzODYzYzQ2YTE3ZThhMjgkdmFyJEFVVE9GT0NVU19PTl9VTk1PVU5ULCAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkRVZFTlRfT1BUSU9OUyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjEuYWRkRXZlbnRMaXN0ZW5lcigkZDM4NjNjNDZhMTdlOGEyOCR2YXIkQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjEuZGlzcGF0Y2hFdmVudCh1bm1vdW50RXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXVubW91bnRFdmVudC5kZWZhdWx0UHJldmVudGVkKSAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXMocHJldmlvdXNseUZvY3VzZWRFbGVtZW50ICE9PSBudWxsICYmIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAhPT0gdm9pZCAwID8gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50IDogZG9jdW1lbnQuYm9keSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxpc3RlbmVyIGFmdGVyIHdlIGBkaXNwYXRjaEV2ZW50YFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIxLnJlbW92ZUV2ZW50TGlzdGVuZXIoJGQzODYzYzQ2YTE3ZThhMjgkdmFyJEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgICAgICAgICAgICAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXNTY29wZXNTdGFjay5yZW1vdmUoZm9jdXNTY29wZSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjb250YWluZXIxLFxuICAgICAgICBvbk1vdW50QXV0b0ZvY3VzLFxuICAgICAgICBvblVubW91bnRBdXRvRm9jdXMsXG4gICAgICAgIGZvY3VzU2NvcGVcbiAgICBdKTsgLy8gVGFrZXMgY2FyZSBvZiBsb29waW5nIGZvY3VzICh3aGVuIHRhYmJpbmcgd2hpbHN0IGF0IHRoZSBlZGdlcylcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gJDQ1UUh2JHVzZUNhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKCFsb29wICYmICF0cmFwcGVkKSByZXR1cm47XG4gICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBpc1RhYktleSA9IGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgIWV2ZW50LmFsdEtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhZXZlbnQubWV0YUtleTtcbiAgICAgICAgY29uc3QgZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICBpZiAoaXNUYWJLZXkgJiYgZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICBjb25zdCBbZmlyc3QsIGxhc3RdID0gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1RhYmJhYmxlRWxlbWVudHNJbnNpZGUgPSBmaXJzdCAmJiBsYXN0OyAvLyB3ZSBjYW4gb25seSB3cmFwIGZvY3VzIGlmIHdlIGhhdmUgdGFiYmFibGUgZWRnZXNcbiAgICAgICAgICAgIGlmICghaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSkge1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCA9PT0gY29udGFpbmVyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRFbGVtZW50ID09PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb29wKSAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXMoZmlyc3QsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRFbGVtZW50ID09PSBmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9vcCkgJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGZvY3VzKGxhc3QsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGxvb3AsXG4gICAgICAgIHRyYXBwZWQsXG4gICAgICAgIGZvY3VzU2NvcGUucGF1c2VkXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDQ1UUh2JGNyZWF0ZUVsZW1lbnQoJDQ1UUh2JFByaW1pdGl2ZS5kaXYsICQ0NVFIdiRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7XG4gICAgICAgIHRhYkluZGV4OiAtMVxuICAgIH0sIHNjb3BlUHJvcHMsIHtcbiAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXG4gICAgICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93blxuICAgIH0pKTtcbn0pO1xuLyojX19QVVJFX18qLyBPYmplY3QuYXNzaWduKCRkMzg2M2M0NmExN2U4YTI4JGV4cG9ydCQyMGU0MDI4OTY0MWZiYmI2LCB7XG4gICAgZGlzcGxheU5hbWU6ICRkMzg2M2M0NmExN2U4YTI4JHZhciRGT0NVU19TQ09QRV9OQU1FXG59KTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFV0aWxzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIC8qKlxuICogQXR0ZW1wdHMgZm9jdXNpbmcgdGhlIGZpcnN0IGVsZW1lbnQgaW4gYSBsaXN0IG9mIGNhbmRpZGF0ZXMuXG4gKiBTdG9wcyB3aGVuIGZvY3VzIGhhcyBhY3R1YWxseSBtb3ZlZC5cbiAqLyBmdW5jdGlvbiAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZm9jdXNGaXJzdChjYW5kaWRhdGVzLCB7IHNlbGVjdDogc2VsZWN0ID0gZmFsc2UgIH0gPSB7fSkge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcyl7XG4gICAgICAgICRkMzg2M2M0NmExN2U4YTI4JHZhciRmb2N1cyhjYW5kaWRhdGUsIHtcbiAgICAgICAgICAgIHNlbGVjdDogc2VsZWN0XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50KSByZXR1cm47XG4gICAgfVxufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhbmQgbGFzdCB0YWJiYWJsZSBlbGVtZW50cyBpbnNpZGUgYSBjb250YWluZXIuXG4gKi8gZnVuY3Rpb24gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlcyA9ICRkMzg2M2M0NmExN2U4YTI4JHZhciRnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKTtcbiAgICBjb25zdCBmaXJzdCA9ICRkMzg2M2M0NmExN2U4YTI4JHZhciRmaW5kVmlzaWJsZShjYW5kaWRhdGVzLCBjb250YWluZXIpO1xuICAgIGNvbnN0IGxhc3QgPSAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkZmluZFZpc2libGUoY2FuZGlkYXRlcy5yZXZlcnNlKCksIGNvbnRhaW5lcik7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZmlyc3QsXG4gICAgICAgIGxhc3RcbiAgICBdO1xufVxuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBvZiBwb3RlbnRpYWwgdGFiYmFibGUgY2FuZGlkYXRlcy5cbiAqXG4gKiBOT1RFOiBUaGlzIGlzIG9ubHkgYSBjbG9zZSBhcHByb3hpbWF0aW9uLiBGb3IgZXhhbXBsZSBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IGNhc2VzIGxpa2Ugd2hlblxuICogZWxlbWVudHMgYXJlIG5vdCB2aXNpYmxlLiBUaGlzIGNhbm5vdCBiZSB3b3JrZWQgb3V0IGVhc2lseSBieSBqdXN0IHJlYWRpbmcgYSBwcm9wZXJ0eSwgYnV0IHJhdGhlclxuICogbmVjZXNzaXRhdGUgcnVudGltZSBrbm93bGVkZ2UgKGNvbXB1dGVkIHN0eWxlcywgZXRjKS4gV2UgZGVhbCB3aXRoIHRoZXNlIGNhc2VzIHNlcGFyYXRlbHkuXG4gKlxuICogU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlclxuICogQ3JlZGl0OiBodHRwczovL2dpdGh1Yi5jb20vZGlzY29yZC9mb2N1cy1sYXllcnMvYmxvYi9tYXN0ZXIvc3JjL3V0aWwvd3JhcEZvY3VzLnRzeCNMMVxuICovIGZ1bmN0aW9uICRkMzg2M2M0NmExN2U4YTI4JHZhciRnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBbXTtcbiAgICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbnRhaW5lciwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHtcbiAgICAgICAgYWNjZXB0Tm9kZTogKG5vZGUpPT57XG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbklucHV0ID0gbm9kZS50YWdOYW1lID09PSAnSU5QVVQnICYmIG5vZGUudHlwZSA9PT0gJ2hpZGRlbic7XG4gICAgICAgICAgICBpZiAobm9kZS5kaXNhYmxlZCB8fCBub2RlLmhpZGRlbiB8fCBpc0hpZGRlbklucHV0KSByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDsgLy8gYC50YWJJbmRleGAgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS4gSXQgd29ya3Mgb24gdGhlXG4gICAgICAgICAgICAvLyBydW50aW1lJ3MgdW5kZXJzdGFuZGluZyBvZiB0YWJiYWJpbGl0eSwgc28gdGhpcyBhdXRvbWF0aWNhbGx5IGFjY291bnRzXG4gICAgICAgICAgICAvLyBmb3IgYW55IGtpbmQgb2YgZWxlbWVudCB0aGF0IGNvdWxkIGJlIHRhYmJlZCB0by5cbiAgICAgICAgICAgIHJldHVybiBub2RlLnRhYkluZGV4ID49IDAgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgd2hpbGUod2Fsa2VyLm5leHROb2RlKCkpbm9kZXMucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpOyAvLyB3ZSBkbyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIG9yZGVyIG9mIG5vZGVzIHdpdGggcG9zaXRpdmUgYHRhYkluZGV4YCBhcyBpdFxuICAgIC8vIGhpbmRlcnMgYWNjZXNzaWJpbGl0eSB0byBoYXZlIHRhYiBvcmRlciBkaWZmZXJlbnQgZnJvbSB2aXN1YWwgb3JkZXIuXG4gICAgcmV0dXJuIG5vZGVzO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCB2aXNpYmxlIGVsZW1lbnQgaW4gYSBsaXN0LlxuICogTk9URTogT25seSBjaGVja3MgdmlzaWJpbGl0eSB1cCB0byB0aGUgYGNvbnRhaW5lcmAuXG4gKi8gZnVuY3Rpb24gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGZpbmRWaXNpYmxlKGVsZW1lbnRzLCBjb250YWluZXIpIHtcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpe1xuICAgICAgICAvLyB3ZSBzdG9wIGNoZWNraW5nIGlmIGl0J3MgaGlkZGVuIGF0IHRoZSBgY29udGFpbmVyYCBsZXZlbCAoZXhjbHVkaW5nKVxuICAgICAgICBpZiAoISRkMzg2M2M0NmExN2U4YTI4JHZhciRpc0hpZGRlbihlbGVtZW50LCB7XG4gICAgICAgICAgICB1cFRvOiBjb250YWluZXJcbiAgICAgICAgfSkpIHJldHVybiBlbGVtZW50O1xuICAgIH1cbn1cbmZ1bmN0aW9uICRkMzg2M2M0NmExN2U4YTI4JHZhciRpc0hpZGRlbihub2RlLCB7IHVwVG86IHVwVG8gIH0pIHtcbiAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJykgcmV0dXJuIHRydWU7XG4gICAgd2hpbGUobm9kZSl7XG4gICAgICAgIC8vIHdlIHN0b3AgYXQgYHVwVG9gIChleGNsdWRpbmcgaXQpXG4gICAgICAgIGlmICh1cFRvICE9PSB1bmRlZmluZWQgJiYgbm9kZSA9PT0gdXBUbykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNwbGF5ID09PSAnbm9uZScpIHJldHVybiB0cnVlO1xuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJiAnc2VsZWN0JyBpbiBlbGVtZW50O1xufVxuZnVuY3Rpb24gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGZvY3VzKGVsZW1lbnQsIHsgc2VsZWN0OiBzZWxlY3QgPSBmYWxzZSAgfSA9IHt9KSB7XG4gICAgLy8gb25seSBmb2N1cyBpZiB0aGF0IGVsZW1lbnQgaXMgZm9jdXNhYmxlXG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cykge1xuICAgICAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OyAvLyBOT1RFOiB3ZSBwcmV2ZW50IHNjcm9sbGluZyBvbiBmb2N1cywgdG8gbWluaW1pemUgamFycmluZyB0cmFuc2l0aW9ucyBmb3IgdXNlcnNcbiAgICAgICAgZWxlbWVudC5mb2N1cyh7XG4gICAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlXG4gICAgICAgIH0pOyAvLyBvbmx5IHNlbGVjdCBpZiBpdHMgbm90IHRoZSBzYW1lIGVsZW1lbnQsIGl0IHN1cHBvcnRzIHNlbGVjdGlvbiBhbmQgd2UgbmVlZCB0byBzZWxlY3RcbiAgICAgICAgaWYgKGVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAmJiAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudCkgJiYgc2VsZWN0KSBlbGVtZW50LnNlbGVjdCgpO1xuICAgIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGUgc3RhY2tcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGZvY3VzU2NvcGVzU3RhY2sgPSAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkY3JlYXRlRm9jdXNTY29wZXNTdGFjaygpO1xuZnVuY3Rpb24gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGNyZWF0ZUZvY3VzU2NvcGVzU3RhY2soKSB7XG4gICAgLyoqIEEgc3RhY2sgb2YgZm9jdXMgc2NvcGVzLCB3aXRoIHRoZSBhY3RpdmUgb25lIGF0IHRoZSB0b3AgKi8gbGV0IHN0YWNrID0gW107XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYWRkIChmb2N1c1Njb3BlKSB7XG4gICAgICAgICAgICAvLyBwYXVzZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBmb2N1cyBzY29wZSAoYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2spXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVGb2N1c1Njb3BlID0gc3RhY2tbMF07XG4gICAgICAgICAgICBpZiAoZm9jdXNTY29wZSAhPT0gYWN0aXZlRm9jdXNTY29wZSkgYWN0aXZlRm9jdXNTY29wZSA9PT0gbnVsbCB8fCBhY3RpdmVGb2N1c1Njb3BlID09PSB2b2lkIDAgfHwgYWN0aXZlRm9jdXNTY29wZS5wYXVzZSgpO1xuICAgICAgICAgICAgIC8vIHJlbW92ZSBpbiBjYXNlIGl0IGFscmVhZHkgZXhpc3RzIChiZWNhdXNlIHdlJ2xsIHJlLWFkZCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjaylcbiAgICAgICAgICAgIHN0YWNrID0gJGQzODYzYzQ2YTE3ZThhMjgkdmFyJGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgICAgICAgIHN0YWNrLnVuc2hpZnQoZm9jdXNTY29wZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW92ZSAoZm9jdXNTY29wZSkge1xuICAgICAgICAgICAgdmFyIF9zdGFjayQ7XG4gICAgICAgICAgICBzdGFjayA9ICRkMzg2M2M0NmExN2U4YTI4JHZhciRhcnJheVJlbW92ZShzdGFjaywgZm9jdXNTY29wZSk7XG4gICAgICAgICAgICAoX3N0YWNrJCA9IHN0YWNrWzBdKSA9PT0gbnVsbCB8fCBfc3RhY2skID09PSB2b2lkIDAgfHwgX3N0YWNrJC5yZXN1bWUoKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkYXJyYXlSZW1vdmUoYXJyYXksIGl0ZW0pIHtcbiAgICBjb25zdCB1cGRhdGVkQXJyYXkgPSBbXG4gICAgICAgIC4uLmFycmF5XG4gICAgXTtcbiAgICBjb25zdCBpbmRleCA9IHVwZGF0ZWRBcnJheS5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHVwZGF0ZWRBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiB1cGRhdGVkQXJyYXk7XG59XG5mdW5jdGlvbiAkZDM4NjNjNDZhMTdlOGEyOCR2YXIkcmVtb3ZlTGlua3MoaXRlbXMpIHtcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKT0+aXRlbS50YWdOYW1lICE9PSAnQSdcbiAgICApO1xufVxuY29uc3QgJGQzODYzYzQ2YTE3ZThhMjgkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgPSAkZDM4NjNjNDZhMTdlOGEyOCRleHBvcnQkMjBlNDAyODk2NDFmYmJiNjtcblxuXG5cblxuZXhwb3J0IHskZDM4NjNjNDZhMTdlOGEyOCRleHBvcnQkMjBlNDAyODk2NDFmYmJiNiBhcyBGb2N1c1Njb3BlLCAkZDM4NjNjNDZhMTdlOGEyOCRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSBhcyBSb290fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs": /*!*********************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***! \*********************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ $b1b2314f5f9a1d84$export$25bec8c6f54ee79a)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(callback);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdHOzs7QUFHeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNkNBQWE7QUFDckMsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQSxLQUFLLEdBQUc7QUFDUixXQUFXLDhDQUFjO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS3FFO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlUmVmIGFzICRsd2lXaiR1c2VSZWYsIHVzZUVmZmVjdCBhcyAkbHdpV2okdXNlRWZmZWN0LCB1c2VNZW1vIGFzICRsd2lXaiR1c2VNZW1vfSBmcm9tIFwicmVhY3RcIjtcblxuXG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb252ZXJ0cyBhIGNhbGxiYWNrIHRvIGEgcmVmIHRvIGF2b2lkIHRyaWdnZXJpbmcgcmUtcmVuZGVycyB3aGVuIHBhc3NlZCBhcyBhXG4gKiBwcm9wIG9yIGF2b2lkIHJlLWV4ZWN1dGluZyBlZmZlY3RzIHdoZW4gcGFzc2VkIGFzIGEgZGVwZW5kZW5jeVxuICovIGZ1bmN0aW9uICRiMWIyMzE0ZjVmOWExZDg0JGV4cG9ydCQyNWJlYzhjNmY1NGVlNzlhKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY2FsbGJhY2tSZWYgPSAkbHdpV2okdXNlUmVmKGNhbGxiYWNrKTtcbiAgICAkbHdpV2okdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgICB9KTsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTI0MFxuICAgIHJldHVybiAkbHdpV2okdXNlTWVtbygoKT0+KC4uLmFyZ3MpPT57XG4gICAgICAgICAgICB2YXIgX2NhbGxiYWNrUmVmJGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gKF9jYWxsYmFja1JlZiRjdXJyZW50ID0gY2FsbGJhY2tSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2NhbGxiYWNrUmVmJGN1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jYWxsYmFja1JlZiRjdXJyZW50LmNhbGwoY2FsbGJhY2tSZWYsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgLCBbXSk7XG59XG5cblxuXG5cbmV4cG9ydCB7JGIxYjIzMTRmNWY5YTFkODQkZXhwb3J0JDI1YmVjOGM2ZjU0ZWU3OWEgYXMgdXNlQ2FsbGJhY2tSZWZ9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs": /*!**************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs ***! \**************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useId: () => (/* binding */ $1746a345f3d73bb7$export$f680877a34711e37)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n\n\n\n\n\nconst $1746a345f3d73bb7$var$useReactId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useId'.toString()] || (()=>undefined\n);\nlet $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(()=>{\n if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFzQztBQUNzRDs7OztBQUk1Rix5Q0FBeUMseUxBQVk7QUFDckQ7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDJDQUFxQixzQ0FBc0M7QUFDbkYsSUFBSSxrRkFBc0I7QUFDMUI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsNkNBQTZDLEdBQUc7QUFDaEQ7Ozs7O0FBSzREO0FBQzVEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgJDJBT0R4JHJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHt1c2VMYXlvdXRFZmZlY3QgYXMgJDJBT0R4JHVzZUxheW91dEVmZmVjdH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuXG5cblxuY29uc3QgJDE3NDZhMzQ1ZjNkNzNiYjckdmFyJHVzZVJlYWN0SWQgPSAkMkFPRHgkcmVhY3RbJ3VzZUlkJy50b1N0cmluZygpXSB8fCAoKCk9PnVuZGVmaW5lZFxuKTtcbmxldCAkMTc0NmEzNDVmM2Q3M2JiNyR2YXIkY291bnQgPSAwO1xuZnVuY3Rpb24gJDE3NDZhMzQ1ZjNkNzNiYjckZXhwb3J0JGY2ODA4NzdhMzQ3MTFlMzcoZGV0ZXJtaW5pc3RpY0lkKSB7XG4gICAgY29uc3QgW2lkLCBzZXRJZF0gPSAkMkFPRHgkcmVhY3QudXNlU3RhdGUoJDE3NDZhMzQ1ZjNkNzNiYjckdmFyJHVzZVJlYWN0SWQoKSk7IC8vIFJlYWN0IHZlcnNpb25zIG9sZGVyIHRoYW4gMTggd2lsbCBoYXZlIGNsaWVudC1zaWRlIGlkcyBvbmx5LlxuICAgICQyQU9EeCR1c2VMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFkZXRlcm1pbmlzdGljSWQpIHNldElkKChyZWFjdElkKT0+cmVhY3RJZCAhPT0gbnVsbCAmJiByZWFjdElkICE9PSB2b2lkIDAgPyByZWFjdElkIDogU3RyaW5nKCQxNzQ2YTM0NWYzZDczYmI3JHZhciRjb3VudCsrKVxuICAgICAgICApO1xuICAgIH0sIFtcbiAgICAgICAgZGV0ZXJtaW5pc3RpY0lkXG4gICAgXSk7XG4gICAgcmV0dXJuIGRldGVybWluaXN0aWNJZCB8fCAoaWQgPyBgcmFkaXgtJHtpZH1gIDogJycpO1xufVxuXG5cblxuXG5leHBvcnQgeyQxNzQ2YTM0NWYzZDczYmI3JGV4cG9ydCRmNjgwODc3YTM0NzExZTM3IGFzIHVzZUlkfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs": /*!*************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***! \*************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ $9f79659886946c16$export$e5c5a5f917a5871c)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : ()=>{};\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRTs7O0FBR2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZJQUE2SSxrREFBc0I7Ozs7O0FBSzdGO0FBQ3RFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUxheW91dEVmZmVjdCBhcyAkZHhsd0gkdXNlTGF5b3V0RWZmZWN0fSBmcm9tIFwicmVhY3RcIjtcblxuXG4vKipcbiAqIE9uIHRoZSBzZXJ2ZXIsIFJlYWN0IGVtaXRzIGEgd2FybmluZyB3aGVuIGNhbGxpbmcgYHVzZUxheW91dEVmZmVjdGAuXG4gKiBUaGlzIGlzIGJlY2F1c2UgbmVpdGhlciBgdXNlTGF5b3V0RWZmZWN0YCBub3IgYHVzZUVmZmVjdGAgcnVuIG9uIHRoZSBzZXJ2ZXIuXG4gKiBXZSB1c2UgdGhpcyBzYWZlIHZlcnNpb24gd2hpY2ggc3VwcHJlc3NlcyB0aGUgd2FybmluZyBieSByZXBsYWNpbmcgaXQgd2l0aCBhIG5vb3Agb24gdGhlIHNlcnZlci5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VsYXlvdXRlZmZlY3RcbiAqLyBjb25zdCAkOWY3OTY1OTg4Njk0NmMxNiRleHBvcnQkZTVjNWE1ZjkxN2E1ODcxYyA9IEJvb2xlYW4oZ2xvYmFsVGhpcyA9PT0gbnVsbCB8fCBnbG9iYWxUaGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxUaGlzLmRvY3VtZW50KSA/ICRkeGx3SCR1c2VMYXlvdXRFZmZlY3QgOiAoKT0+e307XG5cblxuXG5cbmV4cG9ydCB7JDlmNzk2NTk4ODY5NDZjMTYkZXhwb3J0JGU1YzVhNWY5MTdhNTg3MWMgYXMgdXNlTGF5b3V0RWZmZWN0fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-portal/dist/index.mjs": /*!******************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-portal/dist/index.mjs ***! \******************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ $f1701beae083dbae$export$602eac185826482c),\n/* harmony export */ Root: () => (/* binding */ $f1701beae083dbae$export$be92b6f5f03c0fe9)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$var$PORTAL_NAME = 'Portal';\nconst $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n var _globalThis$document;\n const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.div, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n/*#__PURE__*/ Object.assign($f1701beae083dbae$export$602eac185826482c, {\n displayName: $f1701beae083dbae$var$PORTAL_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$export$be92b6f5f03c0fe9 = $f1701beae083dbae$export$602eac185826482c;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9ydGFsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFzRjtBQUNPO0FBQ3JEO0FBQ2dDOzs7Ozs7QUFNeEU7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFLGlEQUFpQjtBQUNqRjtBQUNBLFlBQVksZ09BQWdPO0FBQzVPLHFDQUFxQyxtREFBNEIsZUFBZSxvREFBb0IsQ0FBQyxnRUFBZ0IsTUFBTSw4RUFBb0MsR0FBRztBQUNsSztBQUNBLEtBQUs7QUFDTCxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDs7Ozs7QUFLZ0g7QUFDaEgiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wb3J0YWwvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQ3U1hsMiRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IHtmb3J3YXJkUmVmIGFzICQ3U1hsMiRmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IGFzICQ3U1hsMiRjcmVhdGVFbGVtZW50fSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAkN1NYbDIkcmVhY3Rkb20gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHtQcmltaXRpdmUgYXMgJDdTWGwyJFByaW1pdGl2ZX0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcblxuXG5cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb3J0YWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJGYxNzAxYmVhZTA4M2RiYWUkdmFyJFBPUlRBTF9OQU1FID0gJ1BvcnRhbCc7XG5jb25zdCAkZjE3MDFiZWFlMDgzZGJhZSRleHBvcnQkNjAyZWFjMTg1ODI2NDgyYyA9IC8qI19fUFVSRV9fKi8gJDdTWGwyJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgdmFyIF9nbG9iYWxUaGlzJGRvY3VtZW50O1xuICAgIGNvbnN0IHsgY29udGFpbmVyOiBjb250YWluZXIgPSBnbG9iYWxUaGlzID09PSBudWxsIHx8IGdsb2JhbFRoaXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfZ2xvYmFsVGhpcyRkb2N1bWVudCA9IGdsb2JhbFRoaXMuZG9jdW1lbnQpID09PSBudWxsIHx8IF9nbG9iYWxUaGlzJGRvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZ2xvYmFsVGhpcyRkb2N1bWVudC5ib2R5ICwgLi4ucG9ydGFsUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiBjb250YWluZXIgPyAvKiNfX1BVUkVfXyovICQ3U1hsMiRyZWFjdGRvbS5jcmVhdGVQb3J0YWwoLyojX19QVVJFX18qLyAkN1NYbDIkY3JlYXRlRWxlbWVudCgkN1NYbDIkUHJpbWl0aXZlLmRpdiwgJDdTWGwyJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzKHt9LCBwb3J0YWxQcm9wcywge1xuICAgICAgICByZWY6IGZvcndhcmRlZFJlZlxuICAgIH0pKSwgY29udGFpbmVyKSA6IG51bGw7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkZjE3MDFiZWFlMDgzZGJhZSRleHBvcnQkNjAyZWFjMTg1ODI2NDgyYywge1xuICAgIGRpc3BsYXlOYW1lOiAkZjE3MDFiZWFlMDgzZGJhZSR2YXIkUE9SVEFMX05BTUVcbn0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkZjE3MDFiZWFlMDgzZGJhZSRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICRmMTcwMWJlYWUwODNkYmFlJGV4cG9ydCQ2MDJlYWMxODU4MjY0ODJjO1xuXG5cblxuXG5leHBvcnQgeyRmMTcwMWJlYWUwODNkYmFlJGV4cG9ydCQ2MDJlYWMxODU4MjY0ODJjIGFzIFBvcnRhbCwgJGYxNzAxYmVhZTA4M2RiYWUkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgYXMgUm9vdH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-portal/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/dist/index.mjs": /*!********************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-presence/dist/index.mjs ***! \********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: () => (/* binding */ $921a889cee6df7e8$export$99c2b779aa4e8b8b)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\n\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\nconst $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props)=>{\n const { present: present , children: children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === 'function' ? children({\n present: presence.isPresent\n }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(presence.ref, child.ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(child, {\n ref: ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = 'Presence';\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const stylesRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({});\n const prevPresentRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(present);\n const prevAnimationNameRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended'\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted'\n },\n unmounted: {\n MOUNT: 'mounted'\n }\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [\n state\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles);\n if (present) send('MOUNT');\n else if (currentAnimationName === 'none' || (styles === null || styles === void 0 ? void 0 : styles.display) === 'none') // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */ const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) send('ANIMATION_OUT');\n else send('UNMOUNT');\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)(()=>{\n if (node1) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */ const handleAnimationEnd = (event)=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation) // With React 18 concurrency this update is applied\n // a frame after the animation ends, creating a flash of visible content.\n // By manually flushing we ensure they sync within a frame, removing the flash.\n (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync)(()=>send('ANIMATION_END')\n );\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node1) // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener('animationstart', handleAnimationStart);\n node1.addEventListener('animationcancel', handleAnimationEnd);\n node1.addEventListener('animationend', handleAnimationEnd);\n return ()=>{\n node1.removeEventListener('animationstart', handleAnimationStart);\n node1.removeEventListener('animationcancel', handleAnimationEnd);\n node1.removeEventListener('animationend', handleAnimationEnd);\n };\n } else // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n 'mounted',\n 'unmountSuspended'\n ].includes(state),\n ref: (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((node)=>{\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\n/* -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || 'none';\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBZ1A7QUFDeEw7QUFDK0I7QUFDSzs7Ozs7OztBQU81RjtBQUNBLFdBQVcsaURBQWlCO0FBQzVCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7OztBQUdBO0FBQ0EsWUFBWSx5Q0FBeUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsS0FBSyxJQUFJLDJDQUFlO0FBQ3hCLGdCQUFnQiw2RUFBc0I7QUFDdEM7QUFDQSw0REFBNEQsbURBQW1CO0FBQy9FO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsK0NBQWU7QUFDNUMsc0JBQXNCLDZDQUFhLEdBQUc7QUFDdEMsMkJBQTJCLDZDQUFhO0FBQ3hDLGlDQUFpQyw2Q0FBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSxnREFBZ0I7QUFDcEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxrRkFBc0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsSUFBSSxrRkFBc0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvREFBZ0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGtEQUFrQjtBQUMvQjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBSytEO0FBQy9EIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGlsZHJlbiBhcyAkaXFxM3IkQ2hpbGRyZW4sIGNsb25lRWxlbWVudCBhcyAkaXFxM3IkY2xvbmVFbGVtZW50LCB1c2VTdGF0ZSBhcyAkaXFxM3IkdXNlU3RhdGUsIHVzZVJlZiBhcyAkaXFxM3IkdXNlUmVmLCB1c2VFZmZlY3QgYXMgJGlxcTNyJHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgYXMgJGlxcTNyJHVzZUNhbGxiYWNrLCB1c2VSZWR1Y2VyIGFzICRpcXEzciR1c2VSZWR1Y2VyfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Zmx1c2hTeW5jIGFzICRpcXEzciRmbHVzaFN5bmN9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7dXNlQ29tcG9zZWRSZWZzIGFzICRpcXEzciR1c2VDb21wb3NlZFJlZnN9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQge3VzZUxheW91dEVmZmVjdCBhcyAkaXFxM3IkdXNlTGF5b3V0RWZmZWN0fSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG5cblxuXG5cblxuXG5mdW5jdGlvbiAkZmU5NjNiMzU1MzQ3Y2M2OCRleHBvcnQkM2U2NTQzZGUxNGY4NjE0Zihpbml0aWFsU3RhdGUsIG1hY2hpbmUpIHtcbiAgICByZXR1cm4gJGlxcTNyJHVzZVJlZHVjZXIoKHN0YXRlLCBldmVudCk9PntcbiAgICAgICAgY29uc3QgbmV4dFN0YXRlID0gbWFjaGluZVtzdGF0ZV1bZXZlbnRdO1xuICAgICAgICByZXR1cm4gbmV4dFN0YXRlICE9PSBudWxsICYmIG5leHRTdGF0ZSAhPT0gdm9pZCAwID8gbmV4dFN0YXRlIDogc3RhdGU7XG4gICAgfSwgaW5pdGlhbFN0YXRlKTtcbn1cblxuXG5jb25zdCAkOTIxYTg4OWNlZTZkZjdlOCRleHBvcnQkOTljMmI3NzlhYTRlOGI4YiA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IHByZXNlbnQ6IHByZXNlbnQgLCBjaGlsZHJlbjogY2hpbGRyZW4gIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmVzZW5jZSA9ICQ5MjFhODg5Y2VlNmRmN2U4JHZhciR1c2VQcmVzZW5jZShwcmVzZW50KTtcbiAgICBjb25zdCBjaGlsZCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHtcbiAgICAgICAgcHJlc2VudDogcHJlc2VuY2UuaXNQcmVzZW50XG4gICAgfSkgOiAkaXFxM3IkQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgY29uc3QgcmVmID0gJGlxcTNyJHVzZUNvbXBvc2VkUmVmcyhwcmVzZW5jZS5yZWYsIGNoaWxkLnJlZik7XG4gICAgY29uc3QgZm9yY2VNb3VudCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICByZXR1cm4gZm9yY2VNb3VudCB8fCBwcmVzZW5jZS5pc1ByZXNlbnQgPyAvKiNfX1BVUkVfXyovICRpcXEzciRjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgcmVmOiByZWZcbiAgICB9KSA6IG51bGw7XG59O1xuJDkyMWE4ODljZWU2ZGY3ZTgkZXhwb3J0JDk5YzJiNzc5YWE0ZThiOGIuZGlzcGxheU5hbWUgPSAnUHJlc2VuY2UnO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogdXNlUHJlc2VuY2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gZnVuY3Rpb24gJDkyMWE4ODljZWU2ZGY3ZTgkdmFyJHVzZVByZXNlbmNlKHByZXNlbnQpIHtcbiAgICBjb25zdCBbbm9kZTEsIHNldE5vZGVdID0gJGlxcTNyJHVzZVN0YXRlKCk7XG4gICAgY29uc3Qgc3R5bGVzUmVmID0gJGlxcTNyJHVzZVJlZih7fSk7XG4gICAgY29uc3QgcHJldlByZXNlbnRSZWYgPSAkaXFxM3IkdXNlUmVmKHByZXNlbnQpO1xuICAgIGNvbnN0IHByZXZBbmltYXRpb25OYW1lUmVmID0gJGlxcTNyJHVzZVJlZignbm9uZScpO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHByZXNlbnQgPyAnbW91bnRlZCcgOiAndW5tb3VudGVkJztcbiAgICBjb25zdCBbc3RhdGUsIHNlbmRdID0gJGZlOTYzYjM1NTM0N2NjNjgkZXhwb3J0JDNlNjU0M2RlMTRmODYxNGYoaW5pdGlhbFN0YXRlLCB7XG4gICAgICAgIG1vdW50ZWQ6IHtcbiAgICAgICAgICAgIFVOTU9VTlQ6ICd1bm1vdW50ZWQnLFxuICAgICAgICAgICAgQU5JTUFUSU9OX09VVDogJ3VubW91bnRTdXNwZW5kZWQnXG4gICAgICAgIH0sXG4gICAgICAgIHVubW91bnRTdXNwZW5kZWQ6IHtcbiAgICAgICAgICAgIE1PVU5UOiAnbW91bnRlZCcsXG4gICAgICAgICAgICBBTklNQVRJT05fRU5EOiAndW5tb3VudGVkJ1xuICAgICAgICB9LFxuICAgICAgICB1bm1vdW50ZWQ6IHtcbiAgICAgICAgICAgIE1PVU5UOiAnbW91bnRlZCdcbiAgICAgICAgfVxuICAgIH0pO1xuICAgICRpcXEzciR1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSAkOTIxYTg4OWNlZTZkZjdlOCR2YXIkZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBzdGF0ZSA9PT0gJ21vdW50ZWQnID8gY3VycmVudEFuaW1hdGlvbk5hbWUgOiAnbm9uZSc7XG4gICAgfSwgW1xuICAgICAgICBzdGF0ZVxuICAgIF0pO1xuICAgICRpcXEzciR1c2VMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gc3R5bGVzUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHdhc1ByZXNlbnQgPSBwcmV2UHJlc2VudFJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBoYXNQcmVzZW50Q2hhbmdlZCA9IHdhc1ByZXNlbnQgIT09IHByZXNlbnQ7XG4gICAgICAgIGlmIChoYXNQcmVzZW50Q2hhbmdlZCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkFuaW1hdGlvbk5hbWUgPSBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSAkOTIxYTg4OWNlZTZkZjdlOCR2YXIkZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXMpO1xuICAgICAgICAgICAgaWYgKHByZXNlbnQpIHNlbmQoJ01PVU5UJyk7XG4gICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50QW5pbWF0aW9uTmFtZSA9PT0gJ25vbmUnIHx8IChzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuZGlzcGxheSkgPT09ICdub25lJykgLy8gSWYgdGhlcmUgaXMgbm8gZXhpdCBhbmltYXRpb24gb3IgdGhlIGVsZW1lbnQgaXMgaGlkZGVuLCBhbmltYXRpb25zIHdvbid0IHJ1blxuICAgICAgICAgICAgLy8gc28gd2UgdW5tb3VudCBpbnN0YW50bHlcbiAgICAgICAgICAgIHNlbmQoJ1VOTU9VTlQnKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgKiBXaGVuIGBwcmVzZW50YCBjaGFuZ2VzIHRvIGBmYWxzZWAsIHdlIGNoZWNrIGNoYW5nZXMgdG8gYW5pbWF0aW9uLW5hbWUgdG9cbiAgICAgICAgICogZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYW5pbWF0aW9uIGhhcyBzdGFydGVkLiBXZSBjaG9zZSB0aGlzIGFwcHJvYWNoIChyZWFkaW5nXG4gICAgICAgICAqIGNvbXB1dGVkIHN0eWxlcykgYmVjYXVzZSB0aGVyZSBpcyBubyBgYW5pbWF0aW9ucnVuYCBldmVudCBhbmQgYGFuaW1hdGlvbnN0YXJ0YFxuICAgICAgICAgKiBmaXJlcyBhZnRlciBgYW5pbWF0aW9uLWRlbGF5YCBoYXMgZXhwaXJlZCB3aGljaCB3b3VsZCBiZSB0b28gbGF0ZS5cbiAgICAgICAgICovIGNvbnN0IGlzQW5pbWF0aW5nID0gcHJldkFuaW1hdGlvbk5hbWUgIT09IGN1cnJlbnRBbmltYXRpb25OYW1lO1xuICAgICAgICAgICAgICAgIGlmICh3YXNQcmVzZW50ICYmIGlzQW5pbWF0aW5nKSBzZW5kKCdBTklNQVRJT05fT1VUJyk7XG4gICAgICAgICAgICAgICAgZWxzZSBzZW5kKCdVTk1PVU5UJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2UHJlc2VudFJlZi5jdXJyZW50ID0gcHJlc2VudDtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgcHJlc2VudCxcbiAgICAgICAgc2VuZFxuICAgIF0pO1xuICAgICRpcXEzciR1c2VMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKG5vZGUxKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAqIFRyaWdnZXJpbmcgYW4gQU5JTUFUSU9OX09VVCBkdXJpbmcgYW4gQU5JTUFUSU9OX0lOIHdpbGwgZmlyZSBhbiBgYW5pbWF0aW9uY2FuY2VsYFxuICAgICAgICogZXZlbnQgZm9yIEFOSU1BVElPTl9JTiBhZnRlciB3ZSBoYXZlIGVudGVyZWQgYHVubW91bnRTdXNwZW5kZWRgIHN0YXRlLiBTbywgd2VcbiAgICAgICAqIG1ha2Ugc3VyZSB3ZSBvbmx5IHRyaWdnZXIgQU5JTUFUSU9OX0VORCBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxuICAgICAgICovIGNvbnN0IGhhbmRsZUFuaW1hdGlvbkVuZCA9IChldmVudCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50QW5pbWF0aW9uTmFtZSA9ICQ5MjFhODg5Y2VlNmRmN2U4JHZhciRnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0N1cnJlbnRBbmltYXRpb24gPSBjdXJyZW50QW5pbWF0aW9uTmFtZS5pbmNsdWRlcyhldmVudC5hbmltYXRpb25OYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlMSAmJiBpc0N1cnJlbnRBbmltYXRpb24pIC8vIFdpdGggUmVhY3QgMTggY29uY3VycmVuY3kgdGhpcyB1cGRhdGUgaXMgYXBwbGllZFxuICAgICAgICAgICAgICAgIC8vIGEgZnJhbWUgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBlbmRzLCBjcmVhdGluZyBhIGZsYXNoIG9mIHZpc2libGUgY29udGVudC5cbiAgICAgICAgICAgICAgICAvLyBCeSBtYW51YWxseSBmbHVzaGluZyB3ZSBlbnN1cmUgdGhleSBzeW5jIHdpdGhpbiBhIGZyYW1lLCByZW1vdmluZyB0aGUgZmxhc2guXG4gICAgICAgICAgICAgICAgJGlxcTNyJGZsdXNoU3luYygoKT0+c2VuZCgnQU5JTUFUSU9OX0VORCcpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25TdGFydCA9IChldmVudCk9PntcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlMSkgLy8gaWYgYW5pbWF0aW9uIG9jY3VycmVkLCBzdG9yZSBpdHMgbmFtZSBhcyB0aGUgcHJldmlvdXMgYW5pbWF0aW9uLlxuICAgICAgICAgICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSAkOTIxYTg4OWNlZTZkZjdlOCR2YXIkZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbm9kZTEuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBoYW5kbGVBbmltYXRpb25TdGFydCk7XG4gICAgICAgICAgICBub2RlMS5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25jYW5jZWwnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgICAgICAgbm9kZTEuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgaGFuZGxlQW5pbWF0aW9uRW5kKTtcbiAgICAgICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgICAgIG5vZGUxLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbnN0YXJ0JywgaGFuZGxlQW5pbWF0aW9uU3RhcnQpO1xuICAgICAgICAgICAgICAgIG5vZGUxLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmNhbmNlbCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICAgICAgICAgICAgbm9kZTEucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgaGFuZGxlQW5pbWF0aW9uRW5kKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSAvLyBUcmFuc2l0aW9uIHRvIHRoZSB1bm1vdW50ZWQgc3RhdGUgaWYgdGhlIG5vZGUgaXMgcmVtb3ZlZCBwcmVtYXR1cmVseS5cbiAgICAgICAgLy8gV2UgYXZvaWQgZG9pbmcgc28gZHVyaW5nIGNsZWFudXAgYXMgdGhlIG5vZGUgbWF5IGNoYW5nZSBidXQgc3RpbGwgZXhpc3QuXG4gICAgICAgIHNlbmQoJ0FOSU1BVElPTl9FTkQnKTtcbiAgICB9LCBbXG4gICAgICAgIG5vZGUxLFxuICAgICAgICBzZW5kXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNQcmVzZW50OiBbXG4gICAgICAgICAgICAnbW91bnRlZCcsXG4gICAgICAgICAgICAndW5tb3VudFN1c3BlbmRlZCdcbiAgICAgICAgXS5pbmNsdWRlcyhzdGF0ZSksXG4gICAgICAgIHJlZjogJGlxcTNyJHVzZUNhbGxiYWNrKChub2RlKT0+e1xuICAgICAgICAgICAgaWYgKG5vZGUpIHN0eWxlc1JlZi5jdXJyZW50ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICAgICAgICAgIHNldE5vZGUobm9kZSk7XG4gICAgICAgIH0sIFtdKVxuICAgIH07XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGZ1bmN0aW9uICQ5MjFhODg5Y2VlNmRmN2U4JHZhciRnZXRBbmltYXRpb25OYW1lKHN0eWxlcykge1xuICAgIHJldHVybiAoc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLmFuaW1hdGlvbk5hbWUpIHx8ICdub25lJztcbn1cblxuXG5cblxuZXhwb3J0IHskOTIxYTg4OWNlZTZkZjdlOCRleHBvcnQkOTljMmI3NzlhYTRlOGI4YiBhcyBQcmVzZW5jZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs": /*!*******************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***! \*******************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ $9f79659886946c16$export$e5c5a5f917a5871c)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : ()=>{};\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2Uvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRTs7O0FBR2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZJQUE2SSxrREFBc0I7Ozs7O0FBSzdGO0FBQ3RFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2Uvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUxheW91dEVmZmVjdCBhcyAkZHhsd0gkdXNlTGF5b3V0RWZmZWN0fSBmcm9tIFwicmVhY3RcIjtcblxuXG4vKipcbiAqIE9uIHRoZSBzZXJ2ZXIsIFJlYWN0IGVtaXRzIGEgd2FybmluZyB3aGVuIGNhbGxpbmcgYHVzZUxheW91dEVmZmVjdGAuXG4gKiBUaGlzIGlzIGJlY2F1c2UgbmVpdGhlciBgdXNlTGF5b3V0RWZmZWN0YCBub3IgYHVzZUVmZmVjdGAgcnVuIG9uIHRoZSBzZXJ2ZXIuXG4gKiBXZSB1c2UgdGhpcyBzYWZlIHZlcnNpb24gd2hpY2ggc3VwcHJlc3NlcyB0aGUgd2FybmluZyBieSByZXBsYWNpbmcgaXQgd2l0aCBhIG5vb3Agb24gdGhlIHNlcnZlci5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VsYXlvdXRlZmZlY3RcbiAqLyBjb25zdCAkOWY3OTY1OTg4Njk0NmMxNiRleHBvcnQkZTVjNWE1ZjkxN2E1ODcxYyA9IEJvb2xlYW4oZ2xvYmFsVGhpcyA9PT0gbnVsbCB8fCBnbG9iYWxUaGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxUaGlzLmRvY3VtZW50KSA/ICRkeGx3SCR1c2VMYXlvdXRFZmZlY3QgOiAoKT0+e307XG5cblxuXG5cbmV4cG9ydCB7JDlmNzk2NTk4ODY5NDZjMTYkZXhwb3J0JGU1YzVhNWY5MTdhNTg3MWMgYXMgdXNlTGF5b3V0RWZmZWN0fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs": /*!*********************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs ***! \*********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ $8927f6f2acc4f386$export$250ffa63cdc0d034),\n/* harmony export */ Root: () => (/* binding */ $8927f6f2acc4f386$export$be92b6f5f03c0fe9),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ $8927f6f2acc4f386$export$6d1a0317bde7de7f)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n\n\n\n\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(Comp, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.flushSync)(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBc0Y7QUFDc0M7QUFDcEU7QUFDQzs7Ozs7O0FBTXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixpREFBaUI7QUFDaEQsZ0JBQWdCLHVDQUF1QztBQUN2RCwrQkFBK0Isc0RBQVc7QUFDMUMsUUFBUSxnREFBZ0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1QsNkJBQTZCLG9EQUFvQixPQUFPLDhFQUFvQyxHQUFHO0FBQy9GO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTCxvQ0FBb0MsS0FBSztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsSUFBSTtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9EQUFnQjtBQUNoQztBQUNBO0FBQ0E7Ozs7O0FBSzZMO0FBQzdMIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkNHE1RnEkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCB7Zm9yd2FyZFJlZiBhcyAkNHE1RnEkZm9yd2FyZFJlZiwgdXNlRWZmZWN0IGFzICQ0cTVGcSR1c2VFZmZlY3QsIGNyZWF0ZUVsZW1lbnQgYXMgJDRxNUZxJGNyZWF0ZUVsZW1lbnR9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtmbHVzaFN5bmMgYXMgJDRxNUZxJGZsdXNoU3luY30gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHtTbG90IGFzICQ0cTVGcSRTbG90fSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcblxuXG5cblxuXG5jb25zdCAkODkyN2Y2ZjJhY2M0ZjM4NiR2YXIkTk9ERVMgPSBbXG4gICAgJ2EnLFxuICAgICdidXR0b24nLFxuICAgICdkaXYnLFxuICAgICdmb3JtJyxcbiAgICAnaDInLFxuICAgICdoMycsXG4gICAgJ2ltZycsXG4gICAgJ2lucHV0JyxcbiAgICAnbGFiZWwnLFxuICAgICdsaScsXG4gICAgJ25hdicsXG4gICAgJ29sJyxcbiAgICAncCcsXG4gICAgJ3NwYW4nLFxuICAgICdzdmcnLFxuICAgICd1bCdcbl07IC8vIFRlbXBvcmFyeSB3aGlsZSB3ZSBhd2FpdCBtZXJnZSBvZiB0aGlzIGZpeDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EZWZpbml0ZWx5VHlwZWQvRGVmaW5pdGVseVR5cGVkL3B1bGwvNTUzOTZcbi8vIHByZXR0aWVyLWlnbm9yZVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUHJpbWl0aXZlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQyNTBmZmE2M2NkYzBkMDM0ID0gJDg5MjdmNmYyYWNjNGYzODYkdmFyJE5PREVTLnJlZHVjZSgocHJpbWl0aXZlLCBub2RlKT0+e1xuICAgIGNvbnN0IE5vZGUgPSAvKiNfX1BVUkVfXyovICQ0cTVGcSRmb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKT0+e1xuICAgICAgICBjb25zdCB7IGFzQ2hpbGQ6IGFzQ2hpbGQgLCAuLi5wcmltaXRpdmVQcm9wcyB9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gJDRxNUZxJFNsb3QgOiBub2RlO1xuICAgICAgICAkNHE1RnEkdXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICB3aW5kb3dbU3ltYm9sLmZvcigncmFkaXgtdWknKV0gPSB0cnVlO1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ0cTVGcSRjcmVhdGVFbGVtZW50KENvbXAsICQ0cTVGcSRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7fSwgcHJpbWl0aXZlUHJvcHMsIHtcbiAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgICAgIH0pKTtcbiAgICB9KTtcbiAgICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmltaXRpdmUsXG4gICAgICAgIFtub2RlXTogTm9kZVxuICAgIH07XG59LCB7fSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVdGlsc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyAvKipcbiAqIEZsdXNoIGN1c3RvbSBldmVudCBkaXNwYXRjaFxuICogaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvcHVsbC8xMzc4XG4gKlxuICogUmVhY3QgYmF0Y2hlcyAqYWxsKiBldmVudCBoYW5kbGVycyBzaW5jZSB2ZXJzaW9uIDE4LCB0aGlzIGludHJvZHVjZXMgY2VydGFpbiBjb25zaWRlcmF0aW9ucyB3aGVuIHVzaW5nIGN1c3RvbSBldmVudCB0eXBlcy5cbiAqXG4gKiBJbnRlcm5hbGx5LCBSZWFjdCBwcmlvcml0aXNlcyBldmVudHMgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAqICAtIGRpc2NyZXRlXG4gKiAgLSBjb250aW51b3VzXG4gKiAgLSBkZWZhdWx0XG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvYThhNDc0MmYxYzU0NDkzZGYwMGRhNjQ4YTNmOWQyNmUzZGI5YzhiNS9wYWNrYWdlcy9yZWFjdC1kb20vc3JjL2V2ZW50cy9SZWFjdERPTUV2ZW50TGlzdGVuZXIuanMjTDI5NC1MMzUwXG4gKlxuICogYGRpc2NyZXRlYCBpcyBhbiAgaW1wb3J0YW50IGRpc3RpbmN0aW9uIGFzIHVwZGF0ZXMgd2l0aGluIHRoZXNlIGV2ZW50cyBhcmUgYXBwbGllZCBpbW1lZGlhdGVseS5cbiAqIFJlYWN0IGhvd2V2ZXIsIGlzIG5vdCBhYmxlIHRvIGluZmVyIHRoZSBwcmlvcml0eSBvZiBjdXN0b20gZXZlbnQgdHlwZXMgZHVlIHRvIGhvdyB0aGV5IGFyZSBkZXRlY3RlZCBpbnRlcm5hbGx5LlxuICogQmVjYXVzZSBvZiB0aGlzLCBpdCdzIHBvc3NpYmxlIGZvciB1cGRhdGVzIGZyb20gY3VzdG9tIGV2ZW50cyB0byBiZSB1bmV4cGVjdGVkbHkgYmF0Y2hlZCB3aGVuXG4gKiBkaXNwYXRjaGVkIGJ5IGFub3RoZXIgYGRpc2NyZXRlYCBldmVudC5cbiAqXG4gKiBJbiBvcmRlciB0byBlbnN1cmUgdGhhdCB1cGRhdGVzIGZyb20gY3VzdG9tIGV2ZW50cyBhcmUgYXBwbGllZCBwcmVkaWN0YWJseSwgd2UgbmVlZCB0byBtYW51YWxseSBmbHVzaCB0aGUgYmF0Y2guXG4gKiBUaGlzIHV0aWxpdHkgc2hvdWxkIGJlIHVzZWQgd2hlbiBkaXNwYXRjaGluZyBhIGN1c3RvbSBldmVudCBmcm9tIHdpdGhpbiBhbm90aGVyIGBkaXNjcmV0ZWAgZXZlbnQsIHRoaXMgdXRpbGl0eVxuICogaXMgbm90IG5lc3Nlc2FyeSB3aGVuIGRpc3BhdGNoaW5nIGtub3duIGV2ZW50IHR5cGVzLCBvciBpZiBkaXNwYXRjaGluZyBhIGN1c3RvbSB0eXBlIGluc2lkZSBhIG5vbi1kaXNjcmV0ZSBldmVudC5cbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGRpc3BhdGNoaW5nIGEga25vd24gY2xpY2sg8J+RjlxuICogdGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KOKAmGNsaWNr4oCZKSlcbiAqXG4gKiBkaXNwYXRjaGluZyBhIGN1c3RvbSB0eXBlIHdpdGhpbiBhIG5vbi1kaXNjcmV0ZSBldmVudCDwn5GOXG4gKiBvblNjcm9sbD17KGV2ZW50KSA9PiBldmVudC50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQo4oCYY3VzdG9tVHlwZeKAmSkpfVxuICpcbiAqIGRpc3BhdGNoaW5nIGEgY3VzdG9tIHR5cGUgd2l0aGluIGEgYGRpc2NyZXRlYCBldmVudCDwn5GNXG4gKiBvblBvaW50ZXJEb3duPXsoZXZlbnQpID0+IGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudChldmVudC50YXJnZXQsIG5ldyBDdXN0b21FdmVudCjigJhjdXN0b21UeXBl4oCZKSl9XG4gKlxuICogTm90ZTogdGhvdWdoIFJlYWN0IGNsYXNzaWZpZXMgYGZvY3VzYCwgYGZvY3VzaW5gIGFuZCBgZm9jdXNvdXRgIGV2ZW50cyBhcyBgZGlzY3JldGVgLCBpdCdzICBub3QgcmVjb21tZW5kZWQgdG8gdXNlXG4gKiB0aGlzIHV0aWxpdHkgd2l0aCB0aGVtLiBUaGlzIGlzIGJlY2F1c2UgaXQncyBwb3NzaWJsZSBmb3IgdGhvc2UgaGFuZGxlcnMgdG8gYmUgY2FsbGVkIGltcGxpY2l0bHkgZHVyaW5nIHJlbmRlclxuICogZS5nLiB3aGVuIGZvY3VzIGlzIHdpdGhpbiBhIGNvbXBvbmVudCBhcyBpdCBpcyB1bm1vdW50ZWQsIG9yIHdoZW4gbWFuYWdpbmcgZm9jdXMgb24gbW91bnQuXG4gKi8gZnVuY3Rpb24gJDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JDZkMWEwMzE3YmRlN2RlN2YodGFyZ2V0LCBldmVudCkge1xuICAgIGlmICh0YXJnZXQpICQ0cTVGcSRmbHVzaFN5bmMoKCk9PnRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICk7XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCRiZTkyYjZmNWYwM2MwZmU5ID0gJDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JDI1MGZmYTYzY2RjMGQwMzQ7XG5cblxuXG5cbmV4cG9ydCB7JDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JDI1MGZmYTYzY2RjMGQwMzQgYXMgUHJpbWl0aXZlLCAkODkyN2Y2ZjJhY2M0ZjM4NiRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSBhcyBSb290LCAkODkyN2Y2ZjJhY2M0ZjM4NiRleHBvcnQkNmQxYTAzMTdiZGU3ZGU3ZiBhcyBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnR9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs": /*!****************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs ***! \****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ $5e63c961fc1ce211$export$be92b6f5f03c0fe9),\n/* harmony export */ Slot: () => (/* binding */ $5e63c961fc1ce211$export$8c6ed5c666ac1360),\n/* harmony export */ Slottable: () => (/* binding */ $5e63c961fc1ce211$export$d9f1ccf0bdb05d45)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_1__.Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (react__WEBPACK_IMPORTED_MODULE_1__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_1__.Children.only(null);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5e63c961fc1ce211$var$SlotClone, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(newElement) ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5e63c961fc1ce211$var$SlotClone, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = 'Slot';\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n if (/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children)) return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, children.ref) : children.ref\n });\n return react__WEBPACK_IMPORTED_MODULE_1__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_1__.Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = 'SlotClone';\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) overrideProps[propName] = (...args)=>{\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue) overrideProps[propName] = slotPropValue;\n } else if (propName === 'style') overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === 'className') overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(' ');\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBc0Y7QUFDK0k7QUFDdEo7Ozs7O0FBSy9FO0FBQ0E7QUFDQSxxS0FBcUssaURBQWlCO0FBQ3RMLFlBQVksb0NBQW9DO0FBQ2hELDBCQUEwQiwyQ0FBZTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJDQUFlLCtCQUErQiwyQ0FBZTtBQUNqRixxQ0FBcUMscURBQXFCO0FBQzFELGNBQWM7QUFDZCxTQUFTO0FBQ1QsNkJBQTZCLG9EQUFvQixrQ0FBa0MsOEVBQW9DLEdBQUc7QUFDMUg7QUFDQSxTQUFTLGlCQUFpQixxREFBcUIsNkJBQTZCLG1EQUFtQjtBQUMvRjtBQUNBLHlCQUF5QixvREFBb0Isa0NBQWtDLDhFQUFvQyxHQUFHO0FBQ3RIO0FBQ0EsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSwySkFBMkosaURBQWlCO0FBQzVLLFlBQVksb0NBQW9DO0FBQ2hELHNCQUFzQixxREFBcUIsaUNBQWlDLG1EQUFtQjtBQUMvRjtBQUNBLDRCQUE0Qix5RUFBa0I7QUFDOUMsS0FBSztBQUNMLFdBQVcsMkNBQWUsdUJBQXVCLDJDQUFlO0FBQ2hFLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSwwSkFBMEoscUJBQXFCO0FBQy9LLHlCQUF5QixvREFBb0IsQ0FBQywyQ0FBZTtBQUM3RDtBQUNBO0FBQ0EseUJBQXlCLHFEQUFxQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS3NLO0FBQ3RLIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJDlJcmpYJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQge2ZvcndhcmRSZWYgYXMgJDlJcmpYJGZvcndhcmRSZWYsIENoaWxkcmVuIGFzICQ5SXJqWCRDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQgYXMgJDlJcmpYJGlzVmFsaWRFbGVtZW50LCBjcmVhdGVFbGVtZW50IGFzICQ5SXJqWCRjcmVhdGVFbGVtZW50LCBjbG9uZUVsZW1lbnQgYXMgJDlJcmpYJGNsb25lRWxlbWVudCwgRnJhZ21lbnQgYXMgJDlJcmpYJEZyYWdtZW50fSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Y29tcG9zZVJlZnMgYXMgJDlJcmpYJGNvbXBvc2VSZWZzfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuXG5cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTbG90XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwID0gLyojX19QVVJFX18qLyAkOUlyalgkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCB7IGNoaWxkcmVuOiBjaGlsZHJlbiAsIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2hpbGRyZW5BcnJheSA9ICQ5SXJqWCRDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBjb25zdCBzbG90dGFibGUgPSBjaGlsZHJlbkFycmF5LmZpbmQoJDVlNjNjOTYxZmMxY2UyMTEkdmFyJGlzU2xvdHRhYmxlKTtcbiAgICBpZiAoc2xvdHRhYmxlKSB7XG4gICAgICAgIC8vIHRoZSBuZXcgZWxlbWVudCB0byByZW5kZXIgaXMgdGhlIG9uZSBwYXNzZWQgYXMgYSBjaGlsZCBvZiBgU2xvdHRhYmxlYFxuICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuO1xuICAgICAgICBjb25zdCBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuQXJyYXkubWFwKChjaGlsZCk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGUgbmV3IGVsZW1lbnQgd2lsbCBiZSB0aGUgb25lIHJlbmRlcmVkLCB3ZSBhcmUgb25seSBpbnRlcmVzdGVkXG4gICAgICAgICAgICAgICAgLy8gaW4gZ3JhYmJpbmcgaXRzIGNoaWxkcmVuIChgbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbmApXG4gICAgICAgICAgICAgICAgaWYgKCQ5SXJqWCRDaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiAkOUlyalgkQ2hpbGRyZW4ub25seShudWxsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkOUlyalgkaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gY2hpbGQ7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkOUlyalgkY3JlYXRlRWxlbWVudCgkNWU2M2M5NjFmYzFjZTIxMSR2YXIkU2xvdENsb25lLCAkOUlyalgkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe30sIHNsb3RQcm9wcywge1xuICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgICAgfSksIC8qI19fUFVSRV9fKi8gJDlJcmpYJGlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gLyojX19QVVJFX18qLyAkOUlyalgkY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHVuZGVmaW5lZCwgbmV3Q2hpbGRyZW4pIDogbnVsbCk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjcmVhdGVFbGVtZW50KCQ1ZTYzYzk2MWZjMWNlMjExJHZhciRTbG90Q2xvbmUsICQ5SXJqWCRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7fSwgc2xvdFByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfSksIGNoaWxkcmVuKTtcbn0pO1xuJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JDhjNmVkNWM2NjZhYzEzNjAuZGlzcGxheU5hbWUgPSAnU2xvdCc7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTbG90Q2xvbmVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVlNjNjOTYxZmMxY2UyMTEkdmFyJFNsb3RDbG9uZSA9IC8qI19fUFVSRV9fKi8gJDlJcmpYJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBjaGlsZHJlbjogY2hpbGRyZW4gLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICAgIGlmICgvKiNfX1BVUkVfXyovICQ5SXJqWCRpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgICAgLi4uJDVlNjNjOTYxZmMxY2UyMTEkdmFyJG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gJDlJcmpYJGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW4ucmVmKSA6IGNoaWxkcmVuLnJlZlxuICAgIH0pO1xuICAgIHJldHVybiAkOUlyalgkQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/ICQ5SXJqWCRDaGlsZHJlbi5vbmx5KG51bGwpIDogbnVsbDtcbn0pO1xuJDVlNjNjOTYxZmMxY2UyMTEkdmFyJFNsb3RDbG9uZS5kaXNwbGF5TmFtZSA9ICdTbG90Q2xvbmUnO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2xvdHRhYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCRkOWYxY2NmMGJkYjA1ZDQ1ID0gKHsgY2hpbGRyZW46IGNoaWxkcmVuICB9KT0+e1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjcmVhdGVFbGVtZW50KCQ5SXJqWCRGcmFnbWVudCwgbnVsbCwgY2hpbGRyZW4pO1xufTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8gZnVuY3Rpb24gJDVlNjNjOTYxZmMxY2UyMTEkdmFyJGlzU2xvdHRhYmxlKGNoaWxkKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDlJcmpYJGlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSAkNWU2M2M5NjFmYzFjZTIxMSRleHBvcnQkZDlmMWNjZjBiZGIwNWQ0NTtcbn1cbmZ1bmN0aW9uICQ1ZTYzYzk2MWZjMWNlMjExJHZhciRtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICAgIC8vIGFsbCBjaGlsZCBwcm9wcyBzaG91bGQgb3ZlcnJpZGVcbiAgICBjb25zdCBvdmVycmlkZVByb3BzID0ge1xuICAgICAgICAuLi5jaGlsZFByb3BzXG4gICAgfTtcbiAgICBmb3IoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcyl7XG4gICAgICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgaGFuZGxlciBleGlzdHMgb24gYm90aCwgd2UgY29tcG9zZSB0aGVtXG4gICAgICAgICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNsb3RQcm9wVmFsdWUpIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gJ3N0eWxlJykgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSB7XG4gICAgICAgICAgICAuLi5zbG90UHJvcFZhbHVlLFxuICAgICAgICAgICAgLi4uY2hpbGRQcm9wVmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09ICdjbGFzc05hbWUnKSBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtcbiAgICAgICAgICAgIHNsb3RQcm9wVmFsdWUsXG4gICAgICAgICAgICBjaGlsZFByb3BWYWx1ZVxuICAgICAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnNsb3RQcm9wcyxcbiAgICAgICAgLi4ub3ZlcnJpZGVQcm9wc1xuICAgIH07XG59XG5jb25zdCAkNWU2M2M5NjFmYzFjZTIxMSRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwO1xuXG5cblxuXG5leHBvcnQgeyQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwIGFzIFNsb3QsICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCRkOWYxY2NmMGJkYjA1ZDQ1IGFzIFNsb3R0YWJsZSwgJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgYXMgUm9vdH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs": /*!**********************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs ***! \**********************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useControllableState: () => (/* binding */ $71cd76cc60e0454e$export$6f32135080cb4c3)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n\n\n\n\n\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop: prop , defaultProp: defaultProp , onChange: onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp: defaultProp,\n onChange: onChange\n });\n const isControlled = prop !== undefined;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n const setValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp: defaultProp , onChange: onChange }) {\n const uncontrolledState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkk7QUFDcEQ7Ozs7QUFJekYsb0RBQW9ELHNFQUFzRTtBQUMxSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHlCQUF5QixnRkFBcUI7QUFDOUMscUJBQXFCLGtEQUFrQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsZ0RBQWdEO0FBQ3RHLDhCQUE4QiwrQ0FBZTtBQUM3QztBQUNBLHlCQUF5Qiw2Q0FBYTtBQUN0Qyx5QkFBeUIsZ0ZBQXFCO0FBQzlDLElBQUksZ0RBQWdCO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLMEU7QUFDMUUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2sgYXMgJGJuUHc5JHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSBhcyAkYm5QdzkkdXNlU3RhdGUsIHVzZVJlZiBhcyAkYm5QdzkkdXNlUmVmLCB1c2VFZmZlY3QgYXMgJGJuUHc5JHVzZUVmZmVjdH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge3VzZUNhbGxiYWNrUmVmIGFzICRiblB3OSR1c2VDYWxsYmFja1JlZn0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5cblxuXG5mdW5jdGlvbiAkNzFjZDc2Y2M2MGUwNDU0ZSRleHBvcnQkNmYzMjEzNTA4MGNiNGMzKHsgcHJvcDogcHJvcCAsIGRlZmF1bHRQcm9wOiBkZWZhdWx0UHJvcCAsIG9uQ2hhbmdlOiBvbkNoYW5nZSA9ICgpPT57fSAgfSkge1xuICAgIGNvbnN0IFt1bmNvbnRyb2xsZWRQcm9wLCBzZXRVbmNvbnRyb2xsZWRQcm9wXSA9ICQ3MWNkNzZjYzYwZTA0NTRlJHZhciR1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7XG4gICAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0UHJvcCxcbiAgICAgICAgb25DaGFuZ2U6IG9uQ2hhbmdlXG4gICAgfSk7XG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gcHJvcCAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHZhbHVlMSA9IGlzQ29udHJvbGxlZCA/IHByb3AgOiB1bmNvbnRyb2xsZWRQcm9wO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICRiblB3OSR1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XG4gICAgY29uc3Qgc2V0VmFsdWUgPSAkYm5QdzkkdXNlQ2FsbGJhY2soKG5leHRWYWx1ZSk9PntcbiAgICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICAgICAgY29uc3Qgc2V0dGVyID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgbmV4dFZhbHVlID09PSAnZnVuY3Rpb24nID8gc2V0dGVyKHByb3ApIDogbmV4dFZhbHVlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBwcm9wKSBoYW5kbGVDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9IGVsc2Ugc2V0VW5jb250cm9sbGVkUHJvcChuZXh0VmFsdWUpO1xuICAgIH0sIFtcbiAgICAgICAgaXNDb250cm9sbGVkLFxuICAgICAgICBwcm9wLFxuICAgICAgICBzZXRVbmNvbnRyb2xsZWRQcm9wLFxuICAgICAgICBoYW5kbGVDaGFuZ2VcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICB2YWx1ZTEsXG4gICAgICAgIHNldFZhbHVlXG4gICAgXTtcbn1cbmZ1bmN0aW9uICQ3MWNkNzZjYzYwZTA0NTRlJHZhciR1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7IGRlZmF1bHRQcm9wOiBkZWZhdWx0UHJvcCAsIG9uQ2hhbmdlOiBvbkNoYW5nZSAgfSkge1xuICAgIGNvbnN0IHVuY29udHJvbGxlZFN0YXRlID0gJGJuUHc5JHVzZVN0YXRlKGRlZmF1bHRQcm9wKTtcbiAgICBjb25zdCBbdmFsdWVdID0gdW5jb250cm9sbGVkU3RhdGU7XG4gICAgY29uc3QgcHJldlZhbHVlUmVmID0gJGJuUHc5JHVzZVJlZih2YWx1ZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gJGJuUHc5JHVzZUNhbGxiYWNrUmVmKG9uQ2hhbmdlKTtcbiAgICAkYm5QdzkkdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChwcmV2VmFsdWVSZWYuY3VycmVudCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICBwcmV2VmFsdWVSZWYuY3VycmVudCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcHJldlZhbHVlUmVmLFxuICAgICAgICBoYW5kbGVDaGFuZ2VcbiAgICBdKTtcbiAgICByZXR1cm4gdW5jb250cm9sbGVkU3RhdGU7XG59XG5cblxuXG5cbmV4cG9ydCB7JDcxY2Q3NmNjNjBlMDQ1NGUkZXhwb3J0JDZmMzIxMzUwODBjYjRjMyBhcyB1c2VDb250cm9sbGFibGVTdGF0ZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs": /*!********************************************************************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***! \********************************************************************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ $b1b2314f5f9a1d84$export$25bec8c6f54ee79a)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(callback);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0c7OztBQUd4RztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw2Q0FBYTtBQUNyQyxJQUFJLGdEQUFnQjtBQUNwQjtBQUNBLEtBQUssR0FBRztBQUNSLFdBQVcsOENBQWM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLcUU7QUFDckUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZVJlZiBhcyAkbHdpV2okdXNlUmVmLCB1c2VFZmZlY3QgYXMgJGx3aVdqJHVzZUVmZmVjdCwgdXNlTWVtbyBhcyAkbHdpV2okdXNlTWVtb30gZnJvbSBcInJlYWN0XCI7XG5cblxuLyoqXG4gKiBBIGN1c3RvbSBob29rIHRoYXQgY29udmVydHMgYSBjYWxsYmFjayB0byBhIHJlZiB0byBhdm9pZCB0cmlnZ2VyaW5nIHJlLXJlbmRlcnMgd2hlbiBwYXNzZWQgYXMgYVxuICogcHJvcCBvciBhdm9pZCByZS1leGVjdXRpbmcgZWZmZWN0cyB3aGVuIHBhc3NlZCBhcyBhIGRlcGVuZGVuY3lcbiAqLyBmdW5jdGlvbiAkYjFiMjMxNGY1ZjlhMWQ4NCRleHBvcnQkMjViZWM4YzZmNTRlZTc5YShjYWxsYmFjaykge1xuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gJGx3aVdqJHVzZVJlZihjYWxsYmFjayk7XG4gICAgJGx3aVdqJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2s7XG4gICAgfSk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkyNDBcbiAgICByZXR1cm4gJGx3aVdqJHVzZU1lbW8oKCk9PiguLi5hcmdzKT0+e1xuICAgICAgICAgICAgdmFyIF9jYWxsYmFja1JlZiRjdXJyZW50O1xuICAgICAgICAgICAgcmV0dXJuIChfY2FsbGJhY2tSZWYkY3VycmVudCA9IGNhbGxiYWNrUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jYWxsYmFja1JlZiRjdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY2FsbGJhY2tSZWYkY3VycmVudC5jYWxsKGNhbGxiYWNrUmVmLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICwgW10pO1xufVxuXG5cblxuXG5leHBvcnQgeyRiMWIyMzE0ZjVmOWExZDg0JGV4cG9ydCQyNWJlYzhjNmY1NGVlNzlhIGFzIHVzZUNhbGxiYWNrUmVmfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/Combination.js": /*!***************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/Combination.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _UI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UI */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/UI.js\");\n/* harmony import */ var _sidecar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidecar */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/sidecar.js\");\n\n\n\n\nvar ReactRemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll, (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, props, { ref: ref, sideCar: _sidecar__WEBPACK_IMPORTED_MODULE_1__[\"default\"] }))); });\nReactRemoveScroll.classNames = _UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll.classNames;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactRemoveScroll);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpQztBQUNGO0FBQ0s7QUFDSjtBQUNoQyx3QkFBd0IsNkNBQWdCLHlCQUF5QixRQUFRLGdEQUFtQixDQUFDLDZDQUFZLEVBQUUsK0NBQVEsR0FBRyxXQUFXLG1CQUFtQixnREFBTyxFQUFFLE1BQU07QUFDbkssK0JBQStCLDZDQUFZO0FBQzNDLGlFQUFlLGlCQUFpQixFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICcuL1VJJztcbmltcG9ydCBTaWRlQ2FyIGZyb20gJy4vc2lkZWNhcic7XG52YXIgUmVhY3RSZW1vdmVTY3JvbGwgPSBSZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZW1vdmVTY3JvbGwsIF9fYXNzaWduKHt9LCBwcm9wcywgeyByZWY6IHJlZiwgc2lkZUNhcjogU2lkZUNhciB9KSkpOyB9KTtcblJlYWN0UmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXMgPSBSZW1vdmVTY3JvbGwuY2xhc3NOYW1lcztcbmV4cG9ydCBkZWZhdWx0IFJlYWN0UmVtb3ZlU2Nyb2xsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/Combination.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/SideEffect.js": /*!**************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/SideEffect.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollSideCar: () => (/* binding */ RemoveScrollSideCar),\n/* harmony export */ getDeltaXY: () => (/* binding */ getDeltaXY),\n/* harmony export */ getTouchXY: () => (/* binding */ getTouchXY)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\");\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./aggresiveCapture */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\");\n/* harmony import */ var _handleScroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handleScroll */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/handleScroll.js\");\n\n\n\n\n\n\nvar getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);\n var touchStartRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([0, 0]);\n var activeAxis = react__WEBPACK_IMPORTED_MODULE_0__.useRef();\n var id = react__WEBPACK_IMPORTED_MODULE_0__.useState(idCounter++)[0];\n var Style = react__WEBPACK_IMPORTED_MODULE_0__.useState(function () { return (0,react_style_singleton__WEBPACK_IMPORTED_MODULE_2__.styleSingleton)(); })[0];\n var lastProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__spreadArray)([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.handleScroll)(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n inert ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__.RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFzQztBQUNQO0FBQzJCO0FBQ0g7QUFDUDtBQUN1QjtBQUNoRTtBQUNQO0FBQ0E7QUFDTyxvQ0FBb0M7QUFDM0M7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDLG9DQUFvQyxpREFBaUQsc0JBQXNCLDBDQUEwQyxxQkFBcUI7QUFDMUs7QUFDQTtBQUNPO0FBQ1AsNkJBQTZCLHlDQUFZO0FBQ3pDLHdCQUF3Qix5Q0FBWTtBQUNwQyxxQkFBcUIseUNBQVk7QUFDakMsYUFBYSwyQ0FBYztBQUMzQixnQkFBZ0IsMkNBQWMsZUFBZSxPQUFPLHFFQUFjLEtBQUs7QUFDdkUsb0JBQW9CLHlDQUFZO0FBQ2hDLElBQUksNENBQWU7QUFDbkI7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0EsMEJBQTBCLG9EQUFhO0FBQ3ZDLDRDQUE0Qyw2REFBNkQ7QUFDekc7QUFDQTtBQUNBLGdEQUFnRCxnRUFBZ0U7QUFDaEg7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDRCQUE0Qiw4Q0FBaUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxzRUFBdUI7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxzRUFBdUI7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwyREFBWTtBQUMzQixLQUFLO0FBQ0wsd0JBQXdCLDhDQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsNEZBQTRGO0FBQ3ZLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxxQ0FBcUM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsdUJBQXVCLDhDQUFpQjtBQUN4QyxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLDBGQUEwRixxQkFBcUI7QUFDL0csU0FBUztBQUNULEtBQUs7QUFDTCwyQkFBMkIsOENBQWlCO0FBQzVDO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsc0JBQXNCLDhDQUFpQjtBQUN2QztBQUNBLEtBQUs7QUFDTCwwQkFBMEIsOENBQWlCO0FBQzNDO0FBQ0EsS0FBSztBQUNMLElBQUksNENBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCwwREFBMEQseURBQVU7QUFDcEUsOERBQThELHlEQUFVO0FBQ3hFLGtFQUFrRSx5REFBVTtBQUM1RTtBQUNBLDJEQUEyRCx3QkFBd0I7QUFDbkYsaUVBQWlFLHlEQUFVO0FBQzNFLHFFQUFxRSx5REFBVTtBQUMvRSx5RUFBeUUseURBQVU7QUFDbkY7QUFDQSxLQUFLO0FBQ0w7QUFDQSxZQUFZLGdEQUFtQixDQUFDLDJDQUFjO0FBQzlDLGdCQUFnQixnREFBbUIsVUFBVSwyQkFBMkI7QUFDeEUsMEJBQTBCLGdEQUFtQixDQUFDLG9FQUFlLElBQUksbUJBQW1CO0FBQ3BGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXInO1xuaW1wb3J0IHsgc3R5bGVTaW5nbGV0b24gfSBmcm9tICdyZWFjdC1zdHlsZS1zaW5nbGV0b24nO1xuaW1wb3J0IHsgbm9uUGFzc2l2ZSB9IGZyb20gJy4vYWdncmVzaXZlQ2FwdHVyZSc7XG5pbXBvcnQgeyBoYW5kbGVTY3JvbGwsIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkIH0gZnJvbSAnLi9oYW5kbGVTY3JvbGwnO1xuZXhwb3J0IHZhciBnZXRUb3VjaFhZID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdjaGFuZ2VkVG91Y2hlcycgaW4gZXZlbnQgPyBbZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WV0gOiBbMCwgMF07XG59O1xuZXhwb3J0IHZhciBnZXREZWx0YVhZID0gZnVuY3Rpb24gKGV2ZW50KSB7IHJldHVybiBbZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVldOyB9O1xudmFyIGV4dHJhY3RSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgcmV0dXJuIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmID8gcmVmLmN1cnJlbnQgOiByZWY7XG59O1xudmFyIGRlbHRhQ29tcGFyZSA9IGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiB4WzBdID09PSB5WzBdICYmIHhbMV0gPT09IHlbMV07IH07XG52YXIgZ2VuZXJhdGVTdHlsZSA9IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gXCJcXG4gIC5ibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCwgXCIge3BvaW50ZXItZXZlbnRzOiBub25lO31cXG4gIC5hbGxvdy1pbnRlcmFjdGl2aXR5LVwiKS5jb25jYXQoaWQsIFwiIHtwb2ludGVyLWV2ZW50czogYWxsO31cXG5cIik7IH07XG52YXIgaWRDb3VudGVyID0gMDtcbnZhciBsb2NrU3RhY2sgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBSZW1vdmVTY3JvbGxTaWRlQ2FyKHByb3BzKSB7XG4gICAgdmFyIHNob3VsZFByZXZlbnRRdWV1ZSA9IFJlYWN0LnVzZVJlZihbXSk7XG4gICAgdmFyIHRvdWNoU3RhcnRSZWYgPSBSZWFjdC51c2VSZWYoWzAsIDBdKTtcbiAgICB2YXIgYWN0aXZlQXhpcyA9IFJlYWN0LnVzZVJlZigpO1xuICAgIHZhciBpZCA9IFJlYWN0LnVzZVN0YXRlKGlkQ291bnRlcisrKVswXTtcbiAgICB2YXIgU3R5bGUgPSBSZWFjdC51c2VTdGF0ZShmdW5jdGlvbiAoKSB7IHJldHVybiBzdHlsZVNpbmdsZXRvbigpOyB9KVswXTtcbiAgICB2YXIgbGFzdFByb3BzID0gUmVhY3QudXNlUmVmKHByb3BzKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBsYXN0UHJvcHMuY3VycmVudCA9IHByb3BzO1xuICAgIH0sIFtwcm9wc10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChwcm9wcy5pbmVydCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiYmxvY2staW50ZXJhY3Rpdml0eS1cIi5jb25jYXQoaWQpKTtcbiAgICAgICAgICAgIHZhciBhbGxvd18xID0gX19zcHJlYWRBcnJheShbcHJvcHMubG9ja1JlZi5jdXJyZW50XSwgKHByb3BzLnNoYXJkcyB8fCBbXSkubWFwKGV4dHJhY3RSZWYpLCB0cnVlKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgICAgICBhbGxvd18xLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbC5jbGFzc0xpc3QuYWRkKFwiYWxsb3ctaW50ZXJhY3Rpdml0eS1cIi5jb25jYXQoaWQpKTsgfSk7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImJsb2NrLWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7XG4gICAgICAgICAgICAgICAgYWxsb3dfMS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWwuY2xhc3NMaXN0LnJlbW92ZShcImFsbG93LWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7IH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfSwgW3Byb3BzLmluZXJ0LCBwcm9wcy5sb2NrUmVmLmN1cnJlbnQsIHByb3BzLnNoYXJkc10pO1xuICAgIHZhciBzaG91bGRDYW5jZWxFdmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCwgcGFyZW50KSB7XG4gICAgICAgIGlmICgndG91Y2hlcycgaW4gZXZlbnQgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybiAhbGFzdFByb3BzLmN1cnJlbnQuYWxsb3dQaW5jaFpvb207XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvdWNoID0gZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIHZhciB0b3VjaFN0YXJ0ID0gdG91Y2hTdGFydFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgZGVsdGFYID0gJ2RlbHRhWCcgaW4gZXZlbnQgPyBldmVudC5kZWx0YVggOiB0b3VjaFN0YXJ0WzBdIC0gdG91Y2hbMF07XG4gICAgICAgIHZhciBkZWx0YVkgPSAnZGVsdGFZJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWSA6IHRvdWNoU3RhcnRbMV0gLSB0b3VjaFsxXTtcbiAgICAgICAgdmFyIGN1cnJlbnRBeGlzO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICB2YXIgbW92ZURpcmVjdGlvbiA9IE1hdGguYWJzKGRlbHRhWCkgPiBNYXRoLmFicyhkZWx0YVkpID8gJ2gnIDogJ3YnO1xuICAgICAgICAvLyBhbGxvdyBob3Jpem9udGFsIHRvdWNoIG1vdmUgb24gUmFuZ2UgaW5wdXRzLiBUaGV5IHdpbGwgbm90IGNhdXNlIGFueSBzY3JvbGxcbiAgICAgICAgaWYgKCd0b3VjaGVzJyBpbiBldmVudCAmJiBtb3ZlRGlyZWN0aW9uID09PSAnaCcgJiYgdGFyZ2V0LnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgIGlmICghY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbiA9PT0gJ3YnID8gJ2gnIDogJ3YnO1xuICAgICAgICAgICAgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgICAgICAvLyBvdGhlciBheGlzIG1pZ2h0IGJlIG5vdCBzY3JvbGxhYmxlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhY3RpdmVBeGlzLmN1cnJlbnQgJiYgJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCAmJiAoZGVsdGFYIHx8IGRlbHRhWSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUF4aXMuY3VycmVudCA9IGN1cnJlbnRBeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY3VycmVudEF4aXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYW5jZWxpbmdBeGlzID0gYWN0aXZlQXhpcy5jdXJyZW50IHx8IGN1cnJlbnRBeGlzO1xuICAgICAgICByZXR1cm4gaGFuZGxlU2Nyb2xsKGNhbmNlbGluZ0F4aXMsIHBhcmVudCwgZXZlbnQsIGNhbmNlbGluZ0F4aXMgPT09ICdoJyA/IGRlbHRhWCA6IGRlbHRhWSwgdHJ1ZSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzaG91bGRQcmV2ZW50ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9ldmVudCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBfZXZlbnQ7XG4gICAgICAgIGlmICghbG9ja1N0YWNrLmxlbmd0aCB8fCBsb2NrU3RhY2tbbG9ja1N0YWNrLmxlbmd0aCAtIDFdICE9PSBTdHlsZSkge1xuICAgICAgICAgICAgLy8gbm90IHRoZSBsYXN0IGFjdGl2ZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWx0YSA9ICdkZWx0YVknIGluIGV2ZW50ID8gZ2V0RGVsdGFYWShldmVudCkgOiBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgdmFyIHNvdXJjZUV2ZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLm5hbWUgPT09IGV2ZW50LnR5cGUgJiYgZS50YXJnZXQgPT09IGV2ZW50LnRhcmdldCAmJiBkZWx0YUNvbXBhcmUoZS5kZWx0YSwgZGVsdGEpOyB9KVswXTtcbiAgICAgICAgLy8gc2VsZiBldmVudCwgYW5kIHNob3VsZCBiZSBjYW5jZWxlZFxuICAgICAgICBpZiAoc291cmNlRXZlbnQgJiYgc291cmNlRXZlbnQuc2hvdWxkKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gb3V0c2lkZSBvciBzaGFyZCBldmVudFxuICAgICAgICBpZiAoIXNvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgc2hhcmROb2RlcyA9IChsYXN0UHJvcHMuY3VycmVudC5zaGFyZHMgfHwgW10pXG4gICAgICAgICAgICAgICAgLm1hcChleHRyYWN0UmVmKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7IH0pO1xuICAgICAgICAgICAgdmFyIHNob3VsZFN0b3AgPSBzaGFyZE5vZGVzLmxlbmd0aCA+IDAgPyBzaG91bGRDYW5jZWxFdmVudChldmVudCwgc2hhcmROb2Rlc1swXSkgOiAhbGFzdFByb3BzLmN1cnJlbnQubm9Jc29sYXRpb247XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RvcCkge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIHZhciBzaG91bGRDYW5jZWwgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAobmFtZSwgZGVsdGEsIHRhcmdldCwgc2hvdWxkKSB7XG4gICAgICAgIHZhciBldmVudCA9IHsgbmFtZTogbmFtZSwgZGVsdGE6IGRlbHRhLCB0YXJnZXQ6IHRhcmdldCwgc2hvdWxkOiBzaG91bGQgfTtcbiAgICAgICAgc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQucHVzaChldmVudCk7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQgPSBzaG91bGRQcmV2ZW50UXVldWUuY3VycmVudC5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGUgIT09IGV2ZW50OyB9KTtcbiAgICAgICAgfSwgMSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzY3JvbGxUb3VjaFN0YXJ0ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRvdWNoU3RhcnRSZWYuY3VycmVudCA9IGdldFRvdWNoWFkoZXZlbnQpO1xuICAgICAgICBhY3RpdmVBeGlzLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgfSwgW10pO1xuICAgIHZhciBzY3JvbGxXaGVlbCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzaG91bGRDYW5jZWwoZXZlbnQudHlwZSwgZ2V0RGVsdGFYWShldmVudCksIGV2ZW50LnRhcmdldCwgc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHByb3BzLmxvY2tSZWYuY3VycmVudCkpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsVG91Y2hNb3ZlID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHNob3VsZENhbmNlbChldmVudC50eXBlLCBnZXRUb3VjaFhZKGV2ZW50KSwgZXZlbnQudGFyZ2V0LCBzaG91bGRDYW5jZWxFdmVudChldmVudCwgcHJvcHMubG9ja1JlZi5jdXJyZW50KSk7XG4gICAgfSwgW10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvY2tTdGFjay5wdXNoKFN0eWxlKTtcbiAgICAgICAgcHJvcHMuc2V0Q2FsbGJhY2tzKHtcbiAgICAgICAgICAgIG9uU2Nyb2xsQ2FwdHVyZTogc2Nyb2xsV2hlZWwsXG4gICAgICAgICAgICBvbldoZWVsQ2FwdHVyZTogc2Nyb2xsV2hlZWwsXG4gICAgICAgICAgICBvblRvdWNoTW92ZUNhcHR1cmU6IHNjcm9sbFRvdWNoTW92ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgc2hvdWxkUHJldmVudCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgc2Nyb2xsVG91Y2hTdGFydCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2NrU3RhY2sgPSBsb2NrU3RhY2suZmlsdGVyKGZ1bmN0aW9uIChpbnN0KSB7IHJldHVybiBpbnN0ICE9PSBTdHlsZTsgfSk7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgc2hvdWxkUHJldmVudCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgc2Nyb2xsVG91Y2hTdGFydCwgbm9uUGFzc2l2ZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHZhciByZW1vdmVTY3JvbGxCYXIgPSBwcm9wcy5yZW1vdmVTY3JvbGxCYXIsIGluZXJ0ID0gcHJvcHMuaW5lcnQ7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBpbmVydCA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGUsIHsgc3R5bGVzOiBnZW5lcmF0ZVN0eWxlKGlkKSB9KSA6IG51bGwsXG4gICAgICAgIHJlbW92ZVNjcm9sbEJhciA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVtb3ZlU2Nyb2xsQmFyLCB7IGdhcE1vZGU6IFwibWFyZ2luXCIgfSkgOiBudWxsKSk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/SideEffect.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/UI.js": /*!******************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/UI.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScroll: () => (/* binding */ RemoveScroll)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar/constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var use_callback_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! use-callback-ref */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n\n\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, parentRef) {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n var _a = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = (0,use_callback_ref__WEBPACK_IMPORTED_MODULE_3__.useMergeRefs)([ref, parentRef]);\n var containerProps = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, rest), callbacks);\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n enabled && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(SideCar, { sideCar: _medium__WEBPACK_IMPORTED_MODULE_4__.effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children), (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps), { ref: containerRef }))) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement(Container, (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName,\n zeroRight: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName,\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1VJLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBeUM7QUFDVjtBQUM0RDtBQUMzQztBQUNYO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw2Q0FBZ0I7QUFDbkMsY0FBYyx5Q0FBWTtBQUMxQixhQUFhLDJDQUFjO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxnWEFBZ1gsNkNBQU07QUFDdFg7QUFDQSx1QkFBdUIsOERBQVk7QUFDbkMseUJBQXlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRztBQUM3QyxZQUFZLGdEQUFtQixDQUFDLDJDQUFjO0FBQzlDLG9CQUFvQixnREFBbUIsWUFBWSxTQUFTLDhDQUFTLHdLQUF3SztBQUM3Tyx3QkFBd0IsK0NBQWtCLENBQUMsMkNBQWMsaUJBQWlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRyxxQkFBcUIsbUJBQW1CLE9BQU8sZ0RBQW1CLFlBQVksK0NBQVEsR0FBRyxvQkFBb0IseUNBQXlDO0FBQ3BQLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlGQUFrQjtBQUNqQyxlQUFlLGlGQUFrQjtBQUNqQztBQUN3QiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvY21kay9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9VSS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX2Fzc2lnbiwgX19yZXN0IH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmdWxsV2lkdGhDbGFzc05hbWUsIHplcm9SaWdodENsYXNzTmFtZSB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VNZXJnZVJlZnMgfSBmcm9tICd1c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IGVmZmVjdENhciB9IGZyb20gJy4vbWVkaXVtJztcbnZhciBub3RoaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybjtcbn07XG4vKipcbiAqIFJlbW92ZXMgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZ2UgYW5kIGNvbnRhaW4gdGhlIHNjcm9sbCB3aXRoaW4gdGhlIExvY2tcbiAqL1xudmFyIFJlbW92ZVNjcm9sbCA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCBwYXJlbnRSZWYpIHtcbiAgICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgb25TY3JvbGxDYXB0dXJlOiBub3RoaW5nLFxuICAgICAgICBvbldoZWVsQ2FwdHVyZTogbm90aGluZyxcbiAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBub3RoaW5nLFxuICAgIH0pLCBjYWxsYmFja3MgPSBfYVswXSwgc2V0Q2FsbGJhY2tzID0gX2FbMV07XG4gICAgdmFyIGZvcndhcmRQcm9wcyA9IHByb3BzLmZvcndhcmRQcm9wcywgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZW1vdmVTY3JvbGxCYXIgPSBwcm9wcy5yZW1vdmVTY3JvbGxCYXIsIGVuYWJsZWQgPSBwcm9wcy5lbmFibGVkLCBzaGFyZHMgPSBwcm9wcy5zaGFyZHMsIHNpZGVDYXIgPSBwcm9wcy5zaWRlQ2FyLCBub0lzb2xhdGlvbiA9IHByb3BzLm5vSXNvbGF0aW9uLCBpbmVydCA9IHByb3BzLmluZXJ0LCBhbGxvd1BpbmNoWm9vbSA9IHByb3BzLmFsbG93UGluY2hab29tLCBfYiA9IHByb3BzLmFzLCBDb250YWluZXIgPSBfYiA9PT0gdm9pZCAwID8gJ2RpdicgOiBfYiwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiZm9yd2FyZFByb3BzXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJyZW1vdmVTY3JvbGxCYXJcIiwgXCJlbmFibGVkXCIsIFwic2hhcmRzXCIsIFwic2lkZUNhclwiLCBcIm5vSXNvbGF0aW9uXCIsIFwiaW5lcnRcIiwgXCJhbGxvd1BpbmNoWm9vbVwiLCBcImFzXCJdKTtcbiAgICB2YXIgU2lkZUNhciA9IHNpZGVDYXI7XG4gICAgdmFyIGNvbnRhaW5lclJlZiA9IHVzZU1lcmdlUmVmcyhbcmVmLCBwYXJlbnRSZWZdKTtcbiAgICB2YXIgY29udGFpbmVyUHJvcHMgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgcmVzdCksIGNhbGxiYWNrcyk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBlbmFibGVkICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFNpZGVDYXIsIHsgc2lkZUNhcjogZWZmZWN0Q2FyLCByZW1vdmVTY3JvbGxCYXI6IHJlbW92ZVNjcm9sbEJhciwgc2hhcmRzOiBzaGFyZHMsIG5vSXNvbGF0aW9uOiBub0lzb2xhdGlvbiwgaW5lcnQ6IGluZXJ0LCBzZXRDYWxsYmFja3M6IHNldENhbGxiYWNrcywgYWxsb3dQaW5jaFpvb206ICEhYWxsb3dQaW5jaFpvb20sIGxvY2tSZWY6IHJlZiB9KSksXG4gICAgICAgIGZvcndhcmRQcm9wcyA/IChSZWFjdC5jbG9uZUVsZW1lbnQoUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbiksIF9fYXNzaWduKF9fYXNzaWduKHt9LCBjb250YWluZXJQcm9wcyksIHsgcmVmOiBjb250YWluZXJSZWYgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENvbnRhaW5lciwgX19hc3NpZ24oe30sIGNvbnRhaW5lclByb3BzLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCByZWY6IGNvbnRhaW5lclJlZiB9KSwgY2hpbGRyZW4pKSkpO1xufSk7XG5SZW1vdmVTY3JvbGwuZGVmYXVsdFByb3BzID0ge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgcmVtb3ZlU2Nyb2xsQmFyOiB0cnVlLFxuICAgIGluZXJ0OiBmYWxzZSxcbn07XG5SZW1vdmVTY3JvbGwuY2xhc3NOYW1lcyA9IHtcbiAgICBmdWxsV2lkdGg6IGZ1bGxXaWR0aENsYXNzTmFtZSxcbiAgICB6ZXJvUmlnaHQ6IHplcm9SaWdodENsYXNzTmFtZSxcbn07XG5leHBvcnQgeyBSZW1vdmVTY3JvbGwgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/UI.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js": /*!********************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ nonPassive: () => (/* binding */ nonPassive)\n/* harmony export */ });\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nvar nonPassive = passiveSupported ? { passive: false } : false;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2FnZ3Jlc2l2ZUNhcHR1cmUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLHNDQUFzQyxpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvYWdncmVzaXZlQ2FwdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgbm9uUGFzc2l2ZSA9IHBhc3NpdmVTdXBwb3J0ZWQgPyB7IHBhc3NpdmU6IGZhbHNlIH0gOiBmYWxzZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/handleScroll.js": /*!****************************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/handleScroll.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleScroll: () => (/* binding */ handleScroll),\n/* harmony export */ locationCouldBeScrolled: () => (/* binding */ locationCouldBeScrolled)\n/* harmony export */ });\nvar alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nvar locationCouldBeScrolled = function (axis, node) {\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];\n if (s > d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nvar handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2hhbmRsZVNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxnREFBZ0Q7QUFDekM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2hhbmRsZVNjcm9sbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYWx3YXlzQ29udGFpbnNTY3JvbGwgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIC8vIHRleHRhcmVhIHdpbGwgYWx3YXlzIF9jb250YWluXyBzY3JvbGwgaW5zaWRlIHNlbGYuIEl0IG9ubHkgY2FuIGJlIGhpZGRlblxuICAgIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdURVhUQVJFQSc7XG59O1xudmFyIGVsZW1lbnRDYW5CZVNjcm9sbGVkID0gZnVuY3Rpb24gKG5vZGUsIG92ZXJmbG93KSB7XG4gICAgdmFyIHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIHJldHVybiAoXG4gICAgLy8gbm90LW5vdC1zY3JvbGxhYmxlXG4gICAgc3R5bGVzW292ZXJmbG93XSAhPT0gJ2hpZGRlbicgJiZcbiAgICAgICAgLy8gY29udGFpbnMgc2Nyb2xsIGluc2lkZSBzZWxmXG4gICAgICAgICEoc3R5bGVzLm92ZXJmbG93WSA9PT0gc3R5bGVzLm92ZXJmbG93WCAmJiAhYWx3YXlzQ29udGFpbnNTY3JvbGwobm9kZSkgJiYgc3R5bGVzW292ZXJmbG93XSA9PT0gJ3Zpc2libGUnKSk7XG59O1xudmFyIGVsZW1lbnRDb3VsZEJlVlNjcm9sbGVkID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGVsZW1lbnRDYW5CZVNjcm9sbGVkKG5vZGUsICdvdmVyZmxvd1knKTsgfTtcbnZhciBlbGVtZW50Q291bGRCZUhTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBlbGVtZW50Q2FuQmVTY3JvbGxlZChub2RlLCAnb3ZlcmZsb3dYJyk7IH07XG5leHBvcnQgdmFyIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkID0gZnVuY3Rpb24gKGF4aXMsIG5vZGUpIHtcbiAgICB2YXIgY3VycmVudCA9IG5vZGU7XG4gICAgZG8ge1xuICAgICAgICAvLyBTa2lwIG92ZXIgc2hhZG93IHJvb3RcbiAgICAgICAgaWYgKHR5cGVvZiBTaGFkb3dSb290ICE9PSAndW5kZWZpbmVkJyAmJiBjdXJyZW50IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuaG9zdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNTY3JvbGxhYmxlID0gZWxlbWVudENvdWxkQmVTY3JvbGxlZChheGlzLCBjdXJyZW50KTtcbiAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZSkge1xuICAgICAgICAgICAgdmFyIF9hID0gZ2V0U2Nyb2xsVmFyaWFibGVzKGF4aXMsIGN1cnJlbnQpLCBzID0gX2FbMV0sIGQgPSBfYVsyXTtcbiAgICAgICAgICAgIGlmIChzID4gZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XG4gICAgfSB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBkb2N1bWVudC5ib2R5KTtcbiAgICByZXR1cm4gZmFsc2U7XG59O1xudmFyIGdldFZTY3JvbGxWYXJpYWJsZXMgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2Nyb2xsVG9wID0gX2Euc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQgPSBfYS5zY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCA9IF9hLmNsaWVudEhlaWdodDtcbiAgICByZXR1cm4gW1xuICAgICAgICBzY3JvbGxUb3AsXG4gICAgICAgIHNjcm9sbEhlaWdodCxcbiAgICAgICAgY2xpZW50SGVpZ2h0LFxuICAgIF07XG59O1xudmFyIGdldEhTY3JvbGxWYXJpYWJsZXMgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2Nyb2xsTGVmdCA9IF9hLnNjcm9sbExlZnQsIHNjcm9sbFdpZHRoID0gX2Euc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoID0gX2EuY2xpZW50V2lkdGg7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgICAgc2Nyb2xsV2lkdGgsXG4gICAgICAgIGNsaWVudFdpZHRoLFxuICAgIF07XG59O1xudmFyIGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQgPSBmdW5jdGlvbiAoYXhpcywgbm9kZSkge1xuICAgIHJldHVybiBheGlzID09PSAndicgPyBlbGVtZW50Q291bGRCZVZTY3JvbGxlZChub2RlKSA6IGVsZW1lbnRDb3VsZEJlSFNjcm9sbGVkKG5vZGUpO1xufTtcbnZhciBnZXRTY3JvbGxWYXJpYWJsZXMgPSBmdW5jdGlvbiAoYXhpcywgbm9kZSkge1xuICAgIHJldHVybiBheGlzID09PSAndicgPyBnZXRWU2Nyb2xsVmFyaWFibGVzKG5vZGUpIDogZ2V0SFNjcm9sbFZhcmlhYmxlcyhub2RlKTtcbn07XG52YXIgZ2V0RGlyZWN0aW9uRmFjdG9yID0gZnVuY3Rpb24gKGF4aXMsIGRpcmVjdGlvbikge1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBlbGVtZW50J3MgZGlyZWN0aW9uIGlzIHJ0bCAocmlnaHQtdG8tbGVmdCksIHRoZW4gc2Nyb2xsTGVmdCBpcyAwIHdoZW4gdGhlIHNjcm9sbGJhciBpcyBhdCBpdHMgcmlnaHRtb3N0IHBvc2l0aW9uLFxuICAgICAqIGFuZCB0aGVuIGluY3JlYXNpbmdseSBuZWdhdGl2ZSBhcyB5b3Ugc2Nyb2xsIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgY29udGVudC5cbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50L3Njcm9sbExlZnRcbiAgICAgKi9cbiAgICByZXR1cm4gYXhpcyA9PT0gJ2gnICYmIGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyAtMSA6IDE7XG59O1xuZXhwb3J0IHZhciBoYW5kbGVTY3JvbGwgPSBmdW5jdGlvbiAoYXhpcywgZW5kVGFyZ2V0LCBldmVudCwgc291cmNlRGVsdGEsIG5vT3ZlcnNjcm9sbCkge1xuICAgIHZhciBkaXJlY3Rpb25GYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3IoYXhpcywgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZW5kVGFyZ2V0KS5kaXJlY3Rpb24pO1xuICAgIHZhciBkZWx0YSA9IGRpcmVjdGlvbkZhY3RvciAqIHNvdXJjZURlbHRhO1xuICAgIC8vIGZpbmQgc2Nyb2xsYWJsZSB0YXJnZXRcbiAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgIHZhciB0YXJnZXRJbkxvY2sgPSBlbmRUYXJnZXQuY29udGFpbnModGFyZ2V0KTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gZmFsc2U7XG4gICAgdmFyIGlzRGVsdGFQb3NpdGl2ZSA9IGRlbHRhID4gMDtcbiAgICB2YXIgYXZhaWxhYmxlU2Nyb2xsID0gMDtcbiAgICB2YXIgYXZhaWxhYmxlU2Nyb2xsVG9wID0gMDtcbiAgICBkbyB7XG4gICAgICAgIHZhciBfYSA9IGdldFNjcm9sbFZhcmlhYmxlcyhheGlzLCB0YXJnZXQpLCBwb3NpdGlvbiA9IF9hWzBdLCBzY3JvbGxfMSA9IF9hWzFdLCBjYXBhY2l0eSA9IF9hWzJdO1xuICAgICAgICB2YXIgZWxlbWVudFNjcm9sbCA9IHNjcm9sbF8xIC0gY2FwYWNpdHkgLSBkaXJlY3Rpb25GYWN0b3IgKiBwb3NpdGlvbjtcbiAgICAgICAgaWYgKHBvc2l0aW9uIHx8IGVsZW1lbnRTY3JvbGwpIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Q291bGRCZVNjcm9sbGVkKGF4aXMsIHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVTY3JvbGwgKz0gZWxlbWVudFNjcm9sbDtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVTY3JvbGxUb3AgKz0gcG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7XG4gICAgfSB3aGlsZSAoXG4gICAgLy8gcG9ydGFsZWQgY29udGVudFxuICAgICghdGFyZ2V0SW5Mb2NrICYmIHRhcmdldCAhPT0gZG9jdW1lbnQuYm9keSkgfHxcbiAgICAgICAgLy8gc2VsZiBjb250ZW50XG4gICAgICAgICh0YXJnZXRJbkxvY2sgJiYgKGVuZFRhcmdldC5jb250YWlucyh0YXJnZXQpIHx8IGVuZFRhcmdldCA9PT0gdGFyZ2V0KSkpO1xuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgKChub092ZXJzY3JvbGwgJiYgYXZhaWxhYmxlU2Nyb2xsID09PSAwKSB8fCAoIW5vT3ZlcnNjcm9sbCAmJiBkZWx0YSA+IGF2YWlsYWJsZVNjcm9sbCkpKSB7XG4gICAgICAgIHNob3VsZENhbmNlbFNjcm9sbCA9IHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFpc0RlbHRhUG9zaXRpdmUgJiZcbiAgICAgICAgKChub092ZXJzY3JvbGwgJiYgYXZhaWxhYmxlU2Nyb2xsVG9wID09PSAwKSB8fCAoIW5vT3ZlcnNjcm9sbCAmJiAtZGVsdGEgPiBhdmFpbGFibGVTY3JvbGxUb3ApKSkge1xuICAgICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkQ2FuY2VsU2Nyb2xsO1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/handleScroll.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js": /*!**********************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ effectCar: () => (/* binding */ effectCar)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\");\n\nvar effectCar = (0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.createSidecarMedium)();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUMzQyxnQkFBZ0IsZ0VBQW1CIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTaWRlY2FyTWVkaXVtIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuZXhwb3J0IHZhciBlZmZlY3RDYXIgPSBjcmVhdGVTaWRlY2FyTWVkaXVtKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/sidecar.js": /*!***********************************************************************************!*\ !*** ./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/sidecar.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\");\n/* harmony import */ var _SideEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SideEffect */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/SideEffect.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.exportSidecar)(_medium__WEBPACK_IMPORTED_MODULE_1__.effectCar, _SideEffect__WEBPACK_IMPORTED_MODULE_2__.RemoveScrollSideCar));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbWRrL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L3NpZGVjYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QztBQUNPO0FBQ2Q7QUFDckMsaUVBQWUsMERBQWEsQ0FBQyw4Q0FBUyxFQUFFLDREQUFtQixDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2NtZGsvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvc2lkZWNhci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBvcnRTaWRlY2FyIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsU2lkZUNhciB9IGZyb20gJy4vU2lkZUVmZmVjdCc7XG5pbXBvcnQgeyBlZmZlY3RDYXIgfSBmcm9tICcuL21lZGl1bSc7XG5leHBvcnQgZGVmYXVsdCBleHBvcnRTaWRlY2FyKGVmZmVjdENhciwgUmVtb3ZlU2Nyb2xsU2lkZUNhcik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/sidecar.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/css-in-js-utils/lib/hyphenateProperty.js": /*!***************************************************************!*\ !*** ./node_modules/css-in-js-utils/lib/hyphenateProperty.js ***! \***************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = __webpack_require__(/*! hyphenate-style-name */ \"(app-pages-browser)/./node_modules/hyphenate-style-name/index.js\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jc3MtaW4tanMtdXRpbHMvbGliL2h5cGhlbmF0ZVByb3BlcnR5LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlOztBQUVmLDBCQUEwQixtQkFBTyxDQUFDLDhGQUFzQjs7QUFFeEQ7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2Nzcy1pbi1qcy11dGlscy9saWIvaHlwaGVuYXRlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gaHlwaGVuYXRlUHJvcGVydHk7XG5cbnZhciBfaHlwaGVuYXRlU3R5bGVOYW1lID0gcmVxdWlyZSgnaHlwaGVuYXRlLXN0eWxlLW5hbWUnKTtcblxudmFyIF9oeXBoZW5hdGVTdHlsZU5hbWUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHlwaGVuYXRlU3R5bGVOYW1lKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gaHlwaGVuYXRlUHJvcGVydHkocHJvcGVydHkpIHtcbiAgcmV0dXJuICgwLCBfaHlwaGVuYXRlU3R5bGVOYW1lMi5kZWZhdWx0KShwcm9wZXJ0eSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/css-in-js-utils/lib/hyphenateProperty.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js": /*!*************************************************************!*\ !*** ./node_modules/css-in-js-utils/lib/isPrefixedValue.js ***! \*************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jc3MtaW4tanMtdXRpbHMvbGliL2lzUHJlZml4ZWRWYWx1ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9jc3MtaW4tanMtdXRpbHMvbGliL2lzUHJlZml4ZWRWYWx1ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc1ByZWZpeGVkVmFsdWU7XG52YXIgcmVnZXggPSAvLXdlYmtpdC18LW1vei18LW1zLS87XG5cbmZ1bmN0aW9uIGlzUHJlZml4ZWRWYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiByZWdleC50ZXN0KHZhbHVlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js": /*!*****************************************************!*\ !*** ./node_modules/get-nonce/dist/es2015/index.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNonce: () => (/* binding */ getNonce),\n/* harmony export */ setNonce: () => (/* binding */ setNonce)\n/* harmony export */ });\nvar currentNonce;\nvar setNonce = function (nonce) {\n currentNonce = nonce;\n};\nvar getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (true) {\n return __webpack_require__.nc;\n }\n return undefined;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nZXQtbm9uY2UvZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUF3QztBQUNoRCxlQUFlLHNCQUFpQjtBQUNoQztBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2dldC1ub25jZS9kaXN0L2VzMjAxNS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3VycmVudE5vbmNlO1xuZXhwb3J0IHZhciBzZXROb25jZSA9IGZ1bmN0aW9uIChub25jZSkge1xuICAgIGN1cnJlbnROb25jZSA9IG5vbmNlO1xufTtcbmV4cG9ydCB2YXIgZ2V0Tm9uY2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGN1cnJlbnROb25jZSkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gX193ZWJwYWNrX25vbmNlX187XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/headers-polyfill/lib/index.mjs": /*!*****************************************************!*\ !*** ./node_modules/headers-polyfill/lib/index.mjs ***! \*****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Headers: () => (/* binding */ Headers),\n/* harmony export */ flattenHeadersList: () => (/* binding */ flattenHeadersList),\n/* harmony export */ flattenHeadersObject: () => (/* binding */ flattenHeadersObject),\n/* harmony export */ getRawHeaders: () => (/* binding */ getRawHeaders),\n/* harmony export */ headersToList: () => (/* binding */ headersToList),\n/* harmony export */ headersToObject: () => (/* binding */ headersToObject),\n/* harmony export */ headersToString: () => (/* binding */ headersToString),\n/* harmony export */ listToHeaders: () => (/* binding */ listToHeaders),\n/* harmony export */ objectToHeaders: () => (/* binding */ objectToHeaders),\n/* harmony export */ reduceHeadersObject: () => (/* binding */ reduceHeadersObject),\n/* harmony export */ stringToHeaders: () => (/* binding */ stringToHeaders)\n/* harmony export */ });\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/set-cookie-parser/lib/set-cookie.js\nvar require_set_cookie = __commonJS({\n \"node_modules/set-cookie-parser/lib/set-cookie.js\"(exports, module) {\n \"use strict\";\n var defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false\n };\n function isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n }\n function parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value;\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" + value + \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n var cookie = {\n name,\n value\n };\n parts.forEach(function(part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value2 = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value2);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value2, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value2;\n } else {\n cookie[key] = value2;\n }\n });\n return cookie;\n }\n function parseNameValuePair(nameValuePairStr) {\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\");\n } else {\n value = nameValuePairStr;\n }\n return { name, value };\n }\n function parse(input, options) {\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n input = input.headers[\"set-cookie\"];\n } else {\n var sch = input.headers[Object.keys(input.headers).find(function(key) {\n return key.toLowerCase() === \"set-cookie\";\n })];\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function(str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function(cookies2, str) {\n var cookie = parseString(str, options);\n cookies2[cookie.name] = cookie;\n return cookies2;\n }, cookies);\n }\n }\n function splitCookiesString2(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n }\n module.exports = parse;\n module.exports.parse = parse;\n module.exports.parseString = parseString;\n module.exports.splitCookiesString = splitCookiesString2;\n }\n});\n\n// src/Headers.ts\nvar import_set_cookie_parser = __toESM(require_set_cookie());\n\n// src/utils/normalizeHeaderName.ts\nvar HEADERS_INVALID_CHARACTERS = /[^a-z0-9\\-#$%&'*+.^_`|~]/i;\nfunction normalizeHeaderName(name) {\n if (HEADERS_INVALID_CHARACTERS.test(name) || name.trim() === \"\") {\n throw new TypeError(\"Invalid character in header field name\");\n }\n return name.trim().toLowerCase();\n}\n\n// src/utils/normalizeHeaderValue.ts\nvar charCodesToRemove = [\n String.fromCharCode(10),\n String.fromCharCode(13),\n String.fromCharCode(9),\n String.fromCharCode(32)\n];\nvar HEADER_VALUE_REMOVE_REGEXP = new RegExp(\n `(^[${charCodesToRemove.join(\"\")}]|$[${charCodesToRemove.join(\"\")}])`,\n \"g\"\n);\nfunction normalizeHeaderValue(value) {\n const nextValue = value.replace(HEADER_VALUE_REMOVE_REGEXP, \"\");\n return nextValue;\n}\n\n// src/utils/isValidHeaderName.ts\nfunction isValidHeaderName(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n if (value.length === 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n if (character > 127 || !isToken(character)) {\n return false;\n }\n }\n return true;\n}\nfunction isToken(value) {\n return ![\n 127,\n 32,\n \"(\",\n \")\",\n \"<\",\n \">\",\n \"@\",\n \",\",\n \";\",\n \":\",\n \"\\\\\",\n '\"',\n \"/\",\n \"[\",\n \"]\",\n \"?\",\n \"=\",\n \"{\",\n \"}\"\n ].includes(value);\n}\n\n// src/utils/isValidHeaderValue.ts\nfunction isValidHeaderValue(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n if (value.trim() !== value) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n if (\n // NUL.\n character === 0 || // HTTP newline bytes.\n character === 10 || character === 13\n ) {\n return false;\n }\n }\n return true;\n}\n\n// src/Headers.ts\nvar NORMALIZED_HEADERS = Symbol(\"normalizedHeaders\");\nvar RAW_HEADER_NAMES = Symbol(\"rawHeaderNames\");\nvar HEADER_VALUE_DELIMITER = \", \";\nvar _a, _b, _c;\nvar Headers = class _Headers {\n constructor(init) {\n // Normalized header {\"name\":\"a, b\"} storage.\n this[_a] = {};\n // Keeps the mapping between the raw header name\n // and the normalized header name to ease the lookup.\n this[_b] = /* @__PURE__ */ new Map();\n this[_c] = \"Headers\";\n if ([\"Headers\", \"HeadersPolyfill\"].includes(init?.constructor.name) || init instanceof _Headers || typeof globalThis.Headers !== \"undefined\" && init instanceof globalThis.Headers) {\n const initialHeaders = init;\n initialHeaders.forEach((value, name) => {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(init)) {\n init.forEach(([name, value]) => {\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n );\n });\n } else if (init) {\n Object.getOwnPropertyNames(init).forEach((name) => {\n const value = init[name];\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n );\n });\n }\n }\n [(_a = NORMALIZED_HEADERS, _b = RAW_HEADER_NAMES, _c = Symbol.toStringTag, Symbol.iterator)]() {\n return this.entries();\n }\n *keys() {\n for (const [name] of this.entries()) {\n yield name;\n }\n }\n *values() {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n *entries() {\n let sortedKeys = Object.keys(this[NORMALIZED_HEADERS]).sort(\n (a, b) => a.localeCompare(b)\n );\n for (const name of sortedKeys) {\n if (name === \"set-cookie\") {\n for (const value of this.getSetCookie()) {\n yield [name, value];\n }\n } else {\n yield [name, this.get(name)];\n }\n }\n }\n /**\n * Returns a boolean stating whether a `Headers` object contains a certain header.\n */\n has(name) {\n if (!isValidHeaderName(name)) {\n throw new TypeError(`Invalid header name \"${name}\"`);\n }\n return this[NORMALIZED_HEADERS].hasOwnProperty(normalizeHeaderName(name));\n }\n /**\n * Returns a `ByteString` sequence of all the values of a header with a given name.\n */\n get(name) {\n if (!isValidHeaderName(name)) {\n throw TypeError(`Invalid header name \"${name}\"`);\n }\n return this[NORMALIZED_HEADERS][normalizeHeaderName(name)] ?? null;\n }\n /**\n * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n set(name, value) {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n const normalizedValue = normalizeHeaderValue(value);\n this[NORMALIZED_HEADERS][normalizedName] = normalizeHeaderValue(normalizedValue);\n this[RAW_HEADER_NAMES].set(normalizedName, name);\n }\n /**\n * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n append(name, value) {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n const normalizedValue = normalizeHeaderValue(value);\n let resolvedValue = this.has(normalizedName) ? `${this.get(normalizedName)}, ${normalizedValue}` : normalizedValue;\n this.set(name, resolvedValue);\n }\n /**\n * Deletes a header from the `Headers` object.\n */\n delete(name) {\n if (!isValidHeaderName(name)) {\n return;\n }\n if (!this.has(name)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n delete this[NORMALIZED_HEADERS][normalizedName];\n this[RAW_HEADER_NAMES].delete(normalizedName);\n }\n /**\n * Traverses the `Headers` object,\n * calling the given callback for each header.\n */\n forEach(callback, thisArg) {\n for (const [name, value] of this.entries()) {\n callback.call(thisArg, value, name, this);\n }\n }\n /**\n * Returns an array containing the values\n * of all Set-Cookie headers associated\n * with a response\n */\n getSetCookie() {\n const setCookieHeader = this.get(\"set-cookie\");\n if (setCookieHeader === null) {\n return [];\n }\n if (setCookieHeader === \"\") {\n return [\"\"];\n }\n return (0, import_set_cookie_parser.splitCookiesString)(setCookieHeader);\n }\n};\n\n// src/getRawHeaders.ts\nfunction getRawHeaders(headers) {\n const rawHeaders = {};\n for (const [name, value] of headers.entries()) {\n rawHeaders[headers[RAW_HEADER_NAMES].get(name)] = value;\n }\n return rawHeaders;\n}\n\n// src/transformers/headersToList.ts\nfunction headersToList(headers) {\n const headersList = [];\n headers.forEach((value, name) => {\n const resolvedValue = value.includes(\",\") ? value.split(\",\").map((value2) => value2.trim()) : value;\n headersList.push([name, resolvedValue]);\n });\n return headersList;\n}\n\n// src/transformers/headersToString.ts\nfunction headersToString(headers) {\n const list = headersToList(headers);\n const lines = list.map(([name, value]) => {\n const values = [].concat(value);\n return `${name}: ${values.join(\", \")}`;\n });\n return lines.join(\"\\r\\n\");\n}\n\n// src/transformers/headersToObject.ts\nvar singleValueHeaders = [\"user-agent\"];\nfunction headersToObject(headers) {\n const headersObject = {};\n headers.forEach((value, name) => {\n const isMultiValue = !singleValueHeaders.includes(name.toLowerCase()) && value.includes(\",\");\n headersObject[name] = isMultiValue ? value.split(\",\").map((s) => s.trim()) : value;\n });\n return headersObject;\n}\n\n// src/transformers/stringToHeaders.ts\nfunction stringToHeaders(str) {\n const lines = str.trim().split(/[\\r\\n]+/);\n return lines.reduce((headers, line) => {\n if (line.trim() === \"\") {\n return headers;\n }\n const parts = line.split(\": \");\n const name = parts.shift();\n const value = parts.join(\": \");\n headers.append(name, value);\n return headers;\n }, new Headers());\n}\n\n// src/transformers/listToHeaders.ts\nfunction listToHeaders(list) {\n const headers = new Headers();\n list.forEach(([name, value]) => {\n const values = [].concat(value);\n values.forEach((value2) => {\n headers.append(name, value2);\n });\n });\n return headers;\n}\n\n// src/transformers/reduceHeadersObject.ts\nfunction reduceHeadersObject(headers, reducer, initialState) {\n return Object.keys(headers).reduce((nextHeaders, name) => {\n return reducer(nextHeaders, name, headers[name]);\n }, initialState);\n}\n\n// src/transformers/objectToHeaders.ts\nfunction objectToHeaders(headersObject) {\n return reduceHeadersObject(\n headersObject,\n (headers, name, value) => {\n const values = [].concat(value).filter(Boolean);\n values.forEach((value2) => {\n headers.append(name, value2);\n });\n return headers;\n },\n new Headers()\n );\n}\n\n// src/transformers/flattenHeadersList.ts\nfunction flattenHeadersList(list) {\n return list.map(([name, values]) => {\n return [name, [].concat(values).join(\", \")];\n });\n}\n\n// src/transformers/flattenHeadersObject.ts\nfunction flattenHeadersObject(headersObject) {\n return reduceHeadersObject(\n headersObject,\n (headers, name, value) => {\n headers[name] = [].concat(value).join(\", \");\n return headers;\n },\n {}\n );\n}\n\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9oZWFkZXJzLXBvbHlmaWxsL2xpYi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxhQUFhO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsNEZBQTRGO0FBQ3pIO0FBQ0E7QUFDQTtBQUNBLG1HQUFtRztBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBLHlFQUF5RSw4QkFBOEI7QUFDdkc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSx3TUFBd00sY0FBYztBQUN0TjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMkJBQTJCLE1BQU0sMkJBQTJCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixlQUFlO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsS0FBSztBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLEtBQUs7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELHlCQUF5QixJQUFJLGdCQUFnQjtBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsS0FBSyxJQUFJLGtCQUFrQjtBQUN6QyxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFhRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9oZWFkZXJzLXBvbHlmaWxsL2xpYi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2dldFByb3RvT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHtcbiAgcmV0dXJuIG1vZCB8fCAoMCwgY2JbX19nZXRPd25Qcm9wTmFtZXMoY2IpWzBdXSkoKG1vZCA9IHsgZXhwb3J0czoge30gfSkuZXhwb3J0cywgbW9kKSwgbW9kLmV4cG9ydHM7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9FU00gPSAobW9kLCBpc05vZGVNb2RlLCB0YXJnZXQpID0+ICh0YXJnZXQgPSBtb2QgIT0gbnVsbCA/IF9fY3JlYXRlKF9fZ2V0UHJvdG9PZihtb2QpKSA6IHt9LCBfX2NvcHlQcm9wcyhcbiAgLy8gSWYgdGhlIGltcG9ydGVyIGlzIGluIG5vZGUgY29tcGF0aWJpbGl0eSBtb2RlIG9yIHRoaXMgaXMgbm90IGFuIEVTTVxuICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLVxuICAvLyBjb21wYXRpYmxlIHRyYW5zZm9ybSAoaS5lLiBcIl9fZXNNb2R1bGVcIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXRcbiAgLy8gXCJkZWZhdWx0XCIgdG8gdGhlIENvbW1vbkpTIFwibW9kdWxlLmV4cG9ydHNcIiBmb3Igbm9kZSBjb21wYXRpYmlsaXR5LlxuICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgXCJkZWZhdWx0XCIsIHsgdmFsdWU6IG1vZCwgZW51bWVyYWJsZTogdHJ1ZSB9KSA6IHRhcmdldCxcbiAgbW9kXG4pKTtcblxuLy8gbm9kZV9tb2R1bGVzL3NldC1jb29raWUtcGFyc2VyL2xpYi9zZXQtY29va2llLmpzXG52YXIgcmVxdWlyZV9zZXRfY29va2llID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NldC1jb29raWUtcGFyc2VyL2xpYi9zZXQtY29va2llLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlZmF1bHRQYXJzZU9wdGlvbnMgPSB7XG4gICAgICBkZWNvZGVWYWx1ZXM6IHRydWUsXG4gICAgICBtYXA6IGZhbHNlLFxuICAgICAgc2lsZW50OiBmYWxzZVxuICAgIH07XG4gICAgZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyhzdHIpIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmICEhc3RyLnRyaW0oKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoc2V0Q29va2llVmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBwYXJ0cyA9IHNldENvb2tpZVZhbHVlLnNwbGl0KFwiO1wiKS5maWx0ZXIoaXNOb25FbXB0eVN0cmluZyk7XG4gICAgICB2YXIgbmFtZVZhbHVlUGFpclN0ciA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgICB2YXIgcGFyc2VkID0gcGFyc2VOYW1lVmFsdWVQYWlyKG5hbWVWYWx1ZVBhaXJTdHIpO1xuICAgICAgdmFyIG5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHZhciB2YWx1ZSA9IHBhcnNlZC52YWx1ZTtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zID8gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFBhcnNlT3B0aW9ucywgb3B0aW9ucykgOiBkZWZhdWx0UGFyc2VPcHRpb25zO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFsdWUgPSBvcHRpb25zLmRlY29kZVZhbHVlcyA/IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcInNldC1jb29raWUtcGFyc2VyIGVuY291bnRlcmVkIGFuIGVycm9yIHdoaWxlIGRlY29kaW5nIGEgY29va2llIHdpdGggdmFsdWUgJ1wiICsgdmFsdWUgKyBcIicuIFNldCBvcHRpb25zLmRlY29kZVZhbHVlcyB0byBmYWxzZSB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cIixcbiAgICAgICAgICBlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB2YXIgY29va2llID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICB2YWx1ZVxuICAgICAgfTtcbiAgICAgIHBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCkge1xuICAgICAgICB2YXIgc2lkZXMgPSBwYXJ0LnNwbGl0KFwiPVwiKTtcbiAgICAgICAgdmFyIGtleSA9IHNpZGVzLnNoaWZ0KCkudHJpbUxlZnQoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB2YXIgdmFsdWUyID0gc2lkZXMuam9pbihcIj1cIik7XG4gICAgICAgIGlmIChrZXkgPT09IFwiZXhwaXJlc1wiKSB7XG4gICAgICAgICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZSh2YWx1ZTIpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJtYXgtYWdlXCIpIHtcbiAgICAgICAgICBjb29raWUubWF4QWdlID0gcGFyc2VJbnQodmFsdWUyLCAxMCk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcInNlY3VyZVwiKSB7XG4gICAgICAgICAgY29va2llLnNlY3VyZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcImh0dHBvbmx5XCIpIHtcbiAgICAgICAgICBjb29raWUuaHR0cE9ubHkgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJzYW1lc2l0ZVwiKSB7XG4gICAgICAgICAgY29va2llLnNhbWVTaXRlID0gdmFsdWUyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvb2tpZVtrZXldID0gdmFsdWUyO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb29raWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlTmFtZVZhbHVlUGFpcihuYW1lVmFsdWVQYWlyU3RyKSB7XG4gICAgICB2YXIgbmFtZSA9IFwiXCI7XG4gICAgICB2YXIgdmFsdWUgPSBcIlwiO1xuICAgICAgdmFyIG5hbWVWYWx1ZUFyciA9IG5hbWVWYWx1ZVBhaXJTdHIuc3BsaXQoXCI9XCIpO1xuICAgICAgaWYgKG5hbWVWYWx1ZUFyci5sZW5ndGggPiAxKSB7XG4gICAgICAgIG5hbWUgPSBuYW1lVmFsdWVBcnIuc2hpZnQoKTtcbiAgICAgICAgdmFsdWUgPSBuYW1lVmFsdWVBcnIuam9pbihcIj1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IG5hbWVWYWx1ZVBhaXJTdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZShpbnB1dCwgb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgPyBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UGFyc2VPcHRpb25zLCBvcHRpb25zKSA6IGRlZmF1bHRQYXJzZU9wdGlvbnM7XG4gICAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5tYXApIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGVhZGVycykge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0LmhlYWRlcnMuZ2V0U2V0Q29va2llID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBpbnB1dCA9IGlucHV0LmhlYWRlcnMuZ2V0U2V0Q29va2llKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuaGVhZGVyc1tcInNldC1jb29raWVcIl0pIHtcbiAgICAgICAgICBpbnB1dCA9IGlucHV0LmhlYWRlcnNbXCJzZXQtY29va2llXCJdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBzY2ggPSBpbnB1dC5oZWFkZXJzW09iamVjdC5rZXlzKGlucHV0LmhlYWRlcnMpLmZpbmQoZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5LnRvTG93ZXJDYXNlKCkgPT09IFwic2V0LWNvb2tpZVwiO1xuICAgICAgICAgIH0pXTtcbiAgICAgICAgICBpZiAoIXNjaCAmJiBpbnB1dC5oZWFkZXJzLmNvb2tpZSAmJiAhb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJXYXJuaW5nOiBzZXQtY29va2llLXBhcnNlciBhcHBlYXJzIHRvIGhhdmUgYmVlbiBjYWxsZWQgb24gYSByZXF1ZXN0IG9iamVjdC4gSXQgaXMgZGVzaWduZWQgdG8gcGFyc2UgU2V0LUNvb2tpZSBoZWFkZXJzIGZyb20gcmVzcG9uc2VzLCBub3QgQ29va2llIGhlYWRlcnMgZnJvbSByZXF1ZXN0cy4gU2V0IHRoZSBvcHRpb24ge3NpbGVudDogdHJ1ZX0gdG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbnB1dCA9IHNjaDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgICBpbnB1dCA9IFtpbnB1dF07XG4gICAgICB9XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyA/IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRQYXJzZU9wdGlvbnMsIG9wdGlvbnMpIDogZGVmYXVsdFBhcnNlT3B0aW9ucztcbiAgICAgIGlmICghb3B0aW9ucy5tYXApIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LmZpbHRlcihpc05vbkVtcHR5U3RyaW5nKS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nKHN0ciwgb3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGNvb2tpZXMgPSB7fTtcbiAgICAgICAgcmV0dXJuIGlucHV0LmZpbHRlcihpc05vbkVtcHR5U3RyaW5nKS5yZWR1Y2UoZnVuY3Rpb24oY29va2llczIsIHN0cikge1xuICAgICAgICAgIHZhciBjb29raWUgPSBwYXJzZVN0cmluZyhzdHIsIG9wdGlvbnMpO1xuICAgICAgICAgIGNvb2tpZXMyW2Nvb2tpZS5uYW1lXSA9IGNvb2tpZTtcbiAgICAgICAgICByZXR1cm4gY29va2llczI7XG4gICAgICAgIH0sIGNvb2tpZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcyKGNvb2tpZXNTdHJpbmcpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvb2tpZXNTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiBjb29raWVzU3RyaW5nO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjb29raWVzU3RyaW5nICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICAgICAgdmFyIHBvcyA9IDA7XG4gICAgICB2YXIgc3RhcnQ7XG4gICAgICB2YXIgY2g7XG4gICAgICB2YXIgbGFzdENvbW1hO1xuICAgICAgdmFyIG5leHRTdGFydDtcbiAgICAgIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gICAgICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICAgICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICByZXR1cm4gY2ggIT09IFwiPVwiICYmIGNoICE9PSBcIjtcIiAmJiBjaCAhPT0gXCIsXCI7XG4gICAgICB9XG4gICAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgICBpZiAoY2ggPT09IFwiLFwiKSB7XG4gICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSkge1xuICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpID09PSBcIj1cIikge1xuICAgICAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGxhc3RDb21tYSkpO1xuICAgICAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBvcyA9IGxhc3RDb21tYSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvb2tpZXNTZXBhcmF0b3JGb3VuZCB8fCBwb3MgPj0gY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gcGFyc2U7XG4gICAgbW9kdWxlLmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbiAgICBtb2R1bGUuZXhwb3J0cy5wYXJzZVN0cmluZyA9IHBhcnNlU3RyaW5nO1xuICAgIG1vZHVsZS5leHBvcnRzLnNwbGl0Q29va2llc1N0cmluZyA9IHNwbGl0Q29va2llc1N0cmluZzI7XG4gIH1cbn0pO1xuXG4vLyBzcmMvSGVhZGVycy50c1xudmFyIGltcG9ydF9zZXRfY29va2llX3BhcnNlciA9IF9fdG9FU00ocmVxdWlyZV9zZXRfY29va2llKCkpO1xuXG4vLyBzcmMvdXRpbHMvbm9ybWFsaXplSGVhZGVyTmFtZS50c1xudmFyIEhFQURFUlNfSU5WQUxJRF9DSEFSQUNURVJTID0gL1teYS16MC05XFwtIyQlJicqKy5eX2B8fl0vaTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlck5hbWUobmFtZSkge1xuICBpZiAoSEVBREVSU19JTlZBTElEX0NIQVJBQ1RFUlMudGVzdChuYW1lKSB8fCBuYW1lLnRyaW0oKSA9PT0gXCJcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZVwiKTtcbiAgfVxuICByZXR1cm4gbmFtZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuLy8gc3JjL3V0aWxzL25vcm1hbGl6ZUhlYWRlclZhbHVlLnRzXG52YXIgY2hhckNvZGVzVG9SZW1vdmUgPSBbXG4gIFN0cmluZy5mcm9tQ2hhckNvZGUoMTApLFxuICBTdHJpbmcuZnJvbUNoYXJDb2RlKDEzKSxcbiAgU3RyaW5nLmZyb21DaGFyQ29kZSg5KSxcbiAgU3RyaW5nLmZyb21DaGFyQ29kZSgzMilcbl07XG52YXIgSEVBREVSX1ZBTFVFX1JFTU9WRV9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICBgKF5bJHtjaGFyQ29kZXNUb1JlbW92ZS5qb2luKFwiXCIpfV18JFske2NoYXJDb2Rlc1RvUmVtb3ZlLmpvaW4oXCJcIil9XSlgLFxuICBcImdcIlxuKTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlclZhbHVlKHZhbHVlKSB7XG4gIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoSEVBREVSX1ZBTFVFX1JFTU9WRV9SRUdFWFAsIFwiXCIpO1xuICByZXR1cm4gbmV4dFZhbHVlO1xufVxuXG4vLyBzcmMvdXRpbHMvaXNWYWxpZEhlYWRlck5hbWUudHNcbmZ1bmN0aW9uIGlzVmFsaWRIZWFkZXJOYW1lKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoY2hhcmFjdGVyID4gMTI3IHx8ICFpc1Rva2VuKGNoYXJhY3RlcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBpc1Rva2VuKHZhbHVlKSB7XG4gIHJldHVybiAhW1xuICAgIDEyNyxcbiAgICAzMixcbiAgICBcIihcIixcbiAgICBcIilcIixcbiAgICBcIjxcIixcbiAgICBcIj5cIixcbiAgICBcIkBcIixcbiAgICBcIixcIixcbiAgICBcIjtcIixcbiAgICBcIjpcIixcbiAgICBcIlxcXFxcIixcbiAgICAnXCInLFxuICAgIFwiL1wiLFxuICAgIFwiW1wiLFxuICAgIFwiXVwiLFxuICAgIFwiP1wiLFxuICAgIFwiPVwiLFxuICAgIFwie1wiLFxuICAgIFwifVwiXG4gIF0uaW5jbHVkZXModmFsdWUpO1xufVxuXG4vLyBzcmMvdXRpbHMvaXNWYWxpZEhlYWRlclZhbHVlLnRzXG5mdW5jdGlvbiBpc1ZhbGlkSGVhZGVyVmFsdWUodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodmFsdWUudHJpbSgpICE9PSB2YWx1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoXG4gICAgICAvLyBOVUwuXG4gICAgICBjaGFyYWN0ZXIgPT09IDAgfHwgLy8gSFRUUCBuZXdsaW5lIGJ5dGVzLlxuICAgICAgY2hhcmFjdGVyID09PSAxMCB8fCBjaGFyYWN0ZXIgPT09IDEzXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vLyBzcmMvSGVhZGVycy50c1xudmFyIE5PUk1BTElaRURfSEVBREVSUyA9IFN5bWJvbChcIm5vcm1hbGl6ZWRIZWFkZXJzXCIpO1xudmFyIFJBV19IRUFERVJfTkFNRVMgPSBTeW1ib2woXCJyYXdIZWFkZXJOYW1lc1wiKTtcbnZhciBIRUFERVJfVkFMVUVfREVMSU1JVEVSID0gXCIsIFwiO1xudmFyIF9hLCBfYiwgX2M7XG52YXIgSGVhZGVycyA9IGNsYXNzIF9IZWFkZXJzIHtcbiAgY29uc3RydWN0b3IoaW5pdCkge1xuICAgIC8vIE5vcm1hbGl6ZWQgaGVhZGVyIHtcIm5hbWVcIjpcImEsIGJcIn0gc3RvcmFnZS5cbiAgICB0aGlzW19hXSA9IHt9O1xuICAgIC8vIEtlZXBzIHRoZSBtYXBwaW5nIGJldHdlZW4gdGhlIHJhdyBoZWFkZXIgbmFtZVxuICAgIC8vIGFuZCB0aGUgbm9ybWFsaXplZCBoZWFkZXIgbmFtZSB0byBlYXNlIHRoZSBsb29rdXAuXG4gICAgdGhpc1tfYl0gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXNbX2NdID0gXCJIZWFkZXJzXCI7XG4gICAgaWYgKFtcIkhlYWRlcnNcIiwgXCJIZWFkZXJzUG9seWZpbGxcIl0uaW5jbHVkZXMoaW5pdD8uY29uc3RydWN0b3IubmFtZSkgfHwgaW5pdCBpbnN0YW5jZW9mIF9IZWFkZXJzIHx8IHR5cGVvZiBnbG9iYWxUaGlzLkhlYWRlcnMgIT09IFwidW5kZWZpbmVkXCIgJiYgaW5pdCBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuSGVhZGVycykge1xuICAgICAgY29uc3QgaW5pdGlhbEhlYWRlcnMgPSBpbml0O1xuICAgICAgaW5pdGlhbEhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIG5hbWUpID0+IHtcbiAgICAgICAgdGhpcy5hcHBlbmQobmFtZSwgdmFsdWUpO1xuICAgICAgfSwgdGhpcyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGluaXQpKSB7XG4gICAgICBpbml0LmZvckVhY2goKFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgdGhpcy5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oSEVBREVSX1ZBTFVFX0RFTElNSVRFUikgOiB2YWx1ZVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpbml0KSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbml0KS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaW5pdFtuYW1lXTtcbiAgICAgICAgdGhpcy5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oSEVBREVSX1ZBTFVFX0RFTElNSVRFUikgOiB2YWx1ZVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIFsoX2EgPSBOT1JNQUxJWkVEX0hFQURFUlMsIF9iID0gUkFXX0hFQURFUl9OQU1FUywgX2MgPSBTeW1ib2wudG9TdHJpbmdUYWcsIFN5bWJvbC5pdGVyYXRvcildKCkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMoKTtcbiAgfVxuICAqa2V5cygpIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lXSBvZiB0aGlzLmVudHJpZXMoKSkge1xuICAgICAgeWllbGQgbmFtZTtcbiAgICB9XG4gIH1cbiAgKnZhbHVlcygpIHtcbiAgICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiB0aGlzLmVudHJpZXMoKSkge1xuICAgICAgeWllbGQgdmFsdWU7XG4gICAgfVxuICB9XG4gICplbnRyaWVzKCkge1xuICAgIGxldCBzb3J0ZWRLZXlzID0gT2JqZWN0LmtleXModGhpc1tOT1JNQUxJWkVEX0hFQURFUlNdKS5zb3J0KFxuICAgICAgKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKVxuICAgICk7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHNvcnRlZEtleXMpIHtcbiAgICAgIGlmIChuYW1lID09PSBcInNldC1jb29raWVcIikge1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHRoaXMuZ2V0U2V0Q29va2llKCkpIHtcbiAgICAgICAgICB5aWVsZCBbbmFtZSwgdmFsdWVdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB5aWVsZCBbbmFtZSwgdGhpcy5nZXQobmFtZSldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gc3RhdGluZyB3aGV0aGVyIGEgYEhlYWRlcnNgIG9iamVjdCBjb250YWlucyBhIGNlcnRhaW4gaGVhZGVyLlxuICAgKi9cbiAgaGFzKG5hbWUpIHtcbiAgICBpZiAoIWlzVmFsaWRIZWFkZXJOYW1lKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGhlYWRlciBuYW1lIFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzW05PUk1BTElaRURfSEVBREVSU10uaGFzT3duUHJvcGVydHkobm9ybWFsaXplSGVhZGVyTmFtZShuYW1lKSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBgQnl0ZVN0cmluZ2Agc2VxdWVuY2Ugb2YgYWxsIHRoZSB2YWx1ZXMgb2YgYSBoZWFkZXIgd2l0aCBhIGdpdmVuIG5hbWUuXG4gICAqL1xuICBnZXQobmFtZSkge1xuICAgIGlmICghaXNWYWxpZEhlYWRlck5hbWUobmFtZSkpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgSW52YWxpZCBoZWFkZXIgbmFtZSBcIiR7bmFtZX1cImApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpc1tOT1JNQUxJWkVEX0hFQURFUlNdW25vcm1hbGl6ZUhlYWRlck5hbWUobmFtZSldID8/IG51bGw7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgYSBuZXcgdmFsdWUgZm9yIGFuIGV4aXN0aW5nIGhlYWRlciBpbnNpZGUgYSBgSGVhZGVyc2Agb2JqZWN0LCBvciBhZGRzIHRoZSBoZWFkZXIgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC5cbiAgICovXG4gIHNldChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICghaXNWYWxpZEhlYWRlck5hbWUobmFtZSkgfHwgIWlzVmFsaWRIZWFkZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVIZWFkZXJOYW1lKG5hbWUpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IG5vcm1hbGl6ZUhlYWRlclZhbHVlKHZhbHVlKTtcbiAgICB0aGlzW05PUk1BTElaRURfSEVBREVSU11bbm9ybWFsaXplZE5hbWVdID0gbm9ybWFsaXplSGVhZGVyVmFsdWUobm9ybWFsaXplZFZhbHVlKTtcbiAgICB0aGlzW1JBV19IRUFERVJfTkFNRVNdLnNldChub3JtYWxpemVkTmFtZSwgbmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIEFwcGVuZHMgYSBuZXcgdmFsdWUgb250byBhbiBleGlzdGluZyBoZWFkZXIgaW5zaWRlIGEgYEhlYWRlcnNgIG9iamVjdCwgb3IgYWRkcyB0aGUgaGVhZGVyIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuXG4gICAqL1xuICBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAoIWlzVmFsaWRIZWFkZXJOYW1lKG5hbWUpIHx8ICFpc1ZhbGlkSGVhZGVyVmFsdWUodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplSGVhZGVyTmFtZShuYW1lKTtcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSBub3JtYWxpemVIZWFkZXJWYWx1ZSh2YWx1ZSk7XG4gICAgbGV0IHJlc29sdmVkVmFsdWUgPSB0aGlzLmhhcyhub3JtYWxpemVkTmFtZSkgPyBgJHt0aGlzLmdldChub3JtYWxpemVkTmFtZSl9LCAke25vcm1hbGl6ZWRWYWx1ZX1gIDogbm9ybWFsaXplZFZhbHVlO1xuICAgIHRoaXMuc2V0KG5hbWUsIHJlc29sdmVkVmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGVzIGEgaGVhZGVyIGZyb20gdGhlIGBIZWFkZXJzYCBvYmplY3QuXG4gICAqL1xuICBkZWxldGUobmFtZSkge1xuICAgIGlmICghaXNWYWxpZEhlYWRlck5hbWUobmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZUhlYWRlck5hbWUobmFtZSk7XG4gICAgZGVsZXRlIHRoaXNbTk9STUFMSVpFRF9IRUFERVJTXVtub3JtYWxpemVkTmFtZV07XG4gICAgdGhpc1tSQVdfSEVBREVSX05BTUVTXS5kZWxldGUobm9ybWFsaXplZE5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiBUcmF2ZXJzZXMgdGhlIGBIZWFkZXJzYCBvYmplY3QsXG4gICAqIGNhbGxpbmcgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBlYWNoIGhlYWRlci5cbiAgICovXG4gIGZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgdGhpcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWUsIG5hbWUsIHRoaXMpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIHRoZSB2YWx1ZXNcbiAgICogb2YgYWxsIFNldC1Db29raWUgaGVhZGVycyBhc3NvY2lhdGVkXG4gICAqIHdpdGggYSByZXNwb25zZVxuICAgKi9cbiAgZ2V0U2V0Q29va2llKCkge1xuICAgIGNvbnN0IHNldENvb2tpZUhlYWRlciA9IHRoaXMuZ2V0KFwic2V0LWNvb2tpZVwiKTtcbiAgICBpZiAoc2V0Q29va2llSGVhZGVyID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChzZXRDb29raWVIZWFkZXIgPT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBbXCJcIl07XG4gICAgfVxuICAgIHJldHVybiAoMCwgaW1wb3J0X3NldF9jb29raWVfcGFyc2VyLnNwbGl0Q29va2llc1N0cmluZykoc2V0Q29va2llSGVhZGVyKTtcbiAgfVxufTtcblxuLy8gc3JjL2dldFJhd0hlYWRlcnMudHNcbmZ1bmN0aW9uIGdldFJhd0hlYWRlcnMoaGVhZGVycykge1xuICBjb25zdCByYXdIZWFkZXJzID0ge307XG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBoZWFkZXJzLmVudHJpZXMoKSkge1xuICAgIHJhd0hlYWRlcnNbaGVhZGVyc1tSQVdfSEVBREVSX05BTUVTXS5nZXQobmFtZSldID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHJhd0hlYWRlcnM7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvaGVhZGVyc1RvTGlzdC50c1xuZnVuY3Rpb24gaGVhZGVyc1RvTGlzdChoZWFkZXJzKSB7XG4gIGNvbnN0IGhlYWRlcnNMaXN0ID0gW107XG4gIGhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIG5hbWUpID0+IHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gdmFsdWUuaW5jbHVkZXMoXCIsXCIpID8gdmFsdWUuc3BsaXQoXCIsXCIpLm1hcCgodmFsdWUyKSA9PiB2YWx1ZTIudHJpbSgpKSA6IHZhbHVlO1xuICAgIGhlYWRlcnNMaXN0LnB1c2goW25hbWUsIHJlc29sdmVkVmFsdWVdKTtcbiAgfSk7XG4gIHJldHVybiBoZWFkZXJzTGlzdDtcbn1cblxuLy8gc3JjL3RyYW5zZm9ybWVycy9oZWFkZXJzVG9TdHJpbmcudHNcbmZ1bmN0aW9uIGhlYWRlcnNUb1N0cmluZyhoZWFkZXJzKSB7XG4gIGNvbnN0IGxpc3QgPSBoZWFkZXJzVG9MaXN0KGhlYWRlcnMpO1xuICBjb25zdCBsaW5lcyA9IGxpc3QubWFwKChbbmFtZSwgdmFsdWVdKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gW10uY29uY2F0KHZhbHVlKTtcbiAgICByZXR1cm4gYCR7bmFtZX06ICR7dmFsdWVzLmpvaW4oXCIsIFwiKX1gO1xuICB9KTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oXCJcXHJcXG5cIik7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvaGVhZGVyc1RvT2JqZWN0LnRzXG52YXIgc2luZ2xlVmFsdWVIZWFkZXJzID0gW1widXNlci1hZ2VudFwiXTtcbmZ1bmN0aW9uIGhlYWRlcnNUb09iamVjdChoZWFkZXJzKSB7XG4gIGNvbnN0IGhlYWRlcnNPYmplY3QgPSB7fTtcbiAgaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSkgPT4ge1xuICAgIGNvbnN0IGlzTXVsdGlWYWx1ZSA9ICFzaW5nbGVWYWx1ZUhlYWRlcnMuaW5jbHVkZXMobmFtZS50b0xvd2VyQ2FzZSgpKSAmJiB2YWx1ZS5pbmNsdWRlcyhcIixcIik7XG4gICAgaGVhZGVyc09iamVjdFtuYW1lXSA9IGlzTXVsdGlWYWx1ZSA/IHZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoKHMpID0+IHMudHJpbSgpKSA6IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIGhlYWRlcnNPYmplY3Q7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvc3RyaW5nVG9IZWFkZXJzLnRzXG5mdW5jdGlvbiBzdHJpbmdUb0hlYWRlcnMoc3RyKSB7XG4gIGNvbnN0IGxpbmVzID0gc3RyLnRyaW0oKS5zcGxpdCgvW1xcclxcbl0rLyk7XG4gIHJldHVybiBsaW5lcy5yZWR1Y2UoKGhlYWRlcnMsIGxpbmUpID0+IHtcbiAgICBpZiAobGluZS50cmltKCkgPT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0cyA9IGxpbmUuc3BsaXQoXCI6IFwiKTtcbiAgICBjb25zdCBuYW1lID0gcGFydHMuc2hpZnQoKTtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnRzLmpvaW4oXCI6IFwiKTtcbiAgICBoZWFkZXJzLmFwcGVuZChuYW1lLCB2YWx1ZSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sIG5ldyBIZWFkZXJzKCkpO1xufVxuXG4vLyBzcmMvdHJhbnNmb3JtZXJzL2xpc3RUb0hlYWRlcnMudHNcbmZ1bmN0aW9uIGxpc3RUb0hlYWRlcnMobGlzdCkge1xuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgbGlzdC5mb3JFYWNoKChbbmFtZSwgdmFsdWVdKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gW10uY29uY2F0KHZhbHVlKTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUyKSA9PiB7XG4gICAgICBoZWFkZXJzLmFwcGVuZChuYW1lLCB2YWx1ZTIpO1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGhlYWRlcnM7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvcmVkdWNlSGVhZGVyc09iamVjdC50c1xuZnVuY3Rpb24gcmVkdWNlSGVhZGVyc09iamVjdChoZWFkZXJzLCByZWR1Y2VyLCBpbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGhlYWRlcnMpLnJlZHVjZSgobmV4dEhlYWRlcnMsIG5hbWUpID0+IHtcbiAgICByZXR1cm4gcmVkdWNlcihuZXh0SGVhZGVycywgbmFtZSwgaGVhZGVyc1tuYW1lXSk7XG4gIH0sIGluaXRpYWxTdGF0ZSk7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvb2JqZWN0VG9IZWFkZXJzLnRzXG5mdW5jdGlvbiBvYmplY3RUb0hlYWRlcnMoaGVhZGVyc09iamVjdCkge1xuICByZXR1cm4gcmVkdWNlSGVhZGVyc09iamVjdChcbiAgICBoZWFkZXJzT2JqZWN0LFxuICAgIChoZWFkZXJzLCBuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gW10uY29uY2F0KHZhbHVlKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUyKSA9PiB7XG4gICAgICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIHZhbHVlMik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH0sXG4gICAgbmV3IEhlYWRlcnMoKVxuICApO1xufVxuXG4vLyBzcmMvdHJhbnNmb3JtZXJzL2ZsYXR0ZW5IZWFkZXJzTGlzdC50c1xuZnVuY3Rpb24gZmxhdHRlbkhlYWRlcnNMaXN0KGxpc3QpIHtcbiAgcmV0dXJuIGxpc3QubWFwKChbbmFtZSwgdmFsdWVzXSkgPT4ge1xuICAgIHJldHVybiBbbmFtZSwgW10uY29uY2F0KHZhbHVlcykuam9pbihcIiwgXCIpXTtcbiAgfSk7XG59XG5cbi8vIHNyYy90cmFuc2Zvcm1lcnMvZmxhdHRlbkhlYWRlcnNPYmplY3QudHNcbmZ1bmN0aW9uIGZsYXR0ZW5IZWFkZXJzT2JqZWN0KGhlYWRlcnNPYmplY3QpIHtcbiAgcmV0dXJuIHJlZHVjZUhlYWRlcnNPYmplY3QoXG4gICAgaGVhZGVyc09iamVjdCxcbiAgICAoaGVhZGVycywgbmFtZSwgdmFsdWUpID0+IHtcbiAgICAgIGhlYWRlcnNbbmFtZV0gPSBbXS5jb25jYXQodmFsdWUpLmpvaW4oXCIsIFwiKTtcbiAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH0sXG4gICAge31cbiAgKTtcbn1cbmV4cG9ydCB7XG4gIEhlYWRlcnMsXG4gIGZsYXR0ZW5IZWFkZXJzTGlzdCxcbiAgZmxhdHRlbkhlYWRlcnNPYmplY3QsXG4gIGdldFJhd0hlYWRlcnMsXG4gIGhlYWRlcnNUb0xpc3QsXG4gIGhlYWRlcnNUb09iamVjdCxcbiAgaGVhZGVyc1RvU3RyaW5nLFxuICBsaXN0VG9IZWFkZXJzLFxuICBvYmplY3RUb0hlYWRlcnMsXG4gIHJlZHVjZUhlYWRlcnNPYmplY3QsXG4gIHN0cmluZ1RvSGVhZGVyc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/headers-polyfill/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/hyphenate-style-name/index.js": /*!****************************************************!*\ !*** ./node_modules/hyphenate-style-name/index.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hyphenateStyleName);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9oeXBoZW5hdGUtc3R5bGUtbmFtZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxpRUFBZSxrQkFBa0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2h5cGhlbmF0ZS1zdHlsZS1uYW1lL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXZhciwgcHJlZmVyLXRlbXBsYXRlICovXG52YXIgdXBwZXJjYXNlUGF0dGVybiA9IC9bQS1aXS9nXG52YXIgbXNQYXR0ZXJuID0gL15tcy0vXG52YXIgY2FjaGUgPSB7fVxuXG5mdW5jdGlvbiB0b0h5cGhlbkxvd2VyKG1hdGNoKSB7XG4gIHJldHVybiAnLScgKyBtYXRjaC50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGh5cGhlbmF0ZVN0eWxlTmFtZShuYW1lKSB7XG4gIGlmIChjYWNoZS5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgIHJldHVybiBjYWNoZVtuYW1lXVxuICB9XG5cbiAgdmFyIGhOYW1lID0gbmFtZS5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sIHRvSHlwaGVuTG93ZXIpXG4gIHJldHVybiAoY2FjaGVbbmFtZV0gPSBtc1BhdHRlcm4udGVzdChoTmFtZSkgPyAnLScgKyBoTmFtZSA6IGhOYW1lKVxufVxuXG5leHBvcnQgZGVmYXVsdCBoeXBoZW5hdGVTdHlsZU5hbWVcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/hyphenate-style-name/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/immer/dist/immer.mjs": /*!*******************************************!*\ !*** ./node_modules/immer/dist/immer.mjs ***! \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Immer: () => (/* binding */ Immer2),\n/* harmony export */ applyPatches: () => (/* binding */ applyPatches),\n/* harmony export */ castDraft: () => (/* binding */ castDraft),\n/* harmony export */ castImmutable: () => (/* binding */ castImmutable),\n/* harmony export */ createDraft: () => (/* binding */ createDraft),\n/* harmony export */ current: () => (/* binding */ current),\n/* harmony export */ enableMapSet: () => (/* binding */ enableMapSet),\n/* harmony export */ enablePatches: () => (/* binding */ enablePatches),\n/* harmony export */ finishDraft: () => (/* binding */ finishDraft),\n/* harmony export */ freeze: () => (/* binding */ freeze),\n/* harmony export */ immerable: () => (/* binding */ DRAFTABLE),\n/* harmony export */ isDraft: () => (/* binding */ isDraft),\n/* harmony export */ isDraftable: () => (/* binding */ isDraftable),\n/* harmony export */ nothing: () => (/* binding */ NOTHING),\n/* harmony export */ original: () => (/* binding */ original),\n/* harmony export */ produce: () => (/* binding */ produce),\n/* harmony export */ produceWithPatches: () => (/* binding */ produceWithPatches),\n/* harmony export */ setAutoFreeze: () => (/* binding */ setAutoFreeze),\n/* harmony export */ setUseStrictShallowCopy: () => (/* binding */ setUseStrictShallowCopy)\n/* harmony export */ });\n// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = true ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : 0;\nfunction die(error, ...args) {\n if (true) {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if ( true && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if ( true && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if ( true && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (true) {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\n\n//# sourceMappingURL=immer.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbW1lci9kaXN0L2ltbWVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLEtBQXFDO0FBQ2xEO0FBQ0E7QUFDQSw4QkFBOEIsT0FBTyxrRkFBa0YsT0FBTztBQUM5SCxHQUFHO0FBQ0g7QUFDQSxpS0FBaUssTUFBTTtBQUN2SyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLE1BQU07QUFDcEQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsTUFBTTtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxJQUFJLENBQUU7QUFDTjtBQUNBLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBLCtCQUErQixJQUFJO0FBQ25DO0FBQ0E7QUFDQSxrQ0FBa0MsTUFBTTtBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLGdCQUFnQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsS0FBSztBQUNwQixlQUFlLFVBQVU7QUFDekIsZUFBZSxVQUFVO0FBQ3pCLGlCQUFpQixLQUFLO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixzQkFBc0I7QUFDL0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFCRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbW1lci9kaXN0L2ltbWVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvdXRpbHMvZW52LnRzXG52YXIgTk9USElORyA9IFN5bWJvbC5mb3IoXCJpbW1lci1ub3RoaW5nXCIpO1xudmFyIERSQUZUQUJMRSA9IFN5bWJvbC5mb3IoXCJpbW1lci1kcmFmdGFibGVcIik7XG52YXIgRFJBRlRfU1RBVEUgPSBTeW1ib2wuZm9yKFwiaW1tZXItc3RhdGVcIik7XG5cbi8vIHNyYy91dGlscy9lcnJvcnMudHNcbnZhciBlcnJvcnMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBbXG4gIC8vIEFsbCBlcnJvciBjb2Rlcywgc3RhcnRpbmcgYnkgMDpcbiAgZnVuY3Rpb24ocGx1Z2luKSB7XG4gICAgcmV0dXJuIGBUaGUgcGx1Z2luIGZvciAnJHtwbHVnaW59JyBoYXMgbm90IGJlZW4gbG9hZGVkIGludG8gSW1tZXIuIFRvIGVuYWJsZSB0aGUgcGx1Z2luLCBpbXBvcnQgYW5kIGNhbGwgXFxgZW5hYmxlJHtwbHVnaW59KClcXGAgd2hlbiBpbml0aWFsaXppbmcgeW91ciBhcHBsaWNhdGlvbi5gO1xuICB9LFxuICBmdW5jdGlvbih0aGluZykge1xuICAgIHJldHVybiBgcHJvZHVjZSBjYW4gb25seSBiZSBjYWxsZWQgb24gdGhpbmdzIHRoYXQgYXJlIGRyYWZ0YWJsZTogcGxhaW4gb2JqZWN0cywgYXJyYXlzLCBNYXAsIFNldCBvciBjbGFzc2VzIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdbaW1tZXJhYmxlXTogdHJ1ZScuIEdvdCAnJHt0aGluZ30nYDtcbiAgfSxcbiAgXCJUaGlzIG9iamVjdCBoYXMgYmVlbiBmcm96ZW4gYW5kIHNob3VsZCBub3QgYmUgbXV0YXRlZFwiLFxuICBmdW5jdGlvbihkYXRhKSB7XG4gICAgcmV0dXJuIFwiQ2Fubm90IHVzZSBhIHByb3h5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZC4gRGlkIHlvdSBwYXNzIGFuIG9iamVjdCBmcm9tIGluc2lkZSBhbiBpbW1lciBmdW5jdGlvbiB0byBhbiBhc3luYyBwcm9jZXNzPyBcIiArIGRhdGE7XG4gIH0sXG4gIFwiQW4gaW1tZXIgcHJvZHVjZXIgcmV0dXJuZWQgYSBuZXcgdmFsdWUgKmFuZCogbW9kaWZpZWQgaXRzIGRyYWZ0LiBFaXRoZXIgcmV0dXJuIGEgbmV3IHZhbHVlICpvciogbW9kaWZ5IHRoZSBkcmFmdC5cIixcbiAgXCJJbW1lciBmb3JiaWRzIGNpcmN1bGFyIHJlZmVyZW5jZXNcIixcbiAgXCJUaGUgZmlyc3Qgb3Igc2Vjb25kIGFyZ3VtZW50IHRvIGBwcm9kdWNlYCBtdXN0IGJlIGEgZnVuY3Rpb25cIixcbiAgXCJUaGUgdGhpcmQgYXJndW1lbnQgdG8gYHByb2R1Y2VgIG11c3QgYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWRcIixcbiAgXCJGaXJzdCBhcmd1bWVudCB0byBgY3JlYXRlRHJhZnRgIG11c3QgYmUgYSBwbGFpbiBvYmplY3QsIGFuIGFycmF5LCBvciBhbiBpbW1lcmFibGUgb2JqZWN0XCIsXG4gIFwiRmlyc3QgYXJndW1lbnQgdG8gYGZpbmlzaERyYWZ0YCBtdXN0IGJlIGEgZHJhZnQgcmV0dXJuZWQgYnkgYGNyZWF0ZURyYWZ0YFwiLFxuICBmdW5jdGlvbih0aGluZykge1xuICAgIHJldHVybiBgJ2N1cnJlbnQnIGV4cGVjdHMgYSBkcmFmdCwgZ290OiAke3RoaW5nfWA7XG4gIH0sXG4gIFwiT2JqZWN0LmRlZmluZVByb3BlcnR5KCkgY2Fubm90IGJlIHVzZWQgb24gYW4gSW1tZXIgZHJhZnRcIixcbiAgXCJPYmplY3Quc2V0UHJvdG90eXBlT2YoKSBjYW5ub3QgYmUgdXNlZCBvbiBhbiBJbW1lciBkcmFmdFwiLFxuICBcIkltbWVyIG9ubHkgc3VwcG9ydHMgZGVsZXRpbmcgYXJyYXkgaW5kaWNlc1wiLFxuICBcIkltbWVyIG9ubHkgc3VwcG9ydHMgc2V0dGluZyBhcnJheSBpbmRpY2VzIGFuZCB0aGUgJ2xlbmd0aCcgcHJvcGVydHlcIixcbiAgZnVuY3Rpb24odGhpbmcpIHtcbiAgICByZXR1cm4gYCdvcmlnaW5hbCcgZXhwZWN0cyBhIGRyYWZ0LCBnb3Q6ICR7dGhpbmd9YDtcbiAgfVxuICAvLyBOb3RlOiBpZiBtb3JlIGVycm9ycyBhcmUgYWRkZWQsIHRoZSBlcnJvck9mZnNldCBpbiBQYXRjaGVzLnRzIHNob3VsZCBiZSBpbmNyZWFzZWRcbiAgLy8gU2VlIFBhdGNoZXMudHMgZm9yIGFkZGl0aW9uYWwgZXJyb3JzXG5dIDogW107XG5mdW5jdGlvbiBkaWUoZXJyb3IsIC4uLmFyZ3MpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGNvbnN0IGUgPSBlcnJvcnNbZXJyb3JdO1xuICAgIGNvbnN0IG1zZyA9IHR5cGVvZiBlID09PSBcImZ1bmN0aW9uXCIgPyBlLmFwcGx5KG51bGwsIGFyZ3MpIDogZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFtJbW1lcl0gJHttc2d9YCk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBbSW1tZXJdIG1pbmlmaWVkIGVycm9yIG5yOiAke2Vycm9yfS4gRnVsbCBlcnJvciBhdDogaHR0cHM6Ly9iaXQubHkvM2NYRUtXZmBcbiAgKTtcbn1cblxuLy8gc3JjL3V0aWxzL2NvbW1vbi50c1xudmFyIGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuZnVuY3Rpb24gaXNEcmFmdCh2YWx1ZSkge1xuICByZXR1cm4gISF2YWx1ZSAmJiAhIXZhbHVlW0RSQUZUX1NUQVRFXTtcbn1cbmZ1bmN0aW9uIGlzRHJhZnRhYmxlKHZhbHVlKSB7XG4gIGlmICghdmFsdWUpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gaXNQbGFpbk9iamVjdCh2YWx1ZSkgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgISF2YWx1ZVtEUkFGVEFCTEVdIHx8ICEhdmFsdWUuY29uc3RydWN0b3I/LltEUkFGVEFCTEVdIHx8IGlzTWFwKHZhbHVlKSB8fCBpc1NldCh2YWx1ZSk7XG59XG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IudG9TdHJpbmcoKTtcbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBwcm90byA9IGdldFByb3RvdHlwZU9mKHZhbHVlKTtcbiAgaWYgKHByb3RvID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgQ3RvciA9IE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3RvLCBcImNvbnN0cnVjdG9yXCIpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICBpZiAoQ3RvciA9PT0gT2JqZWN0KVxuICAgIHJldHVybiB0cnVlO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gXCJmdW5jdGlvblwiICYmIEZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwoQ3RvcikgPT09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5mdW5jdGlvbiBvcmlnaW5hbCh2YWx1ZSkge1xuICBpZiAoIWlzRHJhZnQodmFsdWUpKVxuICAgIGRpZSgxNSwgdmFsdWUpO1xuICByZXR1cm4gdmFsdWVbRFJBRlRfU1RBVEVdLmJhc2VfO1xufVxuZnVuY3Rpb24gZWFjaChvYmosIGl0ZXIpIHtcbiAgaWYgKGdldEFyY2h0eXBlKG9iaikgPT09IDAgLyogT2JqZWN0ICovKSB7XG4gICAgUmVmbGVjdC5vd25LZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpdGVyKGtleSwgb2JqW2tleV0sIG9iaik7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqLmZvckVhY2goKGVudHJ5LCBpbmRleCkgPT4gaXRlcihpbmRleCwgZW50cnksIG9iaikpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRBcmNodHlwZSh0aGluZykge1xuICBjb25zdCBzdGF0ZSA9IHRoaW5nW0RSQUZUX1NUQVRFXTtcbiAgcmV0dXJuIHN0YXRlID8gc3RhdGUudHlwZV8gOiBBcnJheS5pc0FycmF5KHRoaW5nKSA/IDEgLyogQXJyYXkgKi8gOiBpc01hcCh0aGluZykgPyAyIC8qIE1hcCAqLyA6IGlzU2V0KHRoaW5nKSA/IDMgLyogU2V0ICovIDogMCAvKiBPYmplY3QgKi87XG59XG5mdW5jdGlvbiBoYXModGhpbmcsIHByb3ApIHtcbiAgcmV0dXJuIGdldEFyY2h0eXBlKHRoaW5nKSA9PT0gMiAvKiBNYXAgKi8gPyB0aGluZy5oYXMocHJvcCkgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpbmcsIHByb3ApO1xufVxuZnVuY3Rpb24gZ2V0KHRoaW5nLCBwcm9wKSB7XG4gIHJldHVybiBnZXRBcmNodHlwZSh0aGluZykgPT09IDIgLyogTWFwICovID8gdGhpbmcuZ2V0KHByb3ApIDogdGhpbmdbcHJvcF07XG59XG5mdW5jdGlvbiBzZXQodGhpbmcsIHByb3BPck9sZFZhbHVlLCB2YWx1ZSkge1xuICBjb25zdCB0ID0gZ2V0QXJjaHR5cGUodGhpbmcpO1xuICBpZiAodCA9PT0gMiAvKiBNYXAgKi8pXG4gICAgdGhpbmcuc2V0KHByb3BPck9sZFZhbHVlLCB2YWx1ZSk7XG4gIGVsc2UgaWYgKHQgPT09IDMgLyogU2V0ICovKSB7XG4gICAgdGhpbmcuYWRkKHZhbHVlKTtcbiAgfSBlbHNlXG4gICAgdGhpbmdbcHJvcE9yT2xkVmFsdWVdID0gdmFsdWU7XG59XG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzTWFwKHRhcmdldCkge1xuICByZXR1cm4gdGFyZ2V0IGluc3RhbmNlb2YgTWFwO1xufVxuZnVuY3Rpb24gaXNTZXQodGFyZ2V0KSB7XG4gIHJldHVybiB0YXJnZXQgaW5zdGFuY2VvZiBTZXQ7XG59XG5mdW5jdGlvbiBsYXRlc3Qoc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmNvcHlfIHx8IHN0YXRlLmJhc2VfO1xufVxuZnVuY3Rpb24gc2hhbGxvd0NvcHkoYmFzZSwgc3RyaWN0KSB7XG4gIGlmIChpc01hcChiYXNlKSkge1xuICAgIHJldHVybiBuZXcgTWFwKGJhc2UpO1xuICB9XG4gIGlmIChpc1NldChiYXNlKSkge1xuICAgIHJldHVybiBuZXcgU2V0KGJhc2UpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGJhc2UpKVxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiYXNlKTtcbiAgY29uc3QgaXNQbGFpbiA9IGlzUGxhaW5PYmplY3QoYmFzZSk7XG4gIGlmIChzdHJpY3QgPT09IHRydWUgfHwgc3RyaWN0ID09PSBcImNsYXNzX29ubHlcIiAmJiAhaXNQbGFpbikge1xuICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYmFzZSk7XG4gICAgZGVsZXRlIGRlc2NyaXB0b3JzW0RSQUZUX1NUQVRFXTtcbiAgICBsZXQga2V5cyA9IFJlZmxlY3Qub3duS2V5cyhkZXNjcmlwdG9ycyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0b3JzW2tleV07XG4gICAgICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZGVzYy53cml0YWJsZSA9IHRydWU7XG4gICAgICAgIGRlc2MuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldClcbiAgICAgICAgZGVzY3JpcHRvcnNba2V5XSA9IHtcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgLy8gY291bGQgbGl2ZSB3aXRoICEhZGVzYy5zZXQgYXMgd2VsbCBoZXJlLi4uXG4gICAgICAgICAgZW51bWVyYWJsZTogZGVzYy5lbnVtZXJhYmxlLFxuICAgICAgICAgIHZhbHVlOiBiYXNlW2tleV1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5jcmVhdGUoZ2V0UHJvdG90eXBlT2YoYmFzZSksIGRlc2NyaXB0b3JzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwcm90byA9IGdldFByb3RvdHlwZU9mKGJhc2UpO1xuICAgIGlmIChwcm90byAhPT0gbnVsbCAmJiBpc1BsYWluKSB7XG4gICAgICByZXR1cm4geyAuLi5iYXNlIH07XG4gICAgfVxuICAgIGNvbnN0IG9iaiA9IE9iamVjdC5jcmVhdGUocHJvdG8pO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgYmFzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZyZWV6ZShvYmosIGRlZXAgPSBmYWxzZSkge1xuICBpZiAoaXNGcm96ZW4ob2JqKSB8fCBpc0RyYWZ0KG9iaikgfHwgIWlzRHJhZnRhYmxlKG9iaikpXG4gICAgcmV0dXJuIG9iajtcbiAgaWYgKGdldEFyY2h0eXBlKG9iaikgPiAxKSB7XG4gICAgb2JqLnNldCA9IG9iai5hZGQgPSBvYmouY2xlYXIgPSBvYmouZGVsZXRlID0gZG9udE11dGF0ZUZyb3plbkNvbGxlY3Rpb25zO1xuICB9XG4gIE9iamVjdC5mcmVlemUob2JqKTtcbiAgaWYgKGRlZXApXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IGZyZWV6ZSh2YWx1ZSwgdHJ1ZSkpO1xuICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gZG9udE11dGF0ZUZyb3plbkNvbGxlY3Rpb25zKCkge1xuICBkaWUoMik7XG59XG5mdW5jdGlvbiBpc0Zyb3plbihvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihvYmopO1xufVxuXG4vLyBzcmMvdXRpbHMvcGx1Z2lucy50c1xudmFyIHBsdWdpbnMgPSB7fTtcbmZ1bmN0aW9uIGdldFBsdWdpbihwbHVnaW5LZXkpIHtcbiAgY29uc3QgcGx1Z2luID0gcGx1Z2luc1twbHVnaW5LZXldO1xuICBpZiAoIXBsdWdpbikge1xuICAgIGRpZSgwLCBwbHVnaW5LZXkpO1xuICB9XG4gIHJldHVybiBwbHVnaW47XG59XG5mdW5jdGlvbiBsb2FkUGx1Z2luKHBsdWdpbktleSwgaW1wbGVtZW50YXRpb24pIHtcbiAgaWYgKCFwbHVnaW5zW3BsdWdpbktleV0pXG4gICAgcGx1Z2luc1twbHVnaW5LZXldID0gaW1wbGVtZW50YXRpb247XG59XG5cbi8vIHNyYy9jb3JlL3Njb3BlLnRzXG52YXIgY3VycmVudFNjb3BlO1xuZnVuY3Rpb24gZ2V0Q3VycmVudFNjb3BlKCkge1xuICByZXR1cm4gY3VycmVudFNjb3BlO1xufVxuZnVuY3Rpb24gY3JlYXRlU2NvcGUocGFyZW50XywgaW1tZXJfKSB7XG4gIHJldHVybiB7XG4gICAgZHJhZnRzXzogW10sXG4gICAgcGFyZW50XyxcbiAgICBpbW1lcl8sXG4gICAgLy8gV2hlbmV2ZXIgdGhlIG1vZGlmaWVkIGRyYWZ0IGNvbnRhaW5zIGEgZHJhZnQgZnJvbSBhbm90aGVyIHNjb3BlLCB3ZVxuICAgIC8vIG5lZWQgdG8gcHJldmVudCBhdXRvLWZyZWV6aW5nIHNvIHRoZSB1bm93bmVkIGRyYWZ0IGNhbiBiZSBmaW5hbGl6ZWQuXG4gICAgY2FuQXV0b0ZyZWV6ZV86IHRydWUsXG4gICAgdW5maW5hbGl6ZWREcmFmdHNfOiAwXG4gIH07XG59XG5mdW5jdGlvbiB1c2VQYXRjaGVzSW5TY29wZShzY29wZSwgcGF0Y2hMaXN0ZW5lcikge1xuICBpZiAocGF0Y2hMaXN0ZW5lcikge1xuICAgIGdldFBsdWdpbihcIlBhdGNoZXNcIik7XG4gICAgc2NvcGUucGF0Y2hlc18gPSBbXTtcbiAgICBzY29wZS5pbnZlcnNlUGF0Y2hlc18gPSBbXTtcbiAgICBzY29wZS5wYXRjaExpc3RlbmVyXyA9IHBhdGNoTGlzdGVuZXI7XG4gIH1cbn1cbmZ1bmN0aW9uIHJldm9rZVNjb3BlKHNjb3BlKSB7XG4gIGxlYXZlU2NvcGUoc2NvcGUpO1xuICBzY29wZS5kcmFmdHNfLmZvckVhY2gocmV2b2tlRHJhZnQpO1xuICBzY29wZS5kcmFmdHNfID0gbnVsbDtcbn1cbmZ1bmN0aW9uIGxlYXZlU2NvcGUoc2NvcGUpIHtcbiAgaWYgKHNjb3BlID09PSBjdXJyZW50U2NvcGUpIHtcbiAgICBjdXJyZW50U2NvcGUgPSBzY29wZS5wYXJlbnRfO1xuICB9XG59XG5mdW5jdGlvbiBlbnRlclNjb3BlKGltbWVyMikge1xuICByZXR1cm4gY3VycmVudFNjb3BlID0gY3JlYXRlU2NvcGUoY3VycmVudFNjb3BlLCBpbW1lcjIpO1xufVxuZnVuY3Rpb24gcmV2b2tlRHJhZnQoZHJhZnQpIHtcbiAgY29uc3Qgc3RhdGUgPSBkcmFmdFtEUkFGVF9TVEFURV07XG4gIGlmIChzdGF0ZS50eXBlXyA9PT0gMCAvKiBPYmplY3QgKi8gfHwgc3RhdGUudHlwZV8gPT09IDEgLyogQXJyYXkgKi8pXG4gICAgc3RhdGUucmV2b2tlXygpO1xuICBlbHNlXG4gICAgc3RhdGUucmV2b2tlZF8gPSB0cnVlO1xufVxuXG4vLyBzcmMvY29yZS9maW5hbGl6ZS50c1xuZnVuY3Rpb24gcHJvY2Vzc1Jlc3VsdChyZXN1bHQsIHNjb3BlKSB7XG4gIHNjb3BlLnVuZmluYWxpemVkRHJhZnRzXyA9IHNjb3BlLmRyYWZ0c18ubGVuZ3RoO1xuICBjb25zdCBiYXNlRHJhZnQgPSBzY29wZS5kcmFmdHNfWzBdO1xuICBjb25zdCBpc1JlcGxhY2VkID0gcmVzdWx0ICE9PSB2b2lkIDAgJiYgcmVzdWx0ICE9PSBiYXNlRHJhZnQ7XG4gIGlmIChpc1JlcGxhY2VkKSB7XG4gICAgaWYgKGJhc2VEcmFmdFtEUkFGVF9TVEFURV0ubW9kaWZpZWRfKSB7XG4gICAgICByZXZva2VTY29wZShzY29wZSk7XG4gICAgICBkaWUoNCk7XG4gICAgfVxuICAgIGlmIChpc0RyYWZ0YWJsZShyZXN1bHQpKSB7XG4gICAgICByZXN1bHQgPSBmaW5hbGl6ZShzY29wZSwgcmVzdWx0KTtcbiAgICAgIGlmICghc2NvcGUucGFyZW50XylcbiAgICAgICAgbWF5YmVGcmVlemUoc2NvcGUsIHJlc3VsdCk7XG4gICAgfVxuICAgIGlmIChzY29wZS5wYXRjaGVzXykge1xuICAgICAgZ2V0UGx1Z2luKFwiUGF0Y2hlc1wiKS5nZW5lcmF0ZVJlcGxhY2VtZW50UGF0Y2hlc18oXG4gICAgICAgIGJhc2VEcmFmdFtEUkFGVF9TVEFURV0uYmFzZV8sXG4gICAgICAgIHJlc3VsdCxcbiAgICAgICAgc2NvcGUucGF0Y2hlc18sXG4gICAgICAgIHNjb3BlLmludmVyc2VQYXRjaGVzX1xuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gZmluYWxpemUoc2NvcGUsIGJhc2VEcmFmdCwgW10pO1xuICB9XG4gIHJldm9rZVNjb3BlKHNjb3BlKTtcbiAgaWYgKHNjb3BlLnBhdGNoZXNfKSB7XG4gICAgc2NvcGUucGF0Y2hMaXN0ZW5lcl8oc2NvcGUucGF0Y2hlc18sIHNjb3BlLmludmVyc2VQYXRjaGVzXyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdCAhPT0gTk9USElORyA/IHJlc3VsdCA6IHZvaWQgMDtcbn1cbmZ1bmN0aW9uIGZpbmFsaXplKHJvb3RTY29wZSwgdmFsdWUsIHBhdGgpIHtcbiAgaWYgKGlzRnJvemVuKHZhbHVlKSlcbiAgICByZXR1cm4gdmFsdWU7XG4gIGNvbnN0IHN0YXRlID0gdmFsdWVbRFJBRlRfU1RBVEVdO1xuICBpZiAoIXN0YXRlKSB7XG4gICAgZWFjaChcbiAgICAgIHZhbHVlLFxuICAgICAgKGtleSwgY2hpbGRWYWx1ZSkgPT4gZmluYWxpemVQcm9wZXJ0eShyb290U2NvcGUsIHN0YXRlLCB2YWx1ZSwga2V5LCBjaGlsZFZhbHVlLCBwYXRoKVxuICAgICk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChzdGF0ZS5zY29wZV8gIT09IHJvb3RTY29wZSlcbiAgICByZXR1cm4gdmFsdWU7XG4gIGlmICghc3RhdGUubW9kaWZpZWRfKSB7XG4gICAgbWF5YmVGcmVlemUocm9vdFNjb3BlLCBzdGF0ZS5iYXNlXywgdHJ1ZSk7XG4gICAgcmV0dXJuIHN0YXRlLmJhc2VfO1xuICB9XG4gIGlmICghc3RhdGUuZmluYWxpemVkXykge1xuICAgIHN0YXRlLmZpbmFsaXplZF8gPSB0cnVlO1xuICAgIHN0YXRlLnNjb3BlXy51bmZpbmFsaXplZERyYWZ0c18tLTtcbiAgICBjb25zdCByZXN1bHQgPSBzdGF0ZS5jb3B5XztcbiAgICBsZXQgcmVzdWx0RWFjaCA9IHJlc3VsdDtcbiAgICBsZXQgaXNTZXQyID0gZmFsc2U7XG4gICAgaWYgKHN0YXRlLnR5cGVfID09PSAzIC8qIFNldCAqLykge1xuICAgICAgcmVzdWx0RWFjaCA9IG5ldyBTZXQocmVzdWx0KTtcbiAgICAgIHJlc3VsdC5jbGVhcigpO1xuICAgICAgaXNTZXQyID0gdHJ1ZTtcbiAgICB9XG4gICAgZWFjaChcbiAgICAgIHJlc3VsdEVhY2gsXG4gICAgICAoa2V5LCBjaGlsZFZhbHVlKSA9PiBmaW5hbGl6ZVByb3BlcnR5KHJvb3RTY29wZSwgc3RhdGUsIHJlc3VsdCwga2V5LCBjaGlsZFZhbHVlLCBwYXRoLCBpc1NldDIpXG4gICAgKTtcbiAgICBtYXliZUZyZWV6ZShyb290U2NvcGUsIHJlc3VsdCwgZmFsc2UpO1xuICAgIGlmIChwYXRoICYmIHJvb3RTY29wZS5wYXRjaGVzXykge1xuICAgICAgZ2V0UGx1Z2luKFwiUGF0Y2hlc1wiKS5nZW5lcmF0ZVBhdGNoZXNfKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm9vdFNjb3BlLnBhdGNoZXNfLFxuICAgICAgICByb290U2NvcGUuaW52ZXJzZVBhdGNoZXNfXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhdGUuY29weV87XG59XG5mdW5jdGlvbiBmaW5hbGl6ZVByb3BlcnR5KHJvb3RTY29wZSwgcGFyZW50U3RhdGUsIHRhcmdldE9iamVjdCwgcHJvcCwgY2hpbGRWYWx1ZSwgcm9vdFBhdGgsIHRhcmdldElzU2V0KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiYgY2hpbGRWYWx1ZSA9PT0gdGFyZ2V0T2JqZWN0KVxuICAgIGRpZSg1KTtcbiAgaWYgKGlzRHJhZnQoY2hpbGRWYWx1ZSkpIHtcbiAgICBjb25zdCBwYXRoID0gcm9vdFBhdGggJiYgcGFyZW50U3RhdGUgJiYgcGFyZW50U3RhdGUudHlwZV8gIT09IDMgLyogU2V0ICovICYmIC8vIFNldCBvYmplY3RzIGFyZSBhdG9taWMgc2luY2UgdGhleSBoYXZlIG5vIGtleXMuXG4gICAgIWhhcyhwYXJlbnRTdGF0ZS5hc3NpZ25lZF8sIHByb3ApID8gcm9vdFBhdGguY29uY2F0KHByb3ApIDogdm9pZCAwO1xuICAgIGNvbnN0IHJlcyA9IGZpbmFsaXplKHJvb3RTY29wZSwgY2hpbGRWYWx1ZSwgcGF0aCk7XG4gICAgc2V0KHRhcmdldE9iamVjdCwgcHJvcCwgcmVzKTtcbiAgICBpZiAoaXNEcmFmdChyZXMpKSB7XG4gICAgICByb290U2NvcGUuY2FuQXV0b0ZyZWV6ZV8gPSBmYWxzZTtcbiAgICB9IGVsc2VcbiAgICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICh0YXJnZXRJc1NldCkge1xuICAgIHRhcmdldE9iamVjdC5hZGQoY2hpbGRWYWx1ZSk7XG4gIH1cbiAgaWYgKGlzRHJhZnRhYmxlKGNoaWxkVmFsdWUpICYmICFpc0Zyb3plbihjaGlsZFZhbHVlKSkge1xuICAgIGlmICghcm9vdFNjb3BlLmltbWVyXy5hdXRvRnJlZXplXyAmJiByb290U2NvcGUudW5maW5hbGl6ZWREcmFmdHNfIDwgMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmaW5hbGl6ZShyb290U2NvcGUsIGNoaWxkVmFsdWUpO1xuICAgIGlmICgoIXBhcmVudFN0YXRlIHx8ICFwYXJlbnRTdGF0ZS5zY29wZV8ucGFyZW50XykgJiYgdHlwZW9mIHByb3AgIT09IFwic3ltYm9sXCIgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHRhcmdldE9iamVjdCwgcHJvcCkpXG4gICAgICBtYXliZUZyZWV6ZShyb290U2NvcGUsIGNoaWxkVmFsdWUpO1xuICB9XG59XG5mdW5jdGlvbiBtYXliZUZyZWV6ZShzY29wZSwgdmFsdWUsIGRlZXAgPSBmYWxzZSkge1xuICBpZiAoIXNjb3BlLnBhcmVudF8gJiYgc2NvcGUuaW1tZXJfLmF1dG9GcmVlemVfICYmIHNjb3BlLmNhbkF1dG9GcmVlemVfKSB7XG4gICAgZnJlZXplKHZhbHVlLCBkZWVwKTtcbiAgfVxufVxuXG4vLyBzcmMvY29yZS9wcm94eS50c1xuZnVuY3Rpb24gY3JlYXRlUHJveHlQcm94eShiYXNlLCBwYXJlbnQpIHtcbiAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoYmFzZSk7XG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIHR5cGVfOiBpc0FycmF5ID8gMSAvKiBBcnJheSAqLyA6IDAgLyogT2JqZWN0ICovLFxuICAgIC8vIFRyYWNrIHdoaWNoIHByb2R1Y2UgY2FsbCB0aGlzIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICBzY29wZV86IHBhcmVudCA/IHBhcmVudC5zY29wZV8gOiBnZXRDdXJyZW50U2NvcGUoKSxcbiAgICAvLyBUcnVlIGZvciBib3RoIHNoYWxsb3cgYW5kIGRlZXAgY2hhbmdlcy5cbiAgICBtb2RpZmllZF86IGZhbHNlLFxuICAgIC8vIFVzZWQgZHVyaW5nIGZpbmFsaXphdGlvbi5cbiAgICBmaW5hbGl6ZWRfOiBmYWxzZSxcbiAgICAvLyBUcmFjayB3aGljaCBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBhc3NpZ25lZCAodHJ1ZSkgb3IgZGVsZXRlZCAoZmFsc2UpLlxuICAgIGFzc2lnbmVkXzoge30sXG4gICAgLy8gVGhlIHBhcmVudCBkcmFmdCBzdGF0ZS5cbiAgICBwYXJlbnRfOiBwYXJlbnQsXG4gICAgLy8gVGhlIGJhc2Ugc3RhdGUuXG4gICAgYmFzZV86IGJhc2UsXG4gICAgLy8gVGhlIGJhc2UgcHJveHkuXG4gICAgZHJhZnRfOiBudWxsLFxuICAgIC8vIHNldCBiZWxvd1xuICAgIC8vIFRoZSBiYXNlIGNvcHkgd2l0aCBhbnkgdXBkYXRlZCB2YWx1ZXMuXG4gICAgY29weV86IG51bGwsXG4gICAgLy8gQ2FsbGVkIGJ5IHRoZSBgcHJvZHVjZWAgZnVuY3Rpb24uXG4gICAgcmV2b2tlXzogbnVsbCxcbiAgICBpc01hbnVhbF86IGZhbHNlXG4gIH07XG4gIGxldCB0YXJnZXQgPSBzdGF0ZTtcbiAgbGV0IHRyYXBzID0gb2JqZWN0VHJhcHM7XG4gIGlmIChpc0FycmF5KSB7XG4gICAgdGFyZ2V0ID0gW3N0YXRlXTtcbiAgICB0cmFwcyA9IGFycmF5VHJhcHM7XG4gIH1cbiAgY29uc3QgeyByZXZva2UsIHByb3h5IH0gPSBQcm94eS5yZXZvY2FibGUodGFyZ2V0LCB0cmFwcyk7XG4gIHN0YXRlLmRyYWZ0XyA9IHByb3h5O1xuICBzdGF0ZS5yZXZva2VfID0gcmV2b2tlO1xuICByZXR1cm4gcHJveHk7XG59XG52YXIgb2JqZWN0VHJhcHMgPSB7XG4gIGdldChzdGF0ZSwgcHJvcCkge1xuICAgIGlmIChwcm9wID09PSBEUkFGVF9TVEFURSlcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICBjb25zdCBzb3VyY2UgPSBsYXRlc3Qoc3RhdGUpO1xuICAgIGlmICghaGFzKHNvdXJjZSwgcHJvcCkpIHtcbiAgICAgIHJldHVybiByZWFkUHJvcEZyb21Qcm90byhzdGF0ZSwgc291cmNlLCBwcm9wKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBzb3VyY2VbcHJvcF07XG4gICAgaWYgKHN0YXRlLmZpbmFsaXplZF8gfHwgIWlzRHJhZnRhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IHBlZWsoc3RhdGUuYmFzZV8sIHByb3ApKSB7XG4gICAgICBwcmVwYXJlQ29weShzdGF0ZSk7XG4gICAgICByZXR1cm4gc3RhdGUuY29weV9bcHJvcF0gPSBjcmVhdGVQcm94eSh2YWx1ZSwgc3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG4gIGhhcyhzdGF0ZSwgcHJvcCkge1xuICAgIHJldHVybiBwcm9wIGluIGxhdGVzdChzdGF0ZSk7XG4gIH0sXG4gIG93bktleXMoc3RhdGUpIHtcbiAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKGxhdGVzdChzdGF0ZSkpO1xuICB9LFxuICBzZXQoc3RhdGUsIHByb3AsIHZhbHVlKSB7XG4gICAgY29uc3QgZGVzYyA9IGdldERlc2NyaXB0b3JGcm9tUHJvdG8obGF0ZXN0KHN0YXRlKSwgcHJvcCk7XG4gICAgaWYgKGRlc2M/LnNldCkge1xuICAgICAgZGVzYy5zZXQuY2FsbChzdGF0ZS5kcmFmdF8sIHZhbHVlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXN0YXRlLm1vZGlmaWVkXykge1xuICAgICAgY29uc3QgY3VycmVudDIgPSBwZWVrKGxhdGVzdChzdGF0ZSksIHByb3ApO1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gY3VycmVudDI/LltEUkFGVF9TVEFURV07XG4gICAgICBpZiAoY3VycmVudFN0YXRlICYmIGN1cnJlbnRTdGF0ZS5iYXNlXyA9PT0gdmFsdWUpIHtcbiAgICAgICAgc3RhdGUuY29weV9bcHJvcF0gPSB2YWx1ZTtcbiAgICAgICAgc3RhdGUuYXNzaWduZWRfW3Byb3BdID0gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzKHZhbHVlLCBjdXJyZW50MikgJiYgKHZhbHVlICE9PSB2b2lkIDAgfHwgaGFzKHN0YXRlLmJhc2VfLCBwcm9wKSkpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgcHJlcGFyZUNvcHkoc3RhdGUpO1xuICAgICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgIH1cbiAgICBpZiAoc3RhdGUuY29weV9bcHJvcF0gPT09IHZhbHVlICYmIC8vIHNwZWNpYWwgY2FzZTogaGFuZGxlIG5ldyBwcm9wcyB3aXRoIHZhbHVlICd1bmRlZmluZWQnXG4gICAgKHZhbHVlICE9PSB2b2lkIDAgfHwgcHJvcCBpbiBzdGF0ZS5jb3B5XykgfHwgLy8gc3BlY2lhbCBjYXNlOiBOYU5cbiAgICBOdW1iZXIuaXNOYU4odmFsdWUpICYmIE51bWJlci5pc05hTihzdGF0ZS5jb3B5X1twcm9wXSkpXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBzdGF0ZS5jb3B5X1twcm9wXSA9IHZhbHVlO1xuICAgIHN0YXRlLmFzc2lnbmVkX1twcm9wXSA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIGRlbGV0ZVByb3BlcnR5KHN0YXRlLCBwcm9wKSB7XG4gICAgaWYgKHBlZWsoc3RhdGUuYmFzZV8sIHByb3ApICE9PSB2b2lkIDAgfHwgcHJvcCBpbiBzdGF0ZS5iYXNlXykge1xuICAgICAgc3RhdGUuYXNzaWduZWRfW3Byb3BdID0gZmFsc2U7XG4gICAgICBwcmVwYXJlQ29weShzdGF0ZSk7XG4gICAgICBtYXJrQ2hhbmdlZChzdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBzdGF0ZS5hc3NpZ25lZF9bcHJvcF07XG4gICAgfVxuICAgIGlmIChzdGF0ZS5jb3B5Xykge1xuICAgICAgZGVsZXRlIHN0YXRlLmNvcHlfW3Byb3BdO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgLy8gTm90ZTogV2UgbmV2ZXIgY29lcmNlIGBkZXNjLnZhbHVlYCBpbnRvIGFuIEltbWVyIGRyYWZ0LCBiZWNhdXNlIHdlIGNhbid0IG1ha2VcbiAgLy8gdGhlIHNhbWUgZ3VhcmFudGVlIGluIEVTNSBtb2RlLlxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc3RhdGUsIHByb3ApIHtcbiAgICBjb25zdCBvd25lciA9IGxhdGVzdChzdGF0ZSk7XG4gICAgY29uc3QgZGVzYyA9IFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG93bmVyLCBwcm9wKTtcbiAgICBpZiAoIWRlc2MpXG4gICAgICByZXR1cm4gZGVzYztcbiAgICByZXR1cm4ge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHN0YXRlLnR5cGVfICE9PSAxIC8qIEFycmF5ICovIHx8IHByb3AgIT09IFwibGVuZ3RoXCIsXG4gICAgICBlbnVtZXJhYmxlOiBkZXNjLmVudW1lcmFibGUsXG4gICAgICB2YWx1ZTogb3duZXJbcHJvcF1cbiAgICB9O1xuICB9LFxuICBkZWZpbmVQcm9wZXJ0eSgpIHtcbiAgICBkaWUoMTEpO1xuICB9LFxuICBnZXRQcm90b3R5cGVPZihzdGF0ZSkge1xuICAgIHJldHVybiBnZXRQcm90b3R5cGVPZihzdGF0ZS5iYXNlXyk7XG4gIH0sXG4gIHNldFByb3RvdHlwZU9mKCkge1xuICAgIGRpZSgxMik7XG4gIH1cbn07XG52YXIgYXJyYXlUcmFwcyA9IHt9O1xuZWFjaChvYmplY3RUcmFwcywgKGtleSwgZm4pID0+IHtcbiAgYXJyYXlUcmFwc1trZXldID0gZnVuY3Rpb24oKSB7XG4gICAgYXJndW1lbnRzWzBdID0gYXJndW1lbnRzWzBdWzBdO1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSk7XG5hcnJheVRyYXBzLmRlbGV0ZVByb3BlcnR5ID0gZnVuY3Rpb24oc3RhdGUsIHByb3ApIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiBpc05hTihwYXJzZUludChwcm9wKSkpXG4gICAgZGllKDEzKTtcbiAgcmV0dXJuIGFycmF5VHJhcHMuc2V0LmNhbGwodGhpcywgc3RhdGUsIHByb3AsIHZvaWQgMCk7XG59O1xuYXJyYXlUcmFwcy5zZXQgPSBmdW5jdGlvbihzdGF0ZSwgcHJvcCwgdmFsdWUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiBwcm9wICE9PSBcImxlbmd0aFwiICYmIGlzTmFOKHBhcnNlSW50KHByb3ApKSlcbiAgICBkaWUoMTQpO1xuICByZXR1cm4gb2JqZWN0VHJhcHMuc2V0LmNhbGwodGhpcywgc3RhdGVbMF0sIHByb3AsIHZhbHVlLCBzdGF0ZVswXSk7XG59O1xuZnVuY3Rpb24gcGVlayhkcmFmdCwgcHJvcCkge1xuICBjb25zdCBzdGF0ZSA9IGRyYWZ0W0RSQUZUX1NUQVRFXTtcbiAgY29uc3Qgc291cmNlID0gc3RhdGUgPyBsYXRlc3Qoc3RhdGUpIDogZHJhZnQ7XG4gIHJldHVybiBzb3VyY2VbcHJvcF07XG59XG5mdW5jdGlvbiByZWFkUHJvcEZyb21Qcm90byhzdGF0ZSwgc291cmNlLCBwcm9wKSB7XG4gIGNvbnN0IGRlc2MgPSBnZXREZXNjcmlwdG9yRnJvbVByb3RvKHNvdXJjZSwgcHJvcCk7XG4gIHJldHVybiBkZXNjID8gYHZhbHVlYCBpbiBkZXNjID8gZGVzYy52YWx1ZSA6IChcbiAgICAvLyBUaGlzIGlzIGEgdmVyeSBzcGVjaWFsIGNhc2UsIGlmIHRoZSBwcm9wIGlzIGEgZ2V0dGVyIGRlZmluZWQgYnkgdGhlXG4gICAgLy8gcHJvdG90eXBlLCB3ZSBzaG91bGQgaW52b2tlIGl0IHdpdGggdGhlIGRyYWZ0IGFzIGNvbnRleHQhXG4gICAgZGVzYy5nZXQ/LmNhbGwoc3RhdGUuZHJhZnRfKVxuICApIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckZyb21Qcm90byhzb3VyY2UsIHByb3ApIHtcbiAgaWYgKCEocHJvcCBpbiBzb3VyY2UpKVxuICAgIHJldHVybiB2b2lkIDA7XG4gIGxldCBwcm90byA9IGdldFByb3RvdHlwZU9mKHNvdXJjZSk7XG4gIHdoaWxlIChwcm90bykge1xuICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvLCBwcm9wKTtcbiAgICBpZiAoZGVzYylcbiAgICAgIHJldHVybiBkZXNjO1xuICAgIHByb3RvID0gZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG4gIHJldHVybiB2b2lkIDA7XG59XG5mdW5jdGlvbiBtYXJrQ2hhbmdlZChzdGF0ZSkge1xuICBpZiAoIXN0YXRlLm1vZGlmaWVkXykge1xuICAgIHN0YXRlLm1vZGlmaWVkXyA9IHRydWU7XG4gICAgaWYgKHN0YXRlLnBhcmVudF8pIHtcbiAgICAgIG1hcmtDaGFuZ2VkKHN0YXRlLnBhcmVudF8pO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcHJlcGFyZUNvcHkoc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5jb3B5Xykge1xuICAgIHN0YXRlLmNvcHlfID0gc2hhbGxvd0NvcHkoXG4gICAgICBzdGF0ZS5iYXNlXyxcbiAgICAgIHN0YXRlLnNjb3BlXy5pbW1lcl8udXNlU3RyaWN0U2hhbGxvd0NvcHlfXG4gICAgKTtcbiAgfVxufVxuXG4vLyBzcmMvY29yZS9pbW1lckNsYXNzLnRzXG52YXIgSW1tZXIyID0gY2xhc3Mge1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICB0aGlzLmF1dG9GcmVlemVfID0gdHJ1ZTtcbiAgICB0aGlzLnVzZVN0cmljdFNoYWxsb3dDb3B5XyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFRoZSBgcHJvZHVjZWAgZnVuY3Rpb24gdGFrZXMgYSB2YWx1ZSBhbmQgYSBcInJlY2lwZSBmdW5jdGlvblwiICh3aG9zZVxuICAgICAqIHJldHVybiB2YWx1ZSBvZnRlbiBkZXBlbmRzIG9uIHRoZSBiYXNlIHN0YXRlKS4gVGhlIHJlY2lwZSBmdW5jdGlvbiBpc1xuICAgICAqIGZyZWUgdG8gbXV0YXRlIGl0cyBmaXJzdCBhcmd1bWVudCBob3dldmVyIGl0IHdhbnRzLiBBbGwgbXV0YXRpb25zIGFyZVxuICAgICAqIG9ubHkgZXZlciBhcHBsaWVkIHRvIGEgX19jb3B5X18gb2YgdGhlIGJhc2Ugc3RhdGUuXG4gICAgICpcbiAgICAgKiBQYXNzIG9ubHkgYSBmdW5jdGlvbiB0byBjcmVhdGUgYSBcImN1cnJpZWQgcHJvZHVjZXJcIiB3aGljaCByZWxpZXZlcyB5b3VcbiAgICAgKiBmcm9tIHBhc3NpbmcgdGhlIHJlY2lwZSBmdW5jdGlvbiBldmVyeSB0aW1lLlxuICAgICAqXG4gICAgICogT25seSBwbGFpbiBvYmplY3RzIGFuZCBhcnJheXMgYXJlIG1hZGUgbXV0YWJsZS4gQWxsIG90aGVyIG9iamVjdHMgYXJlXG4gICAgICogY29uc2lkZXJlZCB1bmNvcHlhYmxlLlxuICAgICAqXG4gICAgICogTm90ZTogVGhpcyBmdW5jdGlvbiBpcyBfX2JvdW5kX18gdG8gaXRzIGBJbW1lcmAgaW5zdGFuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2FueX0gYmFzZSAtIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcmVjaXBlIC0gZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBhIHByb3h5IG9mIHRoZSBiYXNlIHN0YXRlIGFzIGZpcnN0IGFyZ3VtZW50IGFuZCB3aGljaCBjYW4gYmUgZnJlZWx5IG1vZGlmaWVkXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcGF0Y2hMaXN0ZW5lciAtIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbGwgdGhlIHBhdGNoZXMgcHJvZHVjZWQgaGVyZVxuICAgICAqIEByZXR1cm5zIHthbnl9IGEgbmV3IHN0YXRlLCBvciB0aGUgaW5pdGlhbCBzdGF0ZSBpZiBub3RoaW5nIHdhcyBtb2RpZmllZFxuICAgICAqL1xuICAgIHRoaXMucHJvZHVjZSA9IChiYXNlLCByZWNpcGUsIHBhdGNoTGlzdGVuZXIpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgYmFzZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiByZWNpcGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBkZWZhdWx0QmFzZSA9IHJlY2lwZTtcbiAgICAgICAgcmVjaXBlID0gYmFzZTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjdXJyaWVkUHJvZHVjZShiYXNlMiA9IGRlZmF1bHRCYXNlLCAuLi5hcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYucHJvZHVjZShiYXNlMiwgKGRyYWZ0KSA9PiByZWNpcGUuY2FsbCh0aGlzLCBkcmFmdCwgLi4uYXJncykpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiByZWNpcGUgIT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZGllKDYpO1xuICAgICAgaWYgKHBhdGNoTGlzdGVuZXIgIT09IHZvaWQgMCAmJiB0eXBlb2YgcGF0Y2hMaXN0ZW5lciAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBkaWUoNyk7XG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgaWYgKGlzRHJhZnRhYmxlKGJhc2UpKSB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gZW50ZXJTY29wZSh0aGlzKTtcbiAgICAgICAgY29uc3QgcHJveHkgPSBjcmVhdGVQcm94eShiYXNlLCB2b2lkIDApO1xuICAgICAgICBsZXQgaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlY2lwZShwcm94eSk7XG4gICAgICAgICAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoaGFzRXJyb3IpXG4gICAgICAgICAgICByZXZva2VTY29wZShzY29wZSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGVhdmVTY29wZShzY29wZSk7XG4gICAgICAgIH1cbiAgICAgICAgdXNlUGF0Y2hlc0luU2NvcGUoc2NvcGUsIHBhdGNoTGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdChyZXN1bHQsIHNjb3BlKTtcbiAgICAgIH0gZWxzZSBpZiAoIWJhc2UgfHwgdHlwZW9mIGJhc2UgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVjaXBlKGJhc2UpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApXG4gICAgICAgICAgcmVzdWx0ID0gYmFzZTtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gTk9USElORylcbiAgICAgICAgICByZXN1bHQgPSB2b2lkIDA7XG4gICAgICAgIGlmICh0aGlzLmF1dG9GcmVlemVfKVxuICAgICAgICAgIGZyZWV6ZShyZXN1bHQsIHRydWUpO1xuICAgICAgICBpZiAocGF0Y2hMaXN0ZW5lcikge1xuICAgICAgICAgIGNvbnN0IHAgPSBbXTtcbiAgICAgICAgICBjb25zdCBpcCA9IFtdO1xuICAgICAgICAgIGdldFBsdWdpbihcIlBhdGNoZXNcIikuZ2VuZXJhdGVSZXBsYWNlbWVudFBhdGNoZXNfKGJhc2UsIHJlc3VsdCwgcCwgaXApO1xuICAgICAgICAgIHBhdGNoTGlzdGVuZXIocCwgaXApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2VcbiAgICAgICAgZGllKDEsIGJhc2UpO1xuICAgIH07XG4gICAgdGhpcy5wcm9kdWNlV2l0aFBhdGNoZXMgPSAoYmFzZSwgcmVjaXBlKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGJhc2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gKHN0YXRlLCAuLi5hcmdzKSA9PiB0aGlzLnByb2R1Y2VXaXRoUGF0Y2hlcyhzdGF0ZSwgKGRyYWZ0KSA9PiBiYXNlKGRyYWZ0LCAuLi5hcmdzKSk7XG4gICAgICB9XG4gICAgICBsZXQgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXM7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnByb2R1Y2UoYmFzZSwgcmVjaXBlLCAocCwgaXApID0+IHtcbiAgICAgICAgcGF0Y2hlcyA9IHA7XG4gICAgICAgIGludmVyc2VQYXRjaGVzID0gaXA7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbcmVzdWx0LCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlc107XG4gICAgfTtcbiAgICBpZiAodHlwZW9mIGNvbmZpZz8uYXV0b0ZyZWV6ZSA9PT0gXCJib29sZWFuXCIpXG4gICAgICB0aGlzLnNldEF1dG9GcmVlemUoY29uZmlnLmF1dG9GcmVlemUpO1xuICAgIGlmICh0eXBlb2YgY29uZmlnPy51c2VTdHJpY3RTaGFsbG93Q29weSA9PT0gXCJib29sZWFuXCIpXG4gICAgICB0aGlzLnNldFVzZVN0cmljdFNoYWxsb3dDb3B5KGNvbmZpZy51c2VTdHJpY3RTaGFsbG93Q29weSk7XG4gIH1cbiAgY3JlYXRlRHJhZnQoYmFzZSkge1xuICAgIGlmICghaXNEcmFmdGFibGUoYmFzZSkpXG4gICAgICBkaWUoOCk7XG4gICAgaWYgKGlzRHJhZnQoYmFzZSkpXG4gICAgICBiYXNlID0gY3VycmVudChiYXNlKTtcbiAgICBjb25zdCBzY29wZSA9IGVudGVyU2NvcGUodGhpcyk7XG4gICAgY29uc3QgcHJveHkgPSBjcmVhdGVQcm94eShiYXNlLCB2b2lkIDApO1xuICAgIHByb3h5W0RSQUZUX1NUQVRFXS5pc01hbnVhbF8gPSB0cnVlO1xuICAgIGxlYXZlU2NvcGUoc2NvcGUpO1xuICAgIHJldHVybiBwcm94eTtcbiAgfVxuICBmaW5pc2hEcmFmdChkcmFmdCwgcGF0Y2hMaXN0ZW5lcikge1xuICAgIGNvbnN0IHN0YXRlID0gZHJhZnQgJiYgZHJhZnRbRFJBRlRfU1RBVEVdO1xuICAgIGlmICghc3RhdGUgfHwgIXN0YXRlLmlzTWFudWFsXylcbiAgICAgIGRpZSg5KTtcbiAgICBjb25zdCB7IHNjb3BlXzogc2NvcGUgfSA9IHN0YXRlO1xuICAgIHVzZVBhdGNoZXNJblNjb3BlKHNjb3BlLCBwYXRjaExpc3RlbmVyKTtcbiAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdCh2b2lkIDAsIHNjb3BlKTtcbiAgfVxuICAvKipcbiAgICogUGFzcyB0cnVlIHRvIGF1dG9tYXRpY2FsbHkgZnJlZXplIGFsbCBjb3BpZXMgY3JlYXRlZCBieSBJbW1lci5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgYXV0by1mcmVlemluZyBpcyBlbmFibGVkLlxuICAgKi9cbiAgc2V0QXV0b0ZyZWV6ZSh2YWx1ZSkge1xuICAgIHRoaXMuYXV0b0ZyZWV6ZV8gPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogUGFzcyB0cnVlIHRvIGVuYWJsZSBzdHJpY3Qgc2hhbGxvdyBjb3B5LlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpbW1lciBkb2VzIG5vdCBjb3B5IHRoZSBvYmplY3QgZGVzY3JpcHRvcnMgc3VjaCBhcyBnZXR0ZXIsIHNldHRlciBhbmQgbm9uLWVudW1yYWJsZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkodmFsdWUpIHtcbiAgICB0aGlzLnVzZVN0cmljdFNoYWxsb3dDb3B5XyA9IHZhbHVlO1xuICB9XG4gIGFwcGx5UGF0Y2hlcyhiYXNlLCBwYXRjaGVzKSB7XG4gICAgbGV0IGk7XG4gICAgZm9yIChpID0gcGF0Y2hlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgcGF0Y2ggPSBwYXRjaGVzW2ldO1xuICAgICAgaWYgKHBhdGNoLnBhdGgubGVuZ3RoID09PSAwICYmIHBhdGNoLm9wID09PSBcInJlcGxhY2VcIikge1xuICAgICAgICBiYXNlID0gcGF0Y2gudmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBwYXRjaGVzID0gcGF0Y2hlcy5zbGljZShpICsgMSk7XG4gICAgfVxuICAgIGNvbnN0IGFwcGx5UGF0Y2hlc0ltcGwgPSBnZXRQbHVnaW4oXCJQYXRjaGVzXCIpLmFwcGx5UGF0Y2hlc187XG4gICAgaWYgKGlzRHJhZnQoYmFzZSkpIHtcbiAgICAgIHJldHVybiBhcHBseVBhdGNoZXNJbXBsKGJhc2UsIHBhdGNoZXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9kdWNlKFxuICAgICAgYmFzZSxcbiAgICAgIChkcmFmdCkgPT4gYXBwbHlQYXRjaGVzSW1wbChkcmFmdCwgcGF0Y2hlcylcbiAgICApO1xuICB9XG59O1xuZnVuY3Rpb24gY3JlYXRlUHJveHkodmFsdWUsIHBhcmVudCkge1xuICBjb25zdCBkcmFmdCA9IGlzTWFwKHZhbHVlKSA/IGdldFBsdWdpbihcIk1hcFNldFwiKS5wcm94eU1hcF8odmFsdWUsIHBhcmVudCkgOiBpc1NldCh2YWx1ZSkgPyBnZXRQbHVnaW4oXCJNYXBTZXRcIikucHJveHlTZXRfKHZhbHVlLCBwYXJlbnQpIDogY3JlYXRlUHJveHlQcm94eSh2YWx1ZSwgcGFyZW50KTtcbiAgY29uc3Qgc2NvcGUgPSBwYXJlbnQgPyBwYXJlbnQuc2NvcGVfIDogZ2V0Q3VycmVudFNjb3BlKCk7XG4gIHNjb3BlLmRyYWZ0c18ucHVzaChkcmFmdCk7XG4gIHJldHVybiBkcmFmdDtcbn1cblxuLy8gc3JjL2NvcmUvY3VycmVudC50c1xuZnVuY3Rpb24gY3VycmVudCh2YWx1ZSkge1xuICBpZiAoIWlzRHJhZnQodmFsdWUpKVxuICAgIGRpZSgxMCwgdmFsdWUpO1xuICByZXR1cm4gY3VycmVudEltcGwodmFsdWUpO1xufVxuZnVuY3Rpb24gY3VycmVudEltcGwodmFsdWUpIHtcbiAgaWYgKCFpc0RyYWZ0YWJsZSh2YWx1ZSkgfHwgaXNGcm96ZW4odmFsdWUpKVxuICAgIHJldHVybiB2YWx1ZTtcbiAgY29uc3Qgc3RhdGUgPSB2YWx1ZVtEUkFGVF9TVEFURV07XG4gIGxldCBjb3B5O1xuICBpZiAoc3RhdGUpIHtcbiAgICBpZiAoIXN0YXRlLm1vZGlmaWVkXylcbiAgICAgIHJldHVybiBzdGF0ZS5iYXNlXztcbiAgICBzdGF0ZS5maW5hbGl6ZWRfID0gdHJ1ZTtcbiAgICBjb3B5ID0gc2hhbGxvd0NvcHkodmFsdWUsIHN0YXRlLnNjb3BlXy5pbW1lcl8udXNlU3RyaWN0U2hhbGxvd0NvcHlfKTtcbiAgfSBlbHNlIHtcbiAgICBjb3B5ID0gc2hhbGxvd0NvcHkodmFsdWUsIHRydWUpO1xuICB9XG4gIGVhY2goY29weSwgKGtleSwgY2hpbGRWYWx1ZSkgPT4ge1xuICAgIHNldChjb3B5LCBrZXksIGN1cnJlbnRJbXBsKGNoaWxkVmFsdWUpKTtcbiAgfSk7XG4gIGlmIChzdGF0ZSkge1xuICAgIHN0YXRlLmZpbmFsaXplZF8gPSBmYWxzZTtcbiAgfVxuICByZXR1cm4gY29weTtcbn1cblxuLy8gc3JjL3BsdWdpbnMvcGF0Y2hlcy50c1xuZnVuY3Rpb24gZW5hYmxlUGF0Y2hlcygpIHtcbiAgY29uc3QgZXJyb3JPZmZzZXQgPSAxNjtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGVycm9ycy5wdXNoKFxuICAgICAgJ1NldHMgY2Fubm90IGhhdmUgXCJyZXBsYWNlXCIgcGF0Y2hlcy4nLFxuICAgICAgZnVuY3Rpb24ob3ApIHtcbiAgICAgICAgcmV0dXJuIFwiVW5zdXBwb3J0ZWQgcGF0Y2ggb3BlcmF0aW9uOiBcIiArIG9wO1xuICAgICAgfSxcbiAgICAgIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIFwiQ2Fubm90IGFwcGx5IHBhdGNoLCBwYXRoIGRvZXNuJ3QgcmVzb2x2ZTogXCIgKyBwYXRoO1xuICAgICAgfSxcbiAgICAgIFwiUGF0Y2hpbmcgcmVzZXJ2ZWQgYXR0cmlidXRlcyBsaWtlIF9fcHJvdG9fXywgcHJvdG90eXBlIGFuZCBjb25zdHJ1Y3RvciBpcyBub3QgYWxsb3dlZFwiXG4gICAgKTtcbiAgfVxuICBjb25zdCBSRVBMQUNFID0gXCJyZXBsYWNlXCI7XG4gIGNvbnN0IEFERCA9IFwiYWRkXCI7XG4gIGNvbnN0IFJFTU9WRSA9IFwicmVtb3ZlXCI7XG4gIGZ1bmN0aW9uIGdlbmVyYXRlUGF0Y2hlc18oc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcykge1xuICAgIHN3aXRjaCAoc3RhdGUudHlwZV8pIHtcbiAgICAgIGNhc2UgMCAvKiBPYmplY3QgKi86XG4gICAgICBjYXNlIDIgLyogTWFwICovOlxuICAgICAgICByZXR1cm4gZ2VuZXJhdGVQYXRjaGVzRnJvbUFzc2lnbmVkKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIGJhc2VQYXRoLFxuICAgICAgICAgIHBhdGNoZXMsXG4gICAgICAgICAgaW52ZXJzZVBhdGNoZXNcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgMSAvKiBBcnJheSAqLzpcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlQXJyYXlQYXRjaGVzKHN0YXRlLCBiYXNlUGF0aCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpO1xuICAgICAgY2FzZSAzIC8qIFNldCAqLzpcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlU2V0UGF0Y2hlcyhcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBiYXNlUGF0aCxcbiAgICAgICAgICBwYXRjaGVzLFxuICAgICAgICAgIGludmVyc2VQYXRjaGVzXG4gICAgICAgICk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGdlbmVyYXRlQXJyYXlQYXRjaGVzKHN0YXRlLCBiYXNlUGF0aCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpIHtcbiAgICBsZXQgeyBiYXNlXywgYXNzaWduZWRfIH0gPSBzdGF0ZTtcbiAgICBsZXQgY29weV8gPSBzdGF0ZS5jb3B5XztcbiAgICBpZiAoY29weV8ubGVuZ3RoIDwgYmFzZV8ubGVuZ3RoKSB7XG4gICAgICA7XG4gICAgICBbYmFzZV8sIGNvcHlfXSA9IFtjb3B5XywgYmFzZV9dO1xuICAgICAgW3BhdGNoZXMsIGludmVyc2VQYXRjaGVzXSA9IFtpbnZlcnNlUGF0Y2hlcywgcGF0Y2hlc107XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmFzZV8ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhc3NpZ25lZF9baV0gJiYgY29weV9baV0gIT09IGJhc2VfW2ldKSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBiYXNlUGF0aC5jb25jYXQoW2ldKTtcbiAgICAgICAgcGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICBvcDogUkVQTEFDRSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIC8vIE5lZWQgdG8gbWF5YmUgY2xvbmUgaXQsIGFzIGl0IGNhbiBpbiBmYWN0IGJlIHRoZSBvcmlnaW5hbCB2YWx1ZVxuICAgICAgICAgIC8vIGR1ZSB0byB0aGUgYmFzZS9jb3B5IGludmVyc2lvbiBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmdW5jdGlvblxuICAgICAgICAgIHZhbHVlOiBjbG9uZVBhdGNoVmFsdWVJZk5lZWRlZChjb3B5X1tpXSlcbiAgICAgICAgfSk7XG4gICAgICAgIGludmVyc2VQYXRjaGVzLnB1c2goe1xuICAgICAgICAgIG9wOiBSRVBMQUNFLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdmFsdWU6IGNsb25lUGF0Y2hWYWx1ZUlmTmVlZGVkKGJhc2VfW2ldKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IGJhc2VfLmxlbmd0aDsgaSA8IGNvcHlfLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBwYXRoID0gYmFzZVBhdGguY29uY2F0KFtpXSk7XG4gICAgICBwYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogQURELFxuICAgICAgICBwYXRoLFxuICAgICAgICAvLyBOZWVkIHRvIG1heWJlIGNsb25lIGl0LCBhcyBpdCBjYW4gaW4gZmFjdCBiZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICAgICAgLy8gZHVlIHRvIHRoZSBiYXNlL2NvcHkgaW52ZXJzaW9uIGF0IHRoZSBzdGFydCBvZiB0aGlzIGZ1bmN0aW9uXG4gICAgICAgIHZhbHVlOiBjbG9uZVBhdGNoVmFsdWVJZk5lZWRlZChjb3B5X1tpXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gY29weV8ubGVuZ3RoIC0gMTsgYmFzZV8ubGVuZ3RoIDw9IGk7IC0taSkge1xuICAgICAgY29uc3QgcGF0aCA9IGJhc2VQYXRoLmNvbmNhdChbaV0pO1xuICAgICAgaW52ZXJzZVBhdGNoZXMucHVzaCh7XG4gICAgICAgIG9wOiBSRU1PVkUsXG4gICAgICAgIHBhdGhcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBnZW5lcmF0ZVBhdGNoZXNGcm9tQXNzaWduZWQoc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcykge1xuICAgIGNvbnN0IHsgYmFzZV8sIGNvcHlfIH0gPSBzdGF0ZTtcbiAgICBlYWNoKHN0YXRlLmFzc2lnbmVkXywgKGtleSwgYXNzaWduZWRWYWx1ZSkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ1ZhbHVlID0gZ2V0KGJhc2VfLCBrZXkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBnZXQoY29weV8sIGtleSk7XG4gICAgICBjb25zdCBvcCA9ICFhc3NpZ25lZFZhbHVlID8gUkVNT1ZFIDogaGFzKGJhc2VfLCBrZXkpID8gUkVQTEFDRSA6IEFERDtcbiAgICAgIGlmIChvcmlnVmFsdWUgPT09IHZhbHVlICYmIG9wID09PSBSRVBMQUNFKVxuICAgICAgICByZXR1cm47XG4gICAgICBjb25zdCBwYXRoID0gYmFzZVBhdGguY29uY2F0KGtleSk7XG4gICAgICBwYXRjaGVzLnB1c2gob3AgPT09IFJFTU9WRSA/IHsgb3AsIHBhdGggfSA6IHsgb3AsIHBhdGgsIHZhbHVlIH0pO1xuICAgICAgaW52ZXJzZVBhdGNoZXMucHVzaChcbiAgICAgICAgb3AgPT09IEFERCA/IHsgb3A6IFJFTU9WRSwgcGF0aCB9IDogb3AgPT09IFJFTU9WRSA/IHsgb3A6IEFERCwgcGF0aCwgdmFsdWU6IGNsb25lUGF0Y2hWYWx1ZUlmTmVlZGVkKG9yaWdWYWx1ZSkgfSA6IHsgb3A6IFJFUExBQ0UsIHBhdGgsIHZhbHVlOiBjbG9uZVBhdGNoVmFsdWVJZk5lZWRlZChvcmlnVmFsdWUpIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gZ2VuZXJhdGVTZXRQYXRjaGVzKHN0YXRlLCBiYXNlUGF0aCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpIHtcbiAgICBsZXQgeyBiYXNlXywgY29weV8gfSA9IHN0YXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBiYXNlXy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCFjb3B5Xy5oYXModmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBiYXNlUGF0aC5jb25jYXQoW2ldKTtcbiAgICAgICAgcGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICBvcDogUkVNT1ZFLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIGludmVyc2VQYXRjaGVzLnVuc2hpZnQoe1xuICAgICAgICAgIG9wOiBBREQsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGkrKztcbiAgICB9KTtcbiAgICBpID0gMDtcbiAgICBjb3B5Xy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCFiYXNlXy5oYXModmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBiYXNlUGF0aC5jb25jYXQoW2ldKTtcbiAgICAgICAgcGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICBvcDogQURELFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIGludmVyc2VQYXRjaGVzLnVuc2hpZnQoe1xuICAgICAgICAgIG9wOiBSRU1PVkUsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGkrKztcbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiBnZW5lcmF0ZVJlcGxhY2VtZW50UGF0Y2hlc18oYmFzZVZhbHVlLCByZXBsYWNlbWVudCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpIHtcbiAgICBwYXRjaGVzLnB1c2goe1xuICAgICAgb3A6IFJFUExBQ0UsXG4gICAgICBwYXRoOiBbXSxcbiAgICAgIHZhbHVlOiByZXBsYWNlbWVudCA9PT0gTk9USElORyA/IHZvaWQgMCA6IHJlcGxhY2VtZW50XG4gICAgfSk7XG4gICAgaW52ZXJzZVBhdGNoZXMucHVzaCh7XG4gICAgICBvcDogUkVQTEFDRSxcbiAgICAgIHBhdGg6IFtdLFxuICAgICAgdmFsdWU6IGJhc2VWYWx1ZVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIGFwcGx5UGF0Y2hlc18oZHJhZnQsIHBhdGNoZXMpIHtcbiAgICBwYXRjaGVzLmZvckVhY2goKHBhdGNoKSA9PiB7XG4gICAgICBjb25zdCB7IHBhdGgsIG9wIH0gPSBwYXRjaDtcbiAgICAgIGxldCBiYXNlID0gZHJhZnQ7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFR5cGUgPSBnZXRBcmNodHlwZShiYXNlKTtcbiAgICAgICAgbGV0IHAgPSBwYXRoW2ldO1xuICAgICAgICBpZiAodHlwZW9mIHAgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHAgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBwID0gXCJcIiArIHA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChwYXJlbnRUeXBlID09PSAwIC8qIE9iamVjdCAqLyB8fCBwYXJlbnRUeXBlID09PSAxIC8qIEFycmF5ICovKSAmJiAocCA9PT0gXCJfX3Byb3RvX19cIiB8fCBwID09PSBcImNvbnN0cnVjdG9yXCIpKVxuICAgICAgICAgIGRpZShlcnJvck9mZnNldCArIDMpO1xuICAgICAgICBpZiAodHlwZW9mIGJhc2UgPT09IFwiZnVuY3Rpb25cIiAmJiBwID09PSBcInByb3RvdHlwZVwiKVxuICAgICAgICAgIGRpZShlcnJvck9mZnNldCArIDMpO1xuICAgICAgICBiYXNlID0gZ2V0KGJhc2UsIHApO1xuICAgICAgICBpZiAodHlwZW9mIGJhc2UgIT09IFwib2JqZWN0XCIpXG4gICAgICAgICAgZGllKGVycm9yT2Zmc2V0ICsgMiwgcGF0aC5qb2luKFwiL1wiKSk7XG4gICAgICB9XG4gICAgICBjb25zdCB0eXBlID0gZ2V0QXJjaHR5cGUoYmFzZSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRlZXBDbG9uZVBhdGNoVmFsdWUocGF0Y2gudmFsdWUpO1xuICAgICAgY29uc3Qga2V5ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgc3dpdGNoIChvcCkge1xuICAgICAgICBjYXNlIFJFUExBQ0U6XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIDIgLyogTWFwICovOlxuICAgICAgICAgICAgICByZXR1cm4gYmFzZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIDMgLyogU2V0ICovOlxuICAgICAgICAgICAgICBkaWUoZXJyb3JPZmZzZXQpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIGJhc2Vba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBBREQ6XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIDEgLyogQXJyYXkgKi86XG4gICAgICAgICAgICAgIHJldHVybiBrZXkgPT09IFwiLVwiID8gYmFzZS5wdXNoKHZhbHVlKSA6IGJhc2Uuc3BsaWNlKGtleSwgMCwgdmFsdWUpO1xuICAgICAgICAgICAgY2FzZSAyIC8qIE1hcCAqLzpcbiAgICAgICAgICAgICAgcmV0dXJuIGJhc2Uuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgY2FzZSAzIC8qIFNldCAqLzpcbiAgICAgICAgICAgICAgcmV0dXJuIGJhc2UuYWRkKHZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBiYXNlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgUkVNT1ZFOlxuICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAxIC8qIEFycmF5ICovOlxuICAgICAgICAgICAgICByZXR1cm4gYmFzZS5zcGxpY2Uoa2V5LCAxKTtcbiAgICAgICAgICAgIGNhc2UgMiAvKiBNYXAgKi86XG4gICAgICAgICAgICAgIHJldHVybiBiYXNlLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgY2FzZSAzIC8qIFNldCAqLzpcbiAgICAgICAgICAgICAgcmV0dXJuIGJhc2UuZGVsZXRlKHBhdGNoLnZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBkZWxldGUgYmFzZVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBkaWUoZXJyb3JPZmZzZXQgKyAxLCBvcCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRyYWZ0O1xuICB9XG4gIGZ1bmN0aW9uIGRlZXBDbG9uZVBhdGNoVmFsdWUob2JqKSB7XG4gICAgaWYgKCFpc0RyYWZ0YWJsZShvYmopKVxuICAgICAgcmV0dXJuIG9iajtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKVxuICAgICAgcmV0dXJuIG9iai5tYXAoZGVlcENsb25lUGF0Y2hWYWx1ZSk7XG4gICAgaWYgKGlzTWFwKG9iaikpXG4gICAgICByZXR1cm4gbmV3IE1hcChcbiAgICAgICAgQXJyYXkuZnJvbShvYmouZW50cmllcygpKS5tYXAoKFtrLCB2XSkgPT4gW2ssIGRlZXBDbG9uZVBhdGNoVmFsdWUodildKVxuICAgICAgKTtcbiAgICBpZiAoaXNTZXQob2JqKSlcbiAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20ob2JqKS5tYXAoZGVlcENsb25lUGF0Y2hWYWx1ZSkpO1xuICAgIGNvbnN0IGNsb25lZCA9IE9iamVjdC5jcmVhdGUoZ2V0UHJvdG90eXBlT2Yob2JqKSk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKVxuICAgICAgY2xvbmVkW2tleV0gPSBkZWVwQ2xvbmVQYXRjaFZhbHVlKG9ialtrZXldKTtcbiAgICBpZiAoaGFzKG9iaiwgRFJBRlRBQkxFKSlcbiAgICAgIGNsb25lZFtEUkFGVEFCTEVdID0gb2JqW0RSQUZUQUJMRV07XG4gICAgcmV0dXJuIGNsb25lZDtcbiAgfVxuICBmdW5jdGlvbiBjbG9uZVBhdGNoVmFsdWVJZk5lZWRlZChvYmopIHtcbiAgICBpZiAoaXNEcmFmdChvYmopKSB7XG4gICAgICByZXR1cm4gZGVlcENsb25lUGF0Y2hWYWx1ZShvYmopO1xuICAgIH0gZWxzZVxuICAgICAgcmV0dXJuIG9iajtcbiAgfVxuICBsb2FkUGx1Z2luKFwiUGF0Y2hlc1wiLCB7XG4gICAgYXBwbHlQYXRjaGVzXyxcbiAgICBnZW5lcmF0ZVBhdGNoZXNfLFxuICAgIGdlbmVyYXRlUmVwbGFjZW1lbnRQYXRjaGVzX1xuICB9KTtcbn1cblxuLy8gc3JjL3BsdWdpbnMvbWFwc2V0LnRzXG5mdW5jdGlvbiBlbmFibGVNYXBTZXQoKSB7XG4gIGNsYXNzIERyYWZ0TWFwIGV4dGVuZHMgTWFwIHtcbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXQsIHBhcmVudCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXNbRFJBRlRfU1RBVEVdID0ge1xuICAgICAgICB0eXBlXzogMiAvKiBNYXAgKi8sXG4gICAgICAgIHBhcmVudF86IHBhcmVudCxcbiAgICAgICAgc2NvcGVfOiBwYXJlbnQgPyBwYXJlbnQuc2NvcGVfIDogZ2V0Q3VycmVudFNjb3BlKCksXG4gICAgICAgIG1vZGlmaWVkXzogZmFsc2UsXG4gICAgICAgIGZpbmFsaXplZF86IGZhbHNlLFxuICAgICAgICBjb3B5Xzogdm9pZCAwLFxuICAgICAgICBhc3NpZ25lZF86IHZvaWQgMCxcbiAgICAgICAgYmFzZV86IHRhcmdldCxcbiAgICAgICAgZHJhZnRfOiB0aGlzLFxuICAgICAgICBpc01hbnVhbF86IGZhbHNlLFxuICAgICAgICByZXZva2VkXzogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICAgIGdldCBzaXplKCkge1xuICAgICAgcmV0dXJuIGxhdGVzdCh0aGlzW0RSQUZUX1NUQVRFXSkuc2l6ZTtcbiAgICB9XG4gICAgaGFzKGtleSkge1xuICAgICAgcmV0dXJuIGxhdGVzdCh0aGlzW0RSQUZUX1NUQVRFXSkuaGFzKGtleSk7XG4gICAgfVxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXNbRFJBRlRfU1RBVEVdO1xuICAgICAgYXNzZXJ0VW5yZXZva2VkKHN0YXRlKTtcbiAgICAgIGlmICghbGF0ZXN0KHN0YXRlKS5oYXMoa2V5KSB8fCBsYXRlc3Qoc3RhdGUpLmdldChrZXkpICE9PSB2YWx1ZSkge1xuICAgICAgICBwcmVwYXJlTWFwQ29weShzdGF0ZSk7XG4gICAgICAgIG1hcmtDaGFuZ2VkKHN0YXRlKTtcbiAgICAgICAgc3RhdGUuYXNzaWduZWRfLnNldChrZXksIHRydWUpO1xuICAgICAgICBzdGF0ZS5jb3B5Xy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHN0YXRlLmFzc2lnbmVkXy5zZXQoa2V5LCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBkZWxldGUoa2V5KSB7XG4gICAgICBpZiAoIXRoaXMuaGFzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzW0RSQUZUX1NUQVRFXTtcbiAgICAgIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gICAgICBwcmVwYXJlTWFwQ29weShzdGF0ZSk7XG4gICAgICBtYXJrQ2hhbmdlZChzdGF0ZSk7XG4gICAgICBpZiAoc3RhdGUuYmFzZV8uaGFzKGtleSkpIHtcbiAgICAgICAgc3RhdGUuYXNzaWduZWRfLnNldChrZXksIGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLmFzc2lnbmVkXy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICAgIHN0YXRlLmNvcHlfLmRlbGV0ZShrZXkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNsZWFyKCkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzW0RSQUZUX1NUQVRFXTtcbiAgICAgIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gICAgICBpZiAobGF0ZXN0KHN0YXRlKS5zaXplKSB7XG4gICAgICAgIHByZXBhcmVNYXBDb3B5KHN0YXRlKTtcbiAgICAgICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgICAgICBzdGF0ZS5hc3NpZ25lZF8gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgICBlYWNoKHN0YXRlLmJhc2VfLCAoa2V5KSA9PiB7XG4gICAgICAgICAgc3RhdGUuYXNzaWduZWRfLnNldChrZXksIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXRlLmNvcHlfLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvckVhY2goY2IsIHRoaXNBcmcpIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpc1tEUkFGVF9TVEFURV07XG4gICAgICBsYXRlc3Qoc3RhdGUpLmZvckVhY2goKF92YWx1ZSwga2V5LCBfbWFwKSA9PiB7XG4gICAgICAgIGNiLmNhbGwodGhpc0FyZywgdGhpcy5nZXQoa2V5KSwga2V5LCB0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXNbRFJBRlRfU1RBVEVdO1xuICAgICAgYXNzZXJ0VW5yZXZva2VkKHN0YXRlKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gbGF0ZXN0KHN0YXRlKS5nZXQoa2V5KTtcbiAgICAgIGlmIChzdGF0ZS5maW5hbGl6ZWRfIHx8ICFpc0RyYWZ0YWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlICE9PSBzdGF0ZS5iYXNlXy5nZXQoa2V5KSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCBkcmFmdCA9IGNyZWF0ZVByb3h5KHZhbHVlLCBzdGF0ZSk7XG4gICAgICBwcmVwYXJlTWFwQ29weShzdGF0ZSk7XG4gICAgICBzdGF0ZS5jb3B5Xy5zZXQoa2V5LCBkcmFmdCk7XG4gICAgICByZXR1cm4gZHJhZnQ7XG4gICAgfVxuICAgIGtleXMoKSB7XG4gICAgICByZXR1cm4gbGF0ZXN0KHRoaXNbRFJBRlRfU1RBVEVdKS5rZXlzKCk7XG4gICAgfVxuICAgIHZhbHVlcygpIHtcbiAgICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5rZXlzKCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogKCkgPT4gdGhpcy52YWx1ZXMoKSxcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHIgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgaWYgKHIuZG9uZSlcbiAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoci52YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBlbnRyaWVzKCkge1xuICAgICAgY29uc3QgaXRlcmF0b3IgPSB0aGlzLmtleXMoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAoKSA9PiB0aGlzLmVudHJpZXMoKSxcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHIgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgaWYgKHIuZG9uZSlcbiAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoci52YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IFtyLnZhbHVlLCB2YWx1ZV1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBbKERSQUZUX1NUQVRFLCBTeW1ib2wuaXRlcmF0b3IpXSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudHJpZXMoKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gcHJveHlNYXBfKHRhcmdldCwgcGFyZW50KSB7XG4gICAgcmV0dXJuIG5ldyBEcmFmdE1hcCh0YXJnZXQsIHBhcmVudCk7XG4gIH1cbiAgZnVuY3Rpb24gcHJlcGFyZU1hcENvcHkoc3RhdGUpIHtcbiAgICBpZiAoIXN0YXRlLmNvcHlfKSB7XG4gICAgICBzdGF0ZS5hc3NpZ25lZF8gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgc3RhdGUuY29weV8gPSBuZXcgTWFwKHN0YXRlLmJhc2VfKTtcbiAgICB9XG4gIH1cbiAgY2xhc3MgRHJhZnRTZXQgZXh0ZW5kcyBTZXQge1xuICAgIGNvbnN0cnVjdG9yKHRhcmdldCwgcGFyZW50KSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpc1tEUkFGVF9TVEFURV0gPSB7XG4gICAgICAgIHR5cGVfOiAzIC8qIFNldCAqLyxcbiAgICAgICAgcGFyZW50XzogcGFyZW50LFxuICAgICAgICBzY29wZV86IHBhcmVudCA/IHBhcmVudC5zY29wZV8gOiBnZXRDdXJyZW50U2NvcGUoKSxcbiAgICAgICAgbW9kaWZpZWRfOiBmYWxzZSxcbiAgICAgICAgZmluYWxpemVkXzogZmFsc2UsXG4gICAgICAgIGNvcHlfOiB2b2lkIDAsXG4gICAgICAgIGJhc2VfOiB0YXJnZXQsXG4gICAgICAgIGRyYWZ0XzogdGhpcyxcbiAgICAgICAgZHJhZnRzXzogLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSxcbiAgICAgICAgcmV2b2tlZF86IGZhbHNlLFxuICAgICAgICBpc01hbnVhbF86IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgICBnZXQgc2l6ZSgpIHtcbiAgICAgIHJldHVybiBsYXRlc3QodGhpc1tEUkFGVF9TVEFURV0pLnNpemU7XG4gICAgfVxuICAgIGhhcyh2YWx1ZSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzW0RSQUZUX1NUQVRFXTtcbiAgICAgIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gICAgICBpZiAoIXN0YXRlLmNvcHlfKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5iYXNlXy5oYXModmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLmNvcHlfLmhhcyh2YWx1ZSkpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHN0YXRlLmRyYWZ0c18uaGFzKHZhbHVlKSAmJiBzdGF0ZS5jb3B5Xy5oYXMoc3RhdGUuZHJhZnRzXy5nZXQodmFsdWUpKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGFkZCh2YWx1ZSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzW0RSQUZUX1NUQVRFXTtcbiAgICAgIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gICAgICBpZiAoIXRoaXMuaGFzKHZhbHVlKSkge1xuICAgICAgICBwcmVwYXJlU2V0Q29weShzdGF0ZSk7XG4gICAgICAgIG1hcmtDaGFuZ2VkKHN0YXRlKTtcbiAgICAgICAgc3RhdGUuY29weV8uYWRkKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBkZWxldGUodmFsdWUpIHtcbiAgICAgIGlmICghdGhpcy5oYXModmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpc1tEUkFGVF9TVEFURV07XG4gICAgICBhc3NlcnRVbnJldm9rZWQoc3RhdGUpO1xuICAgICAgcHJlcGFyZVNldENvcHkoc3RhdGUpO1xuICAgICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgICAgcmV0dXJuIHN0YXRlLmNvcHlfLmRlbGV0ZSh2YWx1ZSkgfHwgKHN0YXRlLmRyYWZ0c18uaGFzKHZhbHVlKSA/IHN0YXRlLmNvcHlfLmRlbGV0ZShzdGF0ZS5kcmFmdHNfLmdldCh2YWx1ZSkpIDogKFxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBmYWxzZVxuICAgICAgKSk7XG4gICAgfVxuICAgIGNsZWFyKCkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzW0RSQUZUX1NUQVRFXTtcbiAgICAgIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gICAgICBpZiAobGF0ZXN0KHN0YXRlKS5zaXplKSB7XG4gICAgICAgIHByZXBhcmVTZXRDb3B5KHN0YXRlKTtcbiAgICAgICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgICAgICBzdGF0ZS5jb3B5Xy5jbGVhcigpO1xuICAgICAgfVxuICAgIH1cbiAgICB2YWx1ZXMoKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXNbRFJBRlRfU1RBVEVdO1xuICAgICAgYXNzZXJ0VW5yZXZva2VkKHN0YXRlKTtcbiAgICAgIHByZXBhcmVTZXRDb3B5KHN0YXRlKTtcbiAgICAgIHJldHVybiBzdGF0ZS5jb3B5Xy52YWx1ZXMoKTtcbiAgICB9XG4gICAgZW50cmllcygpIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpc1tEUkFGVF9TVEFURV07XG4gICAgICBhc3NlcnRVbnJldm9rZWQoc3RhdGUpO1xuICAgICAgcHJlcGFyZVNldENvcHkoc3RhdGUpO1xuICAgICAgcmV0dXJuIHN0YXRlLmNvcHlfLmVudHJpZXMoKTtcbiAgICB9XG4gICAga2V5cygpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpO1xuICAgIH1cbiAgICBbKERSQUZUX1NUQVRFLCBTeW1ib2wuaXRlcmF0b3IpXSgpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpO1xuICAgIH1cbiAgICBmb3JFYWNoKGNiLCB0aGlzQXJnKSB7XG4gICAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMudmFsdWVzKCk7XG4gICAgICBsZXQgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgd2hpbGUgKCFyZXN1bHQuZG9uZSkge1xuICAgICAgICBjYi5jYWxsKHRoaXNBcmcsIHJlc3VsdC52YWx1ZSwgcmVzdWx0LnZhbHVlLCB0aGlzKTtcbiAgICAgICAgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBwcm94eVNldF8odGFyZ2V0LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gbmV3IERyYWZ0U2V0KHRhcmdldCwgcGFyZW50KTtcbiAgfVxuICBmdW5jdGlvbiBwcmVwYXJlU2V0Q29weShzdGF0ZSkge1xuICAgIGlmICghc3RhdGUuY29weV8pIHtcbiAgICAgIHN0YXRlLmNvcHlfID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICAgIHN0YXRlLmJhc2VfLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChpc0RyYWZ0YWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBkcmFmdCA9IGNyZWF0ZVByb3h5KHZhbHVlLCBzdGF0ZSk7XG4gICAgICAgICAgc3RhdGUuZHJhZnRzXy5zZXQodmFsdWUsIGRyYWZ0KTtcbiAgICAgICAgICBzdGF0ZS5jb3B5Xy5hZGQoZHJhZnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLmNvcHlfLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBhc3NlcnRVbnJldm9rZWQoc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUucmV2b2tlZF8pXG4gICAgICBkaWUoMywgSlNPTi5zdHJpbmdpZnkobGF0ZXN0KHN0YXRlKSkpO1xuICB9XG4gIGxvYWRQbHVnaW4oXCJNYXBTZXRcIiwgeyBwcm94eU1hcF8sIHByb3h5U2V0XyB9KTtcbn1cblxuLy8gc3JjL2ltbWVyLnRzXG52YXIgaW1tZXIgPSBuZXcgSW1tZXIyKCk7XG52YXIgcHJvZHVjZSA9IGltbWVyLnByb2R1Y2U7XG52YXIgcHJvZHVjZVdpdGhQYXRjaGVzID0gaW1tZXIucHJvZHVjZVdpdGhQYXRjaGVzLmJpbmQoXG4gIGltbWVyXG4pO1xudmFyIHNldEF1dG9GcmVlemUgPSBpbW1lci5zZXRBdXRvRnJlZXplLmJpbmQoaW1tZXIpO1xudmFyIHNldFVzZVN0cmljdFNoYWxsb3dDb3B5ID0gaW1tZXIuc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkuYmluZChpbW1lcik7XG52YXIgYXBwbHlQYXRjaGVzID0gaW1tZXIuYXBwbHlQYXRjaGVzLmJpbmQoaW1tZXIpO1xudmFyIGNyZWF0ZURyYWZ0ID0gaW1tZXIuY3JlYXRlRHJhZnQuYmluZChpbW1lcik7XG52YXIgZmluaXNoRHJhZnQgPSBpbW1lci5maW5pc2hEcmFmdC5iaW5kKGltbWVyKTtcbmZ1bmN0aW9uIGNhc3REcmFmdCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBjYXN0SW1tdXRhYmxlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cbmV4cG9ydCB7XG4gIEltbWVyMiBhcyBJbW1lcixcbiAgYXBwbHlQYXRjaGVzLFxuICBjYXN0RHJhZnQsXG4gIGNhc3RJbW11dGFibGUsXG4gIGNyZWF0ZURyYWZ0LFxuICBjdXJyZW50LFxuICBlbmFibGVNYXBTZXQsXG4gIGVuYWJsZVBhdGNoZXMsXG4gIGZpbmlzaERyYWZ0LFxuICBmcmVlemUsXG4gIERSQUZUQUJMRSBhcyBpbW1lcmFibGUsXG4gIGlzRHJhZnQsXG4gIGlzRHJhZnRhYmxlLFxuICBOT1RISU5HIGFzIG5vdGhpbmcsXG4gIG9yaWdpbmFsLFxuICBwcm9kdWNlLFxuICBwcm9kdWNlV2l0aFBhdGNoZXMsXG4gIHNldEF1dG9GcmVlemUsXG4gIHNldFVzZVN0cmljdFNoYWxsb3dDb3B5XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1tZXIubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/immer/dist/immer.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/createPrefixer.js": /*!*****************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/createPrefixer.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createPrefixer)\n/* harmony export */ });\n/* harmony import */ var _utils_prefixProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/prefixProperty */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixProperty.js\");\n/* harmony import */ var _utils_prefixValue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/prefixValue */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixValue.js\");\n/* harmony import */ var _utils_addNewValuesOnly__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/addNewValuesOnly */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js\");\n/* harmony import */ var _utils_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/isObject */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/isObject.js\");\n\n\n\n\n\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0,_utils_isObject__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0,_utils_prefixValue__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(plugins, property, value[i], style, prefixMap);\n (0,_utils_addNewValuesOnly__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0,_utils_prefixValue__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0,_utils_prefixProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvY3JlYXRlUHJlZml4ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBb0Q7QUFDTjs7QUFFVTtBQUNoQjs7QUFFekI7QUFDZjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsMkRBQVE7QUFDbEI7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQSw0Q0FBNEMsU0FBUztBQUNyRCwrQkFBK0IsOERBQVc7QUFDMUMsVUFBVSxtRUFBZ0I7QUFDMUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUiw4QkFBOEIsOERBQVc7O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCLGlFQUFjO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvY3JlYXRlUHJlZml4ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByZWZpeFByb3BlcnR5IGZyb20gJy4vdXRpbHMvcHJlZml4UHJvcGVydHknO1xuaW1wb3J0IHByZWZpeFZhbHVlIGZyb20gJy4vdXRpbHMvcHJlZml4VmFsdWUnO1xuXG5pbXBvcnQgYWRkTmV3VmFsdWVzT25seSBmcm9tICcuL3V0aWxzL2FkZE5ld1ZhbHVlc09ubHknO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vdXRpbHMvaXNPYmplY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVQcmVmaXhlcihfcmVmKSB7XG4gIHZhciBwcmVmaXhNYXAgPSBfcmVmLnByZWZpeE1hcCxcbiAgICAgIHBsdWdpbnMgPSBfcmVmLnBsdWdpbnM7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHByZWZpeChzdHlsZSkge1xuICAgIGZvciAodmFyIHByb3BlcnR5IGluIHN0eWxlKSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHlsZVtwcm9wZXJ0eV07XG5cbiAgICAgIC8vIGhhbmRsZSBuZXN0ZWQgb2JqZWN0c1xuICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICBzdHlsZVtwcm9wZXJ0eV0gPSBwcmVmaXgodmFsdWUpO1xuICAgICAgICAvLyBoYW5kbGUgYXJyYXkgdmFsdWVzXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhciBjb21iaW5lZFZhbHVlID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHZhbHVlLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICAgICAgdmFyIHByb2Nlc3NlZFZhbHVlID0gcHJlZml4VmFsdWUocGx1Z2lucywgcHJvcGVydHksIHZhbHVlW2ldLCBzdHlsZSwgcHJlZml4TWFwKTtcbiAgICAgICAgICBhZGROZXdWYWx1ZXNPbmx5KGNvbWJpbmVkVmFsdWUsIHByb2Nlc3NlZFZhbHVlIHx8IHZhbHVlW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG9ubHkgbW9kaWZ5IHRoZSB2YWx1ZSBpZiBpdCB3YXMgdG91Y2hlZFxuICAgICAgICAvLyBieSBhbnkgcGx1Z2luIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgbXV0YXRpb25zXG4gICAgICAgIGlmIChjb21iaW5lZFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzdHlsZVtwcm9wZXJ0eV0gPSBjb21iaW5lZFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX3Byb2Nlc3NlZFZhbHVlID0gcHJlZml4VmFsdWUocGx1Z2lucywgcHJvcGVydHksIHZhbHVlLCBzdHlsZSwgcHJlZml4TWFwKTtcblxuICAgICAgICAvLyBvbmx5IG1vZGlmeSB0aGUgdmFsdWUgaWYgaXQgd2FzIHRvdWNoZWRcbiAgICAgICAgLy8gYnkgYW55IHBsdWdpbiB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IG11dGF0aW9uc1xuICAgICAgICBpZiAoX3Byb2Nlc3NlZFZhbHVlKSB7XG4gICAgICAgICAgc3R5bGVbcHJvcGVydHldID0gX3Byb2Nlc3NlZFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUgPSBwcmVmaXhQcm9wZXJ0eShwcmVmaXhNYXAsIHByb3BlcnR5LCBzdHlsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/createPrefixer.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/data.js": /*!*******************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/data.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\nvar w = [\"Webkit\"];\nvar m = [\"Moz\"];\nvar ms = [\"ms\"];\nvar wm = [\"Webkit\", \"Moz\"];\nvar wms = [\"Webkit\", \"ms\"];\nvar wmms = [\"Webkit\", \"Moz\", \"ms\"];\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n plugins: [],\n prefixMap: { \"appearance\": wm, \"textEmphasisPosition\": w, \"textEmphasis\": w, \"textEmphasisStyle\": w, \"textEmphasisColor\": w, \"boxDecorationBreak\": w, \"maskImage\": w, \"maskMode\": w, \"maskRepeat\": w, \"maskPosition\": w, \"maskClip\": w, \"maskOrigin\": w, \"maskSize\": w, \"maskComposite\": w, \"mask\": w, \"maskBorderSource\": w, \"maskBorderMode\": w, \"maskBorderSlice\": w, \"maskBorderWidth\": w, \"maskBorderOutset\": w, \"maskBorderRepeat\": w, \"maskBorder\": w, \"maskType\": w, \"textDecorationStyle\": w, \"textDecorationSkip\": w, \"textDecorationLine\": w, \"textDecorationColor\": w, \"userSelect\": wmms, \"backdropFilter\": w, \"fontKerning\": w, \"scrollSnapType\": wms, \"scrollSnapPointsX\": wms, \"scrollSnapPointsY\": wms, \"scrollSnapDestination\": wms, \"scrollSnapCoordinate\": wms, \"clipPath\": w, \"shapeImageThreshold\": w, \"shapeImageMargin\": w, \"shapeImageOutside\": w, \"filter\": w, \"hyphens\": wms, \"flowInto\": wms, \"flowFrom\": wms, \"breakBefore\": wms, \"breakAfter\": wms, \"breakInside\": wms, \"regionFragment\": wms, \"writingMode\": wms, \"textOrientation\": w, \"tabSize\": m, \"fontFeatureSettings\": w, \"columnCount\": w, \"columnFill\": w, \"columnGap\": w, \"columnRule\": w, \"columnRuleColor\": w, \"columnRuleStyle\": w, \"columnRuleWidth\": w, \"columns\": w, \"columnSpan\": w, \"columnWidth\": w, \"wrapFlow\": ms, \"wrapThrough\": ms, \"wrapMargin\": ms, \"textSizeAdjust\": wms }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvZGF0YS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpRUFBZTtBQUNmO0FBQ0EsZUFBZTtBQUNmLENBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wcmVmaXhlci9lcy9kYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxudmFyIHcgPSBbXCJXZWJraXRcIl07XG52YXIgbSA9IFtcIk1velwiXTtcbnZhciBtcyA9IFtcIm1zXCJdO1xudmFyIHdtID0gW1wiV2Via2l0XCIsIFwiTW96XCJdO1xudmFyIHdtcyA9IFtcIldlYmtpdFwiLCBcIm1zXCJdO1xudmFyIHdtbXMgPSBbXCJXZWJraXRcIiwgXCJNb3pcIiwgXCJtc1wiXTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwbHVnaW5zOiBbXSxcbiAgcHJlZml4TWFwOiB7IFwiYXBwZWFyYW5jZVwiOiB3bSwgXCJ0ZXh0RW1waGFzaXNQb3NpdGlvblwiOiB3LCBcInRleHRFbXBoYXNpc1wiOiB3LCBcInRleHRFbXBoYXNpc1N0eWxlXCI6IHcsIFwidGV4dEVtcGhhc2lzQ29sb3JcIjogdywgXCJib3hEZWNvcmF0aW9uQnJlYWtcIjogdywgXCJtYXNrSW1hZ2VcIjogdywgXCJtYXNrTW9kZVwiOiB3LCBcIm1hc2tSZXBlYXRcIjogdywgXCJtYXNrUG9zaXRpb25cIjogdywgXCJtYXNrQ2xpcFwiOiB3LCBcIm1hc2tPcmlnaW5cIjogdywgXCJtYXNrU2l6ZVwiOiB3LCBcIm1hc2tDb21wb3NpdGVcIjogdywgXCJtYXNrXCI6IHcsIFwibWFza0JvcmRlclNvdXJjZVwiOiB3LCBcIm1hc2tCb3JkZXJNb2RlXCI6IHcsIFwibWFza0JvcmRlclNsaWNlXCI6IHcsIFwibWFza0JvcmRlcldpZHRoXCI6IHcsIFwibWFza0JvcmRlck91dHNldFwiOiB3LCBcIm1hc2tCb3JkZXJSZXBlYXRcIjogdywgXCJtYXNrQm9yZGVyXCI6IHcsIFwibWFza1R5cGVcIjogdywgXCJ0ZXh0RGVjb3JhdGlvblN0eWxlXCI6IHcsIFwidGV4dERlY29yYXRpb25Ta2lwXCI6IHcsIFwidGV4dERlY29yYXRpb25MaW5lXCI6IHcsIFwidGV4dERlY29yYXRpb25Db2xvclwiOiB3LCBcInVzZXJTZWxlY3RcIjogd21tcywgXCJiYWNrZHJvcEZpbHRlclwiOiB3LCBcImZvbnRLZXJuaW5nXCI6IHcsIFwic2Nyb2xsU25hcFR5cGVcIjogd21zLCBcInNjcm9sbFNuYXBQb2ludHNYXCI6IHdtcywgXCJzY3JvbGxTbmFwUG9pbnRzWVwiOiB3bXMsIFwic2Nyb2xsU25hcERlc3RpbmF0aW9uXCI6IHdtcywgXCJzY3JvbGxTbmFwQ29vcmRpbmF0ZVwiOiB3bXMsIFwiY2xpcFBhdGhcIjogdywgXCJzaGFwZUltYWdlVGhyZXNob2xkXCI6IHcsIFwic2hhcGVJbWFnZU1hcmdpblwiOiB3LCBcInNoYXBlSW1hZ2VPdXRzaWRlXCI6IHcsIFwiZmlsdGVyXCI6IHcsIFwiaHlwaGVuc1wiOiB3bXMsIFwiZmxvd0ludG9cIjogd21zLCBcImZsb3dGcm9tXCI6IHdtcywgXCJicmVha0JlZm9yZVwiOiB3bXMsIFwiYnJlYWtBZnRlclwiOiB3bXMsIFwiYnJlYWtJbnNpZGVcIjogd21zLCBcInJlZ2lvbkZyYWdtZW50XCI6IHdtcywgXCJ3cml0aW5nTW9kZVwiOiB3bXMsIFwidGV4dE9yaWVudGF0aW9uXCI6IHcsIFwidGFiU2l6ZVwiOiBtLCBcImZvbnRGZWF0dXJlU2V0dGluZ3NcIjogdywgXCJjb2x1bW5Db3VudFwiOiB3LCBcImNvbHVtbkZpbGxcIjogdywgXCJjb2x1bW5HYXBcIjogdywgXCJjb2x1bW5SdWxlXCI6IHcsIFwiY29sdW1uUnVsZUNvbG9yXCI6IHcsIFwiY29sdW1uUnVsZVN0eWxlXCI6IHcsIFwiY29sdW1uUnVsZVdpZHRoXCI6IHcsIFwiY29sdW1uc1wiOiB3LCBcImNvbHVtblNwYW5cIjogdywgXCJjb2x1bW5XaWR0aFwiOiB3LCBcIndyYXBGbG93XCI6IG1zLCBcIndyYXBUaHJvdWdoXCI6IG1zLCBcIndyYXBNYXJnaW5cIjogbXMsIFwidGV4dFNpemVBZGp1c3RcIjogd21zIH1cbn07Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/data.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/index.js": /*!********************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/index.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPrefixer: () => (/* reexport safe */ _createPrefixer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ prefix: () => (/* binding */ prefix)\n/* harmony export */ });\n/* harmony import */ var _createPrefixer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPrefixer */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/createPrefixer.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/data.js\");\n/* harmony import */ var _plugins_backgroundClip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugins/backgroundClip */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/backgroundClip.js\");\n/* harmony import */ var _plugins_cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./plugins/cursor */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/cursor.js\");\n/* harmony import */ var _plugins_crossFade__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/crossFade */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/crossFade.js\");\n/* harmony import */ var _plugins_filter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./plugins/filter */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/filter.js\");\n/* harmony import */ var _plugins_flex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./plugins/flex */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flex.js\");\n/* harmony import */ var _plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/flexboxOld */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flexboxOld.js\");\n/* harmony import */ var _plugins_gradient__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/gradient */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/gradient.js\");\n/* harmony import */ var _plugins_grid__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./plugins/grid */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/grid.js\");\n/* harmony import */ var _plugins_imageSet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./plugins/imageSet */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/imageSet.js\");\n/* harmony import */ var _plugins_logical__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./plugins/logical */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/logical.js\");\n/* harmony import */ var _plugins_position__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./plugins/position */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/position.js\");\n/* harmony import */ var _plugins_sizing__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./plugins/sizing */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/sizing.js\");\n/* harmony import */ var _plugins_transition__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./plugins/transition */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/transition.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar plugins = [_plugins_backgroundClip__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _plugins_crossFade__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _plugins_cursor__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _plugins_filter__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _plugins_gradient__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _plugins_grid__WEBPACK_IMPORTED_MODULE_9__[\"default\"], _plugins_imageSet__WEBPACK_IMPORTED_MODULE_10__[\"default\"], _plugins_logical__WEBPACK_IMPORTED_MODULE_11__[\"default\"], _plugins_position__WEBPACK_IMPORTED_MODULE_12__[\"default\"], _plugins_sizing__WEBPACK_IMPORTED_MODULE_13__[\"default\"], _plugins_transition__WEBPACK_IMPORTED_MODULE_14__[\"default\"], _plugins_flex__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\n\nvar prefix = (0,_createPrefixer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n prefixMap: _data__WEBPACK_IMPORTED_MODULE_1__[\"default\"].prefixMap,\n plugins: plugins\n});\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7O0FBRXBCOztBQUU0QjtBQUNoQjtBQUNNO0FBQ047QUFDSjtBQUNZO0FBQ0o7QUFDUjtBQUNRO0FBQ0Y7QUFDRTtBQUNKO0FBQ1E7O0FBRTlDLGVBQWUsK0RBQWMsRUFBRSwwREFBUyxFQUFFLHVEQUFNLEVBQUUsdURBQU0sRUFBRSwyREFBVSxFQUFFLHlEQUFRLEVBQUUscURBQUksRUFBRSwwREFBUSxFQUFFLHlEQUFPLEVBQUUsMERBQVEsRUFBRSx3REFBTSxFQUFFLDREQUFVLEVBQUUscURBQUk7O0FBRTNJLGFBQWEsMkRBQWM7QUFDM0IsYUFBYSw2Q0FBSTtBQUNqQjtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wcmVmaXhlci9lcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlUHJlZml4ZXIgZnJvbSAnLi9jcmVhdGVQcmVmaXhlcic7XG5cbmltcG9ydCBkYXRhIGZyb20gJy4vZGF0YSc7XG5cbmltcG9ydCBiYWNrZ3JvdW5kQ2xpcCBmcm9tICcuL3BsdWdpbnMvYmFja2dyb3VuZENsaXAnO1xuaW1wb3J0IGN1cnNvciBmcm9tICcuL3BsdWdpbnMvY3Vyc29yJztcbmltcG9ydCBjcm9zc0ZhZGUgZnJvbSAnLi9wbHVnaW5zL2Nyb3NzRmFkZSc7XG5pbXBvcnQgZmlsdGVyIGZyb20gJy4vcGx1Z2lucy9maWx0ZXInO1xuaW1wb3J0IGZsZXggZnJvbSAnLi9wbHVnaW5zL2ZsZXgnO1xuaW1wb3J0IGZsZXhib3hPbGQgZnJvbSAnLi9wbHVnaW5zL2ZsZXhib3hPbGQnO1xuaW1wb3J0IGdyYWRpZW50IGZyb20gJy4vcGx1Z2lucy9ncmFkaWVudCc7XG5pbXBvcnQgZ3JpZCBmcm9tICcuL3BsdWdpbnMvZ3JpZCc7XG5pbXBvcnQgaW1hZ2VTZXQgZnJvbSAnLi9wbHVnaW5zL2ltYWdlU2V0JztcbmltcG9ydCBsb2dpY2FsIGZyb20gJy4vcGx1Z2lucy9sb2dpY2FsJztcbmltcG9ydCBwb3NpdGlvbiBmcm9tICcuL3BsdWdpbnMvcG9zaXRpb24nO1xuaW1wb3J0IHNpemluZyBmcm9tICcuL3BsdWdpbnMvc2l6aW5nJztcbmltcG9ydCB0cmFuc2l0aW9uIGZyb20gJy4vcGx1Z2lucy90cmFuc2l0aW9uJztcblxudmFyIHBsdWdpbnMgPSBbYmFja2dyb3VuZENsaXAsIGNyb3NzRmFkZSwgY3Vyc29yLCBmaWx0ZXIsIGZsZXhib3hPbGQsIGdyYWRpZW50LCBncmlkLCBpbWFnZVNldCwgbG9naWNhbCwgcG9zaXRpb24sIHNpemluZywgdHJhbnNpdGlvbiwgZmxleF07XG5cbnZhciBwcmVmaXggPSBjcmVhdGVQcmVmaXhlcih7XG4gIHByZWZpeE1hcDogZGF0YS5wcmVmaXhNYXAsXG4gIHBsdWdpbnM6IHBsdWdpbnNcbn0pO1xuXG5leHBvcnQgeyBjcmVhdGVQcmVmaXhlciwgcHJlZml4IH07Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/backgroundClip.js": /*!*************************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/backgroundClip.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ backgroundClip)\n/* harmony export */ });\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9iYWNrZ3JvdW5kQ2xpcC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUNBO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvYmFja2dyb3VuZENsaXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYmFja2dyb3VuZC1jbGlwI0Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYmFja2dyb3VuZENsaXAocHJvcGVydHksIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlID09PSAndGV4dCcpIHtcbiAgICByZXR1cm4gWyctd2Via2l0LXRleHQnLCAndGV4dCddO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/backgroundClip.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/crossFade.js": /*!********************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/crossFade.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ crossFade)\n/* harmony export */ });\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\");\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default()(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9jcm9zc0ZhZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtFOztBQUVsRTtBQUNBOztBQUVlO0FBQ2Ysb0NBQW9DLDBFQUFlO0FBQ25EO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvY3Jvc3NGYWRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1ByZWZpeGVkVmFsdWUgZnJvbSAnY3NzLWluLWpzLXV0aWxzL2xpYi9pc1ByZWZpeGVkVmFsdWUnO1xuXG4vLyBodHRwOi8vY2FuaXVzZS5jb20vI3NlYXJjaD1jcm9zcy1mYWRlXG52YXIgcHJlZml4ZXMgPSBbJy13ZWJraXQtJywgJyddO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcm9zc0ZhZGUocHJvcGVydHksIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc1ByZWZpeGVkVmFsdWUodmFsdWUpICYmIHZhbHVlLmluZGV4T2YoJ2Nyb3NzLWZhZGUoJykgPiAtMSkge1xuICAgIHJldHVybiBwcmVmaXhlcy5tYXAoZnVuY3Rpb24gKHByZWZpeCkge1xuICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL2Nyb3NzLWZhZGVcXCgvZywgcHJlZml4ICsgJ2Nyb3NzLWZhZGUoJyk7XG4gICAgfSk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/crossFade.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/cursor.js": /*!*****************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/cursor.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ cursor)\n/* harmony export */ });\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9jdXJzb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9jdXJzb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHByZWZpeGVzID0gWyctd2Via2l0LScsICctbW96LScsICcnXTtcblxudmFyIHZhbHVlcyA9IHtcbiAgJ3pvb20taW4nOiB0cnVlLFxuICAnem9vbS1vdXQnOiB0cnVlLFxuICBncmFiOiB0cnVlLFxuICBncmFiYmluZzogdHJ1ZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3Vyc29yKHByb3BlcnR5LCB2YWx1ZSkge1xuICBpZiAocHJvcGVydHkgPT09ICdjdXJzb3InICYmIHZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gcHJlZml4ZXMubWFwKGZ1bmN0aW9uIChwcmVmaXgpIHtcbiAgICAgIHJldHVybiBwcmVmaXggKyB2YWx1ZTtcbiAgICB9KTtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/cursor.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/filter.js": /*!*****************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/filter.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ filter)\n/* harmony export */ });\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\");\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default()(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9maWx0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtFOztBQUVsRTtBQUNBOztBQUVlO0FBQ2Ysb0NBQW9DLDBFQUFlO0FBQ25EO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvZmlsdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1ByZWZpeGVkVmFsdWUgZnJvbSAnY3NzLWluLWpzLXV0aWxzL2xpYi9pc1ByZWZpeGVkVmFsdWUnO1xuXG4vLyBodHRwOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLWZpbHRlci1mdW5jdGlvblxudmFyIHByZWZpeGVzID0gWyctd2Via2l0LScsICcnXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmlsdGVyKHByb3BlcnR5LCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNQcmVmaXhlZFZhbHVlKHZhbHVlKSAmJiB2YWx1ZS5pbmRleE9mKCdmaWx0ZXIoJykgPiAtMSkge1xuICAgIHJldHVybiBwcmVmaXhlcy5tYXAoZnVuY3Rpb24gKHByZWZpeCkge1xuICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL2ZpbHRlclxcKC9nLCBwcmVmaXggKyAnZmlsdGVyKCcpO1xuICAgIH0pO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/filter.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flex.js": /*!***************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/flex.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ flex)\n/* harmony export */ });\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9mbGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9mbGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB2YWx1ZXMgPSB7XG4gIGZsZXg6IFsnLXdlYmtpdC1ib3gnLCAnLW1vei1ib3gnLCAnLW1zLWZsZXhib3gnLCAnLXdlYmtpdC1mbGV4JywgJ2ZsZXgnXSxcbiAgJ2lubGluZS1mbGV4JzogWyctd2Via2l0LWlubGluZS1ib3gnLCAnLW1vei1pbmxpbmUtYm94JywgJy1tcy1pbmxpbmUtZmxleGJveCcsICctd2Via2l0LWlubGluZS1mbGV4JywgJ2lubGluZS1mbGV4J11cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZsZXgocHJvcGVydHksIHZhbHVlKSB7XG4gIGlmIChwcm9wZXJ0eSA9PT0gJ2Rpc3BsYXknICYmIHZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVzW3ZhbHVlXTtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flex.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flexboxOld.js": /*!*********************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/flexboxOld.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ flexboxOld)\n/* harmony export */ });\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9mbGV4Ym94T2xkLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvZmxleGJveE9sZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYWx0ZXJuYXRpdmVWYWx1ZXMgPSB7XG4gICdzcGFjZS1hcm91bmQnOiAnanVzdGlmeScsXG4gICdzcGFjZS1iZXR3ZWVuJzogJ2p1c3RpZnknLFxuICAnZmxleC1zdGFydCc6ICdzdGFydCcsXG4gICdmbGV4LWVuZCc6ICdlbmQnLFxuICAnd3JhcC1yZXZlcnNlJzogJ211bHRpcGxlJyxcbiAgd3JhcDogJ211bHRpcGxlJ1xufTtcblxudmFyIGFsdGVybmF0aXZlUHJvcHMgPSB7XG4gIGFsaWduSXRlbXM6ICdXZWJraXRCb3hBbGlnbicsXG4gIGp1c3RpZnlDb250ZW50OiAnV2Via2l0Qm94UGFjaycsXG4gIGZsZXhXcmFwOiAnV2Via2l0Qm94TGluZXMnLFxuICBmbGV4R3JvdzogJ1dlYmtpdEJveEZsZXgnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmbGV4Ym94T2xkKHByb3BlcnR5LCB2YWx1ZSwgc3R5bGUpIHtcbiAgaWYgKHByb3BlcnR5ID09PSAnZmxleERpcmVjdGlvbicgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWx1ZS5pbmRleE9mKCdjb2x1bW4nKSA+IC0xKSB7XG4gICAgICBzdHlsZS5XZWJraXRCb3hPcmllbnQgPSAndmVydGljYWwnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5XZWJraXRCb3hPcmllbnQgPSAnaG9yaXpvbnRhbCc7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5pbmRleE9mKCdyZXZlcnNlJykgPiAtMSkge1xuICAgICAgc3R5bGUuV2Via2l0Qm94RGlyZWN0aW9uID0gJ3JldmVyc2UnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5XZWJraXRCb3hEaXJlY3Rpb24gPSAnbm9ybWFsJztcbiAgICB9XG4gIH1cbiAgaWYgKGFsdGVybmF0aXZlUHJvcHMuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgc3R5bGVbYWx0ZXJuYXRpdmVQcm9wc1twcm9wZXJ0eV1dID0gYWx0ZXJuYXRpdmVWYWx1ZXNbdmFsdWVdIHx8IHZhbHVlO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/flexboxOld.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/gradient.js": /*!*******************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/gradient.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ gradient)\n/* harmony export */ });\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\");\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default()(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9ncmFkaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0U7O0FBRWxFO0FBQ0E7O0FBRWU7QUFDZixvQ0FBb0MsMEVBQWU7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9ncmFkaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNQcmVmaXhlZFZhbHVlIGZyb20gJ2Nzcy1pbi1qcy11dGlscy9saWIvaXNQcmVmaXhlZFZhbHVlJztcblxudmFyIHByZWZpeGVzID0gWyctd2Via2l0LScsICctbW96LScsICcnXTtcbnZhciB2YWx1ZXMgPSAvbGluZWFyLWdyYWRpZW50fHJhZGlhbC1ncmFkaWVudHxyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50fHJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQvZ2k7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdyYWRpZW50KHByb3BlcnR5LCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNQcmVmaXhlZFZhbHVlKHZhbHVlKSAmJiB2YWx1ZXMudGVzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gcHJlZml4ZXMubWFwKGZ1bmN0aW9uIChwcmVmaXgpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHZhbHVlcywgZnVuY3Rpb24gKGdyYWQpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGdyYWQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/gradient.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/grid.js": /*!***************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/grid.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ grid)\n/* harmony export */ });\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9ncmlkLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBbUMsaUNBQWlDLGVBQWUsZUFBZSxnQkFBZ0Isb0JBQW9CLE1BQU0sMENBQTBDLCtCQUErQixhQUFhLHFCQUFxQix1Q0FBdUMsY0FBYyxXQUFXLFlBQVksVUFBVSxNQUFNLDJDQUEyQyxVQUFVLHNCQUFzQixlQUFlLDJCQUEyQiwwQkFBMEIsY0FBYywyQ0FBMkMsZ0NBQWdDLE9BQU8sbUZBQW1GOztBQUVycEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9ncmlkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfc2xpY2VkVG9BcnJheSA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gc2xpY2VJdGVyYXRvcihhcnIsIGkpIHsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0pIF9pW1wicmV0dXJuXCJdKCk7IH0gZmluYWxseSB7IGlmIChfZCkgdGhyb3cgX2U7IH0gfSByZXR1cm4gX2FycjsgfSByZXR1cm4gZnVuY3Rpb24gKGFyciwgaSkgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7IHJldHVybiBhcnI7IH0gZWxzZSBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSB7IHJldHVybiBzbGljZUl0ZXJhdG9yKGFyciwgaSk7IH0gZWxzZSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpOyB9IH07IH0oKTtcblxuZnVuY3Rpb24gaXNTaW1wbGVQb3NpdGlvblZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzQ29tcGxleFNwYW5WYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5pbmNsdWRlcygnLycpO1xufVxuXG52YXIgYWxpZ25tZW50VmFsdWVzID0gWydjZW50ZXInLCAnZW5kJywgJ3N0YXJ0JywgJ3N0cmV0Y2gnXTtcblxudmFyIGRpc3BsYXlWYWx1ZXMgPSB7XG4gICdpbmxpbmUtZ3JpZCc6IFsnLW1zLWlubGluZS1ncmlkJywgJ2lubGluZS1ncmlkJ10sXG4gIGdyaWQ6IFsnLW1zLWdyaWQnLCAnZ3JpZCddXG59O1xuXG52YXIgcHJvcGVydHlDb252ZXJ0ZXJzID0ge1xuICBhbGlnblNlbGY6IGZ1bmN0aW9uIGFsaWduU2VsZih2YWx1ZSwgc3R5bGUpIHtcbiAgICBpZiAoYWxpZ25tZW50VmFsdWVzLmluZGV4T2YodmFsdWUpID4gLTEpIHtcbiAgICAgIHN0eWxlLm1zR3JpZFJvd0FsaWduID0gdmFsdWU7XG4gICAgfVxuICB9LFxuXG4gIGdyaWRDb2x1bW46IGZ1bmN0aW9uIGdyaWRDb2x1bW4odmFsdWUsIHN0eWxlKSB7XG4gICAgaWYgKGlzU2ltcGxlUG9zaXRpb25WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHN0eWxlLm1zR3JpZENvbHVtbiA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNDb21wbGV4U3BhblZhbHVlKHZhbHVlKSkge1xuICAgICAgdmFyIF92YWx1ZSRzcGxpdCA9IHZhbHVlLnNwbGl0KCcvJyksXG4gICAgICAgICAgX3ZhbHVlJHNwbGl0MiA9IF9zbGljZWRUb0FycmF5KF92YWx1ZSRzcGxpdCwgMiksXG4gICAgICAgICAgc3RhcnQgPSBfdmFsdWUkc3BsaXQyWzBdLFxuICAgICAgICAgIGVuZCA9IF92YWx1ZSRzcGxpdDJbMV07XG5cbiAgICAgIHByb3BlcnR5Q29udmVydGVycy5ncmlkQ29sdW1uU3RhcnQoK3N0YXJ0LCBzdHlsZSk7XG5cbiAgICAgIHZhciBfZW5kJHNwbGl0ID0gZW5kLnNwbGl0KC8gP3NwYW4gLyksXG4gICAgICAgICAgX2VuZCRzcGxpdDIgPSBfc2xpY2VkVG9BcnJheShfZW5kJHNwbGl0LCAyKSxcbiAgICAgICAgICBtYXliZVNwYW4gPSBfZW5kJHNwbGl0MlswXSxcbiAgICAgICAgICBtYXliZU51bWJlciA9IF9lbmQkc3BsaXQyWzFdO1xuXG4gICAgICBpZiAobWF5YmVTcGFuID09PSAnJykge1xuICAgICAgICBwcm9wZXJ0eUNvbnZlcnRlcnMuZ3JpZENvbHVtbkVuZCgrc3RhcnQgKyArbWF5YmVOdW1iZXIsIHN0eWxlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BlcnR5Q29udmVydGVycy5ncmlkQ29sdW1uRW5kKCtlbmQsIHN0eWxlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvcGVydHlDb252ZXJ0ZXJzLmdyaWRDb2x1bW5TdGFydCh2YWx1ZSwgc3R5bGUpO1xuICAgIH1cbiAgfSxcblxuICBncmlkQ29sdW1uRW5kOiBmdW5jdGlvbiBncmlkQ29sdW1uRW5kKHZhbHVlLCBzdHlsZSkge1xuICAgIHZhciBtc0dyaWRDb2x1bW4gPSBzdHlsZS5tc0dyaWRDb2x1bW47XG5cbiAgICBpZiAoaXNTaW1wbGVQb3NpdGlvblZhbHVlKHZhbHVlKSAmJiBpc1NpbXBsZVBvc2l0aW9uVmFsdWUobXNHcmlkQ29sdW1uKSkge1xuICAgICAgc3R5bGUubXNHcmlkQ29sdW1uU3BhbiA9IHZhbHVlIC0gbXNHcmlkQ29sdW1uO1xuICAgIH1cbiAgfSxcblxuICBncmlkQ29sdW1uU3RhcnQ6IGZ1bmN0aW9uIGdyaWRDb2x1bW5TdGFydCh2YWx1ZSwgc3R5bGUpIHtcbiAgICBpZiAoaXNTaW1wbGVQb3NpdGlvblZhbHVlKHZhbHVlKSkge1xuICAgICAgc3R5bGUubXNHcmlkQ29sdW1uID0gdmFsdWU7XG4gICAgfVxuICB9LFxuXG4gIGdyaWRSb3c6IGZ1bmN0aW9uIGdyaWRSb3codmFsdWUsIHN0eWxlKSB7XG4gICAgaWYgKGlzU2ltcGxlUG9zaXRpb25WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHN0eWxlLm1zR3JpZFJvdyA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNDb21wbGV4U3BhblZhbHVlKHZhbHVlKSkge1xuICAgICAgdmFyIF92YWx1ZSRzcGxpdDMgPSB2YWx1ZS5zcGxpdCgnLycpLFxuICAgICAgICAgIF92YWx1ZSRzcGxpdDQgPSBfc2xpY2VkVG9BcnJheShfdmFsdWUkc3BsaXQzLCAyKSxcbiAgICAgICAgICBzdGFydCA9IF92YWx1ZSRzcGxpdDRbMF0sXG4gICAgICAgICAgZW5kID0gX3ZhbHVlJHNwbGl0NFsxXTtcblxuICAgICAgcHJvcGVydHlDb252ZXJ0ZXJzLmdyaWRSb3dTdGFydCgrc3RhcnQsIHN0eWxlKTtcblxuICAgICAgdmFyIF9lbmQkc3BsaXQzID0gZW5kLnNwbGl0KC8gP3NwYW4gLyksXG4gICAgICAgICAgX2VuZCRzcGxpdDQgPSBfc2xpY2VkVG9BcnJheShfZW5kJHNwbGl0MywgMiksXG4gICAgICAgICAgbWF5YmVTcGFuID0gX2VuZCRzcGxpdDRbMF0sXG4gICAgICAgICAgbWF5YmVOdW1iZXIgPSBfZW5kJHNwbGl0NFsxXTtcblxuICAgICAgaWYgKG1heWJlU3BhbiA9PT0gJycpIHtcbiAgICAgICAgcHJvcGVydHlDb252ZXJ0ZXJzLmdyaWRSb3dFbmQoK3N0YXJ0ICsgK21heWJlTnVtYmVyLCBzdHlsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wZXJ0eUNvbnZlcnRlcnMuZ3JpZFJvd0VuZCgrZW5kLCBzdHlsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb3BlcnR5Q29udmVydGVycy5ncmlkUm93U3RhcnQodmFsdWUsIHN0eWxlKTtcbiAgICB9XG4gIH0sXG5cbiAgZ3JpZFJvd0VuZDogZnVuY3Rpb24gZ3JpZFJvd0VuZCh2YWx1ZSwgc3R5bGUpIHtcbiAgICB2YXIgbXNHcmlkUm93ID0gc3R5bGUubXNHcmlkUm93O1xuXG4gICAgaWYgKGlzU2ltcGxlUG9zaXRpb25WYWx1ZSh2YWx1ZSkgJiYgaXNTaW1wbGVQb3NpdGlvblZhbHVlKG1zR3JpZFJvdykpIHtcbiAgICAgIHN0eWxlLm1zR3JpZFJvd1NwYW4gPSB2YWx1ZSAtIG1zR3JpZFJvdztcbiAgICB9XG4gIH0sXG5cbiAgZ3JpZFJvd1N0YXJ0OiBmdW5jdGlvbiBncmlkUm93U3RhcnQodmFsdWUsIHN0eWxlKSB7XG4gICAgaWYgKGlzU2ltcGxlUG9zaXRpb25WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHN0eWxlLm1zR3JpZFJvdyA9IHZhbHVlO1xuICAgIH1cbiAgfSxcblxuICBncmlkVGVtcGxhdGVDb2x1bW5zOiBmdW5jdGlvbiBncmlkVGVtcGxhdGVDb2x1bW5zKHZhbHVlLCBzdHlsZSkge1xuICAgIHN0eWxlLm1zR3JpZENvbHVtbnMgPSB2YWx1ZTtcbiAgfSxcblxuICBncmlkVGVtcGxhdGVSb3dzOiBmdW5jdGlvbiBncmlkVGVtcGxhdGVSb3dzKHZhbHVlLCBzdHlsZSkge1xuICAgIHN0eWxlLm1zR3JpZFJvd3MgPSB2YWx1ZTtcbiAgfSxcblxuICBqdXN0aWZ5U2VsZjogZnVuY3Rpb24ganVzdGlmeVNlbGYodmFsdWUsIHN0eWxlKSB7XG4gICAgaWYgKGFsaWdubWVudFZhbHVlcy5pbmRleE9mKHZhbHVlKSA+IC0xKSB7XG4gICAgICBzdHlsZS5tc0dyaWRDb2x1bW5BbGlnbiA9IHZhbHVlO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ3JpZChwcm9wZXJ0eSwgdmFsdWUsIHN0eWxlKSB7XG4gIGlmIChwcm9wZXJ0eSA9PT0gJ2Rpc3BsYXknICYmIHZhbHVlIGluIGRpc3BsYXlWYWx1ZXMpIHtcbiAgICByZXR1cm4gZGlzcGxheVZhbHVlc1t2YWx1ZV07XG4gIH1cblxuICBpZiAocHJvcGVydHkgaW4gcHJvcGVydHlDb252ZXJ0ZXJzKSB7XG4gICAgdmFyIHByb3BlcnR5Q29udmVydGVyID0gcHJvcGVydHlDb252ZXJ0ZXJzW3Byb3BlcnR5XTtcbiAgICBwcm9wZXJ0eUNvbnZlcnRlcih2YWx1ZSwgc3R5bGUpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/grid.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/imageSet.js": /*!*******************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/imageSet.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ imageSet)\n/* harmony export */ });\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\");\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_0___default()(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9pbWFnZVNldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0U7O0FBRWxFO0FBQ0E7O0FBRWU7QUFDZixvQ0FBb0MsMEVBQWU7QUFDbkQ7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9pbWFnZVNldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNQcmVmaXhlZFZhbHVlIGZyb20gJ2Nzcy1pbi1qcy11dGlscy9saWIvaXNQcmVmaXhlZFZhbHVlJztcblxuLy8gaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1pbWFnZS1zZXRcbnZhciBwcmVmaXhlcyA9IFsnLXdlYmtpdC0nLCAnJ107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGltYWdlU2V0KHByb3BlcnR5LCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNQcmVmaXhlZFZhbHVlKHZhbHVlKSAmJiB2YWx1ZS5pbmRleE9mKCdpbWFnZS1zZXQoJykgPiAtMSkge1xuICAgIHJldHVybiBwcmVmaXhlcy5tYXAoZnVuY3Rpb24gKHByZWZpeCkge1xuICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL2ltYWdlLXNldFxcKC9nLCBwcmVmaXggKyAnaW1hZ2Utc2V0KCcpO1xuICAgIH0pO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/imageSet.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/logical.js": /*!******************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/logical.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ logical)\n/* harmony export */ });\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9sb2dpY2FsLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBLHNEQUFzRCxTQUFTO0FBQy9EO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9sb2dpY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhbHRlcm5hdGl2ZVByb3BzID0ge1xuICBtYXJnaW5CbG9ja1N0YXJ0OiBbJ1dlYmtpdE1hcmdpbkJlZm9yZSddLFxuICBtYXJnaW5CbG9ja0VuZDogWydXZWJraXRNYXJnaW5BZnRlciddLFxuICBtYXJnaW5JbmxpbmVTdGFydDogWydXZWJraXRNYXJnaW5TdGFydCcsICdNb3pNYXJnaW5TdGFydCddLFxuICBtYXJnaW5JbmxpbmVFbmQ6IFsnV2Via2l0TWFyZ2luRW5kJywgJ01vek1hcmdpbkVuZCddLFxuICBwYWRkaW5nQmxvY2tTdGFydDogWydXZWJraXRQYWRkaW5nQmVmb3JlJ10sXG4gIHBhZGRpbmdCbG9ja0VuZDogWydXZWJraXRQYWRkaW5nQWZ0ZXInXSxcbiAgcGFkZGluZ0lubGluZVN0YXJ0OiBbJ1dlYmtpdFBhZGRpbmdTdGFydCcsICdNb3pQYWRkaW5nU3RhcnQnXSxcbiAgcGFkZGluZ0lubGluZUVuZDogWydXZWJraXRQYWRkaW5nRW5kJywgJ01velBhZGRpbmdFbmQnXSxcbiAgYm9yZGVyQmxvY2tTdGFydDogWydXZWJraXRCb3JkZXJCZWZvcmUnXSxcbiAgYm9yZGVyQmxvY2tTdGFydENvbG9yOiBbJ1dlYmtpdEJvcmRlckJlZm9yZUNvbG9yJ10sXG4gIGJvcmRlckJsb2NrU3RhcnRTdHlsZTogWydXZWJraXRCb3JkZXJCZWZvcmVTdHlsZSddLFxuICBib3JkZXJCbG9ja1N0YXJ0V2lkdGg6IFsnV2Via2l0Qm9yZGVyQmVmb3JlV2lkdGgnXSxcbiAgYm9yZGVyQmxvY2tFbmQ6IFsnV2Via2l0Qm9yZGVyQWZ0ZXInXSxcbiAgYm9yZGVyQmxvY2tFbmRDb2xvcjogWydXZWJraXRCb3JkZXJBZnRlckNvbG9yJ10sXG4gIGJvcmRlckJsb2NrRW5kU3R5bGU6IFsnV2Via2l0Qm9yZGVyQWZ0ZXJTdHlsZSddLFxuICBib3JkZXJCbG9ja0VuZFdpZHRoOiBbJ1dlYmtpdEJvcmRlckFmdGVyV2lkdGgnXSxcbiAgYm9yZGVySW5saW5lU3RhcnQ6IFsnV2Via2l0Qm9yZGVyU3RhcnQnLCAnTW96Qm9yZGVyU3RhcnQnXSxcbiAgYm9yZGVySW5saW5lU3RhcnRDb2xvcjogWydXZWJraXRCb3JkZXJTdGFydENvbG9yJywgJ01vekJvcmRlclN0YXJ0Q29sb3InXSxcbiAgYm9yZGVySW5saW5lU3RhcnRTdHlsZTogWydXZWJraXRCb3JkZXJTdGFydFN0eWxlJywgJ01vekJvcmRlclN0YXJ0U3R5bGUnXSxcbiAgYm9yZGVySW5saW5lU3RhcnRXaWR0aDogWydXZWJraXRCb3JkZXJTdGFydFdpZHRoJywgJ01vekJvcmRlclN0YXJ0V2lkdGgnXSxcbiAgYm9yZGVySW5saW5lRW5kOiBbJ1dlYmtpdEJvcmRlckVuZCcsICdNb3pCb3JkZXJFbmQnXSxcbiAgYm9yZGVySW5saW5lRW5kQ29sb3I6IFsnV2Via2l0Qm9yZGVyRW5kQ29sb3InLCAnTW96Qm9yZGVyRW5kQ29sb3InXSxcbiAgYm9yZGVySW5saW5lRW5kU3R5bGU6IFsnV2Via2l0Qm9yZGVyRW5kU3R5bGUnLCAnTW96Qm9yZGVyRW5kU3R5bGUnXSxcbiAgYm9yZGVySW5saW5lRW5kV2lkdGg6IFsnV2Via2l0Qm9yZGVyRW5kV2lkdGgnLCAnTW96Qm9yZGVyRW5kV2lkdGgnXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9naWNhbChwcm9wZXJ0eSwgdmFsdWUsIHN0eWxlKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWx0ZXJuYXRpdmVQcm9wcywgcHJvcGVydHkpKSB7XG4gICAgdmFyIGFsdGVybmF0aXZlUHJvcExpc3QgPSBhbHRlcm5hdGl2ZVByb3BzW3Byb3BlcnR5XTtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWx0ZXJuYXRpdmVQcm9wTGlzdC5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgc3R5bGVbYWx0ZXJuYXRpdmVQcm9wTGlzdFtpXV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/logical.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/position.js": /*!*******************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/position.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ position)\n/* harmony export */ });\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9wb3NpdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcG9zaXRpb24ocHJvcGVydHksIHZhbHVlKSB7XG4gIGlmIChwcm9wZXJ0eSA9PT0gJ3Bvc2l0aW9uJyAmJiB2YWx1ZSA9PT0gJ3N0aWNreScpIHtcbiAgICByZXR1cm4gWyctd2Via2l0LXN0aWNreScsICdzdGlja3knXTtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/position.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/sizing.js": /*!*****************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/sizing.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ sizing)\n/* harmony export */ });\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy9zaXppbmcuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wcmVmaXhlci9lcy9wbHVnaW5zL3NpemluZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcHJlZml4ZXMgPSBbJy13ZWJraXQtJywgJy1tb3otJywgJyddO1xuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgbWF4SGVpZ2h0OiB0cnVlLFxuICBtYXhXaWR0aDogdHJ1ZSxcbiAgd2lkdGg6IHRydWUsXG4gIGhlaWdodDogdHJ1ZSxcbiAgY29sdW1uV2lkdGg6IHRydWUsXG4gIG1pbldpZHRoOiB0cnVlLFxuICBtaW5IZWlnaHQ6IHRydWVcbn07XG52YXIgdmFsdWVzID0ge1xuICAnbWluLWNvbnRlbnQnOiB0cnVlLFxuICAnbWF4LWNvbnRlbnQnOiB0cnVlLFxuICAnZmlsbC1hdmFpbGFibGUnOiB0cnVlLFxuICAnZml0LWNvbnRlbnQnOiB0cnVlLFxuICAnY29udGFpbi1mbG9hdHMnOiB0cnVlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaXppbmcocHJvcGVydHksIHZhbHVlKSB7XG4gIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHByb3BlcnR5KSAmJiB2YWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHByZWZpeGVzLm1hcChmdW5jdGlvbiAocHJlZml4KSB7XG4gICAgICByZXR1cm4gcHJlZml4ICsgdmFsdWU7XG4gICAgfSk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/sizing.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/transition.js": /*!*********************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/plugins/transition.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ transition)\n/* harmony export */ });\n/* harmony import */ var css_in_js_utils_lib_hyphenateProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-in-js-utils/lib/hyphenateProperty */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/hyphenateProperty.js\");\n/* harmony import */ var css_in_js_utils_lib_hyphenateProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_hyphenateProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ \"(app-pages-browser)/./node_modules/css-in-js-utils/lib/isPrefixedValue.js\");\n/* harmony import */ var css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_capitalizeString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/capitalizeString */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/capitalizeString.js\");\n\n\n\n\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if (css_in_js_utils_lib_isPrefixedValue__WEBPACK_IMPORTED_MODULE_1___default()(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = css_in_js_utils_lib_hyphenateProperty__WEBPACK_IMPORTED_MODULE_0___default()(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0,_utils_capitalizeString__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(property)] = webkitOutput;\n style['Moz' + (0,_utils_capitalizeString__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(property)] = mozOutput;\n return outputValue;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvcGx1Z2lucy90cmFuc2l0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFzRTtBQUNKOztBQUVUOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLDBFQUFlO0FBQ3JCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSwrQ0FBK0MsU0FBUztBQUN4RDtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsNEVBQWlCOztBQUU5QztBQUNBO0FBQ0EsZ0RBQWdELFVBQVU7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLG1FQUFnQjtBQUNyQyxrQkFBa0IsbUVBQWdCO0FBQ2xDO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3BsdWdpbnMvdHJhbnNpdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaHlwaGVuYXRlUHJvcGVydHkgZnJvbSAnY3NzLWluLWpzLXV0aWxzL2xpYi9oeXBoZW5hdGVQcm9wZXJ0eSc7XG5pbXBvcnQgaXNQcmVmaXhlZFZhbHVlIGZyb20gJ2Nzcy1pbi1qcy11dGlscy9saWIvaXNQcmVmaXhlZFZhbHVlJztcblxuaW1wb3J0IGNhcGl0YWxpemVTdHJpbmcgZnJvbSAnLi4vdXRpbHMvY2FwaXRhbGl6ZVN0cmluZyc7XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICB0cmFuc2l0aW9uOiB0cnVlLFxuICB0cmFuc2l0aW9uUHJvcGVydHk6IHRydWUsXG4gIFdlYmtpdFRyYW5zaXRpb246IHRydWUsXG4gIFdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eTogdHJ1ZSxcbiAgTW96VHJhbnNpdGlvbjogdHJ1ZSxcbiAgTW96VHJhbnNpdGlvblByb3BlcnR5OiB0cnVlXG59O1xuXG52YXIgcHJlZml4TWFwcGluZyA9IHtcbiAgV2Via2l0OiAnLXdlYmtpdC0nLFxuICBNb3o6ICctbW96LScsXG4gIG1zOiAnLW1zLSdcbn07XG5cbmZ1bmN0aW9uIHByZWZpeFZhbHVlKHZhbHVlLCBwcm9wZXJ0eVByZWZpeE1hcCkge1xuICBpZiAoaXNQcmVmaXhlZFZhbHVlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8vIG9ubHkgc3BsaXQgbXVsdGkgdmFsdWVzLCBub3QgY3ViaWMgYmV6aWVyc1xuICB2YXIgbXVsdGlwbGVWYWx1ZXMgPSB2YWx1ZS5zcGxpdCgvLCg/IVteKCldKig/OlxcKFteKCldKlxcKSk/XFwpKS9nKTtcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gbXVsdGlwbGVWYWx1ZXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICB2YXIgc2luZ2xlVmFsdWUgPSBtdWx0aXBsZVZhbHVlc1tpXTtcbiAgICB2YXIgdmFsdWVzID0gW3NpbmdsZVZhbHVlXTtcbiAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBwcm9wZXJ0eVByZWZpeE1hcCkge1xuICAgICAgdmFyIGRhc2hDYXNlUHJvcGVydHkgPSBoeXBoZW5hdGVQcm9wZXJ0eShwcm9wZXJ0eSk7XG5cbiAgICAgIGlmIChzaW5nbGVWYWx1ZS5pbmRleE9mKGRhc2hDYXNlUHJvcGVydHkpID4gLTEgJiYgZGFzaENhc2VQcm9wZXJ0eSAhPT0gJ29yZGVyJykge1xuICAgICAgICB2YXIgcHJlZml4ZXMgPSBwcm9wZXJ0eVByZWZpeE1hcFtwcm9wZXJ0eV07XG4gICAgICAgIGZvciAodmFyIGogPSAwLCBwTGVuID0gcHJlZml4ZXMubGVuZ3RoOyBqIDwgcExlbjsgKytqKSB7XG4gICAgICAgICAgLy8gam9pbiBhbGwgcHJlZml4ZXMgYW5kIGNyZWF0ZSBhIG5ldyB2YWx1ZVxuICAgICAgICAgIHZhbHVlcy51bnNoaWZ0KHNpbmdsZVZhbHVlLnJlcGxhY2UoZGFzaENhc2VQcm9wZXJ0eSwgcHJlZml4TWFwcGluZ1twcmVmaXhlc1tqXV0gKyBkYXNoQ2FzZVByb3BlcnR5KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBtdWx0aXBsZVZhbHVlc1tpXSA9IHZhbHVlcy5qb2luKCcsJyk7XG4gIH1cblxuICByZXR1cm4gbXVsdGlwbGVWYWx1ZXMuam9pbignLCcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2l0aW9uKHByb3BlcnR5LCB2YWx1ZSwgc3R5bGUsIHByb3BlcnR5UHJlZml4TWFwKSB7XG4gIC8vIGFsc28gY2hlY2sgZm9yIGFscmVhZHkgcHJlZml4ZWQgdHJhbnNpdGlvbnNcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICB2YXIgb3V0cHV0VmFsdWUgPSBwcmVmaXhWYWx1ZSh2YWx1ZSwgcHJvcGVydHlQcmVmaXhNYXApO1xuICAgIC8vIGlmIHRoZSBwcm9wZXJ0eSBpcyBhbHJlYWR5IHByZWZpeGVkXG4gICAgdmFyIHdlYmtpdE91dHB1dCA9IG91dHB1dFZhbHVlLnNwbGl0KC8sKD8hW14oKV0qKD86XFwoW14oKV0qXFwpKT9cXCkpL2cpLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICByZXR1cm4gIS8tbW96LXwtbXMtLy50ZXN0KHZhbCk7XG4gICAgfSkuam9pbignLCcpO1xuXG4gICAgaWYgKHByb3BlcnR5LmluZGV4T2YoJ1dlYmtpdCcpID4gLTEpIHtcbiAgICAgIHJldHVybiB3ZWJraXRPdXRwdXQ7XG4gICAgfVxuXG4gICAgdmFyIG1vek91dHB1dCA9IG91dHB1dFZhbHVlLnNwbGl0KC8sKD8hW14oKV0qKD86XFwoW14oKV0qXFwpKT9cXCkpL2cpLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICByZXR1cm4gIS8td2Via2l0LXwtbXMtLy50ZXN0KHZhbCk7XG4gICAgfSkuam9pbignLCcpO1xuXG4gICAgaWYgKHByb3BlcnR5LmluZGV4T2YoJ01veicpID4gLTEpIHtcbiAgICAgIHJldHVybiBtb3pPdXRwdXQ7XG4gICAgfVxuXG4gICAgc3R5bGVbJ1dlYmtpdCcgKyBjYXBpdGFsaXplU3RyaW5nKHByb3BlcnR5KV0gPSB3ZWJraXRPdXRwdXQ7XG4gICAgc3R5bGVbJ01veicgKyBjYXBpdGFsaXplU3RyaW5nKHByb3BlcnR5KV0gPSBtb3pPdXRwdXQ7XG4gICAgcmV0dXJuIG91dHB1dFZhbHVlO1xuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/plugins/transition.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js": /*!*************************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ addNewValuesOnly)\n/* harmony export */ });\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvYWRkTmV3VmFsdWVzT25seS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0EseUNBQXlDLFNBQVM7QUFDbEQ7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wcmVmaXhlci9lcy91dGlscy9hZGROZXdWYWx1ZXNPbmx5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFkZElmTmV3KGxpc3QsIHZhbHVlKSB7XG4gIGlmIChsaXN0LmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgIGxpc3QucHVzaCh2YWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkTmV3VmFsdWVzT25seShsaXN0LCB2YWx1ZXMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSB2YWx1ZXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIGFkZElmTmV3KGxpc3QsIHZhbHVlc1tpXSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFkZElmTmV3KGxpc3QsIHZhbHVlcyk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/capitalizeString.js": /*!*************************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/utils/capitalizeString.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ capitalizeString)\n/* harmony export */ });\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvY2FwaXRhbGl6ZVN0cmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvY2FwaXRhbGl6ZVN0cmluZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjYXBpdGFsaXplU3RyaW5nKHN0cikge1xuICByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/capitalizeString.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/isObject.js": /*!*****************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/utils/isObject.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isObject)\n/* harmony export */ });\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvaXNPYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3V0aWxzL2lzT2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/isObject.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixProperty.js": /*!***********************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/utils/prefixProperty.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ prefixProperty)\n/* harmony export */ });\n/* harmony import */ var _capitalizeString__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./capitalizeString */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/capitalizeString.js\");\n\n\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0,_capitalizeString__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(property);\n var keys = Object.keys(style);\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n newStyle[styleProperty] = style[styleProperty];\n }\n return newStyle;\n }\n return style;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvcHJlZml4UHJvcGVydHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0Q7OztBQUduQztBQUNmO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw2REFBZ0I7QUFDOUM7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQSx3QkFBd0IsNkJBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvaW5saW5lLXN0eWxlLXByZWZpeGVyL2VzL3V0aWxzL3ByZWZpeFByb3BlcnR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjYXBpdGFsaXplU3RyaW5nIGZyb20gJy4vY2FwaXRhbGl6ZVN0cmluZyc7XG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcHJlZml4UHJvcGVydHkocHJlZml4UHJvcGVydGllcywgcHJvcGVydHksIHN0eWxlKSB7XG4gIGlmIChwcmVmaXhQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgIHZhciBuZXdTdHlsZSA9IHt9O1xuICAgIHZhciByZXF1aXJlZFByZWZpeGVzID0gcHJlZml4UHJvcGVydGllc1twcm9wZXJ0eV07XG4gICAgdmFyIGNhcGl0YWxpemVkUHJvcGVydHkgPSBjYXBpdGFsaXplU3RyaW5nKHByb3BlcnR5KTtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHN0eWxlKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzdHlsZVByb3BlcnR5ID0ga2V5c1tpXTtcbiAgICAgIGlmIChzdHlsZVByb3BlcnR5ID09PSBwcm9wZXJ0eSkge1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJlcXVpcmVkUHJlZml4ZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBuZXdTdHlsZVtyZXF1aXJlZFByZWZpeGVzW2pdICsgY2FwaXRhbGl6ZWRQcm9wZXJ0eV0gPSBzdHlsZVtwcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5ld1N0eWxlW3N0eWxlUHJvcGVydHldID0gc3R5bGVbc3R5bGVQcm9wZXJ0eV07XG4gICAgfVxuICAgIHJldHVybiBuZXdTdHlsZTtcbiAgfVxuICByZXR1cm4gc3R5bGU7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixProperty.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixValue.js": /*!********************************************************************!*\ !*** ./node_modules/inline-style-prefixer/es/utils/prefixValue.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ prefixValue)\n/* harmony export */ });\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcHJlZml4ZXIvZXMvdXRpbHMvcHJlZml4VmFsdWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Ysd0NBQXdDLFNBQVM7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wcmVmaXhlci9lcy91dGlscy9wcmVmaXhWYWx1ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcmVmaXhWYWx1ZShwbHVnaW5zLCBwcm9wZXJ0eSwgdmFsdWUsIHN0eWxlLCBtZXRhRGF0YSkge1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gcGx1Z2lucy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHZhciBwcm9jZXNzZWRWYWx1ZSA9IHBsdWdpbnNbaV0ocHJvcGVydHksIHZhbHVlLCBzdHlsZSwgbWV0YURhdGEpO1xuXG4gICAgLy8gd2UgY2FuIHN0b3AgcHJvY2Vzc2luZyBpZiBhIHZhbHVlIGlzIHJldHVybmVkXG4gICAgLy8gYXMgYWxsIHBsdWdpbiBjcml0ZXJpYSBhcmUgdW5pcXVlXG4gICAgaWYgKHByb2Nlc3NlZFZhbHVlKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzc2VkVmFsdWU7XG4gICAgfVxuICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/inline-style-prefixer/es/utils/prefixValue.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/is-node-process/lib/index.mjs": /*!****************************************************!*\ !*** ./node_modules/is-node-process/lib/index.mjs ***! \****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNodeProcess: () => (/* binding */ isNodeProcess)\n/* harmony export */ });\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n// src/index.ts\nfunction isNodeProcess() {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n return true;\n }\n if (typeof process !== \"undefined\") {\n const type = process.type;\n if (type === \"renderer\" || type === \"worker\") {\n return false;\n }\n return !!(process.versions && process.versions.node);\n }\n return false;\n}\n\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pcy1ub2RlLXByb2Nlc3MvbGliL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEIsaUJBQWlCLE9BQU87QUFDeEI7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPLGFBQWEsT0FBTztBQUN6QztBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9pcy1ub2RlLXByb2Nlc3MvbGliL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvaW5kZXgudHNcbmZ1bmN0aW9uIGlzTm9kZVByb2Nlc3MoKSB7XG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIG5hdmlnYXRvci5wcm9kdWN0ID09PSBcIlJlYWN0TmF0aXZlXCIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjb25zdCB0eXBlID0gcHJvY2Vzcy50eXBlO1xuICAgIGlmICh0eXBlID09PSBcInJlbmRlcmVyXCIgfHwgdHlwZSA9PT0gXCJ3b3JrZXJcIikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gISEocHJvY2Vzcy52ZXJzaW9ucyAmJiBwcm9jZXNzLnZlcnNpb25zLm5vZGUpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCB7XG4gIGlzTm9kZVByb2Nlc3Ncbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/is-node-process/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js": /*!****************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyx3RUFDWCxRQVdFLEdBQ0c7UUFYSCxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLEdBQUc7SUFJRSwyRUFDTCxNQUNBO1FBQ0U7UUFDQSxHQUFHO1FBQ0gsS0FBTztRQUNQLE1BQVE7UUFDUixNQUFRO1FBQ1IsWUFBYSxxQkFBdUIsUUFBTyxFQUFXLFlBQUksSUFBTSxVQUFPLENBQUksSUFBSTtRQUMvRSxVQUFXLG1FQUFhLFdBQVUsU0FBUztRQUMzQyxHQUFHO0lBQ0wsR0FDQTtXQUNLLENBQVMsWUFBSTtnQkFBQyxDQUFDLENBQUssS0FBSyxLQUFNO2lDQUFBLHFEQUFjLEdBQUssT0FBSyxDQUFDOztXQUN2RCxLQUFNLFNBQVEsUUFBUSxDQUFJLGNBQVc7WUFBQyxRQUFRO1NBQUE7S0FDcEQ7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvc3JjL0ljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB7IEljb25Ob2RlLCBMdWNpZGVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGx1Y2lkZS9zaGFyZWQnO1xuXG5pbnRlcmZhY2UgSWNvbkNvbXBvbmVudFByb3BzIGV4dGVuZHMgTHVjaWRlUHJvcHMge1xuICBpY29uTm9kZTogSWNvbk5vZGU7XG59XG5cbi8qKlxuICogTHVjaWRlIGljb24gY29tcG9uZW50XG4gKlxuICogQGNvbXBvbmVudCBJY29uXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jb2xvciAtIFRoZSBjb2xvciBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnN0cm9rZVdpZHRoIC0gVGhlIHN0cm9rZSB3aWR0aCBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtib29sZWFufSBwcm9wcy5hYnNvbHV0ZVN0cm9rZVdpZHRoIC0gV2hldGhlciB0byB1c2UgYWJzb2x1dGUgc3Ryb2tlIHdpZHRoXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMuY2xhc3NOYW1lIC0gVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmNoaWxkcmVuIC0gVGhlIGNoaWxkcmVuIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge0ljb25Ob2RlfSBwcm9wcy5pY29uTm9kZSAtIFRoZSBpY29uIG5vZGUgb2YgdGhlIGljb25cbiAqXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBJY29uID0gZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uQ29tcG9uZW50UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgY29sb3IgPSAnY3VycmVudENvbG9yJyxcbiAgICAgIHNpemUgPSAyNCxcbiAgICAgIHN0cm9rZVdpZHRoID0gMixcbiAgICAgIGFic29sdXRlU3Ryb2tlV2lkdGgsXG4gICAgICBjbGFzc05hbWUgPSAnJyxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaWNvbk5vZGUsXG4gICAgICAuLi5yZXN0XG4gICAgfSxcbiAgICByZWYsXG4gICkgPT4ge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KFxuICAgICAgJ3N2ZycsXG4gICAgICB7XG4gICAgICAgIHJlZixcbiAgICAgICAgLi4uZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICBoZWlnaHQ6IHNpemUsXG4gICAgICAgIHN0cm9rZTogY29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBhYnNvbHV0ZVN0cm9rZVdpZHRoID8gKE51bWJlcihzdHJva2VXaWR0aCkgKiAyNCkgLyBOdW1iZXIoc2l6ZSkgOiBzdHJva2VXaWR0aCxcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoJ2x1Y2lkZScsIGNsYXNzTmFtZSksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICAuLi5pY29uTm9kZS5tYXAoKFt0YWcsIGF0dHJzXSkgPT4gY3JlYXRlRWxlbWVudCh0YWcsIGF0dHJzKSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogW2NoaWxkcmVuXSksXG4gICAgICBdLFxuICAgICk7XG4gIH0sXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)), className),\n ...props\n });\n });\n Component.displayName = \"\".concat(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLG1GQUFpRTtZQUF6QixFQUFFLENBQVcsV0FBRyxRQUFTOzZCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxXQUFXLGtFQUFhLFdBQStCLE9BQXJCLGlFQUFXLENBQUMsUUFBUSxDQUFDLEdBQUksU0FBUztZQUNwRSxHQUFHO1FBQUEsQ0FDSjs7SUFHTyx3QkFBYyxDQUFHLEVBQVEsT0FBUixRQUFRO0lBRTVCO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L3NyYy9jcmVhdGVMdWNpZGVJY29uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMsIHRvS2ViYWJDYXNlIH0gZnJvbSAnQGx1Y2lkZS9zaGFyZWQnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgSWNvbiBmcm9tICcuL0ljb24nO1xuXG4vKipcbiAqIENyZWF0ZSBhIEx1Y2lkZSBpY29uIGNvbXBvbmVudFxuICogQHBhcmFtIHtzdHJpbmd9IGljb25OYW1lXG4gKiBAcGFyYW0ge2FycmF5fSBpY29uTm9kZVxuICogQHJldHVybnMge0ZvcndhcmRSZWZFeG90aWNDb21wb25lbnR9IEx1Y2lkZUljb25cbiAqL1xuY29uc3QgY3JlYXRlTHVjaWRlSWNvbiA9IChpY29uTmFtZTogc3RyaW5nLCBpY29uTm9kZTogSWNvbk5vZGUpID0+IHtcbiAgY29uc3QgQ29tcG9uZW50ID0gZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBMdWNpZGVQcm9wcz4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+XG4gICAgY3JlYXRlRWxlbWVudChJY29uLCB7XG4gICAgICByZWYsXG4gICAgICBpY29uTm9kZSxcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGBsdWNpZGUtJHt0b0tlYmFiQ2FzZShpY29uTmFtZSl9YCwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLFxuICApO1xuXG4gIENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGAke2ljb25OYW1lfWA7XG5cbiAgcmV0dXJuIENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUx1Y2lkZUljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": /*!*****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L3NyYy9kZWZhdWx0QXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB3aWR0aDogMjQsXG4gIGhlaWdodDogMjQsXG4gIHZpZXdCb3g6ICcwIDAgMjQgMjQnLFxuICBmaWxsOiAnbm9uZScsXG4gIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICBzdHJva2VMaW5lY2FwOiAncm91bmQnLFxuICBzdHJva2VMaW5lam9pbjogJ3JvdW5kJyxcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-down.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/arrow-down.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArrowDown)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ArrowDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowDown\", [\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19 12-7 7-7-7\",\n key: \"1idqje\"\n }\n ]\n]);\n //# sourceMappingURL=arrow-down.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvc3JjL2ljb25zL2Fycm93LWRvd24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBcnJvd0Rvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOWFl4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01USXROeUEzTFRjdE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duID0gY3JlYXRlTHVjaWRlSWNvbignQXJyb3dEb3duJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcsIGtleTogJ3M2OTlsZScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSAxMi03IDctNy03Jywga2V5OiAnMWlkcWplJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-down.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js": /*!*****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/arrow-right.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArrowRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ArrowRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowRight\", [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"m12 5 7 7-7 7\",\n key: \"xquz4c\"\n }\n ]\n]);\n //# sourceMappingURL=arrow-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxtQkFBYSxnRUFBZ0IsQ0FBQyxZQUFjO0lBQ2hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQy9DIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9hcnJvdy1yaWdodC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93UmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNbWd4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ05TQTNJRGN0TnlBM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0Fycm93UmlnaHQnLCBbXG4gIFsncGF0aCcsIHsgZDogJ001IDEyaDE0Jywga2V5OiAnMWF5czBoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDUgNyA3LTcgNycsIGtleTogJ3hxdXo0YycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dSaWdodDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-right.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-up.js": /*!**************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/arrow-up.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArrowUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ArrowUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowUp\", [\n [\n \"path\",\n {\n d: \"m5 12 7-7 7 7\",\n key: \"hav0vg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 19V5\",\n key: \"x0mq9r\"\n }\n ]\n]);\n //# sourceMappingURL=arrow-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxnQkFBVSxnRUFBZ0IsQ0FBQyxTQUFXO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9hcnJvdy11cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFycm93VXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5TQXhNaUEzTFRjZ055QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4T1ZZMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQXJyb3dVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0Fycm93VXAnLCBbXG4gIFsncGF0aCcsIHsgZDogJ201IDEyIDctNyA3IDcnLCBrZXk6ICdoYXYwdmcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTlWNScsIGtleTogJ3gwbXE5cicgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-up.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/binary.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/binary.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Binary)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Binary = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Binary\", [\n [\n \"rect\",\n {\n x: \"14\",\n y: \"14\",\n width: \"4\",\n height: \"6\",\n rx: \"2\",\n key: \"p02svl\"\n }\n ],\n [\n \"rect\",\n {\n x: \"6\",\n y: \"4\",\n width: \"4\",\n height: \"6\",\n rx: \"2\",\n key: \"xm4xkj\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 20h4\",\n key: \"1i6q5t\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 10h4\",\n key: \"ru81e7\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 14h2v6\",\n key: \"16z9wg\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 4h2v6\",\n key: \"1idq9u\"\n }\n ]\n]);\n //# sourceMappingURL=binary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYmluYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsT0FBUTtRQUFBO1lBQUUsR0FBRztZQUFNLENBQUc7WUFBTSxDQUFPO1lBQUssUUFBUSxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE9BQVE7UUFBQTtZQUFFLEdBQUc7WUFBSyxDQUFHO1lBQUssQ0FBTztZQUFLLFFBQVEsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9iaW5hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBCaW5hcnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJeE5DSWdlVDBpTVRRaUlIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqWWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpZaUlIazlJalFpSUhkcFpIUm9QU0kwSWlCb1pXbG5hSFE5SWpZaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURJd2FEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV3YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UUm9NblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMGFESjJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmluYXJ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQmluYXJ5ID0gY3JlYXRlTHVjaWRlSWNvbignQmluYXJ5JywgW1xuICBbJ3JlY3QnLCB7IHg6ICcxNCcsIHk6ICcxNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeDogJzInLCBrZXk6ICdwMDJzdmwnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc2JywgeTogJzQnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2Jywgcng6ICcyJywga2V5OiAneG00eGtqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBoNCcsIGtleTogJzFpNnE1dCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMGg0Jywga2V5OiAncnU4MWU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRoMnY2Jywga2V5OiAnMTZ6OXdnJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRoMnY2Jywga2V5OiAnMWlkcTl1JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBCaW5hcnk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/binary.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/check.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Check)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Check = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Check\", [\n [\n \"path\",\n {\n d: \"M20 6 9 17l-5-5\",\n key: \"1gmf2c\"\n }\n ]\n]);\n //# sourceMappingURL=check.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hlY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhQSxDQUFNLFVBQVEsb0VBQWlCLE9BQVM7SUFBQztRQUFDO1FBQVE7WUFBRSxHQUFHLGlCQUFtQjtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaGVjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTmlBNUlERTNiQzAxTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKCdDaGVjaycsIFtbJ3BhdGgnLCB7IGQ6ICdNMjAgNiA5IDE3bC01LTUnLCBrZXk6ICcxZ21mMmMnIH1dXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js": /*!******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-down.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronDown)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronDown\", [\n [\n \"path\",\n {\n d: \"m6 9 6 6 6-6\",\n key: \"qrunsl\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-down.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaGV2cm9uLWRvd24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uRG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TmlBNUlEWWdOaUEyTFRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25Eb3duID0gY3JlYXRlTHVjaWRlSWNvbignQ2hldnJvbkRvd24nLCBbXG4gIFsncGF0aCcsIHsgZDogJ202IDkgNiA2IDYtNicsIGtleTogJ3FydW5zbCcgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbkRvd247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js": /*!******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-left.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronLeft)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronLeft\", [\n [\n \"path\",\n {\n d: \"m15 18-6-6 6-6\",\n key: \"1wnfg3\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-left.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaGV2cm9uLWxlZnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UZ3ROaTAySURZdE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25MZWZ0JywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTgtNi02IDYtNicsIGtleTogJzF3bmZnMycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbkxlZnQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js": /*!*******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-right.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronRight\", [\n [\n \"path\",\n {\n d: \"m9 18 6-6-6-6\",\n key: \"mthhwq\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1yaWdodC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDL0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvc3JjL2ljb25zL2NoZXZyb24tcmlnaHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhPQ0EyTFRZdE5pMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvblJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignQ2hldnJvblJpZ2h0JywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxOCA2LTYtNi02Jywga2V5OiAnbXRoaHdxJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uUmlnaHQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-up.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronUp\", [\n [\n \"path\",\n {\n d: \"m18 15-6-6-6 6\",\n key: \"153udz\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFBLENBQU0sY0FBWSxvRUFBaUIsV0FBYTtJQUFDO1FBQUM7UUFBUTtZQUFFLEdBQUcsZ0JBQWtCO1lBQUEsS0FBSyxDQUFTO1FBQUEsQ0FBQztLQUFDO0NBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvc3JjL2ljb25zL2NoZXZyb24tdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGV2cm9uVXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFV0TmkwMkxUWWdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25VcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25VcCcsIFtbJ3BhdGgnLCB7IGQ6ICdtMTggMTUtNi02LTYgNicsIGtleTogJzE1M3VkeicgfV1dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvblVwO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-left.js": /*!*******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevrons-left.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronsLeft)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronsLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronsLeft\", [\n [\n \"path\",\n {\n d: \"m11 17-5-5 5-5\",\n key: \"13zhaf\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 17-5-5 5-5\",\n key: \"h8a8et\"\n }\n ]\n]);\n //# sourceMappingURL=chevrons-left.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDL0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWtCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9zcmMvaWNvbnMvY2hldnJvbnMtbGVmdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXZyb25zTGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ01UY3ROUzAxSURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVGN0TlMwMUlEVXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25zTGVmdCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTExIDE3LTUtNSA1LTUnLCBrZXk6ICcxM3poYWYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTctNS01IDUtNScsIGtleTogJ2g4YThldCcgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNMZWZ0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-left.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-right.js": /*!********************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevrons-right.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronsRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronsRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronsRight\", [\n [\n \"path\",\n {\n d: \"m6 17 5-5-5-5\",\n key: \"xnjwq\"\n }\n ],\n [\n \"path\",\n {\n d: \"m13 17 5-5-5-5\",\n key: \"17xmmf\"\n }\n ]\n]);\n //# sourceMappingURL=chevrons-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxzQkFBZ0IsZ0VBQWdCLENBQUMsZUFBaUI7SUFDdEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtJQUM3QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaGV2cm9ucy1yaWdodC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENoZXZyb25zUmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQXhOeUExTFRVdE5TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeUF4TnlBMUxUVXROUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uc1JpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbignQ2hldnJvbnNSaWdodCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTYgMTcgNS01LTUtNScsIGtleTogJ3huandxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDE3IDUtNS01LTUnLCBrZXk6ICcxN3htbWYnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zUmlnaHQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-right.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js": /*!**********************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronsUpDown)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronsUpDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronsUpDown\", [\n [\n \"path\",\n {\n d: \"m7 15 5 5 5-5\",\n key: \"1hf1tw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m7 9 5-5 5 5\",\n key: \"sgt6xg\"\n }\n ]\n]);\n //# sourceMappingURL=chevrons-up-down.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtdXAtZG93bi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHVCQUFpQixnRUFBZ0IsQ0FBQyxnQkFBa0I7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaGV2cm9ucy11cC1kb3duLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbnNVcERvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QXhOU0ExSURVZ05TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRGtnTlMwMUlEVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtdXAtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zVXBEb3duID0gY3JlYXRlTHVjaWRlSWNvbignQ2hldnJvbnNVcERvd24nLCBbXG4gIFsncGF0aCcsIHsgZDogJ203IDE1IDUgNSA1LTUnLCBrZXk6ICcxaGYxdHcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyA5IDUtNSA1IDUnLCBrZXk6ICdzZ3Q2eGcnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zVXBEb3duO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js": /*!**********************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle-check-big.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CircleCheckBig)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CircleCheckBig = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleCheckBig\", [\n [\n \"path\",\n {\n d: \"M21.801 10A10 10 0 1 1 17 3.335\",\n key: \"yps3ct\"\n }\n ],\n [\n \"path\",\n {\n d: \"m9 11 3 3L22 4\",\n key: \"1pflzl\"\n }\n ]\n]);\n //# sourceMappingURL=circle-check-big.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHVCQUFpQixnRUFBZ0IsQ0FBQyxnQkFBa0I7SUFDeEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1DO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaXJjbGUtY2hlY2stYmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQ2hlY2tCaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVPREF4SURFd1FURXdJREV3SURBZ01TQXhJREUzSURNdU16TTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV4SURNZ00wd3lNaUEwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZWNrLWJpZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUNoZWNrQmlnID0gY3JlYXRlTHVjaWRlSWNvbignQ2lyY2xlQ2hlY2tCaWcnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00yMS44MDEgMTBBMTAgMTAgMCAxIDEgMTcgMy4zMzUnLCBrZXk6ICd5cHMzY3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSAzIDNMMjIgNCcsIGtleTogJzFwZmx6bCcgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQ2hlY2tCaWc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js": /*!*****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle-help.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CircleHelp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CircleHelp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleHelp\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\",\n key: \"1u773s\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 17h.01\",\n key: \"p32p05\"\n }\n ]\n]);\n //# sourceMappingURL=circle-help.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWhlbHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxtQkFBYSxnRUFBZ0IsQ0FBQyxZQUFjO0lBQ2hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF3QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDckU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaXJjbGUtaGVscC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUhlbHBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNHdPU0E1WVRNZ015QXdJREFnTVNBMUxqZ3pJREZqTUNBeUxUTWdNeTB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1oZWxwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlSGVscCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NpcmNsZUhlbHAnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMycsIGtleTogJzF1NzczcycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnLCBrZXk6ICdwMzJwMDUnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUhlbHA7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-off.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle-off.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CircleOff)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CircleOff = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleOff\", [\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8.35 2.69A10 10 0 0 1 21.3 15.65\",\n key: \"1pfsoa\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19.08 19.08A10 10 0 1 1 4.92 4.92\",\n key: \"1ablyi\"\n }\n ]\n]);\n //# sourceMappingURL=circle-off.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW9mZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFxQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNwRSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9zcmMvaWNvbnMvY2lyY2xlLW9mZi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpNMUlESXVOamxCTVRBZ01UQWdNQ0F3SURFZ01qRXVNeUF4TlM0Mk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VNRGdnTVRrdU1EaEJNVEFnTVRBZ01DQXhJREVnTkM0NU1pQTBMamt5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NpcmNsZU9mZicsIFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NScsIGtleTogJzFwZnNvYScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS4wOCAxOS4wOEExMCAxMCAwIDEgMSA0LjkyIDQuOTInLCBrZXk6ICcxYWJseWknIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZU9mZjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-off.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-plus.js": /*!*****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle-plus.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CirclePlus)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CirclePlus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CirclePlus\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h8\",\n key: \"1wcyev\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v8\",\n key: \"napkw2\"\n }\n ]\n]);\n //# sourceMappingURL=circle-plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBsdXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxtQkFBYSxnRUFBZ0IsQ0FBQyxZQUFjO0lBQ2hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDekMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvc3JjL2ljb25zL2NpcmNsZS1wbHVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NpcmNsZVBsdXMnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnLCBrZXk6ICcxd2N5ZXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4Jywga2V5OiAnbmFwa3cyJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQbHVzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-plus.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Circle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Circle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Circle\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n]);\n //# sourceMappingURL=circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9jaXJjbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGUgPSBjcmVhdGVMdWNpZGVJY29uKCdDaXJjbGUnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/ellipsis.js": /*!**************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/ellipsis.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Ellipsis)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Ellipsis = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Ellipsis\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"1\",\n key: \"41hilf\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"19\",\n cy: \"12\",\n r: \"1\",\n key: \"1wjl8i\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"5\",\n cy: \"12\",\n r: \"1\",\n key: \"1pcz8c\"\n }\n ]\n]);\n //# sourceMappingURL=ellipsis.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZWxsaXBzaXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxpQkFBVyxnRUFBZ0IsQ0FBQyxVQUFZO0lBQzVDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFLLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9lbGxpcHNpcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEVsbGlwc2lzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU1SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOU0lnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRWxsaXBzaXMgPSBjcmVhdGVMdWNpZGVJY29uKCdFbGxpcHNpcycsIFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICc0MWhpbGYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTInLCByOiAnMScsIGtleTogJzF3amw4aScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzEyJywgcjogJzEnLCBrZXk6ICcxcGN6OGMnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVsbGlwc2lzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/ellipsis.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js": /*!*************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/eye-off.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EyeOff)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst EyeOff = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\",\n key: \"151rxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n]);\n //# sourceMappingURL=eye-off.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZXllLW9mZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGVBQVMsZ0VBQWdCLENBQUMsUUFBVTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQ1A7S0FDRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUM1QyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9zcmMvaWNvbnMvZXllLW9mZi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEV5ZU9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU56TXpJRFV1TURjMllURXdMamMwTkNBeE1DNDNORFFnTUNBd0lERWdNVEV1TWpBMUlEWXVOVGMxSURFZ01TQXdJREFnTVNBd0lDNDJPVFlnTVRBdU56UTNJREV3TGpjME55QXdJREFnTVMweExqUTBOQ0F5TGpRNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHdPRFFnTVRRdU1UVTRZVE1nTXlBd0lEQWdNUzAwTGpJME1pMDBMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU5EYzVJREUzTGpRNU9XRXhNQzQzTlNBeE1DNDNOU0F3SURBZ01TMHhOUzQwTVRjdE5TNHhOVEVnTVNBeElEQWdNQ0F4SURBdExqWTVOaUF4TUM0M05TQXhNQzQzTlNBd0lEQWdNU0EwTGpRME5pMDFMakUwTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXllLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEV5ZU9mZiA9IGNyZWF0ZUx1Y2lkZUljb24oJ0V5ZU9mZicsIFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OScsXG4gICAgICBrZXk6ICdjdDhlMWYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MicsIGtleTogJzE1MXJ4aCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy40NzkgMTcuNDk5YTEwLjc1IDEwLjc1IDAgMCAxLTE1LjQxNy01LjE1MSAxIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDQuNDQ2LTUuMTQzJyxcbiAgICAgIGtleTogJzEzYmo5YScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcsIGtleTogJzFvb2V3eScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgRXllT2ZmO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/moon.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/moon.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Moon)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Moon = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Moon\", [\n [\n \"path\",\n {\n d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\",\n key: \"a7tn18\"\n }\n ]\n]);\n //# sourceMappingURL=moon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbW9vbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3BFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9tb29uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTW9vblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00yRTJJRFlnTUNBd0lEQWdPU0E1SURrZ09TQXdJREVnTVMwNUxUbGFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTW9vbiA9IGNyZWF0ZUx1Y2lkZUljb24oJ01vb24nLCBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzYTYgNiAwIDAgMCA5IDkgOSA5IDAgMSAxLTktOVonLCBrZXk6ICdhN3RuMTgnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1vb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/moon.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/search.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Search)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Search = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Search\", [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n]);\n //# sourceMappingURL=search.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VhcmNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvc3JjL2ljb25zL3NlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBeU1TMDBMak10TkM0eklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlYXJjaCA9IGNyZWF0ZUx1Y2lkZUljb24oJ1NlYXJjaCcsIFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnLCBrZXk6ICc0ZWo5N3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zLTQuMycsIGtleTogJzFxaWUzcScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/settings-2.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/settings-2.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Settings2)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Settings2 = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Settings2\", [\n [\n \"path\",\n {\n d: \"M20 7h-9\",\n key: \"3s1dr2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14 17H5\",\n key: \"gfn3mx\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"17\",\n cy: \"17\",\n r: \"3\",\n key: \"18b49y\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"7\",\n cy: \"7\",\n r: \"3\",\n key: \"dfmy0x\"\n }\n ]\n]);\n //# sourceMappingURL=settings-2.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2V0dGluZ3MtMi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtJQUN4RDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBSyxDQUFJLE9BQUs7WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtDQUN2RCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9zcmMvaWNvbnMvc2V0dGluZ3MtMi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNldHRpbmdzMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ04yZ3RPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRkSU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeUlnWTNrOUlqRTNJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqY2lJR041UFNJM0lpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2V0dGluZ3MtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNldHRpbmdzMiA9IGNyZWF0ZUx1Y2lkZUljb24oJ1NldHRpbmdzMicsIFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdoLTknLCBrZXk6ICczczFkcjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTdINScsIGtleTogJ2dmbjNteCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxNycsIHI6ICczJywga2V5OiAnMThiNDl5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnNycsIHI6ICczJywga2V5OiAnZGZteTB4JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5nczI7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/settings-2.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/sun.js": /*!*********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/sun.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sun)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Sun = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Sun\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"4\",\n key: \"4exip2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2v2\",\n key: \"tus03m\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 20v2\",\n key: \"1lh1kg\"\n }\n ],\n [\n \"path\",\n {\n d: \"m4.93 4.93 1.41 1.41\",\n key: \"149t6j\"\n }\n ],\n [\n \"path\",\n {\n d: \"m17.66 17.66 1.41 1.41\",\n key: \"ptbguv\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h2\",\n key: \"1t8f8n\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 12h2\",\n key: \"1q8mjw\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6.34 17.66-1.41 1.41\",\n key: \"1m8zz5\"\n }\n ],\n [\n \"path\",\n {\n d: \"m19.07 4.93-1.41 1.41\",\n key: \"1shlcs\"\n }\n ]\n]);\n //# sourceMappingURL=sun.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc3VuLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sWUFBTSxnRUFBZ0IsQ0FBQyxLQUFPO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXdCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNyRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBMEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3ZEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy9zdW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUUXVPVE1nTkM0NU15QXhMalF4SURFdU5ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNMalkySURFM0xqWTJJREV1TkRFZ01TNDBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpNMElERTNMalkyTFRFdU5ERWdNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrdU1EY2dOQzQ1TXkweExqUXhJREV1TkRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN1biA9IGNyZWF0ZUx1Y2lkZUljb24oJ1N1bicsIFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnLCBrZXk6ICc0ZXhpcDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyJywga2V5OiAndHVzMDNtJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdjInLCBrZXk6ICcxbGgxa2cnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyA0LjkzIDEuNDEgMS40MScsIGtleTogJzE0OXQ2aicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNy42NiAxNy42NiAxLjQxIDEuNDEnLCBrZXk6ICdwdGJndXYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyJywga2V5OiAnMXQ4ZjhuJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDInLCBrZXk6ICcxcThtancnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi4zNCAxNy42Ni0xLjQxIDEuNDEnLCBrZXk6ICcxbTh6ejUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgNC45My0xLjQxIDEuNDEnLCBrZXk6ICcxc2hsY3MnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN1bjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/sun.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/timer.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/timer.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Timer)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Timer = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Timer\", [\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"14\",\n y1: \"2\",\n y2: \"2\",\n key: \"14vaq8\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"15\",\n y1: \"14\",\n y2: \"11\",\n key: \"17fdiu\"\n }\n ],\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"14\",\n r: \"8\",\n key: \"1e1u0o\"\n }\n ]\n]);\n //# sourceMappingURL=timer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdGltZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQUssR0FBSztRQUFBLENBQVU7S0FBQTtDQUN6RCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9zcmMvaWNvbnMvdGltZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUaW1lclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRBaUlIZ3lQU0l4TkNJZ2VURTlJaklpSUhreVBTSXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRTFJaUI1TVQwaU1UUWlJSGt5UFNJeE1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRTBJaUJ5UFNJNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpbWVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVGltZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdUaW1lcicsIFtcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxNCcsIHkxOiAnMicsIHkyOiAnMicsIGtleTogJzE0dmFxOCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTUnLCB5MTogJzE0JywgeTI6ICcxMScsIGtleTogJzE3ZmRpdScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNCcsIHI6ICc4Jywga2V5OiAnMWUxdTBvJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBUaW1lcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/timer.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js": /*!*******************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/x.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ X)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst X = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"X\", [\n [\n \"path\",\n {\n d: \"M18 6 6 18\",\n key: \"1bl5f8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 6 12 12\",\n key: \"d8bk6v\"\n }\n ]\n]);\n //# sourceMappingURL=x.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMveC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLFVBQUksZ0VBQWdCLENBQUMsR0FBSztJQUM5QjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL3NyYy9pY29ucy94LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgWFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05pQTJJREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAySURZZ01USWdNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFggPSBjcmVhdGVMdWNpZGVJY29uKCdYJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNiA2IDE4Jywga2V5OiAnMWJsNWY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgNiAxMiAxMicsIGtleTogJ2Q4Yms2dicgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgWDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsb0JBQXNCLFNBQU8sRUFBRSxXQUFZO0FBK0IvQyxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLIiwic291cmNlcyI6WyIvc2hhcmVkL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYW1lbFRvUGFzY2FsIH0gZnJvbSAnLi91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8ga2ViYWIgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEga2ViYWJpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9LZWJhYkNhc2UgPSAoc3RyaW5nOiBzdHJpbmcpID0+XG4gIHN0cmluZy5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBjYW1lbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBjYW1lbGl6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b0NhbWVsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpID0+XG4gIHN0cmluZy5yZXBsYWNlKC9eKFtBLVpdKXxbXFxzLV9dKyhcXHcpL2csIChtYXRjaCwgcDEsIHAyKSA9PlxuICAgIHAyID8gcDIudG9VcHBlckNhc2UoKSA6IHAxLnRvTG93ZXJDYXNlKCksXG4gICk7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIHBhc2NhbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBwYXNjYWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHN0cmluZzogVCk6IENhbWVsVG9QYXNjYWw8VD4gPT4ge1xuICBjb25zdCBjYW1lbENhc2UgPSB0b0NhbWVsQ2FzZShzdHJpbmcpO1xuXG4gIHJldHVybiAoY2FtZWxDYXNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2FtZWxDYXNlLnNsaWNlKDEpKSBhcyBDYW1lbFRvUGFzY2FsPFQ+O1xufTtcblxuLyoqXG4gKiBNZXJnZXMgY2xhc3NlcyBpbnRvIGEgc2luZ2xlIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7YXJyYXl9IGNsYXNzZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgc3RyaW5nIG9mIGNsYXNzZXNcbiAqL1xuZXhwb3J0IGNvbnN0IG1lcmdlQ2xhc3NlcyA9IDxDbGFzc1R5cGUgPSBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiguLi5jbGFzc2VzOiBDbGFzc1R5cGVbXSkgPT5cbiAgY2xhc3Nlc1xuICAgIC5maWx0ZXIoKGNsYXNzTmFtZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBCb29sZWFuKGNsYXNzTmFtZSkgJiZcbiAgICAgICAgKGNsYXNzTmFtZSBhcyBzdHJpbmcpLnRyaW0oKSAhPT0gJycgJiZcbiAgICAgICAgYXJyYXkuaW5kZXhPZihjbGFzc05hbWUpID09PSBpbmRleFxuICAgICAgKTtcbiAgICB9KVxuICAgIC5qb2luKCcgJylcbiAgICAudHJpbSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs": /*!****************************************************!*\ !*** ./node_modules/msw/lib/core/HttpResponse.mjs ***! \****************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HttpResponse: () => (/* binding */ HttpResponse)\n/* harmony export */ });\n/* harmony import */ var _utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/HttpResponse/decorators.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs\");\n\nclass HttpResponse extends Response {\n constructor(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n super(body, responseInit);\n (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.decorateResponse)(this, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(\n responseText,\n responseInit\n );\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/html\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n if (body && !responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, (0,_utils_HttpResponse_decorators_mjs__WEBPACK_IMPORTED_MODULE_0__.normalizeResponseInit)(init));\n }\n}\n\n//# sourceMappingURL=HttpResponse.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvSHR0cFJlc3BvbnNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUc2QztBQUM3QztBQUNBO0FBQ0EseUJBQXlCLHlGQUFxQjtBQUM5QztBQUNBLElBQUksb0ZBQWdCO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsYUFBYTtBQUMvQztBQUNBO0FBQ0EseUJBQXlCLHlGQUFxQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLG1CQUFtQjtBQUM1Qyx5QkFBeUIseUJBQXlCLElBQUksYUFBYTtBQUNuRTtBQUNBO0FBQ0EseUJBQXlCLHlGQUFxQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxhQUFhO0FBQ2pFO0FBQ0E7QUFDQSx5QkFBeUIseUZBQXFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxhQUFhO0FBQzdFO0FBQ0E7QUFDQSx5QkFBeUIseUZBQXFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix5RkFBcUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx5RkFBcUI7QUFDdkQ7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS9IdHRwUmVzcG9uc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRlY29yYXRlUmVzcG9uc2UsXG4gIG5vcm1hbGl6ZVJlc3BvbnNlSW5pdFxufSBmcm9tICcuL3V0aWxzL0h0dHBSZXNwb25zZS9kZWNvcmF0b3JzLm1qcyc7XG5jbGFzcyBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKGJvZHksIGluaXQpIHtcbiAgICBjb25zdCByZXNwb25zZUluaXQgPSBub3JtYWxpemVSZXNwb25zZUluaXQoaW5pdCk7XG4gICAgc3VwZXIoYm9keSwgcmVzcG9uc2VJbml0KTtcbiAgICBkZWNvcmF0ZVJlc3BvbnNlKHRoaXMsIHJlc3BvbnNlSW5pdCk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGBSZXNwb25zZWAgd2l0aCBhIGBDb250ZW50LVR5cGU6IFwidGV4dC9wbGFpblwiYCBib2R5LlxuICAgKiBAZXhhbXBsZVxuICAgKiBIdHRwUmVzcG9uc2UudGV4dCgnaGVsbG8gd29ybGQnKVxuICAgKiBIdHRwUmVzcG9uc2UudGV4dCgnRXJyb3InLCB7IHN0YXR1czogNTAwIH0pXG4gICAqL1xuICBzdGF0aWMgdGV4dChib2R5LCBpbml0KSB7XG4gICAgY29uc3QgcmVzcG9uc2VJbml0ID0gbm9ybWFsaXplUmVzcG9uc2VJbml0KGluaXQpO1xuICAgIGlmICghcmVzcG9uc2VJbml0LmhlYWRlcnMuaGFzKFwiQ29udGVudC1UeXBlXCIpKSB7XG4gICAgICByZXNwb25zZUluaXQuaGVhZGVycy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L3BsYWluXCIpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlSW5pdC5oZWFkZXJzLmhhcyhcIkNvbnRlbnQtTGVuZ3RoXCIpKSB7XG4gICAgICByZXNwb25zZUluaXQuaGVhZGVycy5zZXQoXG4gICAgICAgIFwiQ29udGVudC1MZW5ndGhcIixcbiAgICAgICAgYm9keSA/IG5ldyBCbG9iKFtib2R5XSkuc2l6ZS50b1N0cmluZygpIDogXCIwXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSHR0cFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlSW5pdCk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGBSZXNwb25zZWAgd2l0aCBhIGBDb250ZW50LVR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiYCBib2R5LlxuICAgKiBAZXhhbXBsZVxuICAgKiBIdHRwUmVzcG9uc2UuanNvbih7IGZpcnN0TmFtZTogJ0pvaG4nIH0pXG4gICAqIEh0dHBSZXNwb25zZS5qc29uKHsgZXJyb3I6ICdOb3QgQXV0aG9yaXplZCcgfSwgeyBzdGF0dXM6IDQwMSB9KVxuICAgKi9cbiAgc3RhdGljIGpzb24oYm9keSwgaW5pdCkge1xuICAgIGNvbnN0IHJlc3BvbnNlSW5pdCA9IG5vcm1hbGl6ZVJlc3BvbnNlSW5pdChpbml0KTtcbiAgICBpZiAoIXJlc3BvbnNlSW5pdC5oZWFkZXJzLmhhcyhcIkNvbnRlbnQtVHlwZVwiKSkge1xuICAgICAgcmVzcG9uc2VJbml0LmhlYWRlcnMuc2V0KFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKTtcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2VUZXh0ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgaWYgKCFyZXNwb25zZUluaXQuaGVhZGVycy5oYXMoXCJDb250ZW50LUxlbmd0aFwiKSkge1xuICAgICAgcmVzcG9uc2VJbml0LmhlYWRlcnMuc2V0KFxuICAgICAgICBcIkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgIHJlc3BvbnNlVGV4dCA/IG5ldyBCbG9iKFtyZXNwb25zZVRleHRdKS5zaXplLnRvU3RyaW5nKCkgOiBcIjBcIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIdHRwUmVzcG9uc2UoXG4gICAgICByZXNwb25zZVRleHQsXG4gICAgICByZXNwb25zZUluaXRcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBgUmVzcG9uc2VgIHdpdGggYSBgQ29udGVudC1UeXBlOiBcImFwcGxpY2F0aW9uL3htbFwiYCBib2R5LlxuICAgKiBAZXhhbXBsZVxuICAgKiBIdHRwUmVzcG9uc2UueG1sKGA8dXNlciBuYW1lPVwiSm9oblwiIC8+YClcbiAgICogSHR0cFJlc3BvbnNlLnhtbChgPGFydGljbGUgaWQ9XCJhYmMtMTIzXCIgLz5gLCB7IHN0YXR1czogMjAxIH0pXG4gICAqL1xuICBzdGF0aWMgeG1sKGJvZHksIGluaXQpIHtcbiAgICBjb25zdCByZXNwb25zZUluaXQgPSBub3JtYWxpemVSZXNwb25zZUluaXQoaW5pdCk7XG4gICAgaWYgKCFyZXNwb25zZUluaXQuaGVhZGVycy5oYXMoXCJDb250ZW50LVR5cGVcIikpIHtcbiAgICAgIHJlc3BvbnNlSW5pdC5oZWFkZXJzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQveG1sXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEh0dHBSZXNwb25zZShib2R5LCByZXNwb25zZUluaXQpO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBgUmVzcG9uc2VgIHdpdGggYSBgQ29udGVudC1UeXBlOiBcInRleHQvaHRtbFwiYCBib2R5LlxuICAgKiBAZXhhbXBsZVxuICAgKiBIdHRwUmVzcG9uc2UuaHRtbChgPHAgY2xhc3M9XCJhdXRob3JcIj5KYW5lIERvZTwvcD5gKVxuICAgKiBIdHRwUmVzcG9uc2UuaHRtbChgPG1haW4gaWQ9XCJhYmMtMTIzXCI+TWFpbiB0ZXh0PC9tYWluPmAsIHsgc3RhdHVzOiAyMDEgfSlcbiAgICovXG4gIHN0YXRpYyBodG1sKGJvZHksIGluaXQpIHtcbiAgICBjb25zdCByZXNwb25zZUluaXQgPSBub3JtYWxpemVSZXNwb25zZUluaXQoaW5pdCk7XG4gICAgaWYgKCFyZXNwb25zZUluaXQuaGVhZGVycy5oYXMoXCJDb250ZW50LVR5cGVcIikpIHtcbiAgICAgIHJlc3BvbnNlSW5pdC5oZWFkZXJzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvaHRtbFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIdHRwUmVzcG9uc2UoYm9keSwgcmVzcG9uc2VJbml0KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlIGEgYFJlc3BvbnNlYCB3aXRoIGFuIGBBcnJheUJ1ZmZlcmAgYm9keS5cbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDMpXG4gICAqIGNvbnN0IHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpXG4gICAqIHZpZXcuc2V0KFsxLCAyLCAzXSlcbiAgICpcbiAgICogSHR0cFJlc3BvbnNlLmFycmF5QnVmZmVyKGJ1ZmZlcilcbiAgICovXG4gIHN0YXRpYyBhcnJheUJ1ZmZlcihib2R5LCBpbml0KSB7XG4gICAgY29uc3QgcmVzcG9uc2VJbml0ID0gbm9ybWFsaXplUmVzcG9uc2VJbml0KGluaXQpO1xuICAgIGlmICghcmVzcG9uc2VJbml0LmhlYWRlcnMuaGFzKFwiQ29udGVudC1UeXBlXCIpKSB7XG4gICAgICByZXNwb25zZUluaXQuaGVhZGVycy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIik7XG4gICAgfVxuICAgIGlmIChib2R5ICYmICFyZXNwb25zZUluaXQuaGVhZGVycy5oYXMoXCJDb250ZW50LUxlbmd0aFwiKSkge1xuICAgICAgcmVzcG9uc2VJbml0LmhlYWRlcnMuc2V0KFwiQ29udGVudC1MZW5ndGhcIiwgYm9keS5ieXRlTGVuZ3RoLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEh0dHBSZXNwb25zZShib2R5LCByZXNwb25zZUluaXQpO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBgUmVzcG9uc2VgIHdpdGggYSBgRm9ybURhdGFgIGJvZHkuXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGRhdGEgPSBuZXcgRm9ybURhdGEoKVxuICAgKiBkYXRhLnNldCgnbmFtZScsICdBbGljZScpXG4gICAqXG4gICAqIEh0dHBSZXNwb25zZS5mb3JtRGF0YShkYXRhKVxuICAgKi9cbiAgc3RhdGljIGZvcm1EYXRhKGJvZHksIGluaXQpIHtcbiAgICByZXR1cm4gbmV3IEh0dHBSZXNwb25zZShib2R5LCBub3JtYWxpemVSZXNwb25zZUluaXQoaW5pdCkpO1xuICB9XG59XG5leHBvcnQge1xuICBIdHRwUmVzcG9uc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IdHRwUmVzcG9uc2UubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/HttpResponse.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/handlers/HttpHandler.mjs": /*!************************************************************!*\ !*** ./node_modules/msw/lib/core/handlers/HttpHandler.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HttpHandler: () => (/* binding */ HttpHandler),\n/* harmony export */ HttpMethods: () => (/* binding */ HttpMethods)\n/* harmony export */ });\n/* harmony import */ var _utils_internal_devUtils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/internal/devUtils.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/devUtils.mjs\");\n/* harmony import */ var _utils_internal_isStringEqual_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/internal/isStringEqual.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isStringEqual.mjs\");\n/* harmony import */ var _utils_logging_getStatusCodeColor_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/logging/getStatusCodeColor.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs\");\n/* harmony import */ var _utils_logging_getTimestamp_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/logging/getTimestamp.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getTimestamp.mjs\");\n/* harmony import */ var _utils_logging_serializeRequest_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/logging/serializeRequest.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeRequest.mjs\");\n/* harmony import */ var _utils_logging_serializeResponse_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/logging/serializeResponse.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeResponse.mjs\");\n/* harmony import */ var _utils_matching_matchRequestUrl_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/matching/matchRequestUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs\");\n/* harmony import */ var _utils_request_toPublicUrl_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/request/toPublicUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/request/toPublicUrl.mjs\");\n/* harmony import */ var _utils_request_getRequestCookies_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/request/getRequestCookies.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/request/getRequestCookies.mjs\");\n/* harmony import */ var _utils_url_cleanUrl_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/url/cleanUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/url/cleanUrl.mjs\");\n/* harmony import */ var _RequestHandler_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RequestHandler.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/handlers/RequestHandler.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nvar HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {\n HttpMethods2[\"HEAD\"] = \"HEAD\";\n HttpMethods2[\"GET\"] = \"GET\";\n HttpMethods2[\"POST\"] = \"POST\";\n HttpMethods2[\"PUT\"] = \"PUT\";\n HttpMethods2[\"PATCH\"] = \"PATCH\";\n HttpMethods2[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethods2[\"DELETE\"] = \"DELETE\";\n return HttpMethods2;\n})(HttpMethods || {});\nclass HttpHandler extends _RequestHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.RequestHandler {\n constructor(method, path, resolver, options) {\n super({\n info: {\n header: `${method} ${path}`,\n path,\n method\n },\n resolver,\n options\n });\n this.checkRedundantQueryParameters();\n }\n checkRedundantQueryParameters() {\n const { method, path } = this.info;\n if (path instanceof RegExp) {\n return;\n }\n const url = (0,_utils_url_cleanUrl_mjs__WEBPACK_IMPORTED_MODULE_1__.cleanUrl)(path);\n if (url === path) {\n return;\n }\n const searchParams = (0,_utils_url_cleanUrl_mjs__WEBPACK_IMPORTED_MODULE_1__.getSearchParams)(path);\n const queryParams = [];\n searchParams.forEach((_, paramName) => {\n queryParams.push(paramName);\n });\n _utils_internal_devUtils_mjs__WEBPACK_IMPORTED_MODULE_2__.devUtils.warn(\n `Found a redundant usage of query parameters in the request handler URL for \"${method} ${path}\". Please match against a path instead and access query parameters using \"new URL(request.url).searchParams\" instead. Learn more: https://mswjs.io/docs/recipes/query-parameters`\n );\n }\n async parse(args) {\n const url = new URL(args.request.url);\n const match = (0,_utils_matching_matchRequestUrl_mjs__WEBPACK_IMPORTED_MODULE_3__.matchRequestUrl)(\n url,\n this.info.path,\n args.resolutionContext?.baseUrl\n );\n const cookies = (0,_utils_request_getRequestCookies_mjs__WEBPACK_IMPORTED_MODULE_4__.getAllRequestCookies)(args.request);\n return {\n match,\n cookies\n };\n }\n predicate(args) {\n const hasMatchingMethod = this.matchMethod(args.request.method);\n const hasMatchingUrl = args.parsedResult.match.matches;\n return hasMatchingMethod && hasMatchingUrl;\n }\n matchMethod(actualMethod) {\n return this.info.method instanceof RegExp ? this.info.method.test(actualMethod) : (0,_utils_internal_isStringEqual_mjs__WEBPACK_IMPORTED_MODULE_5__.isStringEqual)(this.info.method, actualMethod);\n }\n extendResolverArgs(args) {\n return {\n params: args.parsedResult.match?.params || {},\n cookies: args.parsedResult.cookies\n };\n }\n async log(args) {\n const publicUrl = (0,_utils_request_toPublicUrl_mjs__WEBPACK_IMPORTED_MODULE_6__.toPublicUrl)(args.request.url);\n const loggedRequest = await (0,_utils_logging_serializeRequest_mjs__WEBPACK_IMPORTED_MODULE_7__.serializeRequest)(args.request);\n const loggedResponse = await (0,_utils_logging_serializeResponse_mjs__WEBPACK_IMPORTED_MODULE_8__.serializeResponse)(args.response);\n const statusColor = (0,_utils_logging_getStatusCodeColor_mjs__WEBPACK_IMPORTED_MODULE_9__.getStatusCodeColor)(loggedResponse.status);\n console.groupCollapsed(\n _utils_internal_devUtils_mjs__WEBPACK_IMPORTED_MODULE_2__.devUtils.formatMessage(\n `${(0,_utils_logging_getTimestamp_mjs__WEBPACK_IMPORTED_MODULE_10__.getTimestamp)()} ${args.request.method} ${publicUrl} (%c${loggedResponse.status} ${loggedResponse.statusText}%c)`\n ),\n `color:${statusColor}`,\n \"color:inherit\"\n );\n console.log(\"Request\", loggedRequest);\n console.log(\"Handler:\", this);\n console.log(\"Response\", loggedResponse);\n console.groupEnd();\n }\n}\n\n//# sourceMappingURL=HttpHandler.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvaGFuZGxlcnMvSHR0cEhhbmRsZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEQ7QUFDVTtBQUNTO0FBQ1o7QUFDUTtBQUNFO0FBRzVCO0FBQ2dCO0FBQ2U7QUFDUjtBQUd4QztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG1CQUFtQjtBQUNwQiwwQkFBMEIsK0RBQWM7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFFBQVEsRUFBRSxLQUFLO0FBQ2xDO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlFQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix3RUFBZTtBQUN4QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSxrRUFBUTtBQUNaLHFGQUFxRixRQUFRLEVBQUUsS0FBSztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixvRkFBZTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwRkFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNGQUFzRixnRkFBYTtBQUNuRztBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsMkVBQVc7QUFDakMsZ0NBQWdDLHFGQUFnQjtBQUNoRCxpQ0FBaUMsdUZBQWlCO0FBQ2xELHdCQUF3Qix5RkFBa0I7QUFDMUM7QUFDQSxNQUFNLGtFQUFRO0FBQ2QsV0FBVyw4RUFBWSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxLQUFLLHVCQUF1QixFQUFFLDBCQUEwQjtBQUN2SDtBQUNBLGVBQWUsWUFBWTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbXN3L2xpYi9jb3JlL2hhbmRsZXJzL0h0dHBIYW5kbGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXZVdGlscyB9IGZyb20gJy4uL3V0aWxzL2ludGVybmFsL2RldlV0aWxzLm1qcyc7XG5pbXBvcnQgeyBpc1N0cmluZ0VxdWFsIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwvaXNTdHJpbmdFcXVhbC5tanMnO1xuaW1wb3J0IHsgZ2V0U3RhdHVzQ29kZUNvbG9yIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2luZy9nZXRTdGF0dXNDb2RlQ29sb3IubWpzJztcbmltcG9ydCB7IGdldFRpbWVzdGFtcCB9IGZyb20gJy4uL3V0aWxzL2xvZ2dpbmcvZ2V0VGltZXN0YW1wLm1qcyc7XG5pbXBvcnQgeyBzZXJpYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2luZy9zZXJpYWxpemVSZXF1ZXN0Lm1qcyc7XG5pbXBvcnQgeyBzZXJpYWxpemVSZXNwb25zZSB9IGZyb20gJy4uL3V0aWxzL2xvZ2dpbmcvc2VyaWFsaXplUmVzcG9uc2UubWpzJztcbmltcG9ydCB7XG4gIG1hdGNoUmVxdWVzdFVybFxufSBmcm9tICcuLi91dGlscy9tYXRjaGluZy9tYXRjaFJlcXVlc3RVcmwubWpzJztcbmltcG9ydCB7IHRvUHVibGljVXJsIH0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdC90b1B1YmxpY1VybC5tanMnO1xuaW1wb3J0IHsgZ2V0QWxsUmVxdWVzdENvb2tpZXMgfSBmcm9tICcuLi91dGlscy9yZXF1ZXN0L2dldFJlcXVlc3RDb29raWVzLm1qcyc7XG5pbXBvcnQgeyBjbGVhblVybCwgZ2V0U2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMvdXJsL2NsZWFuVXJsLm1qcyc7XG5pbXBvcnQge1xuICBSZXF1ZXN0SGFuZGxlclxufSBmcm9tICcuL1JlcXVlc3RIYW5kbGVyLm1qcyc7XG52YXIgSHR0cE1ldGhvZHMgPSAvKiBAX19QVVJFX18gKi8gKChIdHRwTWV0aG9kczIpID0+IHtcbiAgSHR0cE1ldGhvZHMyW1wiSEVBRFwiXSA9IFwiSEVBRFwiO1xuICBIdHRwTWV0aG9kczJbXCJHRVRcIl0gPSBcIkdFVFwiO1xuICBIdHRwTWV0aG9kczJbXCJQT1NUXCJdID0gXCJQT1NUXCI7XG4gIEh0dHBNZXRob2RzMltcIlBVVFwiXSA9IFwiUFVUXCI7XG4gIEh0dHBNZXRob2RzMltcIlBBVENIXCJdID0gXCJQQVRDSFwiO1xuICBIdHRwTWV0aG9kczJbXCJPUFRJT05TXCJdID0gXCJPUFRJT05TXCI7XG4gIEh0dHBNZXRob2RzMltcIkRFTEVURVwiXSA9IFwiREVMRVRFXCI7XG4gIHJldHVybiBIdHRwTWV0aG9kczI7XG59KShIdHRwTWV0aG9kcyB8fCB7fSk7XG5jbGFzcyBIdHRwSGFuZGxlciBleHRlbmRzIFJlcXVlc3RIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IobWV0aG9kLCBwYXRoLCByZXNvbHZlciwgb3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGluZm86IHtcbiAgICAgICAgaGVhZGVyOiBgJHttZXRob2R9ICR7cGF0aH1gLFxuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2RcbiAgICAgIH0sXG4gICAgICByZXNvbHZlcixcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcbiAgICB0aGlzLmNoZWNrUmVkdW5kYW50UXVlcnlQYXJhbWV0ZXJzKCk7XG4gIH1cbiAgY2hlY2tSZWR1bmRhbnRRdWVyeVBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgeyBtZXRob2QsIHBhdGggfSA9IHRoaXMuaW5mbztcbiAgICBpZiAocGF0aCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSBjbGVhblVybChwYXRoKTtcbiAgICBpZiAodXJsID09PSBwYXRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IGdldFNlYXJjaFBhcmFtcyhwYXRoKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IFtdO1xuICAgIHNlYXJjaFBhcmFtcy5mb3JFYWNoKChfLCBwYXJhbU5hbWUpID0+IHtcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2gocGFyYW1OYW1lKTtcbiAgICB9KTtcbiAgICBkZXZVdGlscy53YXJuKFxuICAgICAgYEZvdW5kIGEgcmVkdW5kYW50IHVzYWdlIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgaW4gdGhlIHJlcXVlc3QgaGFuZGxlciBVUkwgZm9yIFwiJHttZXRob2R9ICR7cGF0aH1cIi4gUGxlYXNlIG1hdGNoIGFnYWluc3QgYSBwYXRoIGluc3RlYWQgYW5kIGFjY2VzcyBxdWVyeSBwYXJhbWV0ZXJzIHVzaW5nIFwibmV3IFVSTChyZXF1ZXN0LnVybCkuc2VhcmNoUGFyYW1zXCIgaW5zdGVhZC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9tc3dqcy5pby9kb2NzL3JlY2lwZXMvcXVlcnktcGFyYW1ldGVyc2BcbiAgICApO1xuICB9XG4gIGFzeW5jIHBhcnNlKGFyZ3MpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGFyZ3MucmVxdWVzdC51cmwpO1xuICAgIGNvbnN0IG1hdGNoID0gbWF0Y2hSZXF1ZXN0VXJsKFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5pbmZvLnBhdGgsXG4gICAgICBhcmdzLnJlc29sdXRpb25Db250ZXh0Py5iYXNlVXJsXG4gICAgKTtcbiAgICBjb25zdCBjb29raWVzID0gZ2V0QWxsUmVxdWVzdENvb2tpZXMoYXJncy5yZXF1ZXN0KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWF0Y2gsXG4gICAgICBjb29raWVzXG4gICAgfTtcbiAgfVxuICBwcmVkaWNhdGUoYXJncykge1xuICAgIGNvbnN0IGhhc01hdGNoaW5nTWV0aG9kID0gdGhpcy5tYXRjaE1ldGhvZChhcmdzLnJlcXVlc3QubWV0aG9kKTtcbiAgICBjb25zdCBoYXNNYXRjaGluZ1VybCA9IGFyZ3MucGFyc2VkUmVzdWx0Lm1hdGNoLm1hdGNoZXM7XG4gICAgcmV0dXJuIGhhc01hdGNoaW5nTWV0aG9kICYmIGhhc01hdGNoaW5nVXJsO1xuICB9XG4gIG1hdGNoTWV0aG9kKGFjdHVhbE1ldGhvZCkge1xuICAgIHJldHVybiB0aGlzLmluZm8ubWV0aG9kIGluc3RhbmNlb2YgUmVnRXhwID8gdGhpcy5pbmZvLm1ldGhvZC50ZXN0KGFjdHVhbE1ldGhvZCkgOiBpc1N0cmluZ0VxdWFsKHRoaXMuaW5mby5tZXRob2QsIGFjdHVhbE1ldGhvZCk7XG4gIH1cbiAgZXh0ZW5kUmVzb2x2ZXJBcmdzKGFyZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW1zOiBhcmdzLnBhcnNlZFJlc3VsdC5tYXRjaD8ucGFyYW1zIHx8IHt9LFxuICAgICAgY29va2llczogYXJncy5wYXJzZWRSZXN1bHQuY29va2llc1xuICAgIH07XG4gIH1cbiAgYXN5bmMgbG9nKGFyZ3MpIHtcbiAgICBjb25zdCBwdWJsaWNVcmwgPSB0b1B1YmxpY1VybChhcmdzLnJlcXVlc3QudXJsKTtcbiAgICBjb25zdCBsb2dnZWRSZXF1ZXN0ID0gYXdhaXQgc2VyaWFsaXplUmVxdWVzdChhcmdzLnJlcXVlc3QpO1xuICAgIGNvbnN0IGxvZ2dlZFJlc3BvbnNlID0gYXdhaXQgc2VyaWFsaXplUmVzcG9uc2UoYXJncy5yZXNwb25zZSk7XG4gICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBnZXRTdGF0dXNDb2RlQ29sb3IobG9nZ2VkUmVzcG9uc2Uuc3RhdHVzKTtcbiAgICBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKFxuICAgICAgZGV2VXRpbHMuZm9ybWF0TWVzc2FnZShcbiAgICAgICAgYCR7Z2V0VGltZXN0YW1wKCl9ICR7YXJncy5yZXF1ZXN0Lm1ldGhvZH0gJHtwdWJsaWNVcmx9ICglYyR7bG9nZ2VkUmVzcG9uc2Uuc3RhdHVzfSAke2xvZ2dlZFJlc3BvbnNlLnN0YXR1c1RleHR9JWMpYFxuICAgICAgKSxcbiAgICAgIGBjb2xvcjoke3N0YXR1c0NvbG9yfWAsXG4gICAgICBcImNvbG9yOmluaGVyaXRcIlxuICAgICk7XG4gICAgY29uc29sZS5sb2coXCJSZXF1ZXN0XCIsIGxvZ2dlZFJlcXVlc3QpO1xuICAgIGNvbnNvbGUubG9nKFwiSGFuZGxlcjpcIiwgdGhpcyk7XG4gICAgY29uc29sZS5sb2coXCJSZXNwb25zZVwiLCBsb2dnZWRSZXNwb25zZSk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuICB9XG59XG5leHBvcnQge1xuICBIdHRwSGFuZGxlcixcbiAgSHR0cE1ldGhvZHNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IdHRwSGFuZGxlci5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/handlers/HttpHandler.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/handlers/RequestHandler.mjs": /*!***************************************************************!*\ !*** ./node_modules/msw/lib/core/handlers/RequestHandler.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestHandler: () => (/* binding */ RequestHandler)\n/* harmony export */ });\n/* harmony import */ var _utils_internal_getCallFrame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/internal/getCallFrame.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/getCallFrame.mjs\");\n/* harmony import */ var _utils_internal_isIterable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/internal/isIterable.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isIterable.mjs\");\n\n\nclass RequestHandler {\n static cache = /* @__PURE__ */ new WeakMap();\n __kind;\n info;\n /**\n * Indicates whether this request handler has been used\n * (its resolver has successfully executed).\n */\n isUsed;\n resolver;\n resolverIterator;\n resolverIteratorResult;\n options;\n constructor(args) {\n this.resolver = args.resolver;\n this.options = args.options;\n const callFrame = (0,_utils_internal_getCallFrame_mjs__WEBPACK_IMPORTED_MODULE_0__.getCallFrame)(new Error());\n this.info = {\n ...args.info,\n callFrame\n };\n this.isUsed = false;\n this.__kind = \"RequestHandler\";\n }\n /**\n * Parse the intercepted request to extract additional information from it.\n * Parsed result is then exposed to other methods of this request handler.\n */\n async parse(_args) {\n return {};\n }\n /**\n * Test if this handler matches the given request.\n *\n * This method is not used internally but is exposed\n * as a convenience method for consumers writing custom\n * handlers.\n */\n async test(args) {\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n return this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n }\n extendResolverArgs(_args) {\n return {};\n }\n // Clone the request instance before it's passed to the handler phases\n // and the response resolver so we can always read it for logging.\n // We only clone it once per request to avoid unnecessary overhead.\n cloneRequestOrGetFromCache(request) {\n const existingClone = RequestHandler.cache.get(request);\n if (typeof existingClone !== \"undefined\") {\n return existingClone;\n }\n const clonedRequest = request.clone();\n RequestHandler.cache.set(request, clonedRequest);\n return clonedRequest;\n }\n /**\n * Execute this request handler and produce a mocked response\n * using the given resolver function.\n */\n async run(args) {\n if (this.isUsed && this.options?.once) {\n return null;\n }\n const requestClone = this.cloneRequestOrGetFromCache(args.request);\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n const shouldInterceptRequest = this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n if (!shouldInterceptRequest) {\n return null;\n }\n if (this.isUsed && this.options?.once) {\n return null;\n }\n this.isUsed = true;\n const executeResolver = this.wrapResolver(this.resolver);\n const resolverExtras = this.extendResolverArgs({\n request: args.request,\n parsedResult\n });\n const mockedResponsePromise = executeResolver({\n ...resolverExtras,\n requestId: args.requestId,\n request: args.request\n }).catch((errorOrResponse) => {\n if (errorOrResponse instanceof Response) {\n return errorOrResponse;\n }\n throw errorOrResponse;\n });\n const mockedResponse = await mockedResponsePromise;\n const executionResult = this.createExecutionResult({\n // Pass the cloned request to the result so that logging\n // and other consumers could read its body once more.\n request: requestClone,\n requestId: args.requestId,\n response: mockedResponse,\n parsedResult\n });\n return executionResult;\n }\n wrapResolver(resolver) {\n return async (info) => {\n if (!this.resolverIterator) {\n const result = await resolver(info);\n if (!(0,_utils_internal_isIterable_mjs__WEBPACK_IMPORTED_MODULE_1__.isIterable)(result)) {\n return result;\n }\n this.resolverIterator = Symbol.iterator in result ? result[Symbol.iterator]() : result[Symbol.asyncIterator]();\n }\n this.isUsed = false;\n const { done, value } = await this.resolverIterator.next();\n const nextResponse = await value;\n if (nextResponse) {\n this.resolverIteratorResult = nextResponse.clone();\n }\n if (done) {\n this.isUsed = true;\n return this.resolverIteratorResult?.clone();\n }\n return nextResponse;\n };\n }\n createExecutionResult(args) {\n return {\n handler: this,\n request: args.request,\n requestId: args.requestId,\n response: args.response,\n parsedResult: args.parsedResult\n };\n }\n}\n\n//# sourceMappingURL=RequestHandler.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvaGFuZGxlcnMvUmVxdWVzdEhhbmRsZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFrRTtBQUd4QjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw4RUFBWTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwwRUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxjQUFjO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS9oYW5kbGVycy9SZXF1ZXN0SGFuZGxlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Q2FsbEZyYW1lIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwvZ2V0Q2FsbEZyYW1lLm1qcyc7XG5pbXBvcnQge1xuICBpc0l0ZXJhYmxlXG59IGZyb20gJy4uL3V0aWxzL2ludGVybmFsL2lzSXRlcmFibGUubWpzJztcbmNsYXNzIFJlcXVlc3RIYW5kbGVyIHtcbiAgc3RhdGljIGNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG4gIF9fa2luZDtcbiAgaW5mbztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgcmVxdWVzdCBoYW5kbGVyIGhhcyBiZWVuIHVzZWRcbiAgICogKGl0cyByZXNvbHZlciBoYXMgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkKS5cbiAgICovXG4gIGlzVXNlZDtcbiAgcmVzb2x2ZXI7XG4gIHJlc29sdmVySXRlcmF0b3I7XG4gIHJlc29sdmVySXRlcmF0b3JSZXN1bHQ7XG4gIG9wdGlvbnM7XG4gIGNvbnN0cnVjdG9yKGFyZ3MpIHtcbiAgICB0aGlzLnJlc29sdmVyID0gYXJncy5yZXNvbHZlcjtcbiAgICB0aGlzLm9wdGlvbnMgPSBhcmdzLm9wdGlvbnM7XG4gICAgY29uc3QgY2FsbEZyYW1lID0gZ2V0Q2FsbEZyYW1lKG5ldyBFcnJvcigpKTtcbiAgICB0aGlzLmluZm8gPSB7XG4gICAgICAuLi5hcmdzLmluZm8sXG4gICAgICBjYWxsRnJhbWVcbiAgICB9O1xuICAgIHRoaXMuaXNVc2VkID0gZmFsc2U7XG4gICAgdGhpcy5fX2tpbmQgPSBcIlJlcXVlc3RIYW5kbGVyXCI7XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSBpbnRlcmNlcHRlZCByZXF1ZXN0IHRvIGV4dHJhY3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcm9tIGl0LlxuICAgKiBQYXJzZWQgcmVzdWx0IGlzIHRoZW4gZXhwb3NlZCB0byBvdGhlciBtZXRob2RzIG9mIHRoaXMgcmVxdWVzdCBoYW5kbGVyLlxuICAgKi9cbiAgYXN5bmMgcGFyc2UoX2FyZ3MpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgLyoqXG4gICAqIFRlc3QgaWYgdGhpcyBoYW5kbGVyIG1hdGNoZXMgdGhlIGdpdmVuIHJlcXVlc3QuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIG5vdCB1c2VkIGludGVybmFsbHkgYnV0IGlzIGV4cG9zZWRcbiAgICogYXMgYSBjb252ZW5pZW5jZSBtZXRob2QgZm9yIGNvbnN1bWVycyB3cml0aW5nIGN1c3RvbVxuICAgKiBoYW5kbGVycy5cbiAgICovXG4gIGFzeW5jIHRlc3QoYXJncykge1xuICAgIGNvbnN0IHBhcnNlZFJlc3VsdCA9IGF3YWl0IHRoaXMucGFyc2Uoe1xuICAgICAgcmVxdWVzdDogYXJncy5yZXF1ZXN0LFxuICAgICAgcmVzb2x1dGlvbkNvbnRleHQ6IGFyZ3MucmVzb2x1dGlvbkNvbnRleHRcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5wcmVkaWNhdGUoe1xuICAgICAgcmVxdWVzdDogYXJncy5yZXF1ZXN0LFxuICAgICAgcGFyc2VkUmVzdWx0LFxuICAgICAgcmVzb2x1dGlvbkNvbnRleHQ6IGFyZ3MucmVzb2x1dGlvbkNvbnRleHRcbiAgICB9KTtcbiAgfVxuICBleHRlbmRSZXNvbHZlckFyZ3MoX2FyZ3MpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgaW5zdGFuY2UgYmVmb3JlIGl0J3MgcGFzc2VkIHRvIHRoZSBoYW5kbGVyIHBoYXNlc1xuICAvLyBhbmQgdGhlIHJlc3BvbnNlIHJlc29sdmVyIHNvIHdlIGNhbiBhbHdheXMgcmVhZCBpdCBmb3IgbG9nZ2luZy5cbiAgLy8gV2Ugb25seSBjbG9uZSBpdCBvbmNlIHBlciByZXF1ZXN0IHRvIGF2b2lkIHVubmVjZXNzYXJ5IG92ZXJoZWFkLlxuICBjbG9uZVJlcXVlc3RPckdldEZyb21DYWNoZShyZXF1ZXN0KSB7XG4gICAgY29uc3QgZXhpc3RpbmdDbG9uZSA9IFJlcXVlc3RIYW5kbGVyLmNhY2hlLmdldChyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nQ2xvbmUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiBleGlzdGluZ0Nsb25lO1xuICAgIH1cbiAgICBjb25zdCBjbG9uZWRSZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSgpO1xuICAgIFJlcXVlc3RIYW5kbGVyLmNhY2hlLnNldChyZXF1ZXN0LCBjbG9uZWRSZXF1ZXN0KTtcbiAgICByZXR1cm4gY2xvbmVkUmVxdWVzdDtcbiAgfVxuICAvKipcbiAgICogRXhlY3V0ZSB0aGlzIHJlcXVlc3QgaGFuZGxlciBhbmQgcHJvZHVjZSBhIG1vY2tlZCByZXNwb25zZVxuICAgKiB1c2luZyB0aGUgZ2l2ZW4gcmVzb2x2ZXIgZnVuY3Rpb24uXG4gICAqL1xuICBhc3luYyBydW4oYXJncykge1xuICAgIGlmICh0aGlzLmlzVXNlZCAmJiB0aGlzLm9wdGlvbnM/Lm9uY2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0Q2xvbmUgPSB0aGlzLmNsb25lUmVxdWVzdE9yR2V0RnJvbUNhY2hlKGFyZ3MucmVxdWVzdCk7XG4gICAgY29uc3QgcGFyc2VkUmVzdWx0ID0gYXdhaXQgdGhpcy5wYXJzZSh7XG4gICAgICByZXF1ZXN0OiBhcmdzLnJlcXVlc3QsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogYXJncy5yZXNvbHV0aW9uQ29udGV4dFxuICAgIH0pO1xuICAgIGNvbnN0IHNob3VsZEludGVyY2VwdFJlcXVlc3QgPSB0aGlzLnByZWRpY2F0ZSh7XG4gICAgICByZXF1ZXN0OiBhcmdzLnJlcXVlc3QsXG4gICAgICBwYXJzZWRSZXN1bHQsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogYXJncy5yZXNvbHV0aW9uQ29udGV4dFxuICAgIH0pO1xuICAgIGlmICghc2hvdWxkSW50ZXJjZXB0UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzVXNlZCAmJiB0aGlzLm9wdGlvbnM/Lm9uY2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0aGlzLmlzVXNlZCA9IHRydWU7XG4gICAgY29uc3QgZXhlY3V0ZVJlc29sdmVyID0gdGhpcy53cmFwUmVzb2x2ZXIodGhpcy5yZXNvbHZlcik7XG4gICAgY29uc3QgcmVzb2x2ZXJFeHRyYXMgPSB0aGlzLmV4dGVuZFJlc29sdmVyQXJncyh7XG4gICAgICByZXF1ZXN0OiBhcmdzLnJlcXVlc3QsXG4gICAgICBwYXJzZWRSZXN1bHRcbiAgICB9KTtcbiAgICBjb25zdCBtb2NrZWRSZXNwb25zZVByb21pc2UgPSBleGVjdXRlUmVzb2x2ZXIoe1xuICAgICAgLi4ucmVzb2x2ZXJFeHRyYXMsXG4gICAgICByZXF1ZXN0SWQ6IGFyZ3MucmVxdWVzdElkLFxuICAgICAgcmVxdWVzdDogYXJncy5yZXF1ZXN0XG4gICAgfSkuY2F0Y2goKGVycm9yT3JSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yT3JSZXNwb25zZSBpbnN0YW5jZW9mIFJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBlcnJvck9yUmVzcG9uc2U7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvck9yUmVzcG9uc2U7XG4gICAgfSk7XG4gICAgY29uc3QgbW9ja2VkUmVzcG9uc2UgPSBhd2FpdCBtb2NrZWRSZXNwb25zZVByb21pc2U7XG4gICAgY29uc3QgZXhlY3V0aW9uUmVzdWx0ID0gdGhpcy5jcmVhdGVFeGVjdXRpb25SZXN1bHQoe1xuICAgICAgLy8gUGFzcyB0aGUgY2xvbmVkIHJlcXVlc3QgdG8gdGhlIHJlc3VsdCBzbyB0aGF0IGxvZ2dpbmdcbiAgICAgIC8vIGFuZCBvdGhlciBjb25zdW1lcnMgY291bGQgcmVhZCBpdHMgYm9keSBvbmNlIG1vcmUuXG4gICAgICByZXF1ZXN0OiByZXF1ZXN0Q2xvbmUsXG4gICAgICByZXF1ZXN0SWQ6IGFyZ3MucmVxdWVzdElkLFxuICAgICAgcmVzcG9uc2U6IG1vY2tlZFJlc3BvbnNlLFxuICAgICAgcGFyc2VkUmVzdWx0XG4gICAgfSk7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgfVxuICB3cmFwUmVzb2x2ZXIocmVzb2x2ZXIpIHtcbiAgICByZXR1cm4gYXN5bmMgKGluZm8pID0+IHtcbiAgICAgIGlmICghdGhpcy5yZXNvbHZlckl0ZXJhdG9yKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc29sdmVyKGluZm8pO1xuICAgICAgICBpZiAoIWlzSXRlcmFibGUocmVzdWx0KSkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNvbHZlckl0ZXJhdG9yID0gU3ltYm9sLml0ZXJhdG9yIGluIHJlc3VsdCA/IHJlc3VsdFtTeW1ib2wuaXRlcmF0b3JdKCkgOiByZXN1bHRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlzVXNlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgdGhpcy5yZXNvbHZlckl0ZXJhdG9yLm5leHQoKTtcbiAgICAgIGNvbnN0IG5leHRSZXNwb25zZSA9IGF3YWl0IHZhbHVlO1xuICAgICAgaWYgKG5leHRSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnJlc29sdmVySXRlcmF0b3JSZXN1bHQgPSBuZXh0UmVzcG9uc2UuY2xvbmUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChkb25lKSB7XG4gICAgICAgIHRoaXMuaXNVc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZXJJdGVyYXRvclJlc3VsdD8uY2xvbmUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0UmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuICBjcmVhdGVFeGVjdXRpb25SZXN1bHQoYXJncykge1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGVyOiB0aGlzLFxuICAgICAgcmVxdWVzdDogYXJncy5yZXF1ZXN0LFxuICAgICAgcmVxdWVzdElkOiBhcmdzLnJlcXVlc3RJZCxcbiAgICAgIHJlc3BvbnNlOiBhcmdzLnJlc3BvbnNlLFxuICAgICAgcGFyc2VkUmVzdWx0OiBhcmdzLnBhcnNlZFJlc3VsdFxuICAgIH07XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFJlcXVlc3RIYW5kbGVyXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVxdWVzdEhhbmRsZXIubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/handlers/RequestHandler.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/http.mjs": /*!********************************************!*\ !*** ./node_modules/msw/lib/core/http.mjs ***! \********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ http: () => (/* binding */ http)\n/* harmony export */ });\n/* harmony import */ var _handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handlers/HttpHandler.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/handlers/HttpHandler.mjs\");\n\nfunction createHttpHandler(method) {\n return (path, resolver, options = {}) => {\n return new _handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpHandler(method, path, resolver, options);\n };\n}\nconst http = {\n all: createHttpHandler(/.+/),\n head: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.HEAD),\n get: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.GET),\n post: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.POST),\n put: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.PUT),\n delete: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.DELETE),\n patch: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.PATCH),\n options: createHttpHandler(_handlers_HttpHandler_mjs__WEBPACK_IMPORTED_MODULE_0__.HttpMethods.OPTIONS)\n};\n\n//# sourceMappingURL=http.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvaHR0cC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHb0M7QUFDcEM7QUFDQSxzQ0FBc0M7QUFDdEMsZUFBZSxrRUFBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixrRUFBVztBQUNyQyx5QkFBeUIsa0VBQVc7QUFDcEMsMEJBQTBCLGtFQUFXO0FBQ3JDLHlCQUF5QixrRUFBVztBQUNwQyw0QkFBNEIsa0VBQVc7QUFDdkMsMkJBQTJCLGtFQUFXO0FBQ3RDLDZCQUE2QixrRUFBVztBQUN4QztBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS9odHRwLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwTWV0aG9kcyxcbiAgSHR0cEhhbmRsZXJcbn0gZnJvbSAnLi9oYW5kbGVycy9IdHRwSGFuZGxlci5tanMnO1xuZnVuY3Rpb24gY3JlYXRlSHR0cEhhbmRsZXIobWV0aG9kKSB7XG4gIHJldHVybiAocGF0aCwgcmVzb2x2ZXIsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIHJldHVybiBuZXcgSHR0cEhhbmRsZXIobWV0aG9kLCBwYXRoLCByZXNvbHZlciwgb3B0aW9ucyk7XG4gIH07XG59XG5jb25zdCBodHRwID0ge1xuICBhbGw6IGNyZWF0ZUh0dHBIYW5kbGVyKC8uKy8pLFxuICBoZWFkOiBjcmVhdGVIdHRwSGFuZGxlcihIdHRwTWV0aG9kcy5IRUFEKSxcbiAgZ2V0OiBjcmVhdGVIdHRwSGFuZGxlcihIdHRwTWV0aG9kcy5HRVQpLFxuICBwb3N0OiBjcmVhdGVIdHRwSGFuZGxlcihIdHRwTWV0aG9kcy5QT1NUKSxcbiAgcHV0OiBjcmVhdGVIdHRwSGFuZGxlcihIdHRwTWV0aG9kcy5QVVQpLFxuICBkZWxldGU6IGNyZWF0ZUh0dHBIYW5kbGVyKEh0dHBNZXRob2RzLkRFTEVURSksXG4gIHBhdGNoOiBjcmVhdGVIdHRwSGFuZGxlcihIdHRwTWV0aG9kcy5QQVRDSCksXG4gIG9wdGlvbnM6IGNyZWF0ZUh0dHBIYW5kbGVyKEh0dHBNZXRob2RzLk9QVElPTlMpXG59O1xuZXhwb3J0IHtcbiAgaHR0cFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0dHAubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/http.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs": /*!*********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decorateResponse: () => (/* binding */ decorateResponse),\n/* harmony export */ kSetCookie: () => (/* binding */ kSetCookie),\n/* harmony export */ normalizeResponseInit: () => (/* binding */ normalizeResponseInit)\n/* harmony export */ });\n/* harmony import */ var _bundled_es_modules_statuses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bundled-es-modules/statuses */ \"(app-pages-browser)/./node_modules/@bundled-es-modules/statuses/index-esm.js\");\n/* harmony import */ var headers_polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! headers-polyfill */ \"(app-pages-browser)/./node_modules/headers-polyfill/lib/index.mjs\");\n\n\nconst { message } = _bundled_es_modules_statuses__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nconst kSetCookie = Symbol(\"kSetCookie\");\nfunction normalizeResponseInit(init = {}) {\n const status = init?.status || 200;\n const statusText = init?.statusText || message[status] || \"\";\n const headers = new Headers(init?.headers);\n return {\n ...init,\n headers,\n status,\n statusText\n };\n}\nfunction decorateResponse(response, init) {\n if (init.type) {\n Object.defineProperty(response, \"type\", {\n value: init.type,\n enumerable: true,\n writable: false\n });\n }\n const responseCookies = init.headers.get(\"set-cookie\");\n if (responseCookies) {\n Object.defineProperty(response, kSetCookie, {\n value: responseCookies,\n enumerable: false,\n writable: false\n });\n if (typeof document !== \"undefined\") {\n const responseCookiePairs = headers_polyfill__WEBPACK_IMPORTED_MODULE_1__.Headers.prototype.getSetCookie.call(\n init.headers\n );\n for (const cookieString of responseCookiePairs) {\n document.cookie = cookieString;\n }\n }\n }\n return response;\n}\n\n//# sourceMappingURL=decorators.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvSHR0cFJlc3BvbnNlL2RlY29yYXRvcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW9EO0FBQ1U7QUFDOUQsUUFBUSxVQUFVLEVBQUUsb0VBQVE7QUFDNUI7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxrQ0FBa0MscURBQWU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbXN3L2xpYi9jb3JlL3V0aWxzL0h0dHBSZXNwb25zZS9kZWNvcmF0b3JzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RhdHVzZXMgZnJvbSBcIkBidW5kbGVkLWVzLW1vZHVsZXMvc3RhdHVzZXNcIjtcbmltcG9ydCB7IEhlYWRlcnMgYXMgSGVhZGVyc1BvbHlmaWxsIH0gZnJvbSBcImhlYWRlcnMtcG9seWZpbGxcIjtcbmNvbnN0IHsgbWVzc2FnZSB9ID0gc3RhdHVzZXM7XG5jb25zdCBrU2V0Q29va2llID0gU3ltYm9sKFwia1NldENvb2tpZVwiKTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZVJlc3BvbnNlSW5pdChpbml0ID0ge30pIHtcbiAgY29uc3Qgc3RhdHVzID0gaW5pdD8uc3RhdHVzIHx8IDIwMDtcbiAgY29uc3Qgc3RhdHVzVGV4dCA9IGluaXQ/LnN0YXR1c1RleHQgfHwgbWVzc2FnZVtzdGF0dXNdIHx8IFwiXCI7XG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0Py5oZWFkZXJzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbml0LFxuICAgIGhlYWRlcnMsXG4gICAgc3RhdHVzLFxuICAgIHN0YXR1c1RleHRcbiAgfTtcbn1cbmZ1bmN0aW9uIGRlY29yYXRlUmVzcG9uc2UocmVzcG9uc2UsIGluaXQpIHtcbiAgaWYgKGluaXQudHlwZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXNwb25zZSwgXCJ0eXBlXCIsIHtcbiAgICAgIHZhbHVlOiBpbml0LnR5cGUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgcmVzcG9uc2VDb29raWVzID0gaW5pdC5oZWFkZXJzLmdldChcInNldC1jb29raWVcIik7XG4gIGlmIChyZXNwb25zZUNvb2tpZXMpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzcG9uc2UsIGtTZXRDb29raWUsIHtcbiAgICAgIHZhbHVlOiByZXNwb25zZUNvb2tpZXMsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlQ29va2llUGFpcnMgPSBIZWFkZXJzUG9seWZpbGwucHJvdG90eXBlLmdldFNldENvb2tpZS5jYWxsKFxuICAgICAgICBpbml0LmhlYWRlcnNcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiByZXNwb25zZUNvb2tpZVBhaXJzKSB7XG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuZXhwb3J0IHtcbiAgZGVjb3JhdGVSZXNwb25zZSxcbiAga1NldENvb2tpZSxcbiAgbm9ybWFsaXplUmVzcG9uc2VJbml0XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVjb3JhdG9ycy5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/cookieStore.mjs": /*!*********************************************************!*\ !*** ./node_modules/msw/lib/core/utils/cookieStore.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cookieStore: () => (/* binding */ cookieStore)\n/* harmony export */ });\n/* harmony import */ var outvariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! outvariant */ \"(app-pages-browser)/./node_modules/outvariant/lib/index.mjs\");\n/* harmony import */ var is_node_process__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! is-node-process */ \"(app-pages-browser)/./node_modules/is-node-process/lib/index.mjs\");\n/* harmony import */ var _bundled_es_modules_tough_cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bundled-es-modules/tough-cookie */ \"(app-pages-browser)/./node_modules/@bundled-es-modules/tough-cookie/index-esm.js\");\n\n\n\nconst { Cookie, CookieJar, Store, MemoryCookieStore, domainMatch, pathMatch } = _bundled_es_modules_tough_cookie__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nclass WebStorageCookieStore extends Store {\n storage;\n storageKey;\n constructor() {\n super();\n (0,outvariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(\n typeof localStorage !== \"undefined\",\n \"Failed to create a WebStorageCookieStore: `localStorage` is not available in this environment. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues\"\n );\n this.synchronous = true;\n this.storage = localStorage;\n this.storageKey = \"__msw-cookie-store__\";\n }\n findCookie(domain, path, key, callback) {\n try {\n const store2 = this.getStore();\n const cookies = this.filterCookiesFromList(store2, { domain, path, key });\n callback(null, cookies[0] || null);\n } catch (error) {\n if (error instanceof Error) {\n callback(error, null);\n }\n }\n }\n findCookies(domain, path, allowSpecialUseDomain, callback) {\n if (!domain) {\n callback(null, []);\n return;\n }\n try {\n const store2 = this.getStore();\n const results = this.filterCookiesFromList(store2, {\n domain,\n path\n });\n callback(null, results);\n } catch (error) {\n if (error instanceof Error) {\n callback(error, []);\n }\n }\n }\n putCookie(cookie, callback) {\n try {\n if (cookie.maxAge === 0) {\n return;\n }\n const store2 = this.getStore();\n store2.push(cookie);\n this.updateStore(store2);\n } catch (error) {\n if (error instanceof Error) {\n callback(error);\n }\n }\n }\n updateCookie(oldCookie, newCookie, callback) {\n if (newCookie.maxAge === 0) {\n this.removeCookie(\n newCookie.domain || \"\",\n newCookie.path || \"\",\n newCookie.key,\n callback\n );\n return;\n }\n this.putCookie(newCookie, callback);\n }\n removeCookie(domain, path, key, callback) {\n try {\n const store2 = this.getStore();\n const nextStore = this.deleteCookiesFromList(store2, { domain, path, key });\n this.updateStore(nextStore);\n callback(null);\n } catch (error) {\n if (error instanceof Error) {\n callback(error);\n }\n }\n }\n removeCookies(domain, path, callback) {\n try {\n const store2 = this.getStore();\n const nextStore = this.deleteCookiesFromList(store2, { domain, path });\n this.updateStore(nextStore);\n callback(null);\n } catch (error) {\n if (error instanceof Error) {\n callback(error);\n }\n }\n }\n getAllCookies(callback) {\n try {\n callback(null, this.getStore());\n } catch (error) {\n if (error instanceof Error) {\n callback(error, []);\n }\n }\n }\n getStore() {\n try {\n const json = this.storage.getItem(this.storageKey);\n if (json == null) {\n return [];\n }\n const rawCookies = JSON.parse(json);\n const cookies = [];\n for (const rawCookie of rawCookies) {\n const cookie = Cookie.fromJSON(rawCookie);\n if (cookie != null) {\n cookies.push(cookie);\n }\n }\n return cookies;\n } catch {\n return [];\n }\n }\n updateStore(nextStore) {\n this.storage.setItem(\n this.storageKey,\n JSON.stringify(nextStore.map((cookie) => cookie.toJSON()))\n );\n }\n filterCookiesFromList(cookies, matches) {\n const result = [];\n for (const cookie of cookies) {\n if (matches.domain && !domainMatch(matches.domain, cookie.domain || \"\")) {\n continue;\n }\n if (matches.path && !pathMatch(matches.path, cookie.path || \"\")) {\n continue;\n }\n if (matches.key && cookie.key !== matches.key) {\n continue;\n }\n result.push(cookie);\n }\n return result;\n }\n deleteCookiesFromList(cookies, matches) {\n const matchingCookies = this.filterCookiesFromList(cookies, matches);\n return cookies.filter((cookie) => !matchingCookies.includes(cookie));\n }\n}\nconst store = (0,is_node_process__WEBPACK_IMPORTED_MODULE_1__.isNodeProcess)() ? new MemoryCookieStore() : new WebStorageCookieStore();\nconst cookieStore = new CookieJar(store);\n\n//# sourceMappingURL=cookieStore.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvY29va2llU3RvcmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBdUM7QUFDUztBQUNXO0FBQzNELFFBQVEsc0VBQXNFLEVBQUUsd0VBQVc7QUFDM0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUkscURBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxtQkFBbUI7QUFDOUU7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsbUJBQW1CO0FBQ2hGO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxjQUFjO0FBQzNFO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOERBQWE7QUFDM0I7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvY29va2llU3RvcmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCB9IGZyb20gXCJvdXR2YXJpYW50XCI7XG5pbXBvcnQgeyBpc05vZGVQcm9jZXNzIH0gZnJvbSBcImlzLW5vZGUtcHJvY2Vzc1wiO1xuaW1wb3J0IHRvdWdoQ29va2llIGZyb20gXCJAYnVuZGxlZC1lcy1tb2R1bGVzL3RvdWdoLWNvb2tpZVwiO1xuY29uc3QgeyBDb29raWUsIENvb2tpZUphciwgU3RvcmUsIE1lbW9yeUNvb2tpZVN0b3JlLCBkb21haW5NYXRjaCwgcGF0aE1hdGNoIH0gPSB0b3VnaENvb2tpZTtcbmNsYXNzIFdlYlN0b3JhZ2VDb29raWVTdG9yZSBleHRlbmRzIFN0b3JlIHtcbiAgc3RvcmFnZTtcbiAgc3RvcmFnZUtleTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpbnZhcmlhbnQoXG4gICAgICB0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSBcInVuZGVmaW5lZFwiLFxuICAgICAgXCJGYWlsZWQgdG8gY3JlYXRlIGEgV2ViU3RvcmFnZUNvb2tpZVN0b3JlOiBgbG9jYWxTdG9yYWdlYCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuIFRoaXMgaXMgbGlrZWx5IGFuIGlzc3VlIHdpdGggTVNXLiBQbGVhc2UgcmVwb3J0IGl0IG9uIEdpdEh1YjogaHR0cHM6Ly9naXRodWIuY29tL21zd2pzL21zdy9pc3N1ZXNcIlxuICAgICk7XG4gICAgdGhpcy5zeW5jaHJvbm91cyA9IHRydWU7XG4gICAgdGhpcy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlO1xuICAgIHRoaXMuc3RvcmFnZUtleSA9IFwiX19tc3ctY29va2llLXN0b3JlX19cIjtcbiAgfVxuICBmaW5kQ29va2llKGRvbWFpbiwgcGF0aCwga2V5LCBjYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZTIgPSB0aGlzLmdldFN0b3JlKCk7XG4gICAgICBjb25zdCBjb29raWVzID0gdGhpcy5maWx0ZXJDb29raWVzRnJvbUxpc3Qoc3RvcmUyLCB7IGRvbWFpbiwgcGF0aCwga2V5IH0pO1xuICAgICAgY2FsbGJhY2sobnVsbCwgY29va2llc1swXSB8fCBudWxsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IsIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmaW5kQ29va2llcyhkb21haW4sIHBhdGgsIGFsbG93U3BlY2lhbFVzZURvbWFpbiwgY2FsbGJhY2spIHtcbiAgICBpZiAoIWRvbWFpbikge1xuICAgICAgY2FsbGJhY2sobnVsbCwgW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RvcmUyID0gdGhpcy5nZXRTdG9yZSgpO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuZmlsdGVyQ29va2llc0Zyb21MaXN0KHN0b3JlMiwge1xuICAgICAgICBkb21haW4sXG4gICAgICAgIHBhdGhcbiAgICAgIH0pO1xuICAgICAgY2FsbGJhY2sobnVsbCwgcmVzdWx0cyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBbXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1dENvb2tpZShjb29raWUsIGNhbGxiYWNrKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChjb29raWUubWF4QWdlID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0b3JlMiA9IHRoaXMuZ2V0U3RvcmUoKTtcbiAgICAgIHN0b3JlMi5wdXNoKGNvb2tpZSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0b3JlKHN0b3JlMik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdXBkYXRlQ29va2llKG9sZENvb2tpZSwgbmV3Q29va2llLCBjYWxsYmFjaykge1xuICAgIGlmIChuZXdDb29raWUubWF4QWdlID09PSAwKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvb2tpZShcbiAgICAgICAgbmV3Q29va2llLmRvbWFpbiB8fCBcIlwiLFxuICAgICAgICBuZXdDb29raWUucGF0aCB8fCBcIlwiLFxuICAgICAgICBuZXdDb29raWUua2V5LFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wdXRDb29raWUobmV3Q29va2llLCBjYWxsYmFjayk7XG4gIH1cbiAgcmVtb3ZlQ29va2llKGRvbWFpbiwgcGF0aCwga2V5LCBjYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZTIgPSB0aGlzLmdldFN0b3JlKCk7XG4gICAgICBjb25zdCBuZXh0U3RvcmUgPSB0aGlzLmRlbGV0ZUNvb2tpZXNGcm9tTGlzdChzdG9yZTIsIHsgZG9tYWluLCBwYXRoLCBrZXkgfSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0b3JlKG5leHRTdG9yZSk7XG4gICAgICBjYWxsYmFjayhudWxsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZW1vdmVDb29raWVzKGRvbWFpbiwgcGF0aCwgY2FsbGJhY2spIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RvcmUyID0gdGhpcy5nZXRTdG9yZSgpO1xuICAgICAgY29uc3QgbmV4dFN0b3JlID0gdGhpcy5kZWxldGVDb29raWVzRnJvbUxpc3Qoc3RvcmUyLCB7IGRvbWFpbiwgcGF0aCB9KTtcbiAgICAgIHRoaXMudXBkYXRlU3RvcmUobmV4dFN0b3JlKTtcbiAgICAgIGNhbGxiYWNrKG51bGwpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldEFsbENvb2tpZXMoY2FsbGJhY2spIHtcbiAgICB0cnkge1xuICAgICAgY2FsbGJhY2sobnVsbCwgdGhpcy5nZXRTdG9yZSgpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IsIFtdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0U3RvcmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgICAgaWYgKGpzb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBjb25zdCByYXdDb29raWVzID0gSlNPTi5wYXJzZShqc29uKTtcbiAgICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcmF3Q29va2llIG9mIHJhd0Nvb2tpZXMpIHtcbiAgICAgICAgY29uc3QgY29va2llID0gQ29va2llLmZyb21KU09OKHJhd0Nvb2tpZSk7XG4gICAgICAgIGlmIChjb29raWUgIT0gbnVsbCkge1xuICAgICAgICAgIGNvb2tpZXMucHVzaChjb29raWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY29va2llcztcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlU3RvcmUobmV4dFN0b3JlKSB7XG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oXG4gICAgICB0aGlzLnN0b3JhZ2VLZXksXG4gICAgICBKU09OLnN0cmluZ2lmeShuZXh0U3RvcmUubWFwKChjb29raWUpID0+IGNvb2tpZS50b0pTT04oKSkpXG4gICAgKTtcbiAgfVxuICBmaWx0ZXJDb29raWVzRnJvbUxpc3QoY29va2llcywgbWF0Y2hlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAoY29uc3QgY29va2llIG9mIGNvb2tpZXMpIHtcbiAgICAgIGlmIChtYXRjaGVzLmRvbWFpbiAmJiAhZG9tYWluTWF0Y2gobWF0Y2hlcy5kb21haW4sIGNvb2tpZS5kb21haW4gfHwgXCJcIikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAobWF0Y2hlcy5wYXRoICYmICFwYXRoTWF0Y2gobWF0Y2hlcy5wYXRoLCBjb29raWUucGF0aCB8fCBcIlwiKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaGVzLmtleSAmJiBjb29raWUua2V5ICE9PSBtYXRjaGVzLmtleSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKGNvb2tpZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZGVsZXRlQ29va2llc0Zyb21MaXN0KGNvb2tpZXMsIG1hdGNoZXMpIHtcbiAgICBjb25zdCBtYXRjaGluZ0Nvb2tpZXMgPSB0aGlzLmZpbHRlckNvb2tpZXNGcm9tTGlzdChjb29raWVzLCBtYXRjaGVzKTtcbiAgICByZXR1cm4gY29va2llcy5maWx0ZXIoKGNvb2tpZSkgPT4gIW1hdGNoaW5nQ29va2llcy5pbmNsdWRlcyhjb29raWUpKTtcbiAgfVxufVxuY29uc3Qgc3RvcmUgPSBpc05vZGVQcm9jZXNzKCkgPyBuZXcgTWVtb3J5Q29va2llU3RvcmUoKSA6IG5ldyBXZWJTdG9yYWdlQ29va2llU3RvcmUoKTtcbmNvbnN0IGNvb2tpZVN0b3JlID0gbmV3IENvb2tpZUphcihzdG9yZSk7XG5leHBvcnQge1xuICBjb29raWVTdG9yZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvb2tpZVN0b3JlLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/cookieStore.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/devUtils.mjs": /*!***************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/internal/devUtils.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InternalError: () => (/* binding */ InternalError),\n/* harmony export */ devUtils: () => (/* binding */ devUtils)\n/* harmony export */ });\n/* harmony import */ var outvariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! outvariant */ \"(app-pages-browser)/./node_modules/outvariant/lib/index.mjs\");\n\nconst LIBRARY_PREFIX = \"[MSW]\";\nfunction formatMessage(message, ...positionals) {\n const interpolatedMessage = (0,outvariant__WEBPACK_IMPORTED_MODULE_0__.format)(message, ...positionals);\n return `${LIBRARY_PREFIX} ${interpolatedMessage}`;\n}\nfunction warn(message, ...positionals) {\n console.warn(formatMessage(message, ...positionals));\n}\nfunction error(message, ...positionals) {\n console.error(formatMessage(message, ...positionals));\n}\nconst devUtils = {\n formatMessage,\n warn,\n error\n};\nclass InternalError extends Error {\n constructor(message) {\n super(message);\n this.name = \"InternalError\";\n }\n}\n\n//# sourceMappingURL=devUtils.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvaW50ZXJuYWwvZGV2VXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvQztBQUNwQztBQUNBO0FBQ0EsOEJBQThCLGtEQUFNO0FBQ3BDLFlBQVksZ0JBQWdCLEVBQUUsb0JBQW9CO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9pbnRlcm5hbC9kZXZVdGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcIm91dHZhcmlhbnRcIjtcbmNvbnN0IExJQlJBUllfUFJFRklYID0gXCJbTVNXXVwiO1xuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICBjb25zdCBpbnRlcnBvbGF0ZWRNZXNzYWdlID0gZm9ybWF0KG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKTtcbiAgcmV0dXJuIGAke0xJQlJBUllfUFJFRklYfSAke2ludGVycG9sYXRlZE1lc3NhZ2V9YDtcbn1cbmZ1bmN0aW9uIHdhcm4obWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpIHtcbiAgY29uc29sZS53YXJuKGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpKTtcbn1cbmZ1bmN0aW9uIGVycm9yKG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKSB7XG4gIGNvbnNvbGUuZXJyb3IoZm9ybWF0TWVzc2FnZShtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykpO1xufVxuY29uc3QgZGV2VXRpbHMgPSB7XG4gIGZvcm1hdE1lc3NhZ2UsXG4gIHdhcm4sXG4gIGVycm9yXG59O1xuY2xhc3MgSW50ZXJuYWxFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiSW50ZXJuYWxFcnJvclwiO1xuICB9XG59XG5leHBvcnQge1xuICBJbnRlcm5hbEVycm9yLFxuICBkZXZVdGlsc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldlV0aWxzLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/devUtils.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/getCallFrame.mjs": /*!*******************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/internal/getCallFrame.mjs ***! \*******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCallFrame: () => (/* binding */ getCallFrame)\n/* harmony export */ });\nconst SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/;\nconst BUILD_FRAME = /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/;\nfunction getCallFrame(error) {\n const stack = error.stack;\n if (!stack) {\n return;\n }\n const frames = stack.split(\"\\n\").slice(1);\n const declarationFrame = frames.find((frame) => {\n return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame));\n });\n if (!declarationFrame) {\n return;\n }\n const declarationPath = declarationFrame.replace(/\\s*at [^()]*\\(([^)]+)\\)/, \"$1\").replace(/^@/, \"\");\n return declarationPath;\n}\n\n//# sourceMappingURL=getCallFrame.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvaW50ZXJuYWwvZ2V0Q2FsbEZyYW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbXN3L2xpYi9jb3JlL3V0aWxzL2ludGVybmFsL2dldENhbGxGcmFtZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU09VUkNFX0ZSQU1FID0gL1tcXC9cXFxcXW1zd1tcXC9cXFxcXXNyY1tcXC9cXFxcXSguKykvO1xuY29uc3QgQlVJTERfRlJBTUUgPSAvKG5vZGVfbW9kdWxlcyk/W1xcL1xcXFxdbGliW1xcL1xcXFxdKGNvcmV8YnJvd3Nlcnxub2RlfG5hdGl2ZXxpaWZlKVtcXC9cXFxcXXxeW15cXC9cXFxcXSokLztcbmZ1bmN0aW9uIGdldENhbGxGcmFtZShlcnJvcikge1xuICBjb25zdCBzdGFjayA9IGVycm9yLnN0YWNrO1xuICBpZiAoIXN0YWNrKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGZyYW1lcyA9IHN0YWNrLnNwbGl0KFwiXFxuXCIpLnNsaWNlKDEpO1xuICBjb25zdCBkZWNsYXJhdGlvbkZyYW1lID0gZnJhbWVzLmZpbmQoKGZyYW1lKSA9PiB7XG4gICAgcmV0dXJuICEoU09VUkNFX0ZSQU1FLnRlc3QoZnJhbWUpIHx8IEJVSUxEX0ZSQU1FLnRlc3QoZnJhbWUpKTtcbiAgfSk7XG4gIGlmICghZGVjbGFyYXRpb25GcmFtZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkZWNsYXJhdGlvblBhdGggPSBkZWNsYXJhdGlvbkZyYW1lLnJlcGxhY2UoL1xccyphdCBbXigpXSpcXCgoW14pXSspXFwpLywgXCIkMVwiKS5yZXBsYWNlKC9eQC8sIFwiXCIpO1xuICByZXR1cm4gZGVjbGFyYXRpb25QYXRoO1xufVxuZXhwb3J0IHtcbiAgZ2V0Q2FsbEZyYW1lXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0Q2FsbEZyYW1lLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/getCallFrame.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isIterable.mjs": /*!*****************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/internal/isIterable.mjs ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isIterable: () => (/* binding */ isIterable)\n/* harmony export */ });\nfunction isIterable(fn) {\n if (!fn) {\n return false;\n }\n return Reflect.has(fn, Symbol.iterator) || Reflect.has(fn, Symbol.asyncIterator);\n}\n\n//# sourceMappingURL=isIterable.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvaW50ZXJuYWwvaXNJdGVyYWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9pbnRlcm5hbC9pc0l0ZXJhYmxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0l0ZXJhYmxlKGZuKSB7XG4gIGlmICghZm4pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIFJlZmxlY3QuaGFzKGZuLCBTeW1ib2wuaXRlcmF0b3IpIHx8IFJlZmxlY3QuaGFzKGZuLCBTeW1ib2wuYXN5bmNJdGVyYXRvcik7XG59XG5leHBvcnQge1xuICBpc0l0ZXJhYmxlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNJdGVyYWJsZS5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isIterable.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isStringEqual.mjs": /*!********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/internal/isStringEqual.mjs ***! \********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isStringEqual: () => (/* binding */ isStringEqual)\n/* harmony export */ });\nfunction isStringEqual(actual, expected) {\n return actual.toLowerCase() === expected.toLowerCase();\n}\n\n//# sourceMappingURL=isStringEqual.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvaW50ZXJuYWwvaXNTdHJpbmdFcXVhbC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9pbnRlcm5hbC9pc1N0cmluZ0VxdWFsLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc1N0cmluZ0VxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpIHtcbiAgcmV0dXJuIGFjdHVhbC50b0xvd2VyQ2FzZSgpID09PSBleHBlY3RlZC50b0xvd2VyQ2FzZSgpO1xufVxuZXhwb3J0IHtcbiAgaXNTdHJpbmdFcXVhbFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzU3RyaW5nRXF1YWwubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/internal/isStringEqual.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs": /*!************************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StatusCodeColor: () => (/* binding */ StatusCodeColor),\n/* harmony export */ getStatusCodeColor: () => (/* binding */ getStatusCodeColor)\n/* harmony export */ });\nvar StatusCodeColor = /* @__PURE__ */ ((StatusCodeColor2) => {\n StatusCodeColor2[\"Success\"] = \"#69AB32\";\n StatusCodeColor2[\"Warning\"] = \"#F0BB4B\";\n StatusCodeColor2[\"Danger\"] = \"#E95F5D\";\n return StatusCodeColor2;\n})(StatusCodeColor || {});\nfunction getStatusCodeColor(status) {\n if (status < 300) {\n return \"#69AB32\" /* Success */;\n }\n if (status < 400) {\n return \"#F0BB4B\" /* Warning */;\n }\n return \"#E95F5D\" /* Danger */;\n}\n\n//# sourceMappingURL=getStatusCodeColor.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9nZXRTdGF0dXNDb2RlQ29sb3IubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsdUJBQXVCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9sb2dnaW5nL2dldFN0YXR1c0NvZGVDb2xvci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIFN0YXR1c0NvZGVDb2xvciA9IC8qIEBfX1BVUkVfXyAqLyAoKFN0YXR1c0NvZGVDb2xvcjIpID0+IHtcbiAgU3RhdHVzQ29kZUNvbG9yMltcIlN1Y2Nlc3NcIl0gPSBcIiM2OUFCMzJcIjtcbiAgU3RhdHVzQ29kZUNvbG9yMltcIldhcm5pbmdcIl0gPSBcIiNGMEJCNEJcIjtcbiAgU3RhdHVzQ29kZUNvbG9yMltcIkRhbmdlclwiXSA9IFwiI0U5NUY1RFwiO1xuICByZXR1cm4gU3RhdHVzQ29kZUNvbG9yMjtcbn0pKFN0YXR1c0NvZGVDb2xvciB8fCB7fSk7XG5mdW5jdGlvbiBnZXRTdGF0dXNDb2RlQ29sb3Ioc3RhdHVzKSB7XG4gIGlmIChzdGF0dXMgPCAzMDApIHtcbiAgICByZXR1cm4gXCIjNjlBQjMyXCIgLyogU3VjY2VzcyAqLztcbiAgfVxuICBpZiAoc3RhdHVzIDwgNDAwKSB7XG4gICAgcmV0dXJuIFwiI0YwQkI0QlwiIC8qIFdhcm5pbmcgKi87XG4gIH1cbiAgcmV0dXJuIFwiI0U5NUY1RFwiIC8qIERhbmdlciAqLztcbn1cbmV4cG9ydCB7XG4gIFN0YXR1c0NvZGVDb2xvcixcbiAgZ2V0U3RhdHVzQ29kZUNvbG9yXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0U3RhdHVzQ29kZUNvbG9yLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getTimestamp.mjs": /*!******************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/logging/getTimestamp.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTimestamp: () => (/* binding */ getTimestamp)\n/* harmony export */ });\nfunction getTimestamp(options) {\n const now = /* @__PURE__ */ new Date();\n const timestamp = `${now.getHours().toString().padStart(2, \"0\")}:${now.getMinutes().toString().padStart(2, \"0\")}:${now.getSeconds().toString().padStart(2, \"0\")}`;\n if (options?.milliseconds) {\n return `${timestamp}.${now.getMilliseconds().toString().padStart(3, \"0\")}`;\n }\n return timestamp;\n}\n\n//# sourceMappingURL=getTimestamp.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9nZXRUaW1lc3RhbXAubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EsdUJBQXVCLDJDQUEyQyxHQUFHLDZDQUE2QyxHQUFHLDZDQUE2QztBQUNsSztBQUNBLGNBQWMsVUFBVSxHQUFHLGtEQUFrRDtBQUM3RTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9nZXRUaW1lc3RhbXAubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGdldFRpbWVzdGFtcChvcHRpb25zKSB7XG4gIGNvbnN0IG5vdyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICBjb25zdCB0aW1lc3RhbXAgPSBgJHtub3cuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHtub3cuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfToke25vdy5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9YDtcbiAgaWYgKG9wdGlvbnM/Lm1pbGxpc2Vjb25kcykge1xuICAgIHJldHVybiBgJHt0aW1lc3RhbXB9LiR7bm93LmdldE1pbGxpc2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMywgXCIwXCIpfWA7XG4gIH1cbiAgcmV0dXJuIHRpbWVzdGFtcDtcbn1cbmV4cG9ydCB7XG4gIGdldFRpbWVzdGFtcFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFRpbWVzdGFtcC5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/getTimestamp.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeRequest.mjs": /*!**********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/logging/serializeRequest.mjs ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ serializeRequest: () => (/* binding */ serializeRequest)\n/* harmony export */ });\nasync function serializeRequest(request) {\n const requestClone = request.clone();\n const requestText = await requestClone.text();\n return {\n url: new URL(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: requestText\n };\n}\n\n//# sourceMappingURL=serializeRequest.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9zZXJpYWxpemVSZXF1ZXN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9zZXJpYWxpemVSZXF1ZXN0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJhc3luYyBmdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgY29uc3QgcmVxdWVzdENsb25lID0gcmVxdWVzdC5jbG9uZSgpO1xuICBjb25zdCByZXF1ZXN0VGV4dCA9IGF3YWl0IHJlcXVlc3RDbG9uZS50ZXh0KCk7XG4gIHJldHVybiB7XG4gICAgdXJsOiBuZXcgVVJMKHJlcXVlc3QudXJsKSxcbiAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhyZXF1ZXN0LmhlYWRlcnMuZW50cmllcygpKSxcbiAgICBib2R5OiByZXF1ZXN0VGV4dFxuICB9O1xufVxuZXhwb3J0IHtcbiAgc2VyaWFsaXplUmVxdWVzdFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcmlhbGl6ZVJlcXVlc3QubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeRequest.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeResponse.mjs": /*!***********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/logging/serializeResponse.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ serializeResponse: () => (/* binding */ serializeResponse)\n/* harmony export */ });\n/* harmony import */ var _bundled_es_modules_statuses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bundled-es-modules/statuses */ \"(app-pages-browser)/./node_modules/@bundled-es-modules/statuses/index-esm.js\");\n\nconst { message } = _bundled_es_modules_statuses__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nasync function serializeResponse(response) {\n const responseClone = response.clone();\n const responseText = await responseClone.text();\n const responseStatus = responseClone.status || 200;\n const responseStatusText = responseClone.statusText || message[responseStatus] || \"OK\";\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText\n };\n}\n\n//# sourceMappingURL=serializeResponse.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbG9nZ2luZy9zZXJpYWxpemVSZXNwb25zZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0Q7QUFDcEQsUUFBUSxVQUFVLEVBQUUsb0VBQVE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbXN3L2xpYi9jb3JlL3V0aWxzL2xvZ2dpbmcvc2VyaWFsaXplUmVzcG9uc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdGF0dXNlcyBmcm9tIFwiQGJ1bmRsZWQtZXMtbW9kdWxlcy9zdGF0dXNlc1wiO1xuY29uc3QgeyBtZXNzYWdlIH0gPSBzdGF0dXNlcztcbmFzeW5jIGZ1bmN0aW9uIHNlcmlhbGl6ZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gIGNvbnN0IHJlc3BvbnNlQ2xvbmUgPSByZXNwb25zZS5jbG9uZSgpO1xuICBjb25zdCByZXNwb25zZVRleHQgPSBhd2FpdCByZXNwb25zZUNsb25lLnRleHQoKTtcbiAgY29uc3QgcmVzcG9uc2VTdGF0dXMgPSByZXNwb25zZUNsb25lLnN0YXR1cyB8fCAyMDA7XG4gIGNvbnN0IHJlc3BvbnNlU3RhdHVzVGV4dCA9IHJlc3BvbnNlQ2xvbmUuc3RhdHVzVGV4dCB8fCBtZXNzYWdlW3Jlc3BvbnNlU3RhdHVzXSB8fCBcIk9LXCI7XG4gIHJldHVybiB7XG4gICAgc3RhdHVzOiByZXNwb25zZVN0YXR1cyxcbiAgICBzdGF0dXNUZXh0OiByZXNwb25zZVN0YXR1c1RleHQsXG4gICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlc3BvbnNlQ2xvbmUuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgIGJvZHk6IHJlc3BvbnNlVGV4dFxuICB9O1xufVxuZXhwb3J0IHtcbiAgc2VyaWFsaXplUmVzcG9uc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJpYWxpemVSZXNwb25zZS5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/logging/serializeResponse.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs": /*!**********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ coercePath: () => (/* binding */ coercePath),\n/* harmony export */ isPath: () => (/* binding */ isPath),\n/* harmony export */ matchRequestUrl: () => (/* binding */ matchRequestUrl)\n/* harmony export */ });\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path-to-regexp */ \"(app-pages-browser)/./node_modules/path-to-regexp/dist.es2015/index.js\");\n/* harmony import */ var _mswjs_interceptors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mswjs/interceptors */ \"(app-pages-browser)/./node_modules/@mswjs/interceptors/lib/browser/index.mjs\");\n/* harmony import */ var _normalizePath_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalizePath.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/normalizePath.mjs\");\n\n\n\nfunction coercePath(path) {\n return path.replace(\n /([:a-zA-Z_-]*)(\\*{1,2})+/g,\n (_, parameterName, wildcard) => {\n const expression = \"(.*)\";\n if (!parameterName) {\n return expression;\n }\n return parameterName.startsWith(\":\") ? `${parameterName}${wildcard}` : `${parameterName}${expression}`;\n }\n ).replace(/([^\\/])(:)(?=\\d+)/, \"$1\\\\$2\").replace(/^([^\\/]+)(:)(?=\\/\\/)/, \"$1\\\\$2\");\n}\nfunction matchRequestUrl(url, path, baseUrl) {\n const normalizedPath = (0,_normalizePath_mjs__WEBPACK_IMPORTED_MODULE_1__.normalizePath)(path, baseUrl);\n const cleanPath = typeof normalizedPath === \"string\" ? coercePath(normalizedPath) : normalizedPath;\n const cleanUrl = (0,_mswjs_interceptors__WEBPACK_IMPORTED_MODULE_0__.getCleanUrl)(url);\n const result = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_2__.match)(cleanPath, { decode: decodeURIComponent })(cleanUrl);\n const params = result && result.params || {};\n return {\n matches: result !== false,\n params\n };\n}\nfunction isPath(value) {\n return typeof value === \"string\" || value instanceof RegExp;\n}\n\n//# sourceMappingURL=matchRequestUrl.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbWF0Y2hpbmcvbWF0Y2hSZXF1ZXN0VXJsLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUM7QUFDVztBQUNFO0FBQ3BEO0FBQ0E7QUFDQSx1QkFBdUIsSUFBSTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELGNBQWMsRUFBRSxTQUFTLE9BQU8sY0FBYyxFQUFFLFdBQVc7QUFDM0c7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsaUVBQWE7QUFDdEM7QUFDQSxtQkFBbUIsZ0VBQVc7QUFDOUIsaUJBQWlCLHFEQUFLLGNBQWMsNEJBQTRCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9tYXRjaGluZy9tYXRjaFJlcXVlc3RVcmwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hdGNoIH0gZnJvbSBcInBhdGgtdG8tcmVnZXhwXCI7XG5pbXBvcnQgeyBnZXRDbGVhblVybCB9IGZyb20gXCJAbXN3anMvaW50ZXJjZXB0b3JzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoIH0gZnJvbSAnLi9ub3JtYWxpemVQYXRoLm1qcyc7XG5mdW5jdGlvbiBjb2VyY2VQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZShcbiAgICAvKFs6YS16QS1aXy1dKikoXFwqezEsMn0pKy9nLFxuICAgIChfLCBwYXJhbWV0ZXJOYW1lLCB3aWxkY2FyZCkgPT4ge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IFwiKC4qKVwiO1xuICAgICAgaWYgKCFwYXJhbWV0ZXJOYW1lKSB7XG4gICAgICAgIHJldHVybiBleHByZXNzaW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcmFtZXRlck5hbWUuc3RhcnRzV2l0aChcIjpcIikgPyBgJHtwYXJhbWV0ZXJOYW1lfSR7d2lsZGNhcmR9YCA6IGAke3BhcmFtZXRlck5hbWV9JHtleHByZXNzaW9ufWA7XG4gICAgfVxuICApLnJlcGxhY2UoLyhbXlxcL10pKDopKD89XFxkKykvLCBcIiQxXFxcXCQyXCIpLnJlcGxhY2UoL14oW15cXC9dKykoOikoPz1cXC9cXC8pLywgXCIkMVxcXFwkMlwiKTtcbn1cbmZ1bmN0aW9uIG1hdGNoUmVxdWVzdFVybCh1cmwsIHBhdGgsIGJhc2VVcmwpIHtcbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBub3JtYWxpemVQYXRoKHBhdGgsIGJhc2VVcmwpO1xuICBjb25zdCBjbGVhblBhdGggPSB0eXBlb2Ygbm9ybWFsaXplZFBhdGggPT09IFwic3RyaW5nXCIgPyBjb2VyY2VQYXRoKG5vcm1hbGl6ZWRQYXRoKSA6IG5vcm1hbGl6ZWRQYXRoO1xuICBjb25zdCBjbGVhblVybCA9IGdldENsZWFuVXJsKHVybCk7XG4gIGNvbnN0IHJlc3VsdCA9IG1hdGNoKGNsZWFuUGF0aCwgeyBkZWNvZGU6IGRlY29kZVVSSUNvbXBvbmVudCB9KShjbGVhblVybCk7XG4gIGNvbnN0IHBhcmFtcyA9IHJlc3VsdCAmJiByZXN1bHQucGFyYW1zIHx8IHt9O1xuICByZXR1cm4ge1xuICAgIG1hdGNoZXM6IHJlc3VsdCAhPT0gZmFsc2UsXG4gICAgcGFyYW1zXG4gIH07XG59XG5mdW5jdGlvbiBpc1BhdGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cDtcbn1cbmV4cG9ydCB7XG4gIGNvZXJjZVBhdGgsXG4gIGlzUGF0aCxcbiAgbWF0Y2hSZXF1ZXN0VXJsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWF0Y2hSZXF1ZXN0VXJsLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/normalizePath.mjs": /*!********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/matching/normalizePath.mjs ***! \********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizePath: () => (/* binding */ normalizePath)\n/* harmony export */ });\n/* harmony import */ var _url_cleanUrl_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../url/cleanUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/url/cleanUrl.mjs\");\n/* harmony import */ var _url_getAbsoluteUrl_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../url/getAbsoluteUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs\");\n\n\nfunction normalizePath(path, baseUrl) {\n if (path instanceof RegExp) {\n return path;\n }\n const maybeAbsoluteUrl = (0,_url_getAbsoluteUrl_mjs__WEBPACK_IMPORTED_MODULE_0__.getAbsoluteUrl)(path, baseUrl);\n return (0,_url_cleanUrl_mjs__WEBPACK_IMPORTED_MODULE_1__.cleanUrl)(maybeAbsoluteUrl);\n}\n\n//# sourceMappingURL=normalizePath.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvbWF0Y2hpbmcvbm9ybWFsaXplUGF0aC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQStDO0FBQ1k7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsdUVBQWM7QUFDekMsU0FBUywyREFBUTtBQUNqQjtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy9tYXRjaGluZy9ub3JtYWxpemVQYXRoLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGVhblVybCB9IGZyb20gJy4uL3VybC9jbGVhblVybC5tanMnO1xuaW1wb3J0IHsgZ2V0QWJzb2x1dGVVcmwgfSBmcm9tICcuLi91cmwvZ2V0QWJzb2x1dGVVcmwubWpzJztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgocGF0aCwgYmFzZVVybCkge1xuICBpZiAocGF0aCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG4gIGNvbnN0IG1heWJlQWJzb2x1dGVVcmwgPSBnZXRBYnNvbHV0ZVVybChwYXRoLCBiYXNlVXJsKTtcbiAgcmV0dXJuIGNsZWFuVXJsKG1heWJlQWJzb2x1dGVVcmwpO1xufVxuZXhwb3J0IHtcbiAgbm9ybWFsaXplUGF0aFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vcm1hbGl6ZVBhdGgubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/matching/normalizePath.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/request/getRequestCookies.mjs": /*!***********************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/request/getRequestCookies.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAllRequestCookies: () => (/* binding */ getAllRequestCookies)\n/* harmony export */ });\n/* harmony import */ var _bundled_es_modules_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bundled-es-modules/cookie */ \"(app-pages-browser)/./node_modules/@bundled-es-modules/cookie/index-esm.js\");\n/* harmony import */ var _cookieStore_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cookieStore.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/cookieStore.mjs\");\n\n\nfunction parseCookies(input) {\n const parsedCookies = _bundled_es_modules_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].parse(input);\n const cookies = {};\n for (const cookieName in parsedCookies) {\n if (typeof parsedCookies[cookieName] !== \"undefined\") {\n cookies[cookieName] = parsedCookies[cookieName];\n }\n }\n return cookies;\n}\nfunction getAllDocumentCookies() {\n return parseCookies(document.cookie);\n}\nfunction getDocumentCookies(request) {\n if (typeof document === \"undefined\" || typeof location === \"undefined\") {\n return {};\n }\n switch (request.credentials) {\n case \"same-origin\": {\n const requestUrl = new URL(request.url);\n return location.origin === requestUrl.origin ? getAllDocumentCookies() : {};\n }\n case \"include\": {\n return getAllDocumentCookies();\n }\n default: {\n return {};\n }\n }\n}\nfunction getAllRequestCookies(request) {\n const requestCookieHeader = request.headers.get(\"cookie\");\n const cookiesFromHeaders = requestCookieHeader ? parseCookies(requestCookieHeader) : {};\n const cookiesFromDocument = getDocumentCookies(request);\n for (const name in cookiesFromDocument) {\n request.headers.append(\n \"cookie\",\n _bundled_es_modules_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].serialize(name, cookiesFromDocument[name])\n );\n }\n const cookiesFromStore = _cookieStore_mjs__WEBPACK_IMPORTED_MODULE_1__.cookieStore.getCookiesSync(request.url);\n const storedCookiesObject = Object.fromEntries(\n cookiesFromStore.map((cookie) => [cookie.key, cookie.value])\n );\n for (const cookie of cookiesFromStore) {\n request.headers.append(\"cookie\", cookie.toString());\n }\n return {\n ...cookiesFromDocument,\n ...storedCookiesObject,\n ...cookiesFromHeaders\n };\n}\n\n//# sourceMappingURL=getRequestCookies.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvcmVxdWVzdC9nZXRSZXF1ZXN0Q29va2llcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXFEO0FBQ0o7QUFDakQ7QUFDQSx3QkFBd0Isa0VBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0VBQVc7QUFDakI7QUFDQTtBQUNBLDJCQUEyQix5REFBVztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvcmVxdWVzdC9nZXRSZXF1ZXN0Q29va2llcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvb2tpZVV0aWxzIGZyb20gXCJAYnVuZGxlZC1lcy1tb2R1bGVzL2Nvb2tpZVwiO1xuaW1wb3J0IHsgY29va2llU3RvcmUgfSBmcm9tICcuLi9jb29raWVTdG9yZS5tanMnO1xuZnVuY3Rpb24gcGFyc2VDb29raWVzKGlucHV0KSB7XG4gIGNvbnN0IHBhcnNlZENvb2tpZXMgPSBjb29raWVVdGlscy5wYXJzZShpbnB1dCk7XG4gIGNvbnN0IGNvb2tpZXMgPSB7fTtcbiAgZm9yIChjb25zdCBjb29raWVOYW1lIGluIHBhcnNlZENvb2tpZXMpIHtcbiAgICBpZiAodHlwZW9mIHBhcnNlZENvb2tpZXNbY29va2llTmFtZV0gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvb2tpZXNbY29va2llTmFtZV0gPSBwYXJzZWRDb29raWVzW2Nvb2tpZU5hbWVdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29va2llcztcbn1cbmZ1bmN0aW9uIGdldEFsbERvY3VtZW50Q29va2llcygpIHtcbiAgcmV0dXJuIHBhcnNlQ29va2llcyhkb2N1bWVudC5jb29raWUpO1xufVxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRDb29raWVzKHJlcXVlc3QpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIiB8fCB0eXBlb2YgbG9jYXRpb24gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgc3dpdGNoIChyZXF1ZXN0LmNyZWRlbnRpYWxzKSB7XG4gICAgY2FzZSBcInNhbWUtb3JpZ2luXCI6IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgICAgIHJldHVybiBsb2NhdGlvbi5vcmlnaW4gPT09IHJlcXVlc3RVcmwub3JpZ2luID8gZ2V0QWxsRG9jdW1lbnRDb29raWVzKCkgOiB7fTtcbiAgICB9XG4gICAgY2FzZSBcImluY2x1ZGVcIjoge1xuICAgICAgcmV0dXJuIGdldEFsbERvY3VtZW50Q29va2llcygpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBnZXRBbGxSZXF1ZXN0Q29va2llcyhyZXF1ZXN0KSB7XG4gIGNvbnN0IHJlcXVlc3RDb29raWVIZWFkZXIgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICBjb25zdCBjb29raWVzRnJvbUhlYWRlcnMgPSByZXF1ZXN0Q29va2llSGVhZGVyID8gcGFyc2VDb29raWVzKHJlcXVlc3RDb29raWVIZWFkZXIpIDoge307XG4gIGNvbnN0IGNvb2tpZXNGcm9tRG9jdW1lbnQgPSBnZXREb2N1bWVudENvb2tpZXMocmVxdWVzdCk7XG4gIGZvciAoY29uc3QgbmFtZSBpbiBjb29raWVzRnJvbURvY3VtZW50KSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzLmFwcGVuZChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBjb29raWVVdGlscy5zZXJpYWxpemUobmFtZSwgY29va2llc0Zyb21Eb2N1bWVudFtuYW1lXSlcbiAgICApO1xuICB9XG4gIGNvbnN0IGNvb2tpZXNGcm9tU3RvcmUgPSBjb29raWVTdG9yZS5nZXRDb29raWVzU3luYyhyZXF1ZXN0LnVybCk7XG4gIGNvbnN0IHN0b3JlZENvb2tpZXNPYmplY3QgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgY29va2llc0Zyb21TdG9yZS5tYXAoKGNvb2tpZSkgPT4gW2Nvb2tpZS5rZXksIGNvb2tpZS52YWx1ZV0pXG4gICk7XG4gIGZvciAoY29uc3QgY29va2llIG9mIGNvb2tpZXNGcm9tU3RvcmUpIHtcbiAgICByZXF1ZXN0LmhlYWRlcnMuYXBwZW5kKFwiY29va2llXCIsIGNvb2tpZS50b1N0cmluZygpKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLmNvb2tpZXNGcm9tRG9jdW1lbnQsXG4gICAgLi4uc3RvcmVkQ29va2llc09iamVjdCxcbiAgICAuLi5jb29raWVzRnJvbUhlYWRlcnNcbiAgfTtcbn1cbmV4cG9ydCB7XG4gIGdldEFsbFJlcXVlc3RDb29raWVzXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0UmVxdWVzdENvb2tpZXMubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/request/getRequestCookies.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/request/toPublicUrl.mjs": /*!*****************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/request/toPublicUrl.mjs ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toPublicUrl: () => (/* binding */ toPublicUrl)\n/* harmony export */ });\nfunction toPublicUrl(url) {\n if (typeof location === \"undefined\") {\n return url.toString();\n }\n const urlInstance = url instanceof URL ? url : new URL(url);\n return urlInstance.origin === location.origin ? urlInstance.pathname : urlInstance.origin + urlInstance.pathname;\n}\n\n//# sourceMappingURL=toPublicUrl.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvcmVxdWVzdC90b1B1YmxpY1VybC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbXN3L2xpYi9jb3JlL3V0aWxzL3JlcXVlc3QvdG9QdWJsaWNVcmwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHRvUHVibGljVXJsKHVybCkge1xuICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICB9XG4gIGNvbnN0IHVybEluc3RhbmNlID0gdXJsIGluc3RhbmNlb2YgVVJMID8gdXJsIDogbmV3IFVSTCh1cmwpO1xuICByZXR1cm4gdXJsSW5zdGFuY2Uub3JpZ2luID09PSBsb2NhdGlvbi5vcmlnaW4gPyB1cmxJbnN0YW5jZS5wYXRobmFtZSA6IHVybEluc3RhbmNlLm9yaWdpbiArIHVybEluc3RhbmNlLnBhdGhuYW1lO1xufVxuZXhwb3J0IHtcbiAgdG9QdWJsaWNVcmxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10b1B1YmxpY1VybC5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/request/toPublicUrl.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/url/cleanUrl.mjs": /*!**********************************************************!*\ !*** ./node_modules/msw/lib/core/utils/url/cleanUrl.mjs ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cleanUrl: () => (/* binding */ cleanUrl),\n/* harmony export */ getSearchParams: () => (/* binding */ getSearchParams)\n/* harmony export */ });\nconst REDUNDANT_CHARACTERS_EXP = /[\\?|#].*$/g;\nfunction getSearchParams(path) {\n return new URL(`/${path}`, \"http://localhost\").searchParams;\n}\nfunction cleanUrl(path) {\n if (path.endsWith(\"?\")) {\n return path;\n }\n return path.replace(REDUNDANT_CHARACTERS_EXP, \"\");\n}\n\n//# sourceMappingURL=cleanUrl.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvdXJsL2NsZWFuVXJsLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQSxxQkFBcUIsS0FBSztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy91cmwvY2xlYW5VcmwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFJFRFVOREFOVF9DSEFSQUNURVJTX0VYUCA9IC9bXFw/fCNdLiokL2c7XG5mdW5jdGlvbiBnZXRTZWFyY2hQYXJhbXMocGF0aCkge1xuICByZXR1cm4gbmV3IFVSTChgLyR7cGF0aH1gLCBcImh0dHA6Ly9sb2NhbGhvc3RcIikuc2VhcmNoUGFyYW1zO1xufVxuZnVuY3Rpb24gY2xlYW5VcmwocGF0aCkge1xuICBpZiAocGF0aC5lbmRzV2l0aChcIj9cIikpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuICByZXR1cm4gcGF0aC5yZXBsYWNlKFJFRFVOREFOVF9DSEFSQUNURVJTX0VYUCwgXCJcIik7XG59XG5leHBvcnQge1xuICBjbGVhblVybCxcbiAgZ2V0U2VhcmNoUGFyYW1zXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xlYW5VcmwubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/url/cleanUrl.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs": /*!****************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAbsoluteUrl: () => (/* binding */ getAbsoluteUrl)\n/* harmony export */ });\n/* harmony import */ var _isAbsoluteUrl_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isAbsoluteUrl.mjs */ \"(app-pages-browser)/./node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs\");\n\nfunction getAbsoluteUrl(path, baseUrl) {\n if ((0,_isAbsoluteUrl_mjs__WEBPACK_IMPORTED_MODULE_0__.isAbsoluteUrl)(path)) {\n return path;\n }\n if (path.startsWith(\"*\")) {\n return path;\n }\n const origin = baseUrl || typeof document !== \"undefined\" && document.baseURI;\n return origin ? (\n // Encode and decode the path to preserve escaped characters.\n decodeURI(new URL(encodeURI(path), origin).href)\n ) : path;\n}\n\n//# sourceMappingURL=getAbsoluteUrl.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvdXJsL2dldEFic29sdXRlVXJsLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDtBQUNwRDtBQUNBLE1BQU0saUVBQWE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL21zdy9saWIvY29yZS91dGlscy91cmwvZ2V0QWJzb2x1dGVVcmwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuL2lzQWJzb2x1dGVVcmwubWpzJztcbmZ1bmN0aW9uIGdldEFic29sdXRlVXJsKHBhdGgsIGJhc2VVcmwpIHtcbiAgaWYgKGlzQWJzb2x1dGVVcmwocGF0aCkpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuICBpZiAocGF0aC5zdGFydHNXaXRoKFwiKlwiKSkge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG4gIGNvbnN0IG9yaWdpbiA9IGJhc2VVcmwgfHwgdHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50LmJhc2VVUkk7XG4gIHJldHVybiBvcmlnaW4gPyAoXG4gICAgLy8gRW5jb2RlIGFuZCBkZWNvZGUgdGhlIHBhdGggdG8gcHJlc2VydmUgZXNjYXBlZCBjaGFyYWN0ZXJzLlxuICAgIGRlY29kZVVSSShuZXcgVVJMKGVuY29kZVVSSShwYXRoKSwgb3JpZ2luKS5ocmVmKVxuICApIDogcGF0aDtcbn1cbmV4cG9ydCB7XG4gIGdldEFic29sdXRlVXJsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0QWJzb2x1dGVVcmwubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs": /*!***************************************************************!*\ !*** ./node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAbsoluteUrl: () => (/* binding */ isAbsoluteUrl)\n/* harmony export */ });\nfunction isAbsoluteUrl(url) {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n}\n\n//# sourceMappingURL=isAbsoluteUrl.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvdXJsL2lzQWJzb2x1dGVVcmwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9tc3cvbGliL2NvcmUvdXRpbHMvdXJsL2lzQWJzb2x1dGVVcmwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsKSB7XG4gIHJldHVybiAvXihbYS16XVthLXpcXGRcXCtcXC1cXC5dKjopP1xcL1xcLy9pLnRlc3QodXJsKTtcbn1cbmV4cG9ydCB7XG4gIGlzQWJzb2x1dGVVcmxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc0Fic29sdXRlVXJsLm1qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-themes/dist/index.mjs": /*!*************************************************!*\ !*** ./node_modules/next-themes/dist/index.mjs ***! \*************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ThemeProvider: () => (/* binding */ J),\n/* harmony export */ useTheme: () => (/* binding */ z)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ ThemeProvider,useTheme auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\nvar M = (e, i, s, u, m, a, l, h)=>{\n let d = document.documentElement, w = [\n \"light\",\n \"dark\"\n ];\n function p(n) {\n (Array.isArray(e) ? e : [\n e\n ]).forEach((y)=>{\n let k = y === \"class\", S = k && a ? m.map((f)=>a[f] || f) : m;\n k ? (d.classList.remove(...S), d.classList.add(a && a[n] ? a[n] : n)) : d.setAttribute(y, n);\n }), R(n);\n }\n function R(n) {\n h && w.includes(n) && (d.style.colorScheme = n);\n }\n function c() {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n }\n if (u) p(u);\n else try {\n let n = localStorage.getItem(i) || s, y = l && n === \"system\" ? c() : n;\n p(y);\n } catch (n) {}\n};\n_c = M;\nvar b = [\n \"light\",\n \"dark\"\n], I = \"(prefers-color-scheme: dark)\", O = \"object\" == \"undefined\", x = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0), U = {\n setTheme: (e)=>{},\n themes: []\n}, z = ()=>{\n _s();\n var e;\n return (e = react__WEBPACK_IMPORTED_MODULE_0__.useContext(x)) != null ? e : U;\n}, J = (e)=>{\n _s1();\n return react__WEBPACK_IMPORTED_MODULE_0__.useContext(x) ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, e.children) : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(V, {\n ...e\n });\n}, N = [\n \"light\",\n \"dark\"\n], V = (param)=>{\n let { forcedTheme: e, disableTransitionOnChange: i = !1, enableSystem: s = !0, enableColorScheme: u = !0, storageKey: m = \"theme\", themes: a = N, defaultTheme: l = s ? \"system\" : \"light\", attribute: h = \"data-theme\", value: d, children: w, nonce: p, scriptProps: R } = param;\n _s2();\n let [c, n] = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n \"V.useState\": ()=>H(m, l)\n }[\"V.useState\"]), [T, y] = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n \"V.useState\": ()=>c === \"system\" ? E() : c\n }[\"V.useState\"]), k = d ? Object.values(d) : a, S = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"V.useCallback[S]\": (o)=>{\n let r = o;\n if (!r) return;\n o === \"system\" && s && (r = E());\n let v = d ? d[r] : r, C = i ? W(p) : null, P = document.documentElement, L = {\n \"V.useCallback[S].L\": (g)=>{\n g === \"class\" ? (P.classList.remove(...k), v && P.classList.add(v)) : g.startsWith(\"data-\") && (v ? P.setAttribute(g, v) : P.removeAttribute(g));\n }\n }[\"V.useCallback[S].L\"];\n if (Array.isArray(h) ? h.forEach(L) : L(h), u) {\n let g = b.includes(l) ? l : null, D = b.includes(r) ? r : g;\n P.style.colorScheme = D;\n }\n C == null || C();\n }\n }[\"V.useCallback[S]\"], [\n p\n ]), f = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"V.useCallback[f]\": (o)=>{\n let r = typeof o == \"function\" ? o(c) : o;\n n(r);\n try {\n localStorage.setItem(m, r);\n } catch (v) {}\n }\n }[\"V.useCallback[f]\"], [\n c\n ]), A = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"V.useCallback[A]\": (o)=>{\n let r = E(o);\n y(r), c === \"system\" && s && !e && S(\"system\");\n }\n }[\"V.useCallback[A]\"], [\n c,\n e\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"V.useEffect\": ()=>{\n let o = window.matchMedia(I);\n return o.addListener(A), A(o), ({\n \"V.useEffect\": ()=>o.removeListener(A)\n })[\"V.useEffect\"];\n }\n }[\"V.useEffect\"], [\n A\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"V.useEffect\": ()=>{\n let o = {\n \"V.useEffect.o\": (r)=>{\n r.key === m && (r.newValue ? n(r.newValue) : f(l));\n }\n }[\"V.useEffect.o\"];\n return window.addEventListener(\"storage\", o), ({\n \"V.useEffect\": ()=>window.removeEventListener(\"storage\", o)\n })[\"V.useEffect\"];\n }\n }[\"V.useEffect\"], [\n f\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"V.useEffect\": ()=>{\n S(e != null ? e : c);\n }\n }[\"V.useEffect\"], [\n e,\n c\n ]);\n let Q = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"V.useMemo[Q]\": ()=>({\n theme: c,\n setTheme: f,\n forcedTheme: e,\n resolvedTheme: c === \"system\" ? T : c,\n themes: s ? [\n ...a,\n \"system\"\n ] : a,\n systemTheme: s ? T : void 0\n })\n }[\"V.useMemo[Q]\"], [\n c,\n f,\n e,\n T,\n s,\n a\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(x.Provider, {\n value: Q\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_, {\n forcedTheme: e,\n storageKey: m,\n attribute: h,\n enableSystem: s,\n enableColorScheme: u,\n defaultTheme: l,\n value: d,\n themes: a,\n nonce: p,\n scriptProps: R\n }), w);\n}, _ = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.memo((param)=>{\n let { forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w } = param;\n let p = JSON.stringify([\n s,\n i,\n a,\n e,\n h,\n l,\n u,\n m\n ]).slice(1, -1);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"script\", {\n ...w,\n suppressHydrationWarning: !0,\n nonce: false ? 0 : \"\",\n dangerouslySetInnerHTML: {\n __html: \"(\".concat(M.toString(), \")(\").concat(p, \")\")\n }\n });\n}), H = (e, i)=>{\n if (O) return;\n let s;\n try {\n s = localStorage.getItem(e) || void 0;\n } catch (u) {}\n return s || i;\n}, W = (e)=>{\n let i = document.createElement(\"style\");\n return e && i.setAttribute(\"nonce\", e), i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")), document.head.appendChild(i), ()=>{\n window.getComputedStyle(document.body), setTimeout(()=>{\n document.head.removeChild(i);\n }, 1);\n };\n}, E = (e)=>(e || (e = window.matchMedia(I)), e.matches ? \"dark\" : \"light\");\n_s(z, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n_s1(J, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n_s2(V, \"UCkmxL+2pKwquH5a3QithkhUKcE=\");\n\nvar _c;\n$RefreshReg$(_c, \"M\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LXRoZW1lcy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXFDO0FBQUEsSUFBSUMsSUFBRSxDQUFDQyxHQUFFQyxHQUFFQyxHQUFFQyxHQUFFQyxHQUFFQyxHQUFFQyxHQUFFQztJQUFLLElBQUlDLElBQUVDLFNBQVNDLGVBQWUsRUFBQ0MsSUFBRTtRQUFDO1FBQVE7S0FBTztJQUFDLFNBQVNDLEVBQUVDLENBQUM7UUFBR0MsQ0FBQUEsTUFBTUMsT0FBTyxDQUFDZixLQUFHQSxJQUFFO1lBQUNBO1NBQUUsRUFBRWdCLE9BQU8sQ0FBQ0MsQ0FBQUE7WUFBSSxJQUFJQyxJQUFFRCxNQUFJLFNBQVFFLElBQUVELEtBQUdiLElBQUVELEVBQUVnQixHQUFHLENBQUNDLENBQUFBLElBQUdoQixDQUFDLENBQUNnQixFQUFFLElBQUVBLEtBQUdqQjtZQUFFYyxJQUFHVixDQUFBQSxFQUFFYyxTQUFTLENBQUNDLE1BQU0sSUFBSUosSUFBR1gsRUFBRWMsU0FBUyxDQUFDRSxHQUFHLENBQUNuQixLQUFHQSxDQUFDLENBQUNRLEVBQUUsR0FBQ1IsQ0FBQyxDQUFDUSxFQUFFLEdBQUNBLEVBQUMsSUFBR0wsRUFBRWlCLFlBQVksQ0FBQ1IsR0FBRUo7UUFBRSxJQUFHYSxFQUFFYjtJQUFFO0lBQUMsU0FBU2EsRUFBRWIsQ0FBQztRQUFFTixLQUFHSSxFQUFFZ0IsUUFBUSxDQUFDZCxNQUFLTCxDQUFBQSxFQUFFb0IsS0FBSyxDQUFDQyxXQUFXLEdBQUNoQixDQUFBQTtJQUFFO0lBQUMsU0FBU2lCO1FBQUksT0FBT0MsT0FBT0MsVUFBVSxDQUFDLGdDQUFnQ0MsT0FBTyxHQUFDLFNBQU87SUFBTztJQUFDLElBQUc5QixHQUFFUyxFQUFFVDtTQUFRLElBQUc7UUFBQyxJQUFJVSxJQUFFcUIsYUFBYUMsT0FBTyxDQUFDbEMsTUFBSUMsR0FBRWUsSUFBRVgsS0FBR08sTUFBSSxXQUFTaUIsTUFBSWpCO1FBQUVELEVBQUVLO0lBQUUsRUFBQyxPQUFNSixHQUFFLENBQUM7QUFBQztLQUFoZmQ7QUFBa2YsSUFBSXFDLElBQUU7SUFBQztJQUFRO0NBQU8sRUFBQ0MsSUFBRSxnQ0FBK0JDLElBQUUsWUFBZSxhQUFZQyxrQkFBRXpDLGdEQUFlLENBQUMsS0FBSyxJQUFHMkMsSUFBRTtJQUFDQyxVQUFTMUMsQ0FBQUEsS0FBSTtJQUFFMkMsUUFBTyxFQUFFO0FBQUEsR0FBRUMsSUFBRTs7SUFBSyxJQUFJNUM7SUFBRSxPQUFNLENBQUNBLElBQUVGLDZDQUFZLENBQUN5QyxFQUFDLEtBQUksT0FBS3ZDLElBQUV5QztBQUFDLEdBQUVLLElBQUU5QyxDQUFBQTs7SUFBR0YsT0FBQUEsNkNBQVksQ0FBQ3lDLG1CQUFHekMsZ0RBQWUsQ0FBQ0EsMkNBQVUsRUFBQyxNQUFLRSxFQUFFaUQsUUFBUSxrQkFBRW5ELGdEQUFlLENBQUNvRCxHQUFFO1FBQUMsR0FBR2xELENBQUM7SUFBQTtBQUFDLEdBQUVtRCxJQUFFO0lBQUM7SUFBUTtDQUFPLEVBQUNELElBQUU7UUFBQyxFQUFDRSxhQUFZcEQsQ0FBQyxFQUFDcUQsMkJBQTBCcEQsSUFBRSxDQUFDLENBQUMsRUFBQ3FELGNBQWFwRCxJQUFFLENBQUMsQ0FBQyxFQUFDcUQsbUJBQWtCcEQsSUFBRSxDQUFDLENBQUMsRUFBQ3FELFlBQVdwRCxJQUFFLE9BQU8sRUFBQ3VDLFFBQU90QyxJQUFFOEMsQ0FBQyxFQUFDTSxjQUFhbkQsSUFBRUosSUFBRSxXQUFTLE9BQU8sRUFBQ3dELFdBQVVuRCxJQUFFLFlBQVksRUFBQ29ELE9BQU1uRCxDQUFDLEVBQUN5QyxVQUFTdEMsQ0FBQyxFQUFDaUQsT0FBTWhELENBQUMsRUFBQ2lELGFBQVluQyxDQUFDLEVBQUM7O0lBQUksSUFBRyxDQUFDSSxHQUFFakIsRUFBRSxHQUFDZiwyQ0FBVTtzQkFBQyxJQUFJaUUsRUFBRTNELEdBQUVFO3NCQUFJLENBQUMwRCxHQUFFL0MsRUFBRSxHQUFDbkIsMkNBQVU7c0JBQUMsSUFBSWdDLE1BQUksV0FBU21DLE1BQUluQztzQkFBR1osSUFBRVYsSUFBRTBELE9BQU9DLE1BQU0sQ0FBQzNELEtBQUdILEdBQUVjLElBQUVyQiw4Q0FBYTs0QkFBQ3VFLENBQUFBO1lBQUksSUFBSUMsSUFBRUQ7WUFBRSxJQUFHLENBQUNDLEdBQUU7WUFBT0QsTUFBSSxZQUFVbkUsS0FBSW9FLENBQUFBLElBQUVMLEdBQUU7WUFBRyxJQUFJTSxJQUFFL0QsSUFBRUEsQ0FBQyxDQUFDOEQsRUFBRSxHQUFDQSxHQUFFRSxJQUFFdkUsSUFBRXdFLEVBQUU3RCxLQUFHLE1BQUs4RCxJQUFFakUsU0FBU0MsZUFBZSxFQUFDaUU7c0NBQUVDLENBQUFBO29CQUFJQSxNQUFJLFVBQVNGLENBQUFBLEVBQUVwRCxTQUFTLENBQUNDLE1BQU0sSUFBSUwsSUFBR3FELEtBQUdHLEVBQUVwRCxTQUFTLENBQUNFLEdBQUcsQ0FBQytDLEVBQUMsSUFBR0ssRUFBRUMsVUFBVSxDQUFDLFlBQVdOLENBQUFBLElBQUVHLEVBQUVqRCxZQUFZLENBQUNtRCxHQUFFTCxLQUFHRyxFQUFFSSxlQUFlLENBQUNGLEVBQUM7Z0JBQUU7O1lBQUUsSUFBRzlELE1BQU1DLE9BQU8sQ0FBQ1IsS0FBR0EsRUFBRVMsT0FBTyxDQUFDMkQsS0FBR0EsRUFBRXBFLElBQUdKLEdBQUU7Z0JBQUMsSUFBSXlFLElBQUV4QyxFQUFFVCxRQUFRLENBQUNyQixLQUFHQSxJQUFFLE1BQUt5RSxJQUFFM0MsRUFBRVQsUUFBUSxDQUFDMkMsS0FBR0EsSUFBRU07Z0JBQUVGLEVBQUU5QyxLQUFLLENBQUNDLFdBQVcsR0FBQ2tEO1lBQUM7WUFBQ1AsS0FBRyxRQUFNQTtRQUFHOzJCQUFFO1FBQUM1RDtLQUFFLEdBQUVTLElBQUV2Qiw4Q0FBYTs0QkFBQ3VFLENBQUFBO1lBQUksSUFBSUMsSUFBRSxPQUFPRCxLQUFHLGFBQVdBLEVBQUV2QyxLQUFHdUM7WUFBRXhELEVBQUV5RDtZQUFHLElBQUc7Z0JBQUNwQyxhQUFhOEMsT0FBTyxDQUFDNUUsR0FBRWtFO1lBQUUsRUFBQyxPQUFNQyxHQUFFLENBQUM7UUFBQzsyQkFBRTtRQUFDekM7S0FBRSxHQUFFbUQsSUFBRW5GLDhDQUFhOzRCQUFDdUUsQ0FBQUE7WUFBSSxJQUFJQyxJQUFFTCxFQUFFSTtZQUFHcEQsRUFBRXFELElBQUd4QyxNQUFJLFlBQVU1QixLQUFHLENBQUNGLEtBQUdtQixFQUFFO1FBQVM7MkJBQUU7UUFBQ1c7UUFBRTlCO0tBQUU7SUFBRUYsNENBQVc7dUJBQUM7WUFBSyxJQUFJdUUsSUFBRXRDLE9BQU9DLFVBQVUsQ0FBQ0s7WUFBRyxPQUFPZ0MsRUFBRWMsV0FBVyxDQUFDRixJQUFHQSxFQUFFWjsrQkFBRyxJQUFJQSxFQUFFZSxjQUFjLENBQUNIOztRQUFFO3NCQUFFO1FBQUNBO0tBQUUsR0FBRW5GLDRDQUFXO3VCQUFDO1lBQUssSUFBSXVFO2lDQUFFQyxDQUFBQTtvQkFBSUEsRUFBRWUsR0FBRyxLQUFHakYsS0FBSWtFLENBQUFBLEVBQUVnQixRQUFRLEdBQUN6RSxFQUFFeUQsRUFBRWdCLFFBQVEsSUFBRWpFLEVBQUVmLEVBQUM7Z0JBQUU7O1lBQUUsT0FBT3lCLE9BQU93RCxnQkFBZ0IsQ0FBQyxXQUFVbEI7K0JBQUcsSUFBSXRDLE9BQU95RCxtQkFBbUIsQ0FBQyxXQUFVbkI7O1FBQUU7c0JBQUU7UUFBQ2hEO0tBQUUsR0FBRXZCLDRDQUFXO3VCQUFDO1lBQUtxQixFQUFFbkIsS0FBRyxPQUFLQSxJQUFFOEI7UUFBRTtzQkFBRTtRQUFDOUI7UUFBRThCO0tBQUU7SUFBRSxJQUFJMkQsSUFBRTNGLDBDQUFTO3dCQUFDLElBQUs7Z0JBQUM2RixPQUFNN0Q7Z0JBQUVZLFVBQVNyQjtnQkFBRStCLGFBQVlwRDtnQkFBRTRGLGVBQWM5RCxNQUFJLFdBQVNrQyxJQUFFbEM7Z0JBQUVhLFFBQU96QyxJQUFFO3VCQUFJRztvQkFBRTtpQkFBUyxHQUFDQTtnQkFBRXdGLGFBQVkzRixJQUFFOEQsSUFBRSxLQUFLO1lBQUM7dUJBQUc7UUFBQ2xDO1FBQUVUO1FBQUVyQjtRQUFFZ0U7UUFBRTlEO1FBQUVHO0tBQUU7SUFBRSxxQkFBT1AsZ0RBQWUsQ0FBQ3lDLEVBQUV1RCxRQUFRLEVBQUM7UUFBQ25DLE9BQU04QjtJQUFDLGlCQUFFM0YsZ0RBQWUsQ0FBQ2lHLEdBQUU7UUFBQzNDLGFBQVlwRDtRQUFFd0QsWUFBV3BEO1FBQUVzRCxXQUFVbkQ7UUFBRStDLGNBQWFwRDtRQUFFcUQsbUJBQWtCcEQ7UUFBRXNELGNBQWFuRDtRQUFFcUQsT0FBTW5EO1FBQUVtQyxRQUFPdEM7UUFBRXVELE9BQU1oRDtRQUFFaUQsYUFBWW5DO0lBQUMsSUFBR2Y7QUFBRSxHQUFFb0Ysa0JBQUVqRyx1Q0FBTSxDQUFDO1FBQUMsRUFBQ3NELGFBQVlwRCxDQUFDLEVBQUN3RCxZQUFXdkQsQ0FBQyxFQUFDeUQsV0FBVXhELENBQUMsRUFBQ29ELGNBQWFuRCxDQUFDLEVBQUNvRCxtQkFBa0JuRCxDQUFDLEVBQUNxRCxjQUFhcEQsQ0FBQyxFQUFDc0QsT0FBTXJELENBQUMsRUFBQ3FDLFFBQU9wQyxDQUFDLEVBQUNxRCxPQUFNcEQsQ0FBQyxFQUFDcUQsYUFBWWxELENBQUMsRUFBQztJQUFJLElBQUlDLElBQUVxRixLQUFLQyxTQUFTLENBQUM7UUFBQ2hHO1FBQUVEO1FBQUVJO1FBQUVMO1FBQUVPO1FBQUVEO1FBQUVIO1FBQUVDO0tBQUUsRUFBRStGLEtBQUssQ0FBQyxHQUFFLENBQUM7SUFBRyxxQkFBT3JHLGdEQUFlLENBQUMsVUFBUztRQUFDLEdBQUdhLENBQUM7UUFBQ3lGLDBCQUF5QixDQUFDO1FBQUV4QyxPQUFNLE1BQTBCLEdBQUNwRCxDQUFDQSxHQUFDO1FBQUc2Rix5QkFBd0I7WUFBQ0MsUUFBTyxJQUFxQjFGLE9BQWpCYixFQUFFd0csUUFBUSxJQUFHLE1BQU0sT0FBRjNGLEdBQUU7UUFBRTtJQUFDO0FBQUUsSUFBR21ELElBQUUsQ0FBQy9ELEdBQUVDO0lBQUssSUFBR3FDLEdBQUU7SUFBTyxJQUFJcEM7SUFBRSxJQUFHO1FBQUNBLElBQUVnQyxhQUFhQyxPQUFPLENBQUNuQyxNQUFJLEtBQUs7SUFBQyxFQUFDLE9BQU1HLEdBQUUsQ0FBQztJQUFDLE9BQU9ELEtBQUdEO0FBQUMsR0FBRXdFLElBQUV6RSxDQUFBQTtJQUFJLElBQUlDLElBQUVRLFNBQVNzQyxhQUFhLENBQUM7SUFBUyxPQUFPL0MsS0FBR0MsRUFBRXdCLFlBQVksQ0FBQyxTQUFRekIsSUFBR0MsRUFBRXVHLFdBQVcsQ0FBQy9GLFNBQVNnRyxjQUFjLENBQUMsaUxBQWdMaEcsU0FBU2lHLElBQUksQ0FBQ0YsV0FBVyxDQUFDdkcsSUFBRztRQUFLOEIsT0FBTzRFLGdCQUFnQixDQUFDbEcsU0FBU21HLElBQUksR0FBRUMsV0FBVztZQUFLcEcsU0FBU2lHLElBQUksQ0FBQ0ksV0FBVyxDQUFDN0c7UUFBRSxHQUFFO0lBQUU7QUFBQyxHQUFFZ0UsSUFBRWpFLENBQUFBLElBQUlBLENBQUFBLEtBQUlBLENBQUFBLElBQUUrQixPQUFPQyxVQUFVLENBQUNLLEVBQUMsR0FBR3JDLEVBQUVpQyxPQUFPLEdBQUMsU0FBTyxPQUFNO0dBQTVrRlc7SUFBa0RFO0lBQThHSTtBQUF3OUUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQtdGhlbWVzL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO2ltcG9ydCphcyB0IGZyb21cInJlYWN0XCI7dmFyIE09KGUsaSxzLHUsbSxhLGwsaCk9PntsZXQgZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdz1bXCJsaWdodFwiLFwiZGFya1wiXTtmdW5jdGlvbiBwKG4peyhBcnJheS5pc0FycmF5KGUpP2U6W2VdKS5mb3JFYWNoKHk9PntsZXQgaz15PT09XCJjbGFzc1wiLFM9ayYmYT9tLm1hcChmPT5hW2ZdfHxmKTptO2s/KGQuY2xhc3NMaXN0LnJlbW92ZSguLi5TKSxkLmNsYXNzTGlzdC5hZGQoYSYmYVtuXT9hW25dOm4pKTpkLnNldEF0dHJpYnV0ZSh5LG4pfSksUihuKX1mdW5jdGlvbiBSKG4pe2gmJncuaW5jbHVkZXMobikmJihkLnN0eWxlLmNvbG9yU2NoZW1lPW4pfWZ1bmN0aW9uIGMoKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpLm1hdGNoZXM/XCJkYXJrXCI6XCJsaWdodFwifWlmKHUpcCh1KTtlbHNlIHRyeXtsZXQgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShpKXx8cyx5PWwmJm49PT1cInN5c3RlbVwiP2MoKTpuO3AoeSl9Y2F0Y2gobil7fX07dmFyIGI9W1wibGlnaHRcIixcImRhcmtcIl0sST1cIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIixPPXR5cGVvZiB3aW5kb3c9PVwidW5kZWZpbmVkXCIseD10LmNyZWF0ZUNvbnRleHQodm9pZCAwKSxVPXtzZXRUaGVtZTplPT57fSx0aGVtZXM6W119LHo9KCk9Pnt2YXIgZTtyZXR1cm4oZT10LnVzZUNvbnRleHQoeCkpIT1udWxsP2U6VX0sSj1lPT50LnVzZUNvbnRleHQoeCk/dC5jcmVhdGVFbGVtZW50KHQuRnJhZ21lbnQsbnVsbCxlLmNoaWxkcmVuKTp0LmNyZWF0ZUVsZW1lbnQoVix7Li4uZX0pLE49W1wibGlnaHRcIixcImRhcmtcIl0sVj0oe2ZvcmNlZFRoZW1lOmUsZGlzYWJsZVRyYW5zaXRpb25PbkNoYW5nZTppPSExLGVuYWJsZVN5c3RlbTpzPSEwLGVuYWJsZUNvbG9yU2NoZW1lOnU9ITAsc3RvcmFnZUtleTptPVwidGhlbWVcIix0aGVtZXM6YT1OLGRlZmF1bHRUaGVtZTpsPXM/XCJzeXN0ZW1cIjpcImxpZ2h0XCIsYXR0cmlidXRlOmg9XCJkYXRhLXRoZW1lXCIsdmFsdWU6ZCxjaGlsZHJlbjp3LG5vbmNlOnAsc2NyaXB0UHJvcHM6Un0pPT57bGV0W2Msbl09dC51c2VTdGF0ZSgoKT0+SChtLGwpKSxbVCx5XT10LnVzZVN0YXRlKCgpPT5jPT09XCJzeXN0ZW1cIj9FKCk6Yyksaz1kP09iamVjdC52YWx1ZXMoZCk6YSxTPXQudXNlQ2FsbGJhY2sobz0+e2xldCByPW87aWYoIXIpcmV0dXJuO289PT1cInN5c3RlbVwiJiZzJiYocj1FKCkpO2xldCB2PWQ/ZFtyXTpyLEM9aT9XKHApOm51bGwsUD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsTD1nPT57Zz09PVwiY2xhc3NcIj8oUC5jbGFzc0xpc3QucmVtb3ZlKC4uLmspLHYmJlAuY2xhc3NMaXN0LmFkZCh2KSk6Zy5zdGFydHNXaXRoKFwiZGF0YS1cIikmJih2P1Auc2V0QXR0cmlidXRlKGcsdik6UC5yZW1vdmVBdHRyaWJ1dGUoZykpfTtpZihBcnJheS5pc0FycmF5KGgpP2guZm9yRWFjaChMKTpMKGgpLHUpe2xldCBnPWIuaW5jbHVkZXMobCk/bDpudWxsLEQ9Yi5pbmNsdWRlcyhyKT9yOmc7UC5zdHlsZS5jb2xvclNjaGVtZT1EfUM9PW51bGx8fEMoKX0sW3BdKSxmPXQudXNlQ2FsbGJhY2sobz0+e2xldCByPXR5cGVvZiBvPT1cImZ1bmN0aW9uXCI/byhjKTpvO24ocik7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKG0scil9Y2F0Y2godil7fX0sW2NdKSxBPXQudXNlQ2FsbGJhY2sobz0+e2xldCByPUUobyk7eShyKSxjPT09XCJzeXN0ZW1cIiYmcyYmIWUmJlMoXCJzeXN0ZW1cIil9LFtjLGVdKTt0LnVzZUVmZmVjdCgoKT0+e2xldCBvPXdpbmRvdy5tYXRjaE1lZGlhKEkpO3JldHVybiBvLmFkZExpc3RlbmVyKEEpLEEobyksKCk9Pm8ucmVtb3ZlTGlzdGVuZXIoQSl9LFtBXSksdC51c2VFZmZlY3QoKCk9PntsZXQgbz1yPT57ci5rZXk9PT1tJiYoci5uZXdWYWx1ZT9uKHIubmV3VmFsdWUpOmYobCkpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzdG9yYWdlXCIsbyksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic3RvcmFnZVwiLG8pfSxbZl0pLHQudXNlRWZmZWN0KCgpPT57UyhlIT1udWxsP2U6Yyl9LFtlLGNdKTtsZXQgUT10LnVzZU1lbW8oKCk9Pih7dGhlbWU6YyxzZXRUaGVtZTpmLGZvcmNlZFRoZW1lOmUscmVzb2x2ZWRUaGVtZTpjPT09XCJzeXN0ZW1cIj9UOmMsdGhlbWVzOnM/Wy4uLmEsXCJzeXN0ZW1cIl06YSxzeXN0ZW1UaGVtZTpzP1Q6dm9pZCAwfSksW2MsZixlLFQscyxhXSk7cmV0dXJuIHQuY3JlYXRlRWxlbWVudCh4LlByb3ZpZGVyLHt2YWx1ZTpRfSx0LmNyZWF0ZUVsZW1lbnQoXyx7Zm9yY2VkVGhlbWU6ZSxzdG9yYWdlS2V5Om0sYXR0cmlidXRlOmgsZW5hYmxlU3lzdGVtOnMsZW5hYmxlQ29sb3JTY2hlbWU6dSxkZWZhdWx0VGhlbWU6bCx2YWx1ZTpkLHRoZW1lczphLG5vbmNlOnAsc2NyaXB0UHJvcHM6Un0pLHcpfSxfPXQubWVtbygoe2ZvcmNlZFRoZW1lOmUsc3RvcmFnZUtleTppLGF0dHJpYnV0ZTpzLGVuYWJsZVN5c3RlbTp1LGVuYWJsZUNvbG9yU2NoZW1lOm0sZGVmYXVsdFRoZW1lOmEsdmFsdWU6bCx0aGVtZXM6aCxub25jZTpkLHNjcmlwdFByb3BzOnd9KT0+e2xldCBwPUpTT04uc3RyaW5naWZ5KFtzLGksYSxlLGgsbCx1LG1dKS5zbGljZSgxLC0xKTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIsey4uLncsc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nOiEwLG5vbmNlOnR5cGVvZiB3aW5kb3c9PVwidW5kZWZpbmVkXCI/ZDpcIlwiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6YCgke00udG9TdHJpbmcoKX0pKCR7cH0pYH19KX0pLEg9KGUsaSk9PntpZihPKXJldHVybjtsZXQgczt0cnl7cz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKXx8dm9pZCAwfWNhdGNoKHUpe31yZXR1cm4gc3x8aX0sVz1lPT57bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlJiZpLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsZSksaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIiosKjo6YmVmb3JlLCo6OmFmdGVyey13ZWJraXQtdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDstbW96LXRyYW5zaXRpb246bm9uZSFpbXBvcnRhbnQ7LW8tdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDstbXMtdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fVwiKSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKSwoKT0+e3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGkpfSwxKX19LEU9ZT0+KGV8fChlPXdpbmRvdy5tYXRjaE1lZGlhKEkpKSxlLm1hdGNoZXM/XCJkYXJrXCI6XCJsaWdodFwiKTtleHBvcnR7SiBhcyBUaGVtZVByb3ZpZGVyLHogYXMgdXNlVGhlbWV9O1xuIl0sIm5hbWVzIjpbInQiLCJNIiwiZSIsImkiLCJzIiwidSIsIm0iLCJhIiwibCIsImgiLCJkIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJ3IiwicCIsIm4iLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwieSIsImsiLCJTIiwibWFwIiwiZiIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsInNldEF0dHJpYnV0ZSIsIlIiLCJpbmNsdWRlcyIsInN0eWxlIiwiY29sb3JTY2hlbWUiLCJjIiwid2luZG93IiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiYiIsIkkiLCJPIiwieCIsImNyZWF0ZUNvbnRleHQiLCJVIiwic2V0VGhlbWUiLCJ0aGVtZXMiLCJ6IiwidXNlQ29udGV4dCIsIkoiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjaGlsZHJlbiIsIlYiLCJOIiwiZm9yY2VkVGhlbWUiLCJkaXNhYmxlVHJhbnNpdGlvbk9uQ2hhbmdlIiwiZW5hYmxlU3lzdGVtIiwiZW5hYmxlQ29sb3JTY2hlbWUiLCJzdG9yYWdlS2V5IiwiZGVmYXVsdFRoZW1lIiwiYXR0cmlidXRlIiwidmFsdWUiLCJub25jZSIsInNjcmlwdFByb3BzIiwidXNlU3RhdGUiLCJIIiwiVCIsIkUiLCJPYmplY3QiLCJ2YWx1ZXMiLCJ1c2VDYWxsYmFjayIsIm8iLCJyIiwidiIsIkMiLCJXIiwiUCIsIkwiLCJnIiwic3RhcnRzV2l0aCIsInJlbW92ZUF0dHJpYnV0ZSIsIkQiLCJzZXRJdGVtIiwiQSIsInVzZUVmZmVjdCIsImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJrZXkiLCJuZXdWYWx1ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiUSIsInVzZU1lbW8iLCJ0aGVtZSIsInJlc29sdmVkVGhlbWUiLCJzeXN0ZW1UaGVtZSIsIlByb3ZpZGVyIiwiXyIsIm1lbW8iLCJKU09OIiwic3RyaW5naWZ5Iiwic2xpY2UiLCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsInRvU3RyaW5nIiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVUZXh0Tm9kZSIsImhlYWQiLCJnZXRDb21wdXRlZFN0eWxlIiwiYm9keSIsInNldFRpbWVvdXQiLCJyZW1vdmVDaGlsZCIsIlRoZW1lUHJvdmlkZXIiLCJ1c2VUaGVtZSJdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-themes/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js": /*!**************************************************!*\ !*** ./node_modules/next/dist/api/navigation.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uYXZpZ2F0aW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/build/polyfills/object-assign.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/build/polyfills/object-assign.js ***! \*****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports[\"default\"] = module.exports;\n\n//# sourceMappingURL=object-assign.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL29iamVjdC1hc3NpZ24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EseUJBQXNCOztBQUV0QiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9vYmplY3QtYXNzaWduLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9iamVjdC1hc3NpZ24uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/polyfills/object-assign.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fhectorzea%2Fdev%2Ffrontbuild%2Ffrontend%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!": /*!************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fhectorzea%2Fdev%2Ffrontbuild%2Ffrontend%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***! \************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/page.tsx */ \"(app-pages-browser)/./app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZoZWN0b3J6ZWElMkZkZXYlMkZmcm9udGJ1aWxkJTJGZnJvbnRlbmQlMkZhcHAlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9ZmFsc2UhIiwibWFwcGluZ3MiOiJBQUFBLHNKQUEwRiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fhectorzea%2Fdev%2Ffrontbuild%2Ffrontend%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/compiled/buffer/index.js ***! \*********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var e={675:function(e,r){\"use strict\";r.byteLength=byteLength;r.toByteArray=toByteArray;r.fromByteArray=fromByteArray;var t=[];var f=[];var n=typeof Uint8Array!==\"undefined\"?Uint8Array:Array;var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(var o=0,u=i.length;o<u;++o){t[o]=i[o];f[i.charCodeAt(o)]=o}f[\"-\".charCodeAt(0)]=62;f[\"_\".charCodeAt(0)]=63;function getLens(e){var r=e.length;if(r%4>0){throw new Error(\"Invalid string. Length must be a multiple of 4\")}var t=e.indexOf(\"=\");if(t===-1)t=r;var f=t===r?0:4-t%4;return[t,f]}function byteLength(e){var r=getLens(e);var t=r[0];var f=r[1];return(t+f)*3/4-f}function _byteLength(e,r,t){return(r+t)*3/4-t}function toByteArray(e){var r;var t=getLens(e);var i=t[0];var o=t[1];var u=new n(_byteLength(e,i,o));var a=0;var s=o>0?i-4:i;var h;for(h=0;h<s;h+=4){r=f[e.charCodeAt(h)]<<18|f[e.charCodeAt(h+1)]<<12|f[e.charCodeAt(h+2)]<<6|f[e.charCodeAt(h+3)];u[a++]=r>>16&255;u[a++]=r>>8&255;u[a++]=r&255}if(o===2){r=f[e.charCodeAt(h)]<<2|f[e.charCodeAt(h+1)]>>4;u[a++]=r&255}if(o===1){r=f[e.charCodeAt(h)]<<10|f[e.charCodeAt(h+1)]<<4|f[e.charCodeAt(h+2)]>>2;u[a++]=r>>8&255;u[a++]=r&255}return u}function tripletToBase64(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[e&63]}function encodeChunk(e,r,t){var f;var n=[];for(var i=r;i<t;i+=3){f=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(e[i+2]&255);n.push(tripletToBase64(f))}return n.join(\"\")}function fromByteArray(e){var r;var f=e.length;var n=f%3;var i=[];var o=16383;for(var u=0,a=f-n;u<a;u+=o){i.push(encodeChunk(e,u,u+o>a?a:u+o))}if(n===1){r=e[f-1];i.push(t[r>>2]+t[r<<4&63]+\"==\")}else if(n===2){r=(e[f-2]<<8)+e[f-1];i.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+\"=\")}return i.join(\"\")}},72:function(e,r,t){\"use strict\";\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */var f=t(675);var n=t(783);var i=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;r.Buffer=Buffer;r.SlowBuffer=SlowBuffer;r.INSPECT_MAX_BYTES=50;var o=2147483647;r.kMaxLength=o;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!==\"undefined\"&&typeof console.error===\"function\"){console.error(\"This browser lacks typed array (Uint8Array) support which is required by \"+\"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\")}function typedArraySupport(){try{var e=new Uint8Array(1);var r={foo:function(){return 42}};Object.setPrototypeOf(r,Uint8Array.prototype);Object.setPrototypeOf(e,r);return e.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(e){if(e>o){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}var r=new Uint8Array(e);Object.setPrototypeOf(r,Buffer.prototype);return r}function Buffer(e,r,t){if(typeof e===\"number\"){if(typeof r===\"string\"){throw new TypeError('The \"string\" argument must be of type string. Received type number')}return allocUnsafe(e)}return from(e,r,t)}Buffer.poolSize=8192;function from(e,r,t){if(typeof e===\"string\"){return fromString(e,r)}if(ArrayBuffer.isView(e)){return fromArrayLike(e)}if(e==null){throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}if(isInstance(e,ArrayBuffer)||e&&isInstance(e.buffer,ArrayBuffer)){return fromArrayBuffer(e,r,t)}if(typeof SharedArrayBuffer!==\"undefined\"&&(isInstance(e,SharedArrayBuffer)||e&&isInstance(e.buffer,SharedArrayBuffer))){return fromArrayBuffer(e,r,t)}if(typeof e===\"number\"){throw new TypeError('The \"value\" argument must not be of type number. Received type number')}var f=e.valueOf&&e.valueOf();if(f!=null&&f!==e){return Buffer.from(f,r,t)}var n=fromObject(e);if(n)return n;if(typeof Symbol!==\"undefined\"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]===\"function\"){return Buffer.from(e[Symbol.toPrimitive](\"string\"),r,t)}throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}Buffer.from=function(e,r,t){return from(e,r,t)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(e){if(typeof e!==\"number\"){throw new TypeError('\"size\" argument must be of type number')}else if(e<0){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}}function alloc(e,r,t){assertSize(e);if(e<=0){return createBuffer(e)}if(r!==undefined){return typeof t===\"string\"?createBuffer(e).fill(r,t):createBuffer(e).fill(r)}return createBuffer(e)}Buffer.alloc=function(e,r,t){return alloc(e,r,t)};function allocUnsafe(e){assertSize(e);return createBuffer(e<0?0:checked(e)|0)}Buffer.allocUnsafe=function(e){return allocUnsafe(e)};Buffer.allocUnsafeSlow=function(e){return allocUnsafe(e)};function fromString(e,r){if(typeof r!==\"string\"||r===\"\"){r=\"utf8\"}if(!Buffer.isEncoding(r)){throw new TypeError(\"Unknown encoding: \"+r)}var t=byteLength(e,r)|0;var f=createBuffer(t);var n=f.write(e,r);if(n!==t){f=f.slice(0,n)}return f}function fromArrayLike(e){var r=e.length<0?0:checked(e.length)|0;var t=createBuffer(r);for(var f=0;f<r;f+=1){t[f]=e[f]&255}return t}function fromArrayBuffer(e,r,t){if(r<0||e.byteLength<r){throw new RangeError('\"offset\" is outside of buffer bounds')}if(e.byteLength<r+(t||0)){throw new RangeError('\"length\" is outside of buffer bounds')}var f;if(r===undefined&&t===undefined){f=new Uint8Array(e)}else if(t===undefined){f=new Uint8Array(e,r)}else{f=new Uint8Array(e,r,t)}Object.setPrototypeOf(f,Buffer.prototype);return f}function fromObject(e){if(Buffer.isBuffer(e)){var r=checked(e.length)|0;var t=createBuffer(r);if(t.length===0){return t}e.copy(t,0,0,r);return t}if(e.length!==undefined){if(typeof e.length!==\"number\"||numberIsNaN(e.length)){return createBuffer(0)}return fromArrayLike(e)}if(e.type===\"Buffer\"&&Array.isArray(e.data)){return fromArrayLike(e.data)}}function checked(e){if(e>=o){throw new RangeError(\"Attempt to allocate Buffer larger than maximum \"+\"size: 0x\"+o.toString(16)+\" bytes\")}return e|0}function SlowBuffer(e){if(+e!=e){e=0}return Buffer.alloc(+e)}Buffer.isBuffer=function isBuffer(e){return e!=null&&e._isBuffer===true&&e!==Buffer.prototype};Buffer.compare=function compare(e,r){if(isInstance(e,Uint8Array))e=Buffer.from(e,e.offset,e.byteLength);if(isInstance(r,Uint8Array))r=Buffer.from(r,r.offset,r.byteLength);if(!Buffer.isBuffer(e)||!Buffer.isBuffer(r)){throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array')}if(e===r)return 0;var t=e.length;var f=r.length;for(var n=0,i=Math.min(t,f);n<i;++n){if(e[n]!==r[n]){t=e[n];f=r[n];break}}if(t<f)return-1;if(f<t)return 1;return 0};Buffer.isEncoding=function isEncoding(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return true;default:return false}};Buffer.concat=function concat(e,r){if(!Array.isArray(e)){throw new TypeError('\"list\" argument must be an Array of Buffers')}if(e.length===0){return Buffer.alloc(0)}var t;if(r===undefined){r=0;for(t=0;t<e.length;++t){r+=e[t].length}}var f=Buffer.allocUnsafe(r);var n=0;for(t=0;t<e.length;++t){var i=e[t];if(isInstance(i,Uint8Array)){i=Buffer.from(i)}if(!Buffer.isBuffer(i)){throw new TypeError('\"list\" argument must be an Array of Buffers')}i.copy(f,n);n+=i.length}return f};function byteLength(e,r){if(Buffer.isBuffer(e)){return e.length}if(ArrayBuffer.isView(e)||isInstance(e,ArrayBuffer)){return e.byteLength}if(typeof e!==\"string\"){throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. '+\"Received type \"+typeof e)}var t=e.length;var f=arguments.length>2&&arguments[2]===true;if(!f&&t===0)return 0;var n=false;for(;;){switch(r){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return utf8ToBytes(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return t*2;case\"hex\":return t>>>1;case\"base64\":return base64ToBytes(e).length;default:if(n){return f?-1:utf8ToBytes(e).length}r=(\"\"+r).toLowerCase();n=true}}}Buffer.byteLength=byteLength;function slowToString(e,r,t){var f=false;if(r===undefined||r<0){r=0}if(r>this.length){return\"\"}if(t===undefined||t>this.length){t=this.length}if(t<=0){return\"\"}t>>>=0;r>>>=0;if(t<=r){return\"\"}if(!e)e=\"utf8\";while(true){switch(e){case\"hex\":return hexSlice(this,r,t);case\"utf8\":case\"utf-8\":return utf8Slice(this,r,t);case\"ascii\":return asciiSlice(this,r,t);case\"latin1\":case\"binary\":return latin1Slice(this,r,t);case\"base64\":return base64Slice(this,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,r,t);default:if(f)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase();f=true}}}Buffer.prototype._isBuffer=true;function swap(e,r,t){var f=e[r];e[r]=e[t];e[t]=f}Buffer.prototype.swap16=function swap16(){var e=this.length;if(e%2!==0){throw new RangeError(\"Buffer size must be a multiple of 16-bits\")}for(var r=0;r<e;r+=2){swap(this,r,r+1)}return this};Buffer.prototype.swap32=function swap32(){var e=this.length;if(e%4!==0){throw new RangeError(\"Buffer size must be a multiple of 32-bits\")}for(var r=0;r<e;r+=4){swap(this,r,r+3);swap(this,r+1,r+2)}return this};Buffer.prototype.swap64=function swap64(){var e=this.length;if(e%8!==0){throw new RangeError(\"Buffer size must be a multiple of 64-bits\")}for(var r=0;r<e;r+=8){swap(this,r,r+7);swap(this,r+1,r+6);swap(this,r+2,r+5);swap(this,r+3,r+4)}return this};Buffer.prototype.toString=function toString(){var e=this.length;if(e===0)return\"\";if(arguments.length===0)return utf8Slice(this,0,e);return slowToString.apply(this,arguments)};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(e){if(!Buffer.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(this===e)return true;return Buffer.compare(this,e)===0};Buffer.prototype.inspect=function inspect(){var e=\"\";var t=r.INSPECT_MAX_BYTES;e=this.toString(\"hex\",0,t).replace(/(.{2})/g,\"$1 \").trim();if(this.length>t)e+=\" ... \";return\"<Buffer \"+e+\">\"};if(i){Buffer.prototype[i]=Buffer.prototype.inspect}Buffer.prototype.compare=function compare(e,r,t,f,n){if(isInstance(e,Uint8Array)){e=Buffer.from(e,e.offset,e.byteLength)}if(!Buffer.isBuffer(e)){throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. '+\"Received type \"+typeof e)}if(r===undefined){r=0}if(t===undefined){t=e?e.length:0}if(f===undefined){f=0}if(n===undefined){n=this.length}if(r<0||t>e.length||f<0||n>this.length){throw new RangeError(\"out of range index\")}if(f>=n&&r>=t){return 0}if(f>=n){return-1}if(r>=t){return 1}r>>>=0;t>>>=0;f>>>=0;n>>>=0;if(this===e)return 0;var i=n-f;var o=t-r;var u=Math.min(i,o);var a=this.slice(f,n);var s=e.slice(r,t);for(var h=0;h<u;++h){if(a[h]!==s[h]){i=a[h];o=s[h];break}}if(i<o)return-1;if(o<i)return 1;return 0};function bidirectionalIndexOf(e,r,t,f,n){if(e.length===0)return-1;if(typeof t===\"string\"){f=t;t=0}else if(t>2147483647){t=2147483647}else if(t<-2147483648){t=-2147483648}t=+t;if(numberIsNaN(t)){t=n?0:e.length-1}if(t<0)t=e.length+t;if(t>=e.length){if(n)return-1;else t=e.length-1}else if(t<0){if(n)t=0;else return-1}if(typeof r===\"string\"){r=Buffer.from(r,f)}if(Buffer.isBuffer(r)){if(r.length===0){return-1}return arrayIndexOf(e,r,t,f,n)}else if(typeof r===\"number\"){r=r&255;if(typeof Uint8Array.prototype.indexOf===\"function\"){if(n){return Uint8Array.prototype.indexOf.call(e,r,t)}else{return Uint8Array.prototype.lastIndexOf.call(e,r,t)}}return arrayIndexOf(e,[r],t,f,n)}throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(e,r,t,f,n){var i=1;var o=e.length;var u=r.length;if(f!==undefined){f=String(f).toLowerCase();if(f===\"ucs2\"||f===\"ucs-2\"||f===\"utf16le\"||f===\"utf-16le\"){if(e.length<2||r.length<2){return-1}i=2;o/=2;u/=2;t/=2}}function read(e,r){if(i===1){return e[r]}else{return e.readUInt16BE(r*i)}}var a;if(n){var s=-1;for(a=t;a<o;a++){if(read(e,a)===read(r,s===-1?0:a-s)){if(s===-1)s=a;if(a-s+1===u)return s*i}else{if(s!==-1)a-=a-s;s=-1}}}else{if(t+u>o)t=o-u;for(a=t;a>=0;a--){var h=true;for(var c=0;c<u;c++){if(read(e,a+c)!==read(r,c)){h=false;break}}if(h)return a}}return-1}Buffer.prototype.includes=function includes(e,r,t){return this.indexOf(e,r,t)!==-1};Buffer.prototype.indexOf=function indexOf(e,r,t){return bidirectionalIndexOf(this,e,r,t,true)};Buffer.prototype.lastIndexOf=function lastIndexOf(e,r,t){return bidirectionalIndexOf(this,e,r,t,false)};function hexWrite(e,r,t,f){t=Number(t)||0;var n=e.length-t;if(!f){f=n}else{f=Number(f);if(f>n){f=n}}var i=r.length;if(f>i/2){f=i/2}for(var o=0;o<f;++o){var u=parseInt(r.substr(o*2,2),16);if(numberIsNaN(u))return o;e[t+o]=u}return o}function utf8Write(e,r,t,f){return blitBuffer(utf8ToBytes(r,e.length-t),e,t,f)}function asciiWrite(e,r,t,f){return blitBuffer(asciiToBytes(r),e,t,f)}function latin1Write(e,r,t,f){return asciiWrite(e,r,t,f)}function base64Write(e,r,t,f){return blitBuffer(base64ToBytes(r),e,t,f)}function ucs2Write(e,r,t,f){return blitBuffer(utf16leToBytes(r,e.length-t),e,t,f)}Buffer.prototype.write=function write(e,r,t,f){if(r===undefined){f=\"utf8\";t=this.length;r=0}else if(t===undefined&&typeof r===\"string\"){f=r;t=this.length;r=0}else if(isFinite(r)){r=r>>>0;if(isFinite(t)){t=t>>>0;if(f===undefined)f=\"utf8\"}else{f=t;t=undefined}}else{throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\")}var n=this.length-r;if(t===undefined||t>n)t=n;if(e.length>0&&(t<0||r<0)||r>this.length){throw new RangeError(\"Attempt to write outside buffer bounds\")}if(!f)f=\"utf8\";var i=false;for(;;){switch(f){case\"hex\":return hexWrite(this,e,r,t);case\"utf8\":case\"utf-8\":return utf8Write(this,e,r,t);case\"ascii\":return asciiWrite(this,e,r,t);case\"latin1\":case\"binary\":return latin1Write(this,e,r,t);case\"base64\":return base64Write(this,e,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,e,r,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+f);f=(\"\"+f).toLowerCase();i=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(e,r,t){if(r===0&&t===e.length){return f.fromByteArray(e)}else{return f.fromByteArray(e.slice(r,t))}}function utf8Slice(e,r,t){t=Math.min(e.length,t);var f=[];var n=r;while(n<t){var i=e[n];var o=null;var u=i>239?4:i>223?3:i>191?2:1;if(n+u<=t){var a,s,h,c;switch(u){case 1:if(i<128){o=i}break;case 2:a=e[n+1];if((a&192)===128){c=(i&31)<<6|a&63;if(c>127){o=c}}break;case 3:a=e[n+1];s=e[n+2];if((a&192)===128&&(s&192)===128){c=(i&15)<<12|(a&63)<<6|s&63;if(c>2047&&(c<55296||c>57343)){o=c}}break;case 4:a=e[n+1];s=e[n+2];h=e[n+3];if((a&192)===128&&(s&192)===128&&(h&192)===128){c=(i&15)<<18|(a&63)<<12|(s&63)<<6|h&63;if(c>65535&&c<1114112){o=c}}}}if(o===null){o=65533;u=1}else if(o>65535){o-=65536;f.push(o>>>10&1023|55296);o=56320|o&1023}f.push(o);n+=u}return decodeCodePointsArray(f)}var u=4096;function decodeCodePointsArray(e){var r=e.length;if(r<=u){return String.fromCharCode.apply(String,e)}var t=\"\";var f=0;while(f<r){t+=String.fromCharCode.apply(String,e.slice(f,f+=u))}return t}function asciiSlice(e,r,t){var f=\"\";t=Math.min(e.length,t);for(var n=r;n<t;++n){f+=String.fromCharCode(e[n]&127)}return f}function latin1Slice(e,r,t){var f=\"\";t=Math.min(e.length,t);for(var n=r;n<t;++n){f+=String.fromCharCode(e[n])}return f}function hexSlice(e,r,t){var f=e.length;if(!r||r<0)r=0;if(!t||t<0||t>f)t=f;var n=\"\";for(var i=r;i<t;++i){n+=s[e[i]]}return n}function utf16leSlice(e,r,t){var f=e.slice(r,t);var n=\"\";for(var i=0;i<f.length;i+=2){n+=String.fromCharCode(f[i]+f[i+1]*256)}return n}Buffer.prototype.slice=function slice(e,r){var t=this.length;e=~~e;r=r===undefined?t:~~r;if(e<0){e+=t;if(e<0)e=0}else if(e>t){e=t}if(r<0){r+=t;if(r<0)r=0}else if(r>t){r=t}if(r<e)r=e;var f=this.subarray(e,r);Object.setPrototypeOf(f,Buffer.prototype);return f};function checkOffset(e,r,t){if(e%1!==0||e<0)throw new RangeError(\"offset is not uint\");if(e+r>t)throw new RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUIntLE=function readUIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i<r&&(n*=256)){f+=this[e+i]*n}return f};Buffer.prototype.readUIntBE=function readUIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t){checkOffset(e,r,this.length)}var f=this[e+--r];var n=1;while(r>0&&(n*=256)){f+=this[e+--r]*n}return f};Buffer.prototype.readUInt8=function readUInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);return this[e]};Buffer.prototype.readUInt16LE=function readUInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]|this[e+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]<<8|this[e+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Buffer.prototype.readIntLE=function readIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i<r&&(n*=256)){f+=this[e+i]*n}n*=128;if(f>=n)f-=Math.pow(2,8*r);return f};Buffer.prototype.readIntBE=function readIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=r;var n=1;var i=this[e+--f];while(f>0&&(n*=256)){i+=this[e+--f]*n}n*=128;if(i>=n)i-=Math.pow(2,8*r);return i};Buffer.prototype.readInt8=function readInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt16BE=function readInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e+1]|this[e]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt32LE=function readInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Buffer.prototype.readFloatLE=function readFloatLE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,false,52,8)};function checkInt(e,r,t,f,n,i){if(!Buffer.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>n||r<i)throw new RangeError('\"value\" argument is out of bounds');if(t+f>e.length)throw new RangeError(\"Index out of range\")}Buffer.prototype.writeUIntLE=function writeUIntLE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=1;var o=0;this[r]=e&255;while(++o<t&&(i*=256)){this[r+o]=e/i&255}return r+t};Buffer.prototype.writeUIntBE=function writeUIntBE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=t-1;var o=1;this[r+i]=e&255;while(--i>=0&&(o*=256)){this[r+i]=e/o&255}return r+t};Buffer.prototype.writeUInt8=function writeUInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,255,0);this[r]=e&255;return r+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r+3]=e>>>24;this[r+2]=e>>>16;this[r+1]=e>>>8;this[r]=e&255;return r+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};Buffer.prototype.writeIntLE=function writeIntLE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=0;var o=1;var u=0;this[r]=e&255;while(++i<t&&(o*=256)){if(e<0&&u===0&&this[r+i-1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeIntBE=function writeIntBE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=t-1;var o=1;var u=0;this[r+i]=e&255;while(--i>=0&&(o*=256)){if(e<0&&u===0&&this[r+i+1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeInt8=function writeInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,127,-128);if(e<0)e=255+e+1;this[r]=e&255;return r+1};Buffer.prototype.writeInt16LE=function writeInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeInt16BE=function writeInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeInt32LE=function writeInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);this[r]=e&255;this[r+1]=e>>>8;this[r+2]=e>>>16;this[r+3]=e>>>24;return r+4};Buffer.prototype.writeInt32BE=function writeInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};function checkIEEE754(e,r,t,f,n,i){if(t+f>e.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function writeFloat(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,4,34028234663852886e22,-34028234663852886e22)}n.write(e,r,t,f,23,4);return t+4}Buffer.prototype.writeFloatLE=function writeFloatLE(e,r,t){return writeFloat(this,e,r,true,t)};Buffer.prototype.writeFloatBE=function writeFloatBE(e,r,t){return writeFloat(this,e,r,false,t)};function writeDouble(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,8,17976931348623157e292,-17976931348623157e292)}n.write(e,r,t,f,52,8);return t+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,r,t){return writeDouble(this,e,r,true,t)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,r,t){return writeDouble(this,e,r,false,t)};Buffer.prototype.copy=function copy(e,r,t,f){if(!Buffer.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(!t)t=0;if(!f&&f!==0)f=this.length;if(r>=e.length)r=e.length;if(!r)r=0;if(f>0&&f<t)f=t;if(f===t)return 0;if(e.length===0||this.length===0)return 0;if(r<0){throw new RangeError(\"targetStart out of bounds\")}if(t<0||t>=this.length)throw new RangeError(\"Index out of range\");if(f<0)throw new RangeError(\"sourceEnd out of bounds\");if(f>this.length)f=this.length;if(e.length-r<f-t){f=e.length-r+t}var n=f-t;if(this===e&&typeof Uint8Array.prototype.copyWithin===\"function\"){this.copyWithin(r,t,f)}else if(this===e&&t<r&&r<f){for(var i=n-1;i>=0;--i){e[i+r]=this[i+t]}}else{Uint8Array.prototype.set.call(e,this.subarray(t,f),r)}return n};Buffer.prototype.fill=function fill(e,r,t,f){if(typeof e===\"string\"){if(typeof r===\"string\"){f=r;r=0;t=this.length}else if(typeof t===\"string\"){f=t;t=this.length}if(f!==undefined&&typeof f!==\"string\"){throw new TypeError(\"encoding must be a string\")}if(typeof f===\"string\"&&!Buffer.isEncoding(f)){throw new TypeError(\"Unknown encoding: \"+f)}if(e.length===1){var n=e.charCodeAt(0);if(f===\"utf8\"&&n<128||f===\"latin1\"){e=n}}}else if(typeof e===\"number\"){e=e&255}else if(typeof e===\"boolean\"){e=Number(e)}if(r<0||this.length<r||this.length<t){throw new RangeError(\"Out of range index\")}if(t<=r){return this}r=r>>>0;t=t===undefined?this.length:t>>>0;if(!e)e=0;var i;if(typeof e===\"number\"){for(i=r;i<t;++i){this[i]=e}}else{var o=Buffer.isBuffer(e)?e:Buffer.from(e,f);var u=o.length;if(u===0){throw new TypeError('The value \"'+e+'\" is invalid for argument \"value\"')}for(i=0;i<t-r;++i){this[i+r]=o[i%u]}}return this};var a=/[^+/0-9A-Za-z-_]/g;function base64clean(e){e=e.split(\"=\")[0];e=e.trim().replace(a,\"\");if(e.length<2)return\"\";while(e.length%4!==0){e=e+\"=\"}return e}function utf8ToBytes(e,r){r=r||Infinity;var t;var f=e.length;var n=null;var i=[];for(var o=0;o<f;++o){t=e.charCodeAt(o);if(t>55295&&t<57344){if(!n){if(t>56319){if((r-=3)>-1)i.push(239,191,189);continue}else if(o+1===f){if((r-=3)>-1)i.push(239,191,189);continue}n=t;continue}if(t<56320){if((r-=3)>-1)i.push(239,191,189);n=t;continue}t=(n-55296<<10|t-56320)+65536}else if(n){if((r-=3)>-1)i.push(239,191,189)}n=null;if(t<128){if((r-=1)<0)break;i.push(t)}else if(t<2048){if((r-=2)<0)break;i.push(t>>6|192,t&63|128)}else if(t<65536){if((r-=3)<0)break;i.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((r-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else{throw new Error(\"Invalid code point\")}}return i}function asciiToBytes(e){var r=[];for(var t=0;t<e.length;++t){r.push(e.charCodeAt(t)&255)}return r}function utf16leToBytes(e,r){var t,f,n;var i=[];for(var o=0;o<e.length;++o){if((r-=2)<0)break;t=e.charCodeAt(o);f=t>>8;n=t%256;i.push(n);i.push(f)}return i}function base64ToBytes(e){return f.toByteArray(base64clean(e))}function blitBuffer(e,r,t,f){for(var n=0;n<f;++n){if(n+t>=r.length||n>=e.length)break;r[n+t]=e[n]}return n}function isInstance(e,r){return e instanceof r||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===r.name}function numberIsNaN(e){return e!==e}var s=function(){var e=\"0123456789abcdef\";var r=new Array(256);for(var t=0;t<16;++t){var f=t*16;for(var n=0;n<16;++n){r[f+n]=e[t]+e[n]}}return r}()},783:function(e,r){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nr.read=function(e,r,t,f,n){var i,o;var u=n*8-f-1;var a=(1<<u)-1;var s=a>>1;var h=-7;var c=t?n-1:0;var l=t?-1:1;var p=e[r+c];c+=l;i=p&(1<<-h)-1;p>>=-h;h+=u;for(;h>0;i=i*256+e[r+c],c+=l,h-=8){}o=i&(1<<-h)-1;i>>=-h;h+=f;for(;h>0;o=o*256+e[r+c],c+=l,h-=8){}if(i===0){i=1-s}else if(i===a){return o?NaN:(p?-1:1)*Infinity}else{o=o+Math.pow(2,f);i=i-s}return(p?-1:1)*o*Math.pow(2,i-f)};r.write=function(e,r,t,f,n,i){var o,u,a;var s=i*8-n-1;var h=(1<<s)-1;var c=h>>1;var l=n===23?Math.pow(2,-24)-Math.pow(2,-77):0;var p=f?0:i-1;var y=f?1:-1;var g=r<0||r===0&&1/r<0?1:0;r=Math.abs(r);if(isNaN(r)||r===Infinity){u=isNaN(r)?1:0;o=h}else{o=Math.floor(Math.log(r)/Math.LN2);if(r*(a=Math.pow(2,-o))<1){o--;a*=2}if(o+c>=1){r+=l/a}else{r+=l*Math.pow(2,1-c)}if(r*a>=2){o++;a/=2}if(o+c>=h){u=0;o=h}else if(o+c>=1){u=(r*a-1)*Math.pow(2,n);o=o+c}else{u=r*Math.pow(2,c-1)*Math.pow(2,n);o=0}}for(;n>=8;e[t+p]=u&255,p+=y,u/=256,n-=8){}o=o<<n|u;s+=n;for(;s>0;e[t+p]=o&255,p+=y,o/=256,s-=8){}e[t+p-y]|=g*128}}};var r={};function __nccwpck_require__(t){var f=r[t];if(f!==undefined){return f.exports}var n=r[t]={exports:{}};var i=true;try{e[t](n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(72);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvYnVmZmVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLE9BQU8sa0JBQWtCLGFBQWEsd0JBQXdCLDBCQUEwQiw4QkFBOEIsU0FBUyxTQUFTLHVEQUF1RCx5RUFBeUUsdUJBQXVCLElBQUksS0FBSyxVQUFVLHFCQUFxQix3QkFBd0Isd0JBQXdCLG9CQUFvQixlQUFlLFVBQVUsa0VBQWtFLHFCQUFxQixjQUFjLG9CQUFvQixZQUFZLHVCQUF1QixpQkFBaUIsV0FBVyxXQUFXLGtCQUFrQiw0QkFBNEIsa0JBQWtCLHdCQUF3QixNQUFNLGlCQUFpQixXQUFXLFdBQVcsZ0NBQWdDLFFBQVEsZ0JBQWdCLE1BQU0sUUFBUSxJQUFJLE1BQU0sK0ZBQStGLGlCQUFpQixnQkFBZ0IsYUFBYSxVQUFVLGdEQUFnRCxhQUFhLFVBQVUseUVBQXlFLGdCQUFnQixhQUFhLFNBQVMsNEJBQTRCLGtEQUFrRCw0QkFBNEIsTUFBTSxTQUFTLFlBQVksSUFBSSxNQUFNLHFEQUFxRCwyQkFBMkIsa0JBQWtCLDBCQUEwQixNQUFNLGVBQWUsVUFBVSxTQUFTLFlBQVksa0JBQWtCLElBQUksTUFBTSxxQ0FBcUMsVUFBVSxTQUFTLGdDQUFnQyxlQUFlLHFCQUFxQiwyQ0FBMkMsbUJBQW1CLG9CQUFvQjtBQUM5ckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixhQUFhLCtHQUErRyxnQkFBZ0Isd0JBQXdCLHVCQUF1QixpQkFBaUIsZUFBZSwrQ0FBK0MsaUdBQWlHLGtLQUFrSyw2QkFBNkIsSUFBSSx3QkFBd0IsT0FBTyxlQUFlLFlBQVksOENBQThDLDJCQUEyQixvQkFBb0IsU0FBUyxjQUFjLGlEQUFpRCwrQkFBK0IsMkNBQTJDLG9CQUFvQixFQUFFLGlEQUFpRCwrQkFBK0IsMkNBQTJDLHdCQUF3QixFQUFFLHlCQUF5QixRQUFRLHVFQUF1RSx3QkFBd0IsMENBQTBDLFNBQVMs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Q0FBK0MsY0FBYyxhQUFhLDRCQUE0QixjQUFjLDJCQUEyQixlQUFlLElBQUksS0FBSyxtQ0FBbUMsMkJBQTJCLElBQUksS0FBSyxXQUFXLE9BQU8sS0FBSyxxQkFBcUIsV0FBVyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksZ0JBQWdCLHdCQUF3QixNQUFNLEtBQUssa0NBQWtDLEtBQUssS0FBSyxLQUFLLGdDQUFnQyxTQUFTLEtBQUssS0FBSyxJQUFJLGdDQUFnQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssOEJBQThCLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2J1ZmZlci9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXt2YXIgZT17Njc1OmZ1bmN0aW9uKGUscil7XCJ1c2Ugc3RyaWN0XCI7ci5ieXRlTGVuZ3RoPWJ5dGVMZW5ndGg7ci50b0J5dGVBcnJheT10b0J5dGVBcnJheTtyLmZyb21CeXRlQXJyYXk9ZnJvbUJ5dGVBcnJheTt2YXIgdD1bXTt2YXIgZj1bXTt2YXIgbj10eXBlb2YgVWludDhBcnJheSE9PVwidW5kZWZpbmVkXCI/VWludDhBcnJheTpBcnJheTt2YXIgaT1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIjtmb3IodmFyIG89MCx1PWkubGVuZ3RoO288dTsrK28pe3Rbb109aVtvXTtmW2kuY2hhckNvZGVBdChvKV09b31mW1wiLVwiLmNoYXJDb2RlQXQoMCldPTYyO2ZbXCJfXCIuY2hhckNvZGVBdCgwKV09NjM7ZnVuY3Rpb24gZ2V0TGVucyhlKXt2YXIgcj1lLmxlbmd0aDtpZihyJTQ+MCl7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNFwiKX12YXIgdD1lLmluZGV4T2YoXCI9XCIpO2lmKHQ9PT0tMSl0PXI7dmFyIGY9dD09PXI/MDo0LXQlNDtyZXR1cm5bdCxmXX1mdW5jdGlvbiBieXRlTGVuZ3RoKGUpe3ZhciByPWdldExlbnMoZSk7dmFyIHQ9clswXTt2YXIgZj1yWzFdO3JldHVybih0K2YpKjMvNC1mfWZ1bmN0aW9uIF9ieXRlTGVuZ3RoKGUscix0KXtyZXR1cm4ocit0KSozLzQtdH1mdW5jdGlvbiB0b0J5dGVBcnJheShlKXt2YXIgcjt2YXIgdD1nZXRMZW5zKGUpO3ZhciBpPXRbMF07dmFyIG89dFsxXTt2YXIgdT1uZXcgbihfYnl0ZUxlbmd0aChlLGksbykpO3ZhciBhPTA7dmFyIHM9bz4wP2ktNDppO3ZhciBoO2ZvcihoPTA7aDxzO2grPTQpe3I9ZltlLmNoYXJDb2RlQXQoaCldPDwxOHxmW2UuY2hhckNvZGVBdChoKzEpXTw8MTJ8ZltlLmNoYXJDb2RlQXQoaCsyKV08PDZ8ZltlLmNoYXJDb2RlQXQoaCszKV07dVthKytdPXI+PjE2JjI1NTt1W2ErK109cj4+OCYyNTU7dVthKytdPXImMjU1fWlmKG89PT0yKXtyPWZbZS5jaGFyQ29kZUF0KGgpXTw8MnxmW2UuY2hhckNvZGVBdChoKzEpXT4+NDt1W2ErK109ciYyNTV9aWYobz09PTEpe3I9ZltlLmNoYXJDb2RlQXQoaCldPDwxMHxmW2UuY2hhckNvZGVBdChoKzEpXTw8NHxmW2UuY2hhckNvZGVBdChoKzIpXT4+Mjt1W2ErK109cj4+OCYyNTU7dVthKytdPXImMjU1fXJldHVybiB1fWZ1bmN0aW9uIHRyaXBsZXRUb0Jhc2U2NChlKXtyZXR1cm4gdFtlPj4xOCY2M10rdFtlPj4xMiY2M10rdFtlPj42JjYzXSt0W2UmNjNdfWZ1bmN0aW9uIGVuY29kZUNodW5rKGUscix0KXt2YXIgZjt2YXIgbj1bXTtmb3IodmFyIGk9cjtpPHQ7aSs9Myl7Zj0oZVtpXTw8MTYmMTY3MTE2ODApKyhlW2krMV08PDgmNjUyODApKyhlW2krMl0mMjU1KTtuLnB1c2godHJpcGxldFRvQmFzZTY0KGYpKX1yZXR1cm4gbi5qb2luKFwiXCIpfWZ1bmN0aW9uIGZyb21CeXRlQXJyYXkoZSl7dmFyIHI7dmFyIGY9ZS5sZW5ndGg7dmFyIG49ZiUzO3ZhciBpPVtdO3ZhciBvPTE2MzgzO2Zvcih2YXIgdT0wLGE9Zi1uO3U8YTt1Kz1vKXtpLnB1c2goZW5jb2RlQ2h1bmsoZSx1LHUrbz5hP2E6dStvKSl9aWYobj09PTEpe3I9ZVtmLTFdO2kucHVzaCh0W3I+PjJdK3Rbcjw8NCY2M10rXCI9PVwiKX1lbHNlIGlmKG49PT0yKXtyPShlW2YtMl08PDgpK2VbZi0xXTtpLnB1c2godFtyPj4xMF0rdFtyPj40JjYzXSt0W3I8PDImNjNdK1wiPVwiKX1yZXR1cm4gaS5qb2luKFwiXCIpfX0sNzI6ZnVuY3Rpb24oZSxyLHQpe1widXNlIHN0cmljdFwiO1xuLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovdmFyIGY9dCg2NzUpO3ZhciBuPXQoNzgzKTt2YXIgaT10eXBlb2YgU3ltYm9sPT09XCJmdW5jdGlvblwiJiZ0eXBlb2YgU3ltYm9sLmZvcj09PVwiZnVuY3Rpb25cIj9TeW1ib2wuZm9yKFwibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b21cIik6bnVsbDtyLkJ1ZmZlcj1CdWZmZXI7ci5TbG93QnVmZmVyPVNsb3dCdWZmZXI7ci5JTlNQRUNUX01BWF9CWVRFUz01MDt2YXIgbz0yMTQ3NDgzNjQ3O3Iua01heExlbmd0aD1vO0J1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUPXR5cGVkQXJyYXlTdXBwb3J0KCk7aWYoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUJiZ0eXBlb2YgY29uc29sZSE9PVwidW5kZWZpbmVkXCImJnR5cGVvZiBjb25zb2xlLmVycm9yPT09XCJmdW5jdGlvblwiKXtjb25zb2xlLmVycm9yKFwiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IFwiK1wiYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC5cIil9ZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQoKXt0cnl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkoMSk7dmFyIHI9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O09iamVjdC5zZXRQcm90b3R5cGVPZihyLFVpbnQ4QXJyYXkucHJvdG90eXBlKTtPYmplY3Quc2V0UHJvdG90eXBlT2YoZSxyKTtyZXR1cm4gZS5mb28oKT09PTQyfWNhdGNoKGUpe3JldHVybiBmYWxzZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlci5wcm90b3R5cGUsXCJwYXJlbnRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe2lmKCFCdWZmZXIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5idWZmZXJ9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlci5wcm90b3R5cGUsXCJvZmZzZXRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe2lmKCFCdWZmZXIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pO2Z1bmN0aW9uIGNyZWF0ZUJ1ZmZlcihlKXtpZihlPm8pe3Rocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgXCInK2UrJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcInNpemVcIicpfXZhciByPW5ldyBVaW50OEFycmF5KGUpO09iamVjdC5zZXRQcm90b3R5cGVPZihyLEJ1ZmZlci5wcm90b3R5cGUpO3JldHVybiByfWZ1bmN0aW9uIEJ1ZmZlcihlLHIsdCl7aWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXtpZih0eXBlb2Ygcj09PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmluZ1wiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyl9cmV0dXJuIGFsbG9jVW5zYWZlKGUpfXJldHVybiBmcm9tKGUscix0KX1CdWZmZXIucG9vbFNpemU9ODE5MjtmdW5jdGlvbiBmcm9tKGUscix0KXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe3JldHVybiBmcm9tU3RyaW5nKGUscil9aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGUpKXtyZXR1cm4gZnJvbUFycmF5TGlrZShlKX1pZihlPT1udWxsKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgXCIrXCJvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSBcIit0eXBlb2YgZSl9aWYoaXNJbnN0YW5jZShlLEFycmF5QnVmZmVyKXx8ZSYmaXNJbnN0YW5jZShlLmJ1ZmZlcixBcnJheUJ1ZmZlcikpe3JldHVybiBmcm9tQXJyYXlCdWZmZXIoZSxyLHQpfWlmKHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciE9PVwidW5kZWZpbmVkXCImJihpc0luc3RhbmNlKGUsU2hhcmVkQXJyYXlCdWZmZXIpfHxlJiZpc0luc3RhbmNlKGUuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpe3JldHVybiBmcm9tQXJyYXlCdWZmZXIoZSxyLHQpfWlmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwidmFsdWVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKX12YXIgZj1lLnZhbHVlT2YmJmUudmFsdWVPZigpO2lmKGYhPW51bGwmJmYhPT1lKXtyZXR1cm4gQnVmZmVyLmZyb20oZixyLHQpfXZhciBuPWZyb21PYmplY3QoZSk7aWYobilyZXR1cm4gbjtpZih0eXBlb2YgU3ltYm9sIT09XCJ1bmRlZmluZWRcIiYmU3ltYm9sLnRvUHJpbWl0aXZlIT1udWxsJiZ0eXBlb2YgZVtTeW1ib2wudG9QcmltaXRpdmVdPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gQnVmZmVyLmZyb20oZVtTeW1ib2wudG9QcmltaXRpdmVdKFwic3RyaW5nXCIpLHIsdCl9dGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIFwiK1wib3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgXCIrdHlwZW9mIGUpfUJ1ZmZlci5mcm9tPWZ1bmN0aW9uKGUscix0KXtyZXR1cm4gZnJvbShlLHIsdCl9O09iamVjdC5zZXRQcm90b3R5cGVPZihCdWZmZXIucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKTtPYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLFVpbnQ4QXJyYXkpO2Z1bmN0aW9uIGFzc2VydFNpemUoZSl7aWYodHlwZW9mIGUhPT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyl9ZWxzZSBpZihlPDApe3Rocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgXCInK2UrJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcInNpemVcIicpfX1mdW5jdGlvbiBhbGxvYyhlLHIsdCl7YXNzZXJ0U2l6ZShlKTtpZihlPD0wKXtyZXR1cm4gY3JlYXRlQnVmZmVyKGUpfWlmKHIhPT11bmRlZmluZWQpe3JldHVybiB0eXBlb2YgdD09PVwic3RyaW5nXCI/Y3JlYXRlQnVmZmVyKGUpLmZpbGwocix0KTpjcmVhdGVCdWZmZXIoZSkuZmlsbChyKX1yZXR1cm4gY3JlYXRlQnVmZmVyKGUpfUJ1ZmZlci5hbGxvYz1mdW5jdGlvbihlLHIsdCl7cmV0dXJuIGFsbG9jKGUscix0KX07ZnVuY3Rpb24gYWxsb2NVbnNhZmUoZSl7YXNzZXJ0U2l6ZShlKTtyZXR1cm4gY3JlYXRlQnVmZmVyKGU8MD8wOmNoZWNrZWQoZSl8MCl9QnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe3JldHVybiBhbGxvY1Vuc2FmZShlKX07QnVmZmVyLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihlKXtyZXR1cm4gYWxsb2NVbnNhZmUoZSl9O2Z1bmN0aW9uIGZyb21TdHJpbmcoZSxyKXtpZih0eXBlb2YgciE9PVwic3RyaW5nXCJ8fHI9PT1cIlwiKXtyPVwidXRmOFwifWlmKCFCdWZmZXIuaXNFbmNvZGluZyhyKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK3IpfXZhciB0PWJ5dGVMZW5ndGgoZSxyKXwwO3ZhciBmPWNyZWF0ZUJ1ZmZlcih0KTt2YXIgbj1mLndyaXRlKGUscik7aWYobiE9PXQpe2Y9Zi5zbGljZSgwLG4pfXJldHVybiBmfWZ1bmN0aW9uIGZyb21BcnJheUxpa2UoZSl7dmFyIHI9ZS5sZW5ndGg8MD8wOmNoZWNrZWQoZS5sZW5ndGgpfDA7dmFyIHQ9Y3JlYXRlQnVmZmVyKHIpO2Zvcih2YXIgZj0wO2Y8cjtmKz0xKXt0W2ZdPWVbZl0mMjU1fXJldHVybiB0fWZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlcihlLHIsdCl7aWYocjwwfHxlLmJ5dGVMZW5ndGg8cil7dGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1wib2Zmc2V0XCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyl9aWYoZS5ieXRlTGVuZ3RoPHIrKHR8fDApKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJsZW5ndGhcIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKX12YXIgZjtpZihyPT09dW5kZWZpbmVkJiZ0PT09dW5kZWZpbmVkKXtmPW5ldyBVaW50OEFycmF5KGUpfWVsc2UgaWYodD09PXVuZGVmaW5lZCl7Zj1uZXcgVWludDhBcnJheShlLHIpfWVsc2V7Zj1uZXcgVWludDhBcnJheShlLHIsdCl9T2JqZWN0LnNldFByb3RvdHlwZU9mKGYsQnVmZmVyLnByb3RvdHlwZSk7cmV0dXJuIGZ9ZnVuY3Rpb24gZnJvbU9iamVjdChlKXtpZihCdWZmZXIuaXNCdWZmZXIoZSkpe3ZhciByPWNoZWNrZWQoZS5sZW5ndGgpfDA7dmFyIHQ9Y3JlYXRlQnVmZmVyKHIpO2lmKHQubGVuZ3RoPT09MCl7cmV0dXJuIHR9ZS5jb3B5KHQsMCwwLHIpO3JldHVybiB0fWlmKGUubGVuZ3RoIT09dW5kZWZpbmVkKXtpZih0eXBlb2YgZS5sZW5ndGghPT1cIm51bWJlclwifHxudW1iZXJJc05hTihlLmxlbmd0aCkpe3JldHVybiBjcmVhdGVCdWZmZXIoMCl9cmV0dXJuIGZyb21BcnJheUxpa2UoZSl9aWYoZS50eXBlPT09XCJCdWZmZXJcIiYmQXJyYXkuaXNBcnJheShlLmRhdGEpKXtyZXR1cm4gZnJvbUFycmF5TGlrZShlLmRhdGEpfX1mdW5jdGlvbiBjaGVja2VkKGUpe2lmKGU+PW8pe3Rocm93IG5ldyBSYW5nZUVycm9yKFwiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBcIitcInNpemU6IDB4XCIrby50b1N0cmluZygxNikrXCIgYnl0ZXNcIil9cmV0dXJuIGV8MH1mdW5jdGlvbiBTbG93QnVmZmVyKGUpe2lmKCtlIT1lKXtlPTB9cmV0dXJuIEJ1ZmZlci5hbGxvYygrZSl9QnVmZmVyLmlzQnVmZmVyPWZ1bmN0aW9uIGlzQnVmZmVyKGUpe3JldHVybiBlIT1udWxsJiZlLl9pc0J1ZmZlcj09PXRydWUmJmUhPT1CdWZmZXIucHJvdG90eXBlfTtCdWZmZXIuY29tcGFyZT1mdW5jdGlvbiBjb21wYXJlKGUscil7aWYoaXNJbnN0YW5jZShlLFVpbnQ4QXJyYXkpKWU9QnVmZmVyLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpO2lmKGlzSW5zdGFuY2UocixVaW50OEFycmF5KSlyPUJ1ZmZlci5mcm9tKHIsci5vZmZzZXQsci5ieXRlTGVuZ3RoKTtpZighQnVmZmVyLmlzQnVmZmVyKGUpfHwhQnVmZmVyLmlzQnVmZmVyKHIpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJidWYxXCIsIFwiYnVmMlwiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyl9aWYoZT09PXIpcmV0dXJuIDA7dmFyIHQ9ZS5sZW5ndGg7dmFyIGY9ci5sZW5ndGg7Zm9yKHZhciBuPTAsaT1NYXRoLm1pbih0LGYpO248aTsrK24pe2lmKGVbbl0hPT1yW25dKXt0PWVbbl07Zj1yW25dO2JyZWFrfX1pZih0PGYpcmV0dXJuLTE7aWYoZjx0KXJldHVybiAxO3JldHVybiAwfTtCdWZmZXIuaXNFbmNvZGluZz1mdW5jdGlvbiBpc0VuY29kaW5nKGUpe3N3aXRjaChTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSl7Y2FzZVwiaGV4XCI6Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6Y2FzZVwiYXNjaWlcIjpjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpjYXNlXCJiYXNlNjRcIjpjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm4gdHJ1ZTtkZWZhdWx0OnJldHVybiBmYWxzZX19O0J1ZmZlci5jb25jYXQ9ZnVuY3Rpb24gY29uY2F0KGUscil7aWYoIUFycmF5LmlzQXJyYXkoZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpfWlmKGUubGVuZ3RoPT09MCl7cmV0dXJuIEJ1ZmZlci5hbGxvYygwKX12YXIgdDtpZihyPT09dW5kZWZpbmVkKXtyPTA7Zm9yKHQ9MDt0PGUubGVuZ3RoOysrdCl7cis9ZVt0XS5sZW5ndGh9fXZhciBmPUJ1ZmZlci5hbGxvY1Vuc2FmZShyKTt2YXIgbj0wO2Zvcih0PTA7dDxlLmxlbmd0aDsrK3Qpe3ZhciBpPWVbdF07aWYoaXNJbnN0YW5jZShpLFVpbnQ4QXJyYXkpKXtpPUJ1ZmZlci5mcm9tKGkpfWlmKCFCdWZmZXIuaXNCdWZmZXIoaSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpfWkuY29weShmLG4pO24rPWkubGVuZ3RofXJldHVybiBmfTtmdW5jdGlvbiBieXRlTGVuZ3RoKGUscil7aWYoQnVmZmVyLmlzQnVmZmVyKGUpKXtyZXR1cm4gZS5sZW5ndGh9aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGUpfHxpc0luc3RhbmNlKGUsQXJyYXlCdWZmZXIpKXtyZXR1cm4gZS5ieXRlTGVuZ3RofWlmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwic3RyaW5nXCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuICcrXCJSZWNlaXZlZCB0eXBlIFwiK3R5cGVvZiBlKX12YXIgdD1lLmxlbmd0aDt2YXIgZj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXT09PXRydWU7aWYoIWYmJnQ9PT0wKXJldHVybiAwO3ZhciBuPWZhbHNlO2Zvcig7Oyl7c3dpdGNoKHIpe2Nhc2VcImFzY2lpXCI6Y2FzZVwibGF0aW4xXCI6Y2FzZVwiYmluYXJ5XCI6cmV0dXJuIHQ7Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6cmV0dXJuIHV0ZjhUb0J5dGVzKGUpLmxlbmd0aDtjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm4gdCoyO2Nhc2VcImhleFwiOnJldHVybiB0Pj4+MTtjYXNlXCJiYXNlNjRcIjpyZXR1cm4gYmFzZTY0VG9CeXRlcyhlKS5sZW5ndGg7ZGVmYXVsdDppZihuKXtyZXR1cm4gZj8tMTp1dGY4VG9CeXRlcyhlKS5sZW5ndGh9cj0oXCJcIityKS50b0xvd2VyQ2FzZSgpO249dHJ1ZX19fUJ1ZmZlci5ieXRlTGVuZ3RoPWJ5dGVMZW5ndGg7ZnVuY3Rpb24gc2xvd1RvU3RyaW5nKGUscix0KXt2YXIgZj1mYWxzZTtpZihyPT09dW5kZWZpbmVkfHxyPDApe3I9MH1pZihyPnRoaXMubGVuZ3RoKXtyZXR1cm5cIlwifWlmKHQ9PT11bmRlZmluZWR8fHQ+dGhpcy5sZW5ndGgpe3Q9dGhpcy5sZW5ndGh9aWYodDw9MCl7cmV0dXJuXCJcIn10Pj4+PTA7cj4+Pj0wO2lmKHQ8PXIpe3JldHVyblwiXCJ9aWYoIWUpZT1cInV0ZjhcIjt3aGlsZSh0cnVlKXtzd2l0Y2goZSl7Y2FzZVwiaGV4XCI6cmV0dXJuIGhleFNsaWNlKHRoaXMscix0KTtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpyZXR1cm4gdXRmOFNsaWNlKHRoaXMscix0KTtjYXNlXCJhc2NpaVwiOnJldHVybiBhc2NpaVNsaWNlKHRoaXMscix0KTtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gbGF0aW4xU2xpY2UodGhpcyxyLHQpO2Nhc2VcImJhc2U2NFwiOnJldHVybiBiYXNlNjRTbGljZSh0aGlzLHIsdCk7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLHIsdCk7ZGVmYXVsdDppZihmKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIitlKTtlPShlK1wiXCIpLnRvTG93ZXJDYXNlKCk7Zj10cnVlfX19QnVmZmVyLnByb3RvdHlwZS5faXNCdWZmZXI9dHJ1ZTtmdW5jdGlvbiBzd2FwKGUscix0KXt2YXIgZj1lW3JdO2Vbcl09ZVt0XTtlW3RdPWZ9QnVmZmVyLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24gc3dhcDE2KCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSUyIT09MCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0c1wiKX1mb3IodmFyIHI9MDtyPGU7cis9Mil7c3dhcCh0aGlzLHIscisxKX1yZXR1cm4gdGhpc307QnVmZmVyLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24gc3dhcDMyKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU0IT09MCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0c1wiKX1mb3IodmFyIHI9MDtyPGU7cis9NCl7c3dhcCh0aGlzLHIsciszKTtzd2FwKHRoaXMscisxLHIrMil9cmV0dXJuIHRoaXN9O0J1ZmZlci5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uIHN3YXA2NCgpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlOCE9PTApe3Rocm93IG5ldyBSYW5nZUVycm9yKFwiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHNcIil9Zm9yKHZhciByPTA7cjxlO3IrPTgpe3N3YXAodGhpcyxyLHIrNyk7c3dhcCh0aGlzLHIrMSxyKzYpO3N3YXAodGhpcyxyKzIscis1KTtzd2FwKHRoaXMsciszLHIrNCl9cmV0dXJuIHRoaXN9O0J1ZmZlci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlPT09MClyZXR1cm5cIlwiO2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXJldHVybiB1dGY4U2xpY2UodGhpcywwLGUpO3JldHVybiBzbG93VG9TdHJpbmcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtCdWZmZXIucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPUJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmc7QnVmZmVyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24gZXF1YWxzKGUpe2lmKCFCdWZmZXIuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXJcIik7aWYodGhpcz09PWUpcmV0dXJuIHRydWU7cmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsZSk9PT0wfTtCdWZmZXIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24gaW5zcGVjdCgpe3ZhciBlPVwiXCI7dmFyIHQ9ci5JTlNQRUNUX01BWF9CWVRFUztlPXRoaXMudG9TdHJpbmcoXCJoZXhcIiwwLHQpLnJlcGxhY2UoLyguezJ9KS9nLFwiJDEgXCIpLnRyaW0oKTtpZih0aGlzLmxlbmd0aD50KWUrPVwiIC4uLiBcIjtyZXR1cm5cIjxCdWZmZXIgXCIrZStcIj5cIn07aWYoaSl7QnVmZmVyLnByb3RvdHlwZVtpXT1CdWZmZXIucHJvdG90eXBlLmluc3BlY3R9QnVmZmVyLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uIGNvbXBhcmUoZSxyLHQsZixuKXtpZihpc0luc3RhbmNlKGUsVWludDhBcnJheSkpe2U9QnVmZmVyLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpfWlmKCFCdWZmZXIuaXNCdWZmZXIoZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInRhcmdldFwiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuICcrXCJSZWNlaXZlZCB0eXBlIFwiK3R5cGVvZiBlKX1pZihyPT09dW5kZWZpbmVkKXtyPTB9aWYodD09PXVuZGVmaW5lZCl7dD1lP2UubGVuZ3RoOjB9aWYoZj09PXVuZGVmaW5lZCl7Zj0wfWlmKG49PT11bmRlZmluZWQpe249dGhpcy5sZW5ndGh9aWYocjwwfHx0PmUubGVuZ3RofHxmPDB8fG4+dGhpcy5sZW5ndGgpe3Rocm93IG5ldyBSYW5nZUVycm9yKFwib3V0IG9mIHJhbmdlIGluZGV4XCIpfWlmKGY+PW4mJnI+PXQpe3JldHVybiAwfWlmKGY+PW4pe3JldHVybi0xfWlmKHI+PXQpe3JldHVybiAxfXI+Pj49MDt0Pj4+PTA7Zj4+Pj0wO24+Pj49MDtpZih0aGlzPT09ZSlyZXR1cm4gMDt2YXIgaT1uLWY7dmFyIG89dC1yO3ZhciB1PU1hdGgubWluKGksbyk7dmFyIGE9dGhpcy5zbGljZShmLG4pO3ZhciBzPWUuc2xpY2Uocix0KTtmb3IodmFyIGg9MDtoPHU7KytoKXtpZihhW2hdIT09c1toXSl7aT1hW2hdO289c1toXTticmVha319aWYoaTxvKXJldHVybi0xO2lmKG88aSlyZXR1cm4gMTtyZXR1cm4gMH07ZnVuY3Rpb24gYmlkaXJlY3Rpb25hbEluZGV4T2YoZSxyLHQsZixuKXtpZihlLmxlbmd0aD09PTApcmV0dXJuLTE7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXtmPXQ7dD0wfWVsc2UgaWYodD4yMTQ3NDgzNjQ3KXt0PTIxNDc0ODM2NDd9ZWxzZSBpZih0PC0yMTQ3NDgzNjQ4KXt0PS0yMTQ3NDgzNjQ4fXQ9K3Q7aWYobnVtYmVySXNOYU4odCkpe3Q9bj8wOmUubGVuZ3RoLTF9aWYodDwwKXQ9ZS5sZW5ndGgrdDtpZih0Pj1lLmxlbmd0aCl7aWYobilyZXR1cm4tMTtlbHNlIHQ9ZS5sZW5ndGgtMX1lbHNlIGlmKHQ8MCl7aWYobil0PTA7ZWxzZSByZXR1cm4tMX1pZih0eXBlb2Ygcj09PVwic3RyaW5nXCIpe3I9QnVmZmVyLmZyb20ocixmKX1pZihCdWZmZXIuaXNCdWZmZXIocikpe2lmKHIubGVuZ3RoPT09MCl7cmV0dXJuLTF9cmV0dXJuIGFycmF5SW5kZXhPZihlLHIsdCxmLG4pfWVsc2UgaWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXImMjU1O2lmKHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mPT09XCJmdW5jdGlvblwiKXtpZihuKXtyZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUscix0KX1lbHNle3JldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGUscix0KX19cmV0dXJuIGFycmF5SW5kZXhPZihlLFtyXSx0LGYsbil9dGhyb3cgbmV3IFR5cGVFcnJvcihcInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlclwiKX1mdW5jdGlvbiBhcnJheUluZGV4T2YoZSxyLHQsZixuKXt2YXIgaT0xO3ZhciBvPWUubGVuZ3RoO3ZhciB1PXIubGVuZ3RoO2lmKGYhPT11bmRlZmluZWQpe2Y9U3RyaW5nKGYpLnRvTG93ZXJDYXNlKCk7aWYoZj09PVwidWNzMlwifHxmPT09XCJ1Y3MtMlwifHxmPT09XCJ1dGYxNmxlXCJ8fGY9PT1cInV0Zi0xNmxlXCIpe2lmKGUubGVuZ3RoPDJ8fHIubGVuZ3RoPDIpe3JldHVybi0xfWk9MjtvLz0yO3UvPTI7dC89Mn19ZnVuY3Rpb24gcmVhZChlLHIpe2lmKGk9PT0xKXtyZXR1cm4gZVtyXX1lbHNle3JldHVybiBlLnJlYWRVSW50MTZCRShyKmkpfX12YXIgYTtpZihuKXt2YXIgcz0tMTtmb3IoYT10O2E8bzthKyspe2lmKHJlYWQoZSxhKT09PXJlYWQocixzPT09LTE/MDphLXMpKXtpZihzPT09LTEpcz1hO2lmKGEtcysxPT09dSlyZXR1cm4gcyppfWVsc2V7aWYocyE9PS0xKWEtPWEtcztzPS0xfX19ZWxzZXtpZih0K3U+byl0PW8tdTtmb3IoYT10O2E+PTA7YS0tKXt2YXIgaD10cnVlO2Zvcih2YXIgYz0wO2M8dTtjKyspe2lmKHJlYWQoZSxhK2MpIT09cmVhZChyLGMpKXtoPWZhbHNlO2JyZWFrfX1pZihoKXJldHVybiBhfX1yZXR1cm4tMX1CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uIGluY2x1ZGVzKGUscix0KXtyZXR1cm4gdGhpcy5pbmRleE9mKGUscix0KSE9PS0xfTtCdWZmZXIucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24gaW5kZXhPZihlLHIsdCl7cmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsZSxyLHQsdHJ1ZSl9O0J1ZmZlci5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24gbGFzdEluZGV4T2YoZSxyLHQpe3JldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLGUscix0LGZhbHNlKX07ZnVuY3Rpb24gaGV4V3JpdGUoZSxyLHQsZil7dD1OdW1iZXIodCl8fDA7dmFyIG49ZS5sZW5ndGgtdDtpZighZil7Zj1ufWVsc2V7Zj1OdW1iZXIoZik7aWYoZj5uKXtmPW59fXZhciBpPXIubGVuZ3RoO2lmKGY+aS8yKXtmPWkvMn1mb3IodmFyIG89MDtvPGY7KytvKXt2YXIgdT1wYXJzZUludChyLnN1YnN0cihvKjIsMiksMTYpO2lmKG51bWJlcklzTmFOKHUpKXJldHVybiBvO2VbdCtvXT11fXJldHVybiBvfWZ1bmN0aW9uIHV0ZjhXcml0ZShlLHIsdCxmKXtyZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhyLGUubGVuZ3RoLXQpLGUsdCxmKX1mdW5jdGlvbiBhc2NpaVdyaXRlKGUscix0LGYpe3JldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhyKSxlLHQsZil9ZnVuY3Rpb24gbGF0aW4xV3JpdGUoZSxyLHQsZil7cmV0dXJuIGFzY2lpV3JpdGUoZSxyLHQsZil9ZnVuY3Rpb24gYmFzZTY0V3JpdGUoZSxyLHQsZil7cmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhyKSxlLHQsZil9ZnVuY3Rpb24gdWNzMldyaXRlKGUscix0LGYpe3JldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHIsZS5sZW5ndGgtdCksZSx0LGYpfUJ1ZmZlci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24gd3JpdGUoZSxyLHQsZil7aWYocj09PXVuZGVmaW5lZCl7Zj1cInV0ZjhcIjt0PXRoaXMubGVuZ3RoO3I9MH1lbHNlIGlmKHQ9PT11bmRlZmluZWQmJnR5cGVvZiByPT09XCJzdHJpbmdcIil7Zj1yO3Q9dGhpcy5sZW5ndGg7cj0wfWVsc2UgaWYoaXNGaW5pdGUocikpe3I9cj4+PjA7aWYoaXNGaW5pdGUodCkpe3Q9dD4+PjA7aWYoZj09PXVuZGVmaW5lZClmPVwidXRmOFwifWVsc2V7Zj10O3Q9dW5kZWZpbmVkfX1lbHNle3Rocm93IG5ldyBFcnJvcihcIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkXCIpfXZhciBuPXRoaXMubGVuZ3RoLXI7aWYodD09PXVuZGVmaW5lZHx8dD5uKXQ9bjtpZihlLmxlbmd0aD4wJiYodDwwfHxyPDApfHxyPnRoaXMubGVuZ3RoKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzXCIpfWlmKCFmKWY9XCJ1dGY4XCI7dmFyIGk9ZmFsc2U7Zm9yKDs7KXtzd2l0Y2goZil7Y2FzZVwiaGV4XCI6cmV0dXJuIGhleFdyaXRlKHRoaXMsZSxyLHQpO2Nhc2VcInV0ZjhcIjpjYXNlXCJ1dGYtOFwiOnJldHVybiB1dGY4V3JpdGUodGhpcyxlLHIsdCk7Y2FzZVwiYXNjaWlcIjpyZXR1cm4gYXNjaWlXcml0ZSh0aGlzLGUscix0KTtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gbGF0aW4xV3JpdGUodGhpcyxlLHIsdCk7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsZSxyLHQpO2Nhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiB1Y3MyV3JpdGUodGhpcyxlLHIsdCk7ZGVmYXVsdDppZihpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIitmKTtmPShcIlwiK2YpLnRvTG93ZXJDYXNlKCk7aT10cnVlfX19O0J1ZmZlci5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uIHRvSlNPTigpe3JldHVybnt0eXBlOlwiQnVmZmVyXCIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtmdW5jdGlvbiBiYXNlNjRTbGljZShlLHIsdCl7aWYocj09PTAmJnQ9PT1lLmxlbmd0aCl7cmV0dXJuIGYuZnJvbUJ5dGVBcnJheShlKX1lbHNle3JldHVybiBmLmZyb21CeXRlQXJyYXkoZS5zbGljZShyLHQpKX19ZnVuY3Rpb24gdXRmOFNsaWNlKGUscix0KXt0PU1hdGgubWluKGUubGVuZ3RoLHQpO3ZhciBmPVtdO3ZhciBuPXI7d2hpbGUobjx0KXt2YXIgaT1lW25dO3ZhciBvPW51bGw7dmFyIHU9aT4yMzk/NDppPjIyMz8zOmk+MTkxPzI6MTtpZihuK3U8PXQpe3ZhciBhLHMsaCxjO3N3aXRjaCh1KXtjYXNlIDE6aWYoaTwxMjgpe289aX1icmVhaztjYXNlIDI6YT1lW24rMV07aWYoKGEmMTkyKT09PTEyOCl7Yz0oaSYzMSk8PDZ8YSY2MztpZihjPjEyNyl7bz1jfX1icmVhaztjYXNlIDM6YT1lW24rMV07cz1lW24rMl07aWYoKGEmMTkyKT09PTEyOCYmKHMmMTkyKT09PTEyOCl7Yz0oaSYxNSk8PDEyfChhJjYzKTw8NnxzJjYzO2lmKGM+MjA0NyYmKGM8NTUyOTZ8fGM+NTczNDMpKXtvPWN9fWJyZWFrO2Nhc2UgNDphPWVbbisxXTtzPWVbbisyXTtoPWVbbiszXTtpZigoYSYxOTIpPT09MTI4JiYocyYxOTIpPT09MTI4JiYoaCYxOTIpPT09MTI4KXtjPShpJjE1KTw8MTh8KGEmNjMpPDwxMnwocyY2Myk8PDZ8aCY2MztpZihjPjY1NTM1JiZjPDExMTQxMTIpe289Y319fX1pZihvPT09bnVsbCl7bz02NTUzMzt1PTF9ZWxzZSBpZihvPjY1NTM1KXtvLT02NTUzNjtmLnB1c2gobz4+PjEwJjEwMjN8NTUyOTYpO289NTYzMjB8byYxMDIzfWYucHVzaChvKTtuKz11fXJldHVybiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkoZil9dmFyIHU9NDA5NjtmdW5jdGlvbiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkoZSl7dmFyIHI9ZS5sZW5ndGg7aWYocjw9dSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUpfXZhciB0PVwiXCI7dmFyIGY9MDt3aGlsZShmPHIpe3QrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUuc2xpY2UoZixmKz11KSl9cmV0dXJuIHR9ZnVuY3Rpb24gYXNjaWlTbGljZShlLHIsdCl7dmFyIGY9XCJcIjt0PU1hdGgubWluKGUubGVuZ3RoLHQpO2Zvcih2YXIgbj1yO248dDsrK24pe2YrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtuXSYxMjcpfXJldHVybiBmfWZ1bmN0aW9uIGxhdGluMVNsaWNlKGUscix0KXt2YXIgZj1cIlwiO3Q9TWF0aC5taW4oZS5sZW5ndGgsdCk7Zm9yKHZhciBuPXI7bjx0Oysrbil7Zis9U3RyaW5nLmZyb21DaGFyQ29kZShlW25dKX1yZXR1cm4gZn1mdW5jdGlvbiBoZXhTbGljZShlLHIsdCl7dmFyIGY9ZS5sZW5ndGg7aWYoIXJ8fHI8MClyPTA7aWYoIXR8fHQ8MHx8dD5mKXQ9Zjt2YXIgbj1cIlwiO2Zvcih2YXIgaT1yO2k8dDsrK2kpe24rPXNbZVtpXV19cmV0dXJuIG59ZnVuY3Rpb24gdXRmMTZsZVNsaWNlKGUscix0KXt2YXIgZj1lLnNsaWNlKHIsdCk7dmFyIG49XCJcIjtmb3IodmFyIGk9MDtpPGYubGVuZ3RoO2krPTIpe24rPVN0cmluZy5mcm9tQ2hhckNvZGUoZltpXStmW2krMV0qMjU2KX1yZXR1cm4gbn1CdWZmZXIucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uIHNsaWNlKGUscil7dmFyIHQ9dGhpcy5sZW5ndGg7ZT1+fmU7cj1yPT09dW5kZWZpbmVkP3Q6fn5yO2lmKGU8MCl7ZSs9dDtpZihlPDApZT0wfWVsc2UgaWYoZT50KXtlPXR9aWYocjwwKXtyKz10O2lmKHI8MClyPTB9ZWxzZSBpZihyPnQpe3I9dH1pZihyPGUpcj1lO3ZhciBmPXRoaXMuc3ViYXJyYXkoZSxyKTtPYmplY3Quc2V0UHJvdG90eXBlT2YoZixCdWZmZXIucHJvdG90eXBlKTtyZXR1cm4gZn07ZnVuY3Rpb24gY2hlY2tPZmZzZXQoZSxyLHQpe2lmKGUlMSE9PTB8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIm9mZnNldCBpcyBub3QgdWludFwiKTtpZihlK3I+dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGhcIil9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uIHJlYWRVSW50TEUoZSxyLHQpe2U9ZT4+PjA7cj1yPj4+MDtpZighdCljaGVja09mZnNldChlLHIsdGhpcy5sZW5ndGgpO3ZhciBmPXRoaXNbZV07dmFyIG49MTt2YXIgaT0wO3doaWxlKCsraTxyJiYobio9MjU2KSl7Zis9dGhpc1tlK2ldKm59cmV0dXJuIGZ9O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbiByZWFkVUludEJFKGUscix0KXtlPWU+Pj4wO3I9cj4+PjA7aWYoIXQpe2NoZWNrT2Zmc2V0KGUscix0aGlzLmxlbmd0aCl9dmFyIGY9dGhpc1tlKy0tcl07dmFyIG49MTt3aGlsZShyPjAmJihuKj0yNTYpKXtmKz10aGlzW2UrLS1yXSpufXJldHVybiBmfTtCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbiByZWFkVUludDgoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsMSx0aGlzLmxlbmd0aCk7cmV0dXJuIHRoaXNbZV19O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uIHJlYWRVSW50MTZMRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSwyLHRoaXMubGVuZ3RoKTtyZXR1cm4gdGhpc1tlXXx0aGlzW2UrMV08PDh9O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uIHJlYWRVSW50MTZCRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSwyLHRoaXMubGVuZ3RoKTtyZXR1cm4gdGhpc1tlXTw8OHx0aGlzW2UrMV19O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uIHJlYWRVSW50MzJMRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKTtyZXR1cm4odGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNikrdGhpc1tlKzNdKjE2Nzc3MjE2fTtCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbiByZWFkVUludDMyQkUoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsNCx0aGlzLmxlbmd0aCk7cmV0dXJuIHRoaXNbZV0qMTY3NzcyMTYrKHRoaXNbZSsxXTw8MTZ8dGhpc1tlKzJdPDw4fHRoaXNbZSszXSl9O0J1ZmZlci5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uIHJlYWRJbnRMRShlLHIsdCl7ZT1lPj4+MDtyPXI+Pj4wO2lmKCF0KWNoZWNrT2Zmc2V0KGUscix0aGlzLmxlbmd0aCk7dmFyIGY9dGhpc1tlXTt2YXIgbj0xO3ZhciBpPTA7d2hpbGUoKytpPHImJihuKj0yNTYpKXtmKz10aGlzW2UraV0qbn1uKj0xMjg7aWYoZj49bilmLT1NYXRoLnBvdygyLDgqcik7cmV0dXJuIGZ9O0J1ZmZlci5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uIHJlYWRJbnRCRShlLHIsdCl7ZT1lPj4+MDtyPXI+Pj4wO2lmKCF0KWNoZWNrT2Zmc2V0KGUscix0aGlzLmxlbmd0aCk7dmFyIGY9cjt2YXIgbj0xO3ZhciBpPXRoaXNbZSstLWZdO3doaWxlKGY+MCYmKG4qPTI1Nikpe2krPXRoaXNbZSstLWZdKm59bio9MTI4O2lmKGk+PW4paS09TWF0aC5wb3coMiw4KnIpO3JldHVybiBpfTtCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uIHJlYWRJbnQ4KGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDEsdGhpcy5sZW5ndGgpO2lmKCEodGhpc1tlXSYxMjgpKXJldHVybiB0aGlzW2VdO3JldHVybigyNTUtdGhpc1tlXSsxKSotMX07QnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbiByZWFkSW50MTZMRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSwyLHRoaXMubGVuZ3RoKTt2YXIgdD10aGlzW2VdfHRoaXNbZSsxXTw8ODtyZXR1cm4gdCYzMjc2OD90fDQyOTQ5MDE3NjA6dH07QnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbiByZWFkSW50MTZCRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSwyLHRoaXMubGVuZ3RoKTt2YXIgdD10aGlzW2UrMV18dGhpc1tlXTw8ODtyZXR1cm4gdCYzMjc2OD90fDQyOTQ5MDE3NjA6dH07QnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbiByZWFkSW50MzJMRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKTtyZXR1cm4gdGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNnx0aGlzW2UrM108PDI0fTtCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uIHJlYWRJbnQzMkJFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpO3JldHVybiB0aGlzW2VdPDwyNHx0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM119O0J1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24gcmVhZEZsb2F0TEUoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsNCx0aGlzLmxlbmd0aCk7cmV0dXJuIG4ucmVhZCh0aGlzLGUsdHJ1ZSwyMyw0KX07QnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbiByZWFkRmxvYXRCRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKTtyZXR1cm4gbi5yZWFkKHRoaXMsZSxmYWxzZSwyMyw0KX07QnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24gcmVhZERvdWJsZUxFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDgsdGhpcy5sZW5ndGgpO3JldHVybiBuLnJlYWQodGhpcyxlLHRydWUsNTIsOCl9O0J1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uIHJlYWREb3VibGVCRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw4LHRoaXMubGVuZ3RoKTtyZXR1cm4gbi5yZWFkKHRoaXMsZSxmYWxzZSw1Miw4KX07ZnVuY3Rpb24gY2hlY2tJbnQoZSxyLHQsZixuLGkpe2lmKCFCdWZmZXIuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignXCJidWZmZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYocj5ufHxyPGkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYodCtmPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpfUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24gd3JpdGVVSW50TEUoZSxyLHQsZil7ZT0rZTtyPXI+Pj4wO3Q9dD4+PjA7aWYoIWYpe3ZhciBuPU1hdGgucG93KDIsOCp0KS0xO2NoZWNrSW50KHRoaXMsZSxyLHQsbiwwKX12YXIgaT0xO3ZhciBvPTA7dGhpc1tyXT1lJjI1NTt3aGlsZSgrK288dCYmKGkqPTI1Nikpe3RoaXNbcitvXT1lL2kmMjU1fXJldHVybiByK3R9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24gd3JpdGVVSW50QkUoZSxyLHQsZil7ZT0rZTtyPXI+Pj4wO3Q9dD4+PjA7aWYoIWYpe3ZhciBuPU1hdGgucG93KDIsOCp0KS0xO2NoZWNrSW50KHRoaXMsZSxyLHQsbiwwKX12YXIgaT10LTE7dmFyIG89MTt0aGlzW3IraV09ZSYyNTU7d2hpbGUoLS1pPj0wJiYobyo9MjU2KSl7dGhpc1tyK2ldPWUvbyYyNTV9cmV0dXJuIHIrdH07QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uIHdyaXRlVUludDgoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciwxLDI1NSwwKTt0aGlzW3JdPWUmMjU1O3JldHVybiByKzF9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbiB3cml0ZVVJbnQxNkxFKGUscix0KXtlPStlO3I9cj4+PjA7aWYoIXQpY2hlY2tJbnQodGhpcyxlLHIsMiw2NTUzNSwwKTt0aGlzW3JdPWUmMjU1O3RoaXNbcisxXT1lPj4+ODtyZXR1cm4gcisyfTtCdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24gd3JpdGVVSW50MTZCRShlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDIsNjU1MzUsMCk7dGhpc1tyXT1lPj4+ODt0aGlzW3IrMV09ZSYyNTU7cmV0dXJuIHIrMn07QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uIHdyaXRlVUludDMyTEUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciw0LDQyOTQ5NjcyOTUsMCk7dGhpc1tyKzNdPWU+Pj4yNDt0aGlzW3IrMl09ZT4+PjE2O3RoaXNbcisxXT1lPj4+ODt0aGlzW3JdPWUmMjU1O3JldHVybiByKzR9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbiB3cml0ZVVJbnQzMkJFKGUscix0KXtlPStlO3I9cj4+PjA7aWYoIXQpY2hlY2tJbnQodGhpcyxlLHIsNCw0Mjk0OTY3Mjk1LDApO3RoaXNbcl09ZT4+PjI0O3RoaXNbcisxXT1lPj4+MTY7dGhpc1tyKzJdPWU+Pj44O3RoaXNbciszXT1lJjI1NTtyZXR1cm4gcis0fTtCdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24gd3JpdGVJbnRMRShlLHIsdCxmKXtlPStlO3I9cj4+PjA7aWYoIWYpe3ZhciBuPU1hdGgucG93KDIsOCp0LTEpO2NoZWNrSW50KHRoaXMsZSxyLHQsbi0xLC1uKX12YXIgaT0wO3ZhciBvPTE7dmFyIHU9MDt0aGlzW3JdPWUmMjU1O3doaWxlKCsraTx0JiYobyo9MjU2KSl7aWYoZTwwJiZ1PT09MCYmdGhpc1tyK2ktMV0hPT0wKXt1PTF9dGhpc1tyK2ldPShlL28+PjApLXUmMjU1fXJldHVybiByK3R9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbiB3cml0ZUludEJFKGUscix0LGYpe2U9K2U7cj1yPj4+MDtpZighZil7dmFyIG49TWF0aC5wb3coMiw4KnQtMSk7Y2hlY2tJbnQodGhpcyxlLHIsdCxuLTEsLW4pfXZhciBpPXQtMTt2YXIgbz0xO3ZhciB1PTA7dGhpc1tyK2ldPWUmMjU1O3doaWxlKC0taT49MCYmKG8qPTI1Nikpe2lmKGU8MCYmdT09PTAmJnRoaXNbcitpKzFdIT09MCl7dT0xfXRoaXNbcitpXT0oZS9vPj4wKS11JjI1NX1yZXR1cm4gcit0fTtCdWZmZXIucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbiB3cml0ZUludDgoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciwxLDEyNywtMTI4KTtpZihlPDApZT0yNTUrZSsxO3RoaXNbcl09ZSYyNTU7cmV0dXJuIHIrMX07QnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24gd3JpdGVJbnQxNkxFKGUscix0KXtlPStlO3I9cj4+PjA7aWYoIXQpY2hlY2tJbnQodGhpcyxlLHIsMiwzMjc2NywtMzI3NjgpO3RoaXNbcl09ZSYyNTU7dGhpc1tyKzFdPWU+Pj44O3JldHVybiByKzJ9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uIHdyaXRlSW50MTZCRShlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDIsMzI3NjcsLTMyNzY4KTt0aGlzW3JdPWU+Pj44O3RoaXNbcisxXT1lJjI1NTtyZXR1cm4gcisyfTtCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbiB3cml0ZUludDMyTEUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpO3RoaXNbcl09ZSYyNTU7dGhpc1tyKzFdPWU+Pj44O3RoaXNbcisyXT1lPj4+MTY7dGhpc1tyKzNdPWU+Pj4yNDtyZXR1cm4gcis0fTtCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbiB3cml0ZUludDMyQkUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpO2lmKGU8MCllPTQyOTQ5NjcyOTUrZSsxO3RoaXNbcl09ZT4+PjI0O3RoaXNbcisxXT1lPj4+MTY7dGhpc1tyKzJdPWU+Pj44O3RoaXNbciszXT1lJjI1NTtyZXR1cm4gcis0fTtmdW5jdGlvbiBjaGVja0lFRUU3NTQoZSxyLHQsZixuLGkpe2lmKHQrZj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKTtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIil9ZnVuY3Rpb24gd3JpdGVGbG9hdChlLHIsdCxmLGkpe3I9K3I7dD10Pj4+MDtpZighaSl7Y2hlY2tJRUVFNzU0KGUscix0LDQsMzQwMjgyMzQ2NjM4NTI4ODZlMjIsLTM0MDI4MjM0NjYzODUyODg2ZTIyKX1uLndyaXRlKGUscix0LGYsMjMsNCk7cmV0dXJuIHQrNH1CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbiB3cml0ZUZsb2F0TEUoZSxyLHQpe3JldHVybiB3cml0ZUZsb2F0KHRoaXMsZSxyLHRydWUsdCl9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uIHdyaXRlRmxvYXRCRShlLHIsdCl7cmV0dXJuIHdyaXRlRmxvYXQodGhpcyxlLHIsZmFsc2UsdCl9O2Z1bmN0aW9uIHdyaXRlRG91YmxlKGUscix0LGYsaSl7cj0rcjt0PXQ+Pj4wO2lmKCFpKXtjaGVja0lFRUU3NTQoZSxyLHQsOCwxNzk3NjkzMTM0ODYyMzE1N2UyOTIsLTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mil9bi53cml0ZShlLHIsdCxmLDUyLDgpO3JldHVybiB0Kzh9QnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uIHdyaXRlRG91YmxlTEUoZSxyLHQpe3JldHVybiB3cml0ZURvdWJsZSh0aGlzLGUscix0cnVlLHQpfTtCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24gd3JpdGVEb3VibGVCRShlLHIsdCl7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsZSxyLGZhbHNlLHQpfTtCdWZmZXIucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24gY29weShlLHIsdCxmKXtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXJcIik7aWYoIXQpdD0wO2lmKCFmJiZmIT09MClmPXRoaXMubGVuZ3RoO2lmKHI+PWUubGVuZ3RoKXI9ZS5sZW5ndGg7aWYoIXIpcj0wO2lmKGY+MCYmZjx0KWY9dDtpZihmPT09dClyZXR1cm4gMDtpZihlLmxlbmd0aD09PTB8fHRoaXMubGVuZ3RoPT09MClyZXR1cm4gMDtpZihyPDApe3Rocm93IG5ldyBSYW5nZUVycm9yKFwidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kc1wiKX1pZih0PDB8fHQ+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpO2lmKGY8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzXCIpO2lmKGY+dGhpcy5sZW5ndGgpZj10aGlzLmxlbmd0aDtpZihlLmxlbmd0aC1yPGYtdCl7Zj1lLmxlbmd0aC1yK3R9dmFyIG49Zi10O2lmKHRoaXM9PT1lJiZ0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj09PVwiZnVuY3Rpb25cIil7dGhpcy5jb3B5V2l0aGluKHIsdCxmKX1lbHNlIGlmKHRoaXM9PT1lJiZ0PHImJnI8Zil7Zm9yKHZhciBpPW4tMTtpPj0wOy0taSl7ZVtpK3JdPXRoaXNbaSt0XX19ZWxzZXtVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChlLHRoaXMuc3ViYXJyYXkodCxmKSxyKX1yZXR1cm4gbn07QnVmZmVyLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uIGZpbGwoZSxyLHQsZil7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtpZih0eXBlb2Ygcj09PVwic3RyaW5nXCIpe2Y9cjtyPTA7dD10aGlzLmxlbmd0aH1lbHNlIGlmKHR5cGVvZiB0PT09XCJzdHJpbmdcIil7Zj10O3Q9dGhpcy5sZW5ndGh9aWYoZiE9PXVuZGVmaW5lZCYmdHlwZW9mIGYhPT1cInN0cmluZ1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZ1wiKX1pZih0eXBlb2YgZj09PVwic3RyaW5nXCImJiFCdWZmZXIuaXNFbmNvZGluZyhmKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2YpfWlmKGUubGVuZ3RoPT09MSl7dmFyIG49ZS5jaGFyQ29kZUF0KDApO2lmKGY9PT1cInV0ZjhcIiYmbjwxMjh8fGY9PT1cImxhdGluMVwiKXtlPW59fX1lbHNlIGlmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7ZT1lJjI1NX1lbHNlIGlmKHR5cGVvZiBlPT09XCJib29sZWFuXCIpe2U9TnVtYmVyKGUpfWlmKHI8MHx8dGhpcy5sZW5ndGg8cnx8dGhpcy5sZW5ndGg8dCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJPdXQgb2YgcmFuZ2UgaW5kZXhcIil9aWYodDw9cil7cmV0dXJuIHRoaXN9cj1yPj4+MDt0PXQ9PT11bmRlZmluZWQ/dGhpcy5sZW5ndGg6dD4+PjA7aWYoIWUpZT0wO3ZhciBpO2lmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7Zm9yKGk9cjtpPHQ7KytpKXt0aGlzW2ldPWV9fWVsc2V7dmFyIG89QnVmZmVyLmlzQnVmZmVyKGUpP2U6QnVmZmVyLmZyb20oZSxmKTt2YXIgdT1vLmxlbmd0aDtpZih1PT09MCl7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlIFwiJytlKydcIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCBcInZhbHVlXCInKX1mb3IoaT0wO2k8dC1yOysraSl7dGhpc1tpK3JdPW9baSV1XX19cmV0dXJuIHRoaXN9O3ZhciBhPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gYmFzZTY0Y2xlYW4oZSl7ZT1lLnNwbGl0KFwiPVwiKVswXTtlPWUudHJpbSgpLnJlcGxhY2UoYSxcIlwiKTtpZihlLmxlbmd0aDwyKXJldHVyblwiXCI7d2hpbGUoZS5sZW5ndGglNCE9PTApe2U9ZStcIj1cIn1yZXR1cm4gZX1mdW5jdGlvbiB1dGY4VG9CeXRlcyhlLHIpe3I9cnx8SW5maW5pdHk7dmFyIHQ7dmFyIGY9ZS5sZW5ndGg7dmFyIG49bnVsbDt2YXIgaT1bXTtmb3IodmFyIG89MDtvPGY7KytvKXt0PWUuY2hhckNvZGVBdChvKTtpZih0PjU1Mjk1JiZ0PDU3MzQ0KXtpZighbil7aWYodD41NjMxOSl7aWYoKHItPTMpPi0xKWkucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9ZWxzZSBpZihvKzE9PT1mKXtpZigoci09Myk+LTEpaS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1uPXQ7Y29udGludWV9aWYodDw1NjMyMCl7aWYoKHItPTMpPi0xKWkucHVzaCgyMzksMTkxLDE4OSk7bj10O2NvbnRpbnVlfXQ9KG4tNTUyOTY8PDEwfHQtNTYzMjApKzY1NTM2fWVsc2UgaWYobil7aWYoKHItPTMpPi0xKWkucHVzaCgyMzksMTkxLDE4OSl9bj1udWxsO2lmKHQ8MTI4KXtpZigoci09MSk8MClicmVhaztpLnB1c2godCl9ZWxzZSBpZih0PDIwNDgpe2lmKChyLT0yKTwwKWJyZWFrO2kucHVzaCh0Pj42fDE5Mix0JjYzfDEyOCl9ZWxzZSBpZih0PDY1NTM2KXtpZigoci09Myk8MClicmVhaztpLnB1c2godD4+MTJ8MjI0LHQ+PjYmNjN8MTI4LHQmNjN8MTI4KX1lbHNlIGlmKHQ8MTExNDExMil7aWYoKHItPTQpPDApYnJlYWs7aS5wdXNoKHQ+PjE4fDI0MCx0Pj4xMiY2M3wxMjgsdD4+NiY2M3wxMjgsdCY2M3wxMjgpfWVsc2V7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb2RlIHBvaW50XCIpfX1yZXR1cm4gaX1mdW5jdGlvbiBhc2NpaVRvQnl0ZXMoZSl7dmFyIHI9W107Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDsrK3Qpe3IucHVzaChlLmNoYXJDb2RlQXQodCkmMjU1KX1yZXR1cm4gcn1mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyhlLHIpe3ZhciB0LGYsbjt2YXIgaT1bXTtmb3IodmFyIG89MDtvPGUubGVuZ3RoOysrbyl7aWYoKHItPTIpPDApYnJlYWs7dD1lLmNoYXJDb2RlQXQobyk7Zj10Pj44O249dCUyNTY7aS5wdXNoKG4pO2kucHVzaChmKX1yZXR1cm4gaX1mdW5jdGlvbiBiYXNlNjRUb0J5dGVzKGUpe3JldHVybiBmLnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKGUpKX1mdW5jdGlvbiBibGl0QnVmZmVyKGUscix0LGYpe2Zvcih2YXIgbj0wO248ZjsrK24pe2lmKG4rdD49ci5sZW5ndGh8fG4+PWUubGVuZ3RoKWJyZWFrO3Jbbit0XT1lW25dfXJldHVybiBufWZ1bmN0aW9uIGlzSW5zdGFuY2UoZSxyKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHJ8fGUhPW51bGwmJmUuY29uc3RydWN0b3IhPW51bGwmJmUuY29uc3RydWN0b3IubmFtZSE9bnVsbCYmZS5jb25zdHJ1Y3Rvci5uYW1lPT09ci5uYW1lfWZ1bmN0aW9uIG51bWJlcklzTmFOKGUpe3JldHVybiBlIT09ZX12YXIgcz1mdW5jdGlvbigpe3ZhciBlPVwiMDEyMzQ1Njc4OWFiY2RlZlwiO3ZhciByPW5ldyBBcnJheSgyNTYpO2Zvcih2YXIgdD0wO3Q8MTY7Kyt0KXt2YXIgZj10KjE2O2Zvcih2YXIgbj0wO248MTY7KytuKXtyW2Yrbl09ZVt0XStlW25dfX1yZXR1cm4gcn0oKX0sNzgzOmZ1bmN0aW9uKGUscil7XG4vKiEgaWVlZTc1NC4gQlNELTMtQ2xhdXNlIExpY2Vuc2UuIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqL1xuci5yZWFkPWZ1bmN0aW9uKGUscix0LGYsbil7dmFyIGksbzt2YXIgdT1uKjgtZi0xO3ZhciBhPSgxPDx1KS0xO3ZhciBzPWE+PjE7dmFyIGg9LTc7dmFyIGM9dD9uLTE6MDt2YXIgbD10Py0xOjE7dmFyIHA9ZVtyK2NdO2MrPWw7aT1wJigxPDwtaCktMTtwPj49LWg7aCs9dTtmb3IoO2g+MDtpPWkqMjU2K2VbcitjXSxjKz1sLGgtPTgpe31vPWkmKDE8PC1oKS0xO2k+Pj0taDtoKz1mO2Zvcig7aD4wO289byoyNTYrZVtyK2NdLGMrPWwsaC09OCl7fWlmKGk9PT0wKXtpPTEtc31lbHNlIGlmKGk9PT1hKXtyZXR1cm4gbz9OYU46KHA/LTE6MSkqSW5maW5pdHl9ZWxzZXtvPW8rTWF0aC5wb3coMixmKTtpPWktc31yZXR1cm4ocD8tMToxKSpvKk1hdGgucG93KDIsaS1mKX07ci53cml0ZT1mdW5jdGlvbihlLHIsdCxmLG4saSl7dmFyIG8sdSxhO3ZhciBzPWkqOC1uLTE7dmFyIGg9KDE8PHMpLTE7dmFyIGM9aD4+MTt2YXIgbD1uPT09MjM/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowO3ZhciBwPWY/MDppLTE7dmFyIHk9Zj8xOi0xO3ZhciBnPXI8MHx8cj09PTAmJjEvcjwwPzE6MDtyPU1hdGguYWJzKHIpO2lmKGlzTmFOKHIpfHxyPT09SW5maW5pdHkpe3U9aXNOYU4ocik/MTowO289aH1lbHNle289TWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMik7aWYociooYT1NYXRoLnBvdygyLC1vKSk8MSl7by0tO2EqPTJ9aWYobytjPj0xKXtyKz1sL2F9ZWxzZXtyKz1sKk1hdGgucG93KDIsMS1jKX1pZihyKmE+PTIpe28rKzthLz0yfWlmKG8rYz49aCl7dT0wO289aH1lbHNlIGlmKG8rYz49MSl7dT0ociphLTEpKk1hdGgucG93KDIsbik7bz1vK2N9ZWxzZXt1PXIqTWF0aC5wb3coMixjLTEpKk1hdGgucG93KDIsbik7bz0wfX1mb3IoO24+PTg7ZVt0K3BdPXUmMjU1LHArPXksdS89MjU2LG4tPTgpe31vPW88PG58dTtzKz1uO2Zvcig7cz4wO2VbdCtwXT1vJjI1NSxwKz15LG8vPTI1NixzLT04KXt9ZVt0K3AteV18PWcqMTI4fX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18odCl7dmFyIGY9clt0XTtpZihmIT09dW5kZWZpbmVkKXtyZXR1cm4gZi5leHBvcnRzfXZhciBuPXJbdF09e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbdF0obixuLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbdF19cmV0dXJuIG4uZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHQ9X19uY2N3cGNrX3JlcXVpcmVfXyg3Mik7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/crypto-browserify/index.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/compiled/crypto-browserify/index.js ***! \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")[\"Buffer\"];\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n(function(){var e={7160:function(e,t,r){var i=t;i.bignum=r(711);i.define=r(495).define;i.base=r(853);i.constants=r(7335);i.decoders=r(6701);i.encoders=r(3418)},495:function(e,t,r){var i=r(7160);var n=r(3782);var a=t;a.define=function define(e,t){return new Entity(e,t)};function Entity(e,t){this.name=e;this.body=t;this.decoders={};this.encoders={}}Entity.prototype._createNamed=function createNamed(e){var t;try{t=r(6144).runInThisContext(\"(function \"+this.name+\"(entity) {\\n\"+\" this._initNamed(entity);\\n\"+\"})\")}catch(e){t=function(e){this._initNamed(e)}}n(t,e);t.prototype._initNamed=function initnamed(t){e.call(this,t)};return new t(this)};Entity.prototype._getDecoder=function _getDecoder(e){e=e||\"der\";if(!this.decoders.hasOwnProperty(e))this.decoders[e]=this._createNamed(i.decoders[e]);return this.decoders[e]};Entity.prototype.decode=function decode(e,t,r){return this._getDecoder(t).decode(e,r)};Entity.prototype._getEncoder=function _getEncoder(e){e=e||\"der\";if(!this.encoders.hasOwnProperty(e))this.encoders[e]=this._createNamed(i.encoders[e]);return this.encoders[e]};Entity.prototype.encode=function encode(e,t,r){return this._getEncoder(t).encode(e,r)}},6483:function(e,t,r){var i=r(3782);var n=r(853).Reporter;var a=r(4300).Buffer;function DecoderBuffer(e,t){n.call(this,t);if(!a.isBuffer(e)){this.error(\"Input not Buffer\");return}this.base=e;this.offset=0;this.length=e.length}i(DecoderBuffer,n);t.C=DecoderBuffer;DecoderBuffer.prototype.save=function save(){return{offset:this.offset,reporter:n.prototype.save.call(this)}};DecoderBuffer.prototype.restore=function restore(e){var t=new DecoderBuffer(this.base);t.offset=e.offset;t.length=this.offset;this.offset=e.offset;n.prototype.restore.call(this,e.reporter);return t};DecoderBuffer.prototype.isEmpty=function isEmpty(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function readUInt8(e){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,true);else return this.error(e||\"DecoderBuffer overrun\")};DecoderBuffer.prototype.skip=function skip(e,t){if(!(this.offset+e<=this.length))return this.error(t||\"DecoderBuffer overrun\");var r=new DecoderBuffer(this.base);r._reporterState=this._reporterState;r.offset=this.offset;r.length=this.offset+e;this.offset+=e;return r};DecoderBuffer.prototype.raw=function raw(e){return this.base.slice(e?e.offset:this.offset,this.length)};function EncoderBuffer(e,t){if(Array.isArray(e)){this.length=0;this.value=e.map((function(e){if(!(e instanceof EncoderBuffer))e=new EncoderBuffer(e,t);this.length+=e.length;return e}),this)}else if(typeof e===\"number\"){if(!(0<=e&&e<=255))return t.error(\"non-byte EncoderBuffer value\");this.value=e;this.length=1}else if(typeof e===\"string\"){this.value=e;this.length=a.byteLength(e)}else if(a.isBuffer(e)){this.value=e;this.length=e.length}else{return t.error(\"Unsupported type: \"+typeof e)}}t.R=EncoderBuffer;EncoderBuffer.prototype.join=function join(e,t){if(!e)e=new a(this.length);if(!t)t=0;if(this.length===0)return e;if(Array.isArray(this.value)){this.value.forEach((function(r){r.join(e,t);t+=r.length}))}else{if(typeof this.value===\"number\")e[t]=this.value;else if(typeof this.value===\"string\")e.write(this.value,t);else if(a.isBuffer(this.value))this.value.copy(e,t);t+=this.length}return e}},853:function(e,t,r){var i=t;i.Reporter=r(1293).b;i.DecoderBuffer=r(6483).C;i.EncoderBuffer=r(6483).R;i.Node=r(9374)},9374:function(e,t,r){var i=r(853).Reporter;var n=r(853).EncoderBuffer;var a=r(853).DecoderBuffer;var s=r(3523);var o=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"];var h=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(o);var u=[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"];function Node(e,t){var r={};this._baseState=r;r.enc=e;r.parent=t||null;r.children=null;r.tag=null;r.args=null;r.reverseArgs=null;r.choice=null;r.optional=false;r.any=false;r.obj=false;r.use=null;r.useDecoder=null;r.key=null;r[\"default\"]=null;r.explicit=null;r.implicit=null;r.contains=null;if(!r.parent){r.children=[];this._wrap()}}e.exports=Node;var d=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];Node.prototype.clone=function clone(){var e=this._baseState;var t={};d.forEach((function(r){t[r]=e[r]}));var r=new this.constructor(t.parent);r._baseState=t;return r};Node.prototype._wrap=function wrap(){var e=this._baseState;h.forEach((function(t){this[t]=function _wrappedMethod(){var r=new this.constructor(this);e.children.push(r);return r[t].apply(r,arguments)}}),this)};Node.prototype._init=function init(e){var t=this._baseState;s(t.parent===null);e.call(this);t.children=t.children.filter((function(e){return e._baseState.parent===this}),this);s.equal(t.children.length,1,\"Root node can have only one child\")};Node.prototype._useArgs=function useArgs(e){var t=this._baseState;var r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this);if(r.length!==0){s(t.children===null);t.children=r;r.forEach((function(e){e._baseState.parent=this}),this)}if(e.length!==0){s(t.args===null);t.args=e;t.reverseArgs=e.map((function(e){if(typeof e!==\"object\"||e.constructor!==Object)return e;var t={};Object.keys(e).forEach((function(r){if(r==(r|0))r|=0;var i=e[r];t[i]=r}));return t}))}};u.forEach((function(e){Node.prototype[e]=function _overrided(){var t=this._baseState;throw new Error(e+\" not implemented for encoding: \"+t.enc)}}));o.forEach((function(e){Node.prototype[e]=function _tagMethod(){var t=this._baseState;var r=Array.prototype.slice.call(arguments);s(t.tag===null);t.tag=e;this._useArgs(r);return this}}));Node.prototype.use=function use(e){s(e);var t=this._baseState;s(t.use===null);t.use=e;return this};Node.prototype.optional=function optional(){var e=this._baseState;e.optional=true;return this};Node.prototype.def=function def(e){var t=this._baseState;s(t[\"default\"]===null);t[\"default\"]=e;t.optional=true;return this};Node.prototype.explicit=function explicit(e){var t=this._baseState;s(t.explicit===null&&t.implicit===null);t.explicit=e;return this};Node.prototype.implicit=function implicit(e){var t=this._baseState;s(t.explicit===null&&t.implicit===null);t.implicit=e;return this};Node.prototype.obj=function obj(){var e=this._baseState;var t=Array.prototype.slice.call(arguments);e.obj=true;if(t.length!==0)this._useArgs(t);return this};Node.prototype.key=function key(e){var t=this._baseState;s(t.key===null);t.key=e;return this};Node.prototype.any=function any(){var e=this._baseState;e.any=true;return this};Node.prototype.choice=function choice(e){var t=this._baseState;s(t.choice===null);t.choice=e;this._useArgs(Object.keys(e).map((function(t){return e[t]})));return this};Node.prototype.contains=function contains(e){var t=this._baseState;s(t.use===null);t.contains=e;return this};Node.prototype._decode=function decode(e,t){var r=this._baseState;if(r.parent===null)return e.wrapResult(r.children[0]._decode(e,t));var i=r[\"default\"];var n=true;var s=null;if(r.key!==null)s=e.enterKey(r.key);if(r.optional){var o=null;if(r.explicit!==null)o=r.explicit;else if(r.implicit!==null)o=r.implicit;else if(r.tag!==null)o=r.tag;if(o===null&&!r.any){var h=e.save();try{if(r.choice===null)this._decodeGeneric(r.tag,e,t);else this._decodeChoice(e,t);n=true}catch(e){n=false}e.restore(h)}else{n=this._peekTag(e,o,r.any);if(e.isError(n))return n}}var u;if(r.obj&&n)u=e.enterObject();if(n){if(r.explicit!==null){var d=this._decodeTag(e,r.explicit);if(e.isError(d))return d;e=d}var c=e.offset;if(r.use===null&&r.choice===null){if(r.any)var h=e.save();var l=this._decodeTag(e,r.implicit!==null?r.implicit:r.tag,r.any);if(e.isError(l))return l;if(r.any)i=e.raw(h);else e=l}if(t&&t.track&&r.tag!==null)t.track(e.path(),c,e.length,\"tagged\");if(t&&t.track&&r.tag!==null)t.track(e.path(),e.offset,e.length,\"content\");if(r.any)i=i;else if(r.choice===null)i=this._decodeGeneric(r.tag,e,t);else i=this._decodeChoice(e,t);if(e.isError(i))return i;if(!r.any&&r.choice===null&&r.children!==null){r.children.forEach((function decodeChildren(r){r._decode(e,t)}))}if(r.contains&&(r.tag===\"octstr\"||r.tag===\"bitstr\")){var p=new a(i);i=this._getUse(r.contains,e._reporterState.obj)._decode(p,t)}}if(r.obj&&n)i=e.leaveObject(u);if(r.key!==null&&(i!==null||n===true))e.leaveKey(s,r.key,i);else if(s!==null)e.exitKey(s);return i};Node.prototype._decodeGeneric=function decodeGeneric(e,t,r){var i=this._baseState;if(e===\"seq\"||e===\"set\")return null;if(e===\"seqof\"||e===\"setof\")return this._decodeList(t,e,i.args[0],r);else if(/str$/.test(e))return this._decodeStr(t,e,r);else if(e===\"objid\"&&i.args)return this._decodeObjid(t,i.args[0],i.args[1],r);else if(e===\"objid\")return this._decodeObjid(t,null,null,r);else if(e===\"gentime\"||e===\"utctime\")return this._decodeTime(t,e,r);else if(e===\"null_\")return this._decodeNull(t,r);else if(e===\"bool\")return this._decodeBool(t,r);else if(e===\"objDesc\")return this._decodeStr(t,e,r);else if(e===\"int\"||e===\"enum\")return this._decodeInt(t,i.args&&i.args[0],r);if(i.use!==null){return this._getUse(i.use,t._reporterState.obj)._decode(t,r)}else{return t.error(\"unknown tag: \"+e)}};Node.prototype._getUse=function _getUse(e,t){var r=this._baseState;r.useDecoder=this._use(e,t);s(r.useDecoder._baseState.parent===null);r.useDecoder=r.useDecoder._baseState.children[0];if(r.implicit!==r.useDecoder._baseState.implicit){r.useDecoder=r.useDecoder.clone();r.useDecoder._baseState.implicit=r.implicit}return r.useDecoder};Node.prototype._decodeChoice=function decodeChoice(e,t){var r=this._baseState;var i=null;var n=false;Object.keys(r.choice).some((function(a){var s=e.save();var o=r.choice[a];try{var h=o._decode(e,t);if(e.isError(h))return false;i={type:a,value:h};n=true}catch(t){e.restore(s);return false}return true}),this);if(!n)return e.error(\"Choice not matched\");return i};Node.prototype._createEncoderBuffer=function createEncoderBuffer(e){return new n(e,this.reporter)};Node.prototype._encode=function encode(e,t,r){var i=this._baseState;if(i[\"default\"]!==null&&i[\"default\"]===e)return;var n=this._encodeValue(e,t,r);if(n===undefined)return;if(this._skipDefault(n,t,r))return;return n};Node.prototype._encodeValue=function encode(e,t,r){var n=this._baseState;if(n.parent===null)return n.children[0]._encode(e,t||new i);var a=null;this.reporter=t;if(n.optional&&e===undefined){if(n[\"default\"]!==null)e=n[\"default\"];else return}var s=null;var o=false;if(n.any){a=this._createEncoderBuffer(e)}else if(n.choice){a=this._encodeChoice(e,t)}else if(n.contains){s=this._getUse(n.contains,r)._encode(e,t);o=true}else if(n.children){s=n.children.map((function(r){if(r._baseState.tag===\"null_\")return r._encode(null,t,e);if(r._baseState.key===null)return t.error(\"Child should have a key\");var i=t.enterKey(r._baseState.key);if(typeof e!==\"object\")return t.error(\"Child expected, but input is not object\");var n=r._encode(e[r._baseState.key],t,e);t.leaveKey(i);return n}),this).filter((function(e){return e}));s=this._createEncoderBuffer(s)}else{if(n.tag===\"seqof\"||n.tag===\"setof\"){if(!(n.args&&n.args.length===1))return t.error(\"Too many args for : \"+n.tag);if(!Array.isArray(e))return t.error(\"seqof/setof, but data is not Array\");var h=this.clone();h._baseState.implicit=null;s=this._createEncoderBuffer(e.map((function(r){var i=this._baseState;return this._getUse(i.args[0],e)._encode(r,t)}),h))}else if(n.use!==null){a=this._getUse(n.use,r)._encode(e,t)}else{s=this._encodePrimitive(n.tag,e);o=true}}var a;if(!n.any&&n.choice===null){var u=n.implicit!==null?n.implicit:n.tag;var d=n.implicit===null?\"universal\":\"context\";if(u===null){if(n.use===null)t.error(\"Tag could be omitted only for .use()\")}else{if(n.use===null)a=this._encodeComposite(u,o,d,s)}}if(n.explicit!==null)a=this._encodeComposite(n.explicit,false,\"context\",a);return a};Node.prototype._encodeChoice=function encodeChoice(e,t){var r=this._baseState;var i=r.choice[e.type];if(!i){s(false,e.type+\" not found in \"+JSON.stringify(Object.keys(r.choice)))}return i._encode(e.value,t)};Node.prototype._encodePrimitive=function encodePrimitive(e,t){var r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);else if(e===\"objid\"&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);else if(e===\"objid\")return this._encodeObjid(t,null,null);else if(e===\"gentime\"||e===\"utctime\")return this._encodeTime(t,e);else if(e===\"null_\")return this._encodeNull();else if(e===\"int\"||e===\"enum\")return this._encodeInt(t,r.args&&r.reverseArgs[0]);else if(e===\"bool\")return this._encodeBool(t);else if(e===\"objDesc\")return this._encodeStr(t,e);else throw new Error(\"Unsupported tag: \"+e)};Node.prototype._isNumstr=function isNumstr(e){return/^[0-9 ]*$/.test(e)};Node.prototype._isPrintstr=function isPrintstr(e){return/^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(e)}},1293:function(e,t,r){var i=r(3782);function Reporter(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}t.b=Reporter;Reporter.prototype.isError=function isError(e){return e instanceof ReporterError};Reporter.prototype.save=function save(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}};Reporter.prototype.restore=function restore(e){var t=this._reporterState;t.obj=e.obj;t.path=t.path.slice(0,e.pathLen)};Reporter.prototype.enterKey=function enterKey(e){return this._reporterState.path.push(e)};Reporter.prototype.exitKey=function exitKey(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)};Reporter.prototype.leaveKey=function leaveKey(e,t,r){var i=this._reporterState;this.exitKey(e);if(i.obj!==null)i.obj[t]=r};Reporter.prototype.path=function path(){return this._reporterState.path.join(\"/\")};Reporter.prototype.enterObject=function enterObject(){var e=this._reporterState;var t=e.obj;e.obj={};return t};Reporter.prototype.leaveObject=function leaveObject(e){var t=this._reporterState;var r=t.obj;t.obj=e;return r};Reporter.prototype.error=function error(e){var t;var r=this._reporterState;var i=e instanceof ReporterError;if(i){t=e}else{t=new ReporterError(r.path.map((function(e){return\"[\"+JSON.stringify(e)+\"]\"})).join(\"\"),e.message||e,e.stack)}if(!r.options.partial)throw t;if(!i)r.errors.push(t);return t};Reporter.prototype.wrapResult=function wrapResult(e){var t=this._reporterState;if(!t.options.partial)return e;return{result:this.isError(e)?null:e,errors:t.errors}};function ReporterError(e,t){this.path=e;this.rethrow(t)}i(ReporterError,Error);ReporterError.prototype.rethrow=function rethrow(e){this.message=e+\" at: \"+(this.path||\"(shallow)\");if(Error.captureStackTrace)Error.captureStackTrace(this,ReporterError);if(!this.stack){try{throw new Error(this.message)}catch(e){this.stack=e.stack}}return this}},9791:function(e,t,r){var i=r(7335);t.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"};t.tagClassByName=i._reverse(t.tagClass);t.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"};t.tagByName=i._reverse(t.tag)},7335:function(e,t,r){var i=t;i._reverse=function reverse(e){var t={};Object.keys(e).forEach((function(r){if((r|0)==r)r=r|0;var i=e[r];t[i]=r}));return t};i.der=r(9791)},2259:function(e,t,r){var i=r(3782);var n=r(7160);var a=n.base;var s=n.bignum;var o=n.constants.der;function DERDecoder(e){this.enc=\"der\";this.name=e.name;this.entity=e;this.tree=new DERNode;this.tree._init(e.body)}e.exports=DERDecoder;DERDecoder.prototype.decode=function decode(e,t){if(!(e instanceof a.DecoderBuffer))e=new a.DecoderBuffer(e,t);return this.tree._decode(e,t)};function DERNode(e){a.Node.call(this,\"der\",e)}i(DERNode,a.Node);DERNode.prototype._peekTag=function peekTag(e,t,r){if(e.isEmpty())return false;var i=e.save();var n=derDecodeTag(e,'Failed to peek tag: \"'+t+'\"');if(e.isError(n))return n;e.restore(i);return n.tag===t||n.tagStr===t||n.tagStr+\"of\"===t||r};DERNode.prototype._decodeTag=function decodeTag(e,t,r){var i=derDecodeTag(e,'Failed to decode tag of \"'+t+'\"');if(e.isError(i))return i;var n=derDecodeLen(e,i.primitive,'Failed to get length of \"'+t+'\"');if(e.isError(n))return n;if(!r&&i.tag!==t&&i.tagStr!==t&&i.tagStr+\"of\"!==t){return e.error('Failed to match tag: \"'+t+'\"')}if(i.primitive||n!==null)return e.skip(n,'Failed to match body of: \"'+t+'\"');var a=e.save();var s=this._skipUntilEnd(e,'Failed to skip indefinite length body: \"'+this.tag+'\"');if(e.isError(s))return s;n=e.offset-a.offset;e.restore(a);return e.skip(n,'Failed to match body of: \"'+t+'\"')};DERNode.prototype._skipUntilEnd=function skipUntilEnd(e,t){while(true){var r=derDecodeTag(e,t);if(e.isError(r))return r;var i=derDecodeLen(e,r.primitive,t);if(e.isError(i))return i;var n;if(r.primitive||i!==null)n=e.skip(i);else n=this._skipUntilEnd(e,t);if(e.isError(n))return n;if(r.tagStr===\"end\")break}};DERNode.prototype._decodeList=function decodeList(e,t,r,i){var n=[];while(!e.isEmpty()){var a=this._peekTag(e,\"end\");if(e.isError(a))return a;var s=r.decode(e,\"der\",i);if(e.isError(s)&&a)break;n.push(s)}return n};DERNode.prototype._decodeStr=function decodeStr(e,t){if(t===\"bitstr\"){var r=e.readUInt8();if(e.isError(r))return r;return{unused:r,data:e.raw()}}else if(t===\"bmpstr\"){var i=e.raw();if(i.length%2===1)return e.error(\"Decoding of string type: bmpstr length mismatch\");var n=\"\";for(var a=0;a<i.length/2;a++){n+=String.fromCharCode(i.readUInt16BE(a*2))}return n}else if(t===\"numstr\"){var s=e.raw().toString(\"ascii\");if(!this._isNumstr(s)){return e.error(\"Decoding of string type: \"+\"numstr unsupported characters\")}return s}else if(t===\"octstr\"){return e.raw()}else if(t===\"objDesc\"){return e.raw()}else if(t===\"printstr\"){var o=e.raw().toString(\"ascii\");if(!this._isPrintstr(o)){return e.error(\"Decoding of string type: \"+\"printstr unsupported characters\")}return o}else if(/str$/.test(t)){return e.raw().toString()}else{return e.error(\"Decoding of string type: \"+t+\" unsupported\")}};DERNode.prototype._decodeObjid=function decodeObjid(e,t,r){var i;var n=[];var a=0;while(!e.isEmpty()){var s=e.readUInt8();a<<=7;a|=s&127;if((s&128)===0){n.push(a);a=0}}if(s&128)n.push(a);var o=n[0]/40|0;var h=n[0]%40;if(r)i=n;else i=[o,h].concat(n.slice(1));if(t){var u=t[i.join(\" \")];if(u===undefined)u=t[i.join(\".\")];if(u!==undefined)i=u}return i};DERNode.prototype._decodeTime=function decodeTime(e,t){var r=e.raw().toString();if(t===\"gentime\"){var i=r.slice(0,4)|0;var n=r.slice(4,6)|0;var a=r.slice(6,8)|0;var s=r.slice(8,10)|0;var o=r.slice(10,12)|0;var h=r.slice(12,14)|0}else if(t===\"utctime\"){var i=r.slice(0,2)|0;var n=r.slice(2,4)|0;var a=r.slice(4,6)|0;var s=r.slice(6,8)|0;var o=r.slice(8,10)|0;var h=r.slice(10,12)|0;if(i<70)i=2e3+i;else i=1900+i}else{return e.error(\"Decoding \"+t+\" time is not supported yet\")}return Date.UTC(i,n-1,a,s,o,h,0)};DERNode.prototype._decodeNull=function decodeNull(e){return null};DERNode.prototype._decodeBool=function decodeBool(e){var t=e.readUInt8();if(e.isError(t))return t;else return t!==0};DERNode.prototype._decodeInt=function decodeInt(e,t){var r=e.raw();var i=new s(r);if(t)i=t[i.toString(10)]||i;return i};DERNode.prototype._use=function use(e,t){if(typeof e===\"function\")e=e(t);return e._getDecoder(\"der\").tree};function derDecodeTag(e,t){var r=e.readUInt8(t);if(e.isError(r))return r;var i=o.tagClass[r>>6];var n=(r&32)===0;if((r&31)===31){var a=r;r=0;while((a&128)===128){a=e.readUInt8(t);if(e.isError(a))return a;r<<=7;r|=a&127}}else{r&=31}var s=o.tag[r];return{cls:i,primitive:n,tag:r,tagStr:s}}function derDecodeLen(e,t,r){var i=e.readUInt8(r);if(e.isError(i))return i;if(!t&&i===128)return null;if((i&128)===0){return i}var n=i&127;if(n>4)return e.error(\"length octect is too long\");i=0;for(var a=0;a<n;a++){i<<=8;var s=e.readUInt8(r);if(e.isError(s))return s;i|=s}return i}},6701:function(e,t,r){var i=t;i.der=r(2259);i.pem=r(8527)},8527:function(e,t,r){var i=r(3782);var n=r(4300).Buffer;var a=r(2259);function PEMDecoder(e){a.call(this,e);this.enc=\"pem\"}i(PEMDecoder,a);e.exports=PEMDecoder;PEMDecoder.prototype.decode=function decode(e,t){var r=e.toString().split(/[\\r\\n]+/g);var i=t.label.toUpperCase();var s=/^-----(BEGIN|END) ([^-]+)-----$/;var o=-1;var h=-1;for(var u=0;u<r.length;u++){var d=r[u].match(s);if(d===null)continue;if(d[2]!==i)continue;if(o===-1){if(d[1]!==\"BEGIN\")break;o=u}else{if(d[1]!==\"END\")break;h=u;break}}if(o===-1||h===-1)throw new Error(\"PEM section not found for: \"+i);var c=r.slice(o+1,h).join(\"\");c.replace(/[^a-z0-9\\+\\/=]+/gi,\"\");var l=new n(c,\"base64\");return a.prototype.decode.call(this,l,t)}},7804:function(e,t,r){var i=r(3782);var n=r(4300).Buffer;var a=r(7160);var s=a.base;var o=a.constants.der;function DEREncoder(e){this.enc=\"der\";this.name=e.name;this.entity=e;this.tree=new DERNode;this.tree._init(e.body)}e.exports=DEREncoder;DEREncoder.prototype.encode=function encode(e,t){return this.tree._encode(e,t).join()};function DERNode(e){s.Node.call(this,\"der\",e)}i(DERNode,s.Node);DERNode.prototype._encodeComposite=function encodeComposite(e,t,r,i){var a=encodeTag(e,t,r,this.reporter);if(i.length<128){var s=new n(2);s[0]=a;s[1]=i.length;return this._createEncoderBuffer([s,i])}var o=1;for(var h=i.length;h>=256;h>>=8)o++;var s=new n(1+1+o);s[0]=a;s[1]=128|o;for(var h=1+o,u=i.length;u>0;h--,u>>=8)s[h]=u&255;return this._createEncoderBuffer([s,i])};DERNode.prototype._encodeStr=function encodeStr(e,t){if(t===\"bitstr\"){return this._createEncoderBuffer([e.unused|0,e.data])}else if(t===\"bmpstr\"){var r=new n(e.length*2);for(var i=0;i<e.length;i++){r.writeUInt16BE(e.charCodeAt(i),i*2)}return this._createEncoderBuffer(r)}else if(t===\"numstr\"){if(!this._isNumstr(e)){return this.reporter.error(\"Encoding of string type: numstr supports \"+\"only digits and space\")}return this._createEncoderBuffer(e)}else if(t===\"printstr\"){if(!this._isPrintstr(e)){return this.reporter.error(\"Encoding of string type: printstr supports \"+\"only latin upper and lower case letters, \"+\"digits, space, apostrophe, left and rigth \"+\"parenthesis, plus sign, comma, hyphen, \"+\"dot, slash, colon, equal sign, \"+\"question mark\")}return this._createEncoderBuffer(e)}else if(/str$/.test(t)){return this._createEncoderBuffer(e)}else if(t===\"objDesc\"){return this._createEncoderBuffer(e)}else{return this.reporter.error(\"Encoding of string type: \"+t+\" unsupported\")}};DERNode.prototype._encodeObjid=function encodeObjid(e,t,r){if(typeof e===\"string\"){if(!t)return this.reporter.error(\"string objid given, but no values map found\");if(!t.hasOwnProperty(e))return this.reporter.error(\"objid not found in values map\");e=t[e].split(/[\\s\\.]+/g);for(var i=0;i<e.length;i++)e[i]|=0}else if(Array.isArray(e)){e=e.slice();for(var i=0;i<e.length;i++)e[i]|=0}if(!Array.isArray(e)){return this.reporter.error(\"objid() should be either array or string, \"+\"got: \"+JSON.stringify(e))}if(!r){if(e[1]>=40)return this.reporter.error(\"Second objid identifier OOB\");e.splice(0,2,e[0]*40+e[1])}var a=0;for(var i=0;i<e.length;i++){var s=e[i];for(a++;s>=128;s>>=7)a++}var o=new n(a);var h=o.length-1;for(var i=e.length-1;i>=0;i--){var s=e[i];o[h--]=s&127;while((s>>=7)>0)o[h--]=128|s&127}return this._createEncoderBuffer(o)};function two(e){if(e<10)return\"0\"+e;else return e}DERNode.prototype._encodeTime=function encodeTime(e,t){var r;var i=new Date(e);if(t===\"gentime\"){r=[two(i.getFullYear()),two(i.getUTCMonth()+1),two(i.getUTCDate()),two(i.getUTCHours()),two(i.getUTCMinutes()),two(i.getUTCSeconds()),\"Z\"].join(\"\")}else if(t===\"utctime\"){r=[two(i.getFullYear()%100),two(i.getUTCMonth()+1),two(i.getUTCDate()),two(i.getUTCHours()),two(i.getUTCMinutes()),two(i.getUTCSeconds()),\"Z\"].join(\"\")}else{this.reporter.error(\"Encoding \"+t+\" time is not supported yet\")}return this._encodeStr(r,\"octstr\")};DERNode.prototype._encodeNull=function encodeNull(){return this._createEncoderBuffer(\"\")};DERNode.prototype._encodeInt=function encodeInt(e,t){if(typeof e===\"string\"){if(!t)return this.reporter.error(\"String int or enum given, but no values map\");if(!t.hasOwnProperty(e)){return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(e))}e=t[e]}if(typeof e!==\"number\"&&!n.isBuffer(e)){var r=e.toArray();if(!e.sign&&r[0]&128){r.unshift(0)}e=new n(r)}if(n.isBuffer(e)){var i=e.length;if(e.length===0)i++;var a=new n(i);e.copy(a);if(e.length===0)a[0]=0;return this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);var i=1;for(var s=e;s>=256;s>>=8)i++;var a=new Array(i);for(var s=a.length-1;s>=0;s--){a[s]=e&255;e>>=8}if(a[0]&128){a.unshift(0)}return this._createEncoderBuffer(new n(a))};DERNode.prototype._encodeBool=function encodeBool(e){return this._createEncoderBuffer(e?255:0)};DERNode.prototype._use=function use(e,t){if(typeof e===\"function\")e=e(t);return e._getEncoder(\"der\").tree};DERNode.prototype._skipDefault=function skipDefault(e,t,r){var i=this._baseState;var n;if(i[\"default\"]===null)return false;var a=e.join();if(i.defaultBuffer===undefined)i.defaultBuffer=this._encodeValue(i[\"default\"],t,r).join();if(a.length!==i.defaultBuffer.length)return false;for(n=0;n<a.length;n++)if(a[n]!==i.defaultBuffer[n])return false;return true};function encodeTag(e,t,r,i){var n;if(e===\"seqof\")e=\"seq\";else if(e===\"setof\")e=\"set\";if(o.tagByName.hasOwnProperty(e))n=o.tagByName[e];else if(typeof e===\"number\"&&(e|0)===e)n=e;else return i.error(\"Unknown tag: \"+e);if(n>=31)return i.error(\"Multi-octet tag encoding unsupported\");if(!t)n|=32;n|=o.tagClassByName[r||\"universal\"]<<6;return n}},3418:function(e,t,r){var i=t;i.der=r(7804);i.pem=r(1564)},1564:function(e,t,r){var i=r(3782);var n=r(7804);function PEMEncoder(e){n.call(this,e);this.enc=\"pem\"}i(PEMEncoder,n);e.exports=PEMEncoder;PEMEncoder.prototype.encode=function encode(e,t){var r=n.prototype.encode.call(this,e);var i=r.toString(\"base64\");var a=[\"-----BEGIN \"+t.label+\"-----\"];for(var s=0;s<i.length;s+=64)a.push(i.slice(s,s+64));a.push(\"-----END \"+t.label+\"-----\");return a.join(\"\\n\")}},711:function(e,t,r){e=r.nmd(e);(function(e,t){\"use strict\";function assert(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function inherits(e,t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}function BN(e,t,r){if(BN.isBN(e)){return e}this.negative=0;this.words=null;this.length=0;this.red=null;if(e!==null){if(t===\"le\"||t===\"be\"){r=t;t=10}this._init(e||0,t||10,r||\"be\")}}if(typeof e===\"object\"){e.exports=BN}else{t.BN=BN}BN.BN=BN;BN.wordSize=26;var i;try{i=r(4300).Buffer}catch(e){}BN.isBN=function isBN(e){if(e instanceof BN){return true}return e!==null&&typeof e===\"object\"&&e.constructor.wordSize===BN.wordSize&&Array.isArray(e.words)};BN.max=function max(e,t){if(e.cmp(t)>0)return e;return t};BN.min=function min(e,t){if(e.cmp(t)<0)return e;return t};BN.prototype._init=function init(e,t,r){if(typeof e===\"number\"){return this._initNumber(e,t,r)}if(typeof e===\"object\"){return this._initArray(e,t,r)}if(t===\"hex\"){t=16}assert(t===(t|0)&&t>=2&&t<=36);e=e.toString().replace(/\\s+/g,\"\");var i=0;if(e[0]===\"-\"){i++}if(t===16){this._parseHex(e,i)}else{this._parseBase(e,t,i)}if(e[0]===\"-\"){this.negative=1}this.strip();if(r!==\"le\")return;this._initArray(this.toArray(),t,r)};BN.prototype._initNumber=function _initNumber(e,t,r){if(e<0){this.negative=1;e=-e}if(e<67108864){this.words=[e&67108863];this.length=1}else if(e<4503599627370496){this.words=[e&67108863,e/67108864&67108863];this.length=2}else{assert(e<9007199254740992);this.words=[e&67108863,e/67108864&67108863,1];this.length=3}if(r!==\"le\")return;this._initArray(this.toArray(),t,r)};BN.prototype._initArray=function _initArray(e,t,r){assert(typeof e.length===\"number\");if(e.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(e.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var n,a;var s=0;if(r===\"be\"){for(i=e.length-1,n=0;i>=0;i-=3){a=e[i]|e[i-1]<<8|e[i-2]<<16;this.words[n]|=a<<s&67108863;this.words[n+1]=a>>>26-s&67108863;s+=24;if(s>=26){s-=26;n++}}}else if(r===\"le\"){for(i=0,n=0;i<e.length;i+=3){a=e[i]|e[i+1]<<8|e[i+2]<<16;this.words[n]|=a<<s&67108863;this.words[n+1]=a>>>26-s&67108863;s+=24;if(s>=26){s-=26;n++}}}return this.strip()};function parseHex(e,t,r){var i=0;var n=Math.min(e.length,r);for(var a=t;a<n;a++){var s=e.charCodeAt(a)-48;i<<=4;if(s>=49&&s<=54){i|=s-49+10}else if(s>=17&&s<=22){i|=s-17+10}else{i|=s&15}}return i}BN.prototype._parseHex=function _parseHex(e,t){this.length=Math.ceil((e.length-t)/6);this.words=new Array(this.length);for(var r=0;r<this.length;r++){this.words[r]=0}var i,n;var a=0;for(r=e.length-6,i=0;r>=t;r-=6){n=parseHex(e,r,r+6);this.words[i]|=n<<a&67108863;this.words[i+1]|=n>>>26-a&4194303;a+=24;if(a>=26){a-=26;i++}}if(r+6!==t){n=parseHex(e,t,r+6);this.words[i]|=n<<a&67108863;this.words[i+1]|=n>>>26-a&4194303}this.strip()};function parseBase(e,t,r,i){var n=0;var a=Math.min(e.length,r);for(var s=t;s<a;s++){var o=e.charCodeAt(s)-48;n*=i;if(o>=49){n+=o-49+10}else if(o>=17){n+=o-17+10}else{n+=o}}return n}BN.prototype._parseBase=function _parseBase(e,t,r){this.words=[0];this.length=1;for(var i=0,n=1;n<=67108863;n*=t){i++}i--;n=n/t|0;var a=e.length-r;var s=a%i;var o=Math.min(a,a-s)+r;var h=0;for(var u=r;u<o;u+=i){h=parseBase(e,u,u+i,t);this.imuln(n);if(this.words[0]+h<67108864){this.words[0]+=h}else{this._iaddn(h)}}if(s!==0){var d=1;h=parseBase(e,u,e.length,t);for(u=0;u<s;u++){d*=t}this.imuln(d);if(this.words[0]+h<67108864){this.words[0]+=h}else{this._iaddn(h)}}};BN.prototype.copy=function copy(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++){e.words[t]=this.words[t]}e.length=this.length;e.negative=this.negative;e.red=this.red};BN.prototype.clone=function clone(){var e=new BN(null);this.copy(e);return e};BN.prototype._expand=function _expand(e){while(this.length<e){this.words[this.length++]=0}return this};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};BN.prototype.inspect=function inspect(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"};var n=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"];var a=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var s=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(e,t){e=e||10;t=t|0||1;var r;if(e===16||e===\"hex\"){r=\"\";var i=0;var o=0;for(var h=0;h<this.length;h++){var u=this.words[h];var d=((u<<i|o)&16777215).toString(16);o=u>>>24-i&16777215;if(o!==0||h!==this.length-1){r=n[6-d.length]+d+r}else{r=d+r}i+=2;if(i>=26){i-=26;h--}}if(o!==0){r=o.toString(16)+r}while(r.length%t!==0){r=\"0\"+r}if(this.negative!==0){r=\"-\"+r}return r}if(e===(e|0)&&e>=2&&e<=36){var c=a[e];var l=s[e];r=\"\";var p=this.clone();p.negative=0;while(!p.isZero()){var v=p.modn(l).toString(e);p=p.idivn(l);if(!p.isZero()){r=n[c-v.length]+v+r}else{r=v+r}}if(this.isZero()){r=\"0\"+r}while(r.length%t!==0){r=\"0\"+r}if(this.negative!==0){r=\"-\"+r}return r}assert(false,\"Base should be between 2 and 36\")};BN.prototype.toNumber=function toNumber(){var e=this.words[0];if(this.length===2){e+=this.words[1]*67108864}else if(this.length===3&&this.words[2]===1){e+=4503599627370496+this.words[1]*67108864}else if(this.length>2){assert(false,\"Number can only safely store up to 53 bits\")}return this.negative!==0?-e:e};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toBuffer=function toBuffer(e,t){assert(typeof i!==\"undefined\");return this.toArrayLike(i,e,t)};BN.prototype.toArray=function toArray(e,t){return this.toArrayLike(Array,e,t)};BN.prototype.toArrayLike=function toArrayLike(e,t,r){var i=this.byteLength();var n=r||Math.max(1,i);assert(i<=n,\"byte array longer than desired length\");assert(n>0,\"Requested array length <= 0\");this.strip();var a=t===\"le\";var s=new e(n);var o,h;var u=this.clone();if(!a){for(h=0;h<n-i;h++){s[h]=0}for(h=0;!u.isZero();h++){o=u.andln(255);u.iushrn(8);s[n-h-1]=o}}else{for(h=0;!u.isZero();h++){o=u.andln(255);u.iushrn(8);s[h]=o}for(;h<n;h++){s[h]=0}}return s};if(Math.clz32){BN.prototype._countBits=function _countBits(e){return 32-Math.clz32(e)}}else{BN.prototype._countBits=function _countBits(e){var t=e;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(e){if(e===0)return 26;var t=e;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var e=this.words[this.length-1];var t=this._countBits(e);return(this.length-1)*26+t};function toBitArray(e){var t=new Array(e.bitLength());for(var r=0;r<t.length;r++){var i=r/26|0;var n=r%26;t[r]=(e.words[i]&1<<n)>>>n}return t}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var e=0;for(var t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);e+=r;if(r!==26)break}return e};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(e){if(this.negative!==0){return this.abs().inotn(e).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(e){if(this.testn(e-1)){return this.notn(e).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(e){while(this.length<e.length){this.words[this.length++]=0}for(var t=0;t<e.length;t++){this.words[t]=this.words[t]|e.words[t]}return this.strip()};BN.prototype.ior=function ior(e){assert((this.negative|e.negative)===0);return this.iuor(e)};BN.prototype.or=function or(e){if(this.length>e.length)return this.clone().ior(e);return e.clone().ior(this)};BN.prototype.uor=function uor(e){if(this.length>e.length)return this.clone().iuor(e);return e.clone().iuor(this)};BN.prototype.iuand=function iuand(e){var t;if(this.length>e.length){t=e}else{t=this}for(var r=0;r<t.length;r++){this.words[r]=this.words[r]&e.words[r]}this.length=t.length;return this.strip()};BN.prototype.iand=function iand(e){assert((this.negative|e.negative)===0);return this.iuand(e)};BN.prototype.and=function and(e){if(this.length>e.length)return this.clone().iand(e);return e.clone().iand(this)};BN.prototype.uand=function uand(e){if(this.length>e.length)return this.clone().iuand(e);return e.clone().iuand(this)};BN.prototype.iuxor=function iuxor(e){var t;var r;if(this.length>e.length){t=this;r=e}else{t=e;r=this}for(var i=0;i<r.length;i++){this.words[i]=t.words[i]^r.words[i]}if(this!==t){for(;i<t.length;i++){this.words[i]=t.words[i]}}this.length=t.length;return this.strip()};BN.prototype.ixor=function ixor(e){assert((this.negative|e.negative)===0);return this.iuxor(e)};BN.prototype.xor=function xor(e){if(this.length>e.length)return this.clone().ixor(e);return e.clone().ixor(this)};BN.prototype.uxor=function uxor(e){if(this.length>e.length)return this.clone().iuxor(e);return e.clone().iuxor(this)};BN.prototype.inotn=function inotn(e){assert(typeof e===\"number\"&&e>=0);var t=Math.ceil(e/26)|0;var r=e%26;this._expand(t);if(r>0){t--}for(var i=0;i<t;i++){this.words[i]=~this.words[i]&67108863}if(r>0){this.words[i]=~this.words[i]&67108863>>26-r}return this.strip()};BN.prototype.notn=function notn(e){return this.clone().inotn(e)};BN.prototype.setn=function setn(e,t){assert(typeof e===\"number\"&&e>=0);var r=e/26|0;var i=e%26;this._expand(r+1);if(t){this.words[r]=this.words[r]|1<<i}else{this.words[r]=this.words[r]&~(1<<i)}return this.strip()};BN.prototype.iadd=function iadd(e){var t;if(this.negative!==0&&e.negative===0){this.negative=0;t=this.isub(e);this.negative^=1;return this._normSign()}else if(this.negative===0&&e.negative!==0){e.negative=0;t=this.isub(e);e.negative=1;return t._normSign()}var r,i;if(this.length>e.length){r=this;i=e}else{r=e;i=this}var n=0;for(var a=0;a<i.length;a++){t=(r.words[a]|0)+(i.words[a]|0)+n;this.words[a]=t&67108863;n=t>>>26}for(;n!==0&&a<r.length;a++){t=(r.words[a]|0)+n;this.words[a]=t&67108863;n=t>>>26}this.length=r.length;if(n!==0){this.words[this.length]=n;this.length++}else if(r!==this){for(;a<r.length;a++){this.words[a]=r.words[a]}}return this};BN.prototype.add=function add(e){var t;if(e.negative!==0&&this.negative===0){e.negative=0;t=this.sub(e);e.negative^=1;return t}else if(e.negative===0&&this.negative!==0){this.negative=0;t=e.sub(this);this.negative=1;return t}if(this.length>e.length)return this.clone().iadd(e);return e.clone().iadd(this)};BN.prototype.isub=function isub(e){if(e.negative!==0){e.negative=0;var t=this.iadd(e);e.negative=1;return t._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(e);this.negative=1;return this._normSign()}var r=this.cmp(e);if(r===0){this.negative=0;this.length=1;this.words[0]=0;return this}var i,n;if(r>0){i=this;n=e}else{i=e;n=this}var a=0;for(var s=0;s<n.length;s++){t=(i.words[s]|0)-(n.words[s]|0)+a;a=t>>26;this.words[s]=t&67108863}for(;a!==0&&s<i.length;s++){t=(i.words[s]|0)+a;a=t>>26;this.words[s]=t&67108863}if(a===0&&s<i.length&&i!==this){for(;s<i.length;s++){this.words[s]=i.words[s]}}this.length=Math.max(this.length,s);if(i!==this){this.negative=1}return this.strip()};BN.prototype.sub=function sub(e){return this.clone().isub(e)};function smallMulTo(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i;i=i-1|0;var n=e.words[0]|0;var a=t.words[0]|0;var s=n*a;var o=s&67108863;var h=s/67108864|0;r.words[0]=o;for(var u=1;u<i;u++){var d=h>>>26;var c=h&67108863;var l=Math.min(u,t.length-1);for(var p=Math.max(0,u-e.length+1);p<=l;p++){var v=u-p|0;n=e.words[v]|0;a=t.words[p]|0;s=n*a+c;d+=s/67108864|0;c=s&67108863}r.words[u]=c|0;h=d|0}if(h!==0){r.words[u]=h|0}else{r.length--}return r.strip()}var o=function comb10MulTo(e,t,r){var i=e.words;var n=t.words;var a=r.words;var s=0;var o;var h;var u;var d=i[0]|0;var c=d&8191;var l=d>>>13;var p=i[1]|0;var v=p&8191;var b=p>>>13;var m=i[2]|0;var y=m&8191;var g=m>>>13;var _=i[3]|0;var w=_&8191;var M=_>>>13;var B=i[4]|0;var E=B&8191;var k=B>>>13;var A=i[5]|0;var N=A&8191;var P=A>>>13;var x=i[6]|0;var I=x&8191;var C=x>>>13;var D=i[7]|0;var T=D&8191;var j=D>>>13;var q=i[8]|0;var O=q&8191;var H=q>>>13;var L=i[9]|0;var z=L&8191;var F=L>>>13;var U=n[0]|0;var W=U&8191;var V=U>>>13;var G=n[1]|0;var J=G&8191;var Z=G>>>13;var X=n[2]|0;var Y=X&8191;var $=X>>>13;var Q=n[3]|0;var ee=Q&8191;var te=Q>>>13;var re=n[4]|0;var ie=re&8191;var ne=re>>>13;var ae=n[5]|0;var fe=ae&8191;var se=ae>>>13;var oe=n[6]|0;var he=oe&8191;var ue=oe>>>13;var de=n[7]|0;var ce=de&8191;var le=de>>>13;var pe=n[8]|0;var ve=pe&8191;var be=pe>>>13;var me=n[9]|0;var ye=me&8191;var ge=me>>>13;r.negative=e.negative^t.negative;r.length=19;o=Math.imul(c,W);h=Math.imul(c,V);h=h+Math.imul(l,W)|0;u=Math.imul(l,V);var _e=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(_e>>>26)|0;_e&=67108863;o=Math.imul(v,W);h=Math.imul(v,V);h=h+Math.imul(b,W)|0;u=Math.imul(b,V);o=o+Math.imul(c,J)|0;h=h+Math.imul(c,Z)|0;h=h+Math.imul(l,J)|0;u=u+Math.imul(l,Z)|0;var we=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(we>>>26)|0;we&=67108863;o=Math.imul(y,W);h=Math.imul(y,V);h=h+Math.imul(g,W)|0;u=Math.imul(g,V);o=o+Math.imul(v,J)|0;h=h+Math.imul(v,Z)|0;h=h+Math.imul(b,J)|0;u=u+Math.imul(b,Z)|0;o=o+Math.imul(c,Y)|0;h=h+Math.imul(c,$)|0;h=h+Math.imul(l,Y)|0;u=u+Math.imul(l,$)|0;var Me=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Me>>>26)|0;Me&=67108863;o=Math.imul(w,W);h=Math.imul(w,V);h=h+Math.imul(M,W)|0;u=Math.imul(M,V);o=o+Math.imul(y,J)|0;h=h+Math.imul(y,Z)|0;h=h+Math.imul(g,J)|0;u=u+Math.imul(g,Z)|0;o=o+Math.imul(v,Y)|0;h=h+Math.imul(v,$)|0;h=h+Math.imul(b,Y)|0;u=u+Math.imul(b,$)|0;o=o+Math.imul(c,ee)|0;h=h+Math.imul(c,te)|0;h=h+Math.imul(l,ee)|0;u=u+Math.imul(l,te)|0;var Se=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Se>>>26)|0;Se&=67108863;o=Math.imul(E,W);h=Math.imul(E,V);h=h+Math.imul(k,W)|0;u=Math.imul(k,V);o=o+Math.imul(w,J)|0;h=h+Math.imul(w,Z)|0;h=h+Math.imul(M,J)|0;u=u+Math.imul(M,Z)|0;o=o+Math.imul(y,Y)|0;h=h+Math.imul(y,$)|0;h=h+Math.imul(g,Y)|0;u=u+Math.imul(g,$)|0;o=o+Math.imul(v,ee)|0;h=h+Math.imul(v,te)|0;h=h+Math.imul(b,ee)|0;u=u+Math.imul(b,te)|0;o=o+Math.imul(c,ie)|0;h=h+Math.imul(c,ne)|0;h=h+Math.imul(l,ie)|0;u=u+Math.imul(l,ne)|0;var Be=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Be>>>26)|0;Be&=67108863;o=Math.imul(N,W);h=Math.imul(N,V);h=h+Math.imul(P,W)|0;u=Math.imul(P,V);o=o+Math.imul(E,J)|0;h=h+Math.imul(E,Z)|0;h=h+Math.imul(k,J)|0;u=u+Math.imul(k,Z)|0;o=o+Math.imul(w,Y)|0;h=h+Math.imul(w,$)|0;h=h+Math.imul(M,Y)|0;u=u+Math.imul(M,$)|0;o=o+Math.imul(y,ee)|0;h=h+Math.imul(y,te)|0;h=h+Math.imul(g,ee)|0;u=u+Math.imul(g,te)|0;o=o+Math.imul(v,ie)|0;h=h+Math.imul(v,ne)|0;h=h+Math.imul(b,ie)|0;u=u+Math.imul(b,ne)|0;o=o+Math.imul(c,fe)|0;h=h+Math.imul(c,se)|0;h=h+Math.imul(l,fe)|0;u=u+Math.imul(l,se)|0;var Ee=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ee>>>26)|0;Ee&=67108863;o=Math.imul(I,W);h=Math.imul(I,V);h=h+Math.imul(C,W)|0;u=Math.imul(C,V);o=o+Math.imul(N,J)|0;h=h+Math.imul(N,Z)|0;h=h+Math.imul(P,J)|0;u=u+Math.imul(P,Z)|0;o=o+Math.imul(E,Y)|0;h=h+Math.imul(E,$)|0;h=h+Math.imul(k,Y)|0;u=u+Math.imul(k,$)|0;o=o+Math.imul(w,ee)|0;h=h+Math.imul(w,te)|0;h=h+Math.imul(M,ee)|0;u=u+Math.imul(M,te)|0;o=o+Math.imul(y,ie)|0;h=h+Math.imul(y,ne)|0;h=h+Math.imul(g,ie)|0;u=u+Math.imul(g,ne)|0;o=o+Math.imul(v,fe)|0;h=h+Math.imul(v,se)|0;h=h+Math.imul(b,fe)|0;u=u+Math.imul(b,se)|0;o=o+Math.imul(c,he)|0;h=h+Math.imul(c,ue)|0;h=h+Math.imul(l,he)|0;u=u+Math.imul(l,ue)|0;var ke=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(ke>>>26)|0;ke&=67108863;o=Math.imul(T,W);h=Math.imul(T,V);h=h+Math.imul(j,W)|0;u=Math.imul(j,V);o=o+Math.imul(I,J)|0;h=h+Math.imul(I,Z)|0;h=h+Math.imul(C,J)|0;u=u+Math.imul(C,Z)|0;o=o+Math.imul(N,Y)|0;h=h+Math.imul(N,$)|0;h=h+Math.imul(P,Y)|0;u=u+Math.imul(P,$)|0;o=o+Math.imul(E,ee)|0;h=h+Math.imul(E,te)|0;h=h+Math.imul(k,ee)|0;u=u+Math.imul(k,te)|0;o=o+Math.imul(w,ie)|0;h=h+Math.imul(w,ne)|0;h=h+Math.imul(M,ie)|0;u=u+Math.imul(M,ne)|0;o=o+Math.imul(y,fe)|0;h=h+Math.imul(y,se)|0;h=h+Math.imul(g,fe)|0;u=u+Math.imul(g,se)|0;o=o+Math.imul(v,he)|0;h=h+Math.imul(v,ue)|0;h=h+Math.imul(b,he)|0;u=u+Math.imul(b,ue)|0;o=o+Math.imul(c,ce)|0;h=h+Math.imul(c,le)|0;h=h+Math.imul(l,ce)|0;u=u+Math.imul(l,le)|0;var Ae=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ae>>>26)|0;Ae&=67108863;o=Math.imul(O,W);h=Math.imul(O,V);h=h+Math.imul(H,W)|0;u=Math.imul(H,V);o=o+Math.imul(T,J)|0;h=h+Math.imul(T,Z)|0;h=h+Math.imul(j,J)|0;u=u+Math.imul(j,Z)|0;o=o+Math.imul(I,Y)|0;h=h+Math.imul(I,$)|0;h=h+Math.imul(C,Y)|0;u=u+Math.imul(C,$)|0;o=o+Math.imul(N,ee)|0;h=h+Math.imul(N,te)|0;h=h+Math.imul(P,ee)|0;u=u+Math.imul(P,te)|0;o=o+Math.imul(E,ie)|0;h=h+Math.imul(E,ne)|0;h=h+Math.imul(k,ie)|0;u=u+Math.imul(k,ne)|0;o=o+Math.imul(w,fe)|0;h=h+Math.imul(w,se)|0;h=h+Math.imul(M,fe)|0;u=u+Math.imul(M,se)|0;o=o+Math.imul(y,he)|0;h=h+Math.imul(y,ue)|0;h=h+Math.imul(g,he)|0;u=u+Math.imul(g,ue)|0;o=o+Math.imul(v,ce)|0;h=h+Math.imul(v,le)|0;h=h+Math.imul(b,ce)|0;u=u+Math.imul(b,le)|0;o=o+Math.imul(c,ve)|0;h=h+Math.imul(c,be)|0;h=h+Math.imul(l,ve)|0;u=u+Math.imul(l,be)|0;var Ne=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ne>>>26)|0;Ne&=67108863;o=Math.imul(z,W);h=Math.imul(z,V);h=h+Math.imul(F,W)|0;u=Math.imul(F,V);o=o+Math.imul(O,J)|0;h=h+Math.imul(O,Z)|0;h=h+Math.imul(H,J)|0;u=u+Math.imul(H,Z)|0;o=o+Math.imul(T,Y)|0;h=h+Math.imul(T,$)|0;h=h+Math.imul(j,Y)|0;u=u+Math.imul(j,$)|0;o=o+Math.imul(I,ee)|0;h=h+Math.imul(I,te)|0;h=h+Math.imul(C,ee)|0;u=u+Math.imul(C,te)|0;o=o+Math.imul(N,ie)|0;h=h+Math.imul(N,ne)|0;h=h+Math.imul(P,ie)|0;u=u+Math.imul(P,ne)|0;o=o+Math.imul(E,fe)|0;h=h+Math.imul(E,se)|0;h=h+Math.imul(k,fe)|0;u=u+Math.imul(k,se)|0;o=o+Math.imul(w,he)|0;h=h+Math.imul(w,ue)|0;h=h+Math.imul(M,he)|0;u=u+Math.imul(M,ue)|0;o=o+Math.imul(y,ce)|0;h=h+Math.imul(y,le)|0;h=h+Math.imul(g,ce)|0;u=u+Math.imul(g,le)|0;o=o+Math.imul(v,ve)|0;h=h+Math.imul(v,be)|0;h=h+Math.imul(b,ve)|0;u=u+Math.imul(b,be)|0;o=o+Math.imul(c,ye)|0;h=h+Math.imul(c,ge)|0;h=h+Math.imul(l,ye)|0;u=u+Math.imul(l,ge)|0;var Re=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Re>>>26)|0;Re&=67108863;o=Math.imul(z,J);h=Math.imul(z,Z);h=h+Math.imul(F,J)|0;u=Math.imul(F,Z);o=o+Math.imul(O,Y)|0;h=h+Math.imul(O,$)|0;h=h+Math.imul(H,Y)|0;u=u+Math.imul(H,$)|0;o=o+Math.imul(T,ee)|0;h=h+Math.imul(T,te)|0;h=h+Math.imul(j,ee)|0;u=u+Math.imul(j,te)|0;o=o+Math.imul(I,ie)|0;h=h+Math.imul(I,ne)|0;h=h+Math.imul(C,ie)|0;u=u+Math.imul(C,ne)|0;o=o+Math.imul(N,fe)|0;h=h+Math.imul(N,se)|0;h=h+Math.imul(P,fe)|0;u=u+Math.imul(P,se)|0;o=o+Math.imul(E,he)|0;h=h+Math.imul(E,ue)|0;h=h+Math.imul(k,he)|0;u=u+Math.imul(k,ue)|0;o=o+Math.imul(w,ce)|0;h=h+Math.imul(w,le)|0;h=h+Math.imul(M,ce)|0;u=u+Math.imul(M,le)|0;o=o+Math.imul(y,ve)|0;h=h+Math.imul(y,be)|0;h=h+Math.imul(g,ve)|0;u=u+Math.imul(g,be)|0;o=o+Math.imul(v,ye)|0;h=h+Math.imul(v,ge)|0;h=h+Math.imul(b,ye)|0;u=u+Math.imul(b,ge)|0;var Pe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Pe>>>26)|0;Pe&=67108863;o=Math.imul(z,Y);h=Math.imul(z,$);h=h+Math.imul(F,Y)|0;u=Math.imul(F,$);o=o+Math.imul(O,ee)|0;h=h+Math.imul(O,te)|0;h=h+Math.imul(H,ee)|0;u=u+Math.imul(H,te)|0;o=o+Math.imul(T,ie)|0;h=h+Math.imul(T,ne)|0;h=h+Math.imul(j,ie)|0;u=u+Math.imul(j,ne)|0;o=o+Math.imul(I,fe)|0;h=h+Math.imul(I,se)|0;h=h+Math.imul(C,fe)|0;u=u+Math.imul(C,se)|0;o=o+Math.imul(N,he)|0;h=h+Math.imul(N,ue)|0;h=h+Math.imul(P,he)|0;u=u+Math.imul(P,ue)|0;o=o+Math.imul(E,ce)|0;h=h+Math.imul(E,le)|0;h=h+Math.imul(k,ce)|0;u=u+Math.imul(k,le)|0;o=o+Math.imul(w,ve)|0;h=h+Math.imul(w,be)|0;h=h+Math.imul(M,ve)|0;u=u+Math.imul(M,be)|0;o=o+Math.imul(y,ye)|0;h=h+Math.imul(y,ge)|0;h=h+Math.imul(g,ye)|0;u=u+Math.imul(g,ge)|0;var xe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(xe>>>26)|0;xe&=67108863;o=Math.imul(z,ee);h=Math.imul(z,te);h=h+Math.imul(F,ee)|0;u=Math.imul(F,te);o=o+Math.imul(O,ie)|0;h=h+Math.imul(O,ne)|0;h=h+Math.imul(H,ie)|0;u=u+Math.imul(H,ne)|0;o=o+Math.imul(T,fe)|0;h=h+Math.imul(T,se)|0;h=h+Math.imul(j,fe)|0;u=u+Math.imul(j,se)|0;o=o+Math.imul(I,he)|0;h=h+Math.imul(I,ue)|0;h=h+Math.imul(C,he)|0;u=u+Math.imul(C,ue)|0;o=o+Math.imul(N,ce)|0;h=h+Math.imul(N,le)|0;h=h+Math.imul(P,ce)|0;u=u+Math.imul(P,le)|0;o=o+Math.imul(E,ve)|0;h=h+Math.imul(E,be)|0;h=h+Math.imul(k,ve)|0;u=u+Math.imul(k,be)|0;o=o+Math.imul(w,ye)|0;h=h+Math.imul(w,ge)|0;h=h+Math.imul(M,ye)|0;u=u+Math.imul(M,ge)|0;var Ie=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ie>>>26)|0;Ie&=67108863;o=Math.imul(z,ie);h=Math.imul(z,ne);h=h+Math.imul(F,ie)|0;u=Math.imul(F,ne);o=o+Math.imul(O,fe)|0;h=h+Math.imul(O,se)|0;h=h+Math.imul(H,fe)|0;u=u+Math.imul(H,se)|0;o=o+Math.imul(T,he)|0;h=h+Math.imul(T,ue)|0;h=h+Math.imul(j,he)|0;u=u+Math.imul(j,ue)|0;o=o+Math.imul(I,ce)|0;h=h+Math.imul(I,le)|0;h=h+Math.imul(C,ce)|0;u=u+Math.imul(C,le)|0;o=o+Math.imul(N,ve)|0;h=h+Math.imul(N,be)|0;h=h+Math.imul(P,ve)|0;u=u+Math.imul(P,be)|0;o=o+Math.imul(E,ye)|0;h=h+Math.imul(E,ge)|0;h=h+Math.imul(k,ye)|0;u=u+Math.imul(k,ge)|0;var Ce=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ce>>>26)|0;Ce&=67108863;o=Math.imul(z,fe);h=Math.imul(z,se);h=h+Math.imul(F,fe)|0;u=Math.imul(F,se);o=o+Math.imul(O,he)|0;h=h+Math.imul(O,ue)|0;h=h+Math.imul(H,he)|0;u=u+Math.imul(H,ue)|0;o=o+Math.imul(T,ce)|0;h=h+Math.imul(T,le)|0;h=h+Math.imul(j,ce)|0;u=u+Math.imul(j,le)|0;o=o+Math.imul(I,ve)|0;h=h+Math.imul(I,be)|0;h=h+Math.imul(C,ve)|0;u=u+Math.imul(C,be)|0;o=o+Math.imul(N,ye)|0;h=h+Math.imul(N,ge)|0;h=h+Math.imul(P,ye)|0;u=u+Math.imul(P,ge)|0;var De=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(De>>>26)|0;De&=67108863;o=Math.imul(z,he);h=Math.imul(z,ue);h=h+Math.imul(F,he)|0;u=Math.imul(F,ue);o=o+Math.imul(O,ce)|0;h=h+Math.imul(O,le)|0;h=h+Math.imul(H,ce)|0;u=u+Math.imul(H,le)|0;o=o+Math.imul(T,ve)|0;h=h+Math.imul(T,be)|0;h=h+Math.imul(j,ve)|0;u=u+Math.imul(j,be)|0;o=o+Math.imul(I,ye)|0;h=h+Math.imul(I,ge)|0;h=h+Math.imul(C,ye)|0;u=u+Math.imul(C,ge)|0;var Te=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Te>>>26)|0;Te&=67108863;o=Math.imul(z,ce);h=Math.imul(z,le);h=h+Math.imul(F,ce)|0;u=Math.imul(F,le);o=o+Math.imul(O,ve)|0;h=h+Math.imul(O,be)|0;h=h+Math.imul(H,ve)|0;u=u+Math.imul(H,be)|0;o=o+Math.imul(T,ye)|0;h=h+Math.imul(T,ge)|0;h=h+Math.imul(j,ye)|0;u=u+Math.imul(j,ge)|0;var je=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(je>>>26)|0;je&=67108863;o=Math.imul(z,ve);h=Math.imul(z,be);h=h+Math.imul(F,ve)|0;u=Math.imul(F,be);o=o+Math.imul(O,ye)|0;h=h+Math.imul(O,ge)|0;h=h+Math.imul(H,ye)|0;u=u+Math.imul(H,ge)|0;var qe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(qe>>>26)|0;qe&=67108863;o=Math.imul(z,ye);h=Math.imul(z,ge);h=h+Math.imul(F,ye)|0;u=Math.imul(F,ge);var Oe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Oe>>>26)|0;Oe&=67108863;a[0]=_e;a[1]=we;a[2]=Me;a[3]=Se;a[4]=Be;a[5]=Ee;a[6]=ke;a[7]=Ae;a[8]=Ne;a[9]=Re;a[10]=Pe;a[11]=xe;a[12]=Ie;a[13]=Ce;a[14]=De;a[15]=Te;a[16]=je;a[17]=qe;a[18]=Oe;if(s!==0){a[19]=s;r.length++}return r};if(!Math.imul){o=smallMulTo}function bigMulTo(e,t,r){r.negative=t.negative^e.negative;r.length=e.length+t.length;var i=0;var n=0;for(var a=0;a<r.length-1;a++){var s=n;n=0;var o=i&67108863;var h=Math.min(a,t.length-1);for(var u=Math.max(0,a-e.length+1);u<=h;u++){var d=a-u;var c=e.words[d]|0;var l=t.words[u]|0;var p=c*l;var v=p&67108863;s=s+(p/67108864|0)|0;v=v+o|0;o=v&67108863;s=s+(v>>>26)|0;n+=s>>>26;s&=67108863}r.words[a]=o;i=s;s=n}if(i!==0){r.words[a]=i}else{r.length--}return r.strip()}function jumboMulTo(e,t,r){var i=new FFTM;return i.mulp(e,t,r)}BN.prototype.mulTo=function mulTo(e,t){var r;var i=this.length+e.length;if(this.length===10&&e.length===10){r=o(this,e,t)}else if(i<63){r=smallMulTo(this,e,t)}else if(i<1024){r=bigMulTo(this,e,t)}else{r=jumboMulTo(this,e,t)}return r};function FFTM(e,t){this.x=e;this.y=t}FFTM.prototype.makeRBT=function makeRBT(e){var t=new Array(e);var r=BN.prototype._countBits(e)-1;for(var i=0;i<e;i++){t[i]=this.revBin(i,r,e)}return t};FFTM.prototype.revBin=function revBin(e,t,r){if(e===0||e===r-1)return e;var i=0;for(var n=0;n<t;n++){i|=(e&1)<<t-n-1;e>>=1}return i};FFTM.prototype.permute=function permute(e,t,r,i,n,a){for(var s=0;s<a;s++){i[s]=t[e[s]];n[s]=r[e[s]]}};FFTM.prototype.transform=function transform(e,t,r,i,n,a){this.permute(a,e,t,r,i,n);for(var s=1;s<n;s<<=1){var o=s<<1;var h=Math.cos(2*Math.PI/o);var u=Math.sin(2*Math.PI/o);for(var d=0;d<n;d+=o){var c=h;var l=u;for(var p=0;p<s;p++){var v=r[d+p];var b=i[d+p];var m=r[d+p+s];var y=i[d+p+s];var g=c*m-l*y;y=c*y+l*m;m=g;r[d+p]=v+m;i[d+p]=b+y;r[d+p+s]=v-m;i[d+p+s]=b-y;if(p!==o){g=h*c-u*l;l=h*l+u*c;c=g}}}}};FFTM.prototype.guessLen13b=function guessLen13b(e,t){var r=Math.max(t,e)|1;var i=r&1;var n=0;for(r=r/2|0;r;r=r>>>1){n++}return 1<<n+1+i};FFTM.prototype.conjugate=function conjugate(e,t,r){if(r<=1)return;for(var i=0;i<r/2;i++){var n=e[i];e[i]=e[r-i-1];e[r-i-1]=n;n=t[i];t[i]=-t[r-i-1];t[r-i-1]=-n}};FFTM.prototype.normalize13b=function normalize13b(e,t){var r=0;for(var i=0;i<t/2;i++){var n=Math.round(e[2*i+1]/t)*8192+Math.round(e[2*i]/t)+r;e[i]=n&67108863;if(n<67108864){r=0}else{r=n/67108864|0}}return e};FFTM.prototype.convert13b=function convert13b(e,t,r,i){var n=0;for(var a=0;a<t;a++){n=n+(e[a]|0);r[2*a]=n&8191;n=n>>>13;r[2*a+1]=n&8191;n=n>>>13}for(a=2*t;a<i;++a){r[a]=0}assert(n===0);assert((n&~8191)===0)};FFTM.prototype.stub=function stub(e){var t=new Array(e);for(var r=0;r<e;r++){t[r]=0}return t};FFTM.prototype.mulp=function mulp(e,t,r){var i=2*this.guessLen13b(e.length,t.length);var n=this.makeRBT(i);var a=this.stub(i);var s=new Array(i);var o=new Array(i);var h=new Array(i);var u=new Array(i);var d=new Array(i);var c=new Array(i);var l=r.words;l.length=i;this.convert13b(e.words,e.length,s,i);this.convert13b(t.words,t.length,u,i);this.transform(s,a,o,h,i,n);this.transform(u,a,d,c,i,n);for(var p=0;p<i;p++){var v=o[p]*d[p]-h[p]*c[p];h[p]=o[p]*c[p]+h[p]*d[p];o[p]=v}this.conjugate(o,h,i);this.transform(o,h,l,a,i,n);this.conjugate(l,a,i);this.normalize13b(l,i);r.negative=e.negative^t.negative;r.length=e.length+t.length;return r.strip()};BN.prototype.mul=function mul(e){var t=new BN(null);t.words=new Array(this.length+e.length);return this.mulTo(e,t)};BN.prototype.mulf=function mulf(e){var t=new BN(null);t.words=new Array(this.length+e.length);return jumboMulTo(this,e,t)};BN.prototype.imul=function imul(e){return this.clone().mulTo(e,this)};BN.prototype.imuln=function imuln(e){assert(typeof e===\"number\");assert(e<67108864);var t=0;for(var r=0;r<this.length;r++){var i=(this.words[r]|0)*e;var n=(i&67108863)+(t&67108863);t>>=26;t+=i/67108864|0;t+=n>>>26;this.words[r]=n&67108863}if(t!==0){this.words[r]=t;this.length++}return this};BN.prototype.muln=function muln(e){return this.clone().imuln(e)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(e){var t=toBitArray(e);if(t.length===0)return new BN(1);var r=this;for(var i=0;i<t.length;i++,r=r.sqr()){if(t[i]!==0)break}if(++i<t.length){for(var n=r.sqr();i<t.length;i++,n=n.sqr()){if(t[i]===0)continue;r=r.mul(n)}}return r};BN.prototype.iushln=function iushln(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;var i=67108863>>>26-t<<26-t;var n;if(t!==0){var a=0;for(n=0;n<this.length;n++){var s=this.words[n]&i;var o=(this.words[n]|0)-s<<t;this.words[n]=o|a;a=s>>>26-t}if(a){this.words[n]=a;this.length++}}if(r!==0){for(n=this.length-1;n>=0;n--){this.words[n+r]=this.words[n]}for(n=0;n<r;n++){this.words[n]=0}this.length+=r}return this.strip()};BN.prototype.ishln=function ishln(e){assert(this.negative===0);return this.iushln(e)};BN.prototype.iushrn=function iushrn(e,t,r){assert(typeof e===\"number\"&&e>=0);var i;if(t){i=(t-t%26)/26}else{i=0}var n=e%26;var a=Math.min((e-n)/26,this.length);var s=67108863^67108863>>>n<<n;var o=r;i-=a;i=Math.max(0,i);if(o){for(var h=0;h<a;h++){o.words[h]=this.words[h]}o.length=a}if(a===0){}else if(this.length>a){this.length-=a;for(h=0;h<this.length;h++){this.words[h]=this.words[h+a]}}else{this.words[0]=0;this.length=1}var u=0;for(h=this.length-1;h>=0&&(u!==0||h>=i);h--){var d=this.words[h]|0;this.words[h]=u<<26-n|d>>>n;u=d&s}if(o&&u!==0){o.words[o.length++]=u}if(this.length===0){this.words[0]=0;this.length=1}return this.strip()};BN.prototype.ishrn=function ishrn(e,t,r){assert(this.negative===0);return this.iushrn(e,t,r)};BN.prototype.shln=function shln(e){return this.clone().ishln(e)};BN.prototype.ushln=function ushln(e){return this.clone().iushln(e)};BN.prototype.shrn=function shrn(e){return this.clone().ishrn(e)};BN.prototype.ushrn=function ushrn(e){return this.clone().iushrn(e)};BN.prototype.testn=function testn(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;var i=1<<t;if(this.length<=r)return false;var n=this.words[r];return!!(n&i)};BN.prototype.imaskn=function imaskn(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;assert(this.negative===0,\"imaskn works only with positive numbers\");if(this.length<=r){return this}if(t!==0){r++}this.length=Math.min(r,this.length);if(t!==0){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()};BN.prototype.maskn=function maskn(e){return this.clone().imaskn(e)};BN.prototype.iaddn=function iaddn(e){assert(typeof e===\"number\");assert(e<67108864);if(e<0)return this.isubn(-e);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<e){this.words[0]=e-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(e);this.negative=1;return this}return this._iaddn(e)};BN.prototype._iaddn=function _iaddn(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++){this.words[t]-=67108864;if(t===this.length-1){this.words[t+1]=1}else{this.words[t+1]++}}this.length=Math.max(this.length,t+1);return this};BN.prototype.isubn=function isubn(e){assert(typeof e===\"number\");assert(e<67108864);if(e<0)return this.iaddn(-e);if(this.negative!==0){this.negative=0;this.iaddn(e);this.negative=1;return this}this.words[0]-=e;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var t=0;t<this.length&&this.words[t]<0;t++){this.words[t]+=67108864;this.words[t+1]-=1}}return this.strip()};BN.prototype.addn=function addn(e){return this.clone().iaddn(e)};BN.prototype.subn=function subn(e){return this.clone().isubn(e)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(e,t,r){var i=e.length+r;var n;this._expand(i);var a;var s=0;for(n=0;n<e.length;n++){a=(this.words[n+r]|0)+s;var o=(e.words[n]|0)*t;a-=o&67108863;s=(a>>26)-(o/67108864|0);this.words[n+r]=a&67108863}for(;n<this.length-r;n++){a=(this.words[n+r]|0)+s;s=a>>26;this.words[n+r]=a&67108863}if(s===0)return this.strip();assert(s===-1);s=0;for(n=0;n<this.length;n++){a=-(this.words[n]|0)+s;s=a>>26;this.words[n]=a&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(e,t){var r=this.length-e.length;var i=this.clone();var n=e;var a=n.words[n.length-1]|0;var s=this._countBits(a);r=26-s;if(r!==0){n=n.ushln(r);i.iushln(r);a=n.words[n.length-1]|0}var o=i.length-n.length;var h;if(t!==\"mod\"){h=new BN(null);h.length=o+1;h.words=new Array(h.length);for(var u=0;u<h.length;u++){h.words[u]=0}}var d=i.clone()._ishlnsubmul(n,1,o);if(d.negative===0){i=d;if(h){h.words[o]=1}}for(var c=o-1;c>=0;c--){var l=(i.words[n.length+c]|0)*67108864+(i.words[n.length+c-1]|0);l=Math.min(l/a|0,67108863);i._ishlnsubmul(n,l,c);while(i.negative!==0){l--;i.negative=0;i._ishlnsubmul(n,1,c);if(!i.isZero()){i.negative^=1}}if(h){h.words[c]=l}}if(h){h.strip()}i.strip();if(t!==\"div\"&&r!==0){i.iushrn(r)}return{div:h||null,mod:i}};BN.prototype.divmod=function divmod(e,t,r){assert(!e.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var i,n,a;if(this.negative!==0&&e.negative===0){a=this.neg().divmod(e,t);if(t!==\"mod\"){i=a.div.neg()}if(t!==\"div\"){n=a.mod.neg();if(r&&n.negative!==0){n.iadd(e)}}return{div:i,mod:n}}if(this.negative===0&&e.negative!==0){a=this.divmod(e.neg(),t);if(t!==\"mod\"){i=a.div.neg()}return{div:i,mod:a.mod}}if((this.negative&e.negative)!==0){a=this.neg().divmod(e.neg(),t);if(t!==\"div\"){n=a.mod.neg();if(r&&n.negative!==0){n.isub(e)}}return{div:a.div,mod:n}}if(e.length>this.length||this.cmp(e)<0){return{div:new BN(0),mod:this}}if(e.length===1){if(t===\"div\"){return{div:this.divn(e.words[0]),mod:null}}if(t===\"mod\"){return{div:null,mod:new BN(this.modn(e.words[0]))}}return{div:this.divn(e.words[0]),mod:new BN(this.modn(e.words[0]))}}return this._wordDiv(e,t)};BN.prototype.div=function div(e){return this.divmod(e,\"div\",false).div};BN.prototype.mod=function mod(e){return this.divmod(e,\"mod\",false).mod};BN.prototype.umod=function umod(e){return this.divmod(e,\"mod\",true).mod};BN.prototype.divRound=function divRound(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=t.div.negative!==0?t.mod.isub(e):t.mod;var i=e.ushrn(1);var n=e.andln(1);var a=r.cmp(i);if(a<0||n===1&&a===0)return t.div;return t.div.negative!==0?t.div.isubn(1):t.div.iaddn(1)};BN.prototype.modn=function modn(e){assert(e<=67108863);var t=(1<<26)%e;var r=0;for(var i=this.length-1;i>=0;i--){r=(t*r+(this.words[i]|0))%e}return r};BN.prototype.idivn=function idivn(e){assert(e<=67108863);var t=0;for(var r=this.length-1;r>=0;r--){var i=(this.words[r]|0)+t*67108864;this.words[r]=i/e|0;t=i%e}return this.strip()};BN.prototype.divn=function divn(e){return this.clone().idivn(e)};BN.prototype.egcd=function egcd(e){assert(e.negative===0);assert(!e.isZero());var t=this;var r=e.clone();if(t.negative!==0){t=t.umod(e)}else{t=t.clone()}var i=new BN(1);var n=new BN(0);var a=new BN(0);var s=new BN(1);var o=0;while(t.isEven()&&r.isEven()){t.iushrn(1);r.iushrn(1);++o}var h=r.clone();var u=t.clone();while(!t.isZero()){for(var d=0,c=1;(t.words[0]&c)===0&&d<26;++d,c<<=1);if(d>0){t.iushrn(d);while(d-- >0){if(i.isOdd()||n.isOdd()){i.iadd(h);n.isub(u)}i.iushrn(1);n.iushrn(1)}}for(var l=0,p=1;(r.words[0]&p)===0&&l<26;++l,p<<=1);if(l>0){r.iushrn(l);while(l-- >0){if(a.isOdd()||s.isOdd()){a.iadd(h);s.isub(u)}a.iushrn(1);s.iushrn(1)}}if(t.cmp(r)>=0){t.isub(r);i.isub(a);n.isub(s)}else{r.isub(t);a.isub(i);s.isub(n)}}return{a:a,b:s,gcd:r.iushln(o)}};BN.prototype._invmp=function _invmp(e){assert(e.negative===0);assert(!e.isZero());var t=this;var r=e.clone();if(t.negative!==0){t=t.umod(e)}else{t=t.clone()}var i=new BN(1);var n=new BN(0);var a=r.clone();while(t.cmpn(1)>0&&r.cmpn(1)>0){for(var s=0,o=1;(t.words[0]&o)===0&&s<26;++s,o<<=1);if(s>0){t.iushrn(s);while(s-- >0){if(i.isOdd()){i.iadd(a)}i.iushrn(1)}}for(var h=0,u=1;(r.words[0]&u)===0&&h<26;++h,u<<=1);if(h>0){r.iushrn(h);while(h-- >0){if(n.isOdd()){n.iadd(a)}n.iushrn(1)}}if(t.cmp(r)>=0){t.isub(r);i.isub(n)}else{r.isub(t);n.isub(i)}}var d;if(t.cmpn(1)===0){d=i}else{d=n}if(d.cmpn(0)<0){d.iadd(e)}return d};BN.prototype.gcd=function gcd(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone();var r=e.clone();t.negative=0;r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++){t.iushrn(1);r.iushrn(1)}do{while(t.isEven()){t.iushrn(1)}while(r.isEven()){r.iushrn(1)}var n=t.cmp(r);if(n<0){var a=t;t=r;r=a}else if(n===0||r.cmpn(1)===0){break}t.isub(r)}while(true);return r.iushln(i)};BN.prototype.invm=function invm(e){return this.egcd(e).a.umod(e)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(e){return this.words[0]&e};BN.prototype.bincn=function bincn(e){assert(typeof e===\"number\");var t=e%26;var r=(e-t)/26;var i=1<<t;if(this.length<=r){this._expand(r+1);this.words[r]|=i;return this}var n=i;for(var a=r;n!==0&&a<this.length;a++){var s=this.words[a]|0;s+=n;n=s>>>26;s&=67108863;this.words[a]=s}if(n!==0){this.words[a]=n;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(e){var t=e<0;if(this.negative!==0&&!t)return-1;if(this.negative===0&&t)return 1;this.strip();var r;if(this.length>1){r=1}else{if(t){e=-e}assert(e<=67108863,\"Number is too big\");var i=this.words[0]|0;r=i===e?0:i<e?-1:1}if(this.negative!==0)return-r|0;return r};BN.prototype.cmp=function cmp(e){if(this.negative!==0&&e.negative===0)return-1;if(this.negative===0&&e.negative!==0)return 1;var t=this.ucmp(e);if(this.negative!==0)return-t|0;return t};BN.prototype.ucmp=function ucmp(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;var t=0;for(var r=this.length-1;r>=0;r--){var i=this.words[r]|0;var n=e.words[r]|0;if(i===n)continue;if(i<n){t=-1}else if(i>n){t=1}break}return t};BN.prototype.gtn=function gtn(e){return this.cmpn(e)===1};BN.prototype.gt=function gt(e){return this.cmp(e)===1};BN.prototype.gten=function gten(e){return this.cmpn(e)>=0};BN.prototype.gte=function gte(e){return this.cmp(e)>=0};BN.prototype.ltn=function ltn(e){return this.cmpn(e)===-1};BN.prototype.lt=function lt(e){return this.cmp(e)===-1};BN.prototype.lten=function lten(e){return this.cmpn(e)<=0};BN.prototype.lte=function lte(e){return this.cmp(e)<=0};BN.prototype.eqn=function eqn(e){return this.cmpn(e)===0};BN.prototype.eq=function eq(e){return this.cmp(e)===0};BN.red=function red(e){return new Red(e)};BN.prototype.toRed=function toRed(e){assert(!this.red,\"Already a number in reduction context\");assert(this.negative===0,\"red works only with positives\");return e.convertTo(this)._forceRed(e)};BN.prototype.fromRed=function fromRed(){assert(this.red,\"fromRed works only with numbers in reduction context\");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(e){this.red=e;return this};BN.prototype.forceRed=function forceRed(e){assert(!this.red,\"Already a number in reduction context\");return this._forceRed(e)};BN.prototype.redAdd=function redAdd(e){assert(this.red,\"redAdd works only with red numbers\");return this.red.add(this,e)};BN.prototype.redIAdd=function redIAdd(e){assert(this.red,\"redIAdd works only with red numbers\");return this.red.iadd(this,e)};BN.prototype.redSub=function redSub(e){assert(this.red,\"redSub works only with red numbers\");return this.red.sub(this,e)};BN.prototype.redISub=function redISub(e){assert(this.red,\"redISub works only with red numbers\");return this.red.isub(this,e)};BN.prototype.redShl=function redShl(e){assert(this.red,\"redShl works only with red numbers\");return this.red.shl(this,e)};BN.prototype.redMul=function redMul(e){assert(this.red,\"redMul works only with red numbers\");this.red._verify2(this,e);return this.red.mul(this,e)};BN.prototype.redIMul=function redIMul(e){assert(this.red,\"redMul works only with red numbers\");this.red._verify2(this,e);return this.red.imul(this,e)};BN.prototype.redSqr=function redSqr(){assert(this.red,\"redSqr works only with red numbers\");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,\"redISqr works only with red numbers\");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,\"redSqrt works only with red numbers\");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,\"redInvm works only with red numbers\");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,\"redNeg works only with red numbers\");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(e){assert(this.red&&!e.red,\"redPow(normalNum)\");this.red._verify1(this);return this.red.pow(this,e)};var h={k256:null,p224:null,p192:null,p25519:null};function MPrime(e,t){this.name=e;this.p=new BN(t,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var e=new BN(null);e.words=new Array(Math.ceil(this.n/13));return e};MPrime.prototype.ireduce=function ireduce(e){var t=e;var r;do{this.split(t,this.tmp);t=this.imulK(t);t=t.iadd(this.tmp);r=t.bitLength()}while(r>this.n);var i=r<this.n?-1:t.ucmp(this.p);if(i===0){t.words[0]=0;t.length=1}else if(i>0){t.isub(this.p)}else{if(t.strip!==undefined){t.strip()}else{t._strip()}}return t};MPrime.prototype.split=function split(e,t){e.iushrn(this.n,0,t)};MPrime.prototype.imulK=function imulK(e){return e.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime);K256.prototype.split=function split(e,t){var r=4194303;var i=Math.min(e.length,9);for(var n=0;n<i;n++){t.words[n]=e.words[n]}t.length=i;if(e.length<=9){e.words[0]=0;e.length=1;return}var a=e.words[9];t.words[t.length++]=a&r;for(n=10;n<e.length;n++){var s=e.words[n]|0;e.words[n-10]=(s&r)<<4|a>>>22;a=s}a>>>=22;e.words[n-10]=a;if(a===0&&e.length>10){e.length-=10}else{e.length-=9}};K256.prototype.imulK=function imulK(e){e.words[e.length]=0;e.words[e.length+1]=0;e.length+=2;var t=0;for(var r=0;r<e.length;r++){var i=e.words[r]|0;t+=i*977;e.words[r]=t&67108863;t=i*64+(t/67108864|0)}if(e.words[e.length-1]===0){e.length--;if(e.words[e.length-1]===0){e.length--}}return e};function P224(){MPrime.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}inherits(P224,MPrime);function P192(){MPrime.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}inherits(P192,MPrime);function P25519(){MPrime.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(e){var t=0;for(var r=0;r<e.length;r++){var i=(e.words[r]|0)*19+t;var n=i&67108863;i>>>=26;e.words[r]=n;t=i}if(t!==0){e.words[e.length++]=t}return e};BN._prime=function prime(e){if(h[e])return h[e];var prime;if(e===\"k256\"){prime=new K256}else if(e===\"p224\"){prime=new P224}else if(e===\"p192\"){prime=new P192}else if(e===\"p25519\"){prime=new P25519}else{throw new Error(\"Unknown prime \"+e)}h[e]=prime;return prime};function Red(e){if(typeof e===\"string\"){var t=BN._prime(e);this.m=t.p;this.prime=t}else{assert(e.gtn(1),\"modulus must be greater than 1\");this.m=e;this.prime=null}}Red.prototype._verify1=function _verify1(e){assert(e.negative===0,\"red works only with positives\");assert(e.red,\"red works only with red numbers\")};Red.prototype._verify2=function _verify2(e,t){assert((e.negative|t.negative)===0,\"red works only with positives\");assert(e.red&&e.red===t.red,\"red works only with red numbers\")};Red.prototype.imod=function imod(e){if(this.prime)return this.prime.ireduce(e)._forceRed(this);return e.umod(this.m)._forceRed(this)};Red.prototype.neg=function neg(e){if(e.isZero()){return e.clone()}return this.m.sub(e)._forceRed(this)};Red.prototype.add=function add(e,t){this._verify2(e,t);var r=e.add(t);if(r.cmp(this.m)>=0){r.isub(this.m)}return r._forceRed(this)};Red.prototype.iadd=function iadd(e,t){this._verify2(e,t);var r=e.iadd(t);if(r.cmp(this.m)>=0){r.isub(this.m)}return r};Red.prototype.sub=function sub(e,t){this._verify2(e,t);var r=e.sub(t);if(r.cmpn(0)<0){r.iadd(this.m)}return r._forceRed(this)};Red.prototype.isub=function isub(e,t){this._verify2(e,t);var r=e.isub(t);if(r.cmpn(0)<0){r.iadd(this.m)}return r};Red.prototype.shl=function shl(e,t){this._verify1(e);return this.imod(e.ushln(t))};Red.prototype.imul=function imul(e,t){this._verify2(e,t);return this.imod(e.imul(t))};Red.prototype.mul=function mul(e,t){this._verify2(e,t);return this.imod(e.mul(t))};Red.prototype.isqr=function isqr(e){return this.imul(e,e.clone())};Red.prototype.sqr=function sqr(e){return this.mul(e,e)};Red.prototype.sqrt=function sqrt(e){if(e.isZero())return e.clone();var t=this.m.andln(3);assert(t%2===1);if(t===3){var r=this.m.add(new BN(1)).iushrn(2);return this.pow(e,r)}var i=this.m.subn(1);var n=0;while(!i.isZero()&&i.andln(1)===0){n++;i.iushrn(1)}assert(!i.isZero());var a=new BN(1).toRed(this);var s=a.redNeg();var o=this.m.subn(1).iushrn(1);var h=this.m.bitLength();h=new BN(2*h*h).toRed(this);while(this.pow(h,o).cmp(s)!==0){h.redIAdd(s)}var u=this.pow(h,i);var d=this.pow(e,i.addn(1).iushrn(1));var c=this.pow(e,i);var l=n;while(c.cmp(a)!==0){var p=c;for(var v=0;p.cmp(a)!==0;v++){p=p.redSqr()}assert(v<l);var b=this.pow(u,new BN(1).iushln(l-v-1));d=d.redMul(b);u=b.redSqr();c=c.redMul(u);l=v}return d};Red.prototype.invm=function invm(e){var t=e._invmp(this.m);if(t.negative!==0){t.negative=0;return this.imod(t).redNeg()}else{return this.imod(t)}};Red.prototype.pow=function pow(e,t){if(t.isZero())return new BN(1).toRed(this);if(t.cmpn(1)===0)return e.clone();var r=4;var i=new Array(1<<r);i[0]=new BN(1).toRed(this);i[1]=e;for(var n=2;n<i.length;n++){i[n]=this.mul(i[n-1],e)}var a=i[0];var s=0;var o=0;var h=t.bitLength()%26;if(h===0){h=26}for(n=t.length-1;n>=0;n--){var u=t.words[n];for(var d=h-1;d>=0;d--){var c=u>>d&1;if(a!==i[0]){a=this.sqr(a)}if(c===0&&s===0){o=0;continue}s<<=1;s|=c;o++;if(o!==r&&(n!==0||d!==0))continue;a=this.mul(a,i[s]);o=0;s=0}h=26}return a};Red.prototype.convertTo=function convertTo(e){var t=e.umod(this.m);return t===e?t.clone():t};Red.prototype.convertFrom=function convertFrom(e){var t=e.clone();t.red=null;return t};BN.mont=function mont(e){return new Mont(e)};function Mont(e){Red.call(this,e);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(e){return this.imod(e.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(e){var t=this.imod(e.mul(this.rinv));t.red=null;return t};Mont.prototype.imul=function imul(e,t){if(e.isZero()||t.isZero()){e.words[0]=0;e.length=1;return e}var r=e.imul(t);var i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var n=r.isub(i).iushrn(this.shift);var a=n;if(n.cmp(this.m)>=0){a=n.isub(this.m)}else if(n.cmpn(0)<0){a=n.iadd(this.m)}return a._forceRed(this)};Mont.prototype.mul=function mul(e,t){if(e.isZero()||t.isZero())return new BN(0)._forceRed(this);var r=e.mul(t);var i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var n=r.isub(i).iushrn(this.shift);var a=n;if(n.cmp(this.m)>=0){a=n.isub(this.m)}else if(n.cmpn(0)<0){a=n.iadd(this.m)}return a._forceRed(this)};Mont.prototype.invm=function invm(e){var t=this.imod(e._invmp(this.m).mul(this.r2));return t._forceRed(this)}})( false||e,this)},1670:function(e,t,r){e=r.nmd(e);(function(e,t){\"use strict\";function assert(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function inherits(e,t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}function BN(e,t,r){if(BN.isBN(e)){return e}this.negative=0;this.words=null;this.length=0;this.red=null;if(e!==null){if(t===\"le\"||t===\"be\"){r=t;t=10}this._init(e||0,t||10,r||\"be\")}}if(typeof e===\"object\"){e.exports=BN}else{t.BN=BN}BN.BN=BN;BN.wordSize=26;var i;try{i=r(4300).Buffer}catch(e){}BN.isBN=function isBN(e){if(e instanceof BN){return true}return e!==null&&typeof e===\"object\"&&e.constructor.wordSize===BN.wordSize&&Array.isArray(e.words)};BN.max=function max(e,t){if(e.cmp(t)>0)return e;return t};BN.min=function min(e,t){if(e.cmp(t)<0)return e;return t};BN.prototype._init=function init(e,t,r){if(typeof e===\"number\"){return this._initNumber(e,t,r)}if(typeof e===\"object\"){return this._initArray(e,t,r)}if(t===\"hex\"){t=16}assert(t===(t|0)&&t>=2&&t<=36);e=e.toString().replace(/\\s+/g,\"\");var i=0;if(e[0]===\"-\"){i++}if(t===16){this._parseHex(e,i)}else{this._parseBase(e,t,i)}if(e[0]===\"-\"){this.negative=1}this._strip();if(r!==\"le\")return;this._initArray(this.toArray(),t,r)};BN.prototype._initNumber=function _initNumber(e,t,r){if(e<0){this.negative=1;e=-e}if(e<67108864){this.words=[e&67108863];this.length=1}else if(e<4503599627370496){this.words=[e&67108863,e/67108864&67108863];this.length=2}else{assert(e<9007199254740992);this.words=[e&67108863,e/67108864&67108863,1];this.length=3}if(r!==\"le\")return;this._initArray(this.toArray(),t,r)};BN.prototype._initArray=function _initArray(e,t,r){assert(typeof e.length===\"number\");if(e.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(e.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var n,a;var s=0;if(r===\"be\"){for(i=e.length-1,n=0;i>=0;i-=3){a=e[i]|e[i-1]<<8|e[i-2]<<16;this.words[n]|=a<<s&67108863;this.words[n+1]=a>>>26-s&67108863;s+=24;if(s>=26){s-=26;n++}}}else if(r===\"le\"){for(i=0,n=0;i<e.length;i+=3){a=e[i]|e[i+1]<<8|e[i+2]<<16;this.words[n]|=a<<s&67108863;this.words[n+1]=a>>>26-s&67108863;s+=24;if(s>=26){s-=26;n++}}}return this._strip()};function parseHex(e,t,r){var i=0;var n=Math.min(e.length,r);var a=0;for(var s=t;s<n;s++){var o=e.charCodeAt(s)-48;i<<=4;var h;if(o>=49&&o<=54){h=o-49+10}else if(o>=17&&o<=22){h=o-17+10}else{h=o}i|=h;a|=h}assert(!(a&240),\"Invalid character in \"+e);return i}BN.prototype._parseHex=function _parseHex(e,t){this.length=Math.ceil((e.length-t)/6);this.words=new Array(this.length);for(var r=0;r<this.length;r++){this.words[r]=0}var i,n;var a=0;for(r=e.length-6,i=0;r>=t;r-=6){n=parseHex(e,r,r+6);this.words[i]|=n<<a&67108863;this.words[i+1]|=n>>>26-a&4194303;a+=24;if(a>=26){a-=26;i++}}if(r+6!==t){n=parseHex(e,t,r+6);this.words[i]|=n<<a&67108863;this.words[i+1]|=n>>>26-a&4194303}this._strip()};function parseBase(e,t,r,i){var n=0;var a=0;var s=Math.min(e.length,r);for(var o=t;o<s;o++){var h=e.charCodeAt(o)-48;n*=i;if(h>=49){a=h-49+10}else if(h>=17){a=h-17+10}else{a=h}assert(h>=0&&a<i,\"Invalid character\");n+=a}return n}BN.prototype._parseBase=function _parseBase(e,t,r){this.words=[0];this.length=1;for(var i=0,n=1;n<=67108863;n*=t){i++}i--;n=n/t|0;var a=e.length-r;var s=a%i;var o=Math.min(a,a-s)+r;var h=0;for(var u=r;u<o;u+=i){h=parseBase(e,u,u+i,t);this.imuln(n);if(this.words[0]+h<67108864){this.words[0]+=h}else{this._iaddn(h)}}if(s!==0){var d=1;h=parseBase(e,u,e.length,t);for(u=0;u<s;u++){d*=t}this.imuln(d);if(this.words[0]+h<67108864){this.words[0]+=h}else{this._iaddn(h)}}};BN.prototype.copy=function copy(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++){e.words[t]=this.words[t]}e.length=this.length;e.negative=this.negative;e.red=this.red};function move(e,t){e.words=t.words;e.length=t.length;e.negative=t.negative;e.red=t.red}BN.prototype._move=function _move(e){move(e,this)};BN.prototype.clone=function clone(){var e=new BN(null);this.copy(e);return e};BN.prototype._expand=function _expand(e){while(this.length<e){this.words[this.length++]=0}return this};BN.prototype._strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};if(typeof Symbol!==\"undefined\"&&typeof Symbol.for===\"function\"){BN.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=inspect}else{BN.prototype.inspect=inspect}function inspect(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"}var n=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"];var a=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var s=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(e,t){e=e||10;t=t|0||1;var r;if(e===16||e===\"hex\"){r=\"\";var i=0;var o=0;for(var h=0;h<this.length;h++){var u=this.words[h];var d=((u<<i|o)&16777215).toString(16);o=u>>>24-i&16777215;if(o!==0||h!==this.length-1){r=n[6-d.length]+d+r}else{r=d+r}i+=2;if(i>=26){i-=26;h--}}if(o!==0){r=o.toString(16)+r}while(r.length%t!==0){r=\"0\"+r}if(this.negative!==0){r=\"-\"+r}return r}if(e===(e|0)&&e>=2&&e<=36){var c=a[e];var l=s[e];r=\"\";var p=this.clone();p.negative=0;while(!p.isZero()){var v=p.modrn(l).toString(e);p=p.idivn(l);if(!p.isZero()){r=n[c-v.length]+v+r}else{r=v+r}}if(this.isZero()){r=\"0\"+r}while(r.length%t!==0){r=\"0\"+r}if(this.negative!==0){r=\"-\"+r}return r}assert(false,\"Base should be between 2 and 36\")};BN.prototype.toNumber=function toNumber(){var e=this.words[0];if(this.length===2){e+=this.words[1]*67108864}else if(this.length===3&&this.words[2]===1){e+=4503599627370496+this.words[1]*67108864}else if(this.length>2){assert(false,\"Number can only safely store up to 53 bits\")}return this.negative!==0?-e:e};BN.prototype.toJSON=function toJSON(){return this.toString(16,2)};if(i){BN.prototype.toBuffer=function toBuffer(e,t){return this.toArrayLike(i,e,t)}}BN.prototype.toArray=function toArray(e,t){return this.toArrayLike(Array,e,t)};var o=function allocate(e,t){if(e.allocUnsafe){return e.allocUnsafe(t)}return new e(t)};BN.prototype.toArrayLike=function toArrayLike(e,t,r){this._strip();var i=this.byteLength();var n=r||Math.max(1,i);assert(i<=n,\"byte array longer than desired length\");assert(n>0,\"Requested array length <= 0\");var a=o(e,n);var s=t===\"le\"?\"LE\":\"BE\";this[\"_toArrayLike\"+s](a,i);return a};BN.prototype._toArrayLikeLE=function _toArrayLikeLE(e,t){var r=0;var i=0;for(var n=0,a=0;n<this.length;n++){var s=this.words[n]<<a|i;e[r++]=s&255;if(r<e.length){e[r++]=s>>8&255}if(r<e.length){e[r++]=s>>16&255}if(a===6){if(r<e.length){e[r++]=s>>24&255}i=0;a=0}else{i=s>>>24;a+=2}}if(r<e.length){e[r++]=i;while(r<e.length){e[r++]=0}}};BN.prototype._toArrayLikeBE=function _toArrayLikeBE(e,t){var r=e.length-1;var i=0;for(var n=0,a=0;n<this.length;n++){var s=this.words[n]<<a|i;e[r--]=s&255;if(r>=0){e[r--]=s>>8&255}if(r>=0){e[r--]=s>>16&255}if(a===6){if(r>=0){e[r--]=s>>24&255}i=0;a=0}else{i=s>>>24;a+=2}}if(r>=0){e[r--]=i;while(r>=0){e[r--]=0}}};if(Math.clz32){BN.prototype._countBits=function _countBits(e){return 32-Math.clz32(e)}}else{BN.prototype._countBits=function _countBits(e){var t=e;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(e){if(e===0)return 26;var t=e;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var e=this.words[this.length-1];var t=this._countBits(e);return(this.length-1)*26+t};function toBitArray(e){var t=new Array(e.bitLength());for(var r=0;r<t.length;r++){var i=r/26|0;var n=r%26;t[r]=e.words[i]>>>n&1}return t}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var e=0;for(var t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);e+=r;if(r!==26)break}return e};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(e){if(this.negative!==0){return this.abs().inotn(e).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(e){if(this.testn(e-1)){return this.notn(e).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(e){while(this.length<e.length){this.words[this.length++]=0}for(var t=0;t<e.length;t++){this.words[t]=this.words[t]|e.words[t]}return this._strip()};BN.prototype.ior=function ior(e){assert((this.negative|e.negative)===0);return this.iuor(e)};BN.prototype.or=function or(e){if(this.length>e.length)return this.clone().ior(e);return e.clone().ior(this)};BN.prototype.uor=function uor(e){if(this.length>e.length)return this.clone().iuor(e);return e.clone().iuor(this)};BN.prototype.iuand=function iuand(e){var t;if(this.length>e.length){t=e}else{t=this}for(var r=0;r<t.length;r++){this.words[r]=this.words[r]&e.words[r]}this.length=t.length;return this._strip()};BN.prototype.iand=function iand(e){assert((this.negative|e.negative)===0);return this.iuand(e)};BN.prototype.and=function and(e){if(this.length>e.length)return this.clone().iand(e);return e.clone().iand(this)};BN.prototype.uand=function uand(e){if(this.length>e.length)return this.clone().iuand(e);return e.clone().iuand(this)};BN.prototype.iuxor=function iuxor(e){var t;var r;if(this.length>e.length){t=this;r=e}else{t=e;r=this}for(var i=0;i<r.length;i++){this.words[i]=t.words[i]^r.words[i]}if(this!==t){for(;i<t.length;i++){this.words[i]=t.words[i]}}this.length=t.length;return this._strip()};BN.prototype.ixor=function ixor(e){assert((this.negative|e.negative)===0);return this.iuxor(e)};BN.prototype.xor=function xor(e){if(this.length>e.length)return this.clone().ixor(e);return e.clone().ixor(this)};BN.prototype.uxor=function uxor(e){if(this.length>e.length)return this.clone().iuxor(e);return e.clone().iuxor(this)};BN.prototype.inotn=function inotn(e){assert(typeof e===\"number\"&&e>=0);var t=Math.ceil(e/26)|0;var r=e%26;this._expand(t);if(r>0){t--}for(var i=0;i<t;i++){this.words[i]=~this.words[i]&67108863}if(r>0){this.words[i]=~this.words[i]&67108863>>26-r}return this._strip()};BN.prototype.notn=function notn(e){return this.clone().inotn(e)};BN.prototype.setn=function setn(e,t){assert(typeof e===\"number\"&&e>=0);var r=e/26|0;var i=e%26;this._expand(r+1);if(t){this.words[r]=this.words[r]|1<<i}else{this.words[r]=this.words[r]&~(1<<i)}return this._strip()};BN.prototype.iadd=function iadd(e){var t;if(this.negative!==0&&e.negative===0){this.negative=0;t=this.isub(e);this.negative^=1;return this._normSign()}else if(this.negative===0&&e.negative!==0){e.negative=0;t=this.isub(e);e.negative=1;return t._normSign()}var r,i;if(this.length>e.length){r=this;i=e}else{r=e;i=this}var n=0;for(var a=0;a<i.length;a++){t=(r.words[a]|0)+(i.words[a]|0)+n;this.words[a]=t&67108863;n=t>>>26}for(;n!==0&&a<r.length;a++){t=(r.words[a]|0)+n;this.words[a]=t&67108863;n=t>>>26}this.length=r.length;if(n!==0){this.words[this.length]=n;this.length++}else if(r!==this){for(;a<r.length;a++){this.words[a]=r.words[a]}}return this};BN.prototype.add=function add(e){var t;if(e.negative!==0&&this.negative===0){e.negative=0;t=this.sub(e);e.negative^=1;return t}else if(e.negative===0&&this.negative!==0){this.negative=0;t=e.sub(this);this.negative=1;return t}if(this.length>e.length)return this.clone().iadd(e);return e.clone().iadd(this)};BN.prototype.isub=function isub(e){if(e.negative!==0){e.negative=0;var t=this.iadd(e);e.negative=1;return t._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(e);this.negative=1;return this._normSign()}var r=this.cmp(e);if(r===0){this.negative=0;this.length=1;this.words[0]=0;return this}var i,n;if(r>0){i=this;n=e}else{i=e;n=this}var a=0;for(var s=0;s<n.length;s++){t=(i.words[s]|0)-(n.words[s]|0)+a;a=t>>26;this.words[s]=t&67108863}for(;a!==0&&s<i.length;s++){t=(i.words[s]|0)+a;a=t>>26;this.words[s]=t&67108863}if(a===0&&s<i.length&&i!==this){for(;s<i.length;s++){this.words[s]=i.words[s]}}this.length=Math.max(this.length,s);if(i!==this){this.negative=1}return this._strip()};BN.prototype.sub=function sub(e){return this.clone().isub(e)};function smallMulTo(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i;i=i-1|0;var n=e.words[0]|0;var a=t.words[0]|0;var s=n*a;var o=s&67108863;var h=s/67108864|0;r.words[0]=o;for(var u=1;u<i;u++){var d=h>>>26;var c=h&67108863;var l=Math.min(u,t.length-1);for(var p=Math.max(0,u-e.length+1);p<=l;p++){var v=u-p|0;n=e.words[v]|0;a=t.words[p]|0;s=n*a+c;d+=s/67108864|0;c=s&67108863}r.words[u]=c|0;h=d|0}if(h!==0){r.words[u]=h|0}else{r.length--}return r._strip()}var h=function comb10MulTo(e,t,r){var i=e.words;var n=t.words;var a=r.words;var s=0;var o;var h;var u;var d=i[0]|0;var c=d&8191;var l=d>>>13;var p=i[1]|0;var v=p&8191;var b=p>>>13;var m=i[2]|0;var y=m&8191;var g=m>>>13;var _=i[3]|0;var w=_&8191;var M=_>>>13;var B=i[4]|0;var E=B&8191;var k=B>>>13;var A=i[5]|0;var N=A&8191;var P=A>>>13;var x=i[6]|0;var I=x&8191;var C=x>>>13;var D=i[7]|0;var T=D&8191;var j=D>>>13;var q=i[8]|0;var O=q&8191;var H=q>>>13;var L=i[9]|0;var z=L&8191;var F=L>>>13;var U=n[0]|0;var W=U&8191;var V=U>>>13;var G=n[1]|0;var J=G&8191;var Z=G>>>13;var X=n[2]|0;var Y=X&8191;var $=X>>>13;var Q=n[3]|0;var ee=Q&8191;var te=Q>>>13;var re=n[4]|0;var ie=re&8191;var ne=re>>>13;var ae=n[5]|0;var fe=ae&8191;var se=ae>>>13;var oe=n[6]|0;var he=oe&8191;var ue=oe>>>13;var de=n[7]|0;var ce=de&8191;var le=de>>>13;var pe=n[8]|0;var ve=pe&8191;var be=pe>>>13;var me=n[9]|0;var ye=me&8191;var ge=me>>>13;r.negative=e.negative^t.negative;r.length=19;o=Math.imul(c,W);h=Math.imul(c,V);h=h+Math.imul(l,W)|0;u=Math.imul(l,V);var _e=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(_e>>>26)|0;_e&=67108863;o=Math.imul(v,W);h=Math.imul(v,V);h=h+Math.imul(b,W)|0;u=Math.imul(b,V);o=o+Math.imul(c,J)|0;h=h+Math.imul(c,Z)|0;h=h+Math.imul(l,J)|0;u=u+Math.imul(l,Z)|0;var we=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(we>>>26)|0;we&=67108863;o=Math.imul(y,W);h=Math.imul(y,V);h=h+Math.imul(g,W)|0;u=Math.imul(g,V);o=o+Math.imul(v,J)|0;h=h+Math.imul(v,Z)|0;h=h+Math.imul(b,J)|0;u=u+Math.imul(b,Z)|0;o=o+Math.imul(c,Y)|0;h=h+Math.imul(c,$)|0;h=h+Math.imul(l,Y)|0;u=u+Math.imul(l,$)|0;var Me=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Me>>>26)|0;Me&=67108863;o=Math.imul(w,W);h=Math.imul(w,V);h=h+Math.imul(M,W)|0;u=Math.imul(M,V);o=o+Math.imul(y,J)|0;h=h+Math.imul(y,Z)|0;h=h+Math.imul(g,J)|0;u=u+Math.imul(g,Z)|0;o=o+Math.imul(v,Y)|0;h=h+Math.imul(v,$)|0;h=h+Math.imul(b,Y)|0;u=u+Math.imul(b,$)|0;o=o+Math.imul(c,ee)|0;h=h+Math.imul(c,te)|0;h=h+Math.imul(l,ee)|0;u=u+Math.imul(l,te)|0;var Se=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Se>>>26)|0;Se&=67108863;o=Math.imul(E,W);h=Math.imul(E,V);h=h+Math.imul(k,W)|0;u=Math.imul(k,V);o=o+Math.imul(w,J)|0;h=h+Math.imul(w,Z)|0;h=h+Math.imul(M,J)|0;u=u+Math.imul(M,Z)|0;o=o+Math.imul(y,Y)|0;h=h+Math.imul(y,$)|0;h=h+Math.imul(g,Y)|0;u=u+Math.imul(g,$)|0;o=o+Math.imul(v,ee)|0;h=h+Math.imul(v,te)|0;h=h+Math.imul(b,ee)|0;u=u+Math.imul(b,te)|0;o=o+Math.imul(c,ie)|0;h=h+Math.imul(c,ne)|0;h=h+Math.imul(l,ie)|0;u=u+Math.imul(l,ne)|0;var Be=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Be>>>26)|0;Be&=67108863;o=Math.imul(N,W);h=Math.imul(N,V);h=h+Math.imul(P,W)|0;u=Math.imul(P,V);o=o+Math.imul(E,J)|0;h=h+Math.imul(E,Z)|0;h=h+Math.imul(k,J)|0;u=u+Math.imul(k,Z)|0;o=o+Math.imul(w,Y)|0;h=h+Math.imul(w,$)|0;h=h+Math.imul(M,Y)|0;u=u+Math.imul(M,$)|0;o=o+Math.imul(y,ee)|0;h=h+Math.imul(y,te)|0;h=h+Math.imul(g,ee)|0;u=u+Math.imul(g,te)|0;o=o+Math.imul(v,ie)|0;h=h+Math.imul(v,ne)|0;h=h+Math.imul(b,ie)|0;u=u+Math.imul(b,ne)|0;o=o+Math.imul(c,fe)|0;h=h+Math.imul(c,se)|0;h=h+Math.imul(l,fe)|0;u=u+Math.imul(l,se)|0;var Ee=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ee>>>26)|0;Ee&=67108863;o=Math.imul(I,W);h=Math.imul(I,V);h=h+Math.imul(C,W)|0;u=Math.imul(C,V);o=o+Math.imul(N,J)|0;h=h+Math.imul(N,Z)|0;h=h+Math.imul(P,J)|0;u=u+Math.imul(P,Z)|0;o=o+Math.imul(E,Y)|0;h=h+Math.imul(E,$)|0;h=h+Math.imul(k,Y)|0;u=u+Math.imul(k,$)|0;o=o+Math.imul(w,ee)|0;h=h+Math.imul(w,te)|0;h=h+Math.imul(M,ee)|0;u=u+Math.imul(M,te)|0;o=o+Math.imul(y,ie)|0;h=h+Math.imul(y,ne)|0;h=h+Math.imul(g,ie)|0;u=u+Math.imul(g,ne)|0;o=o+Math.imul(v,fe)|0;h=h+Math.imul(v,se)|0;h=h+Math.imul(b,fe)|0;u=u+Math.imul(b,se)|0;o=o+Math.imul(c,he)|0;h=h+Math.imul(c,ue)|0;h=h+Math.imul(l,he)|0;u=u+Math.imul(l,ue)|0;var ke=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(ke>>>26)|0;ke&=67108863;o=Math.imul(T,W);h=Math.imul(T,V);h=h+Math.imul(j,W)|0;u=Math.imul(j,V);o=o+Math.imul(I,J)|0;h=h+Math.imul(I,Z)|0;h=h+Math.imul(C,J)|0;u=u+Math.imul(C,Z)|0;o=o+Math.imul(N,Y)|0;h=h+Math.imul(N,$)|0;h=h+Math.imul(P,Y)|0;u=u+Math.imul(P,$)|0;o=o+Math.imul(E,ee)|0;h=h+Math.imul(E,te)|0;h=h+Math.imul(k,ee)|0;u=u+Math.imul(k,te)|0;o=o+Math.imul(w,ie)|0;h=h+Math.imul(w,ne)|0;h=h+Math.imul(M,ie)|0;u=u+Math.imul(M,ne)|0;o=o+Math.imul(y,fe)|0;h=h+Math.imul(y,se)|0;h=h+Math.imul(g,fe)|0;u=u+Math.imul(g,se)|0;o=o+Math.imul(v,he)|0;h=h+Math.imul(v,ue)|0;h=h+Math.imul(b,he)|0;u=u+Math.imul(b,ue)|0;o=o+Math.imul(c,ce)|0;h=h+Math.imul(c,le)|0;h=h+Math.imul(l,ce)|0;u=u+Math.imul(l,le)|0;var Ae=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ae>>>26)|0;Ae&=67108863;o=Math.imul(O,W);h=Math.imul(O,V);h=h+Math.imul(H,W)|0;u=Math.imul(H,V);o=o+Math.imul(T,J)|0;h=h+Math.imul(T,Z)|0;h=h+Math.imul(j,J)|0;u=u+Math.imul(j,Z)|0;o=o+Math.imul(I,Y)|0;h=h+Math.imul(I,$)|0;h=h+Math.imul(C,Y)|0;u=u+Math.imul(C,$)|0;o=o+Math.imul(N,ee)|0;h=h+Math.imul(N,te)|0;h=h+Math.imul(P,ee)|0;u=u+Math.imul(P,te)|0;o=o+Math.imul(E,ie)|0;h=h+Math.imul(E,ne)|0;h=h+Math.imul(k,ie)|0;u=u+Math.imul(k,ne)|0;o=o+Math.imul(w,fe)|0;h=h+Math.imul(w,se)|0;h=h+Math.imul(M,fe)|0;u=u+Math.imul(M,se)|0;o=o+Math.imul(y,he)|0;h=h+Math.imul(y,ue)|0;h=h+Math.imul(g,he)|0;u=u+Math.imul(g,ue)|0;o=o+Math.imul(v,ce)|0;h=h+Math.imul(v,le)|0;h=h+Math.imul(b,ce)|0;u=u+Math.imul(b,le)|0;o=o+Math.imul(c,ve)|0;h=h+Math.imul(c,be)|0;h=h+Math.imul(l,ve)|0;u=u+Math.imul(l,be)|0;var Ne=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ne>>>26)|0;Ne&=67108863;o=Math.imul(z,W);h=Math.imul(z,V);h=h+Math.imul(F,W)|0;u=Math.imul(F,V);o=o+Math.imul(O,J)|0;h=h+Math.imul(O,Z)|0;h=h+Math.imul(H,J)|0;u=u+Math.imul(H,Z)|0;o=o+Math.imul(T,Y)|0;h=h+Math.imul(T,$)|0;h=h+Math.imul(j,Y)|0;u=u+Math.imul(j,$)|0;o=o+Math.imul(I,ee)|0;h=h+Math.imul(I,te)|0;h=h+Math.imul(C,ee)|0;u=u+Math.imul(C,te)|0;o=o+Math.imul(N,ie)|0;h=h+Math.imul(N,ne)|0;h=h+Math.imul(P,ie)|0;u=u+Math.imul(P,ne)|0;o=o+Math.imul(E,fe)|0;h=h+Math.imul(E,se)|0;h=h+Math.imul(k,fe)|0;u=u+Math.imul(k,se)|0;o=o+Math.imul(w,he)|0;h=h+Math.imul(w,ue)|0;h=h+Math.imul(M,he)|0;u=u+Math.imul(M,ue)|0;o=o+Math.imul(y,ce)|0;h=h+Math.imul(y,le)|0;h=h+Math.imul(g,ce)|0;u=u+Math.imul(g,le)|0;o=o+Math.imul(v,ve)|0;h=h+Math.imul(v,be)|0;h=h+Math.imul(b,ve)|0;u=u+Math.imul(b,be)|0;o=o+Math.imul(c,ye)|0;h=h+Math.imul(c,ge)|0;h=h+Math.imul(l,ye)|0;u=u+Math.imul(l,ge)|0;var Re=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Re>>>26)|0;Re&=67108863;o=Math.imul(z,J);h=Math.imul(z,Z);h=h+Math.imul(F,J)|0;u=Math.imul(F,Z);o=o+Math.imul(O,Y)|0;h=h+Math.imul(O,$)|0;h=h+Math.imul(H,Y)|0;u=u+Math.imul(H,$)|0;o=o+Math.imul(T,ee)|0;h=h+Math.imul(T,te)|0;h=h+Math.imul(j,ee)|0;u=u+Math.imul(j,te)|0;o=o+Math.imul(I,ie)|0;h=h+Math.imul(I,ne)|0;h=h+Math.imul(C,ie)|0;u=u+Math.imul(C,ne)|0;o=o+Math.imul(N,fe)|0;h=h+Math.imul(N,se)|0;h=h+Math.imul(P,fe)|0;u=u+Math.imul(P,se)|0;o=o+Math.imul(E,he)|0;h=h+Math.imul(E,ue)|0;h=h+Math.imul(k,he)|0;u=u+Math.imul(k,ue)|0;o=o+Math.imul(w,ce)|0;h=h+Math.imul(w,le)|0;h=h+Math.imul(M,ce)|0;u=u+Math.imul(M,le)|0;o=o+Math.imul(y,ve)|0;h=h+Math.imul(y,be)|0;h=h+Math.imul(g,ve)|0;u=u+Math.imul(g,be)|0;o=o+Math.imul(v,ye)|0;h=h+Math.imul(v,ge)|0;h=h+Math.imul(b,ye)|0;u=u+Math.imul(b,ge)|0;var Pe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Pe>>>26)|0;Pe&=67108863;o=Math.imul(z,Y);h=Math.imul(z,$);h=h+Math.imul(F,Y)|0;u=Math.imul(F,$);o=o+Math.imul(O,ee)|0;h=h+Math.imul(O,te)|0;h=h+Math.imul(H,ee)|0;u=u+Math.imul(H,te)|0;o=o+Math.imul(T,ie)|0;h=h+Math.imul(T,ne)|0;h=h+Math.imul(j,ie)|0;u=u+Math.imul(j,ne)|0;o=o+Math.imul(I,fe)|0;h=h+Math.imul(I,se)|0;h=h+Math.imul(C,fe)|0;u=u+Math.imul(C,se)|0;o=o+Math.imul(N,he)|0;h=h+Math.imul(N,ue)|0;h=h+Math.imul(P,he)|0;u=u+Math.imul(P,ue)|0;o=o+Math.imul(E,ce)|0;h=h+Math.imul(E,le)|0;h=h+Math.imul(k,ce)|0;u=u+Math.imul(k,le)|0;o=o+Math.imul(w,ve)|0;h=h+Math.imul(w,be)|0;h=h+Math.imul(M,ve)|0;u=u+Math.imul(M,be)|0;o=o+Math.imul(y,ye)|0;h=h+Math.imul(y,ge)|0;h=h+Math.imul(g,ye)|0;u=u+Math.imul(g,ge)|0;var xe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(xe>>>26)|0;xe&=67108863;o=Math.imul(z,ee);h=Math.imul(z,te);h=h+Math.imul(F,ee)|0;u=Math.imul(F,te);o=o+Math.imul(O,ie)|0;h=h+Math.imul(O,ne)|0;h=h+Math.imul(H,ie)|0;u=u+Math.imul(H,ne)|0;o=o+Math.imul(T,fe)|0;h=h+Math.imul(T,se)|0;h=h+Math.imul(j,fe)|0;u=u+Math.imul(j,se)|0;o=o+Math.imul(I,he)|0;h=h+Math.imul(I,ue)|0;h=h+Math.imul(C,he)|0;u=u+Math.imul(C,ue)|0;o=o+Math.imul(N,ce)|0;h=h+Math.imul(N,le)|0;h=h+Math.imul(P,ce)|0;u=u+Math.imul(P,le)|0;o=o+Math.imul(E,ve)|0;h=h+Math.imul(E,be)|0;h=h+Math.imul(k,ve)|0;u=u+Math.imul(k,be)|0;o=o+Math.imul(w,ye)|0;h=h+Math.imul(w,ge)|0;h=h+Math.imul(M,ye)|0;u=u+Math.imul(M,ge)|0;var Ie=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ie>>>26)|0;Ie&=67108863;o=Math.imul(z,ie);h=Math.imul(z,ne);h=h+Math.imul(F,ie)|0;u=Math.imul(F,ne);o=o+Math.imul(O,fe)|0;h=h+Math.imul(O,se)|0;h=h+Math.imul(H,fe)|0;u=u+Math.imul(H,se)|0;o=o+Math.imul(T,he)|0;h=h+Math.imul(T,ue)|0;h=h+Math.imul(j,he)|0;u=u+Math.imul(j,ue)|0;o=o+Math.imul(I,ce)|0;h=h+Math.imul(I,le)|0;h=h+Math.imul(C,ce)|0;u=u+Math.imul(C,le)|0;o=o+Math.imul(N,ve)|0;h=h+Math.imul(N,be)|0;h=h+Math.imul(P,ve)|0;u=u+Math.imul(P,be)|0;o=o+Math.imul(E,ye)|0;h=h+Math.imul(E,ge)|0;h=h+Math.imul(k,ye)|0;u=u+Math.imul(k,ge)|0;var Ce=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Ce>>>26)|0;Ce&=67108863;o=Math.imul(z,fe);h=Math.imul(z,se);h=h+Math.imul(F,fe)|0;u=Math.imul(F,se);o=o+Math.imul(O,he)|0;h=h+Math.imul(O,ue)|0;h=h+Math.imul(H,he)|0;u=u+Math.imul(H,ue)|0;o=o+Math.imul(T,ce)|0;h=h+Math.imul(T,le)|0;h=h+Math.imul(j,ce)|0;u=u+Math.imul(j,le)|0;o=o+Math.imul(I,ve)|0;h=h+Math.imul(I,be)|0;h=h+Math.imul(C,ve)|0;u=u+Math.imul(C,be)|0;o=o+Math.imul(N,ye)|0;h=h+Math.imul(N,ge)|0;h=h+Math.imul(P,ye)|0;u=u+Math.imul(P,ge)|0;var De=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(De>>>26)|0;De&=67108863;o=Math.imul(z,he);h=Math.imul(z,ue);h=h+Math.imul(F,he)|0;u=Math.imul(F,ue);o=o+Math.imul(O,ce)|0;h=h+Math.imul(O,le)|0;h=h+Math.imul(H,ce)|0;u=u+Math.imul(H,le)|0;o=o+Math.imul(T,ve)|0;h=h+Math.imul(T,be)|0;h=h+Math.imul(j,ve)|0;u=u+Math.imul(j,be)|0;o=o+Math.imul(I,ye)|0;h=h+Math.imul(I,ge)|0;h=h+Math.imul(C,ye)|0;u=u+Math.imul(C,ge)|0;var Te=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Te>>>26)|0;Te&=67108863;o=Math.imul(z,ce);h=Math.imul(z,le);h=h+Math.imul(F,ce)|0;u=Math.imul(F,le);o=o+Math.imul(O,ve)|0;h=h+Math.imul(O,be)|0;h=h+Math.imul(H,ve)|0;u=u+Math.imul(H,be)|0;o=o+Math.imul(T,ye)|0;h=h+Math.imul(T,ge)|0;h=h+Math.imul(j,ye)|0;u=u+Math.imul(j,ge)|0;var je=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(je>>>26)|0;je&=67108863;o=Math.imul(z,ve);h=Math.imul(z,be);h=h+Math.imul(F,ve)|0;u=Math.imul(F,be);o=o+Math.imul(O,ye)|0;h=h+Math.imul(O,ge)|0;h=h+Math.imul(H,ye)|0;u=u+Math.imul(H,ge)|0;var qe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(qe>>>26)|0;qe&=67108863;o=Math.imul(z,ye);h=Math.imul(z,ge);h=h+Math.imul(F,ye)|0;u=Math.imul(F,ge);var Oe=(s+o|0)+((h&8191)<<13)|0;s=(u+(h>>>13)|0)+(Oe>>>26)|0;Oe&=67108863;a[0]=_e;a[1]=we;a[2]=Me;a[3]=Se;a[4]=Be;a[5]=Ee;a[6]=ke;a[7]=Ae;a[8]=Ne;a[9]=Re;a[10]=Pe;a[11]=xe;a[12]=Ie;a[13]=Ce;a[14]=De;a[15]=Te;a[16]=je;a[17]=qe;a[18]=Oe;if(s!==0){a[19]=s;r.length++}return r};if(!Math.imul){h=smallMulTo}function bigMulTo(e,t,r){r.negative=t.negative^e.negative;r.length=e.length+t.length;var i=0;var n=0;for(var a=0;a<r.length-1;a++){var s=n;n=0;var o=i&67108863;var h=Math.min(a,t.length-1);for(var u=Math.max(0,a-e.length+1);u<=h;u++){var d=a-u;var c=e.words[d]|0;var l=t.words[u]|0;var p=c*l;var v=p&67108863;s=s+(p/67108864|0)|0;v=v+o|0;o=v&67108863;s=s+(v>>>26)|0;n+=s>>>26;s&=67108863}r.words[a]=o;i=s;s=n}if(i!==0){r.words[a]=i}else{r.length--}return r._strip()}function jumboMulTo(e,t,r){return bigMulTo(e,t,r)}BN.prototype.mulTo=function mulTo(e,t){var r;var i=this.length+e.length;if(this.length===10&&e.length===10){r=h(this,e,t)}else if(i<63){r=smallMulTo(this,e,t)}else if(i<1024){r=bigMulTo(this,e,t)}else{r=jumboMulTo(this,e,t)}return r};function FFTM(e,t){this.x=e;this.y=t}FFTM.prototype.makeRBT=function makeRBT(e){var t=new Array(e);var r=BN.prototype._countBits(e)-1;for(var i=0;i<e;i++){t[i]=this.revBin(i,r,e)}return t};FFTM.prototype.revBin=function revBin(e,t,r){if(e===0||e===r-1)return e;var i=0;for(var n=0;n<t;n++){i|=(e&1)<<t-n-1;e>>=1}return i};FFTM.prototype.permute=function permute(e,t,r,i,n,a){for(var s=0;s<a;s++){i[s]=t[e[s]];n[s]=r[e[s]]}};FFTM.prototype.transform=function transform(e,t,r,i,n,a){this.permute(a,e,t,r,i,n);for(var s=1;s<n;s<<=1){var o=s<<1;var h=Math.cos(2*Math.PI/o);var u=Math.sin(2*Math.PI/o);for(var d=0;d<n;d+=o){var c=h;var l=u;for(var p=0;p<s;p++){var v=r[d+p];var b=i[d+p];var m=r[d+p+s];var y=i[d+p+s];var g=c*m-l*y;y=c*y+l*m;m=g;r[d+p]=v+m;i[d+p]=b+y;r[d+p+s]=v-m;i[d+p+s]=b-y;if(p!==o){g=h*c-u*l;l=h*l+u*c;c=g}}}}};FFTM.prototype.guessLen13b=function guessLen13b(e,t){var r=Math.max(t,e)|1;var i=r&1;var n=0;for(r=r/2|0;r;r=r>>>1){n++}return 1<<n+1+i};FFTM.prototype.conjugate=function conjugate(e,t,r){if(r<=1)return;for(var i=0;i<r/2;i++){var n=e[i];e[i]=e[r-i-1];e[r-i-1]=n;n=t[i];t[i]=-t[r-i-1];t[r-i-1]=-n}};FFTM.prototype.normalize13b=function normalize13b(e,t){var r=0;for(var i=0;i<t/2;i++){var n=Math.round(e[2*i+1]/t)*8192+Math.round(e[2*i]/t)+r;e[i]=n&67108863;if(n<67108864){r=0}else{r=n/67108864|0}}return e};FFTM.prototype.convert13b=function convert13b(e,t,r,i){var n=0;for(var a=0;a<t;a++){n=n+(e[a]|0);r[2*a]=n&8191;n=n>>>13;r[2*a+1]=n&8191;n=n>>>13}for(a=2*t;a<i;++a){r[a]=0}assert(n===0);assert((n&~8191)===0)};FFTM.prototype.stub=function stub(e){var t=new Array(e);for(var r=0;r<e;r++){t[r]=0}return t};FFTM.prototype.mulp=function mulp(e,t,r){var i=2*this.guessLen13b(e.length,t.length);var n=this.makeRBT(i);var a=this.stub(i);var s=new Array(i);var o=new Array(i);var h=new Array(i);var u=new Array(i);var d=new Array(i);var c=new Array(i);var l=r.words;l.length=i;this.convert13b(e.words,e.length,s,i);this.convert13b(t.words,t.length,u,i);this.transform(s,a,o,h,i,n);this.transform(u,a,d,c,i,n);for(var p=0;p<i;p++){var v=o[p]*d[p]-h[p]*c[p];h[p]=o[p]*c[p]+h[p]*d[p];o[p]=v}this.conjugate(o,h,i);this.transform(o,h,l,a,i,n);this.conjugate(l,a,i);this.normalize13b(l,i);r.negative=e.negative^t.negative;r.length=e.length+t.length;return r._strip()};BN.prototype.mul=function mul(e){var t=new BN(null);t.words=new Array(this.length+e.length);return this.mulTo(e,t)};BN.prototype.mulf=function mulf(e){var t=new BN(null);t.words=new Array(this.length+e.length);return jumboMulTo(this,e,t)};BN.prototype.imul=function imul(e){return this.clone().mulTo(e,this)};BN.prototype.imuln=function imuln(e){var t=e<0;if(t)e=-e;assert(typeof e===\"number\");assert(e<67108864);var r=0;for(var i=0;i<this.length;i++){var n=(this.words[i]|0)*e;var a=(n&67108863)+(r&67108863);r>>=26;r+=n/67108864|0;r+=a>>>26;this.words[i]=a&67108863}if(r!==0){this.words[i]=r;this.length++}return t?this.ineg():this};BN.prototype.muln=function muln(e){return this.clone().imuln(e)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(e){var t=toBitArray(e);if(t.length===0)return new BN(1);var r=this;for(var i=0;i<t.length;i++,r=r.sqr()){if(t[i]!==0)break}if(++i<t.length){for(var n=r.sqr();i<t.length;i++,n=n.sqr()){if(t[i]===0)continue;r=r.mul(n)}}return r};BN.prototype.iushln=function iushln(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;var i=67108863>>>26-t<<26-t;var n;if(t!==0){var a=0;for(n=0;n<this.length;n++){var s=this.words[n]&i;var o=(this.words[n]|0)-s<<t;this.words[n]=o|a;a=s>>>26-t}if(a){this.words[n]=a;this.length++}}if(r!==0){for(n=this.length-1;n>=0;n--){this.words[n+r]=this.words[n]}for(n=0;n<r;n++){this.words[n]=0}this.length+=r}return this._strip()};BN.prototype.ishln=function ishln(e){assert(this.negative===0);return this.iushln(e)};BN.prototype.iushrn=function iushrn(e,t,r){assert(typeof e===\"number\"&&e>=0);var i;if(t){i=(t-t%26)/26}else{i=0}var n=e%26;var a=Math.min((e-n)/26,this.length);var s=67108863^67108863>>>n<<n;var o=r;i-=a;i=Math.max(0,i);if(o){for(var h=0;h<a;h++){o.words[h]=this.words[h]}o.length=a}if(a===0){}else if(this.length>a){this.length-=a;for(h=0;h<this.length;h++){this.words[h]=this.words[h+a]}}else{this.words[0]=0;this.length=1}var u=0;for(h=this.length-1;h>=0&&(u!==0||h>=i);h--){var d=this.words[h]|0;this.words[h]=u<<26-n|d>>>n;u=d&s}if(o&&u!==0){o.words[o.length++]=u}if(this.length===0){this.words[0]=0;this.length=1}return this._strip()};BN.prototype.ishrn=function ishrn(e,t,r){assert(this.negative===0);return this.iushrn(e,t,r)};BN.prototype.shln=function shln(e){return this.clone().ishln(e)};BN.prototype.ushln=function ushln(e){return this.clone().iushln(e)};BN.prototype.shrn=function shrn(e){return this.clone().ishrn(e)};BN.prototype.ushrn=function ushrn(e){return this.clone().iushrn(e)};BN.prototype.testn=function testn(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;var i=1<<t;if(this.length<=r)return false;var n=this.words[r];return!!(n&i)};BN.prototype.imaskn=function imaskn(e){assert(typeof e===\"number\"&&e>=0);var t=e%26;var r=(e-t)/26;assert(this.negative===0,\"imaskn works only with positive numbers\");if(this.length<=r){return this}if(t!==0){r++}this.length=Math.min(r,this.length);if(t!==0){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()};BN.prototype.maskn=function maskn(e){return this.clone().imaskn(e)};BN.prototype.iaddn=function iaddn(e){assert(typeof e===\"number\");assert(e<67108864);if(e<0)return this.isubn(-e);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<=e){this.words[0]=e-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(e);this.negative=1;return this}return this._iaddn(e)};BN.prototype._iaddn=function _iaddn(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++){this.words[t]-=67108864;if(t===this.length-1){this.words[t+1]=1}else{this.words[t+1]++}}this.length=Math.max(this.length,t+1);return this};BN.prototype.isubn=function isubn(e){assert(typeof e===\"number\");assert(e<67108864);if(e<0)return this.iaddn(-e);if(this.negative!==0){this.negative=0;this.iaddn(e);this.negative=1;return this}this.words[0]-=e;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var t=0;t<this.length&&this.words[t]<0;t++){this.words[t]+=67108864;this.words[t+1]-=1}}return this._strip()};BN.prototype.addn=function addn(e){return this.clone().iaddn(e)};BN.prototype.subn=function subn(e){return this.clone().isubn(e)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(e,t,r){var i=e.length+r;var n;this._expand(i);var a;var s=0;for(n=0;n<e.length;n++){a=(this.words[n+r]|0)+s;var o=(e.words[n]|0)*t;a-=o&67108863;s=(a>>26)-(o/67108864|0);this.words[n+r]=a&67108863}for(;n<this.length-r;n++){a=(this.words[n+r]|0)+s;s=a>>26;this.words[n+r]=a&67108863}if(s===0)return this._strip();assert(s===-1);s=0;for(n=0;n<this.length;n++){a=-(this.words[n]|0)+s;s=a>>26;this.words[n]=a&67108863}this.negative=1;return this._strip()};BN.prototype._wordDiv=function _wordDiv(e,t){var r=this.length-e.length;var i=this.clone();var n=e;var a=n.words[n.length-1]|0;var s=this._countBits(a);r=26-s;if(r!==0){n=n.ushln(r);i.iushln(r);a=n.words[n.length-1]|0}var o=i.length-n.length;var h;if(t!==\"mod\"){h=new BN(null);h.length=o+1;h.words=new Array(h.length);for(var u=0;u<h.length;u++){h.words[u]=0}}var d=i.clone()._ishlnsubmul(n,1,o);if(d.negative===0){i=d;if(h){h.words[o]=1}}for(var c=o-1;c>=0;c--){var l=(i.words[n.length+c]|0)*67108864+(i.words[n.length+c-1]|0);l=Math.min(l/a|0,67108863);i._ishlnsubmul(n,l,c);while(i.negative!==0){l--;i.negative=0;i._ishlnsubmul(n,1,c);if(!i.isZero()){i.negative^=1}}if(h){h.words[c]=l}}if(h){h._strip()}i._strip();if(t!==\"div\"&&r!==0){i.iushrn(r)}return{div:h||null,mod:i}};BN.prototype.divmod=function divmod(e,t,r){assert(!e.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var i,n,a;if(this.negative!==0&&e.negative===0){a=this.neg().divmod(e,t);if(t!==\"mod\"){i=a.div.neg()}if(t!==\"div\"){n=a.mod.neg();if(r&&n.negative!==0){n.iadd(e)}}return{div:i,mod:n}}if(this.negative===0&&e.negative!==0){a=this.divmod(e.neg(),t);if(t!==\"mod\"){i=a.div.neg()}return{div:i,mod:a.mod}}if((this.negative&e.negative)!==0){a=this.neg().divmod(e.neg(),t);if(t!==\"div\"){n=a.mod.neg();if(r&&n.negative!==0){n.isub(e)}}return{div:a.div,mod:n}}if(e.length>this.length||this.cmp(e)<0){return{div:new BN(0),mod:this}}if(e.length===1){if(t===\"div\"){return{div:this.divn(e.words[0]),mod:null}}if(t===\"mod\"){return{div:null,mod:new BN(this.modrn(e.words[0]))}}return{div:this.divn(e.words[0]),mod:new BN(this.modrn(e.words[0]))}}return this._wordDiv(e,t)};BN.prototype.div=function div(e){return this.divmod(e,\"div\",false).div};BN.prototype.mod=function mod(e){return this.divmod(e,\"mod\",false).mod};BN.prototype.umod=function umod(e){return this.divmod(e,\"mod\",true).mod};BN.prototype.divRound=function divRound(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=t.div.negative!==0?t.mod.isub(e):t.mod;var i=e.ushrn(1);var n=e.andln(1);var a=r.cmp(i);if(a<0||n===1&&a===0)return t.div;return t.div.negative!==0?t.div.isubn(1):t.div.iaddn(1)};BN.prototype.modrn=function modrn(e){var t=e<0;if(t)e=-e;assert(e<=67108863);var r=(1<<26)%e;var i=0;for(var n=this.length-1;n>=0;n--){i=(r*i+(this.words[n]|0))%e}return t?-i:i};BN.prototype.modn=function modn(e){return this.modrn(e)};BN.prototype.idivn=function idivn(e){var t=e<0;if(t)e=-e;assert(e<=67108863);var r=0;for(var i=this.length-1;i>=0;i--){var n=(this.words[i]|0)+r*67108864;this.words[i]=n/e|0;r=n%e}this._strip();return t?this.ineg():this};BN.prototype.divn=function divn(e){return this.clone().idivn(e)};BN.prototype.egcd=function egcd(e){assert(e.negative===0);assert(!e.isZero());var t=this;var r=e.clone();if(t.negative!==0){t=t.umod(e)}else{t=t.clone()}var i=new BN(1);var n=new BN(0);var a=new BN(0);var s=new BN(1);var o=0;while(t.isEven()&&r.isEven()){t.iushrn(1);r.iushrn(1);++o}var h=r.clone();var u=t.clone();while(!t.isZero()){for(var d=0,c=1;(t.words[0]&c)===0&&d<26;++d,c<<=1);if(d>0){t.iushrn(d);while(d-- >0){if(i.isOdd()||n.isOdd()){i.iadd(h);n.isub(u)}i.iushrn(1);n.iushrn(1)}}for(var l=0,p=1;(r.words[0]&p)===0&&l<26;++l,p<<=1);if(l>0){r.iushrn(l);while(l-- >0){if(a.isOdd()||s.isOdd()){a.iadd(h);s.isub(u)}a.iushrn(1);s.iushrn(1)}}if(t.cmp(r)>=0){t.isub(r);i.isub(a);n.isub(s)}else{r.isub(t);a.isub(i);s.isub(n)}}return{a:a,b:s,gcd:r.iushln(o)}};BN.prototype._invmp=function _invmp(e){assert(e.negative===0);assert(!e.isZero());var t=this;var r=e.clone();if(t.negative!==0){t=t.umod(e)}else{t=t.clone()}var i=new BN(1);var n=new BN(0);var a=r.clone();while(t.cmpn(1)>0&&r.cmpn(1)>0){for(var s=0,o=1;(t.words[0]&o)===0&&s<26;++s,o<<=1);if(s>0){t.iushrn(s);while(s-- >0){if(i.isOdd()){i.iadd(a)}i.iushrn(1)}}for(var h=0,u=1;(r.words[0]&u)===0&&h<26;++h,u<<=1);if(h>0){r.iushrn(h);while(h-- >0){if(n.isOdd()){n.iadd(a)}n.iushrn(1)}}if(t.cmp(r)>=0){t.isub(r);i.isub(n)}else{r.isub(t);n.isub(i)}}var d;if(t.cmpn(1)===0){d=i}else{d=n}if(d.cmpn(0)<0){d.iadd(e)}return d};BN.prototype.gcd=function gcd(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone();var r=e.clone();t.negative=0;r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++){t.iushrn(1);r.iushrn(1)}do{while(t.isEven()){t.iushrn(1)}while(r.isEven()){r.iushrn(1)}var n=t.cmp(r);if(n<0){var a=t;t=r;r=a}else if(n===0||r.cmpn(1)===0){break}t.isub(r)}while(true);return r.iushln(i)};BN.prototype.invm=function invm(e){return this.egcd(e).a.umod(e)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(e){return this.words[0]&e};BN.prototype.bincn=function bincn(e){assert(typeof e===\"number\");var t=e%26;var r=(e-t)/26;var i=1<<t;if(this.length<=r){this._expand(r+1);this.words[r]|=i;return this}var n=i;for(var a=r;n!==0&&a<this.length;a++){var s=this.words[a]|0;s+=n;n=s>>>26;s&=67108863;this.words[a]=s}if(n!==0){this.words[a]=n;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(e){var t=e<0;if(this.negative!==0&&!t)return-1;if(this.negative===0&&t)return 1;this._strip();var r;if(this.length>1){r=1}else{if(t){e=-e}assert(e<=67108863,\"Number is too big\");var i=this.words[0]|0;r=i===e?0:i<e?-1:1}if(this.negative!==0)return-r|0;return r};BN.prototype.cmp=function cmp(e){if(this.negative!==0&&e.negative===0)return-1;if(this.negative===0&&e.negative!==0)return 1;var t=this.ucmp(e);if(this.negative!==0)return-t|0;return t};BN.prototype.ucmp=function ucmp(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;var t=0;for(var r=this.length-1;r>=0;r--){var i=this.words[r]|0;var n=e.words[r]|0;if(i===n)continue;if(i<n){t=-1}else if(i>n){t=1}break}return t};BN.prototype.gtn=function gtn(e){return this.cmpn(e)===1};BN.prototype.gt=function gt(e){return this.cmp(e)===1};BN.prototype.gten=function gten(e){return this.cmpn(e)>=0};BN.prototype.gte=function gte(e){return this.cmp(e)>=0};BN.prototype.ltn=function ltn(e){return this.cmpn(e)===-1};BN.prototype.lt=function lt(e){return this.cmp(e)===-1};BN.prototype.lten=function lten(e){return this.cmpn(e)<=0};BN.prototype.lte=function lte(e){return this.cmp(e)<=0};BN.prototype.eqn=function eqn(e){return this.cmpn(e)===0};BN.prototype.eq=function eq(e){return this.cmp(e)===0};BN.red=function red(e){return new Red(e)};BN.prototype.toRed=function toRed(e){assert(!this.red,\"Already a number in reduction context\");assert(this.negative===0,\"red works only with positives\");return e.convertTo(this)._forceRed(e)};BN.prototype.fromRed=function fromRed(){assert(this.red,\"fromRed works only with numbers in reduction context\");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(e){this.red=e;return this};BN.prototype.forceRed=function forceRed(e){assert(!this.red,\"Already a number in reduction context\");return this._forceRed(e)};BN.prototype.redAdd=function redAdd(e){assert(this.red,\"redAdd works only with red numbers\");return this.red.add(this,e)};BN.prototype.redIAdd=function redIAdd(e){assert(this.red,\"redIAdd works only with red numbers\");return this.red.iadd(this,e)};BN.prototype.redSub=function redSub(e){assert(this.red,\"redSub works only with red numbers\");return this.red.sub(this,e)};BN.prototype.redISub=function redISub(e){assert(this.red,\"redISub works only with red numbers\");return this.red.isub(this,e)};BN.prototype.redShl=function redShl(e){assert(this.red,\"redShl works only with red numbers\");return this.red.shl(this,e)};BN.prototype.redMul=function redMul(e){assert(this.red,\"redMul works only with red numbers\");this.red._verify2(this,e);return this.red.mul(this,e)};BN.prototype.redIMul=function redIMul(e){assert(this.red,\"redMul works only with red numbers\");this.red._verify2(this,e);return this.red.imul(this,e)};BN.prototype.redSqr=function redSqr(){assert(this.red,\"redSqr works only with red numbers\");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,\"redISqr works only with red numbers\");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,\"redSqrt works only with red numbers\");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,\"redInvm works only with red numbers\");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,\"redNeg works only with red numbers\");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(e){assert(this.red&&!e.red,\"redPow(normalNum)\");this.red._verify1(this);return this.red.pow(this,e)};var u={k256:null,p224:null,p192:null,p25519:null};function MPrime(e,t){this.name=e;this.p=new BN(t,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var e=new BN(null);e.words=new Array(Math.ceil(this.n/13));return e};MPrime.prototype.ireduce=function ireduce(e){var t=e;var r;do{this.split(t,this.tmp);t=this.imulK(t);t=t.iadd(this.tmp);r=t.bitLength()}while(r>this.n);var i=r<this.n?-1:t.ucmp(this.p);if(i===0){t.words[0]=0;t.length=1}else if(i>0){t.isub(this.p)}else{if(t.strip!==undefined){t.strip()}else{t._strip()}}return t};MPrime.prototype.split=function split(e,t){e.iushrn(this.n,0,t)};MPrime.prototype.imulK=function imulK(e){return e.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime);K256.prototype.split=function split(e,t){var r=4194303;var i=Math.min(e.length,9);for(var n=0;n<i;n++){t.words[n]=e.words[n]}t.length=i;if(e.length<=9){e.words[0]=0;e.length=1;return}var a=e.words[9];t.words[t.length++]=a&r;for(n=10;n<e.length;n++){var s=e.words[n]|0;e.words[n-10]=(s&r)<<4|a>>>22;a=s}a>>>=22;e.words[n-10]=a;if(a===0&&e.length>10){e.length-=10}else{e.length-=9}};K256.prototype.imulK=function imulK(e){e.words[e.length]=0;e.words[e.length+1]=0;e.length+=2;var t=0;for(var r=0;r<e.length;r++){var i=e.words[r]|0;t+=i*977;e.words[r]=t&67108863;t=i*64+(t/67108864|0)}if(e.words[e.length-1]===0){e.length--;if(e.words[e.length-1]===0){e.length--}}return e};function P224(){MPrime.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}inherits(P224,MPrime);function P192(){MPrime.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}inherits(P192,MPrime);function P25519(){MPrime.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(e){var t=0;for(var r=0;r<e.length;r++){var i=(e.words[r]|0)*19+t;var n=i&67108863;i>>>=26;e.words[r]=n;t=i}if(t!==0){e.words[e.length++]=t}return e};BN._prime=function prime(e){if(u[e])return u[e];var prime;if(e===\"k256\"){prime=new K256}else if(e===\"p224\"){prime=new P224}else if(e===\"p192\"){prime=new P192}else if(e===\"p25519\"){prime=new P25519}else{throw new Error(\"Unknown prime \"+e)}u[e]=prime;return prime};function Red(e){if(typeof e===\"string\"){var t=BN._prime(e);this.m=t.p;this.prime=t}else{assert(e.gtn(1),\"modulus must be greater than 1\");this.m=e;this.prime=null}}Red.prototype._verify1=function _verify1(e){assert(e.negative===0,\"red works only with positives\");assert(e.red,\"red works only with red numbers\")};Red.prototype._verify2=function _verify2(e,t){assert((e.negative|t.negative)===0,\"red works only with positives\");assert(e.red&&e.red===t.red,\"red works only with red numbers\")};Red.prototype.imod=function imod(e){if(this.prime)return this.prime.ireduce(e)._forceRed(this);move(e,e.umod(this.m)._forceRed(this));return e};Red.prototype.neg=function neg(e){if(e.isZero()){return e.clone()}return this.m.sub(e)._forceRed(this)};Red.prototype.add=function add(e,t){this._verify2(e,t);var r=e.add(t);if(r.cmp(this.m)>=0){r.isub(this.m)}return r._forceRed(this)};Red.prototype.iadd=function iadd(e,t){this._verify2(e,t);var r=e.iadd(t);if(r.cmp(this.m)>=0){r.isub(this.m)}return r};Red.prototype.sub=function sub(e,t){this._verify2(e,t);var r=e.sub(t);if(r.cmpn(0)<0){r.iadd(this.m)}return r._forceRed(this)};Red.prototype.isub=function isub(e,t){this._verify2(e,t);var r=e.isub(t);if(r.cmpn(0)<0){r.iadd(this.m)}return r};Red.prototype.shl=function shl(e,t){this._verify1(e);return this.imod(e.ushln(t))};Red.prototype.imul=function imul(e,t){this._verify2(e,t);return this.imod(e.imul(t))};Red.prototype.mul=function mul(e,t){this._verify2(e,t);return this.imod(e.mul(t))};Red.prototype.isqr=function isqr(e){return this.imul(e,e.clone())};Red.prototype.sqr=function sqr(e){return this.mul(e,e)};Red.prototype.sqrt=function sqrt(e){if(e.isZero())return e.clone();var t=this.m.andln(3);assert(t%2===1);if(t===3){var r=this.m.add(new BN(1)).iushrn(2);return this.pow(e,r)}var i=this.m.subn(1);var n=0;while(!i.isZero()&&i.andln(1)===0){n++;i.iushrn(1)}assert(!i.isZero());var a=new BN(1).toRed(this);var s=a.redNeg();var o=this.m.subn(1).iushrn(1);var h=this.m.bitLength();h=new BN(2*h*h).toRed(this);while(this.pow(h,o).cmp(s)!==0){h.redIAdd(s)}var u=this.pow(h,i);var d=this.pow(e,i.addn(1).iushrn(1));var c=this.pow(e,i);var l=n;while(c.cmp(a)!==0){var p=c;for(var v=0;p.cmp(a)!==0;v++){p=p.redSqr()}assert(v<l);var b=this.pow(u,new BN(1).iushln(l-v-1));d=d.redMul(b);u=b.redSqr();c=c.redMul(u);l=v}return d};Red.prototype.invm=function invm(e){var t=e._invmp(this.m);if(t.negative!==0){t.negative=0;return this.imod(t).redNeg()}else{return this.imod(t)}};Red.prototype.pow=function pow(e,t){if(t.isZero())return new BN(1).toRed(this);if(t.cmpn(1)===0)return e.clone();var r=4;var i=new Array(1<<r);i[0]=new BN(1).toRed(this);i[1]=e;for(var n=2;n<i.length;n++){i[n]=this.mul(i[n-1],e)}var a=i[0];var s=0;var o=0;var h=t.bitLength()%26;if(h===0){h=26}for(n=t.length-1;n>=0;n--){var u=t.words[n];for(var d=h-1;d>=0;d--){var c=u>>d&1;if(a!==i[0]){a=this.sqr(a)}if(c===0&&s===0){o=0;continue}s<<=1;s|=c;o++;if(o!==r&&(n!==0||d!==0))continue;a=this.mul(a,i[s]);o=0;s=0}h=26}return a};Red.prototype.convertTo=function convertTo(e){var t=e.umod(this.m);return t===e?t.clone():t};Red.prototype.convertFrom=function convertFrom(e){var t=e.clone();t.red=null;return t};BN.mont=function mont(e){return new Mont(e)};function Mont(e){Red.call(this,e);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(e){return this.imod(e.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(e){var t=this.imod(e.mul(this.rinv));t.red=null;return t};Mont.prototype.imul=function imul(e,t){if(e.isZero()||t.isZero()){e.words[0]=0;e.length=1;return e}var r=e.imul(t);var i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var n=r.isub(i).iushrn(this.shift);var a=n;if(n.cmp(this.m)>=0){a=n.isub(this.m)}else if(n.cmpn(0)<0){a=n.iadd(this.m)}return a._forceRed(this)};Mont.prototype.mul=function mul(e,t){if(e.isZero()||t.isZero())return new BN(0)._forceRed(this);var r=e.mul(t);var i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var n=r.isub(i).iushrn(this.shift);var a=n;if(n.cmp(this.m)>=0){a=n.isub(this.m)}else if(n.cmpn(0)<0){a=n.iadd(this.m)}return a._forceRed(this)};Mont.prototype.invm=function invm(e){var t=this.imod(e._invmp(this.m).mul(this.r2));return t._forceRed(this)}})( false||e,this)},3500:function(e,t,r){var i;e.exports=function rand(e){if(!i)i=new Rand(null);return i.generate(e)};function Rand(e){this.rand=e}e.exports.Rand=Rand;Rand.prototype.generate=function generate(e){return this._rand(e)};Rand.prototype._rand=function _rand(e){if(this.rand.getBytes)return this.rand.getBytes(e);var t=new Uint8Array(e);for(var r=0;r<t.length;r++)t[r]=this.rand.getByte();return t};if(typeof self===\"object\"){if(self.crypto&&self.crypto.getRandomValues){Rand.prototype._rand=function _rand(e){var t=new Uint8Array(e);self.crypto.getRandomValues(t);return t}}else if(self.msCrypto&&self.msCrypto.getRandomValues){Rand.prototype._rand=function _rand(e){var t=new Uint8Array(e);self.msCrypto.getRandomValues(t);return t}}else if(typeof window===\"object\"){Rand.prototype._rand=function(){throw new Error(\"Not implemented yet\")}}}else{try{var n=r(6113);if(typeof n.randomBytes!==\"function\")throw new Error(\"Not supported\");Rand.prototype._rand=function _rand(e){return n.randomBytes(e)}}catch(e){}}},1387:function(e,t,r){var i=r(6911).Buffer;function asUInt32Array(e){if(!i.isBuffer(e))e=i.from(e);var t=e.length/4|0;var r=new Array(t);for(var n=0;n<t;n++){r[n]=e.readUInt32BE(n*4)}return r}function scrubVec(e){for(var t=0;t<e.length;e++){e[t]=0}}function cryptBlock(e,t,r,i,n){var a=r[0];var s=r[1];var o=r[2];var h=r[3];var u=e[0]^t[0];var d=e[1]^t[1];var c=e[2]^t[2];var l=e[3]^t[3];var p,v,b,m;var y=4;for(var g=1;g<n;g++){p=a[u>>>24]^s[d>>>16&255]^o[c>>>8&255]^h[l&255]^t[y++];v=a[d>>>24]^s[c>>>16&255]^o[l>>>8&255]^h[u&255]^t[y++];b=a[c>>>24]^s[l>>>16&255]^o[u>>>8&255]^h[d&255]^t[y++];m=a[l>>>24]^s[u>>>16&255]^o[d>>>8&255]^h[c&255]^t[y++];u=p;d=v;c=b;l=m}p=(i[u>>>24]<<24|i[d>>>16&255]<<16|i[c>>>8&255]<<8|i[l&255])^t[y++];v=(i[d>>>24]<<24|i[c>>>16&255]<<16|i[l>>>8&255]<<8|i[u&255])^t[y++];b=(i[c>>>24]<<24|i[l>>>16&255]<<16|i[u>>>8&255]<<8|i[d&255])^t[y++];m=(i[l>>>24]<<24|i[u>>>16&255]<<16|i[d>>>8&255]<<8|i[c&255])^t[y++];p=p>>>0;v=v>>>0;b=b>>>0;m=m>>>0;return[p,v,b,m]}var n=[0,1,2,4,8,16,32,64,128,27,54];var a=function(){var e=new Array(256);for(var t=0;t<256;t++){if(t<128){e[t]=t<<1}else{e[t]=t<<1^283}}var r=[];var i=[];var n=[[],[],[],[]];var a=[[],[],[],[]];var s=0;var o=0;for(var h=0;h<256;++h){var u=o^o<<1^o<<2^o<<3^o<<4;u=u>>>8^u&255^99;r[s]=u;i[u]=s;var d=e[s];var c=e[d];var l=e[c];var p=e[u]*257^u*16843008;n[0][s]=p<<24|p>>>8;n[1][s]=p<<16|p>>>16;n[2][s]=p<<8|p>>>24;n[3][s]=p;p=l*16843009^c*65537^d*257^s*16843008;a[0][u]=p<<24|p>>>8;a[1][u]=p<<16|p>>>16;a[2][u]=p<<8|p>>>24;a[3][u]=p;if(s===0){s=o=1}else{s=d^e[e[e[l^d]]];o^=e[e[o]]}}return{SBOX:r,INV_SBOX:i,SUB_MIX:n,INV_SUB_MIX:a}}();function AES(e){this._key=asUInt32Array(e);this._reset()}AES.blockSize=4*4;AES.keySize=256/8;AES.prototype.blockSize=AES.blockSize;AES.prototype.keySize=AES.keySize;AES.prototype._reset=function(){var e=this._key;var t=e.length;var r=t+6;var i=(r+1)*4;var s=[];for(var o=0;o<t;o++){s[o]=e[o]}for(o=t;o<i;o++){var h=s[o-1];if(o%t===0){h=h<<8|h>>>24;h=a.SBOX[h>>>24]<<24|a.SBOX[h>>>16&255]<<16|a.SBOX[h>>>8&255]<<8|a.SBOX[h&255];h^=n[o/t|0]<<24}else if(t>6&&o%t===4){h=a.SBOX[h>>>24]<<24|a.SBOX[h>>>16&255]<<16|a.SBOX[h>>>8&255]<<8|a.SBOX[h&255]}s[o]=s[o-t]^h}var u=[];for(var d=0;d<i;d++){var c=i-d;var l=s[c-(d%4?0:4)];if(d<4||c<=4){u[d]=l}else{u[d]=a.INV_SUB_MIX[0][a.SBOX[l>>>24]]^a.INV_SUB_MIX[1][a.SBOX[l>>>16&255]]^a.INV_SUB_MIX[2][a.SBOX[l>>>8&255]]^a.INV_SUB_MIX[3][a.SBOX[l&255]]}}this._nRounds=r;this._keySchedule=s;this._invKeySchedule=u};AES.prototype.encryptBlockRaw=function(e){e=asUInt32Array(e);return cryptBlock(e,this._keySchedule,a.SUB_MIX,a.SBOX,this._nRounds)};AES.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e);var r=i.allocUnsafe(16);r.writeUInt32BE(t[0],0);r.writeUInt32BE(t[1],4);r.writeUInt32BE(t[2],8);r.writeUInt32BE(t[3],12);return r};AES.prototype.decryptBlock=function(e){e=asUInt32Array(e);var t=e[1];e[1]=e[3];e[3]=t;var r=cryptBlock(e,this._invKeySchedule,a.INV_SUB_MIX,a.INV_SBOX,this._nRounds);var n=i.allocUnsafe(16);n.writeUInt32BE(r[0],0);n.writeUInt32BE(r[3],4);n.writeUInt32BE(r[2],8);n.writeUInt32BE(r[1],12);return n};AES.prototype.scrub=function(){scrubVec(this._keySchedule);scrubVec(this._invKeySchedule);scrubVec(this._key)};e.exports.AES=AES},6624:function(e,t,r){var i=r(1387);var n=r(6911).Buffer;var a=r(1043);var s=r(3782);var o=r(7225);var h=r(4734);var u=r(598);function xorTest(e,t){var r=0;if(e.length!==t.length)r++;var i=Math.min(e.length,t.length);for(var n=0;n<i;++n){r+=e[n]^t[n]}return r}function calcIv(e,t,r){if(t.length===12){e._finID=n.concat([t,n.from([0,0,0,1])]);return n.concat([t,n.from([0,0,0,2])])}var i=new o(r);var a=t.length;var s=a%16;i.update(t);if(s){s=16-s;i.update(n.alloc(s,0))}i.update(n.alloc(8,0));var h=a*8;var d=n.alloc(8);d.writeUIntBE(h,0,8);i.update(d);e._finID=i.state;var c=n.from(e._finID);u(c);return c}function StreamCipher(e,t,r,s){a.call(this);var h=n.alloc(4,0);this._cipher=new i.AES(t);var u=this._cipher.encryptBlock(h);this._ghash=new o(u);r=calcIv(this,r,u);this._prev=n.from(r);this._cache=n.allocUnsafe(0);this._secCache=n.allocUnsafe(0);this._decrypt=s;this._alen=0;this._len=0;this._mode=e;this._authTag=null;this._called=false}s(StreamCipher,a);StreamCipher.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;if(t<16){t=n.alloc(t,0);this._ghash.update(t)}}this._called=true;var r=this._mode.encrypt(this,e);if(this._decrypt){this._ghash.update(e)}else{this._ghash.update(r)}this._len+=e.length;return r};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error(\"Unsupported state or unable to authenticate data\");var e=h(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt&&xorTest(e,this._authTag))throw new Error(\"Unsupported state or unable to authenticate data\");this._authTag=e;this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(this._decrypt||!n.isBuffer(this._authTag))throw new Error(\"Attempting to get auth tag in unsupported state\");return this._authTag};StreamCipher.prototype.setAuthTag=function setAuthTag(e){if(!this._decrypt)throw new Error(\"Attempting to set auth tag in unsupported state\");this._authTag=e};StreamCipher.prototype.setAAD=function setAAD(e){if(this._called)throw new Error(\"Attempting to set AAD in unsupported state\");this._ghash.update(e);this._alen+=e.length};e.exports=StreamCipher},6594:function(e,t,r){var i=r(2);var n=r(2598);var a=r(5866);function getCiphers(){return Object.keys(a)}t.createCipher=t.Cipher=i.createCipher;t.createCipheriv=t.Cipheriv=i.createCipheriv;t.createDecipher=t.Decipher=n.createDecipher;t.createDecipheriv=t.Decipheriv=n.createDecipheriv;t.listCiphers=t.getCiphers=getCiphers},2598:function(e,t,r){var i=r(6624);var n=r(6911).Buffer;var a=r(6370);var s=r(126);var o=r(1043);var h=r(1387);var u=r(8368);var d=r(3782);function Decipher(e,t,r){o.call(this);this._cache=new Splitter;this._last=void 0;this._cipher=new h.AES(t);this._prev=n.from(r);this._mode=e;this._autopadding=true}d(Decipher,o);Decipher.prototype._update=function(e){this._cache.add(e);var t;var r;var i=[];while(t=this._cache.get(this._autopadding)){r=this._mode.decrypt(this,t);i.push(r)}return n.concat(i)};Decipher.prototype._final=function(){var e=this._cache.flush();if(this._autopadding){return unpad(this._mode.decrypt(this,e))}else if(e){throw new Error(\"data not multiple of block length\")}};Decipher.prototype.setAutoPadding=function(e){this._autopadding=!!e;return this};function Splitter(){this.cache=n.allocUnsafe(0)}Splitter.prototype.add=function(e){this.cache=n.concat([this.cache,e])};Splitter.prototype.get=function(e){var t;if(e){if(this.cache.length>16){t=this.cache.slice(0,16);this.cache=this.cache.slice(16);return t}}else{if(this.cache.length>=16){t=this.cache.slice(0,16);this.cache=this.cache.slice(16);return t}}return null};Splitter.prototype.flush=function(){if(this.cache.length)return this.cache};function unpad(e){var t=e[15];if(t<1||t>16){throw new Error(\"unable to decrypt data\")}var r=-1;while(++r<t){if(e[r+(16-t)]!==t){throw new Error(\"unable to decrypt data\")}}if(t===16)return;return e.slice(0,16-t)}function createDecipheriv(e,t,r){var o=a[e.toLowerCase()];if(!o)throw new TypeError(\"invalid suite type\");if(typeof r===\"string\")r=n.from(r);if(o.mode!==\"GCM\"&&r.length!==o.iv)throw new TypeError(\"invalid iv length \"+r.length);if(typeof t===\"string\")t=n.from(t);if(t.length!==o.key/8)throw new TypeError(\"invalid key length \"+t.length);if(o.type===\"stream\"){return new s(o.module,t,r,true)}else if(o.type===\"auth\"){return new i(o.module,t,r,true)}return new Decipher(o.module,t,r)}function createDecipher(e,t){var r=a[e.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var i=u(t,false,r.key,r.iv);return createDecipheriv(e,i.key,i.iv)}t.createDecipher=createDecipher;t.createDecipheriv=createDecipheriv},2:function(e,t,r){var i=r(6370);var n=r(6624);var a=r(6911).Buffer;var s=r(126);var o=r(1043);var h=r(1387);var u=r(8368);var d=r(3782);function Cipher(e,t,r){o.call(this);this._cache=new Splitter;this._cipher=new h.AES(t);this._prev=a.from(r);this._mode=e;this._autopadding=true}d(Cipher,o);Cipher.prototype._update=function(e){this._cache.add(e);var t;var r;var i=[];while(t=this._cache.get()){r=this._mode.encrypt(this,t);i.push(r)}return a.concat(i)};var c=a.alloc(16,16);Cipher.prototype._final=function(){var e=this._cache.flush();if(this._autopadding){e=this._mode.encrypt(this,e);this._cipher.scrub();return e}if(!e.equals(c)){this._cipher.scrub();throw new Error(\"data not multiple of block length\")}};Cipher.prototype.setAutoPadding=function(e){this._autopadding=!!e;return this};function Splitter(){this.cache=a.allocUnsafe(0)}Splitter.prototype.add=function(e){this.cache=a.concat([this.cache,e])};Splitter.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);this.cache=this.cache.slice(16);return e}return null};Splitter.prototype.flush=function(){var e=16-this.cache.length;var t=a.allocUnsafe(e);var r=-1;while(++r<e){t.writeUInt8(e,r)}return a.concat([this.cache,t])};function createCipheriv(e,t,r){var o=i[e.toLowerCase()];if(!o)throw new TypeError(\"invalid suite type\");if(typeof t===\"string\")t=a.from(t);if(t.length!==o.key/8)throw new TypeError(\"invalid key length \"+t.length);if(typeof r===\"string\")r=a.from(r);if(o.mode!==\"GCM\"&&r.length!==o.iv)throw new TypeError(\"invalid iv length \"+r.length);if(o.type===\"stream\"){return new s(o.module,t,r)}else if(o.type===\"auth\"){return new n(o.module,t,r)}return new Cipher(o.module,t,r)}function createCipher(e,t){var r=i[e.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var n=u(t,false,r.key,r.iv);return createCipheriv(e,n.key,n.iv)}t.createCipheriv=createCipheriv;t.createCipher=createCipher},7225:function(e,t,r){var i=r(6911).Buffer;var n=i.alloc(16,0);function toArray(e){return[e.readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)]}function fromArray(e){var t=i.allocUnsafe(16);t.writeUInt32BE(e[0]>>>0,0);t.writeUInt32BE(e[1]>>>0,4);t.writeUInt32BE(e[2]>>>0,8);t.writeUInt32BE(e[3]>>>0,12);return t}function GHASH(e){this.h=e;this.state=i.alloc(16,0);this.cache=i.allocUnsafe(0)}GHASH.prototype.ghash=function(e){var t=-1;while(++t<e.length){this.state[t]^=e[t]}this._multiply()};GHASH.prototype._multiply=function(){var e=toArray(this.h);var t=[0,0,0,0];var r,i,n;var a=-1;while(++a<128){i=(this.state[~~(a/8)]&1<<7-a%8)!==0;if(i){t[0]^=e[0];t[1]^=e[1];t[2]^=e[2];t[3]^=e[3]}n=(e[3]&1)!==0;for(r=3;r>0;r--){e[r]=e[r]>>>1|(e[r-1]&1)<<31}e[0]=e[0]>>>1;if(n){e[0]=e[0]^225<<24}}this.state=fromArray(t)};GHASH.prototype.update=function(e){this.cache=i.concat([this.cache,e]);var t;while(this.cache.length>=16){t=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(t)}};GHASH.prototype.final=function(e,t){if(this.cache.length){this.ghash(i.concat([this.cache,n],16))}this.ghash(fromArray([0,e,0,t]));return this.state};e.exports=GHASH},598:function(e){function incr32(e){var t=e.length;var r;while(t--){r=e.readUInt8(t);if(r===255){e.writeUInt8(0,t)}else{r++;e.writeUInt8(r,t);break}}}e.exports=incr32},9825:function(e,t,r){var i=r(4734);t.encrypt=function(e,t){var r=i(t,e._prev);e._prev=e._cipher.encryptBlock(r);return e._prev};t.decrypt=function(e,t){var r=e._prev;e._prev=t;var n=e._cipher.decryptBlock(t);return i(n,r)}},321:function(e,t,r){var i=r(6911).Buffer;var n=r(4734);function encryptStart(e,t,r){var a=t.length;var s=n(t,e._cache);e._cache=e._cache.slice(a);e._prev=i.concat([e._prev,r?t:s]);return s}t.encrypt=function(e,t,r){var n=i.allocUnsafe(0);var a;while(t.length){if(e._cache.length===0){e._cache=e._cipher.encryptBlock(e._prev);e._prev=i.allocUnsafe(0)}if(e._cache.length<=t.length){a=e._cache.length;n=i.concat([n,encryptStart(e,t.slice(0,a),r)]);t=t.slice(a)}else{n=i.concat([n,encryptStart(e,t,r)]);break}}return n}},3147:function(e,t,r){var i=r(6911).Buffer;function encryptByte(e,t,r){var i;var n=-1;var a=8;var s=0;var o,h;while(++n<a){i=e._cipher.encryptBlock(e._prev);o=t&1<<7-n?128:0;h=i[0]^o;s+=(h&128)>>n%8;e._prev=shiftIn(e._prev,r?o:h)}return s}function shiftIn(e,t){var r=e.length;var n=-1;var a=i.allocUnsafe(e.length);e=i.concat([e,i.from([t])]);while(++n<r){a[n]=e[n]<<1|e[n+1]>>7}return a}t.encrypt=function(e,t,r){var n=t.length;var a=i.allocUnsafe(n);var s=-1;while(++s<n){a[s]=encryptByte(e,t[s],r)}return a}},2430:function(e,t,r){var i=r(6911).Buffer;function encryptByte(e,t,r){var n=e._cipher.encryptBlock(e._prev);var a=n[0]^t;e._prev=i.concat([e._prev.slice(1),i.from([r?t:a])]);return a}t.encrypt=function(e,t,r){var n=t.length;var a=i.allocUnsafe(n);var s=-1;while(++s<n){a[s]=encryptByte(e,t[s],r)}return a}},3361:function(e,t,r){var i=r(4734);var n=r(6911).Buffer;var a=r(598);function getBlock(e){var t=e._cipher.encryptBlockRaw(e._prev);a(e._prev);return t}var s=16;t.encrypt=function(e,t){var r=Math.ceil(t.length/s);var a=e._cache.length;e._cache=n.concat([e._cache,n.allocUnsafe(r*s)]);for(var o=0;o<r;o++){var h=getBlock(e);var u=a+o*s;e._cache.writeUInt32BE(h[0],u+0);e._cache.writeUInt32BE(h[1],u+4);e._cache.writeUInt32BE(h[2],u+8);e._cache.writeUInt32BE(h[3],u+12)}var d=e._cache.slice(0,t.length);e._cache=e._cache.slice(t.length);return i(t,d)}},1590:function(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)};t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},6370:function(e,t,r){var i={ECB:r(1590),CBC:r(9825),CFB:r(321),CFB8:r(2430),CFB1:r(3147),OFB:r(3412),CTR:r(3361),GCM:r(3361)};var n=r(5866);for(var a in n){n[a].module=i[n[a].mode]}e.exports=n},3412:function(e,t,r){var i=r(4734);function getBlock(e){e._prev=e._cipher.encryptBlock(e._prev);return e._prev}t.encrypt=function(e,t){while(e._cache.length<t.length){e._cache=Buffer.concat([e._cache,getBlock(e)])}var r=e._cache.slice(0,t.length);e._cache=e._cache.slice(t.length);return i(t,r)}},126:function(e,t,r){var i=r(1387);var n=r(6911).Buffer;var a=r(1043);var s=r(3782);function StreamCipher(e,t,r,s){a.call(this);this._cipher=new i.AES(t);this._prev=n.from(r);this._cache=n.allocUnsafe(0);this._secCache=n.allocUnsafe(0);this._decrypt=s;this._mode=e}s(StreamCipher,a);StreamCipher.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)};StreamCipher.prototype._final=function(){this._cipher.scrub()};e.exports=StreamCipher},8996:function(e,t,r){var i=r(5238);var n=r(6594);var a=r(6370);var s=r(6280);var o=r(8368);function createCipher(e,t){e=e.toLowerCase();var r,i;if(a[e]){r=a[e].key;i=a[e].iv}else if(s[e]){r=s[e].key*8;i=s[e].iv}else{throw new TypeError(\"invalid suite type\")}var n=o(t,false,r,i);return createCipheriv(e,n.key,n.iv)}function createDecipher(e,t){e=e.toLowerCase();var r,i;if(a[e]){r=a[e].key;i=a[e].iv}else if(s[e]){r=s[e].key*8;i=s[e].iv}else{throw new TypeError(\"invalid suite type\")}var n=o(t,false,r,i);return createDecipheriv(e,n.key,n.iv)}function createCipheriv(e,t,r){e=e.toLowerCase();if(a[e])return n.createCipheriv(e,t,r);if(s[e])return new i({key:t,iv:r,mode:e});throw new TypeError(\"invalid suite type\")}function createDecipheriv(e,t,r){e=e.toLowerCase();if(a[e])return n.createDecipheriv(e,t,r);if(s[e])return new i({key:t,iv:r,mode:e,decrypt:true});throw new TypeError(\"invalid suite type\")}function getCiphers(){return Object.keys(s).concat(n.getCiphers())}t.createCipher=t.Cipher=createCipher;t.createCipheriv=t.Cipheriv=createCipheriv;t.createDecipher=t.Decipher=createDecipher;t.createDecipheriv=t.Decipheriv=createDecipheriv;t.listCiphers=t.getCiphers=getCiphers},5238:function(e,t,r){var i=r(1043);var n=r(9536);var a=r(3782);var s=r(6911).Buffer;var o={\"des-ede3-cbc\":n.CBC.instantiate(n.EDE),\"des-ede3\":n.EDE,\"des-ede-cbc\":n.CBC.instantiate(n.EDE),\"des-ede\":n.EDE,\"des-cbc\":n.CBC.instantiate(n.DES),\"des-ecb\":n.DES};o.des=o[\"des-cbc\"];o.des3=o[\"des-ede3-cbc\"];e.exports=DES;a(DES,i);function DES(e){i.call(this);var t=e.mode.toLowerCase();var r=o[t];var n;if(e.decrypt){n=\"decrypt\"}else{n=\"encrypt\"}var a=e.key;if(!s.isBuffer(a)){a=s.from(a)}if(t===\"des-ede\"||t===\"des-ede-cbc\"){a=s.concat([a,a.slice(0,8)])}var h=e.iv;if(!s.isBuffer(h)){h=s.from(h)}this._des=r.create({key:a,iv:h,type:n})}DES.prototype._update=function(e){return s.from(this._des.update(e))};DES.prototype._final=function(){return s.from(this._des.final())}},6280:function(e,t){t[\"des-ecb\"]={key:8,iv:0};t[\"des-cbc\"]=t.des={key:8,iv:8};t[\"des-ede3-cbc\"]=t.des3={key:24,iv:8};t[\"des-ede3\"]={key:24,iv:0};t[\"des-ede-cbc\"]={key:16,iv:8};t[\"des-ede\"]={key:16,iv:0}},7166:function(e,t,r){var i=r(711);var n=r(7223);e.exports=crt;function blind(e){var t=getr(e);var r=t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed();return{blinder:r,unblinder:t.invm(e.modulus)}}function crt(e,t){var r=blind(t);var n=t.modulus.byteLength();var a=i.mont(t.modulus);var s=new i(e).mul(r.blinder).umod(t.modulus);var o=s.toRed(i.mont(t.prime1));var h=s.toRed(i.mont(t.prime2));var u=t.coefficient;var d=t.prime1;var c=t.prime2;var l=o.redPow(t.exponent1);var p=h.redPow(t.exponent2);l=l.fromRed();p=p.fromRed();var v=l.isub(p).imul(u).umod(d);v.imul(c);p.iadd(v);return new Buffer(p.imul(r.unblinder).umod(t.modulus).toArray(false,n))}crt.getr=getr;function getr(e){var t=e.modulus.byteLength();var r=new i(n(t));while(r.cmp(e.modulus)>=0||!r.umod(e.prime1)||!r.umod(e.prime2)){r=new i(n(t))}return r}},9276:function(e,t,r){e.exports=r(2908)},4078:function(e,t,r){var i=r(6911).Buffer;var n=r(9739);var a=r(3726);var s=r(3782);var o=r(9807);var h=r(4013);var u=r(2908);Object.keys(u).forEach((function(e){u[e].id=i.from(u[e].id,\"hex\");u[e.toLowerCase()]=u[e]}));function Sign(e){a.Writable.call(this);var t=u[e];if(!t)throw new Error(\"Unknown message digest\");this._hashType=t.hash;this._hash=n(t.hash);this._tag=t.id;this._signType=t.sign}s(Sign,a.Writable);Sign.prototype._write=function _write(e,t,r){this._hash.update(e);r()};Sign.prototype.update=function update(e,t){if(typeof e===\"string\")e=i.from(e,t);this._hash.update(e);return this};Sign.prototype.sign=function signMethod(e,t){this.end();var r=this._hash.digest();var i=o(r,e,this._hashType,this._signType,this._tag);return t?i.toString(t):i};function Verify(e){a.Writable.call(this);var t=u[e];if(!t)throw new Error(\"Unknown message digest\");this._hash=n(t.hash);this._tag=t.id;this._signType=t.sign}s(Verify,a.Writable);Verify.prototype._write=function _write(e,t,r){this._hash.update(e);r()};Verify.prototype.update=function update(e,t){if(typeof e===\"string\")e=i.from(e,t);this._hash.update(e);return this};Verify.prototype.verify=function verifyMethod(e,t,r){if(typeof t===\"string\")t=i.from(t,r);this.end();var n=this._hash.digest();return h(t,n,e,this._signType,this._tag)};function createSign(e){return new Sign(e)}function createVerify(e){return new Verify(e)}e.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}},9807:function(e,t,r){var i=r(6911).Buffer;var n=r(4873);var a=r(7166);var s=r(949).ec;var o=r(1670);var h=r(9902);var u=r(9267);function sign(e,t,r,n,s){var o=h(t);if(o.curve){if(n!==\"ecdsa\"&&n!==\"ecdsa/rsa\")throw new Error(\"wrong private key type\");return ecSign(e,o)}else if(o.type===\"dsa\"){if(n!==\"dsa\")throw new Error(\"wrong private key type\");return dsaSign(e,o,r)}else{if(n!==\"rsa\"&&n!==\"ecdsa/rsa\")throw new Error(\"wrong private key type\")}e=i.concat([s,e]);var u=o.modulus.byteLength();var d=[0,1];while(e.length+d.length+1<u)d.push(255);d.push(0);var c=-1;while(++c<e.length)d.push(e[c]);var l=a(d,o);return l}function ecSign(e,t){var r=u[t.curve.join(\".\")];if(!r)throw new Error(\"unknown curve \"+t.curve.join(\".\"));var n=new s(r);var a=n.keyFromPrivate(t.privateKey);var o=a.sign(e);return i.from(o.toDER())}function dsaSign(e,t,r){var i=t.params.priv_key;var n=t.params.p;var a=t.params.q;var s=t.params.g;var h=new o(0);var u;var d=bits2int(e,a).mod(a);var c=false;var l=getKey(i,a,e,r);while(c===false){u=makeKey(a,l,r);h=makeR(s,u,n,a);c=u.invm(a).imul(d.add(i.mul(h))).mod(a);if(c.cmpn(0)===0){c=false;h=new o(0)}}return toDER(h,c)}function toDER(e,t){e=e.toArray();t=t.toArray();if(e[0]&128)e=[0].concat(e);if(t[0]&128)t=[0].concat(t);var r=e.length+t.length+4;var n=[48,r,2,e.length];n=n.concat(e,[2,t.length],t);return i.from(n)}function getKey(e,t,r,a){e=i.from(e.toArray());if(e.length<t.byteLength()){var s=i.alloc(t.byteLength()-e.length);e=i.concat([s,e])}var o=r.length;var h=bits2octets(r,t);var u=i.alloc(o);u.fill(1);var d=i.alloc(o);d=n(a,d).update(u).update(i.from([0])).update(e).update(h).digest();u=n(a,d).update(u).digest();d=n(a,d).update(u).update(i.from([1])).update(e).update(h).digest();u=n(a,d).update(u).digest();return{k:d,v:u}}function bits2int(e,t){var r=new o(e);var i=(e.length<<3)-t.bitLength();if(i>0)r.ishrn(i);return r}function bits2octets(e,t){e=bits2int(e,t);e=e.mod(t);var r=i.from(e.toArray());if(r.length<t.byteLength()){var n=i.alloc(t.byteLength()-r.length);r=i.concat([n,r])}return r}function makeKey(e,t,r){var a;var s;do{a=i.alloc(0);while(a.length*8<e.bitLength()){t.v=n(r,t.k).update(t.v).digest();a=i.concat([a,t.v])}s=bits2int(a,e);t.k=n(r,t.k).update(t.v).update(i.from([0])).digest();t.v=n(r,t.k).update(t.v).digest()}while(s.cmp(e)!==-1);return s}function makeR(e,t,r,i){return e.toRed(o.mont(r)).redPow(t).fromRed().mod(i)}e.exports=sign;e.exports.getKey=getKey;e.exports.makeKey=makeKey},4013:function(e,t,r){var i=r(6911).Buffer;var n=r(1670);var a=r(949).ec;var s=r(9902);var o=r(9267);function verify(e,t,r,a,o){var h=s(r);if(h.type===\"ec\"){if(a!==\"ecdsa\"&&a!==\"ecdsa/rsa\")throw new Error(\"wrong public key type\");return ecVerify(e,t,h)}else if(h.type===\"dsa\"){if(a!==\"dsa\")throw new Error(\"wrong public key type\");return dsaVerify(e,t,h)}else{if(a!==\"rsa\"&&a!==\"ecdsa/rsa\")throw new Error(\"wrong public key type\")}t=i.concat([o,t]);var u=h.modulus.byteLength();var d=[1];var c=0;while(t.length+d.length+2<u){d.push(255);c++}d.push(0);var l=-1;while(++l<t.length){d.push(t[l])}d=i.from(d);var p=n.mont(h.modulus);e=new n(e).toRed(p);e=e.redPow(new n(h.publicExponent));e=i.from(e.fromRed().toArray());var v=c<8?1:0;u=Math.min(e.length,d.length);if(e.length!==d.length)v=1;l=-1;while(++l<u)v|=e[l]^d[l];return v===0}function ecVerify(e,t,r){var i=o[r.data.algorithm.curve.join(\".\")];if(!i)throw new Error(\"unknown curve \"+r.data.algorithm.curve.join(\".\"));var n=new a(i);var s=r.data.subjectPrivateKey.data;return n.verify(t,e,s)}function dsaVerify(e,t,r){var i=r.data.p;var a=r.data.q;var o=r.data.g;var h=r.data.pub_key;var u=s.signature.decode(e,\"der\");var d=u.s;var c=u.r;checkValue(d,a);checkValue(c,a);var l=n.mont(i);var p=d.invm(a);var v=o.toRed(l).redPow(new n(t).mul(p).mod(a)).fromRed().mul(h.toRed(l).redPow(c.mul(p).mod(a)).fromRed()).mod(i).mod(a);return v.cmp(c)===0}function checkValue(e,t){if(e.cmpn(0)<=0)throw new Error(\"invalid sig\");if(e.cmp(t)>=t)throw new Error(\"invalid sig\")}e.exports=verify},4734:function(e){e.exports=function xor(e,t){var r=Math.min(e.length,t.length);var i=new Buffer(r);for(var n=0;n<r;++n){i[n]=e[n]^t[n]}return i}},1043:function(e,t,r){var i=r(6911).Buffer;var n=r(2781).Transform;var a=r(1576).StringDecoder;var s=r(3782);function CipherBase(e){n.call(this);this.hashMode=typeof e===\"string\";if(this.hashMode){this[e]=this._finalOrDigest}else{this.final=this._finalOrDigest}if(this._final){this.__final=this._final;this._final=null}this._decoder=null;this._encoding=null}s(CipherBase,n);CipherBase.prototype.update=function(e,t,r){if(typeof e===\"string\"){e=i.from(e,t)}var n=this._update(e);if(this.hashMode)return this;if(r){n=this._toString(n,r)}return n};CipherBase.prototype.setAutoPadding=function(){};CipherBase.prototype.getAuthTag=function(){throw new Error(\"trying to get auth tag in unsupported state\")};CipherBase.prototype.setAuthTag=function(){throw new Error(\"trying to set auth tag in unsupported state\")};CipherBase.prototype.setAAD=function(){throw new Error(\"trying to set aad in unsupported state\")};CipherBase.prototype._transform=function(e,t,r){var i;try{if(this.hashMode){this._update(e)}else{this.push(this._update(e))}}catch(e){i=e}finally{r(i)}};CipherBase.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)};CipherBase.prototype._finalOrDigest=function(e){var t=this.__final()||i.alloc(0);if(e){t=this._toString(t,e,true)}return t};CipherBase.prototype._toString=function(e,t,r){if(!this._decoder){this._decoder=new a(t);this._encoding=t}if(this._encoding!==t)throw new Error(\"can't switch encodings\");var i=this._decoder.write(e);if(r){i+=this._decoder.end()}return i};e.exports=CipherBase},9942:function(e,t,r){var i=r(949);var n=r(711);e.exports=function createECDH(e){return new ECDH(e)};var a={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};a.p224=a.secp224r1;a.p256=a.secp256r1=a.prime256v1;a.p192=a.secp192r1=a.prime192v1;a.p384=a.secp384r1;a.p521=a.secp521r1;function ECDH(e){this.curveType=a[e];if(!this.curveType){this.curveType={name:e}}this.curve=new i.ec(this.curveType.name);this.keys=void 0}ECDH.prototype.generateKeys=function(e,t){this.keys=this.curve.genKeyPair();return this.getPublicKey(e,t)};ECDH.prototype.computeSecret=function(e,t,r){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}var i=this.curve.keyFromPublic(e).getPublic();var n=i.mul(this.keys.getPrivate()).getX();return formatReturnValue(n,r,this.curveType.byteLength)};ECDH.prototype.getPublicKey=function(e,t){var r=this.keys.getPublic(t===\"compressed\",true);if(t===\"hybrid\"){if(r[r.length-1]%2){r[0]=7}else{r[0]=6}}return formatReturnValue(r,e)};ECDH.prototype.getPrivateKey=function(e){return formatReturnValue(this.keys.getPrivate(),e)};ECDH.prototype.setPublicKey=function(e,t){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}this.keys._importPublic(e);return this};ECDH.prototype.setPrivateKey=function(e,t){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}var r=new n(e);r=r.toString(16);this.keys=this.curve.genKeyPair();this.keys._importPrivate(r);return this};function formatReturnValue(e,t,r){if(!Array.isArray(e)){e=e.toArray()}var i=new Buffer(e);if(r&&i.length<r){var n=new Buffer(r-i.length);n.fill(0);i=Buffer.concat([n,i])}if(!t){return i}else{return i.toString(t)}}},9739:function(e,t,r){\"use strict\";var i=r(3782);var n=r(3533);var a=r(3225);var s=r(4371);var o=r(1043);function Hash(e){o.call(this,\"digest\");this._hash=e}i(Hash,o);Hash.prototype._update=function(e){this._hash.update(e)};Hash.prototype._final=function(){return this._hash.digest()};e.exports=function createHash(e){e=e.toLowerCase();if(e===\"md5\")return new n;if(e===\"rmd160\"||e===\"ripemd160\")return new a;return new Hash(s(e))}},450:function(e,t,r){var i=r(3533);e.exports=function(e){return(new i).update(e).digest()}},4873:function(e,t,r){\"use strict\";var i=r(3782);var n=r(8119);var a=r(1043);var s=r(6911).Buffer;var o=r(450);var h=r(3225);var u=r(4371);var d=s.alloc(128);function Hmac(e,t){a.call(this,\"digest\");if(typeof t===\"string\"){t=s.from(t)}var r=e===\"sha512\"||e===\"sha384\"?128:64;this._alg=e;this._key=t;if(t.length>r){var i=e===\"rmd160\"?new h:u(e);t=i.update(t).digest()}else if(t.length<r){t=s.concat([t,d],r)}var n=this._ipad=s.allocUnsafe(r);var o=this._opad=s.allocUnsafe(r);for(var c=0;c<r;c++){n[c]=t[c]^54;o[c]=t[c]^92}this._hash=e===\"rmd160\"?new h:u(e);this._hash.update(n)}i(Hmac,a);Hmac.prototype._update=function(e){this._hash.update(e)};Hmac.prototype._final=function(){var e=this._hash.digest();var t=this._alg===\"rmd160\"?new h:u(this._alg);return t.update(this._opad).update(e).digest()};e.exports=function createHmac(e,t){e=e.toLowerCase();if(e===\"rmd160\"||e===\"ripemd160\"){return new Hmac(\"rmd160\",t)}if(e===\"md5\"){return new n(o,t)}return new Hmac(e,t)}},8119:function(e,t,r){\"use strict\";var i=r(3782);var n=r(6911).Buffer;var a=r(1043);var s=n.alloc(128);var o=64;function Hmac(e,t){a.call(this,\"digest\");if(typeof t===\"string\"){t=n.from(t)}this._alg=e;this._key=t;if(t.length>o){t=e(t)}else if(t.length<o){t=n.concat([t,s],o)}var r=this._ipad=n.allocUnsafe(o);var i=this._opad=n.allocUnsafe(o);for(var h=0;h<o;h++){r[h]=t[h]^54;i[h]=t[h]^92}this._hash=[r]}i(Hmac,a);Hmac.prototype._update=function(e){this._hash.push(e)};Hmac.prototype._final=function(){var e=this._alg(n.concat(this._hash));return this._alg(n.concat([this._opad,e]))};e.exports=Hmac},9536:function(e,t,r){\"use strict\";t.utils=r(5334);t.Cipher=r(9876);t.DES=r(1016);t.CBC=r(8641);t.EDE=r(6159)},8641:function(e,t,r){\"use strict\";var i=r(3523);var n=r(3782);var a={};function CBCState(e){i.equal(e.length,8,\"Invalid IV length\");this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}function instantiate(e){function CBC(t){e.call(this,t);this._cbcInit()}n(CBC,e);var t=Object.keys(a);for(var r=0;r<t.length;r++){var i=t[r];CBC.prototype[i]=a[i]}CBC.create=function create(e){return new CBC(e)};return CBC}t.instantiate=instantiate;a._cbcInit=function _cbcInit(){var e=new CBCState(this.options.iv);this._cbcState=e};a._update=function _update(e,t,r,i){var n=this._cbcState;var a=this.constructor.super_.prototype;var s=n.iv;if(this.type===\"encrypt\"){for(var o=0;o<this.blockSize;o++)s[o]^=e[t+o];a._update.call(this,s,0,r,i);for(var o=0;o<this.blockSize;o++)s[o]=r[i+o]}else{a._update.call(this,e,t,r,i);for(var o=0;o<this.blockSize;o++)r[i+o]^=s[o];for(var o=0;o<this.blockSize;o++)s[o]=e[t+o]}}},9876:function(e,t,r){\"use strict\";var i=r(3523);function Cipher(e){this.options=e;this.type=this.options.type;this.blockSize=8;this._init();this.buffer=new Array(this.blockSize);this.bufferOff=0}e.exports=Cipher;Cipher.prototype._init=function _init(){};Cipher.prototype.update=function update(e){if(e.length===0)return[];if(this.type===\"decrypt\")return this._updateDecrypt(e);else return this._updateEncrypt(e)};Cipher.prototype._buffer=function _buffer(e,t){var r=Math.min(this.buffer.length-this.bufferOff,e.length-t);for(var i=0;i<r;i++)this.buffer[this.bufferOff+i]=e[t+i];this.bufferOff+=r;return r};Cipher.prototype._flushBuffer=function _flushBuffer(e,t){this._update(this.buffer,0,e,t);this.bufferOff=0;return this.blockSize};Cipher.prototype._updateEncrypt=function _updateEncrypt(e){var t=0;var r=0;var i=(this.bufferOff+e.length)/this.blockSize|0;var n=new Array(i*this.blockSize);if(this.bufferOff!==0){t+=this._buffer(e,t);if(this.bufferOff===this.buffer.length)r+=this._flushBuffer(n,r)}var a=e.length-(e.length-t)%this.blockSize;for(;t<a;t+=this.blockSize){this._update(e,t,n,r);r+=this.blockSize}for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return n};Cipher.prototype._updateDecrypt=function _updateDecrypt(e){var t=0;var r=0;var i=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1;var n=new Array(i*this.blockSize);for(;i>0;i--){t+=this._buffer(e,t);r+=this._flushBuffer(n,r)}t+=this._buffer(e,t);return n};Cipher.prototype.final=function final(e){var t;if(e)t=this.update(e);var r;if(this.type===\"encrypt\")r=this._finalEncrypt();else r=this._finalDecrypt();if(t)return t.concat(r);else return r};Cipher.prototype._pad=function _pad(e,t){if(t===0)return false;while(t<e.length)e[t++]=0;return true};Cipher.prototype._finalEncrypt=function _finalEncrypt(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);this._update(this.buffer,0,e,0);return e};Cipher.prototype._unpad=function _unpad(e){return e};Cipher.prototype._finalDecrypt=function _finalDecrypt(){i.equal(this.bufferOff,this.blockSize,\"Not enough data to decrypt\");var e=new Array(this.blockSize);this._flushBuffer(e,0);return this._unpad(e)}},1016:function(e,t,r){\"use strict\";var i=r(3523);var n=r(3782);var a=r(5334);var s=r(9876);function DESState(){this.tmp=new Array(2);this.keys=null}function DES(e){s.call(this,e);var t=new DESState;this._desState=t;this.deriveKeys(t,e.key)}n(DES,s);e.exports=DES;DES.create=function create(e){return new DES(e)};var o=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];DES.prototype.deriveKeys=function deriveKeys(e,t){e.keys=new Array(16*2);i.equal(t.length,this.blockSize,\"Invalid key length\");var r=a.readUInt32BE(t,0);var n=a.readUInt32BE(t,4);a.pc1(r,n,e.tmp,0);r=e.tmp[0];n=e.tmp[1];for(var s=0;s<e.keys.length;s+=2){var h=o[s>>>1];r=a.r28shl(r,h);n=a.r28shl(n,h);a.pc2(r,n,e.keys,s)}};DES.prototype._update=function _update(e,t,r,i){var n=this._desState;var s=a.readUInt32BE(e,t);var o=a.readUInt32BE(e,t+4);a.ip(s,o,n.tmp,0);s=n.tmp[0];o=n.tmp[1];if(this.type===\"encrypt\")this._encrypt(n,s,o,n.tmp,0);else this._decrypt(n,s,o,n.tmp,0);s=n.tmp[0];o=n.tmp[1];a.writeUInt32BE(r,s,i);a.writeUInt32BE(r,o,i+4)};DES.prototype._pad=function _pad(e,t){var r=e.length-t;for(var i=t;i<e.length;i++)e[i]=r;return true};DES.prototype._unpad=function _unpad(e){var t=e[e.length-1];for(var r=e.length-t;r<e.length;r++)i.equal(e[r],t);return e.slice(0,e.length-t)};DES.prototype._encrypt=function _encrypt(e,t,r,i,n){var s=t;var o=r;for(var h=0;h<e.keys.length;h+=2){var u=e.keys[h];var d=e.keys[h+1];a.expand(o,e.tmp,0);u^=e.tmp[0];d^=e.tmp[1];var c=a.substitute(u,d);var l=a.permute(c);var p=o;o=(s^l)>>>0;s=p}a.rip(o,s,i,n)};DES.prototype._decrypt=function _decrypt(e,t,r,i,n){var s=r;var o=t;for(var h=e.keys.length-2;h>=0;h-=2){var u=e.keys[h];var d=e.keys[h+1];a.expand(s,e.tmp,0);u^=e.tmp[0];d^=e.tmp[1];var c=a.substitute(u,d);var l=a.permute(c);var p=s;s=(o^l)>>>0;o=p}a.rip(s,o,i,n)}},6159:function(e,t,r){\"use strict\";var i=r(3523);var n=r(3782);var a=r(9876);var s=r(1016);function EDEState(e,t){i.equal(t.length,24,\"Invalid key length\");var r=t.slice(0,8);var n=t.slice(8,16);var a=t.slice(16,24);if(e===\"encrypt\"){this.ciphers=[s.create({type:\"encrypt\",key:r}),s.create({type:\"decrypt\",key:n}),s.create({type:\"encrypt\",key:a})]}else{this.ciphers=[s.create({type:\"decrypt\",key:a}),s.create({type:\"encrypt\",key:n}),s.create({type:\"decrypt\",key:r})]}}function EDE(e){a.call(this,e);var t=new EDEState(this.type,this.options.key);this._edeState=t}n(EDE,a);e.exports=EDE;EDE.create=function create(e){return new EDE(e)};EDE.prototype._update=function _update(e,t,r,i){var n=this._edeState;n.ciphers[0]._update(e,t,r,i);n.ciphers[1]._update(r,i,r,i);n.ciphers[2]._update(r,i,r,i)};EDE.prototype._pad=s.prototype._pad;EDE.prototype._unpad=s.prototype._unpad},5334:function(e,t){\"use strict\";t.readUInt32BE=function readUInt32BE(e,t){var r=e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t];return r>>>0};t.writeUInt32BE=function writeUInt32BE(e,t,r){e[0+r]=t>>>24;e[1+r]=t>>>16&255;e[2+r]=t>>>8&255;e[3+r]=t&255};t.ip=function ip(e,t,r,i){var n=0;var a=0;for(var s=6;s>=0;s-=2){for(var o=0;o<=24;o+=8){n<<=1;n|=t>>>o+s&1}for(var o=0;o<=24;o+=8){n<<=1;n|=e>>>o+s&1}}for(var s=6;s>=0;s-=2){for(var o=1;o<=25;o+=8){a<<=1;a|=t>>>o+s&1}for(var o=1;o<=25;o+=8){a<<=1;a|=e>>>o+s&1}}r[i+0]=n>>>0;r[i+1]=a>>>0};t.rip=function rip(e,t,r,i){var n=0;var a=0;for(var s=0;s<4;s++){for(var o=24;o>=0;o-=8){n<<=1;n|=t>>>o+s&1;n<<=1;n|=e>>>o+s&1}}for(var s=4;s<8;s++){for(var o=24;o>=0;o-=8){a<<=1;a|=t>>>o+s&1;a<<=1;a|=e>>>o+s&1}}r[i+0]=n>>>0;r[i+1]=a>>>0};t.pc1=function pc1(e,t,r,i){var n=0;var a=0;for(var s=7;s>=5;s--){for(var o=0;o<=24;o+=8){n<<=1;n|=t>>o+s&1}for(var o=0;o<=24;o+=8){n<<=1;n|=e>>o+s&1}}for(var o=0;o<=24;o+=8){n<<=1;n|=t>>o+s&1}for(var s=1;s<=3;s++){for(var o=0;o<=24;o+=8){a<<=1;a|=t>>o+s&1}for(var o=0;o<=24;o+=8){a<<=1;a|=e>>o+s&1}}for(var o=0;o<=24;o+=8){a<<=1;a|=e>>o+s&1}r[i+0]=n>>>0;r[i+1]=a>>>0};t.r28shl=function r28shl(e,t){return e<<t&268435455|e>>>28-t};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function pc2(e,t,i,n){var a=0;var s=0;var o=r.length>>>1;for(var h=0;h<o;h++){a<<=1;a|=e>>>r[h]&1}for(var h=o;h<r.length;h++){s<<=1;s|=t>>>r[h]&1}i[n+0]=a>>>0;i[n+1]=s>>>0};t.expand=function expand(e,t,r){var i=0;var n=0;i=(e&1)<<5|e>>>27;for(var a=23;a>=15;a-=4){i<<=6;i|=e>>>a&63}for(var a=11;a>=3;a-=4){n|=e>>>a&63;n<<=6}n|=(e&31)<<1|e>>>31;t[r+0]=i>>>0;t[r+1]=n>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function substitute(e,t){var r=0;for(var n=0;n<4;n++){var a=e>>>18-n*6&63;var s=i[n*64+a];r<<=4;r|=s}for(var n=0;n<4;n++){var a=t>>>18-n*6&63;var s=i[4*64+n*64+a];r<<=4;r|=s}return r>>>0};var n=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function permute(e){var t=0;for(var r=0;r<n.length;r++){t<<=1;t|=e>>>n[r]&1}return t>>>0};t.padSplit=function padSplit(e,t,r){var i=e.toString(2);while(i.length<t)i=\"0\"+i;var n=[];for(var a=0;a<t;a+=r)n.push(i.slice(a,a+r));return n.join(\" \")}},6587:function(e,t,r){var i=r(296);var n=r(7992);var a=r(373);function getDiffieHellman(e){var t=new Buffer(n[e].prime,\"hex\");var r=new Buffer(n[e].gen,\"hex\");return new a(t,r)}var s={binary:true,hex:true,base64:true};function createDiffieHellman(e,t,r,n){if(Buffer.isBuffer(t)||s[t]===undefined){return createDiffieHellman(e,\"binary\",t,r)}t=t||\"binary\";n=n||\"binary\";r=r||new Buffer([2]);if(!Buffer.isBuffer(r)){r=new Buffer(r,n)}if(typeof e===\"number\"){return new a(i(e,r),r,true)}if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}return new a(e,r,true)}t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=getDiffieHellman;t.createDiffieHellman=t.DiffieHellman=createDiffieHellman},373:function(e,t,r){var i=r(711);var n=r(1354);var a=new n;var s=new i(24);var o=new i(11);var h=new i(10);var u=new i(3);var d=new i(7);var c=r(296);var l=r(7223);e.exports=DH;function setPublicKey(e,t){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}this._pub=new i(e);return this}function setPrivateKey(e,t){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}this._priv=new i(e);return this}var p={};function checkPrime(e,t){var r=t.toString(\"hex\");var i=[r,e.toString(16)].join(\"_\");if(i in p){return p[i]}var n=0;if(e.isEven()||!c.simpleSieve||!c.fermatTest(e)||!a.test(e)){n+=1;if(r===\"02\"||r===\"05\"){n+=8}else{n+=4}p[i]=n;return n}if(!a.test(e.shrn(1))){n+=2}var l;switch(r){case\"02\":if(e.mod(s).cmp(o)){n+=8}break;case\"05\":l=e.mod(h);if(l.cmp(u)&&l.cmp(d)){n+=8}break;default:n+=4}p[i]=n;return n}function DH(e,t,r){this.setGenerator(t);this.__prime=new i(e);this._prime=i.mont(this.__prime);this._primeLen=e.length;this._pub=undefined;this._priv=undefined;this._primeCode=undefined;if(r){this.setPublicKey=setPublicKey;this.setPrivateKey=setPrivateKey}else{this._primeCode=8}}Object.defineProperty(DH.prototype,\"verifyError\",{enumerable:true,get:function(){if(typeof this._primeCode!==\"number\"){this._primeCode=checkPrime(this.__prime,this.__gen)}return this._primeCode}});DH.prototype.generateKeys=function(){if(!this._priv){this._priv=new i(l(this._primeLen))}this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed();return this.getPublicKey()};DH.prototype.computeSecret=function(e){e=new i(e);e=e.toRed(this._prime);var t=e.redPow(this._priv).fromRed();var r=new Buffer(t.toArray());var n=this.getPrime();if(r.length<n.length){var a=new Buffer(n.length-r.length);a.fill(0);r=Buffer.concat([a,r])}return r};DH.prototype.getPublicKey=function getPublicKey(e){return formatReturnValue(this._pub,e)};DH.prototype.getPrivateKey=function getPrivateKey(e){return formatReturnValue(this._priv,e)};DH.prototype.getPrime=function(e){return formatReturnValue(this.__prime,e)};DH.prototype.getGenerator=function(e){return formatReturnValue(this._gen,e)};DH.prototype.setGenerator=function(e,t){t=t||\"utf8\";if(!Buffer.isBuffer(e)){e=new Buffer(e,t)}this.__gen=e;this._gen=new i(e);return this};function formatReturnValue(e,t){var r=new Buffer(e.toArray());if(!t){return r}else{return r.toString(t)}}},296:function(e,t,r){var i=r(7223);e.exports=findPrime;findPrime.simpleSieve=simpleSieve;findPrime.fermatTest=fermatTest;var n=r(711);var a=new n(24);var s=r(1354);var o=new s;var h=new n(1);var u=new n(2);var d=new n(5);var c=new n(16);var l=new n(8);var p=new n(10);var v=new n(3);var b=new n(7);var m=new n(11);var y=new n(4);var g=new n(12);var _=null;function _getPrimes(){if(_!==null)return _;var e=1048576;var t=[];t[0]=2;for(var r=1,i=3;i<e;i+=2){var n=Math.ceil(Math.sqrt(i));for(var a=0;a<r&&t[a]<=n;a++)if(i%t[a]===0)break;if(r!==a&&t[a]<=n)continue;t[r++]=i}_=t;return t}function simpleSieve(e){var t=_getPrimes();for(var r=0;r<t.length;r++)if(e.modn(t[r])===0){if(e.cmpn(t[r])===0){return true}else{return false}}return true}function fermatTest(e){var t=n.mont(e);return u.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)===0}function findPrime(e,t){if(e<16){if(t===2||t===5){return new n([140,123])}else{return new n([140,39])}}t=new n(t);var r,s;while(true){r=new n(i(Math.ceil(e/8)));while(r.bitLength()>e){r.ishrn(1)}if(r.isEven()){r.iadd(h)}if(!r.testn(1)){r.iadd(u)}if(!t.cmp(u)){while(r.mod(a).cmp(m)){r.iadd(y)}}else if(!t.cmp(d)){while(r.mod(p).cmp(v)){r.iadd(y)}}s=r.shrn(1);if(simpleSieve(s)&&simpleSieve(r)&&fermatTest(s)&&fermatTest(r)&&o.test(s)&&o.test(r)){return r}}}},949:function(e,t,r){\"use strict\";var i=t;i.version=r(2531).i8;i.utils=r(4401);i.rand=r(3500);i.curve=r(9359);i.curves=r(6226);i.ec=r(4088);i.eddsa=r(8511)},2727:function(e,t,r){\"use strict\";var i=r(711);var n=r(4401);var a=n.getNAF;var s=n.getJSF;var o=n.assert;function BaseCurve(e,t){this.type=e;this.p=new i(t.p,16);this.red=t.prime?i.red(t.prime):i.mont(this.p);this.zero=new i(0).toRed(this.red);this.one=new i(1).toRed(this.red);this.two=new i(2).toRed(this.red);this.n=t.n&&new i(t.n,16);this.g=t.g&&this.pointFromJSON(t.g,t.gRed);this._wnafT1=new Array(4);this._wnafT2=new Array(4);this._wnafT3=new Array(4);this._wnafT4=new Array(4);this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);if(!r||r.cmpn(100)>0){this.redN=null}else{this._maxwellTrick=true;this.redN=this.n.toRed(this.red)}}e.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error(\"Not implemented\")};BaseCurve.prototype.validate=function validate(){throw new Error(\"Not implemented\")};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(e,t){o(e.precomputed);var r=e._getDoubles();var i=a(t,1,this._bitLength);var n=(1<<r.step+1)-(r.step%2===0?2:1);n/=3;var s=[];for(var h=0;h<i.length;h+=r.step){var u=0;for(var t=h+r.step-1;t>=h;t--)u=(u<<1)+i[t];s.push(u)}var d=this.jpoint(null,null,null);var c=this.jpoint(null,null,null);for(var l=n;l>0;l--){for(var h=0;h<s.length;h++){var u=s[h];if(u===l)c=c.mixedAdd(r.points[h]);else if(u===-l)c=c.mixedAdd(r.points[h].neg())}d=d.add(c)}return d.toP()};BaseCurve.prototype._wnafMul=function _wnafMul(e,t){var r=4;var i=e._getNAFPoints(r);r=i.wnd;var n=i.points;var s=a(t,r,this._bitLength);var h=this.jpoint(null,null,null);for(var u=s.length-1;u>=0;u--){for(var t=0;u>=0&&s[u]===0;u--)t++;if(u>=0)t++;h=h.dblp(t);if(u<0)break;var d=s[u];o(d!==0);if(e.type===\"affine\"){if(d>0)h=h.mixedAdd(n[d-1>>1]);else h=h.mixedAdd(n[-d-1>>1].neg())}else{if(d>0)h=h.add(n[d-1>>1]);else h=h.add(n[-d-1>>1].neg())}}return e.type===\"affine\"?h.toP():h};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(e,t,r,i,n){var o=this._wnafT1;var h=this._wnafT2;var u=this._wnafT3;var d=0;for(var c=0;c<i;c++){var l=t[c];var p=l._getNAFPoints(e);o[c]=p.wnd;h[c]=p.points}for(var c=i-1;c>=1;c-=2){var v=c-1;var b=c;if(o[v]!==1||o[b]!==1){u[v]=a(r[v],o[v],this._bitLength);u[b]=a(r[b],o[b],this._bitLength);d=Math.max(u[v].length,d);d=Math.max(u[b].length,d);continue}var m=[t[v],null,null,t[b]];if(t[v].y.cmp(t[b].y)===0){m[1]=t[v].add(t[b]);m[2]=t[v].toJ().mixedAdd(t[b].neg())}else if(t[v].y.cmp(t[b].y.redNeg())===0){m[1]=t[v].toJ().mixedAdd(t[b]);m[2]=t[v].add(t[b].neg())}else{m[1]=t[v].toJ().mixedAdd(t[b]);m[2]=t[v].toJ().mixedAdd(t[b].neg())}var y=[-3,-1,-5,-7,0,7,5,1,3];var g=s(r[v],r[b]);d=Math.max(g[0].length,d);u[v]=new Array(d);u[b]=new Array(d);for(var _=0;_<d;_++){var w=g[0][_]|0;var M=g[1][_]|0;u[v][_]=y[(w+1)*3+(M+1)];u[b][_]=0;h[v]=m}}var B=this.jpoint(null,null,null);var E=this._wnafT4;for(var c=d;c>=0;c--){var k=0;while(c>=0){var A=true;for(var _=0;_<i;_++){E[_]=u[_][c]|0;if(E[_]!==0)A=false}if(!A)break;k++;c--}if(c>=0)k++;B=B.dblp(k);if(c<0)break;for(var _=0;_<i;_++){var N=E[_];var l;if(N===0)continue;else if(N>0)l=h[_][N-1>>1];else if(N<0)l=h[_][-N-1>>1].neg();if(l.type===\"affine\")B=B.mixedAdd(l);else B=B.add(l)}}for(var c=0;c<i;c++)h[c]=null;if(n)return B;else return B.toP()};function BasePoint(e,t){this.curve=e;this.type=t;this.precomputed=null}BaseCurve.BasePoint=BasePoint;BasePoint.prototype.eq=function eq(){throw new Error(\"Not implemented\")};BasePoint.prototype.validate=function validate(){return this.curve.validate(this)};BaseCurve.prototype.decodePoint=function decodePoint(e,t){e=n.toArray(e,t);var r=this.p.byteLength();if((e[0]===4||e[0]===6||e[0]===7)&&e.length-1===2*r){if(e[0]===6)o(e[e.length-1]%2===0);else if(e[0]===7)o(e[e.length-1]%2===1);var i=this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));return i}else if((e[0]===2||e[0]===3)&&e.length-1===r){return this.pointFromX(e.slice(1,1+r),e[0]===3)}throw new Error(\"Unknown point format\")};BasePoint.prototype.encodeCompressed=function encodeCompressed(e){return this.encode(e,true)};BasePoint.prototype._encode=function _encode(e){var t=this.curve.p.byteLength();var r=this.getX().toArray(\"be\",t);if(e)return[this.getY().isEven()?2:3].concat(r);return[4].concat(r,this.getY().toArray(\"be\",t))};BasePoint.prototype.encode=function encode(e,t){return n.encode(this._encode(t),e)};BasePoint.prototype.precompute=function precompute(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};t.naf=this._getNAFPoints(8);t.doubles=this._getDoubles(4,e);t.beta=this._getBeta();this.precomputed=t;return this};BasePoint.prototype._hasDoubles=function _hasDoubles(e){if(!this.precomputed)return false;var t=this.precomputed.doubles;if(!t)return false;return t.points.length>=Math.ceil((e.bitLength()+1)/t.step)};BasePoint.prototype._getDoubles=function _getDoubles(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var r=[this];var i=this;for(var n=0;n<t;n+=e){for(var a=0;a<e;a++)i=i.dbl();r.push(i)}return{step:e,points:r}};BasePoint.prototype._getNAFPoints=function _getNAFPoints(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;var t=[this];var r=(1<<e)-1;var i=r===1?null:this.dbl();for(var n=1;n<r;n++)t[n]=t[n-1].add(i);return{wnd:e,points:t}};BasePoint.prototype._getBeta=function _getBeta(){return null};BasePoint.prototype.dblp=function dblp(e){var t=this;for(var r=0;r<e;r++)t=t.dbl();return t}},2705:function(e,t,r){\"use strict\";var i=r(4401);var n=r(711);var a=r(3782);var s=r(2727);var o=i.assert;function EdwardsCurve(e){this.twisted=(e.a|0)!==1;this.mOneA=this.twisted&&(e.a|0)===-1;this.extended=this.mOneA;s.call(this,\"edwards\",e);this.a=new n(e.a,16).umod(this.red.m);this.a=this.a.toRed(this.red);this.c=new n(e.c,16).toRed(this.red);this.c2=this.c.redSqr();this.d=new n(e.d,16).toRed(this.red);this.dd=this.d.redAdd(this.d);o(!this.twisted||this.c.fromRed().cmpn(1)===0);this.oneC=(e.c|0)===1}a(EdwardsCurve,s);e.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function _mulA(e){if(this.mOneA)return e.redNeg();else return this.a.redMul(e)};EdwardsCurve.prototype._mulC=function _mulC(e){if(this.oneC)return e;else return this.c.redMul(e)};EdwardsCurve.prototype.jpoint=function jpoint(e,t,r,i){return this.point(e,t,r,i)};EdwardsCurve.prototype.pointFromX=function pointFromX(e,t){e=new n(e,16);if(!e.red)e=e.toRed(this.red);var r=e.redSqr();var i=this.c2.redSub(this.a.redMul(r));var a=this.one.redSub(this.c2.redMul(this.d).redMul(r));var s=i.redMul(a.redInvm());var o=s.redSqrt();if(o.redSqr().redSub(s).cmp(this.zero)!==0)throw new Error(\"invalid point\");var h=o.fromRed().isOdd();if(t&&!h||!t&&h)o=o.redNeg();return this.point(e,o)};EdwardsCurve.prototype.pointFromY=function pointFromY(e,t){e=new n(e,16);if(!e.red)e=e.toRed(this.red);var r=e.redSqr();var i=r.redSub(this.c2);var a=r.redMul(this.d).redMul(this.c2).redSub(this.a);var s=i.redMul(a.redInvm());if(s.cmp(this.zero)===0){if(t)throw new Error(\"invalid point\");else return this.point(this.zero,e)}var o=s.redSqrt();if(o.redSqr().redSub(s).cmp(this.zero)!==0)throw new Error(\"invalid point\");if(o.fromRed().isOdd()!==t)o=o.redNeg();return this.point(o,e)};EdwardsCurve.prototype.validate=function validate(e){if(e.isInfinity())return true;e.normalize();var t=e.x.redSqr();var r=e.y.redSqr();var i=t.redMul(this.a).redAdd(r);var n=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return i.cmp(n)===0};function Point(e,t,r,i,a){s.BasePoint.call(this,e,\"projective\");if(t===null&&r===null&&i===null){this.x=this.curve.zero;this.y=this.curve.one;this.z=this.curve.one;this.t=this.curve.zero;this.zOne=true}else{this.x=new n(t,16);this.y=new n(r,16);this.z=i?new n(i,16):this.curve.one;this.t=a&&new n(a,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);this.zOne=this.z===this.curve.one;if(this.curve.extended&&!this.t){this.t=this.x.redMul(this.y);if(!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}a(Point,s.BasePoint);EdwardsCurve.prototype.pointFromJSON=function pointFromJSON(e){return Point.fromJSON(this,e)};EdwardsCurve.prototype.point=function point(e,t,r,i){return new Point(this,e,t,r,i)};Point.fromJSON=function fromJSON(e,t){return new Point(e,t[0],t[1],t[2])};Point.prototype.inspect=function inspect(){if(this.isInfinity())return\"<EC Point Infinity>\";return\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"};Point.prototype.isInfinity=function isInfinity(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function _extDbl(){var e=this.x.redSqr();var t=this.y.redSqr();var r=this.z.redSqr();r=r.redIAdd(r);var i=this.curve._mulA(e);var n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t);var a=i.redAdd(t);var s=a.redSub(r);var o=i.redSub(t);var h=n.redMul(s);var u=a.redMul(o);var d=n.redMul(o);var c=s.redMul(a);return this.curve.point(h,u,c,d)};Point.prototype._projDbl=function _projDbl(){var e=this.x.redAdd(this.y).redSqr();var t=this.x.redSqr();var r=this.y.redSqr();var i;var n;var a;if(this.curve.twisted){var s=this.curve._mulA(t);var o=s.redAdd(r);if(this.zOne){i=e.redSub(t).redSub(r).redMul(o.redSub(this.curve.two));n=o.redMul(s.redSub(r));a=o.redSqr().redSub(o).redSub(o)}else{var h=this.z.redSqr();var u=o.redSub(h).redISub(h);i=e.redSub(t).redISub(r).redMul(u);n=o.redMul(s.redSub(r));a=o.redMul(u)}}else{var s=t.redAdd(r);var h=this.curve._mulC(this.z).redSqr();var u=s.redSub(h).redSub(h);i=this.curve._mulC(e.redISub(s)).redMul(u);n=this.curve._mulC(s).redMul(t.redISub(r));a=s.redMul(u)}return this.curve.point(i,n,a)};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function _extAdd(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x));var r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x));var i=this.t.redMul(this.curve.dd).redMul(e.t);var n=this.z.redMul(e.z.redAdd(e.z));var a=r.redSub(t);var s=n.redSub(i);var o=n.redAdd(i);var h=r.redAdd(t);var u=a.redMul(s);var d=o.redMul(h);var c=a.redMul(h);var l=s.redMul(o);return this.curve.point(u,d,l,c)};Point.prototype._projAdd=function _projAdd(e){var t=this.z.redMul(e.z);var r=t.redSqr();var i=this.x.redMul(e.x);var n=this.y.redMul(e.y);var a=this.curve.d.redMul(i).redMul(n);var s=r.redSub(a);var o=r.redAdd(a);var h=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(n);var u=t.redMul(s).redMul(h);var d;var c;if(this.curve.twisted){d=t.redMul(o).redMul(n.redSub(this.curve._mulA(i)));c=s.redMul(o)}else{d=t.redMul(o).redMul(n.redSub(i));c=this.curve._mulC(s).redMul(o)}return this.curve.point(u,d,c)};Point.prototype.add=function add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;if(this.curve.extended)return this._extAdd(e);else return this._projAdd(e)};Point.prototype.mul=function mul(e){if(this._hasDoubles(e))return this.curve._fixedNafMul(this,e);else return this.curve._wnafMul(this,e)};Point.prototype.mulAdd=function mulAdd(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,false)};Point.prototype.jmulAdd=function jmulAdd(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,true)};Point.prototype.normalize=function normalize(){if(this.zOne)return this;var e=this.z.redInvm();this.x=this.x.redMul(e);this.y=this.y.redMul(e);if(this.t)this.t=this.t.redMul(e);this.z=this.curve.one;this.zOne=true;return this};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed()};Point.prototype.eq=function eq(e){return this===e||this.getX().cmp(e.getX())===0&&this.getY().cmp(e.getY())===0};Point.prototype.eqXToP=function eqXToP(e){var t=e.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(t)===0)return true;var r=e.clone();var i=this.curve.redN.redMul(this.z);for(;;){r.iadd(this.curve.n);if(r.cmp(this.curve.p)>=0)return false;t.redIAdd(i);if(this.x.cmp(t)===0)return true}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add},9359:function(e,t,r){\"use strict\";var i=t;i.base=r(2727);i.short=r(4720);i.mont=r(6653);i.edwards=r(2705)},6653:function(e,t,r){\"use strict\";var i=r(711);var n=r(3782);var a=r(2727);var s=r(4401);function MontCurve(e){a.call(this,\"mont\",e);this.a=new i(e.a,16).toRed(this.red);this.b=new i(e.b,16).toRed(this.red);this.i4=new i(4).toRed(this.red).redInvm();this.two=new i(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two))}n(MontCurve,a);e.exports=MontCurve;MontCurve.prototype.validate=function validate(e){var t=e.normalize().x;var r=t.redSqr();var i=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);var n=i.redSqrt();return n.redSqr().cmp(i)===0};function Point(e,t,r){a.BasePoint.call(this,e,\"projective\");if(t===null&&r===null){this.x=this.curve.one;this.z=this.curve.zero}else{this.x=new i(t,16);this.z=new i(r,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}n(Point,a.BasePoint);MontCurve.prototype.decodePoint=function decodePoint(e,t){return this.point(s.toArray(e,t),1)};MontCurve.prototype.point=function point(e,t){return new Point(this,e,t)};MontCurve.prototype.pointFromJSON=function pointFromJSON(e){return Point.fromJSON(this,e)};Point.prototype.precompute=function precompute(){};Point.prototype._encode=function _encode(){return this.getX().toArray(\"be\",this.curve.p.byteLength())};Point.fromJSON=function fromJSON(e,t){return new Point(e,t[0],t[1]||e.one)};Point.prototype.inspect=function inspect(){if(this.isInfinity())return\"<EC Point Infinity>\";return\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"};Point.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0};Point.prototype.dbl=function dbl(){var e=this.x.redAdd(this.z);var t=e.redSqr();var r=this.x.redSub(this.z);var i=r.redSqr();var n=t.redSub(i);var a=t.redMul(i);var s=n.redMul(i.redAdd(this.curve.a24.redMul(n)));return this.curve.point(a,s)};Point.prototype.add=function add(){throw new Error(\"Not supported on Montgomery curve\")};Point.prototype.diffAdd=function diffAdd(e,t){var r=this.x.redAdd(this.z);var i=this.x.redSub(this.z);var n=e.x.redAdd(e.z);var a=e.x.redSub(e.z);var s=a.redMul(r);var o=n.redMul(i);var h=t.z.redMul(s.redAdd(o).redSqr());var u=t.x.redMul(s.redISub(o).redSqr());return this.curve.point(h,u)};Point.prototype.mul=function mul(e){var t=e.clone();var r=this;var i=this.curve.point(null,null);var n=this;for(var a=[];t.cmpn(0)!==0;t.iushrn(1))a.push(t.andln(1));for(var s=a.length-1;s>=0;s--){if(a[s]===0){r=r.diffAdd(i,n);i=i.dbl()}else{i=r.diffAdd(i,n);r=r.dbl()}}return i};Point.prototype.mulAdd=function mulAdd(){throw new Error(\"Not supported on Montgomery curve\")};Point.prototype.jumlAdd=function jumlAdd(){throw new Error(\"Not supported on Montgomery curve\")};Point.prototype.eq=function eq(e){return this.getX().cmp(e.getX())===0};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()}},4720:function(e,t,r){\"use strict\";var i=r(4401);var n=r(711);var a=r(3782);var s=r(2727);var o=i.assert;function ShortCurve(e){s.call(this,\"short\",e);this.a=new n(e.a,16).toRed(this.red);this.b=new n(e.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;this.endo=this._getEndomorphism(e);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4)}a(ShortCurve,s);e.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(e){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var t;var r;if(e.beta){t=new n(e.beta,16).toRed(this.red)}else{var i=this._getEndoRoots(this.p);t=i[0].cmp(i[1])<0?i[0]:i[1];t=t.toRed(this.red)}if(e.lambda){r=new n(e.lambda,16)}else{var a=this._getEndoRoots(this.n);if(this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))===0){r=a[0]}else{r=a[1];o(this.g.mul(r).x.cmp(this.g.x.redMul(t))===0)}}var s;if(e.basis){s=e.basis.map((function(e){return{a:new n(e.a,16),b:new n(e.b,16)}}))}else{s=this._getEndoBasis(r)}return{beta:t,lambda:r,basis:s}};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(e){var t=e===this.p?this.red:n.mont(e);var r=new n(2).toRed(t).redInvm();var i=r.redNeg();var a=new n(3).toRed(t).redNeg().redSqrt().redMul(r);var s=i.redAdd(a).fromRed();var o=i.redSub(a).fromRed();return[s,o]};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(e){var t=this.n.ushrn(Math.floor(this.n.bitLength()/2));var r=e;var i=this.n.clone();var a=new n(1);var s=new n(0);var o=new n(0);var h=new n(1);var u;var d;var c;var l;var p;var v;var b;var m=0;var y;var g;while(r.cmpn(0)!==0){var _=i.div(r);y=i.sub(_.mul(r));g=o.sub(_.mul(a));var w=h.sub(_.mul(s));if(!c&&y.cmp(t)<0){u=b.neg();d=a;c=y.neg();l=g}else if(c&&++m===2){break}b=y;i=r;r=y;o=a;a=g;h=s;s=w}p=y.neg();v=g;var M=c.sqr().add(l.sqr());var B=p.sqr().add(v.sqr());if(B.cmp(M)>=0){p=u;v=d}if(c.negative){c=c.neg();l=l.neg()}if(p.negative){p=p.neg();v=v.neg()}return[{a:c,b:l},{a:p,b:v}]};ShortCurve.prototype._endoSplit=function _endoSplit(e){var t=this.endo.basis;var r=t[0];var i=t[1];var n=i.b.mul(e).divRound(this.n);var a=r.b.neg().mul(e).divRound(this.n);var s=n.mul(r.a);var o=a.mul(i.a);var h=n.mul(r.b);var u=a.mul(i.b);var d=e.sub(s).sub(o);var c=h.add(u).neg();return{k1:d,k2:c}};ShortCurve.prototype.pointFromX=function pointFromX(e,t){e=new n(e,16);if(!e.red)e=e.toRed(this.red);var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b);var i=r.redSqrt();if(i.redSqr().redSub(r).cmp(this.zero)!==0)throw new Error(\"invalid point\");var a=i.fromRed().isOdd();if(t&&!a||!t&&a)i=i.redNeg();return this.point(e,i)};ShortCurve.prototype.validate=function validate(e){if(e.inf)return true;var t=e.x;var r=e.y;var i=this.a.redMul(t);var n=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return r.redSqr().redISub(n).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(e,t,r){var i=this._endoWnafT1;var n=this._endoWnafT2;for(var a=0;a<e.length;a++){var s=this._endoSplit(t[a]);var o=e[a];var h=o._getBeta();if(s.k1.negative){s.k1.ineg();o=o.neg(true)}if(s.k2.negative){s.k2.ineg();h=h.neg(true)}i[a*2]=o;i[a*2+1]=h;n[a*2]=s.k1;n[a*2+1]=s.k2}var u=this._wnafMulAdd(1,i,n,a*2,r);for(var d=0;d<a*2;d++){i[d]=null;n[d]=null}return u};function Point(e,t,r,i){s.BasePoint.call(this,e,\"affine\");if(t===null&&r===null){this.x=null;this.y=null;this.inf=true}else{this.x=new n(t,16);this.y=new n(r,16);if(i){this.x.forceRed(this.curve.red);this.y.forceRed(this.curve.red)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);this.inf=false}}a(Point,s.BasePoint);ShortCurve.prototype.point=function point(e,t,r){return new Point(this,e,t,r)};ShortCurve.prototype.pointFromJSON=function pointFromJSON(e,t){return Point.fromJSON(this,e,t)};Point.prototype._getBeta=function _getBeta(){if(!this.curve.endo)return;var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve;var endoMul=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t;t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(endoMul)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(endoMul)}}}return t};Point.prototype.toJSON=function toJSON(){if(!this.precomputed)return[this.x,this.y];return[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]};Point.fromJSON=function fromJSON(e,t,r){if(typeof t===\"string\")t=JSON.parse(t);var i=e.point(t[0],t[1],r);if(!t[2])return i;function obj2point(t){return e.point(t[0],t[1],r)}var n=t[2];i.precomputed={beta:null,doubles:n.doubles&&{step:n.doubles.step,points:[i].concat(n.doubles.points.map(obj2point))},naf:n.naf&&{wnd:n.naf.wnd,points:[i].concat(n.naf.points.map(obj2point))}};return i};Point.prototype.inspect=function inspect(){if(this.isInfinity())return\"<EC Point Infinity>\";return\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\">\"};Point.prototype.isInfinity=function isInfinity(){return this.inf};Point.prototype.add=function add(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(this.x.cmp(e.x)===0)return this.curve.point(null,null);var t=this.y.redSub(e.y);if(t.cmpn(0)!==0)t=t.redMul(this.x.redSub(e.x).redInvm());var r=t.redSqr().redISub(this.x).redISub(e.x);var i=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,i)};Point.prototype.dbl=function dbl(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(e.cmpn(0)===0)return this.curve.point(null,null);var t=this.curve.a;var r=this.x.redSqr();var i=e.redInvm();var n=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(i);var a=n.redSqr().redISub(this.x.redAdd(this.x));var s=n.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,s)};Point.prototype.getX=function getX(){return this.x.fromRed()};Point.prototype.getY=function getY(){return this.y.fromRed()};Point.prototype.mul=function mul(e){e=new n(e,16);if(this.isInfinity())return this;else if(this._hasDoubles(e))return this.curve._fixedNafMul(this,e);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[e]);else return this.curve._wnafMul(this,e)};Point.prototype.mulAdd=function mulAdd(e,t,r){var i=[this,t];var n=[e,r];if(this.curve.endo)return this.curve._endoWnafMulAdd(i,n);else return this.curve._wnafMulAdd(1,i,n,2)};Point.prototype.jmulAdd=function jmulAdd(e,t,r){var i=[this,t];var n=[e,r];if(this.curve.endo)return this.curve._endoWnafMulAdd(i,n,true);else return this.curve._wnafMulAdd(1,i,n,2,true)};Point.prototype.eq=function eq(e){return this===e||this.inf===e.inf&&(this.inf||this.x.cmp(e.x)===0&&this.y.cmp(e.y)===0)};Point.prototype.neg=function neg(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed;var negate=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(negate)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(negate)}}}return t};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var e=this.curve.jpoint(this.x,this.y,this.curve.one);return e};function JPoint(e,t,r,i){s.BasePoint.call(this,e,\"jacobian\");if(t===null&&r===null&&i===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new n(0)}else{this.x=new n(t,16);this.y=new n(r,16);this.z=new n(i,16)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}a(JPoint,s.BasePoint);ShortCurve.prototype.jpoint=function jpoint(e,t,r){return new JPoint(this,e,t,r)};JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm();var t=e.redSqr();var r=this.x.redMul(t);var i=this.y.redMul(t).redMul(e);return this.curve.point(r,i)};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr();var r=this.z.redSqr();var i=this.x.redMul(t);var n=e.x.redMul(r);var a=this.y.redMul(t.redMul(e.z));var s=e.y.redMul(r.redMul(this.z));var o=i.redSub(n);var h=a.redSub(s);if(o.cmpn(0)===0){if(h.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var u=o.redSqr();var d=u.redMul(o);var c=i.redMul(u);var l=h.redSqr().redIAdd(d).redISub(c).redISub(c);var p=h.redMul(c.redISub(l)).redISub(a.redMul(d));var v=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(l,p,v)};JPoint.prototype.mixedAdd=function mixedAdd(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr();var r=this.x;var i=e.x.redMul(t);var n=this.y;var a=e.y.redMul(t).redMul(this.z);var s=r.redSub(i);var o=n.redSub(a);if(s.cmpn(0)===0){if(o.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h=s.redSqr();var u=h.redMul(s);var d=r.redMul(h);var c=o.redSqr().redIAdd(u).redISub(d).redISub(d);var l=o.redMul(d.redISub(c)).redISub(n.redMul(u));var p=this.z.redMul(s);return this.curve.jpoint(c,l,p)};JPoint.prototype.dblp=function dblp(e){if(e===0)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var t=this;for(var r=0;r<e;r++)t=t.dbl();return t}var i=this.curve.a;var n=this.curve.tinv;var a=this.x;var s=this.y;var o=this.z;var h=o.redSqr().redSqr();var u=s.redAdd(s);for(var r=0;r<e;r++){var d=a.redSqr();var c=u.redSqr();var l=c.redSqr();var p=d.redAdd(d).redIAdd(d).redIAdd(i.redMul(h));var v=a.redMul(c);var b=p.redSqr().redISub(v.redAdd(v));var m=v.redISub(b);var y=p.redMul(m);y=y.redIAdd(y).redISub(l);var g=u.redMul(o);if(r+1<e)h=h.redMul(l);a=b;o=g;u=y}return this.curve.jpoint(a,u.redMul(n),o)};JPoint.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.zeroA)return this._zeroDbl();else if(this.curve.threeA)return this._threeDbl();else return this._dbl()};JPoint.prototype._zeroDbl=function _zeroDbl(){var e;var t;var r;if(this.zOne){var i=this.x.redSqr();var n=this.y.redSqr();var a=n.redSqr();var s=this.x.redAdd(n).redSqr().redISub(i).redISub(a);s=s.redIAdd(s);var o=i.redAdd(i).redIAdd(i);var h=o.redSqr().redISub(s).redISub(s);var u=a.redIAdd(a);u=u.redIAdd(u);u=u.redIAdd(u);e=h;t=o.redMul(s.redISub(h)).redISub(u);r=this.y.redAdd(this.y)}else{var d=this.x.redSqr();var c=this.y.redSqr();var l=c.redSqr();var p=this.x.redAdd(c).redSqr().redISub(d).redISub(l);p=p.redIAdd(p);var v=d.redAdd(d).redIAdd(d);var b=v.redSqr();var m=l.redIAdd(l);m=m.redIAdd(m);m=m.redIAdd(m);e=b.redISub(p).redISub(p);t=v.redMul(p.redISub(e)).redISub(m);r=this.y.redMul(this.z);r=r.redIAdd(r)}return this.curve.jpoint(e,t,r)};JPoint.prototype._threeDbl=function _threeDbl(){var e;var t;var r;if(this.zOne){var i=this.x.redSqr();var n=this.y.redSqr();var a=n.redSqr();var s=this.x.redAdd(n).redSqr().redISub(i).redISub(a);s=s.redIAdd(s);var o=i.redAdd(i).redIAdd(i).redIAdd(this.curve.a);var h=o.redSqr().redISub(s).redISub(s);e=h;var u=a.redIAdd(a);u=u.redIAdd(u);u=u.redIAdd(u);t=o.redMul(s.redISub(h)).redISub(u);r=this.y.redAdd(this.y)}else{var d=this.z.redSqr();var c=this.y.redSqr();var l=this.x.redMul(c);var p=this.x.redSub(d).redMul(this.x.redAdd(d));p=p.redAdd(p).redIAdd(p);var v=l.redIAdd(l);v=v.redIAdd(v);var b=v.redAdd(v);e=p.redSqr().redISub(b);r=this.y.redAdd(this.z).redSqr().redISub(c).redISub(d);var m=c.redSqr();m=m.redIAdd(m);m=m.redIAdd(m);m=m.redIAdd(m);t=p.redMul(v.redISub(e)).redISub(m)}return this.curve.jpoint(e,t,r)};JPoint.prototype._dbl=function _dbl(){var e=this.curve.a;var t=this.x;var r=this.y;var i=this.z;var n=i.redSqr().redSqr();var a=t.redSqr();var s=r.redSqr();var o=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(n));var h=t.redAdd(t);h=h.redIAdd(h);var u=h.redMul(s);var d=o.redSqr().redISub(u.redAdd(u));var c=u.redISub(d);var l=s.redSqr();l=l.redIAdd(l);l=l.redIAdd(l);l=l.redIAdd(l);var p=o.redMul(c).redISub(l);var v=r.redAdd(r).redMul(i);return this.curve.jpoint(d,p,v)};JPoint.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr();var t=this.y.redSqr();var r=this.z.redSqr();var i=t.redSqr();var n=e.redAdd(e).redIAdd(e);var a=n.redSqr();var s=this.x.redAdd(t).redSqr().redISub(e).redISub(i);s=s.redIAdd(s);s=s.redAdd(s).redIAdd(s);s=s.redISub(a);var o=s.redSqr();var h=i.redIAdd(i);h=h.redIAdd(h);h=h.redIAdd(h);h=h.redIAdd(h);var u=n.redIAdd(s).redSqr().redISub(a).redISub(o).redISub(h);var d=t.redMul(u);d=d.redIAdd(d);d=d.redIAdd(d);var c=this.x.redMul(o).redISub(d);c=c.redIAdd(c);c=c.redIAdd(c);var l=this.y.redMul(u.redMul(h.redISub(u)).redISub(s.redMul(o)));l=l.redIAdd(l);l=l.redIAdd(l);l=l.redIAdd(l);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(o);return this.curve.jpoint(c,l,p)};JPoint.prototype.mul=function mul(e,t){e=new n(e,t);return this.curve._wnafMul(this,e)};JPoint.prototype.eq=function eq(e){if(e.type===\"affine\")return this.eq(e.toJ());if(this===e)return true;var t=this.z.redSqr();var r=e.z.redSqr();if(this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0)!==0)return false;var i=t.redMul(this.z);var n=r.redMul(e.z);return this.y.redMul(n).redISub(e.y.redMul(i)).cmpn(0)===0};JPoint.prototype.eqXToP=function eqXToP(e){var t=this.z.redSqr();var r=e.toRed(this.curve.red).redMul(t);if(this.x.cmp(r)===0)return true;var i=e.clone();var n=this.curve.redN.redMul(t);for(;;){i.iadd(this.curve.n);if(i.cmp(this.curve.p)>=0)return false;r.redIAdd(n);if(this.x.cmp(r)===0)return true}};JPoint.prototype.inspect=function inspect(){if(this.isInfinity())return\"<EC JPoint Infinity>\";return\"<EC JPoint x: \"+this.x.toString(16,2)+\" y: \"+this.y.toString(16,2)+\" z: \"+this.z.toString(16,2)+\">\"};JPoint.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0}},6226:function(e,t,r){\"use strict\";var i=t;var n=r(7028);var a=r(9359);var s=r(4401);var o=s.assert;function PresetCurve(e){if(e.type===\"short\")this.curve=new a.short(e);else if(e.type===\"edwards\")this.curve=new a.edwards(e);else this.curve=new a.mont(e);this.g=this.curve.g;this.n=this.curve.n;this.hash=e.hash;o(this.g.validate(),\"Invalid curve\");o(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}i.PresetCurve=PresetCurve;function defineCurve(e,t){Object.defineProperty(i,e,{configurable:true,enumerable:true,get:function(){var r=new PresetCurve(t);Object.defineProperty(i,e,{configurable:true,enumerable:true,value:r});return r}})}defineCurve(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:n.sha256,gRed:false,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]});defineCurve(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:n.sha256,gRed:false,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]});defineCurve(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:n.sha256,gRed:false,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]});defineCurve(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f \"+\"5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 \"+\"f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:n.sha384,gRed:false,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 \"+\"5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 \"+\"0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]});defineCurve(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b \"+\"99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd \"+\"3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff \"+\"ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 \"+\"f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:n.sha512,gRed:false,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 \"+\"053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 \"+\"a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 \"+\"579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 \"+\"3fad0761 353c7086 a272c240 88be9476 9fd16650\"]});defineCurve(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:n.sha256,gRed:false,g:[\"9\"]});defineCurve(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:n.sha256,gRed:false,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});var h;try{h=r(9702)}catch(e){h=undefined}defineCurve(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:n.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:false,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",h]})},4088:function(e,t,r){\"use strict\";var i=r(711);var n=r(4910);var a=r(4401);var s=r(6226);var o=r(3500);var h=a.assert;var u=r(4724);var d=r(7526);function EC(e){if(!(this instanceof EC))return new EC(e);if(typeof e===\"string\"){h(s.hasOwnProperty(e),\"Unknown curve \"+e);e=s[e]}if(e instanceof s.PresetCurve)e={curve:e};this.curve=e.curve.curve;this.n=this.curve.n;this.nh=this.n.ushrn(1);this.g=this.curve.g;this.g=e.curve.g;this.g.precompute(e.curve.n.bitLength()+1);this.hash=e.hash||e.curve.hash}e.exports=EC;EC.prototype.keyPair=function keyPair(e){return new u(this,e)};EC.prototype.keyFromPrivate=function keyFromPrivate(e,t){return u.fromPrivate(this,e,t)};EC.prototype.keyFromPublic=function keyFromPublic(e,t){return u.fromPublic(this,e,t)};EC.prototype.genKeyPair=function genKeyPair(e){if(!e)e={};var t=new n({hash:this.hash,pers:e.pers,persEnc:e.persEnc||\"utf8\",entropy:e.entropy||o(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||\"utf8\",nonce:this.n.toArray()});var r=this.n.byteLength();var a=this.n.sub(new i(2));do{var s=new i(t.generate(r));if(s.cmp(a)>0)continue;s.iaddn(1);return this.keyFromPrivate(s)}while(true)};EC.prototype._truncateToN=function truncateToN(e,t){var r=e.byteLength()*8-this.n.bitLength();if(r>0)e=e.ushrn(r);if(!t&&e.cmp(this.n)>=0)return e.sub(this.n);else return e};EC.prototype.sign=function sign(e,t,r,a){if(typeof r===\"object\"){a=r;r=null}if(!a)a={};t=this.keyFromPrivate(t,r);e=this._truncateToN(new i(e,16));var s=this.n.byteLength();var o=t.getPrivate().toArray(\"be\",s);var h=e.toArray(\"be\",s);var u=new n({hash:this.hash,entropy:o,nonce:h,pers:a.pers,persEnc:a.persEnc||\"utf8\"});var c=this.n.sub(new i(1));for(var l=0;true;l++){var p=a.k?a.k(l):new i(u.generate(this.n.byteLength()));p=this._truncateToN(p,true);if(p.cmpn(1)<=0||p.cmp(c)>=0)continue;var v=this.g.mul(p);if(v.isInfinity())continue;var b=v.getX();var m=b.umod(this.n);if(m.cmpn(0)===0)continue;var y=p.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));y=y.umod(this.n);if(y.cmpn(0)===0)continue;var g=(v.getY().isOdd()?1:0)|(b.cmp(m)!==0?2:0);if(a.canonical&&y.cmp(this.nh)>0){y=this.n.sub(y);g^=1}return new d({r:m,s:y,recoveryParam:g})}};EC.prototype.verify=function verify(e,t,r,n){e=this._truncateToN(new i(e,16));r=this.keyFromPublic(r,n);t=new d(t,\"hex\");var a=t.r;var s=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;var o=s.invm(this.n);var h=o.mul(e).umod(this.n);var u=o.mul(a).umod(this.n);if(!this.curve._maxwellTrick){var c=this.g.mulAdd(h,r.getPublic(),u);if(c.isInfinity())return false;return c.getX().umod(this.n).cmp(a)===0}var c=this.g.jmulAdd(h,r.getPublic(),u);if(c.isInfinity())return false;return c.eqXToP(a)};EC.prototype.recoverPubKey=function(e,t,r,n){h((3&r)===r,\"The recovery param is more than two bits\");t=new d(t,n);var a=this.n;var s=new i(e);var o=t.r;var u=t.s;var c=r&1;var l=r>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error(\"Unable to find sencond key candinate\");if(l)o=this.curve.pointFromX(o.add(this.curve.n),c);else o=this.curve.pointFromX(o,c);var p=t.r.invm(a);var v=a.sub(s).mul(p).umod(a);var b=u.mul(p).umod(a);return this.g.mulAdd(v,o,b)};EC.prototype.getKeyRecoveryParam=function(e,t,r,i){t=new d(t,i);if(t.recoveryParam!==null)return t.recoveryParam;for(var n=0;n<4;n++){var a;try{a=this.recoverPubKey(e,t,n)}catch(e){continue}if(a.eq(r))return n}throw new Error(\"Unable to find valid recovery factor\")}},4724:function(e,t,r){\"use strict\";var i=r(711);var n=r(4401);var a=n.assert;function KeyPair(e,t){this.ec=e;this.priv=null;this.pub=null;if(t.priv)this._importPrivate(t.priv,t.privEnc);if(t.pub)this._importPublic(t.pub,t.pubEnc)}e.exports=KeyPair;KeyPair.fromPublic=function fromPublic(e,t,r){if(t instanceof KeyPair)return t;return new KeyPair(e,{pub:t,pubEnc:r})};KeyPair.fromPrivate=function fromPrivate(e,t,r){if(t instanceof KeyPair)return t;return new KeyPair(e,{priv:t,privEnc:r})};KeyPair.prototype.validate=function validate(){var e=this.getPublic();if(e.isInfinity())return{result:false,reason:\"Invalid public key\"};if(!e.validate())return{result:false,reason:\"Public key is not a point\"};if(!e.mul(this.ec.curve.n).isInfinity())return{result:false,reason:\"Public key * N != O\"};return{result:true,reason:null}};KeyPair.prototype.getPublic=function getPublic(e,t){if(typeof e===\"string\"){t=e;e=null}if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!t)return this.pub;return this.pub.encode(t,e)};KeyPair.prototype.getPrivate=function getPrivate(e){if(e===\"hex\")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function _importPrivate(e,t){this.priv=new i(e,t||16);this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function _importPublic(e,t){if(e.x||e.y){if(this.ec.curve.type===\"mont\"){a(e.x,\"Need x coordinate\")}else if(this.ec.curve.type===\"short\"||this.ec.curve.type===\"edwards\"){a(e.x&&e.y,\"Need both x and y coordinate\")}this.pub=this.ec.curve.point(e.x,e.y);return}this.pub=this.ec.curve.decodePoint(e,t)};KeyPair.prototype.derive=function derive(e){return e.mul(this.priv).getX()};KeyPair.prototype.sign=function sign(e,t,r){return this.ec.sign(e,this,t,r)};KeyPair.prototype.verify=function verify(e,t){return this.ec.verify(e,t,this)};KeyPair.prototype.inspect=function inspect(){return\"<Key priv: \"+(this.priv&&this.priv.toString(16,2))+\" pub: \"+(this.pub&&this.pub.inspect())+\" >\"}},7526:function(e,t,r){\"use strict\";var i=r(711);var n=r(4401);var a=n.assert;function Signature(e,t){if(e instanceof Signature)return e;if(this._importDER(e,t))return;a(e.r&&e.s,\"Signature without r or s\");this.r=new i(e.r,16);this.s=new i(e.s,16);if(e.recoveryParam===undefined)this.recoveryParam=null;else this.recoveryParam=e.recoveryParam}e.exports=Signature;function Position(){this.place=0}function getLength(e,t){var r=e[t.place++];if(!(r&128)){return r}var i=r&15;if(i===0||i>4){return false}var n=0;for(var a=0,s=t.place;a<i;a++,s++){n<<=8;n|=e[s];n>>>=0}if(n<=127){return false}t.place=s;return n}function rmPadding(e){var t=0;var r=e.length-1;while(!e[t]&&!(e[t+1]&128)&&t<r){t++}if(t===0){return e}return e.slice(t)}Signature.prototype._importDER=function _importDER(e,t){e=n.toArray(e,t);var r=new Position;if(e[r.place++]!==48){return false}var a=getLength(e,r);if(a===false){return false}if(a+r.place!==e.length){return false}if(e[r.place++]!==2){return false}var s=getLength(e,r);if(s===false){return false}var o=e.slice(r.place,s+r.place);r.place+=s;if(e[r.place++]!==2){return false}var h=getLength(e,r);if(h===false){return false}if(e.length!==h+r.place){return false}var u=e.slice(r.place,h+r.place);if(o[0]===0){if(o[1]&128){o=o.slice(1)}else{return false}}if(u[0]===0){if(u[1]&128){u=u.slice(1)}else{return false}}this.r=new i(o);this.s=new i(u);this.recoveryParam=null;return true};function constructLength(e,t){if(t<128){e.push(t);return}var r=1+(Math.log(t)/Math.LN2>>>3);e.push(r|128);while(--r){e.push(t>>>(r<<3)&255)}e.push(t)}Signature.prototype.toDER=function toDER(e){var t=this.r.toArray();var r=this.s.toArray();if(t[0]&128)t=[0].concat(t);if(r[0]&128)r=[0].concat(r);t=rmPadding(t);r=rmPadding(r);while(!r[0]&&!(r[1]&128)){r=r.slice(1)}var i=[2];constructLength(i,t.length);i=i.concat(t);i.push(2);constructLength(i,r.length);var a=i.concat(r);var s=[48];constructLength(s,a.length);s=s.concat(a);return n.encode(s,e)}},8511:function(e,t,r){\"use strict\";var i=r(7028);var n=r(6226);var a=r(4401);var s=a.assert;var o=a.parseBytes;var h=r(9917);var u=r(9314);function EDDSA(e){s(e===\"ed25519\",\"only tested with ed25519 so far\");if(!(this instanceof EDDSA))return new EDDSA(e);var e=n[e].curve;this.curve=e;this.g=e.g;this.g.precompute(e.n.bitLength()+1);this.pointClass=e.point().constructor;this.encodingLength=Math.ceil(e.n.bitLength()/8);this.hash=i.sha512}e.exports=EDDSA;EDDSA.prototype.sign=function sign(e,t){e=o(e);var r=this.keyFromSecret(t);var i=this.hashInt(r.messagePrefix(),e);var n=this.g.mul(i);var a=this.encodePoint(n);var s=this.hashInt(a,r.pubBytes(),e).mul(r.priv());var h=i.add(s).umod(this.curve.n);return this.makeSignature({R:n,S:h,Rencoded:a})};EDDSA.prototype.verify=function verify(e,t,r){e=o(e);t=this.makeSignature(t);var i=this.keyFromPublic(r);var n=this.hashInt(t.Rencoded(),i.pubBytes(),e);var a=this.g.mul(t.S());var s=t.R().add(i.pub().mul(n));return s.eq(a)};EDDSA.prototype.hashInt=function hashInt(){var e=this.hash();for(var t=0;t<arguments.length;t++)e.update(arguments[t]);return a.intFromLE(e.digest()).umod(this.curve.n)};EDDSA.prototype.keyFromPublic=function keyFromPublic(e){return h.fromPublic(this,e)};EDDSA.prototype.keyFromSecret=function keyFromSecret(e){return h.fromSecret(this,e)};EDDSA.prototype.makeSignature=function makeSignature(e){if(e instanceof u)return e;return new u(this,e)};EDDSA.prototype.encodePoint=function encodePoint(e){var t=e.getY().toArray(\"le\",this.encodingLength);t[this.encodingLength-1]|=e.getX().isOdd()?128:0;return t};EDDSA.prototype.decodePoint=function decodePoint(e){e=a.parseBytes(e);var t=e.length-1;var r=e.slice(0,t).concat(e[t]&~128);var i=(e[t]&128)!==0;var n=a.intFromLE(r);return this.curve.pointFromY(n,i)};EDDSA.prototype.encodeInt=function encodeInt(e){return e.toArray(\"le\",this.encodingLength)};EDDSA.prototype.decodeInt=function decodeInt(e){return a.intFromLE(e)};EDDSA.prototype.isPoint=function isPoint(e){return e instanceof this.pointClass}},9917:function(e,t,r){\"use strict\";var i=r(4401);var n=i.assert;var a=i.parseBytes;var s=i.cachedProperty;function KeyPair(e,t){this.eddsa=e;this._secret=a(t.secret);if(e.isPoint(t.pub))this._pub=t.pub;else this._pubBytes=a(t.pub)}KeyPair.fromPublic=function fromPublic(e,t){if(t instanceof KeyPair)return t;return new KeyPair(e,{pub:t})};KeyPair.fromSecret=function fromSecret(e,t){if(t instanceof KeyPair)return t;return new KeyPair(e,{secret:t})};KeyPair.prototype.secret=function secret(){return this._secret};s(KeyPair,\"pubBytes\",(function pubBytes(){return this.eddsa.encodePoint(this.pub())}));s(KeyPair,\"pub\",(function pub(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())}));s(KeyPair,\"privBytes\",(function privBytes(){var e=this.eddsa;var t=this.hash();var r=e.encodingLength-1;var i=t.slice(0,e.encodingLength);i[0]&=248;i[r]&=127;i[r]|=64;return i}));s(KeyPair,\"priv\",(function priv(){return this.eddsa.decodeInt(this.privBytes())}));s(KeyPair,\"hash\",(function hash(){return this.eddsa.hash().update(this.secret()).digest()}));s(KeyPair,\"messagePrefix\",(function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength)}));KeyPair.prototype.sign=function sign(e){n(this._secret,\"KeyPair can only verify\");return this.eddsa.sign(e,this)};KeyPair.prototype.verify=function verify(e,t){return this.eddsa.verify(e,t,this)};KeyPair.prototype.getSecret=function getSecret(e){n(this._secret,\"KeyPair is public only\");return i.encode(this.secret(),e)};KeyPair.prototype.getPublic=function getPublic(e){return i.encode(this.pubBytes(),e)};e.exports=KeyPair},9314:function(e,t,r){\"use strict\";var i=r(711);var n=r(4401);var a=n.assert;var s=n.cachedProperty;var o=n.parseBytes;function Signature(e,t){this.eddsa=e;if(typeof t!==\"object\")t=o(t);if(Array.isArray(t)){t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}}a(t.R&&t.S,\"Signature without R or S\");if(e.isPoint(t.R))this._R=t.R;if(t.S instanceof i)this._S=t.S;this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded;this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(Signature,\"S\",(function S(){return this.eddsa.decodeInt(this.Sencoded())}));s(Signature,\"R\",(function R(){return this.eddsa.decodePoint(this.Rencoded())}));s(Signature,\"Rencoded\",(function Rencoded(){return this.eddsa.encodePoint(this.R())}));s(Signature,\"Sencoded\",(function Sencoded(){return this.eddsa.encodeInt(this.S())}));Signature.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded())};Signature.prototype.toHex=function toHex(){return n.encode(this.toBytes(),\"hex\").toUpperCase()};e.exports=Signature},9702:function(e){e.exports={doubles:{step:4,points:[[\"e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a\",\"f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821\"],[\"8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508\",\"11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf\"],[\"175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739\",\"d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695\"],[\"363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640\",\"4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9\"],[\"8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c\",\"4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36\"],[\"723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda\",\"96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f\"],[\"eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa\",\"5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999\"],[\"100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0\",\"cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09\"],[\"e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d\",\"9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d\"],[\"feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d\",\"e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088\"],[\"da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1\",\"9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d\"],[\"53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0\",\"5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8\"],[\"8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047\",\"10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a\"],[\"385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862\",\"283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453\"],[\"6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7\",\"7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160\"],[\"3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd\",\"56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0\"],[\"85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83\",\"7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6\"],[\"948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a\",\"53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589\"],[\"6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8\",\"bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17\"],[\"e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d\",\"4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda\"],[\"e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725\",\"7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd\"],[\"213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754\",\"4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2\"],[\"4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c\",\"17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6\"],[\"fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6\",\"6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f\"],[\"76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39\",\"c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01\"],[\"c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891\",\"893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3\"],[\"d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b\",\"febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f\"],[\"b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03\",\"2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7\"],[\"e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d\",\"eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78\"],[\"a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070\",\"7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1\"],[\"90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4\",\"e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150\"],[\"8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da\",\"662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82\"],[\"e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11\",\"1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc\"],[\"8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e\",\"efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b\"],[\"e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41\",\"2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51\"],[\"b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef\",\"67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45\"],[\"d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8\",\"db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120\"],[\"324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d\",\"648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84\"],[\"4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96\",\"35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d\"],[\"9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd\",\"ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d\"],[\"6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5\",\"9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8\"],[\"a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266\",\"40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8\"],[\"7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71\",\"34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac\"],[\"928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac\",\"c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f\"],[\"85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751\",\"1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962\"],[\"ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e\",\"493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907\"],[\"827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241\",\"c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec\"],[\"eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3\",\"be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d\"],[\"e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f\",\"4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414\"],[\"1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19\",\"aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd\"],[\"146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be\",\"b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0\"],[\"fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9\",\"6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811\"],[\"da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2\",\"8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1\"],[\"a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13\",\"7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c\"],[\"174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c\",\"ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73\"],[\"959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba\",\"2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd\"],[\"d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151\",\"e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405\"],[\"64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073\",\"d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589\"],[\"8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458\",\"38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e\"],[\"13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b\",\"69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27\"],[\"bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366\",\"d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1\"],[\"8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa\",\"40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482\"],[\"8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0\",\"620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945\"],[\"dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787\",\"7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573\"],[\"f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e\",\"ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82\"]]},naf:{wnd:7,points:[[\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\",\"388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672\"],[\"2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4\",\"d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6\"],[\"5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc\",\"6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da\"],[\"acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe\",\"cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37\"],[\"774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb\",\"d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b\"],[\"f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8\",\"ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81\"],[\"d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e\",\"581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58\"],[\"defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34\",\"4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77\"],[\"2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c\",\"85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a\"],[\"352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5\",\"321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c\"],[\"2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f\",\"2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67\"],[\"9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714\",\"73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402\"],[\"daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729\",\"a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55\"],[\"c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db\",\"2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482\"],[\"6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4\",\"e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82\"],[\"1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5\",\"b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396\"],[\"605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479\",\"2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49\"],[\"62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d\",\"80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf\"],[\"80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f\",\"1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a\"],[\"7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb\",\"d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7\"],[\"d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9\",\"eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933\"],[\"49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963\",\"758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a\"],[\"77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74\",\"958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6\"],[\"f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530\",\"e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37\"],[\"463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b\",\"5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e\"],[\"f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247\",\"cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6\"],[\"caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1\",\"cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476\"],[\"2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120\",\"4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40\"],[\"7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435\",\"91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61\"],[\"754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18\",\"673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683\"],[\"e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8\",\"59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5\"],[\"186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb\",\"3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b\"],[\"df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f\",\"55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417\"],[\"5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143\",\"efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868\"],[\"290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba\",\"e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a\"],[\"af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45\",\"f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6\"],[\"766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a\",\"744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996\"],[\"59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e\",\"c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e\"],[\"f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8\",\"e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d\"],[\"7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c\",\"30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2\"],[\"948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519\",\"e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e\"],[\"7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab\",\"100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437\"],[\"3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca\",\"ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311\"],[\"d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf\",\"8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4\"],[\"1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610\",\"68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575\"],[\"733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4\",\"f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d\"],[\"15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c\",\"d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d\"],[\"a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940\",\"edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629\"],[\"e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980\",\"a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06\"],[\"311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3\",\"66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374\"],[\"34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf\",\"9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee\"],[\"f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63\",\"4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1\"],[\"d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448\",\"fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b\"],[\"32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf\",\"5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661\"],[\"7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5\",\"8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6\"],[\"ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6\",\"8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e\"],[\"16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5\",\"5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d\"],[\"eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99\",\"f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc\"],[\"78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51\",\"f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4\"],[\"494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5\",\"42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c\"],[\"a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5\",\"204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b\"],[\"c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997\",\"4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913\"],[\"841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881\",\"73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154\"],[\"5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5\",\"39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865\"],[\"36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66\",\"d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc\"],[\"336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726\",\"ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224\"],[\"8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede\",\"6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e\"],[\"1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94\",\"60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6\"],[\"85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31\",\"3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511\"],[\"29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51\",\"b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b\"],[\"a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252\",\"ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2\"],[\"4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5\",\"cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c\"],[\"d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b\",\"6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3\"],[\"ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4\",\"322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d\"],[\"af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f\",\"6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700\"],[\"e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889\",\"2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4\"],[\"591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246\",\"b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196\"],[\"11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984\",\"998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4\"],[\"3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a\",\"b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257\"],[\"cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030\",\"bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13\"],[\"c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197\",\"6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096\"],[\"c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593\",\"c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38\"],[\"a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef\",\"21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f\"],[\"347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38\",\"60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448\"],[\"da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a\",\"49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a\"],[\"c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111\",\"5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4\"],[\"4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502\",\"7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437\"],[\"3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea\",\"be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7\"],[\"cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26\",\"8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d\"],[\"b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986\",\"39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a\"],[\"d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e\",\"62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54\"],[\"48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4\",\"25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77\"],[\"dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda\",\"ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517\"],[\"6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859\",\"cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10\"],[\"e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f\",\"f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125\"],[\"eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c\",\"6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e\"],[\"13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942\",\"fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1\"],[\"ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a\",\"1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2\"],[\"b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80\",\"5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423\"],[\"ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d\",\"438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8\"],[\"8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1\",\"cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758\"],[\"52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63\",\"c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375\"],[\"e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352\",\"6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d\"],[\"7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193\",\"ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec\"],[\"5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00\",\"9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0\"],[\"32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58\",\"ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c\"],[\"e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7\",\"d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4\"],[\"8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8\",\"c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f\"],[\"4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e\",\"67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649\"],[\"3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d\",\"cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826\"],[\"674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b\",\"299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5\"],[\"d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f\",\"f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87\"],[\"30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6\",\"462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b\"],[\"be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297\",\"62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc\"],[\"93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a\",\"7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c\"],[\"b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c\",\"ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f\"],[\"d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52\",\"4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a\"],[\"d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb\",\"bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46\"],[\"463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065\",\"bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f\"],[\"7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917\",\"603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03\"],[\"74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9\",\"cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08\"],[\"30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3\",\"553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8\"],[\"9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57\",\"712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373\"],[\"176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66\",\"ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3\"],[\"75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8\",\"9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8\"],[\"809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721\",\"9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1\"],[\"1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180\",\"4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9\"]]}}},4401:function(e,t,r){\"use strict\";var i=t;var n=r(711);var a=r(3523);var s=r(6545);i.assert=a;i.toArray=s.toArray;i.zero2=s.zero2;i.toHex=s.toHex;i.encode=s.encode;function getNAF(e,t,r){var i=new Array(Math.max(e.bitLength(),r)+1);i.fill(0);var n=1<<t+1;var a=e.clone();for(var s=0;s<i.length;s++){var o;var h=a.andln(n-1);if(a.isOdd()){if(h>(n>>1)-1)o=(n>>1)-h;else o=h;a.isubn(o)}else{o=0}i[s]=o;a.iushrn(1)}return i}i.getNAF=getNAF;function getJSF(e,t){var r=[[],[]];e=e.clone();t=t.clone();var i=0;var n=0;while(e.cmpn(-i)>0||t.cmpn(-n)>0){var a=e.andln(3)+i&3;var s=t.andln(3)+n&3;if(a===3)a=-1;if(s===3)s=-1;var o;if((a&1)===0){o=0}else{var h=e.andln(7)+i&7;if((h===3||h===5)&&s===2)o=-a;else o=a}r[0].push(o);var u;if((s&1)===0){u=0}else{var h=t.andln(7)+n&7;if((h===3||h===5)&&a===2)u=-s;else u=s}r[1].push(u);if(2*i===o+1)i=1-i;if(2*n===u+1)n=1-n;e.iushrn(1);t.iushrn(1)}return r}i.getJSF=getJSF;function cachedProperty(e,t,r){var i=\"_\"+t;e.prototype[t]=function cachedProperty(){return this[i]!==undefined?this[i]:this[i]=r.call(this)}}i.cachedProperty=cachedProperty;function parseBytes(e){return typeof e===\"string\"?i.toArray(e,\"hex\"):e}i.parseBytes=parseBytes;function intFromLE(e){return new n(e,\"hex\",\"le\")}i.intFromLE=intFromLE},8368:function(e,t,r){var i=r(6911).Buffer;var n=r(3533);function EVP_BytesToKey(e,t,r,a){if(!i.isBuffer(e))e=i.from(e,\"binary\");if(t){if(!i.isBuffer(t))t=i.from(t,\"binary\");if(t.length!==8)throw new RangeError(\"salt should be Buffer with 8 byte length\")}var s=r/8;var o=i.alloc(s);var h=i.alloc(a||0);var u=i.alloc(0);while(s>0||a>0){var d=new n;d.update(u);d.update(e);if(t)d.update(t);u=d.digest();var c=0;if(s>0){var l=o.length-s;c=Math.min(s,u.length);u.copy(o,l,0,c);s-=c}if(c<u.length&&a>0){var p=h.length-a;var v=Math.min(a,u.length-c);u.copy(h,p,c,c+v);a-=v}}u.fill(0);return{key:o,iv:h}}e.exports=EVP_BytesToKey},9029:function(e,t,r){\"use strict\";var i=r(6911).Buffer;var n=r(3726).Transform;var a=r(3782);function throwIfNotStringOrBuffer(e,t){if(!i.isBuffer(e)&&typeof e!==\"string\"){throw new TypeError(t+\" must be a string or a buffer\")}}function HashBase(e){n.call(this);this._block=i.allocUnsafe(e);this._blockSize=e;this._blockOffset=0;this._length=[0,0,0,0];this._finalized=false}a(HashBase,n);HashBase.prototype._transform=function(e,t,r){var i=null;try{this.update(e,t)}catch(e){i=e}r(i)};HashBase.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)};HashBase.prototype.update=function(e,t){throwIfNotStringOrBuffer(e,\"Data\");if(this._finalized)throw new Error(\"Digest already called\");if(!i.isBuffer(e))e=i.from(e,t);var r=this._block;var n=0;while(this._blockOffset+e.length-n>=this._blockSize){for(var a=this._blockOffset;a<this._blockSize;)r[a++]=e[n++];this._update();this._blockOffset=0}while(n<e.length)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s){this._length[s]+=o;o=this._length[s]/4294967296|0;if(o>0)this._length[s]-=4294967296*o}return this};HashBase.prototype._update=function(){throw new Error(\"_update is not implemented\")};HashBase.prototype.digest=function(e){if(this._finalized)throw new Error(\"Digest already called\");this._finalized=true;var t=this._digest();if(e!==undefined)t=t.toString(e);this._block.fill(0);this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};HashBase.prototype._digest=function(){throw new Error(\"_digest is not implemented\")};e.exports=HashBase},7028:function(e,t,r){var i=t;i.utils=r(263);i.common=r(1330);i.sha=r(301);i.ripemd=r(3079);i.hmac=r(3092);i.sha1=i.sha.sha1;i.sha256=i.sha.sha256;i.sha224=i.sha.sha224;i.sha384=i.sha.sha384;i.sha512=i.sha.sha512;i.ripemd160=i.ripemd.ripemd160},1330:function(e,t,r){\"use strict\";var i=r(263);var n=r(3523);function BlockHash(){this.pending=null;this.pendingTotal=0;this.blockSize=this.constructor.blockSize;this.outSize=this.constructor.outSize;this.hmacStrength=this.constructor.hmacStrength;this.padLength=this.constructor.padLength/8;this.endian=\"big\";this._delta8=this.blockSize/8;this._delta32=this.blockSize/32}t.BlockHash=BlockHash;BlockHash.prototype.update=function update(e,t){e=i.toArray(e,t);if(!this.pending)this.pending=e;else this.pending=this.pending.concat(e);this.pendingTotal+=e.length;if(this.pending.length>=this._delta8){e=this.pending;var r=e.length%this._delta8;this.pending=e.slice(e.length-r,e.length);if(this.pending.length===0)this.pending=null;e=i.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this};BlockHash.prototype.digest=function digest(e){this.update(this._pad());n(this.pending===null);return this._digest(e)};BlockHash.prototype._pad=function pad(){var e=this.pendingTotal;var t=this._delta8;var r=t-(e+this.padLength)%t;var i=new Array(r+this.padLength);i[0]=128;for(var n=1;n<r;n++)i[n]=0;e<<=3;if(this.endian===\"big\"){for(var a=8;a<this.padLength;a++)i[n++]=0;i[n++]=0;i[n++]=0;i[n++]=0;i[n++]=0;i[n++]=e>>>24&255;i[n++]=e>>>16&255;i[n++]=e>>>8&255;i[n++]=e&255}else{i[n++]=e&255;i[n++]=e>>>8&255;i[n++]=e>>>16&255;i[n++]=e>>>24&255;i[n++]=0;i[n++]=0;i[n++]=0;i[n++]=0;for(a=8;a<this.padLength;a++)i[n++]=0}return i}},3092:function(e,t,r){\"use strict\";var i=r(263);var n=r(3523);function Hmac(e,t,r){if(!(this instanceof Hmac))return new Hmac(e,t,r);this.Hash=e;this.blockSize=e.blockSize/8;this.outSize=e.outSize/8;this.inner=null;this.outer=null;this._init(i.toArray(t,r))}e.exports=Hmac;Hmac.prototype._init=function init(e){if(e.length>this.blockSize)e=(new this.Hash).update(e).digest();n(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;this.inner=(new this.Hash).update(e);for(t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)};Hmac.prototype.update=function update(e,t){this.inner.update(e,t);return this};Hmac.prototype.digest=function digest(e){this.outer.update(this.inner.digest());return this.outer.digest(e)}},3079:function(e,t,r){\"use strict\";var i=r(263);var n=r(1330);var a=i.rotl32;var s=i.sum32;var o=i.sum32_3;var h=i.sum32_4;var u=n.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;u.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.endian=\"little\"}i.inherits(RIPEMD160,u);t.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.padLength=64;RIPEMD160.prototype._update=function update(e,t){var r=this.h[0];var i=this.h[1];var n=this.h[2];var u=this.h[3];var v=this.h[4];var b=r;var m=i;var y=n;var g=u;var _=v;for(var w=0;w<80;w++){var M=s(a(h(r,f(w,i,n,u),e[d[w]+t],K(w)),l[w]),v);r=v;v=u;u=a(n,10);n=i;i=M;M=s(a(h(b,f(79-w,m,y,g),e[c[w]+t],Kh(w)),p[w]),_);b=_;_=g;g=a(y,10);y=m;m=M}M=o(this.h[1],n,g);this.h[1]=o(this.h[2],u,_);this.h[2]=o(this.h[3],v,b);this.h[3]=o(this.h[4],r,m);this.h[4]=o(this.h[0],i,y);this.h[0]=M};RIPEMD160.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h,\"little\");else return i.split32(this.h,\"little\")};function f(e,t,r,i){if(e<=15)return t^r^i;else if(e<=31)return t&r|~t&i;else if(e<=47)return(t|~r)^i;else if(e<=63)return t&i|r&~i;else return t^(r|~i)}function K(e){if(e<=15)return 0;else if(e<=31)return 1518500249;else if(e<=47)return 1859775393;else if(e<=63)return 2400959708;else return 2840853838}function Kh(e){if(e<=15)return 1352829926;else if(e<=31)return 1548603684;else if(e<=47)return 1836072691;else if(e<=63)return 2053994217;else return 0}var d=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13];var c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11];var l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6];var p=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},301:function(e,t,r){\"use strict\";t.sha1=r(2742);t.sha224=r(7105);t.sha256=r(1525);t.sha384=r(9948);t.sha512=r(1319)},2742:function(e,t,r){\"use strict\";var i=r(263);var n=r(1330);var a=r(2975);var s=i.rotl32;var o=i.sum32;var h=i.sum32_5;var u=a.ft_1;var d=n.BlockHash;var c=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;d.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.W=new Array(80)}i.inherits(SHA1,d);e.exports=SHA1;SHA1.blockSize=512;SHA1.outSize=160;SHA1.hmacStrength=80;SHA1.padLength=64;SHA1.prototype._update=function _update(e,t){var r=this.W;for(var i=0;i<16;i++)r[i]=e[t+i];for(;i<r.length;i++)r[i]=s(r[i-3]^r[i-8]^r[i-14]^r[i-16],1);var n=this.h[0];var a=this.h[1];var d=this.h[2];var l=this.h[3];var p=this.h[4];for(i=0;i<r.length;i++){var v=~~(i/20);var b=h(s(n,5),u(v,a,d,l),p,r[i],c[v]);p=l;l=d;d=s(a,30);a=n;n=b}this.h[0]=o(this.h[0],n);this.h[1]=o(this.h[1],a);this.h[2]=o(this.h[2],d);this.h[3]=o(this.h[3],l);this.h[4]=o(this.h[4],p)};SHA1.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h,\"big\");else return i.split32(this.h,\"big\")}},7105:function(e,t,r){\"use strict\";var i=r(263);var n=r(1525);function SHA224(){if(!(this instanceof SHA224))return new SHA224;n.call(this);this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(SHA224,n);e.exports=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.padLength=64;SHA224.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h.slice(0,7),\"big\");else return i.split32(this.h.slice(0,7),\"big\")}},1525:function(e,t,r){\"use strict\";var i=r(263);var n=r(1330);var a=r(2975);var s=r(3523);var o=i.sum32;var h=i.sum32_4;var u=i.sum32_5;var d=a.ch32;var c=a.maj32;var l=a.s0_256;var p=a.s1_256;var v=a.g0_256;var b=a.g1_256;var m=n.BlockHash;var y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function SHA256(){if(!(this instanceof SHA256))return new SHA256;m.call(this);this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];this.k=y;this.W=new Array(64)}i.inherits(SHA256,m);e.exports=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.padLength=64;SHA256.prototype._update=function _update(e,t){var r=this.W;for(var i=0;i<16;i++)r[i]=e[t+i];for(;i<r.length;i++)r[i]=h(b(r[i-2]),r[i-7],v(r[i-15]),r[i-16]);var n=this.h[0];var a=this.h[1];var m=this.h[2];var y=this.h[3];var g=this.h[4];var _=this.h[5];var w=this.h[6];var M=this.h[7];s(this.k.length===r.length);for(i=0;i<r.length;i++){var B=u(M,p(g),d(g,_,w),this.k[i],r[i]);var E=o(l(n),c(n,a,m));M=w;w=_;_=g;g=o(y,B);y=m;m=a;a=n;n=o(B,E)}this.h[0]=o(this.h[0],n);this.h[1]=o(this.h[1],a);this.h[2]=o(this.h[2],m);this.h[3]=o(this.h[3],y);this.h[4]=o(this.h[4],g);this.h[5]=o(this.h[5],_);this.h[6]=o(this.h[6],w);this.h[7]=o(this.h[7],M)};SHA256.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h,\"big\");else return i.split32(this.h,\"big\")}},9948:function(e,t,r){\"use strict\";var i=r(263);var n=r(1319);function SHA384(){if(!(this instanceof SHA384))return new SHA384;n.call(this);this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}i.inherits(SHA384,n);e.exports=SHA384;SHA384.blockSize=1024;SHA384.outSize=384;SHA384.hmacStrength=192;SHA384.padLength=128;SHA384.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h.slice(0,12),\"big\");else return i.split32(this.h.slice(0,12),\"big\")}},1319:function(e,t,r){\"use strict\";var i=r(263);var n=r(1330);var a=r(3523);var s=i.rotr64_hi;var o=i.rotr64_lo;var h=i.shr64_hi;var u=i.shr64_lo;var d=i.sum64;var c=i.sum64_hi;var l=i.sum64_lo;var p=i.sum64_4_hi;var v=i.sum64_4_lo;var b=i.sum64_5_hi;var m=i.sum64_5_lo;var y=n.BlockHash;var g=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function SHA512(){if(!(this instanceof SHA512))return new SHA512;y.call(this);this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209];this.k=g;this.W=new Array(160)}i.inherits(SHA512,y);e.exports=SHA512;SHA512.blockSize=1024;SHA512.outSize=512;SHA512.hmacStrength=192;SHA512.padLength=128;SHA512.prototype._prepareBlock=function _prepareBlock(e,t){var r=this.W;for(var i=0;i<32;i++)r[i]=e[t+i];for(;i<r.length;i+=2){var n=g1_512_hi(r[i-4],r[i-3]);var a=g1_512_lo(r[i-4],r[i-3]);var s=r[i-14];var o=r[i-13];var h=g0_512_hi(r[i-30],r[i-29]);var u=g0_512_lo(r[i-30],r[i-29]);var d=r[i-32];var c=r[i-31];r[i]=p(n,a,s,o,h,u,d,c);r[i+1]=v(n,a,s,o,h,u,d,c)}};SHA512.prototype._update=function _update(e,t){this._prepareBlock(e,t);var r=this.W;var i=this.h[0];var n=this.h[1];var s=this.h[2];var o=this.h[3];var h=this.h[4];var u=this.h[5];var p=this.h[6];var v=this.h[7];var y=this.h[8];var g=this.h[9];var _=this.h[10];var w=this.h[11];var M=this.h[12];var B=this.h[13];var E=this.h[14];var k=this.h[15];a(this.k.length===r.length);for(var A=0;A<r.length;A+=2){var N=E;var P=k;var x=s1_512_hi(y,g);var I=s1_512_lo(y,g);var C=ch64_hi(y,g,_,w,M,B);var D=ch64_lo(y,g,_,w,M,B);var T=this.k[A];var j=this.k[A+1];var q=r[A];var O=r[A+1];var H=b(N,P,x,I,C,D,T,j,q,O);var L=m(N,P,x,I,C,D,T,j,q,O);N=s0_512_hi(i,n);P=s0_512_lo(i,n);x=maj64_hi(i,n,s,o,h,u);I=maj64_lo(i,n,s,o,h,u);var z=c(N,P,x,I);var F=l(N,P,x,I);E=M;k=B;M=_;B=w;_=y;w=g;y=c(p,v,H,L);g=l(v,v,H,L);p=h;v=u;h=s;u=o;s=i;o=n;i=c(H,L,z,F);n=l(H,L,z,F)}d(this.h,0,i,n);d(this.h,2,s,o);d(this.h,4,h,u);d(this.h,6,p,v);d(this.h,8,y,g);d(this.h,10,_,w);d(this.h,12,M,B);d(this.h,14,E,k)};SHA512.prototype._digest=function digest(e){if(e===\"hex\")return i.toHex32(this.h,\"big\");else return i.split32(this.h,\"big\")};function ch64_hi(e,t,r,i,n){var a=e&r^~e&n;if(a<0)a+=4294967296;return a}function ch64_lo(e,t,r,i,n,a){var s=t&i^~t&a;if(s<0)s+=4294967296;return s}function maj64_hi(e,t,r,i,n){var a=e&r^e&n^r&n;if(a<0)a+=4294967296;return a}function maj64_lo(e,t,r,i,n,a){var s=t&i^t&a^i&a;if(s<0)s+=4294967296;return s}function s0_512_hi(e,t){var r=s(e,t,28);var i=s(t,e,2);var n=s(t,e,7);var a=r^i^n;if(a<0)a+=4294967296;return a}function s0_512_lo(e,t){var r=o(e,t,28);var i=o(t,e,2);var n=o(t,e,7);var a=r^i^n;if(a<0)a+=4294967296;return a}function s1_512_hi(e,t){var r=s(e,t,14);var i=s(e,t,18);var n=s(t,e,9);var a=r^i^n;if(a<0)a+=4294967296;return a}function s1_512_lo(e,t){var r=o(e,t,14);var i=o(e,t,18);var n=o(t,e,9);var a=r^i^n;if(a<0)a+=4294967296;return a}function g0_512_hi(e,t){var r=s(e,t,1);var i=s(e,t,8);var n=h(e,t,7);var a=r^i^n;if(a<0)a+=4294967296;return a}function g0_512_lo(e,t){var r=o(e,t,1);var i=o(e,t,8);var n=u(e,t,7);var a=r^i^n;if(a<0)a+=4294967296;return a}function g1_512_hi(e,t){var r=s(e,t,19);var i=s(t,e,29);var n=h(e,t,6);var a=r^i^n;if(a<0)a+=4294967296;return a}function g1_512_lo(e,t){var r=o(e,t,19);var i=o(t,e,29);var n=u(e,t,6);var a=r^i^n;if(a<0)a+=4294967296;return a}},2975:function(e,t,r){\"use strict\";var i=r(263);var n=i.rotr32;function ft_1(e,t,r,i){if(e===0)return ch32(t,r,i);if(e===1||e===3)return p32(t,r,i);if(e===2)return maj32(t,r,i)}t.ft_1=ft_1;function ch32(e,t,r){return e&t^~e&r}t.ch32=ch32;function maj32(e,t,r){return e&t^e&r^t&r}t.maj32=maj32;function p32(e,t,r){return e^t^r}t.p32=p32;function s0_256(e){return n(e,2)^n(e,13)^n(e,22)}t.s0_256=s0_256;function s1_256(e){return n(e,6)^n(e,11)^n(e,25)}t.s1_256=s1_256;function g0_256(e){return n(e,7)^n(e,18)^e>>>3}t.g0_256=g0_256;function g1_256(e){return n(e,17)^n(e,19)^e>>>10}t.g1_256=g1_256},263:function(e,t,r){\"use strict\";var i=r(3523);var n=r(3782);t.inherits=n;function isSurrogatePair(e,t){if((e.charCodeAt(t)&64512)!==55296){return false}if(t<0||t+1>=e.length){return false}return(e.charCodeAt(t+1)&64512)===56320}function toArray(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e===\"string\"){if(!t){var i=0;for(var n=0;n<e.length;n++){var a=e.charCodeAt(n);if(a<128){r[i++]=a}else if(a<2048){r[i++]=a>>6|192;r[i++]=a&63|128}else if(isSurrogatePair(e,n)){a=65536+((a&1023)<<10)+(e.charCodeAt(++n)&1023);r[i++]=a>>18|240;r[i++]=a>>12&63|128;r[i++]=a>>6&63|128;r[i++]=a&63|128}else{r[i++]=a>>12|224;r[i++]=a>>6&63|128;r[i++]=a&63|128}}}else if(t===\"hex\"){e=e.replace(/[^a-z0-9]+/gi,\"\");if(e.length%2!==0)e=\"0\"+e;for(n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16))}}else{for(n=0;n<e.length;n++)r[n]=e[n]|0}return r}t.toArray=toArray;function toHex(e){var t=\"\";for(var r=0;r<e.length;r++)t+=zero2(e[r].toString(16));return t}t.toHex=toHex;function htonl(e){var t=e>>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return t>>>0}t.htonl=htonl;function toHex32(e,t){var r=\"\";for(var i=0;i<e.length;i++){var n=e[i];if(t===\"little\")n=htonl(n);r+=zero8(n.toString(16))}return r}t.toHex32=toHex32;function zero2(e){if(e.length===1)return\"0\"+e;else return e}t.zero2=zero2;function zero8(e){if(e.length===7)return\"0\"+e;else if(e.length===6)return\"00\"+e;else if(e.length===5)return\"000\"+e;else if(e.length===4)return\"0000\"+e;else if(e.length===3)return\"00000\"+e;else if(e.length===2)return\"000000\"+e;else if(e.length===1)return\"0000000\"+e;else return e}t.zero8=zero8;function join32(e,t,r,n){var a=r-t;i(a%4===0);var s=new Array(a/4);for(var o=0,h=t;o<s.length;o++,h+=4){var u;if(n===\"big\")u=e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3];else u=e[h+3]<<24|e[h+2]<<16|e[h+1]<<8|e[h];s[o]=u>>>0}return s}t.join32=join32;function split32(e,t){var r=new Array(e.length*4);for(var i=0,n=0;i<e.length;i++,n+=4){var a=e[i];if(t===\"big\"){r[n]=a>>>24;r[n+1]=a>>>16&255;r[n+2]=a>>>8&255;r[n+3]=a&255}else{r[n+3]=a>>>24;r[n+2]=a>>>16&255;r[n+1]=a>>>8&255;r[n]=a&255}}return r}t.split32=split32;function rotr32(e,t){return e>>>t|e<<32-t}t.rotr32=rotr32;function rotl32(e,t){return e<<t|e>>>32-t}t.rotl32=rotl32;function sum32(e,t){return e+t>>>0}t.sum32=sum32;function sum32_3(e,t,r){return e+t+r>>>0}t.sum32_3=sum32_3;function sum32_4(e,t,r,i){return e+t+r+i>>>0}t.sum32_4=sum32_4;function sum32_5(e,t,r,i,n){return e+t+r+i+n>>>0}t.sum32_5=sum32_5;function sum64(e,t,r,i){var n=e[t];var a=e[t+1];var s=i+a>>>0;var o=(s<i?1:0)+r+n;e[t]=o>>>0;e[t+1]=s}t.sum64=sum64;function sum64_hi(e,t,r,i){var n=t+i>>>0;var a=(n<t?1:0)+e+r;return a>>>0}t.sum64_hi=sum64_hi;function sum64_lo(e,t,r,i){var n=t+i;return n>>>0}t.sum64_lo=sum64_lo;function sum64_4_hi(e,t,r,i,n,a,s,o){var h=0;var u=t;u=u+i>>>0;h+=u<t?1:0;u=u+a>>>0;h+=u<a?1:0;u=u+o>>>0;h+=u<o?1:0;var d=e+r+n+s+h;return d>>>0}t.sum64_4_hi=sum64_4_hi;function sum64_4_lo(e,t,r,i,n,a,s,o){var h=t+i+a+o;return h>>>0}t.sum64_4_lo=sum64_4_lo;function sum64_5_hi(e,t,r,i,n,a,s,o,h,u){var d=0;var c=t;c=c+i>>>0;d+=c<t?1:0;c=c+a>>>0;d+=c<a?1:0;c=c+o>>>0;d+=c<o?1:0;c=c+u>>>0;d+=c<u?1:0;var l=e+r+n+s+h+d;return l>>>0}t.sum64_5_hi=sum64_5_hi;function sum64_5_lo(e,t,r,i,n,a,s,o,h,u){var d=t+i+a+o+u;return d>>>0}t.sum64_5_lo=sum64_5_lo;function rotr64_hi(e,t,r){var i=t<<32-r|e>>>r;return i>>>0}t.rotr64_hi=rotr64_hi;function rotr64_lo(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}t.rotr64_lo=rotr64_lo;function shr64_hi(e,t,r){return e>>>r}t.shr64_hi=shr64_hi;function shr64_lo(e,t,r){var i=e<<32-r|t>>>r;return i>>>0}t.shr64_lo=shr64_lo},4910:function(e,t,r){\"use strict\";var i=r(7028);var n=r(6545);var a=r(3523);function HmacDRBG(e){if(!(this instanceof HmacDRBG))return new HmacDRBG(e);this.hash=e.hash;this.predResist=!!e.predResist;this.outLen=this.hash.outSize;this.minEntropy=e.minEntropy||this.hash.hmacStrength;this._reseed=null;this.reseedInterval=null;this.K=null;this.V=null;var t=n.toArray(e.entropy,e.entropyEnc||\"hex\");var r=n.toArray(e.nonce,e.nonceEnc||\"hex\");var i=n.toArray(e.pers,e.persEnc||\"hex\");a(t.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\");this._init(t,r,i)}e.exports=HmacDRBG;HmacDRBG.prototype._init=function init(e,t,r){var i=e.concat(t).concat(r);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var n=0;n<this.V.length;n++){this.K[n]=0;this.V[n]=1}this._update(i);this._reseed=1;this.reseedInterval=281474976710656};HmacDRBG.prototype._hmac=function hmac(){return new i.hmac(this.hash,this.K)};HmacDRBG.prototype._update=function update(e){var t=this._hmac().update(this.V).update([0]);if(e)t=t.update(e);this.K=t.digest();this.V=this._hmac().update(this.V).digest();if(!e)return;this.K=this._hmac().update(this.V).update([1]).update(e).digest();this.V=this._hmac().update(this.V).digest()};HmacDRBG.prototype.reseed=function reseed(e,t,r,i){if(typeof t!==\"string\"){i=r;r=t;t=null}e=n.toArray(e,t);r=n.toArray(r,i);a(e.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\");this._update(e.concat(r||[]));this._reseed=1};HmacDRBG.prototype.generate=function generate(e,t,r,i){if(this._reseed>this.reseedInterval)throw new Error(\"Reseed is required\");if(typeof t!==\"string\"){i=r;r=t;t=null}if(r){r=n.toArray(r,i||\"hex\");this._update(r)}var a=[];while(a.length<e){this.V=this._hmac().update(this.V).digest();a=a.concat(this.V)}var s=a.slice(0,e);this._update(r);this._reseed++;return n.encode(s,t)}},3782:function(e){if(typeof Object.create===\"function\"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},3533:function(e,t,r){\"use strict\";var i=r(3782);var n=r(9029);var a=r(6911).Buffer;var s=new Array(16);function MD5(){n.call(this,64);this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878}i(MD5,n);MD5.prototype._update=function(){var e=s;for(var t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a;var i=this._b;var n=this._c;var a=this._d;r=fnF(r,i,n,a,e[0],3614090360,7);a=fnF(a,r,i,n,e[1],3905402710,12);n=fnF(n,a,r,i,e[2],606105819,17);i=fnF(i,n,a,r,e[3],3250441966,22);r=fnF(r,i,n,a,e[4],4118548399,7);a=fnF(a,r,i,n,e[5],1200080426,12);n=fnF(n,a,r,i,e[6],2821735955,17);i=fnF(i,n,a,r,e[7],4249261313,22);r=fnF(r,i,n,a,e[8],1770035416,7);a=fnF(a,r,i,n,e[9],2336552879,12);n=fnF(n,a,r,i,e[10],4294925233,17);i=fnF(i,n,a,r,e[11],2304563134,22);r=fnF(r,i,n,a,e[12],1804603682,7);a=fnF(a,r,i,n,e[13],4254626195,12);n=fnF(n,a,r,i,e[14],2792965006,17);i=fnF(i,n,a,r,e[15],1236535329,22);r=fnG(r,i,n,a,e[1],4129170786,5);a=fnG(a,r,i,n,e[6],3225465664,9);n=fnG(n,a,r,i,e[11],643717713,14);i=fnG(i,n,a,r,e[0],3921069994,20);r=fnG(r,i,n,a,e[5],3593408605,5);a=fnG(a,r,i,n,e[10],38016083,9);n=fnG(n,a,r,i,e[15],3634488961,14);i=fnG(i,n,a,r,e[4],3889429448,20);r=fnG(r,i,n,a,e[9],568446438,5);a=fnG(a,r,i,n,e[14],3275163606,9);n=fnG(n,a,r,i,e[3],4107603335,14);i=fnG(i,n,a,r,e[8],1163531501,20);r=fnG(r,i,n,a,e[13],2850285829,5);a=fnG(a,r,i,n,e[2],4243563512,9);n=fnG(n,a,r,i,e[7],1735328473,14);i=fnG(i,n,a,r,e[12],2368359562,20);r=fnH(r,i,n,a,e[5],4294588738,4);a=fnH(a,r,i,n,e[8],2272392833,11);n=fnH(n,a,r,i,e[11],1839030562,16);i=fnH(i,n,a,r,e[14],4259657740,23);r=fnH(r,i,n,a,e[1],2763975236,4);a=fnH(a,r,i,n,e[4],1272893353,11);n=fnH(n,a,r,i,e[7],4139469664,16);i=fnH(i,n,a,r,e[10],3200236656,23);r=fnH(r,i,n,a,e[13],681279174,4);a=fnH(a,r,i,n,e[0],3936430074,11);n=fnH(n,a,r,i,e[3],3572445317,16);i=fnH(i,n,a,r,e[6],76029189,23);r=fnH(r,i,n,a,e[9],3654602809,4);a=fnH(a,r,i,n,e[12],3873151461,11);n=fnH(n,a,r,i,e[15],530742520,16);i=fnH(i,n,a,r,e[2],3299628645,23);r=fnI(r,i,n,a,e[0],4096336452,6);a=fnI(a,r,i,n,e[7],1126891415,10);n=fnI(n,a,r,i,e[14],2878612391,15);i=fnI(i,n,a,r,e[5],4237533241,21);r=fnI(r,i,n,a,e[12],1700485571,6);a=fnI(a,r,i,n,e[3],2399980690,10);n=fnI(n,a,r,i,e[10],4293915773,15);i=fnI(i,n,a,r,e[1],2240044497,21);r=fnI(r,i,n,a,e[8],1873313359,6);a=fnI(a,r,i,n,e[15],4264355552,10);n=fnI(n,a,r,i,e[6],2734768916,15);i=fnI(i,n,a,r,e[13],1309151649,21);r=fnI(r,i,n,a,e[4],4149444226,6);a=fnI(a,r,i,n,e[11],3174756917,10);n=fnI(n,a,r,i,e[2],718787259,15);i=fnI(i,n,a,r,e[9],3951481745,21);this._a=this._a+r|0;this._b=this._b+i|0;this._c=this._c+n|0;this._d=this._d+a|0};MD5.prototype._digest=function(){this._block[this._blockOffset++]=128;if(this._blockOffset>56){this._block.fill(0,this._blockOffset,64);this._update();this._blockOffset=0}this._block.fill(0,this._blockOffset,56);this._block.writeUInt32LE(this._length[0],56);this._block.writeUInt32LE(this._length[1],60);this._update();var e=a.allocUnsafe(16);e.writeInt32LE(this._a,0);e.writeInt32LE(this._b,4);e.writeInt32LE(this._c,8);e.writeInt32LE(this._d,12);return e};function rotl(e,t){return e<<t|e>>>32-t}function fnF(e,t,r,i,n,a,s){return rotl(e+(t&r|~t&i)+n+a|0,s)+t|0}function fnG(e,t,r,i,n,a,s){return rotl(e+(t&i|r&~i)+n+a|0,s)+t|0}function fnH(e,t,r,i,n,a,s){return rotl(e+(t^r^i)+n+a|0,s)+t|0}function fnI(e,t,r,i,n,a,s){return rotl(e+(r^(t|~i))+n+a|0,s)+t|0}e.exports=MD5},1354:function(e,t,r){var i=r(711);var n=r(3500);function MillerRabin(e){this.rand=e||new n.Rand}e.exports=MillerRabin;MillerRabin.create=function create(e){return new MillerRabin(e)};MillerRabin.prototype._randbelow=function _randbelow(e){var t=e.bitLength();var r=Math.ceil(t/8);do{var n=new i(this.rand.generate(r))}while(n.cmp(e)>=0);return n};MillerRabin.prototype._randrange=function _randrange(e,t){var r=t.sub(e);return e.add(this._randbelow(r))};MillerRabin.prototype.test=function test(e,t,r){var n=e.bitLength();var a=i.mont(e);var s=new i(1).toRed(a);if(!t)t=Math.max(1,n/48|0);var o=e.subn(1);for(var h=0;!o.testn(h);h++){}var u=e.shrn(h);var d=o.toRed(a);var c=true;for(;t>0;t--){var l=this._randrange(new i(2),o);if(r)r(l);var p=l.toRed(a).redPow(u);if(p.cmp(s)===0||p.cmp(d)===0)continue;for(var v=1;v<h;v++){p=p.redSqr();if(p.cmp(s)===0)return false;if(p.cmp(d)===0)break}if(v===h)return false}return c};MillerRabin.prototype.getDivisor=function getDivisor(e,t){var r=e.bitLength();var n=i.mont(e);var a=new i(1).toRed(n);if(!t)t=Math.max(1,r/48|0);var s=e.subn(1);for(var o=0;!s.testn(o);o++){}var h=e.shrn(o);var u=s.toRed(n);for(;t>0;t--){var d=this._randrange(new i(2),s);var c=e.gcd(d);if(c.cmpn(1)!==0)return c;var l=d.toRed(n).redPow(h);if(l.cmp(a)===0||l.cmp(u)===0)continue;for(var p=1;p<o;p++){l=l.redSqr();if(l.cmp(a)===0)return l.fromRed().subn(1).gcd(e);if(l.cmp(u)===0)break}if(p===o){l=l.redSqr();return l.fromRed().subn(1).gcd(e)}}return false}},3523:function(e){e.exports=assert;function assert(e,t){if(!e)throw new Error(t||\"Assertion failed\")}assert.equal=function assertEqual(e,t,r){if(e!=t)throw new Error(r||\"Assertion failed: \"+e+\" != \"+t)}},6545:function(e,t){\"use strict\";var r=t;function toArray(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e!==\"string\"){for(var i=0;i<e.length;i++)r[i]=e[i]|0;return r}if(t===\"hex\"){e=e.replace(/[^a-z0-9]+/gi,\"\");if(e.length%2!==0)e=\"0\"+e;for(var i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else{for(var i=0;i<e.length;i++){var n=e.charCodeAt(i);var a=n>>8;var s=n&255;if(a)r.push(a,s);else r.push(s)}}return r}r.toArray=toArray;function zero2(e){if(e.length===1)return\"0\"+e;else return e}r.zero2=zero2;function toHex(e){var t=\"\";for(var r=0;r<e.length;r++)t+=zero2(e[r].toString(16));return t}r.toHex=toHex;r.encode=function encode(e,t){if(t===\"hex\")return toHex(e);else return e}},8687:function(e,t,r){\"use strict\";var i=r(7160);t.certificate=r(8782);var n=i.define(\"RSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())}));t.RSAPrivateKey=n;var a=i.define(\"RSAPublicKey\",(function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())}));t.RSAPublicKey=a;var s=i.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(o),this.key(\"subjectPublicKey\").bitstr())}));t.PublicKey=s;var o=i.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())}));var h=i.define(\"PrivateKeyInfo\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(o),this.key(\"subjectPrivateKey\").octstr())}));t.PrivateKey=h;var u=i.define(\"EncryptedPrivateKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())}));t.EncryptedPrivateKey=u;var d=i.define(\"DSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())}));t.DSAPrivateKey=d;t.DSAparam=i.define(\"DSAparam\",(function(){this.int()}));var c=i.define(\"ECPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(l),this.key(\"publicKey\").optional().explicit(1).bitstr())}));t.ECPrivateKey=c;var l=i.define(\"ECParameters\",(function(){this.choice({namedCurve:this.objid()})}));t.signature=i.define(\"signature\",(function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())}))},8782:function(e,t,r){\"use strict\";var i=r(7160);var n=i.define(\"Time\",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}));var a=i.define(\"AttributeTypeValue\",(function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())}));var s=i.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())}));var o=i.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(s),this.key(\"subjectPublicKey\").bitstr())}));var h=i.define(\"RelativeDistinguishedName\",(function(){this.setof(a)}));var u=i.define(\"RDNSequence\",(function(){this.seqof(h)}));var d=i.define(\"Name\",(function(){this.choice({rdnSequence:this.use(u)})}));var c=i.define(\"Validity\",(function(){this.seq().obj(this.key(\"notBefore\").use(n),this.key(\"notAfter\").use(n))}));var l=i.define(\"Extension\",(function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(false),this.key(\"extnValue\").octstr())}));var p=i.define(\"TBSCertificate\",(function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(s),this.key(\"issuer\").use(d),this.key(\"validity\").use(c),this.key(\"subject\").use(d),this.key(\"subjectPublicKeyInfo\").use(o),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(l).optional())}));var v=i.define(\"X509Certificate\",(function(){this.seq().obj(this.key(\"tbsCertificate\").use(p),this.key(\"signatureAlgorithm\").use(s),this.key(\"signatureValue\").bitstr())}));e.exports=v},6501:function(e,t,r){var i=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m;var n=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;var a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m;var s=r(8368);var o=r(6594);var h=r(6911).Buffer;e.exports=function(e,t){var r=e.toString();var u=r.match(i);var d;if(!u){var c=r.match(a);d=new h(c[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}else{var l=\"aes\"+u[1];var p=h.from(u[2],\"hex\");var v=h.from(u[3].replace(/[\\r\\n]/g,\"\"),\"base64\");var b=s(t,p.slice(0,8),parseInt(u[1],10)).key;var m=[];var y=o.createDecipheriv(l,b,p);m.push(y.update(v));m.push(y.final());d=h.concat(m)}var g=r.match(n)[1];return{tag:g,data:d}}},9902:function(e,t,r){var i=r(8687);var n=r(2510);var a=r(6501);var s=r(6594);var o=r(4978);var h=r(6911).Buffer;e.exports=parseKeys;function parseKeys(e){var t;if(typeof e===\"object\"&&!h.isBuffer(e)){t=e.passphrase;e=e.key}if(typeof e===\"string\"){e=h.from(e)}var r=a(e,t);var n=r.tag;var s=r.data;var o,u;switch(n){case\"CERTIFICATE\":u=i.certificate.decode(s,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":if(!u){u=i.PublicKey.decode(s,\"der\")}o=u.algorithm.algorithm.join(\".\");switch(o){case\"1.2.840.113549.1.1.1\":return i.RSAPublicKey.decode(u.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":u.subjectPrivateKey=u.subjectPublicKey;return{type:\"ec\",data:u};case\"1.2.840.10040.4.1\":u.algorithm.params.pub_key=i.DSAparam.decode(u.subjectPublicKey.data,\"der\");return{type:\"dsa\",data:u.algorithm.params};default:throw new Error(\"unknown key id \"+o)}throw new Error(\"unknown key type \"+n);case\"ENCRYPTED PRIVATE KEY\":s=i.EncryptedPrivateKey.decode(s,\"der\");s=decrypt(s,t);case\"PRIVATE KEY\":u=i.PrivateKey.decode(s,\"der\");o=u.algorithm.algorithm.join(\".\");switch(o){case\"1.2.840.113549.1.1.1\":return i.RSAPrivateKey.decode(u.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:u.algorithm.curve,privateKey:i.ECPrivateKey.decode(u.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":u.algorithm.params.priv_key=i.DSAparam.decode(u.subjectPrivateKey,\"der\");return{type:\"dsa\",params:u.algorithm.params};default:throw new Error(\"unknown key id \"+o)}throw new Error(\"unknown key type \"+n);case\"RSA PUBLIC KEY\":return i.RSAPublicKey.decode(s,\"der\");case\"RSA PRIVATE KEY\":return i.RSAPrivateKey.decode(s,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:i.DSAPrivateKey.decode(s,\"der\")};case\"EC PRIVATE KEY\":s=i.ECPrivateKey.decode(s,\"der\");return{curve:s.parameters.value,privateKey:s.privateKey};default:throw new Error(\"unknown key type \"+n)}}parseKeys.signature=i.signature;function decrypt(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt;var i=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10);var a=n[e.algorithm.decrypt.cipher.algo.join(\".\")];var u=e.algorithm.decrypt.cipher.iv;var d=e.subjectPrivateKey;var c=parseInt(a.split(\"-\")[1],10)/8;var l=o.pbkdf2Sync(t,r,i,c,\"sha1\");var p=s.createDecipheriv(a,l,u);var v=[];v.push(p.update(d));v.push(p.final());return h.concat(v)}},4978:function(e,t,r){var i=r(6113);var n=r(5349);var a=r(7007);var s=r(5407);function nativePBKDF2(e,t,r,o,h,u){n(r,o);e=s(e,a,\"Password\");t=s(t,a,\"Salt\");if(typeof h===\"function\"){u=h;h=\"sha1\"}if(typeof u!==\"function\")throw new Error(\"No callback provided to pbkdf2\");return i.pbkdf2(e,t,r,o,h,u)}function nativePBKDF2Sync(e,t,r,o,h){n(r,o);e=s(e,a,\"Password\");t=s(t,a,\"Salt\");h=h||\"sha1\";return i.pbkdf2Sync(e,t,r,o,h)}if(!i.pbkdf2Sync||i.pbkdf2Sync.toString().indexOf(\"keylen, digest\")===-1){t.pbkdf2Sync=r(2127);t.pbkdf2=r(9601)}else{t.pbkdf2Sync=nativePBKDF2Sync;t.pbkdf2=nativePBKDF2}},9601:function(e,t,r){var i=r(6911).Buffer;var n=r(5349);var a=r(7007);var s=r(2127);var o=r(5407);var h;var u=__webpack_require__.g.crypto&&__webpack_require__.g.crypto.subtle;var d={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"};var c=[];function checkNative(e){if(__webpack_require__.g.process&&!__webpack_require__.g.process.browser){return Promise.resolve(false)}if(!u||!u.importKey||!u.deriveBits){return Promise.resolve(false)}if(c[e]!==undefined){return c[e]}h=h||i.alloc(8);var t=browserPbkdf2(h,h,10,128,e).then((function(){return true})).catch((function(){return false}));c[e]=t;return t}function browserPbkdf2(e,t,r,n,a){return u.importKey(\"raw\",e,{name:\"PBKDF2\"},false,[\"deriveBits\"]).then((function(e){return u.deriveBits({name:\"PBKDF2\",salt:t,iterations:r,hash:{name:a}},e,n<<3)})).then((function(e){return i.from(e)}))}function resolvePromise(e,t){e.then((function(e){process.nextTick((function(){t(null,e)}))}),(function(e){process.nextTick((function(){t(e)}))}))}e.exports=function(e,t,r,i,h,u){if(typeof h===\"function\"){u=h;h=undefined}h=h||\"sha1\";var c=d[h.toLowerCase()];if(!c||typeof __webpack_require__.g.Promise!==\"function\"){return process.nextTick((function(){var n;try{n=s(e,t,r,i,h)}catch(e){return u(e)}u(null,n)}))}n(r,i);e=o(e,a,\"Password\");t=o(t,a,\"Salt\");if(typeof u!==\"function\")throw new Error(\"No callback provided to pbkdf2\");resolvePromise(checkNative(c).then((function(n){if(n)return browserPbkdf2(e,t,r,i,c);return s(e,t,r,i,h)})),u)}},7007:function(e){var t;if(true){t=\"utf-8\"}else { var r; }e.exports=t},5349:function(e){var t=Math.pow(2,30)-1;e.exports=function(e,r){if(typeof e!==\"number\"){throw new TypeError(\"Iterations not a number\")}if(e<0){throw new TypeError(\"Bad iterations\")}if(typeof r!==\"number\"){throw new TypeError(\"Key length not a number\")}if(r<0||r>t||r!==r){throw new TypeError(\"Bad key length\")}}},2127:function(e,t,r){var i={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};var n=r(4873);var a=r(6911).Buffer;var s=r(5349);var o=r(7007);var h=r(5407);function pbkdf2(e,t,r,u,d){s(r,u);e=h(e,o,\"Password\");t=h(t,o,\"Salt\");d=d||\"sha1\";var c=a.allocUnsafe(u);var l=a.allocUnsafe(t.length+4);t.copy(l,0,0,t.length);var p=0;var v=i[d];var b=Math.ceil(u/v);for(var m=1;m<=b;m++){l.writeUInt32BE(m,t.length);var y=n(d,e).update(l).digest();var g=y;for(var _=1;_<r;_++){g=n(d,e).update(g).digest();for(var w=0;w<v;w++)y[w]^=g[w]}y.copy(c,p);p+=v}return c}e.exports=pbkdf2},5407:function(e,t,r){var i=r(6911).Buffer;e.exports=function(e,t,r){if(i.isBuffer(e)){return e}else if(typeof e===\"string\"){return i.from(e,t)}else if(ArrayBuffer.isView(e)){return i.from(e.buffer)}else{throw new TypeError(r+\" must be a string, a Buffer, a typed array or a DataView\")}}},9783:function(e,t,r){t.publicEncrypt=r(3995);t.privateDecrypt=r(4366);t.privateEncrypt=function privateEncrypt(e,r){return t.publicEncrypt(e,r,true)};t.publicDecrypt=function publicDecrypt(e,r){return t.privateDecrypt(e,r,true)}},5520:function(e,t,r){var i=r(9739);var n=r(6911).Buffer;e.exports=function(e,t){var r=n.alloc(0);var a=0;var s;while(r.length<t){s=i2ops(a++);r=n.concat([r,i(\"sha1\").update(e).update(s).digest()])}return r.slice(0,t)};function i2ops(e){var t=n.allocUnsafe(4);t.writeUInt32BE(e,0);return t}},4366:function(e,t,r){var i=r(9902);var n=r(5520);var a=r(6386);var s=r(711);var o=r(7166);var h=r(9739);var u=r(1607);var d=r(6911).Buffer;e.exports=function privateDecrypt(e,t,r){var n;if(e.padding){n=e.padding}else if(r){n=1}else{n=4}var a=i(e);var h=a.modulus.byteLength();if(t.length>h||new s(t).cmp(a.modulus)>=0){throw new Error(\"decryption error\")}var c;if(r){c=u(new s(t),a)}else{c=o(t,a)}var l=d.alloc(h-c.length);c=d.concat([l,c],h);if(n===4){return oaep(a,c)}else if(n===1){return pkcs1(a,c,r)}else if(n===3){return c}else{throw new Error(\"unknown padding\")}};function oaep(e,t){var r=e.modulus.byteLength();var i=h(\"sha1\").update(d.alloc(0)).digest();var s=i.length;if(t[0]!==0){throw new Error(\"decryption error\")}var o=t.slice(1,s+1);var u=t.slice(s+1);var c=a(o,n(u,s));var l=a(u,n(c,r-s-1));if(compare(i,l.slice(0,s))){throw new Error(\"decryption error\")}var p=s;while(l[p]===0){p++}if(l[p++]!==1){throw new Error(\"decryption error\")}return l.slice(p)}function pkcs1(e,t,r){var i=t.slice(0,2);var n=2;var a=0;while(t[n++]!==0){if(n>=t.length){a++;break}}var s=t.slice(2,n-1);if(i.toString(\"hex\")!==\"0002\"&&!r||i.toString(\"hex\")!==\"0001\"&&r){a++}if(s.length<8){a++}if(a){throw new Error(\"decryption error\")}return t.slice(n)}function compare(e,t){e=d.from(e);t=d.from(t);var r=0;var i=e.length;if(e.length!==t.length){r++;i=Math.min(e.length,t.length)}var n=-1;while(++n<i){r+=e[n]^t[n]}return r}},3995:function(e,t,r){var i=r(9902);var n=r(7223);var a=r(9739);var s=r(5520);var o=r(6386);var h=r(711);var u=r(1607);var d=r(7166);var c=r(6911).Buffer;e.exports=function publicEncrypt(e,t,r){var n;if(e.padding){n=e.padding}else if(r){n=1}else{n=4}var a=i(e);var s;if(n===4){s=oaep(a,t)}else if(n===1){s=pkcs1(a,t,r)}else if(n===3){s=new h(t);if(s.cmp(a.modulus)>=0){throw new Error(\"data too long for modulus\")}}else{throw new Error(\"unknown padding\")}if(r){return d(s,a)}else{return u(s,a)}};function oaep(e,t){var r=e.modulus.byteLength();var i=t.length;var u=a(\"sha1\").update(c.alloc(0)).digest();var d=u.length;var l=2*d;if(i>r-l-2){throw new Error(\"message too long\")}var p=c.alloc(r-i-l-2);var v=r-d-1;var b=n(d);var m=o(c.concat([u,p,c.alloc(1,1),t],v),s(b,v));var y=o(b,s(m,d));return new h(c.concat([c.alloc(1),y,m],r))}function pkcs1(e,t,r){var i=t.length;var n=e.modulus.byteLength();if(i>n-11){throw new Error(\"message too long\")}var a;if(r){a=c.alloc(n-i-3,255)}else{a=nonZero(n-i-3)}return new h(c.concat([c.from([0,r?1:2]),a,c.alloc(1),t],n))}function nonZero(e){var t=c.allocUnsafe(e);var r=0;var i=n(e*2);var a=0;var s;while(r<e){if(a===i.length){i=n(e*2);a=0}s=i[a++];if(s){t[r++]=s}}return t}},1607:function(e,t,r){var i=r(711);var n=r(6911).Buffer;function withPublic(e,t){return n.from(e.toRed(i.mont(t.modulus)).redPow(new i(t.publicExponent)).fromRed().toArray())}e.exports=withPublic},6386:function(e){e.exports=function xor(e,t){var r=e.length;var i=-1;while(++i<r){e[i]^=t[i]}return e}},7223:function(e,t,r){\"use strict\";var i=65536;var n=4294967295;function oldBrowser(){throw new Error(\"Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11\")}var a=r(6911).Buffer;var s=__webpack_require__.g.crypto||__webpack_require__.g.msCrypto;if(s&&s.getRandomValues){e.exports=randomBytes}else{e.exports=oldBrowser}function randomBytes(e,t){if(e>n)throw new RangeError(\"requested too many random bytes\");var r=a.allocUnsafe(e);if(e>0){if(e>i){for(var o=0;o<e;o+=i){s.getRandomValues(r.slice(o,o+i))}}else{s.getRandomValues(r)}}if(typeof t===\"function\"){return process.nextTick((function(){t(null,r)}))}return r}},6445:function(e,t,r){\"use strict\";function oldBrowser(){throw new Error(\"secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11\")}var i=r(6911);var n=r(7223);var a=i.Buffer;var s=i.kMaxLength;var o=__webpack_require__.g.crypto||__webpack_require__.g.msCrypto;var h=Math.pow(2,32)-1;function assertOffset(e,t){if(typeof e!==\"number\"||e!==e){throw new TypeError(\"offset must be a number\")}if(e>h||e<0){throw new TypeError(\"offset must be a uint32\")}if(e>s||e>t){throw new RangeError(\"offset out of range\")}}function assertSize(e,t,r){if(typeof e!==\"number\"||e!==e){throw new TypeError(\"size must be a number\")}if(e>h||e<0){throw new TypeError(\"size must be a uint32\")}if(e+t>r||e>s){throw new RangeError(\"buffer too small\")}}if(o&&o.getRandomValues||!true){t.randomFill=randomFill;t.randomFillSync=randomFillSync}else{t.randomFill=oldBrowser;t.randomFillSync=oldBrowser}function randomFill(e,t,r,i){if(!a.isBuffer(e)&&!(e instanceof __webpack_require__.g.Uint8Array)){throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')}if(typeof t===\"function\"){i=t;t=0;r=e.length}else if(typeof r===\"function\"){i=r;r=e.length-t}else if(typeof i!==\"function\"){throw new TypeError('\"cb\" argument must be a function')}assertOffset(t,e.length);assertSize(r,t,e.length);return actualFill(e,t,r,i)}function actualFill(e,t,r,i){if(true){var a=e.buffer;var s=new Uint8Array(a,t,r);o.getRandomValues(s);if(i){process.nextTick((function(){i(null,e)}));return}return e}if(i){n(r,(function(r,n){if(r){return i(r)}n.copy(e,t);i(null,e)}));return}var h=n(r);h.copy(e,t);return e}function randomFillSync(e,t,r){if(typeof t===\"undefined\"){t=0}if(!a.isBuffer(e)&&!(e instanceof __webpack_require__.g.Uint8Array)){throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')}assertOffset(t,e.length);if(r===undefined)r=e.length-t;assertSize(r,t,e.length);return actualFill(e,t,r)}},4646:function(e){\"use strict\";const t={};function createErrorType(e,r,i){if(!i){i=Error}function getMessage(e,t,i){if(typeof r===\"string\"){return r}else{return r(e,t,i)}}class NodeError extends i{constructor(e,t,r){super(getMessage(e,t,r))}}NodeError.prototype.name=i.name;NodeError.prototype.code=e;t[e]=NodeError}function oneOf(e,t){if(Array.isArray(e)){const r=e.length;e=e.map((e=>String(e)));if(r>2){return`one of ${t} ${e.slice(0,r-1).join(\", \")}, or `+e[r-1]}else if(r===2){return`one of ${t} ${e[0]} or ${e[1]}`}else{return`of ${t} ${e[0]}`}}else{return`of ${t} ${String(e)}`}}function startsWith(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function endsWith(e,t,r){if(r===undefined||r>e.length){r=e.length}return e.substring(r-t.length,r)===t}function includes(e,t,r){if(typeof r!==\"number\"){r=0}if(r+t.length>e.length){return false}else{return e.indexOf(t,r)!==-1}}createErrorType(\"ERR_INVALID_OPT_VALUE\",(function(e,t){return'The value \"'+t+'\" is invalid for option \"'+e+'\"'}),TypeError);createErrorType(\"ERR_INVALID_ARG_TYPE\",(function(e,t,r){let i;if(typeof t===\"string\"&&startsWith(t,\"not \")){i=\"must not be\";t=t.replace(/^not /,\"\")}else{i=\"must be\"}let n;if(endsWith(e,\" argument\")){n=`The ${e} ${i} ${oneOf(t,\"type\")}`}else{const r=includes(e,\".\")?\"property\":\"argument\";n=`The \"${e}\" ${r} ${i} ${oneOf(t,\"type\")}`}n+=`. Received type ${typeof r}`;return n}),TypeError);createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\");createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(e){return\"The \"+e+\" method is not implemented\"}));createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\");createErrorType(\"ERR_STREAM_DESTROYED\",(function(e){return\"Cannot call \"+e+\" after a stream was destroyed\"}));createErrorType(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\");createErrorType(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\");createErrorType(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\");createErrorType(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);createErrorType(\"ERR_UNKNOWN_ENCODING\",(function(e){return\"Unknown encoding: \"+e}),TypeError);createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\");e.exports.q=t},2403:function(e,t,r){\"use strict\";var i=Object.keys||function(e){var t=[];for(var r in e){t.push(r)}return t};e.exports=Duplex;var n=r(1709);var a=r(7337);r(3782)(Duplex,n);{var s=i(a.prototype);for(var o=0;o<s.length;o++){var h=s[o];if(!Duplex.prototype[h])Duplex.prototype[h]=a.prototype[h]}}function Duplex(e){if(!(this instanceof Duplex))return new Duplex(e);n.call(this,e);a.call(this,e);this.allowHalfOpen=true;if(e){if(e.readable===false)this.readable=false;if(e.writable===false)this.writable=false;if(e.allowHalfOpen===false){this.allowHalfOpen=false;this.once(\"end\",onend)}}}Object.defineProperty(Duplex.prototype,\"writableHighWaterMark\",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});Object.defineProperty(Duplex.prototype,\"writableBuffer\",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(Duplex.prototype,\"writableLength\",{enumerable:false,get:function get(){return this._writableState.length}});function onend(){if(this._writableState.ended)return;process.nextTick(onEndNT,this)}function onEndNT(e){e.end()}Object.defineProperty(Duplex.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._readableState===undefined||this._writableState===undefined){return false}return this._readableState.destroyed&&this._writableState.destroyed},set:function set(e){if(this._readableState===undefined||this._writableState===undefined){return}this._readableState.destroyed=e;this._writableState.destroyed=e}})},7889:function(e,t,r){\"use strict\";e.exports=PassThrough;var i=r(1170);r(3782)(PassThrough,i);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);i.call(this,e)}PassThrough.prototype._transform=function(e,t,r){r(null,e)}},1709:function(e,t,r){\"use strict\";e.exports=Readable;var i;Readable.ReadableState=ReadableState;var n=r(2361).EventEmitter;var a=function EElistenerCount(e,t){return e.listeners(t).length};var s=r(4678);var o=r(4300).Buffer;var h=__webpack_require__.g.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return o.from(e)}function _isUint8Array(e){return o.isBuffer(e)||e instanceof h}var u=r(3837);var d;if(u&&u.debuglog){d=u.debuglog(\"stream\")}else{d=function debug(){}}var c=r(4379);var l=r(7025);var p=r(6776),v=p.getHighWaterMark;var b=r(4646).q,m=b.ERR_INVALID_ARG_TYPE,y=b.ERR_STREAM_PUSH_AFTER_EOF,g=b.ERR_METHOD_NOT_IMPLEMENTED,_=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;var w;var M;var B;r(3782)(Readable,s);var E=l.errorOrDestroy;var k=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function prependListener(e,t,r){if(typeof e.prependListener===\"function\")return e.prependListener(t,r);if(!e._events||!e._events[t])e.on(t,r);else if(Array.isArray(e._events[t]))e._events[t].unshift(r);else e._events[t]=[r,e._events[t]]}function ReadableState(e,t,n){i=i||r(2403);e=e||{};if(typeof n!==\"boolean\")n=t instanceof i;this.objectMode=!!e.objectMode;if(n)this.objectMode=this.objectMode||!!e.readableObjectMode;this.highWaterMark=v(this,e,\"readableHighWaterMark\",n);this.buffer=new c;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;this.emitClose=e.emitClose!==false;this.autoDestroy=!!e.autoDestroy;this.destroyed=false;this.defaultEncoding=e.defaultEncoding||\"utf8\";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(e.encoding){if(!w)w=r(3704).s;this.decoder=new w(e.encoding);this.encoding=e.encoding}}function Readable(e){i=i||r(2403);if(!(this instanceof Readable))return new Readable(e);var t=this instanceof i;this._readableState=new ReadableState(e,this,t);this.readable=true;if(e){if(typeof e.read===\"function\")this._read=e.read;if(typeof e.destroy===\"function\")this._destroy=e.destroy}s.call(this)}Object.defineProperty(Readable.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function set(e){if(!this._readableState){return}this._readableState.destroyed=e}});Readable.prototype.destroy=l.destroy;Readable.prototype._undestroy=l.undestroy;Readable.prototype._destroy=function(e,t){t(e)};Readable.prototype.push=function(e,t){var r=this._readableState;var i;if(!r.objectMode){if(typeof e===\"string\"){t=t||r.defaultEncoding;if(t!==r.encoding){e=o.from(e,t);t=\"\"}i=true}}else{i=true}return readableAddChunk(this,e,t,false,i)};Readable.prototype.unshift=function(e){return readableAddChunk(this,e,null,true,false)};function readableAddChunk(e,t,r,i,n){d(\"readableAddChunk\",t);var a=e._readableState;if(t===null){a.reading=false;onEofChunk(e,a)}else{var s;if(!n)s=chunkInvalid(a,t);if(s){E(e,s)}else if(a.objectMode||t&&t.length>0){if(typeof t!==\"string\"&&!a.objectMode&&Object.getPrototypeOf(t)!==o.prototype){t=_uint8ArrayToBuffer(t)}if(i){if(a.endEmitted)E(e,new _);else addChunk(e,a,t,true)}else if(a.ended){E(e,new y)}else if(a.destroyed){return false}else{a.reading=false;if(a.decoder&&!r){t=a.decoder.write(t);if(a.objectMode||t.length!==0)addChunk(e,a,t,false);else maybeReadMore(e,a)}else{addChunk(e,a,t,false)}}}else if(!i){a.reading=false;maybeReadMore(e,a)}}return!a.ended&&(a.length<a.highWaterMark||a.length===0)}function addChunk(e,t,r,i){if(t.flowing&&t.length===0&&!t.sync){t.awaitDrain=0;e.emit(\"data\",r)}else{t.length+=t.objectMode?1:r.length;if(i)t.buffer.unshift(r);else t.buffer.push(r);if(t.needReadable)emitReadable(e)}maybeReadMore(e,t)}function chunkInvalid(e,t){var r;if(!_isUint8Array(t)&&typeof t!==\"string\"&&t!==undefined&&!e.objectMode){r=new m(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],t)}return r}Readable.prototype.isPaused=function(){return this._readableState.flowing===false};Readable.prototype.setEncoding=function(e){if(!w)w=r(3704).s;var t=new w(e);this._readableState.decoder=t;this._readableState.encoding=this._readableState.decoder.encoding;var i=this._readableState.buffer.head;var n=\"\";while(i!==null){n+=t.write(i.data);i=i.next}this._readableState.buffer.clear();if(n!==\"\")this._readableState.buffer.push(n);this._readableState.length=n.length;return this};var A=1073741824;function computeNewHighWaterMark(e){if(e>=A){e=A}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,t){if(e<=0||t.length===0&&t.ended)return 0;if(t.objectMode)return 1;if(e!==e){if(t.flowing&&t.length)return t.buffer.head.data.length;else return t.length}if(e>t.highWaterMark)t.highWaterMark=computeNewHighWaterMark(e);if(e<=t.length)return e;if(!t.ended){t.needReadable=true;return 0}return t.length}Readable.prototype.read=function(e){d(\"read\",e);e=parseInt(e,10);var t=this._readableState;var r=e;if(e!==0)t.emittedReadable=false;if(e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended)){d(\"read: emitReadable\",t.length,t.ended);if(t.length===0&&t.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,t);if(e===0&&t.ended){if(t.length===0)endReadable(this);return null}var i=t.needReadable;d(\"need readable\",i);if(t.length===0||t.length-e<t.highWaterMark){i=true;d(\"length less than watermark\",i)}if(t.ended||t.reading){i=false;d(\"reading or ended\",i)}else if(i){d(\"do read\");t.reading=true;t.sync=true;if(t.length===0)t.needReadable=true;this._read(t.highWaterMark);t.sync=false;if(!t.reading)e=howMuchToRead(r,t)}var n;if(e>0)n=fromList(e,t);else n=null;if(n===null){t.needReadable=t.length<=t.highWaterMark;e=0}else{t.length-=e;t.awaitDrain=0}if(t.length===0){if(!t.ended)t.needReadable=true;if(r!==e&&t.ended)endReadable(this)}if(n!==null)this.emit(\"data\",n);return n};function onEofChunk(e,t){d(\"onEofChunk\");if(t.ended)return;if(t.decoder){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;if(t.sync){emitReadable(e)}else{t.needReadable=false;if(!t.emittedReadable){t.emittedReadable=true;emitReadable_(e)}}}function emitReadable(e){var t=e._readableState;d(\"emitReadable\",t.needReadable,t.emittedReadable);t.needReadable=false;if(!t.emittedReadable){d(\"emitReadable\",t.flowing);t.emittedReadable=true;process.nextTick(emitReadable_,e)}}function emitReadable_(e){var t=e._readableState;d(\"emitReadable_\",t.destroyed,t.length,t.ended);if(!t.destroyed&&(t.length||t.ended)){e.emit(\"readable\");t.emittedReadable=false}t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark;flow(e)}function maybeReadMore(e,t){if(!t.readingMore){t.readingMore=true;process.nextTick(maybeReadMore_,e,t)}}function maybeReadMore_(e,t){while(!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&t.length===0)){var r=t.length;d(\"maybeReadMore read 0\");e.read(0);if(r===t.length)break}t.readingMore=false}Readable.prototype._read=function(e){E(this,new g(\"_read()\"))};Readable.prototype.pipe=function(e,t){var r=this;var i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e);break}i.pipesCount+=1;d(\"pipe count=%d opts=%j\",i.pipesCount,t);var n=(!t||t.end!==false)&&e!==process.stdout&&e!==process.stderr;var s=n?onend:unpipe;if(i.endEmitted)process.nextTick(s);else r.once(\"end\",s);e.on(\"unpipe\",onunpipe);function onunpipe(e,t){d(\"onunpipe\");if(e===r){if(t&&t.hasUnpiped===false){t.hasUnpiped=true;cleanup()}}}function onend(){d(\"onend\");e.end()}var o=pipeOnDrain(r);e.on(\"drain\",o);var h=false;function cleanup(){d(\"cleanup\");e.removeListener(\"close\",onclose);e.removeListener(\"finish\",onfinish);e.removeListener(\"drain\",o);e.removeListener(\"error\",onerror);e.removeListener(\"unpipe\",onunpipe);r.removeListener(\"end\",onend);r.removeListener(\"end\",unpipe);r.removeListener(\"data\",ondata);h=true;if(i.awaitDrain&&(!e._writableState||e._writableState.needDrain))o()}r.on(\"data\",ondata);function ondata(t){d(\"ondata\");var n=e.write(t);d(\"dest.write\",n);if(n===false){if((i.pipesCount===1&&i.pipes===e||i.pipesCount>1&&indexOf(i.pipes,e)!==-1)&&!h){d(\"false write response, pause\",i.awaitDrain);i.awaitDrain++}r.pause()}}function onerror(t){d(\"onerror\",t);unpipe();e.removeListener(\"error\",onerror);if(a(e,\"error\")===0)E(e,t)}prependListener(e,\"error\",onerror);function onclose(){e.removeListener(\"finish\",onfinish);unpipe()}e.once(\"close\",onclose);function onfinish(){d(\"onfinish\");e.removeListener(\"close\",onclose);unpipe()}e.once(\"finish\",onfinish);function unpipe(){d(\"unpipe\");r.unpipe(e)}e.emit(\"pipe\",r);if(!i.flowing){d(\"pipe resume\");r.resume()}return e};function pipeOnDrain(e){return function pipeOnDrainFunctionResult(){var t=e._readableState;d(\"pipeOnDrain\",t.awaitDrain);if(t.awaitDrain)t.awaitDrain--;if(t.awaitDrain===0&&a(e,\"data\")){t.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var t=this._readableState;var r={hasUnpiped:false};if(t.pipesCount===0)return this;if(t.pipesCount===1){if(e&&e!==t.pipes)return this;if(!e)e=t.pipes;t.pipes=null;t.pipesCount=0;t.flowing=false;if(e)e.emit(\"unpipe\",this,r);return this}if(!e){var i=t.pipes;var n=t.pipesCount;t.pipes=null;t.pipesCount=0;t.flowing=false;for(var a=0;a<n;a++){i[a].emit(\"unpipe\",this,{hasUnpiped:false})}return this}var s=indexOf(t.pipes,e);if(s===-1)return this;t.pipes.splice(s,1);t.pipesCount-=1;if(t.pipesCount===1)t.pipes=t.pipes[0];e.emit(\"unpipe\",this,r);return this};Readable.prototype.on=function(e,t){var r=s.prototype.on.call(this,e,t);var i=this._readableState;if(e===\"data\"){i.readableListening=this.listenerCount(\"readable\")>0;if(i.flowing!==false)this.resume()}else if(e===\"readable\"){if(!i.endEmitted&&!i.readableListening){i.readableListening=i.needReadable=true;i.flowing=false;i.emittedReadable=false;d(\"on readable\",i.length,i.reading);if(i.length){emitReadable(this)}else if(!i.reading){process.nextTick(nReadingNextTick,this)}}}return r};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(e,t){var r=s.prototype.removeListener.call(this,e,t);if(e===\"readable\"){process.nextTick(updateReadableListening,this)}return r};Readable.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);if(e===\"readable\"||e===undefined){process.nextTick(updateReadableListening,this)}return t};function updateReadableListening(e){var t=e._readableState;t.readableListening=e.listenerCount(\"readable\")>0;if(t.resumeScheduled&&!t.paused){t.flowing=true}else if(e.listenerCount(\"data\")>0){e.resume()}}function nReadingNextTick(e){d(\"readable nexttick read 0\");e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;if(!e.flowing){d(\"resume\");e.flowing=!e.readableListening;resume(this,e)}e.paused=false;return this};function resume(e,t){if(!t.resumeScheduled){t.resumeScheduled=true;process.nextTick(resume_,e,t)}}function resume_(e,t){d(\"resume\",t.reading);if(!t.reading){e.read(0)}t.resumeScheduled=false;e.emit(\"resume\");flow(e);if(t.flowing&&!t.reading)e.read(0)}Readable.prototype.pause=function(){d(\"call pause flowing=%j\",this._readableState.flowing);if(this._readableState.flowing!==false){d(\"pause\");this._readableState.flowing=false;this.emit(\"pause\")}this._readableState.paused=true;return this};function flow(e){var t=e._readableState;d(\"flow\",t.flowing);while(t.flowing&&e.read()!==null){}}Readable.prototype.wrap=function(e){var t=this;var r=this._readableState;var i=false;e.on(\"end\",(function(){d(\"wrapped end\");if(r.decoder&&!r.ended){var e=r.decoder.end();if(e&&e.length)t.push(e)}t.push(null)}));e.on(\"data\",(function(n){d(\"wrapped data\");if(r.decoder)n=r.decoder.write(n);if(r.objectMode&&(n===null||n===undefined))return;else if(!r.objectMode&&(!n||!n.length))return;var a=t.push(n);if(!a){i=true;e.pause()}}));for(var n in e){if(this[n]===undefined&&typeof e[n]===\"function\"){this[n]=function methodWrap(t){return function methodWrapReturnFunction(){return e[t].apply(e,arguments)}}(n)}}for(var a=0;a<k.length;a++){e.on(k[a],this.emit.bind(this,k[a]))}this._read=function(t){d(\"wrapped _read\",t);if(i){i=false;e.resume()}};return this};if(typeof Symbol===\"function\"){Readable.prototype[Symbol.asyncIterator]=function(){if(M===undefined){M=r(6871)}return M(this)}}Object.defineProperty(Readable.prototype,\"readableHighWaterMark\",{enumerable:false,get:function get(){return this._readableState.highWaterMark}});Object.defineProperty(Readable.prototype,\"readableBuffer\",{enumerable:false,get:function get(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Readable.prototype,\"readableFlowing\",{enumerable:false,get:function get(){return this._readableState.flowing},set:function set(e){if(this._readableState){this._readableState.flowing=e}}});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,\"readableLength\",{enumerable:false,get:function get(){return this._readableState.length}});function fromList(e,t){if(t.length===0)return null;var r;if(t.objectMode)r=t.buffer.shift();else if(!e||e>=t.length){if(t.decoder)r=t.buffer.join(\"\");else if(t.buffer.length===1)r=t.buffer.first();else r=t.buffer.concat(t.length);t.buffer.clear()}else{r=t.buffer.consume(e,t.decoder)}return r}function endReadable(e){var t=e._readableState;d(\"endReadable\",t.endEmitted);if(!t.endEmitted){t.ended=true;process.nextTick(endReadableNT,t,e)}}function endReadableNT(e,t){d(\"endReadableNT\",e.endEmitted,e.length);if(!e.endEmitted&&e.length===0){e.endEmitted=true;t.readable=false;t.emit(\"end\");if(e.autoDestroy){var r=t._writableState;if(!r||r.autoDestroy&&r.finished){t.destroy()}}}}if(typeof Symbol===\"function\"){Readable.from=function(e,t){if(B===undefined){B=r(9727)}return B(Readable,e,t)}}function indexOf(e,t){for(var r=0,i=e.length;r<i;r++){if(e[r]===t)return r}return-1}},1170:function(e,t,r){\"use strict\";e.exports=Transform;var i=r(4646).q,n=i.ERR_METHOD_NOT_IMPLEMENTED,a=i.ERR_MULTIPLE_CALLBACK,s=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=i.ERR_TRANSFORM_WITH_LENGTH_0;var h=r(2403);r(3782)(Transform,h);function afterTransform(e,t){var r=this._transformState;r.transforming=false;var i=r.writecb;if(i===null){return this.emit(\"error\",new a)}r.writechunk=null;r.writecb=null;if(t!=null)this.push(t);i(e);var n=this._readableState;n.reading=false;if(n.needReadable||n.length<n.highWaterMark){this._read(n.highWaterMark)}}function Transform(e){if(!(this instanceof Transform))return new Transform(e);h.call(this,e);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};this._readableState.needReadable=true;this._readableState.sync=false;if(e){if(typeof e.transform===\"function\")this._transform=e.transform;if(typeof e.flush===\"function\")this._flush=e.flush}this.on(\"prefinish\",prefinish)}function prefinish(){var e=this;if(typeof this._flush===\"function\"&&!this._readableState.destroyed){this._flush((function(t,r){done(e,t,r)}))}else{done(this,null,null)}}Transform.prototype.push=function(e,t){this._transformState.needTransform=false;return h.prototype.push.call(this,e,t)};Transform.prototype._transform=function(e,t,r){r(new n(\"_transform()\"))};Transform.prototype._write=function(e,t,r){var i=this._transformState;i.writecb=r;i.writechunk=e;i.writeencoding=t;if(!i.transforming){var n=this._readableState;if(i.needTransform||n.needReadable||n.length<n.highWaterMark)this._read(n.highWaterMark)}};Transform.prototype._read=function(e){var t=this._transformState;if(t.writechunk!==null&&!t.transforming){t.transforming=true;this._transform(t.writechunk,t.writeencoding,t.afterTransform)}else{t.needTransform=true}};Transform.prototype._destroy=function(e,t){h.prototype._destroy.call(this,e,(function(e){t(e)}))};function done(e,t,r){if(t)return e.emit(\"error\",t);if(r!=null)e.push(r);if(e._writableState.length)throw new o;if(e._transformState.transforming)throw new s;return e.push(null)}},7337:function(e,t,r){\"use strict\";e.exports=Writable;function WriteReq(e,t,r){this.chunk=e;this.encoding=t;this.callback=r;this.next=null}function CorkedRequest(e){var t=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(t,e)}}var i;Writable.WritableState=WritableState;var n={deprecate:r(6769)};var a=r(4678);var s=r(4300).Buffer;var o=__webpack_require__.g.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return s.from(e)}function _isUint8Array(e){return s.isBuffer(e)||e instanceof o}var h=r(7025);var u=r(6776),d=u.getHighWaterMark;var c=r(4646).q,l=c.ERR_INVALID_ARG_TYPE,p=c.ERR_METHOD_NOT_IMPLEMENTED,v=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,m=c.ERR_STREAM_DESTROYED,y=c.ERR_STREAM_NULL_VALUES,g=c.ERR_STREAM_WRITE_AFTER_END,_=c.ERR_UNKNOWN_ENCODING;var w=h.errorOrDestroy;r(3782)(Writable,a);function nop(){}function WritableState(e,t,n){i=i||r(2403);e=e||{};if(typeof n!==\"boolean\")n=t instanceof i;this.objectMode=!!e.objectMode;if(n)this.objectMode=this.objectMode||!!e.writableObjectMode;this.highWaterMark=d(this,e,\"writableHighWaterMark\",n);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var a=e.decodeStrings===false;this.decodeStrings=!a;this.defaultEncoding=e.defaultEncoding||\"utf8\";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(t,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.emitClose=e.emitClose!==false;this.autoDestroy=!!e.autoDestroy;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var t=[];while(e){t.push(e);e=e.next}return t};(function(){try{Object.defineProperty(WritableState.prototype,\"buffer\",{get:n.deprecate((function writableStateBufferGetter(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer \"+\"instead.\",\"DEP0003\")})}catch(e){}})();var M;if(typeof Symbol===\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]===\"function\"){M=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(e){if(M.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{M=function realHasInstance(e){return e instanceof this}}function Writable(e){i=i||r(2403);var t=this instanceof i;if(!t&&!M.call(Writable,this))return new Writable(e);this._writableState=new WritableState(e,this,t);this.writable=true;if(e){if(typeof e.write===\"function\")this._write=e.write;if(typeof e.writev===\"function\")this._writev=e.writev;if(typeof e.destroy===\"function\")this._destroy=e.destroy;if(typeof e.final===\"function\")this._final=e.final}a.call(this)}Writable.prototype.pipe=function(){w(this,new b)};function writeAfterEnd(e,t){var r=new g;w(e,r);process.nextTick(t,r)}function validChunk(e,t,r,i){var n;if(r===null){n=new y}else if(typeof r!==\"string\"&&!t.objectMode){n=new l(\"chunk\",[\"string\",\"Buffer\"],r)}if(n){w(e,n);process.nextTick(i,n);return false}return true}Writable.prototype.write=function(e,t,r){var i=this._writableState;var n=false;var a=!i.objectMode&&_isUint8Array(e);if(a&&!s.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof t===\"function\"){r=t;t=null}if(a)t=\"buffer\";else if(!t)t=i.defaultEncoding;if(typeof r!==\"function\")r=nop;if(i.ending)writeAfterEnd(this,r);else if(a||validChunk(this,i,e,r)){i.pendingcb++;n=writeOrBuffer(this,i,a,e,t,r)}return n};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e===\"string\")e=e.toLowerCase();if(!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new _(e);this._writableState.defaultEncoding=e;return this};Object.defineProperty(Writable.prototype,\"writableBuffer\",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(e,t,r){if(!e.objectMode&&e.decodeStrings!==false&&typeof t===\"string\"){t=s.from(t,r)}return t}Object.defineProperty(Writable.prototype,\"writableHighWaterMark\",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(e,t,r,i,n,a){if(!r){var s=decodeChunk(t,i,n);if(i!==s){r=true;n=\"buffer\";i=s}}var o=t.objectMode?1:i.length;t.length+=o;var h=t.length<t.highWaterMark;if(!h)t.needDrain=true;if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:i,encoding:n,isBuf:r,callback:a,next:null};if(u){u.next=t.lastBufferedRequest}else{t.bufferedRequest=t.lastBufferedRequest}t.bufferedRequestCount+=1}else{doWrite(e,t,false,o,i,n,a)}return h}function doWrite(e,t,r,i,n,a,s){t.writelen=i;t.writecb=s;t.writing=true;t.sync=true;if(t.destroyed)t.onwrite(new m(\"write\"));else if(r)e._writev(n,t.onwrite);else e._write(n,a,t.onwrite);t.sync=false}function onwriteError(e,t,r,i,n){--t.pendingcb;if(r){process.nextTick(n,i);process.nextTick(finishMaybe,e,t);e._writableState.errorEmitted=true;w(e,i)}else{n(i);e._writableState.errorEmitted=true;w(e,i);finishMaybe(e,t)}}function onwriteStateUpdate(e){e.writing=false;e.writecb=null;e.length-=e.writelen;e.writelen=0}function onwrite(e,t){var r=e._writableState;var i=r.sync;var n=r.writecb;if(typeof n!==\"function\")throw new v;onwriteStateUpdate(r);if(t)onwriteError(e,r,i,t,n);else{var a=needFinish(r)||e.destroyed;if(!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest){clearBuffer(e,r)}if(i){process.nextTick(afterWrite,e,r,a,n)}else{afterWrite(e,r,a,n)}}}function afterWrite(e,t,r,i){if(!r)onwriteDrain(e,t);t.pendingcb--;i();finishMaybe(e,t)}function onwriteDrain(e,t){if(t.length===0&&t.needDrain){t.needDrain=false;e.emit(\"drain\")}}function clearBuffer(e,t){t.bufferProcessing=true;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount;var n=new Array(i);var a=t.corkedRequestsFree;a.entry=r;var s=0;var o=true;while(r){n[s]=r;if(!r.isBuf)o=false;r=r.next;s+=1}n.allBuffers=o;doWrite(e,t,true,t.length,n,\"\",a.finish);t.pendingcb++;t.lastBufferedRequest=null;if(a.next){t.corkedRequestsFree=a.next;a.next=null}else{t.corkedRequestsFree=new CorkedRequest(t)}t.bufferedRequestCount=0}else{while(r){var h=r.chunk;var u=r.encoding;var d=r.callback;var c=t.objectMode?1:h.length;doWrite(e,t,false,c,h,u,d);r=r.next;t.bufferedRequestCount--;if(t.writing){break}}if(r===null)t.lastBufferedRequest=null}t.bufferedRequest=r;t.bufferProcessing=false}Writable.prototype._write=function(e,t,r){r(new p(\"_write()\"))};Writable.prototype._writev=null;Writable.prototype.end=function(e,t,r){var i=this._writableState;if(typeof e===\"function\"){r=e;e=null;t=null}else if(typeof t===\"function\"){r=t;t=null}if(e!==null&&e!==undefined)this.write(e,t);if(i.corked){i.corked=1;this.uncork()}if(!i.ending)endWritable(this,i,r);return this};Object.defineProperty(Writable.prototype,\"writableLength\",{enumerable:false,get:function get(){return this._writableState.length}});function needFinish(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function callFinal(e,t){e._final((function(r){t.pendingcb--;if(r){w(e,r)}t.prefinished=true;e.emit(\"prefinish\");finishMaybe(e,t)}))}function prefinish(e,t){if(!t.prefinished&&!t.finalCalled){if(typeof e._final===\"function\"&&!t.destroyed){t.pendingcb++;t.finalCalled=true;process.nextTick(callFinal,e,t)}else{t.prefinished=true;e.emit(\"prefinish\")}}}function finishMaybe(e,t){var r=needFinish(t);if(r){prefinish(e,t);if(t.pendingcb===0){t.finished=true;e.emit(\"finish\");if(t.autoDestroy){var i=e._readableState;if(!i||i.autoDestroy&&i.endEmitted){e.destroy()}}}}return r}function endWritable(e,t,r){t.ending=true;finishMaybe(e,t);if(r){if(t.finished)process.nextTick(r);else e.once(\"finish\",r)}t.ended=true;e.writable=false}function onCorkedFinish(e,t,r){var i=e.entry;e.entry=null;while(i){var n=i.callback;t.pendingcb--;n(r);i=i.next}t.corkedRequestsFree.next=e}Object.defineProperty(Writable.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._writableState===undefined){return false}return this._writableState.destroyed},set:function set(e){if(!this._writableState){return}this._writableState.destroyed=e}});Writable.prototype.destroy=h.destroy;Writable.prototype._undestroy=h.undestroy;Writable.prototype._destroy=function(e,t){t(e)}},6871:function(e,t,r){\"use strict\";var i;function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var n=r(9698);var a=Symbol(\"lastResolve\");var s=Symbol(\"lastReject\");var o=Symbol(\"error\");var h=Symbol(\"ended\");var u=Symbol(\"lastPromise\");var d=Symbol(\"handlePromise\");var c=Symbol(\"stream\");function createIterResult(e,t){return{value:e,done:t}}function readAndResolve(e){var t=e[a];if(t!==null){var r=e[c].read();if(r!==null){e[u]=null;e[a]=null;e[s]=null;t(createIterResult(r,false))}}}function onReadable(e){process.nextTick(readAndResolve,e)}function wrapForNext(e,t){return function(r,i){e.then((function(){if(t[h]){r(createIterResult(undefined,true));return}t[d](r,i)}),i)}}var l=Object.getPrototypeOf((function(){}));var p=Object.setPrototypeOf((i={get stream(){return this[c]},next:function next(){var e=this;var t=this[o];if(t!==null){return Promise.reject(t)}if(this[h]){return Promise.resolve(createIterResult(undefined,true))}if(this[c].destroyed){return new Promise((function(t,r){process.nextTick((function(){if(e[o]){r(e[o])}else{t(createIterResult(undefined,true))}}))}))}var r=this[u];var i;if(r){i=new Promise(wrapForNext(r,this))}else{var n=this[c].read();if(n!==null){return Promise.resolve(createIterResult(n,false))}i=new Promise(this[d])}this[u]=i;return i}},_defineProperty(i,Symbol.asyncIterator,(function(){return this})),_defineProperty(i,\"return\",(function _return(){var e=this;return new Promise((function(t,r){e[c].destroy(null,(function(e){if(e){r(e);return}t(createIterResult(undefined,true))}))}))})),i),l);var v=function createReadableStreamAsyncIterator(e){var t;var r=Object.create(p,(t={},_defineProperty(t,c,{value:e,writable:true}),_defineProperty(t,a,{value:null,writable:true}),_defineProperty(t,s,{value:null,writable:true}),_defineProperty(t,o,{value:null,writable:true}),_defineProperty(t,h,{value:e._readableState.endEmitted,writable:true}),_defineProperty(t,d,{value:function value(e,t){var i=r[c].read();if(i){r[u]=null;r[a]=null;r[s]=null;e(createIterResult(i,false))}else{r[a]=e;r[s]=t}},writable:true}),t));r[u]=null;n(e,(function(e){if(e&&e.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var t=r[s];if(t!==null){r[u]=null;r[a]=null;r[s]=null;t(e)}r[o]=e;return}var i=r[a];if(i!==null){r[u]=null;r[a]=null;r[s]=null;i(createIterResult(undefined,true))}r[h]=true}));e.on(\"readable\",onReadable.bind(null,r));return r};e.exports=v},4379:function(e,t,r){\"use strict\";function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);if(t)i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}));r.push.apply(r,i)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};if(t%2){ownKeys(Object(r),true).forEach((function(t){_defineProperty(e,t,r[t])}))}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(r))}else{ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}}return e}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){if(t)_defineProperties(e.prototype,t);if(r)_defineProperties(e,r);return e}var i=r(4300),n=i.Buffer;var a=r(3837),s=a.inspect;var o=s&&s.custom||\"inspect\";function copyBuffer(e,t,r){n.prototype.copy.call(e,t,r)}e.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}_createClass(BufferList,[{key:\"push\",value:function push(e){var t={data:e,next:null};if(this.length>0)this.tail.next=t;else this.head=t;this.tail=t;++this.length}},{key:\"unshift\",value:function unshift(e){var t={data:e,next:this.head};if(this.length===0)this.tail=t;this.head=t;++this.length}},{key:\"shift\",value:function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e}},{key:\"clear\",value:function clear(){this.head=this.tail=null;this.length=0}},{key:\"join\",value:function join(e){if(this.length===0)return\"\";var t=this.head;var r=\"\"+t.data;while(t=t.next){r+=e+t.data}return r}},{key:\"concat\",value:function concat(e){if(this.length===0)return n.alloc(0);var t=n.allocUnsafe(e>>>0);var r=this.head;var i=0;while(r){copyBuffer(r.data,t,i);i+=r.data.length;r=r.next}return t}},{key:\"consume\",value:function consume(e,t){var r;if(e<this.head.data.length){r=this.head.data.slice(0,e);this.head.data=this.head.data.slice(e)}else if(e===this.head.data.length){r=this.shift()}else{r=t?this._getString(e):this._getBuffer(e)}return r}},{key:\"first\",value:function first(){return this.head.data}},{key:\"_getString\",value:function _getString(e){var t=this.head;var r=1;var i=t.data;e-=i.length;while(t=t.next){var n=t.data;var a=e>n.length?n.length:e;if(a===n.length)i+=n;else i+=n.slice(0,e);e-=a;if(e===0){if(a===n.length){++r;if(t.next)this.head=t.next;else this.head=this.tail=null}else{this.head=t;t.data=n.slice(a)}break}++r}this.length-=r;return i}},{key:\"_getBuffer\",value:function _getBuffer(e){var t=n.allocUnsafe(e);var r=this.head;var i=1;r.data.copy(t);e-=r.data.length;while(r=r.next){var a=r.data;var s=e>a.length?a.length:e;a.copy(t,t.length-e,0,s);e-=s;if(e===0){if(s===a.length){++i;if(r.next)this.head=r.next;else this.head=this.tail=null}else{this.head=r;r.data=a.slice(s)}break}++i}this.length-=i;return t}},{key:o,value:function value(e,t){return s(this,_objectSpread({},t,{depth:0,customInspect:false}))}}]);return BufferList}()},7025:function(e){\"use strict\";function destroy(e,t){var r=this;var i=this._readableState&&this._readableState.destroyed;var n=this._writableState&&this._writableState.destroyed;if(i||n){if(t){t(e)}else if(e){if(!this._writableState){process.nextTick(emitErrorNT,this,e)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,e)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(e||null,(function(e){if(!t&&e){if(!r._writableState){process.nextTick(emitErrorAndCloseNT,r,e)}else if(!r._writableState.errorEmitted){r._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,r,e)}else{process.nextTick(emitCloseNT,r)}}else if(t){process.nextTick(emitCloseNT,r);t(e)}else{process.nextTick(emitCloseNT,r)}}));return this}function emitErrorAndCloseNT(e,t){emitErrorNT(e,t);emitCloseNT(e)}function emitCloseNT(e){if(e._writableState&&!e._writableState.emitClose)return;if(e._readableState&&!e._readableState.emitClose)return;e.emit(\"close\")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(e,t){e.emit(\"error\",t)}function errorOrDestroy(e,t){var r=e._readableState;var i=e._writableState;if(r&&r.autoDestroy||i&&i.autoDestroy)e.destroy(t);else e.emit(\"error\",t)}e.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}},9698:function(e,t,r){\"use strict\";var i=r(4646).q.ERR_STREAM_PREMATURE_CLOSE;function once(e){var t=false;return function(){if(t)return;t=true;for(var r=arguments.length,i=new Array(r),n=0;n<r;n++){i[n]=arguments[n]}e.apply(this,i)}}function noop(){}function isRequest(e){return e.setHeader&&typeof e.abort===\"function\"}function eos(e,t,r){if(typeof t===\"function\")return eos(e,null,t);if(!t)t={};r=once(r||noop);var n=t.readable||t.readable!==false&&e.readable;var a=t.writable||t.writable!==false&&e.writable;var s=function onlegacyfinish(){if(!e.writable)h()};var o=e._writableState&&e._writableState.finished;var h=function onfinish(){a=false;o=true;if(!n)r.call(e)};var u=e._readableState&&e._readableState.endEmitted;var d=function onend(){n=false;u=true;if(!a)r.call(e)};var c=function onerror(t){r.call(e,t)};var l=function onclose(){var t;if(n&&!u){if(!e._readableState||!e._readableState.ended)t=new i;return r.call(e,t)}if(a&&!o){if(!e._writableState||!e._writableState.ended)t=new i;return r.call(e,t)}};var p=function onrequest(){e.req.on(\"finish\",h)};if(isRequest(e)){e.on(\"complete\",h);e.on(\"abort\",l);if(e.req)p();else e.on(\"request\",p)}else if(a&&!e._writableState){e.on(\"end\",s);e.on(\"close\",s)}e.on(\"end\",d);e.on(\"finish\",h);if(t.error!==false)e.on(\"error\",c);e.on(\"close\",l);return function(){e.removeListener(\"complete\",h);e.removeListener(\"abort\",l);e.removeListener(\"request\",p);if(e.req)e.req.removeListener(\"finish\",h);e.removeListener(\"end\",s);e.removeListener(\"close\",s);e.removeListener(\"finish\",h);e.removeListener(\"end\",d);e.removeListener(\"error\",c);e.removeListener(\"close\",l)}}e.exports=eos},9727:function(e,t,r){\"use strict\";function asyncGeneratorStep(e,t,r,i,n,a,s){try{var o=e[a](s);var h=o.value}catch(e){r(e);return}if(o.done){t(h)}else{Promise.resolve(h).then(i,n)}}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(i,n){var a=e.apply(t,r);function _next(e){asyncGeneratorStep(a,i,n,_next,_throw,\"next\",e)}function _throw(e){asyncGeneratorStep(a,i,n,_next,_throw,\"throw\",e)}_next(undefined)}))}}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);if(t)i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}));r.push.apply(r,i)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};if(t%2){ownKeys(Object(r),true).forEach((function(t){_defineProperty(e,t,r[t])}))}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(r))}else{ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}}return e}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var i=r(4646).q.ERR_INVALID_ARG_TYPE;function from(e,t,r){var n;if(t&&typeof t.next===\"function\"){n=t}else if(t&&t[Symbol.asyncIterator])n=t[Symbol.asyncIterator]();else if(t&&t[Symbol.iterator])n=t[Symbol.iterator]();else throw new i(\"iterable\",[\"Iterable\"],t);var a=new e(_objectSpread({objectMode:true},r));var s=false;a._read=function(){if(!s){s=true;next()}};function next(){return _next2.apply(this,arguments)}function _next2(){_next2=_asyncToGenerator((function*(){try{var e=yield n.next(),t=e.value,r=e.done;if(r){a.push(null)}else if(a.push(yield t)){next()}else{s=false}}catch(e){a.destroy(e)}}));return _next2.apply(this,arguments)}return a}e.exports=from},8442:function(e,t,r){\"use strict\";var i;function once(e){var t=false;return function(){if(t)return;t=true;e.apply(void 0,arguments)}}var n=r(4646).q,a=n.ERR_MISSING_ARGS,s=n.ERR_STREAM_DESTROYED;function noop(e){if(e)throw e}function isRequest(e){return e.setHeader&&typeof e.abort===\"function\"}function destroyer(e,t,n,a){a=once(a);var o=false;e.on(\"close\",(function(){o=true}));if(i===undefined)i=r(9698);i(e,{readable:t,writable:n},(function(e){if(e)return a(e);o=true;a()}));var h=false;return function(t){if(o)return;if(h)return;h=true;if(isRequest(e))return e.abort();if(typeof e.destroy===\"function\")return e.destroy();a(t||new s(\"pipe\"))}}function call(e){e()}function pipe(e,t){return e.pipe(t)}function popCallback(e){if(!e.length)return noop;if(typeof e[e.length-1]!==\"function\")return noop;return e.pop()}function pipeline(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var i=popCallback(t);if(Array.isArray(t[0]))t=t[0];if(t.length<2){throw new a(\"streams\")}var n;var s=t.map((function(e,r){var a=r<t.length-1;var o=r>0;return destroyer(e,a,o,(function(e){if(!n)n=e;if(e)s.forEach(call);if(a)return;s.forEach(call);i(n)}))}));return t.reduce(pipe)}e.exports=pipeline},6776:function(e,t,r){\"use strict\";var i=r(4646).q.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function getHighWaterMark(e,t,r,n){var a=highWaterMarkFrom(t,n,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var s=n?r:\"highWaterMark\";throw new i(s,a)}return Math.floor(a)}return e.objectMode?16:16*1024}e.exports={getHighWaterMark:getHighWaterMark}},4678:function(e,t,r){e.exports=r(2781)},3726:function(e,t,r){var i=r(2781);if(process.env.READABLE_STREAM===\"disable\"&&i){e.exports=i.Readable;Object.assign(e.exports,i);e.exports.Stream=i}else{t=e.exports=r(1709);t.Stream=i||t;t.Readable=t;t.Writable=r(7337);t.Duplex=r(2403);t.Transform=r(1170);t.PassThrough=r(7889);t.finished=r(9698);t.pipeline=r(8442)}},3225:function(e,t,r){\"use strict\";var i=r(4300).Buffer;var n=r(3782);var a=r(9029);var s=new Array(16);var o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13];var h=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11];var u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6];var d=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];var c=[0,1518500249,1859775393,2400959708,2840853838];var l=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160(){a.call(this,64);this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520}n(RIPEMD160,a);RIPEMD160.prototype._update=function(){var e=s;for(var t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a|0;var i=this._b|0;var n=this._c|0;var a=this._d|0;var p=this._e|0;var v=this._a|0;var b=this._b|0;var m=this._c|0;var y=this._d|0;var g=this._e|0;for(var _=0;_<80;_+=1){var w;var M;if(_<16){w=fn1(r,i,n,a,p,e[o[_]],c[0],u[_]);M=fn5(v,b,m,y,g,e[h[_]],l[0],d[_])}else if(_<32){w=fn2(r,i,n,a,p,e[o[_]],c[1],u[_]);M=fn4(v,b,m,y,g,e[h[_]],l[1],d[_])}else if(_<48){w=fn3(r,i,n,a,p,e[o[_]],c[2],u[_]);M=fn3(v,b,m,y,g,e[h[_]],l[2],d[_])}else if(_<64){w=fn4(r,i,n,a,p,e[o[_]],c[3],u[_]);M=fn2(v,b,m,y,g,e[h[_]],l[3],d[_])}else{w=fn5(r,i,n,a,p,e[o[_]],c[4],u[_]);M=fn1(v,b,m,y,g,e[h[_]],l[4],d[_])}r=p;p=a;a=rotl(n,10);n=i;i=w;v=g;g=y;y=rotl(m,10);m=b;b=M}var B=this._b+n+y|0;this._b=this._c+a+g|0;this._c=this._d+p+v|0;this._d=this._e+r+b|0;this._e=this._a+i+m|0;this._a=B};RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128;if(this._blockOffset>56){this._block.fill(0,this._blockOffset,64);this._update();this._blockOffset=0}this._block.fill(0,this._blockOffset,56);this._block.writeUInt32LE(this._length[0],56);this._block.writeUInt32LE(this._length[1],60);this._update();var e=i.alloc?i.alloc(20):new i(20);e.writeInt32LE(this._a,0);e.writeInt32LE(this._b,4);e.writeInt32LE(this._c,8);e.writeInt32LE(this._d,12);e.writeInt32LE(this._e,16);return e};function rotl(e,t){return e<<t|e>>>32-t}function fn1(e,t,r,i,n,a,s,o){return rotl(e+(t^r^i)+a+s|0,o)+n|0}function fn2(e,t,r,i,n,a,s,o){return rotl(e+(t&r|~t&i)+a+s|0,o)+n|0}function fn3(e,t,r,i,n,a,s,o){return rotl(e+((t|~r)^i)+a+s|0,o)+n|0}function fn4(e,t,r,i,n,a,s,o){return rotl(e+(t&i|r&~i)+a+s|0,o)+n|0}function fn5(e,t,r,i,n,a,s,o){return rotl(e+(t^(r|~i))+a+s|0,o)+n|0}e.exports=RIPEMD160},5055:function(e,t,r){var i=r(4300);var n=i.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow){e.exports=i}else{copyProps(i,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return n(e,t,r)}SafeBuffer.prototype=Object.create(n.prototype);copyProps(n,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e===\"number\"){throw new TypeError(\"Argument must not be a number\")}return n(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}var i=n(e);if(t!==undefined){if(typeof r===\"string\"){i.fill(t,r)}else{i.fill(t)}}else{i.fill(0)}return i};SafeBuffer.allocUnsafe=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return n(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return i.SlowBuffer(e)}},6911:function(e,t,r){\n/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nvar i=r(4300);var n=i.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow){e.exports=i}else{copyProps(i,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return n(e,t,r)}SafeBuffer.prototype=Object.create(n.prototype);copyProps(n,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e===\"number\"){throw new TypeError(\"Argument must not be a number\")}return n(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}var i=n(e);if(t!==undefined){if(typeof r===\"string\"){i.fill(t,r)}else{i.fill(t)}}else{i.fill(0)}return i};SafeBuffer.allocUnsafe=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return n(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return i.SlowBuffer(e)}},2858:function(e,t,r){var i=r(6911).Buffer;function Hash(e,t){this._block=i.alloc(e);this._finalSize=t;this._blockSize=e;this._len=0}Hash.prototype.update=function(e,t){if(typeof e===\"string\"){t=t||\"utf8\";e=i.from(e,t)}var r=this._block;var n=this._blockSize;var a=e.length;var s=this._len;for(var o=0;o<a;){var h=s%n;var u=Math.min(a-o,n-h);for(var d=0;d<u;d++){r[h+d]=e[o+d]}s+=u;o+=u;if(s%n===0){this._update(r)}}this._len+=a;return this};Hash.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128;this._block.fill(0,t+1);if(t>=this._finalSize){this._update(this._block);this._block.fill(0)}var r=this._len*8;if(r<=4294967295){this._block.writeUInt32BE(r,this._blockSize-4)}else{var i=(r&4294967295)>>>0;var n=(r-i)/4294967296;this._block.writeUInt32BE(n,this._blockSize-8);this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a};Hash.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")};e.exports=Hash},4371:function(e,t,r){var i=e.exports=function SHA(e){e=e.toLowerCase();var t=i[e];if(!t)throw new Error(e+\" is not supported (we accept pull requests)\");return new t};i.sha=r(4018);i.sha1=r(4179);i.sha224=r(532);i.sha256=r(1843);i.sha384=r(7455);i.sha512=r(9934)},4018:function(e,t,r){var i=r(3782);var n=r(2858);var a=r(6911).Buffer;var s=[1518500249,1859775393,2400959708|0,3395469782|0];var o=new Array(80);function Sha(){this.init();this._w=o;n.call(this,64,56)}i(Sha,n);Sha.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl5(e){return e<<5|e>>>27}function rotl30(e){return e<<30|e>>>2}function ft(e,t,r,i){if(e===0)return t&r|~t&i;if(e===2)return t&r|t&i|r&i;return t^r^i}Sha.prototype._update=function(e){var t=this._w;var r=this._a|0;var i=this._b|0;var n=this._c|0;var a=this._d|0;var o=this._e|0;for(var h=0;h<16;++h)t[h]=e.readInt32BE(h*4);for(;h<80;++h)t[h]=t[h-3]^t[h-8]^t[h-14]^t[h-16];for(var u=0;u<80;++u){var d=~~(u/20);var c=rotl5(r)+ft(d,i,n,a)+o+t[u]+s[d]|0;o=a;a=n;n=rotl30(i);i=r;r=c}this._a=r+this._a|0;this._b=i+this._b|0;this._c=n+this._c|0;this._d=a+this._d|0;this._e=o+this._e|0};Sha.prototype._hash=function(){var e=a.allocUnsafe(20);e.writeInt32BE(this._a|0,0);e.writeInt32BE(this._b|0,4);e.writeInt32BE(this._c|0,8);e.writeInt32BE(this._d|0,12);e.writeInt32BE(this._e|0,16);return e};e.exports=Sha},4179:function(e,t,r){var i=r(3782);var n=r(2858);var a=r(6911).Buffer;var s=[1518500249,1859775393,2400959708|0,3395469782|0];var o=new Array(80);function Sha1(){this.init();this._w=o;n.call(this,64,56)}i(Sha1,n);Sha1.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl1(e){return e<<1|e>>>31}function rotl5(e){return e<<5|e>>>27}function rotl30(e){return e<<30|e>>>2}function ft(e,t,r,i){if(e===0)return t&r|~t&i;if(e===2)return t&r|t&i|r&i;return t^r^i}Sha1.prototype._update=function(e){var t=this._w;var r=this._a|0;var i=this._b|0;var n=this._c|0;var a=this._d|0;var o=this._e|0;for(var h=0;h<16;++h)t[h]=e.readInt32BE(h*4);for(;h<80;++h)t[h]=rotl1(t[h-3]^t[h-8]^t[h-14]^t[h-16]);for(var u=0;u<80;++u){var d=~~(u/20);var c=rotl5(r)+ft(d,i,n,a)+o+t[u]+s[d]|0;o=a;a=n;n=rotl30(i);i=r;r=c}this._a=r+this._a|0;this._b=i+this._b|0;this._c=n+this._c|0;this._d=a+this._d|0;this._e=o+this._e|0};Sha1.prototype._hash=function(){var e=a.allocUnsafe(20);e.writeInt32BE(this._a|0,0);e.writeInt32BE(this._b|0,4);e.writeInt32BE(this._c|0,8);e.writeInt32BE(this._d|0,12);e.writeInt32BE(this._e|0,16);return e};e.exports=Sha1},532:function(e,t,r){var i=r(3782);var n=r(1843);var a=r(2858);var s=r(6911).Buffer;var o=new Array(64);function Sha224(){this.init();this._w=o;a.call(this,64,56)}i(Sha224,n);Sha224.prototype.init=function(){this._a=3238371032;this._b=914150663;this._c=812702999;this._d=4144912697;this._e=4290775857;this._f=1750603025;this._g=1694076839;this._h=3204075428;return this};Sha224.prototype._hash=function(){var e=s.allocUnsafe(28);e.writeInt32BE(this._a,0);e.writeInt32BE(this._b,4);e.writeInt32BE(this._c,8);e.writeInt32BE(this._d,12);e.writeInt32BE(this._e,16);e.writeInt32BE(this._f,20);e.writeInt32BE(this._g,24);return e};e.exports=Sha224},1843:function(e,t,r){var i=r(3782);var n=r(2858);var a=r(6911).Buffer;var s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var o=new Array(64);function Sha256(){this.init();this._w=o;n.call(this,64,56)}i(Sha256,n);Sha256.prototype.init=function(){this._a=1779033703;this._b=3144134277;this._c=1013904242;this._d=2773480762;this._e=1359893119;this._f=2600822924;this._g=528734635;this._h=1541459225;return this};function ch(e,t,r){return r^e&(t^r)}function maj(e,t,r){return e&t|r&(e|t)}function sigma0(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function sigma1(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function gamma0(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function gamma1(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Sha256.prototype._update=function(e){var t=this._w;var r=this._a|0;var i=this._b|0;var n=this._c|0;var a=this._d|0;var o=this._e|0;var h=this._f|0;var u=this._g|0;var d=this._h|0;for(var c=0;c<16;++c)t[c]=e.readInt32BE(c*4);for(;c<64;++c)t[c]=gamma1(t[c-2])+t[c-7]+gamma0(t[c-15])+t[c-16]|0;for(var l=0;l<64;++l){var p=d+sigma1(o)+ch(o,h,u)+s[l]+t[l]|0;var v=sigma0(r)+maj(r,i,n)|0;d=u;u=h;h=o;o=a+p|0;a=n;n=i;i=r;r=p+v|0}this._a=r+this._a|0;this._b=i+this._b|0;this._c=n+this._c|0;this._d=a+this._d|0;this._e=o+this._e|0;this._f=h+this._f|0;this._g=u+this._g|0;this._h=d+this._h|0};Sha256.prototype._hash=function(){var e=a.allocUnsafe(32);e.writeInt32BE(this._a,0);e.writeInt32BE(this._b,4);e.writeInt32BE(this._c,8);e.writeInt32BE(this._d,12);e.writeInt32BE(this._e,16);e.writeInt32BE(this._f,20);e.writeInt32BE(this._g,24);e.writeInt32BE(this._h,28);return e};e.exports=Sha256},7455:function(e,t,r){var i=r(3782);var n=r(9934);var a=r(2858);var s=r(6911).Buffer;var o=new Array(160);function Sha384(){this.init();this._w=o;a.call(this,128,112)}i(Sha384,n);Sha384.prototype.init=function(){this._ah=3418070365;this._bh=1654270250;this._ch=2438529370;this._dh=355462360;this._eh=1731405415;this._fh=2394180231;this._gh=3675008525;this._hh=1203062813;this._al=3238371032;this._bl=914150663;this._cl=812702999;this._dl=4144912697;this._el=4290775857;this._fl=1750603025;this._gl=1694076839;this._hl=3204075428;return this};Sha384.prototype._hash=function(){var e=s.allocUnsafe(48);function writeInt64BE(t,r,i){e.writeInt32BE(t,i);e.writeInt32BE(r,i+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);return e};e.exports=Sha384},9934:function(e,t,r){var i=r(3782);var n=r(2858);var a=r(6911).Buffer;var s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];var o=new Array(160);function Sha512(){this.init();this._w=o;n.call(this,128,112)}i(Sha512,n);Sha512.prototype.init=function(){this._ah=1779033703;this._bh=3144134277;this._ch=1013904242;this._dh=2773480762;this._eh=1359893119;this._fh=2600822924;this._gh=528734635;this._hh=1541459225;this._al=4089235720;this._bl=2227873595;this._cl=4271175723;this._dl=1595750129;this._el=2917565137;this._fl=725511199;this._gl=4215389547;this._hl=327033209;return this};function Ch(e,t,r){return r^e&(t^r)}function maj(e,t,r){return e&t|r&(e|t)}function sigma0(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function sigma1(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function Gamma0(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function Gamma0l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function Gamma1(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function Gamma1l(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function getCarry(e,t){return e>>>0<t>>>0?1:0}Sha512.prototype._update=function(e){var t=this._w;var r=this._ah|0;var i=this._bh|0;var n=this._ch|0;var a=this._dh|0;var o=this._eh|0;var h=this._fh|0;var u=this._gh|0;var d=this._hh|0;var c=this._al|0;var l=this._bl|0;var p=this._cl|0;var v=this._dl|0;var b=this._el|0;var m=this._fl|0;var y=this._gl|0;var g=this._hl|0;for(var _=0;_<32;_+=2){t[_]=e.readInt32BE(_*4);t[_+1]=e.readInt32BE(_*4+4)}for(;_<160;_+=2){var w=t[_-15*2];var M=t[_-15*2+1];var B=Gamma0(w,M);var E=Gamma0l(M,w);w=t[_-2*2];M=t[_-2*2+1];var k=Gamma1(w,M);var A=Gamma1l(M,w);var N=t[_-7*2];var P=t[_-7*2+1];var x=t[_-16*2];var I=t[_-16*2+1];var C=E+P|0;var D=B+N+getCarry(C,E)|0;C=C+A|0;D=D+k+getCarry(C,A)|0;C=C+I|0;D=D+x+getCarry(C,I)|0;t[_]=D;t[_+1]=C}for(var T=0;T<160;T+=2){D=t[T];C=t[T+1];var j=maj(r,i,n);var q=maj(c,l,p);var O=sigma0(r,c);var H=sigma0(c,r);var L=sigma1(o,b);var z=sigma1(b,o);var F=s[T];var U=s[T+1];var W=Ch(o,h,u);var V=Ch(b,m,y);var G=g+z|0;var J=d+L+getCarry(G,g)|0;G=G+V|0;J=J+W+getCarry(G,V)|0;G=G+U|0;J=J+F+getCarry(G,U)|0;G=G+C|0;J=J+D+getCarry(G,C)|0;var Z=H+q|0;var X=O+j+getCarry(Z,H)|0;d=u;g=y;u=h;y=m;h=o;m=b;b=v+G|0;o=a+J+getCarry(b,v)|0;a=n;v=p;n=i;p=l;i=r;l=c;c=G+Z|0;r=J+X+getCarry(c,G)|0}this._al=this._al+c|0;this._bl=this._bl+l|0;this._cl=this._cl+p|0;this._dl=this._dl+v|0;this._el=this._el+b|0;this._fl=this._fl+m|0;this._gl=this._gl+y|0;this._hl=this._hl+g|0;this._ah=this._ah+r+getCarry(this._al,c)|0;this._bh=this._bh+i+getCarry(this._bl,l)|0;this._ch=this._ch+n+getCarry(this._cl,p)|0;this._dh=this._dh+a+getCarry(this._dl,v)|0;this._eh=this._eh+o+getCarry(this._el,b)|0;this._fh=this._fh+h+getCarry(this._fl,m)|0;this._gh=this._gh+u+getCarry(this._gl,y)|0;this._hh=this._hh+d+getCarry(this._hl,g)|0};Sha512.prototype._hash=function(){var e=a.allocUnsafe(64);function writeInt64BE(t,r,i){e.writeInt32BE(t,i);e.writeInt32BE(r,i+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);writeInt64BE(this._gh,this._gl,48);writeInt64BE(this._hh,this._hl,56);return e};e.exports=Sha512},3704:function(e,t,r){\"use strict\";var i=r(5055).Buffer;var n=i.isEncoding||function(e){e=\"\"+e;switch(e&&e.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return true;default:return false}};function _normalizeEncoding(e){if(!e)return\"utf8\";var t;while(true){switch(e){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return e;default:if(t)return;e=(\"\"+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!==\"string\"&&(i.isEncoding===n||!n(e)))throw new Error(\"Unknown encoding: \"+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case\"utf16le\":this.text=utf16Text;this.end=utf16End;t=4;break;case\"utf8\":this.fillLast=utf8FillLast;t=4;break;case\"base64\":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=i.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return\"\";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return\"\";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r<e.length)return t?t+this.text(e,r):this.text(e,r);return t||\"\"};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(e){if(this.lastNeed<=e.length){e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length);this.lastNeed-=e.length};function utf8CheckByte(e){if(e<=127)return 0;else if(e>>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var i=t.length-1;if(i<r)return 0;var n=utf8CheckByte(t[i]);if(n>=0){if(n>0)e.lastNeed=n-1;return n}if(--i<r||n===-2)return 0;n=utf8CheckByte(t[i]);if(n>=0){if(n>0)e.lastNeed=n-2;return n}if(--i<r||n===-2)return 0;n=utf8CheckByte(t[i]);if(n>=0){if(n>0){if(n===2)n=0;else e.lastNeed=n-3}return n}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return\"�\"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return\"�\"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return\"�\"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString(\"utf8\",t);this.lastTotal=r;var i=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,i);return e.toString(\"utf8\",t,i)}function utf8End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed)return t+\"�\";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString(\"utf16le\",t);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString(\"utf16le\",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString(\"utf16le\",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString(\"base64\",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString(\"base64\",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed)return t+this.lastChar.toString(\"base64\",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):\"\"}},6769:function(e){e.exports=deprecate;function deprecate(e,t){if(config(\"noDeprecation\")){return e}var r=false;function deprecated(){if(!r){if(config(\"throwDeprecation\")){throw new Error(t)}else if(config(\"traceDeprecation\")){console.trace(t)}else{console.warn(t)}r=true}return e.apply(this,arguments)}return deprecated}function config(e){try{if(!__webpack_require__.g.localStorage)return false}catch(e){return false}var t=__webpack_require__.g.localStorage[e];if(null==t)return false;return String(t).toLowerCase()===\"true\"}},4300:function(e){\"use strict\";e.exports=__webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")},6113:function(e){\"use strict\";e.exports=__webpack_require__(/*! crypto */ \"(app-pages-browser)/./node_modules/next/dist/compiled/crypto-browserify/index.js\")},2361:function(e){\"use strict\";e.exports=__webpack_require__(/*! events */ \"(app-pages-browser)/./node_modules/next/dist/compiled/events/events.js\")},2781:function(e){\"use strict\";e.exports=__webpack_require__(/*! stream */ \"(app-pages-browser)/./node_modules/next/dist/compiled/stream-browserify/index.js\")},1576:function(e){\"use strict\";e.exports=__webpack_require__(/*! string_decoder */ \"(app-pages-browser)/./node_modules/next/dist/compiled/string_decoder/string_decoder.js\")},3837:function(e){\"use strict\";e.exports=__webpack_require__(/*! util */ \"(app-pages-browser)/./node_modules/next/dist/compiled/util/util.js\")},6144:function(e){\"use strict\";e.exports=__webpack_require__(/*! vm */ \"(app-pages-browser)/./node_modules/next/dist/compiled/vm-browserify/index.js\")},5866:function(e){\"use strict\";e.exports=JSON.parse('{\"aes-128-ecb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-192-ecb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-256-ecb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-128-cbc\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-192-cbc\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-256-cbc\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes128\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes192\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes256\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-128-cfb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-192-cfb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-256-cfb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-128-cfb8\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-192-cfb8\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-256-cfb8\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-128-cfb1\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-192-cfb1\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-256-cfb1\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-128-ofb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-192-ofb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-256-ofb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-128-ctr\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-192-ctr\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-256-ctr\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-128-gcm\":{\"cipher\":\"AES\",\"key\":128,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-192-gcm\":{\"cipher\":\"AES\",\"key\":192,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-256-gcm\":{\"cipher\":\"AES\",\"key\":256,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"}}')},2908:function(e){\"use strict\";e.exports=JSON.parse('{\"sha224WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"sha256WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"sha384WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"sha512WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{\"sign\":\"rsa\",\"hash\":\"sha1\",\"id\":\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{\"sign\":\"ecdsa\",\"hash\":\"sha1\",\"id\":\"\"},\"sha256\":{\"sign\":\"ecdsa\",\"hash\":\"sha256\",\"id\":\"\"},\"sha224\":{\"sign\":\"ecdsa\",\"hash\":\"sha224\",\"id\":\"\"},\"sha384\":{\"sign\":\"ecdsa\",\"hash\":\"sha384\",\"id\":\"\"},\"sha512\":{\"sign\":\"ecdsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-SHA1\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-WITH-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-WITH-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-WITH-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-WITH-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-RIPEMD160\":{\"sign\":\"dsa\",\"hash\":\"rmd160\",\"id\":\"\"},\"ripemd160WithRSA\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"md5WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"}}')},9267:function(e){\"use strict\";e.exports=JSON.parse('{\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}')},7992:function(e){\"use strict\";e.exports=JSON.parse('{\"modp1\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},\"modp2\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},\"modp5\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},\"modp14\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},\"modp15\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},\"modp16\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},\"modp17\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},\"modp18\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}')},2531:function(e){\"use strict\";e.exports={i8:\"6.5.3\"}},2510:function(e){\"use strict\";e.exports=JSON.parse('{\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}')}};var t={};function __nccwpck_require__(r){var i=t[r];if(i!==undefined){return i.exports}var n=t[r]={id:r,loaded:false,exports:{}};var a=true;try{e[r].call(n.exports,n,n.exports,__nccwpck_require__);a=false}finally{if(a)delete t[r]}n.loaded=true;return n.exports}!function(){__nccwpck_require__.nmd=function(e){e.paths=[];if(!e.children)e.children=[];return e}}();if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};!function(){\"use strict\";var e=r;e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=__nccwpck_require__(7223);e.createHash=e.Hash=__nccwpck_require__(9739);e.createHmac=e.Hmac=__nccwpck_require__(4873);var t=__nccwpck_require__(9276);var i=Object.keys(t);var n=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(i);e.getHashes=function(){return n};var a=__nccwpck_require__(4978);e.pbkdf2=a.pbkdf2;e.pbkdf2Sync=a.pbkdf2Sync;var s=__nccwpck_require__(8996);e.Cipher=s.Cipher;e.createCipher=s.createCipher;e.Cipheriv=s.Cipheriv;e.createCipheriv=s.createCipheriv;e.Decipher=s.Decipher;e.createDecipher=s.createDecipher;e.Decipheriv=s.Decipheriv;e.createDecipheriv=s.createDecipheriv;e.getCiphers=s.getCiphers;e.listCiphers=s.listCiphers;var o=__nccwpck_require__(6587);e.DiffieHellmanGroup=o.DiffieHellmanGroup;e.createDiffieHellmanGroup=o.createDiffieHellmanGroup;e.getDiffieHellman=o.getDiffieHellman;e.createDiffieHellman=o.createDiffieHellman;e.DiffieHellman=o.DiffieHellman;var h=__nccwpck_require__(4078);e.createSign=h.createSign;e.Sign=h.Sign;e.createVerify=h.createVerify;e.Verify=h.Verify;e.createECDH=__nccwpck_require__(9942);var u=__nccwpck_require__(9783);e.publicEncrypt=u.publicEncrypt;e.privateEncrypt=u.privateEncrypt;e.publicDecrypt=u.publicDecrypt;e.privateDecrypt=u.privateDecrypt;var d=__nccwpck_require__(6445);e.randomFill=d.randomFill;e.randomFillSync=d.randomFillSync;e.createCredentials=function(){throw new Error([\"sorry, createCredentials is not implemented yet\",\"we accept pull requests\",\"https://github.com/crypto-browserify/crypto-browserify\"].join(\"\\n\"))};e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvY3J5cHRvLWJyb3dzZXJpZnkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUEsWUFBWSxPQUFPLHFCQUFxQixRQUFRLGdCQUFnQix1QkFBdUIsY0FBYyxvQkFBb0IsbUJBQW1CLG1CQUFtQixxQkFBcUIsY0FBYyxjQUFjLFFBQVEsOEJBQThCLHdCQUF3QixxQkFBcUIsWUFBWSxZQUFZLGlCQUFpQixpQkFBaUIsc0RBQXNELE1BQU0sSUFBSSw2REFBNkQsK0JBQStCLE1BQU0sSUFBSSxTQUFTLGNBQWMsb0JBQW9CLE9BQU8sNkNBQTZDLGdCQUFnQixvQkFBb0IscURBQXFELFdBQVcsc0ZBQXNGLHlCQUF5QiwrQ0FBK0Msd0NBQXdDLHFEQUFxRCxXQUFXLHNGQUFzRix5QkFBeUIsK0NBQStDLHdDQUF3QyxzQkFBc0IsY0FBYyxzQkFBc0IscUJBQXFCLDRCQUE0QixlQUFlLG1CQUFtQiwrQkFBK0IsT0FBTyxZQUFZLGNBQWMscUJBQXFCLG1CQUFtQixrQkFBa0IsNkNBQTZDLE9BQU8sMERBQTBELG9EQUFvRCxtQ0FBbUMsa0JBQWtCLHFCQUFxQixxQkFBcUIsMENBQTBDLFVBQVUsbURBQW1ELGtDQUFrQyx3REFBd0QsNkVBQTZFLG9EQUFvRCxnREFBZ0QsK0VBQStFLG1DQUFtQyxxQ0FBcUMscUJBQXFCLHVCQUF1QixlQUFlLFVBQVUsNENBQTRDLDREQUE0RCw0QkFBNEIscUJBQXFCLGNBQWMsOEJBQThCLDBEQUEwRCxzQkFBc0IsU0FBUyxRQUFRLDZCQUE2QixrRUFBa0UsYUFBYSxjQUFjLDZCQUE2QixhQUFhLDRCQUE0Qix1QkFBdUIsYUFBYSxxQkFBcUIsS0FBSywrQ0FBK0Msa0JBQWtCLGdEQUFnRCwyQkFBMkIsVUFBVSw0QkFBNEIsOEJBQThCLGdDQUFnQyxZQUFZLFlBQVksR0FBRyxLQUFLLGdEQUFnRCwyREFBMkQsb0RBQW9ELGVBQWUsVUFBVSxxQkFBcUIs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QXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxpQkFBaUIsaUJBQWlCLHFCQUFxQixpQkFBaUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxpQkFBaUIsaUJBQWlCLHFCQUFxQixpQkFBaUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxpQkFBaUIsaUJBQWlCLHFCQUFxQixpQkFBaUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxpQkFBaUIsaUJBQWlCLHFCQUFxQixpQkFBaUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsa0JBQWtCLGtCQUFrQixzQkFBc0Isa0JBQWtCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxrQkFBa0Isa0JBQWtCLHNCQUFzQixrQkFBa0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsa0JBQWtCLGtCQUFrQixzQkFBc0Isa0JBQWtCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsa0JBQWtCLGtCQUFrQixzQkFBc0Isa0JBQWtCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLGdDQUFnQyw2QkFBNkIsYUFBYSxrQkFBa0Isa0JBQWtCLHNCQUFzQixrQkFBa0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsa0JBQWtCLGtCQUFrQixzQkFBc0Isa0JBQWtCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZC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LGlDQUFpQyxZQUFZLGlCQUFpQixpQkFBaUIscUJBQXFCLGlCQUFpQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsZ0NBQWdDLDZCQUE2QixhQUFhLGlCQUFpQixpQkFBaUIscUJBQXFCLGlCQUFpQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0IsZ0NBQWdDLDZCQUE2QixhQUFhLGlCQUFpQixpQkFBaUIscUJBQXFCLGlCQUFpQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIsc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0IsZ0NBQWdDLDZCQUE2QixhQUFhLGlCQUFpQixpQkFBaUIscUJBQXFCLGlCQUFpQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixxQkFBcUIscUJBQXFCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsaUJBQWlCLGlCQUFpQixxQkFBcUIsaUJBQWlCLHFCQUFxQixxQkFBcUIscUJBQXFCLHFCQUFxQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0IsZ0NBQWdDLDZCQUE2QixhQUFhLGlCQUFpQixpQkFBaUIscUJBQXFCLGlCQUFpQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0IsZ0NBQWdDLDZCQUE2QixhQUFhLGtCQUFrQixrQkFBa0Isc0JBQXNCLGtCQUFrQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLGFBQWEsa0JBQWtCLGtCQUFrQixzQkFBc0Isa0JBQWtCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0Isc0JBQXNCLHNCQUFzQixzQkFBc0IsZ0NBQWdDLDZCQUE2QixhQUFhLGtCQUFrQixrQkFBa0Isc0JBQXNCLGtCQUFrQixzQkFBc0Isc0JBQXNC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QUFrQyxzQkFBc0Isa0NBQWtDLDBCQUEwQixzQ0FBc0MsMEJBQTBCLDRCQUE0QixnQ0FBZ0MsMENBQTBDLHNEQUFzRCxzQ0FBc0MsNENBQTRDLGdDQUFnQyxnQ0FBZ0MsMEJBQTBCLGNBQWMsOEJBQThCLGtCQUFrQix1Q0FBdUMsZ0NBQWdDLGdDQUFnQyxrQ0FBa0MsZ0NBQWdDLGtDQUFrQyxnQ0FBZ0MsMEJBQTBCLGtDQUFrQywrQkFBK0Isb0tBQW9LLGFBQWEsa1dBQWtXLEdBQUcsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvY3J5cHRvLWJyb3dzZXJpZnkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7dmFyIGU9ezcxNjA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXQ7aS5iaWdudW09cig3MTEpO2kuZGVmaW5lPXIoNDk1KS5kZWZpbmU7aS5iYXNlPXIoODUzKTtpLmNvbnN0YW50cz1yKDczMzUpO2kuZGVjb2RlcnM9cig2NzAxKTtpLmVuY29kZXJzPXIoMzQxOCl9LDQ5NTpmdW5jdGlvbihlLHQscil7dmFyIGk9cig3MTYwKTt2YXIgbj1yKDM3ODIpO3ZhciBhPXQ7YS5kZWZpbmU9ZnVuY3Rpb24gZGVmaW5lKGUsdCl7cmV0dXJuIG5ldyBFbnRpdHkoZSx0KX07ZnVuY3Rpb24gRW50aXR5KGUsdCl7dGhpcy5uYW1lPWU7dGhpcy5ib2R5PXQ7dGhpcy5kZWNvZGVycz17fTt0aGlzLmVuY29kZXJzPXt9fUVudGl0eS5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uIGNyZWF0ZU5hbWVkKGUpe3ZhciB0O3RyeXt0PXIoNjE0NCkucnVuSW5UaGlzQ29udGV4dChcIihmdW5jdGlvbiBcIit0aGlzLm5hbWUrXCIoZW50aXR5KSB7XFxuXCIrXCIgIHRoaXMuX2luaXROYW1lZChlbnRpdHkpO1xcblwiK1wifSlcIil9Y2F0Y2goZSl7dD1mdW5jdGlvbihlKXt0aGlzLl9pbml0TmFtZWQoZSl9fW4odCxlKTt0LnByb3RvdHlwZS5faW5pdE5hbWVkPWZ1bmN0aW9uIGluaXRuYW1lZCh0KXtlLmNhbGwodGhpcyx0KX07cmV0dXJuIG5ldyB0KHRoaXMpfTtFbnRpdHkucHJvdG90eXBlLl9nZXREZWNvZGVyPWZ1bmN0aW9uIF9nZXREZWNvZGVyKGUpe2U9ZXx8XCJkZXJcIjtpZighdGhpcy5kZWNvZGVycy5oYXNPd25Qcm9wZXJ0eShlKSl0aGlzLmRlY29kZXJzW2VdPXRoaXMuX2NyZWF0ZU5hbWVkKGkuZGVjb2RlcnNbZV0pO3JldHVybiB0aGlzLmRlY29kZXJzW2VdfTtFbnRpdHkucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbiBkZWNvZGUoZSx0LHIpe3JldHVybiB0aGlzLl9nZXREZWNvZGVyKHQpLmRlY29kZShlLHIpfTtFbnRpdHkucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uIF9nZXRFbmNvZGVyKGUpe2U9ZXx8XCJkZXJcIjtpZighdGhpcy5lbmNvZGVycy5oYXNPd25Qcm9wZXJ0eShlKSl0aGlzLmVuY29kZXJzW2VdPXRoaXMuX2NyZWF0ZU5hbWVkKGkuZW5jb2RlcnNbZV0pO3JldHVybiB0aGlzLmVuY29kZXJzW2VdfTtFbnRpdHkucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbiBlbmNvZGUoZSx0LHIpe3JldHVybiB0aGlzLl9nZXRFbmNvZGVyKHQpLmVuY29kZShlLHIpfX0sNjQ4MzpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDg1MykuUmVwb3J0ZXI7dmFyIGE9cig0MzAwKS5CdWZmZXI7ZnVuY3Rpb24gRGVjb2RlckJ1ZmZlcihlLHQpe24uY2FsbCh0aGlzLHQpO2lmKCFhLmlzQnVmZmVyKGUpKXt0aGlzLmVycm9yKFwiSW5wdXQgbm90IEJ1ZmZlclwiKTtyZXR1cm59dGhpcy5iYXNlPWU7dGhpcy5vZmZzZXQ9MDt0aGlzLmxlbmd0aD1lLmxlbmd0aH1pKERlY29kZXJCdWZmZXIsbik7dC5DPURlY29kZXJCdWZmZXI7RGVjb2RlckJ1ZmZlci5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbiBzYXZlKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjpuLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fTtEZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uIHJlc3RvcmUoZSl7dmFyIHQ9bmV3IERlY29kZXJCdWZmZXIodGhpcy5iYXNlKTt0Lm9mZnNldD1lLm9mZnNldDt0Lmxlbmd0aD10aGlzLm9mZnNldDt0aGlzLm9mZnNldD1lLm9mZnNldDtuLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyxlLnJlcG9ydGVyKTtyZXR1cm4gdH07RGVjb2RlckJ1ZmZlci5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbiBpc0VtcHR5KCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9O0RlY29kZXJCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbiByZWFkVUludDgoZSl7aWYodGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGgpcmV0dXJuIHRoaXMuYmFzZS5yZWFkVUludDgodGhpcy5vZmZzZXQrKyx0cnVlKTtlbHNlIHJldHVybiB0aGlzLmVycm9yKGV8fFwiRGVjb2RlckJ1ZmZlciBvdmVycnVuXCIpfTtEZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uIHNraXAoZSx0KXtpZighKHRoaXMub2Zmc2V0K2U8PXRoaXMubGVuZ3RoKSlyZXR1cm4gdGhpcy5lcnJvcih0fHxcIkRlY29kZXJCdWZmZXIgb3ZlcnJ1blwiKTt2YXIgcj1uZXcgRGVjb2RlckJ1ZmZlcih0aGlzLmJhc2UpO3IuX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyLm9mZnNldD10aGlzLm9mZnNldDtyLmxlbmd0aD10aGlzLm9mZnNldCtlO3RoaXMub2Zmc2V0Kz1lO3JldHVybiByfTtEZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24gcmF3KGUpe3JldHVybiB0aGlzLmJhc2Uuc2xpY2UoZT9lLm9mZnNldDp0aGlzLm9mZnNldCx0aGlzLmxlbmd0aCl9O2Z1bmN0aW9uIEVuY29kZXJCdWZmZXIoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXt0aGlzLmxlbmd0aD0wO3RoaXMudmFsdWU9ZS5tYXAoKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEVuY29kZXJCdWZmZXIpKWU9bmV3IEVuY29kZXJCdWZmZXIoZSx0KTt0aGlzLmxlbmd0aCs9ZS5sZW5ndGg7cmV0dXJuIGV9KSx0aGlzKX1lbHNlIGlmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7aWYoISgwPD1lJiZlPD0yNTUpKXJldHVybiB0LmVycm9yKFwibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZVwiKTt0aGlzLnZhbHVlPWU7dGhpcy5sZW5ndGg9MX1lbHNlIGlmKHR5cGVvZiBlPT09XCJzdHJpbmdcIil7dGhpcy52YWx1ZT1lO3RoaXMubGVuZ3RoPWEuYnl0ZUxlbmd0aChlKX1lbHNlIGlmKGEuaXNCdWZmZXIoZSkpe3RoaXMudmFsdWU9ZTt0aGlzLmxlbmd0aD1lLmxlbmd0aH1lbHNle3JldHVybiB0LmVycm9yKFwiVW5zdXBwb3J0ZWQgdHlwZTogXCIrdHlwZW9mIGUpfX10LlI9RW5jb2RlckJ1ZmZlcjtFbmNvZGVyQnVmZmVyLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uIGpvaW4oZSx0KXtpZighZSllPW5ldyBhKHRoaXMubGVuZ3RoKTtpZighdCl0PTA7aWYodGhpcy5sZW5ndGg9PT0wKXJldHVybiBlO2lmKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpe3RoaXMudmFsdWUuZm9yRWFjaCgoZnVuY3Rpb24ocil7ci5qb2luKGUsdCk7dCs9ci5sZW5ndGh9KSl9ZWxzZXtpZih0eXBlb2YgdGhpcy52YWx1ZT09PVwibnVtYmVyXCIpZVt0XT10aGlzLnZhbHVlO2Vsc2UgaWYodHlwZW9mIHRoaXMudmFsdWU9PT1cInN0cmluZ1wiKWUud3JpdGUodGhpcy52YWx1ZSx0KTtlbHNlIGlmKGEuaXNCdWZmZXIodGhpcy52YWx1ZSkpdGhpcy52YWx1ZS5jb3B5KGUsdCk7dCs9dGhpcy5sZW5ndGh9cmV0dXJuIGV9fSw4NTM6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXQ7aS5SZXBvcnRlcj1yKDEyOTMpLmI7aS5EZWNvZGVyQnVmZmVyPXIoNjQ4MykuQztpLkVuY29kZXJCdWZmZXI9cig2NDgzKS5SO2kuTm9kZT1yKDkzNzQpfSw5Mzc0OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDg1MykuUmVwb3J0ZXI7dmFyIG49cig4NTMpLkVuY29kZXJCdWZmZXI7dmFyIGE9cig4NTMpLkRlY29kZXJCdWZmZXI7dmFyIHM9cigzNTIzKTt2YXIgbz1bXCJzZXFcIixcInNlcW9mXCIsXCJzZXRcIixcInNldG9mXCIsXCJvYmppZFwiLFwiYm9vbFwiLFwiZ2VudGltZVwiLFwidXRjdGltZVwiLFwibnVsbF9cIixcImVudW1cIixcImludFwiLFwib2JqRGVzY1wiLFwiYml0c3RyXCIsXCJibXBzdHJcIixcImNoYXJzdHJcIixcImdlbnN0clwiLFwiZ3JhcGhzdHJcIixcImlhNXN0clwiLFwiaXNvNjQ2c3RyXCIsXCJudW1zdHJcIixcIm9jdHN0clwiLFwicHJpbnRzdHJcIixcInQ2MXN0clwiLFwidW5pc3RyXCIsXCJ1dGY4c3RyXCIsXCJ2aWRlb3N0clwiXTt2YXIgaD1bXCJrZXlcIixcIm9ialwiLFwidXNlXCIsXCJvcHRpb25hbFwiLFwiZXhwbGljaXRcIixcImltcGxpY2l0XCIsXCJkZWZcIixcImNob2ljZVwiLFwiYW55XCIsXCJjb250YWluc1wiXS5jb25jYXQobyk7dmFyIHU9W1wiX3BlZWtUYWdcIixcIl9kZWNvZGVUYWdcIixcIl91c2VcIixcIl9kZWNvZGVTdHJcIixcIl9kZWNvZGVPYmppZFwiLFwiX2RlY29kZVRpbWVcIixcIl9kZWNvZGVOdWxsXCIsXCJfZGVjb2RlSW50XCIsXCJfZGVjb2RlQm9vbFwiLFwiX2RlY29kZUxpc3RcIixcIl9lbmNvZGVDb21wb3NpdGVcIixcIl9lbmNvZGVTdHJcIixcIl9lbmNvZGVPYmppZFwiLFwiX2VuY29kZVRpbWVcIixcIl9lbmNvZGVOdWxsXCIsXCJfZW5jb2RlSW50XCIsXCJfZW5jb2RlQm9vbFwiXTtmdW5jdGlvbiBOb2RlKGUsdCl7dmFyIHI9e307dGhpcy5fYmFzZVN0YXRlPXI7ci5lbmM9ZTtyLnBhcmVudD10fHxudWxsO3IuY2hpbGRyZW49bnVsbDtyLnRhZz1udWxsO3IuYXJncz1udWxsO3IucmV2ZXJzZUFyZ3M9bnVsbDtyLmNob2ljZT1udWxsO3Iub3B0aW9uYWw9ZmFsc2U7ci5hbnk9ZmFsc2U7ci5vYmo9ZmFsc2U7ci51c2U9bnVsbDtyLnVzZURlY29kZXI9bnVsbDtyLmtleT1udWxsO3JbXCJkZWZhdWx0XCJdPW51bGw7ci5leHBsaWNpdD1udWxsO3IuaW1wbGljaXQ9bnVsbDtyLmNvbnRhaW5zPW51bGw7aWYoIXIucGFyZW50KXtyLmNoaWxkcmVuPVtdO3RoaXMuX3dyYXAoKX19ZS5leHBvcnRzPU5vZGU7dmFyIGQ9W1wiZW5jXCIsXCJwYXJlbnRcIixcImNoaWxkcmVuXCIsXCJ0YWdcIixcImFyZ3NcIixcInJldmVyc2VBcmdzXCIsXCJjaG9pY2VcIixcIm9wdGlvbmFsXCIsXCJhbnlcIixcIm9ialwiLFwidXNlXCIsXCJhbHRlcmVkVXNlXCIsXCJrZXlcIixcImRlZmF1bHRcIixcImV4cGxpY2l0XCIsXCJpbXBsaWNpdFwiLFwiY29udGFpbnNcIl07Tm9kZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24gY2xvbmUoKXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7dmFyIHQ9e307ZC5mb3JFYWNoKChmdW5jdGlvbihyKXt0W3JdPWVbcl19KSk7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IodC5wYXJlbnQpO3IuX2Jhc2VTdGF0ZT10O3JldHVybiByfTtOb2RlLnByb3RvdHlwZS5fd3JhcD1mdW5jdGlvbiB3cmFwKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO2guZm9yRWFjaCgoZnVuY3Rpb24odCl7dGhpc1t0XT1mdW5jdGlvbiBfd3JhcHBlZE1ldGhvZCgpe3ZhciByPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO2UuY2hpbGRyZW4ucHVzaChyKTtyZXR1cm4gclt0XS5hcHBseShyLGFyZ3VtZW50cyl9fSksdGhpcyl9O05vZGUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uIGluaXQoZSl7dmFyIHQ9dGhpcy5fYmFzZVN0YXRlO3ModC5wYXJlbnQ9PT1udWxsKTtlLmNhbGwodGhpcyk7dC5jaGlsZHJlbj10LmNoaWxkcmVuLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuX2Jhc2VTdGF0ZS5wYXJlbnQ9PT10aGlzfSksdGhpcyk7cy5lcXVhbCh0LmNoaWxkcmVuLmxlbmd0aCwxLFwiUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkXCIpfTtOb2RlLnByb3RvdHlwZS5fdXNlQXJncz1mdW5jdGlvbiB1c2VBcmdzKGUpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZTt2YXIgcj1lLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSksdGhpcyk7ZT1lLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIShlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9KSx0aGlzKTtpZihyLmxlbmd0aCE9PTApe3ModC5jaGlsZHJlbj09PW51bGwpO3QuY2hpbGRyZW49cjtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30pLHRoaXMpfWlmKGUubGVuZ3RoIT09MCl7cyh0LmFyZ3M9PT1udWxsKTt0LmFyZ3M9ZTt0LnJldmVyc2VBcmdzPWUubWFwKChmdW5jdGlvbihlKXtpZih0eXBlb2YgZSE9PVwib2JqZWN0XCJ8fGUuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIGU7dmFyIHQ9e307T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7aWYocj09KHJ8MCkpcnw9MDt2YXIgaT1lW3JdO3RbaV09cn0pKTtyZXR1cm4gdH0pKX19O3UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Tm9kZS5wcm90b3R5cGVbZV09ZnVuY3Rpb24gX292ZXJyaWRlZCgpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZTt0aHJvdyBuZXcgRXJyb3IoZStcIiBub3QgaW1wbGVtZW50ZWQgZm9yIGVuY29kaW5nOiBcIit0LmVuYyl9fSkpO28uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Tm9kZS5wcm90b3R5cGVbZV09ZnVuY3Rpb24gX3RhZ01ldGhvZCgpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3ModC50YWc9PT1udWxsKTt0LnRhZz1lO3RoaXMuX3VzZUFyZ3Mocik7cmV0dXJuIHRoaXN9fSkpO05vZGUucHJvdG90eXBlLnVzZT1mdW5jdGlvbiB1c2UoZSl7cyhlKTt2YXIgdD10aGlzLl9iYXNlU3RhdGU7cyh0LnVzZT09PW51bGwpO3QudXNlPWU7cmV0dXJuIHRoaXN9O05vZGUucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uIG9wdGlvbmFsKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO2Uub3B0aW9uYWw9dHJ1ZTtyZXR1cm4gdGhpc307Tm9kZS5wcm90b3R5cGUuZGVmPWZ1bmN0aW9uIGRlZihlKXt2YXIgdD10aGlzLl9iYXNlU3RhdGU7cyh0W1wiZGVmYXVsdFwiXT09PW51bGwpO3RbXCJkZWZhdWx0XCJdPWU7dC5vcHRpb25hbD10cnVlO3JldHVybiB0aGlzfTtOb2RlLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbiBleHBsaWNpdChlKXt2YXIgdD10aGlzLl9iYXNlU3RhdGU7cyh0LmV4cGxpY2l0PT09bnVsbCYmdC5pbXBsaWNpdD09PW51bGwpO3QuZXhwbGljaXQ9ZTtyZXR1cm4gdGhpc307Tm9kZS5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24gaW1wbGljaXQoZSl7dmFyIHQ9dGhpcy5fYmFzZVN0YXRlO3ModC5leHBsaWNpdD09PW51bGwmJnQuaW1wbGljaXQ9PT1udWxsKTt0LmltcGxpY2l0PWU7cmV0dXJuIHRoaXN9O05vZGUucHJvdG90eXBlLm9iaj1mdW5jdGlvbiBvYmooKXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtlLm9iaj10cnVlO2lmKHQubGVuZ3RoIT09MCl0aGlzLl91c2VBcmdzKHQpO3JldHVybiB0aGlzfTtOb2RlLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24ga2V5KGUpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZTtzKHQua2V5PT09bnVsbCk7dC5rZXk9ZTtyZXR1cm4gdGhpc307Tm9kZS5wcm90b3R5cGUuYW55PWZ1bmN0aW9uIGFueSgpe3ZhciBlPXRoaXMuX2Jhc2VTdGF0ZTtlLmFueT10cnVlO3JldHVybiB0aGlzfTtOb2RlLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24gY2hvaWNlKGUpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZTtzKHQuY2hvaWNlPT09bnVsbCk7dC5jaG9pY2U9ZTt0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKGUpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSkpO3JldHVybiB0aGlzfTtOb2RlLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbiBjb250YWlucyhlKXt2YXIgdD10aGlzLl9iYXNlU3RhdGU7cyh0LnVzZT09PW51bGwpO3QuY29udGFpbnM9ZTtyZXR1cm4gdGhpc307Tm9kZS5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbiBkZWNvZGUoZSx0KXt2YXIgcj10aGlzLl9iYXNlU3RhdGU7aWYoci5wYXJlbnQ9PT1udWxsKXJldHVybiBlLndyYXBSZXN1bHQoci5jaGlsZHJlblswXS5fZGVjb2RlKGUsdCkpO3ZhciBpPXJbXCJkZWZhdWx0XCJdO3ZhciBuPXRydWU7dmFyIHM9bnVsbDtpZihyLmtleSE9PW51bGwpcz1lLmVudGVyS2V5KHIua2V5KTtpZihyLm9wdGlvbmFsKXt2YXIgbz1udWxsO2lmKHIuZXhwbGljaXQhPT1udWxsKW89ci5leHBsaWNpdDtlbHNlIGlmKHIuaW1wbGljaXQhPT1udWxsKW89ci5pbXBsaWNpdDtlbHNlIGlmKHIudGFnIT09bnVsbClvPXIudGFnO2lmKG89PT1udWxsJiYhci5hbnkpe3ZhciBoPWUuc2F2ZSgpO3RyeXtpZihyLmNob2ljZT09PW51bGwpdGhpcy5fZGVjb2RlR2VuZXJpYyhyLnRhZyxlLHQpO2Vsc2UgdGhpcy5fZGVjb2RlQ2hvaWNlKGUsdCk7bj10cnVlfWNhdGNoKGUpe249ZmFsc2V9ZS5yZXN0b3JlKGgpfWVsc2V7bj10aGlzLl9wZWVrVGFnKGUsbyxyLmFueSk7aWYoZS5pc0Vycm9yKG4pKXJldHVybiBufX12YXIgdTtpZihyLm9iaiYmbil1PWUuZW50ZXJPYmplY3QoKTtpZihuKXtpZihyLmV4cGxpY2l0IT09bnVsbCl7dmFyIGQ9dGhpcy5fZGVjb2RlVGFnKGUsci5leHBsaWNpdCk7aWYoZS5pc0Vycm9yKGQpKXJldHVybiBkO2U9ZH12YXIgYz1lLm9mZnNldDtpZihyLnVzZT09PW51bGwmJnIuY2hvaWNlPT09bnVsbCl7aWYoci5hbnkpdmFyIGg9ZS5zYXZlKCk7dmFyIGw9dGhpcy5fZGVjb2RlVGFnKGUsci5pbXBsaWNpdCE9PW51bGw/ci5pbXBsaWNpdDpyLnRhZyxyLmFueSk7aWYoZS5pc0Vycm9yKGwpKXJldHVybiBsO2lmKHIuYW55KWk9ZS5yYXcoaCk7ZWxzZSBlPWx9aWYodCYmdC50cmFjayYmci50YWchPT1udWxsKXQudHJhY2soZS5wYXRoKCksYyxlLmxlbmd0aCxcInRhZ2dlZFwiKTtpZih0JiZ0LnRyYWNrJiZyLnRhZyE9PW51bGwpdC50cmFjayhlLnBhdGgoKSxlLm9mZnNldCxlLmxlbmd0aCxcImNvbnRlbnRcIik7aWYoci5hbnkpaT1pO2Vsc2UgaWYoci5jaG9pY2U9PT1udWxsKWk9dGhpcy5fZGVjb2RlR2VuZXJpYyhyLnRhZyxlLHQpO2Vsc2UgaT10aGlzLl9kZWNvZGVDaG9pY2UoZSx0KTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYoIXIuYW55JiZyLmNob2ljZT09PW51bGwmJnIuY2hpbGRyZW4hPT1udWxsKXtyLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uIGRlY29kZUNoaWxkcmVuKHIpe3IuX2RlY29kZShlLHQpfSkpfWlmKHIuY29udGFpbnMmJihyLnRhZz09PVwib2N0c3RyXCJ8fHIudGFnPT09XCJiaXRzdHJcIikpe3ZhciBwPW5ldyBhKGkpO2k9dGhpcy5fZ2V0VXNlKHIuY29udGFpbnMsZS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUocCx0KX19aWYoci5vYmomJm4paT1lLmxlYXZlT2JqZWN0KHUpO2lmKHIua2V5IT09bnVsbCYmKGkhPT1udWxsfHxuPT09dHJ1ZSkpZS5sZWF2ZUtleShzLHIua2V5LGkpO2Vsc2UgaWYocyE9PW51bGwpZS5leGl0S2V5KHMpO3JldHVybiBpfTtOb2RlLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYz1mdW5jdGlvbiBkZWNvZGVHZW5lcmljKGUsdCxyKXt2YXIgaT10aGlzLl9iYXNlU3RhdGU7aWYoZT09PVwic2VxXCJ8fGU9PT1cInNldFwiKXJldHVybiBudWxsO2lmKGU9PT1cInNlcW9mXCJ8fGU9PT1cInNldG9mXCIpcmV0dXJuIHRoaXMuX2RlY29kZUxpc3QodCxlLGkuYXJnc1swXSxyKTtlbHNlIGlmKC9zdHIkLy50ZXN0KGUpKXJldHVybiB0aGlzLl9kZWNvZGVTdHIodCxlLHIpO2Vsc2UgaWYoZT09PVwib2JqaWRcIiYmaS5hcmdzKXJldHVybiB0aGlzLl9kZWNvZGVPYmppZCh0LGkuYXJnc1swXSxpLmFyZ3NbMV0scik7ZWxzZSBpZihlPT09XCJvYmppZFwiKXJldHVybiB0aGlzLl9kZWNvZGVPYmppZCh0LG51bGwsbnVsbCxyKTtlbHNlIGlmKGU9PT1cImdlbnRpbWVcInx8ZT09PVwidXRjdGltZVwiKXJldHVybiB0aGlzLl9kZWNvZGVUaW1lKHQsZSxyKTtlbHNlIGlmKGU9PT1cIm51bGxfXCIpcmV0dXJuIHRoaXMuX2RlY29kZU51bGwodCxyKTtlbHNlIGlmKGU9PT1cImJvb2xcIilyZXR1cm4gdGhpcy5fZGVjb2RlQm9vbCh0LHIpO2Vsc2UgaWYoZT09PVwib2JqRGVzY1wiKXJldHVybiB0aGlzLl9kZWNvZGVTdHIodCxlLHIpO2Vsc2UgaWYoZT09PVwiaW50XCJ8fGU9PT1cImVudW1cIilyZXR1cm4gdGhpcy5fZGVjb2RlSW50KHQsaS5hcmdzJiZpLmFyZ3NbMF0scik7aWYoaS51c2UhPT1udWxsKXtyZXR1cm4gdGhpcy5fZ2V0VXNlKGkudXNlLHQuX3JlcG9ydGVyU3RhdGUub2JqKS5fZGVjb2RlKHQscil9ZWxzZXtyZXR1cm4gdC5lcnJvcihcInVua25vd24gdGFnOiBcIitlKX19O05vZGUucHJvdG90eXBlLl9nZXRVc2U9ZnVuY3Rpb24gX2dldFVzZShlLHQpe3ZhciByPXRoaXMuX2Jhc2VTdGF0ZTtyLnVzZURlY29kZXI9dGhpcy5fdXNlKGUsdCk7cyhyLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5wYXJlbnQ9PT1udWxsKTtyLnVzZURlY29kZXI9ci51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF07aWYoci5pbXBsaWNpdCE9PXIudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0KXtyLnVzZURlY29kZXI9ci51c2VEZWNvZGVyLmNsb25lKCk7ci51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQ9ci5pbXBsaWNpdH1yZXR1cm4gci51c2VEZWNvZGVyfTtOb2RlLnByb3RvdHlwZS5fZGVjb2RlQ2hvaWNlPWZ1bmN0aW9uIGRlY29kZUNob2ljZShlLHQpe3ZhciByPXRoaXMuX2Jhc2VTdGF0ZTt2YXIgaT1udWxsO3ZhciBuPWZhbHNlO09iamVjdC5rZXlzKHIuY2hvaWNlKS5zb21lKChmdW5jdGlvbihhKXt2YXIgcz1lLnNhdmUoKTt2YXIgbz1yLmNob2ljZVthXTt0cnl7dmFyIGg9by5fZGVjb2RlKGUsdCk7aWYoZS5pc0Vycm9yKGgpKXJldHVybiBmYWxzZTtpPXt0eXBlOmEsdmFsdWU6aH07bj10cnVlfWNhdGNoKHQpe2UucmVzdG9yZShzKTtyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9KSx0aGlzKTtpZighbilyZXR1cm4gZS5lcnJvcihcIkNob2ljZSBub3QgbWF0Y2hlZFwiKTtyZXR1cm4gaX07Tm9kZS5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24gY3JlYXRlRW5jb2RlckJ1ZmZlcihlKXtyZXR1cm4gbmV3IG4oZSx0aGlzLnJlcG9ydGVyKX07Tm9kZS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbiBlbmNvZGUoZSx0LHIpe3ZhciBpPXRoaXMuX2Jhc2VTdGF0ZTtpZihpW1wiZGVmYXVsdFwiXSE9PW51bGwmJmlbXCJkZWZhdWx0XCJdPT09ZSlyZXR1cm47dmFyIG49dGhpcy5fZW5jb2RlVmFsdWUoZSx0LHIpO2lmKG49PT11bmRlZmluZWQpcmV0dXJuO2lmKHRoaXMuX3NraXBEZWZhdWx0KG4sdCxyKSlyZXR1cm47cmV0dXJuIG59O05vZGUucHJvdG90eXBlLl9lbmNvZGVWYWx1ZT1mdW5jdGlvbiBlbmNvZGUoZSx0LHIpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZTtpZihuLnBhcmVudD09PW51bGwpcmV0dXJuIG4uY2hpbGRyZW5bMF0uX2VuY29kZShlLHR8fG5ldyBpKTt2YXIgYT1udWxsO3RoaXMucmVwb3J0ZXI9dDtpZihuLm9wdGlvbmFsJiZlPT09dW5kZWZpbmVkKXtpZihuW1wiZGVmYXVsdFwiXSE9PW51bGwpZT1uW1wiZGVmYXVsdFwiXTtlbHNlIHJldHVybn12YXIgcz1udWxsO3ZhciBvPWZhbHNlO2lmKG4uYW55KXthPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZSl9ZWxzZSBpZihuLmNob2ljZSl7YT10aGlzLl9lbmNvZGVDaG9pY2UoZSx0KX1lbHNlIGlmKG4uY29udGFpbnMpe3M9dGhpcy5fZ2V0VXNlKG4uY29udGFpbnMscikuX2VuY29kZShlLHQpO289dHJ1ZX1lbHNlIGlmKG4uY2hpbGRyZW4pe3M9bi5jaGlsZHJlbi5tYXAoKGZ1bmN0aW9uKHIpe2lmKHIuX2Jhc2VTdGF0ZS50YWc9PT1cIm51bGxfXCIpcmV0dXJuIHIuX2VuY29kZShudWxsLHQsZSk7aWYoci5fYmFzZVN0YXRlLmtleT09PW51bGwpcmV0dXJuIHQuZXJyb3IoXCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleVwiKTt2YXIgaT10LmVudGVyS2V5KHIuX2Jhc2VTdGF0ZS5rZXkpO2lmKHR5cGVvZiBlIT09XCJvYmplY3RcIilyZXR1cm4gdC5lcnJvcihcIkNoaWxkIGV4cGVjdGVkLCBidXQgaW5wdXQgaXMgbm90IG9iamVjdFwiKTt2YXIgbj1yLl9lbmNvZGUoZVtyLl9iYXNlU3RhdGUua2V5XSx0LGUpO3QubGVhdmVLZXkoaSk7cmV0dXJuIG59KSx0aGlzKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpO3M9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzKX1lbHNle2lmKG4udGFnPT09XCJzZXFvZlwifHxuLnRhZz09PVwic2V0b2ZcIil7aWYoIShuLmFyZ3MmJm4uYXJncy5sZW5ndGg9PT0xKSlyZXR1cm4gdC5lcnJvcihcIlRvbyBtYW55IGFyZ3MgZm9yIDogXCIrbi50YWcpO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0LmVycm9yKFwic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheVwiKTt2YXIgaD10aGlzLmNsb25lKCk7aC5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGw7cz10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKGUubWFwKChmdW5jdGlvbihyKXt2YXIgaT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHRoaXMuX2dldFVzZShpLmFyZ3NbMF0sZSkuX2VuY29kZShyLHQpfSksaCkpfWVsc2UgaWYobi51c2UhPT1udWxsKXthPXRoaXMuX2dldFVzZShuLnVzZSxyKS5fZW5jb2RlKGUsdCl9ZWxzZXtzPXRoaXMuX2VuY29kZVByaW1pdGl2ZShuLnRhZyxlKTtvPXRydWV9fXZhciBhO2lmKCFuLmFueSYmbi5jaG9pY2U9PT1udWxsKXt2YXIgdT1uLmltcGxpY2l0IT09bnVsbD9uLmltcGxpY2l0Om4udGFnO3ZhciBkPW4uaW1wbGljaXQ9PT1udWxsP1widW5pdmVyc2FsXCI6XCJjb250ZXh0XCI7aWYodT09PW51bGwpe2lmKG4udXNlPT09bnVsbCl0LmVycm9yKFwiVGFnIGNvdWxkIGJlIG9taXR0ZWQgb25seSBmb3IgLnVzZSgpXCIpfWVsc2V7aWYobi51c2U9PT1udWxsKWE9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKHUsbyxkLHMpfX1pZihuLmV4cGxpY2l0IT09bnVsbClhPXRoaXMuX2VuY29kZUNvbXBvc2l0ZShuLmV4cGxpY2l0LGZhbHNlLFwiY29udGV4dFwiLGEpO3JldHVybiBhfTtOb2RlLnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uIGVuY29kZUNob2ljZShlLHQpe3ZhciByPXRoaXMuX2Jhc2VTdGF0ZTt2YXIgaT1yLmNob2ljZVtlLnR5cGVdO2lmKCFpKXtzKGZhbHNlLGUudHlwZStcIiBub3QgZm91bmQgaW4gXCIrSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoci5jaG9pY2UpKSl9cmV0dXJuIGkuX2VuY29kZShlLnZhbHVlLHQpfTtOb2RlLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uIGVuY29kZVByaW1pdGl2ZShlLHQpe3ZhciByPXRoaXMuX2Jhc2VTdGF0ZTtpZigvc3RyJC8udGVzdChlKSlyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKHQsZSk7ZWxzZSBpZihlPT09XCJvYmppZFwiJiZyLmFyZ3MpcmV0dXJuIHRoaXMuX2VuY29kZU9iamlkKHQsci5yZXZlcnNlQXJnc1swXSxyLmFyZ3NbMV0pO2Vsc2UgaWYoZT09PVwib2JqaWRcIilyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQodCxudWxsLG51bGwpO2Vsc2UgaWYoZT09PVwiZ2VudGltZVwifHxlPT09XCJ1dGN0aW1lXCIpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUodCxlKTtlbHNlIGlmKGU9PT1cIm51bGxfXCIpcmV0dXJuIHRoaXMuX2VuY29kZU51bGwoKTtlbHNlIGlmKGU9PT1cImludFwifHxlPT09XCJlbnVtXCIpcmV0dXJuIHRoaXMuX2VuY29kZUludCh0LHIuYXJncyYmci5yZXZlcnNlQXJnc1swXSk7ZWxzZSBpZihlPT09XCJib29sXCIpcmV0dXJuIHRoaXMuX2VuY29kZUJvb2wodCk7ZWxzZSBpZihlPT09XCJvYmpEZXNjXCIpcmV0dXJuIHRoaXMuX2VuY29kZVN0cih0LGUpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgdGFnOiBcIitlKX07Tm9kZS5wcm90b3R5cGUuX2lzTnVtc3RyPWZ1bmN0aW9uIGlzTnVtc3RyKGUpe3JldHVybi9eWzAtOSBdKiQvLnRlc3QoZSl9O05vZGUucHJvdG90eXBlLl9pc1ByaW50c3RyPWZ1bmN0aW9uIGlzUHJpbnRzdHIoZSl7cmV0dXJuL15bQS1aYS16MC05ICdcXChcXClcXCssXFwtXFwuXFwvOj1cXD9dKiQvLnRlc3QoZSl9fSwxMjkzOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDM3ODIpO2Z1bmN0aW9uIFJlcG9ydGVyKGUpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczplfHx7fSxlcnJvcnM6W119fXQuYj1SZXBvcnRlcjtSZXBvcnRlci5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbiBpc0Vycm9yKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUmVwb3J0ZXJFcnJvcn07UmVwb3J0ZXIucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24gc2F2ZSgpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJue29iajplLm9iaixwYXRoTGVuOmUucGF0aC5sZW5ndGh9fTtSZXBvcnRlci5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbiByZXN0b3JlKGUpe3ZhciB0PXRoaXMuX3JlcG9ydGVyU3RhdGU7dC5vYmo9ZS5vYmo7dC5wYXRoPXQucGF0aC5zbGljZSgwLGUucGF0aExlbil9O1JlcG9ydGVyLnByb3RvdHlwZS5lbnRlcktleT1mdW5jdGlvbiBlbnRlcktleShlKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLnB1c2goZSl9O1JlcG9ydGVyLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uIGV4aXRLZXkoZSl7dmFyIHQ9dGhpcy5fcmVwb3J0ZXJTdGF0ZTt0LnBhdGg9dC5wYXRoLnNsaWNlKDAsZS0xKX07UmVwb3J0ZXIucHJvdG90eXBlLmxlYXZlS2V5PWZ1bmN0aW9uIGxlYXZlS2V5KGUsdCxyKXt2YXIgaT10aGlzLl9yZXBvcnRlclN0YXRlO3RoaXMuZXhpdEtleShlKTtpZihpLm9iaiE9PW51bGwpaS5vYmpbdF09cn07UmVwb3J0ZXIucHJvdG90eXBlLnBhdGg9ZnVuY3Rpb24gcGF0aCgpe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbihcIi9cIil9O1JlcG9ydGVyLnByb3RvdHlwZS5lbnRlck9iamVjdD1mdW5jdGlvbiBlbnRlck9iamVjdCgpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7dmFyIHQ9ZS5vYmo7ZS5vYmo9e307cmV0dXJuIHR9O1JlcG9ydGVyLnByb3RvdHlwZS5sZWF2ZU9iamVjdD1mdW5jdGlvbiBsZWF2ZU9iamVjdChlKXt2YXIgdD10aGlzLl9yZXBvcnRlclN0YXRlO3ZhciByPXQub2JqO3Qub2JqPWU7cmV0dXJuIHJ9O1JlcG9ydGVyLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbiBlcnJvcihlKXt2YXIgdDt2YXIgcj10aGlzLl9yZXBvcnRlclN0YXRlO3ZhciBpPWUgaW5zdGFuY2VvZiBSZXBvcnRlckVycm9yO2lmKGkpe3Q9ZX1lbHNle3Q9bmV3IFJlcG9ydGVyRXJyb3Ioci5wYXRoLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuXCJbXCIrSlNPTi5zdHJpbmdpZnkoZSkrXCJdXCJ9KSkuam9pbihcIlwiKSxlLm1lc3NhZ2V8fGUsZS5zdGFjayl9aWYoIXIub3B0aW9ucy5wYXJ0aWFsKXRocm93IHQ7aWYoIWkpci5lcnJvcnMucHVzaCh0KTtyZXR1cm4gdH07UmVwb3J0ZXIucHJvdG90eXBlLndyYXBSZXN1bHQ9ZnVuY3Rpb24gd3JhcFJlc3VsdChlKXt2YXIgdD10aGlzLl9yZXBvcnRlclN0YXRlO2lmKCF0Lm9wdGlvbnMucGFydGlhbClyZXR1cm4gZTtyZXR1cm57cmVzdWx0OnRoaXMuaXNFcnJvcihlKT9udWxsOmUsZXJyb3JzOnQuZXJyb3JzfX07ZnVuY3Rpb24gUmVwb3J0ZXJFcnJvcihlLHQpe3RoaXMucGF0aD1lO3RoaXMucmV0aHJvdyh0KX1pKFJlcG9ydGVyRXJyb3IsRXJyb3IpO1JlcG9ydGVyRXJyb3IucHJvdG90eXBlLnJldGhyb3c9ZnVuY3Rpb24gcmV0aHJvdyhlKXt0aGlzLm1lc3NhZ2U9ZStcIiBhdDogXCIrKHRoaXMucGF0aHx8XCIoc2hhbGxvdylcIik7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxSZXBvcnRlckVycm9yKTtpZighdGhpcy5zdGFjayl7dHJ5e3Rocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpfWNhdGNoKGUpe3RoaXMuc3RhY2s9ZS5zdGFja319cmV0dXJuIHRoaXN9fSw5NzkxOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDczMzUpO3QudGFnQ2xhc3M9ezA6XCJ1bml2ZXJzYWxcIiwxOlwiYXBwbGljYXRpb25cIiwyOlwiY29udGV4dFwiLDM6XCJwcml2YXRlXCJ9O3QudGFnQ2xhc3NCeU5hbWU9aS5fcmV2ZXJzZSh0LnRhZ0NsYXNzKTt0LnRhZz17MDpcImVuZFwiLDE6XCJib29sXCIsMjpcImludFwiLDM6XCJiaXRzdHJcIiw0Olwib2N0c3RyXCIsNTpcIm51bGxfXCIsNjpcIm9iamlkXCIsNzpcIm9iakRlc2NcIiw4OlwiZXh0ZXJuYWxcIiw5OlwicmVhbFwiLDEwOlwiZW51bVwiLDExOlwiZW1iZWRcIiwxMjpcInV0ZjhzdHJcIiwxMzpcInJlbGF0aXZlT2lkXCIsMTY6XCJzZXFcIiwxNzpcInNldFwiLDE4OlwibnVtc3RyXCIsMTk6XCJwcmludHN0clwiLDIwOlwidDYxc3RyXCIsMjE6XCJ2aWRlb3N0clwiLDIyOlwiaWE1c3RyXCIsMjM6XCJ1dGN0aW1lXCIsMjQ6XCJnZW50aW1lXCIsMjU6XCJncmFwaHN0clwiLDI2OlwiaXNvNjQ2c3RyXCIsMjc6XCJnZW5zdHJcIiwyODpcInVuaXN0clwiLDI5OlwiY2hhcnN0clwiLDMwOlwiYm1wc3RyXCJ9O3QudGFnQnlOYW1lPWkuX3JldmVyc2UodC50YWcpfSw3MzM1OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10O2kuX3JldmVyc2U9ZnVuY3Rpb24gcmV2ZXJzZShlKXt2YXIgdD17fTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihyKXtpZigocnwwKT09cilyPXJ8MDt2YXIgaT1lW3JdO3RbaV09cn0pKTtyZXR1cm4gdH07aS5kZXI9cig5NzkxKX0sMjI1OTpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDcxNjApO3ZhciBhPW4uYmFzZTt2YXIgcz1uLmJpZ251bTt2YXIgbz1uLmNvbnN0YW50cy5kZXI7ZnVuY3Rpb24gREVSRGVjb2RlcihlKXt0aGlzLmVuYz1cImRlclwiO3RoaXMubmFtZT1lLm5hbWU7dGhpcy5lbnRpdHk9ZTt0aGlzLnRyZWU9bmV3IERFUk5vZGU7dGhpcy50cmVlLl9pbml0KGUuYm9keSl9ZS5leHBvcnRzPURFUkRlY29kZXI7REVSRGVjb2Rlci5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uIGRlY29kZShlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIGEuRGVjb2RlckJ1ZmZlcikpZT1uZXcgYS5EZWNvZGVyQnVmZmVyKGUsdCk7cmV0dXJuIHRoaXMudHJlZS5fZGVjb2RlKGUsdCl9O2Z1bmN0aW9uIERFUk5vZGUoZSl7YS5Ob2RlLmNhbGwodGhpcyxcImRlclwiLGUpfWkoREVSTm9kZSxhLk5vZGUpO0RFUk5vZGUucHJvdG90eXBlLl9wZWVrVGFnPWZ1bmN0aW9uIHBlZWtUYWcoZSx0LHIpe2lmKGUuaXNFbXB0eSgpKXJldHVybiBmYWxzZTt2YXIgaT1lLnNhdmUoKTt2YXIgbj1kZXJEZWNvZGVUYWcoZSwnRmFpbGVkIHRvIHBlZWsgdGFnOiBcIicrdCsnXCInKTtpZihlLmlzRXJyb3IobikpcmV0dXJuIG47ZS5yZXN0b3JlKGkpO3JldHVybiBuLnRhZz09PXR8fG4udGFnU3RyPT09dHx8bi50YWdTdHIrXCJvZlwiPT09dHx8cn07REVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbiBkZWNvZGVUYWcoZSx0LHIpe3ZhciBpPWRlckRlY29kZVRhZyhlLCdGYWlsZWQgdG8gZGVjb2RlIHRhZyBvZiBcIicrdCsnXCInKTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7dmFyIG49ZGVyRGVjb2RlTGVuKGUsaS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mIFwiJyt0KydcIicpO2lmKGUuaXNFcnJvcihuKSlyZXR1cm4gbjtpZighciYmaS50YWchPT10JiZpLnRhZ1N0ciE9PXQmJmkudGFnU3RyK1wib2ZcIiE9PXQpe3JldHVybiBlLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiBcIicrdCsnXCInKX1pZihpLnByaW1pdGl2ZXx8biE9PW51bGwpcmV0dXJuIGUuc2tpcChuLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogXCInK3QrJ1wiJyk7dmFyIGE9ZS5zYXZlKCk7dmFyIHM9dGhpcy5fc2tpcFVudGlsRW5kKGUsJ0ZhaWxlZCB0byBza2lwIGluZGVmaW5pdGUgbGVuZ3RoIGJvZHk6IFwiJyt0aGlzLnRhZysnXCInKTtpZihlLmlzRXJyb3IocykpcmV0dXJuIHM7bj1lLm9mZnNldC1hLm9mZnNldDtlLnJlc3RvcmUoYSk7cmV0dXJuIGUuc2tpcChuLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogXCInK3QrJ1wiJyl9O0RFUk5vZGUucHJvdG90eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rpb24gc2tpcFVudGlsRW5kKGUsdCl7d2hpbGUodHJ1ZSl7dmFyIHI9ZGVyRGVjb2RlVGFnKGUsdCk7aWYoZS5pc0Vycm9yKHIpKXJldHVybiByO3ZhciBpPWRlckRlY29kZUxlbihlLHIucHJpbWl0aXZlLHQpO2lmKGUuaXNFcnJvcihpKSlyZXR1cm4gaTt2YXIgbjtpZihyLnByaW1pdGl2ZXx8aSE9PW51bGwpbj1lLnNraXAoaSk7ZWxzZSBuPXRoaXMuX3NraXBVbnRpbEVuZChlLHQpO2lmKGUuaXNFcnJvcihuKSlyZXR1cm4gbjtpZihyLnRhZ1N0cj09PVwiZW5kXCIpYnJlYWt9fTtERVJOb2RlLnByb3RvdHlwZS5fZGVjb2RlTGlzdD1mdW5jdGlvbiBkZWNvZGVMaXN0KGUsdCxyLGkpe3ZhciBuPVtdO3doaWxlKCFlLmlzRW1wdHkoKSl7dmFyIGE9dGhpcy5fcGVla1RhZyhlLFwiZW5kXCIpO2lmKGUuaXNFcnJvcihhKSlyZXR1cm4gYTt2YXIgcz1yLmRlY29kZShlLFwiZGVyXCIsaSk7aWYoZS5pc0Vycm9yKHMpJiZhKWJyZWFrO24ucHVzaChzKX1yZXR1cm4gbn07REVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbiBkZWNvZGVTdHIoZSx0KXtpZih0PT09XCJiaXRzdHJcIil7dmFyIHI9ZS5yZWFkVUludDgoKTtpZihlLmlzRXJyb3IocikpcmV0dXJuIHI7cmV0dXJue3VudXNlZDpyLGRhdGE6ZS5yYXcoKX19ZWxzZSBpZih0PT09XCJibXBzdHJcIil7dmFyIGk9ZS5yYXcoKTtpZihpLmxlbmd0aCUyPT09MSlyZXR1cm4gZS5lcnJvcihcIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoXCIpO3ZhciBuPVwiXCI7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aC8yO2ErKyl7bis9U3RyaW5nLmZyb21DaGFyQ29kZShpLnJlYWRVSW50MTZCRShhKjIpKX1yZXR1cm4gbn1lbHNlIGlmKHQ9PT1cIm51bXN0clwiKXt2YXIgcz1lLnJhdygpLnRvU3RyaW5nKFwiYXNjaWlcIik7aWYoIXRoaXMuX2lzTnVtc3RyKHMpKXtyZXR1cm4gZS5lcnJvcihcIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBcIitcIm51bXN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzXCIpfXJldHVybiBzfWVsc2UgaWYodD09PVwib2N0c3RyXCIpe3JldHVybiBlLnJhdygpfWVsc2UgaWYodD09PVwib2JqRGVzY1wiKXtyZXR1cm4gZS5yYXcoKX1lbHNlIGlmKHQ9PT1cInByaW50c3RyXCIpe3ZhciBvPWUucmF3KCkudG9TdHJpbmcoXCJhc2NpaVwiKTtpZighdGhpcy5faXNQcmludHN0cihvKSl7cmV0dXJuIGUuZXJyb3IoXCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogXCIrXCJwcmludHN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzXCIpfXJldHVybiBvfWVsc2UgaWYoL3N0ciQvLnRlc3QodCkpe3JldHVybiBlLnJhdygpLnRvU3RyaW5nKCl9ZWxzZXtyZXR1cm4gZS5lcnJvcihcIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBcIit0K1wiIHVuc3VwcG9ydGVkXCIpfX07REVSTm9kZS5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uIGRlY29kZU9iamlkKGUsdCxyKXt2YXIgaTt2YXIgbj1bXTt2YXIgYT0wO3doaWxlKCFlLmlzRW1wdHkoKSl7dmFyIHM9ZS5yZWFkVUludDgoKTthPDw9NzthfD1zJjEyNztpZigocyYxMjgpPT09MCl7bi5wdXNoKGEpO2E9MH19aWYocyYxMjgpbi5wdXNoKGEpO3ZhciBvPW5bMF0vNDB8MDt2YXIgaD1uWzBdJTQwO2lmKHIpaT1uO2Vsc2UgaT1bbyxoXS5jb25jYXQobi5zbGljZSgxKSk7aWYodCl7dmFyIHU9dFtpLmpvaW4oXCIgXCIpXTtpZih1PT09dW5kZWZpbmVkKXU9dFtpLmpvaW4oXCIuXCIpXTtpZih1IT09dW5kZWZpbmVkKWk9dX1yZXR1cm4gaX07REVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVRpbWU9ZnVuY3Rpb24gZGVjb2RlVGltZShlLHQpe3ZhciByPWUucmF3KCkudG9TdHJpbmcoKTtpZih0PT09XCJnZW50aW1lXCIpe3ZhciBpPXIuc2xpY2UoMCw0KXwwO3ZhciBuPXIuc2xpY2UoNCw2KXwwO3ZhciBhPXIuc2xpY2UoNiw4KXwwO3ZhciBzPXIuc2xpY2UoOCwxMCl8MDt2YXIgbz1yLnNsaWNlKDEwLDEyKXwwO3ZhciBoPXIuc2xpY2UoMTIsMTQpfDB9ZWxzZSBpZih0PT09XCJ1dGN0aW1lXCIpe3ZhciBpPXIuc2xpY2UoMCwyKXwwO3ZhciBuPXIuc2xpY2UoMiw0KXwwO3ZhciBhPXIuc2xpY2UoNCw2KXwwO3ZhciBzPXIuc2xpY2UoNiw4KXwwO3ZhciBvPXIuc2xpY2UoOCwxMCl8MDt2YXIgaD1yLnNsaWNlKDEwLDEyKXwwO2lmKGk8NzApaT0yZTMraTtlbHNlIGk9MTkwMCtpfWVsc2V7cmV0dXJuIGUuZXJyb3IoXCJEZWNvZGluZyBcIit0K1wiIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXRcIil9cmV0dXJuIERhdGUuVVRDKGksbi0xLGEscyxvLGgsMCl9O0RFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uIGRlY29kZU51bGwoZSl7cmV0dXJuIG51bGx9O0RFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVCb29sPWZ1bmN0aW9uIGRlY29kZUJvb2woZSl7dmFyIHQ9ZS5yZWFkVUludDgoKTtpZihlLmlzRXJyb3IodCkpcmV0dXJuIHQ7ZWxzZSByZXR1cm4gdCE9PTB9O0RFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVJbnQ9ZnVuY3Rpb24gZGVjb2RlSW50KGUsdCl7dmFyIHI9ZS5yYXcoKTt2YXIgaT1uZXcgcyhyKTtpZih0KWk9dFtpLnRvU3RyaW5nKDEwKV18fGk7cmV0dXJuIGl9O0RFUk5vZGUucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24gdXNlKGUsdCl7aWYodHlwZW9mIGU9PT1cImZ1bmN0aW9uXCIpZT1lKHQpO3JldHVybiBlLl9nZXREZWNvZGVyKFwiZGVyXCIpLnRyZWV9O2Z1bmN0aW9uIGRlckRlY29kZVRhZyhlLHQpe3ZhciByPWUucmVhZFVJbnQ4KHQpO2lmKGUuaXNFcnJvcihyKSlyZXR1cm4gcjt2YXIgaT1vLnRhZ0NsYXNzW3I+PjZdO3ZhciBuPShyJjMyKT09PTA7aWYoKHImMzEpPT09MzEpe3ZhciBhPXI7cj0wO3doaWxlKChhJjEyOCk9PT0xMjgpe2E9ZS5yZWFkVUludDgodCk7aWYoZS5pc0Vycm9yKGEpKXJldHVybiBhO3I8PD03O3J8PWEmMTI3fX1lbHNle3ImPTMxfXZhciBzPW8udGFnW3JdO3JldHVybntjbHM6aSxwcmltaXRpdmU6bix0YWc6cix0YWdTdHI6c319ZnVuY3Rpb24gZGVyRGVjb2RlTGVuKGUsdCxyKXt2YXIgaT1lLnJlYWRVSW50OChyKTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYoIXQmJmk9PT0xMjgpcmV0dXJuIG51bGw7aWYoKGkmMTI4KT09PTApe3JldHVybiBpfXZhciBuPWkmMTI3O2lmKG4+NClyZXR1cm4gZS5lcnJvcihcImxlbmd0aCBvY3RlY3QgaXMgdG9vIGxvbmdcIik7aT0wO2Zvcih2YXIgYT0wO2E8bjthKyspe2k8PD04O3ZhciBzPWUucmVhZFVJbnQ4KHIpO2lmKGUuaXNFcnJvcihzKSlyZXR1cm4gcztpfD1zfXJldHVybiBpfX0sNjcwMTpmdW5jdGlvbihlLHQscil7dmFyIGk9dDtpLmRlcj1yKDIyNTkpO2kucGVtPXIoODUyNyl9LDg1Mjc6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoMzc4Mik7dmFyIG49cig0MzAwKS5CdWZmZXI7dmFyIGE9cigyMjU5KTtmdW5jdGlvbiBQRU1EZWNvZGVyKGUpe2EuY2FsbCh0aGlzLGUpO3RoaXMuZW5jPVwicGVtXCJ9aShQRU1EZWNvZGVyLGEpO2UuZXhwb3J0cz1QRU1EZWNvZGVyO1BFTURlY29kZXIucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbiBkZWNvZGUoZSx0KXt2YXIgcj1lLnRvU3RyaW5nKCkuc3BsaXQoL1tcXHJcXG5dKy9nKTt2YXIgaT10LmxhYmVsLnRvVXBwZXJDYXNlKCk7dmFyIHM9L14tLS0tLShCRUdJTnxFTkQpIChbXi1dKyktLS0tLSQvO3ZhciBvPS0xO3ZhciBoPS0xO2Zvcih2YXIgdT0wO3U8ci5sZW5ndGg7dSsrKXt2YXIgZD1yW3VdLm1hdGNoKHMpO2lmKGQ9PT1udWxsKWNvbnRpbnVlO2lmKGRbMl0hPT1pKWNvbnRpbnVlO2lmKG89PT0tMSl7aWYoZFsxXSE9PVwiQkVHSU5cIilicmVhaztvPXV9ZWxzZXtpZihkWzFdIT09XCJFTkRcIilicmVhaztoPXU7YnJlYWt9fWlmKG89PT0tMXx8aD09PS0xKXRocm93IG5ldyBFcnJvcihcIlBFTSBzZWN0aW9uIG5vdCBmb3VuZCBmb3I6IFwiK2kpO3ZhciBjPXIuc2xpY2UobysxLGgpLmpvaW4oXCJcIik7Yy5yZXBsYWNlKC9bXmEtejAtOVxcK1xcLz1dKy9naSxcIlwiKTt2YXIgbD1uZXcgbihjLFwiYmFzZTY0XCIpO3JldHVybiBhLnByb3RvdHlwZS5kZWNvZGUuY2FsbCh0aGlzLGwsdCl9fSw3ODA0OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDM3ODIpO3ZhciBuPXIoNDMwMCkuQnVmZmVyO3ZhciBhPXIoNzE2MCk7dmFyIHM9YS5iYXNlO3ZhciBvPWEuY29uc3RhbnRzLmRlcjtmdW5jdGlvbiBERVJFbmNvZGVyKGUpe3RoaXMuZW5jPVwiZGVyXCI7dGhpcy5uYW1lPWUubmFtZTt0aGlzLmVudGl0eT1lO3RoaXMudHJlZT1uZXcgREVSTm9kZTt0aGlzLnRyZWUuX2luaXQoZS5ib2R5KX1lLmV4cG9ydHM9REVSRW5jb2RlcjtERVJFbmNvZGVyLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24gZW5jb2RlKGUsdCl7cmV0dXJuIHRoaXMudHJlZS5fZW5jb2RlKGUsdCkuam9pbigpfTtmdW5jdGlvbiBERVJOb2RlKGUpe3MuTm9kZS5jYWxsKHRoaXMsXCJkZXJcIixlKX1pKERFUk5vZGUscy5Ob2RlKTtERVJOb2RlLnByb3RvdHlwZS5fZW5jb2RlQ29tcG9zaXRlPWZ1bmN0aW9uIGVuY29kZUNvbXBvc2l0ZShlLHQscixpKXt2YXIgYT1lbmNvZGVUYWcoZSx0LHIsdGhpcy5yZXBvcnRlcik7aWYoaS5sZW5ndGg8MTI4KXt2YXIgcz1uZXcgbigyKTtzWzBdPWE7c1sxXT1pLmxlbmd0aDtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbcyxpXSl9dmFyIG89MTtmb3IodmFyIGg9aS5sZW5ndGg7aD49MjU2O2g+Pj04KW8rKzt2YXIgcz1uZXcgbigxKzErbyk7c1swXT1hO3NbMV09MTI4fG87Zm9yKHZhciBoPTErbyx1PWkubGVuZ3RoO3U+MDtoLS0sdT4+PTgpc1toXT11JjI1NTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbcyxpXSl9O0RFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVTdHI9ZnVuY3Rpb24gZW5jb2RlU3RyKGUsdCl7aWYodD09PVwiYml0c3RyXCIpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtlLnVudXNlZHwwLGUuZGF0YV0pfWVsc2UgaWYodD09PVwiYm1wc3RyXCIpe3ZhciByPW5ldyBuKGUubGVuZ3RoKjIpO2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXtyLndyaXRlVUludDE2QkUoZS5jaGFyQ29kZUF0KGkpLGkqMil9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIocil9ZWxzZSBpZih0PT09XCJudW1zdHJcIil7aWYoIXRoaXMuX2lzTnVtc3RyKGUpKXtyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcihcIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgc3VwcG9ydHMgXCIrXCJvbmx5IGRpZ2l0cyBhbmQgc3BhY2VcIil9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZSl9ZWxzZSBpZih0PT09XCJwcmludHN0clwiKXtpZighdGhpcy5faXNQcmludHN0cihlKSl7cmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoXCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgc3VwcG9ydHMgXCIrXCJvbmx5IGxhdGluIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIFwiK1wiZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggXCIrXCJwYXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCBcIitcImRvdCwgc2xhc2gsIGNvbG9uLCBlcXVhbCBzaWduLCBcIitcInF1ZXN0aW9uIG1hcmtcIil9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZSl9ZWxzZSBpZigvc3RyJC8udGVzdCh0KSl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZSl9ZWxzZSBpZih0PT09XCJvYmpEZXNjXCIpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKGUpfWVsc2V7cmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoXCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogXCIrdCtcIiB1bnN1cHBvcnRlZFwiKX19O0RFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVPYmppZD1mdW5jdGlvbiBlbmNvZGVPYmppZChlLHQscil7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtpZighdClyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcihcInN0cmluZyBvYmppZCBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmRcIik7aWYoIXQuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoXCJvYmppZCBub3QgZm91bmQgaW4gdmFsdWVzIG1hcFwiKTtlPXRbZV0uc3BsaXQoL1tcXHNcXC5dKy9nKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyllW2ldfD0wfWVsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7ZT1lLnNsaWNlKCk7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspZVtpXXw9MH1pZighQXJyYXkuaXNBcnJheShlKSl7cmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoXCJvYmppZCgpIHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5nLCBcIitcImdvdDogXCIrSlNPTi5zdHJpbmdpZnkoZSkpfWlmKCFyKXtpZihlWzFdPj00MClyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcihcIlNlY29uZCBvYmppZCBpZGVudGlmaWVyIE9PQlwiKTtlLnNwbGljZSgwLDIsZVswXSo0MCtlWzFdKX12YXIgYT0wO2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgcz1lW2ldO2ZvcihhKys7cz49MTI4O3M+Pj03KWErK312YXIgbz1uZXcgbihhKTt2YXIgaD1vLmxlbmd0aC0xO2Zvcih2YXIgaT1lLmxlbmd0aC0xO2k+PTA7aS0tKXt2YXIgcz1lW2ldO29baC0tXT1zJjEyNzt3aGlsZSgocz4+PTcpPjApb1toLS1dPTEyOHxzJjEyN31yZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihvKX07ZnVuY3Rpb24gdHdvKGUpe2lmKGU8MTApcmV0dXJuXCIwXCIrZTtlbHNlIHJldHVybiBlfURFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uIGVuY29kZVRpbWUoZSx0KXt2YXIgcjt2YXIgaT1uZXcgRGF0ZShlKTtpZih0PT09XCJnZW50aW1lXCIpe3I9W3R3byhpLmdldEZ1bGxZZWFyKCkpLHR3byhpLmdldFVUQ01vbnRoKCkrMSksdHdvKGkuZ2V0VVRDRGF0ZSgpKSx0d28oaS5nZXRVVENIb3VycygpKSx0d28oaS5nZXRVVENNaW51dGVzKCkpLHR3byhpLmdldFVUQ1NlY29uZHMoKSksXCJaXCJdLmpvaW4oXCJcIil9ZWxzZSBpZih0PT09XCJ1dGN0aW1lXCIpe3I9W3R3byhpLmdldEZ1bGxZZWFyKCklMTAwKSx0d28oaS5nZXRVVENNb250aCgpKzEpLHR3byhpLmdldFVUQ0RhdGUoKSksdHdvKGkuZ2V0VVRDSG91cnMoKSksdHdvKGkuZ2V0VVRDTWludXRlcygpKSx0d28oaS5nZXRVVENTZWNvbmRzKCkpLFwiWlwiXS5qb2luKFwiXCIpfWVsc2V7dGhpcy5yZXBvcnRlci5lcnJvcihcIkVuY29kaW5nIFwiK3QrXCIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldFwiKX1yZXR1cm4gdGhpcy5fZW5jb2RlU3RyKHIsXCJvY3RzdHJcIil9O0RFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVOdWxsPWZ1bmN0aW9uIGVuY29kZU51bGwoKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihcIlwiKX07REVSTm9kZS5wcm90b3R5cGUuX2VuY29kZUludD1mdW5jdGlvbiBlbmNvZGVJbnQoZSx0KXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2lmKCF0KXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKFwiU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcFwiKTtpZighdC5oYXNPd25Qcm9wZXJ0eShlKSl7cmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoXCJWYWx1ZXMgbWFwIGRvZXNuJ3QgY29udGFpbjogXCIrSlNPTi5zdHJpbmdpZnkoZSkpfWU9dFtlXX1pZih0eXBlb2YgZSE9PVwibnVtYmVyXCImJiFuLmlzQnVmZmVyKGUpKXt2YXIgcj1lLnRvQXJyYXkoKTtpZighZS5zaWduJiZyWzBdJjEyOCl7ci51bnNoaWZ0KDApfWU9bmV3IG4ocil9aWYobi5pc0J1ZmZlcihlKSl7dmFyIGk9ZS5sZW5ndGg7aWYoZS5sZW5ndGg9PT0wKWkrKzt2YXIgYT1uZXcgbihpKTtlLmNvcHkoYSk7aWYoZS5sZW5ndGg9PT0wKWFbMF09MDtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihhKX1pZihlPDEyOClyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihlKTtpZihlPDI1NilyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMCxlXSk7dmFyIGk9MTtmb3IodmFyIHM9ZTtzPj0yNTY7cz4+PTgpaSsrO3ZhciBhPW5ldyBBcnJheShpKTtmb3IodmFyIHM9YS5sZW5ndGgtMTtzPj0wO3MtLSl7YVtzXT1lJjI1NTtlPj49OH1pZihhWzBdJjEyOCl7YS51bnNoaWZ0KDApfXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG5ldyBuKGEpKX07REVSTm9kZS5wcm90b3R5cGUuX2VuY29kZUJvb2w9ZnVuY3Rpb24gZW5jb2RlQm9vbChlKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihlPzI1NTowKX07REVSTm9kZS5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbiB1c2UoZSx0KXtpZih0eXBlb2YgZT09PVwiZnVuY3Rpb25cIillPWUodCk7cmV0dXJuIGUuX2dldEVuY29kZXIoXCJkZXJcIikudHJlZX07REVSTm9kZS5wcm90b3R5cGUuX3NraXBEZWZhdWx0PWZ1bmN0aW9uIHNraXBEZWZhdWx0KGUsdCxyKXt2YXIgaT10aGlzLl9iYXNlU3RhdGU7dmFyIG47aWYoaVtcImRlZmF1bHRcIl09PT1udWxsKXJldHVybiBmYWxzZTt2YXIgYT1lLmpvaW4oKTtpZihpLmRlZmF1bHRCdWZmZXI9PT11bmRlZmluZWQpaS5kZWZhdWx0QnVmZmVyPXRoaXMuX2VuY29kZVZhbHVlKGlbXCJkZWZhdWx0XCJdLHQscikuam9pbigpO2lmKGEubGVuZ3RoIT09aS5kZWZhdWx0QnVmZmVyLmxlbmd0aClyZXR1cm4gZmFsc2U7Zm9yKG49MDtuPGEubGVuZ3RoO24rKylpZihhW25dIT09aS5kZWZhdWx0QnVmZmVyW25dKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX07ZnVuY3Rpb24gZW5jb2RlVGFnKGUsdCxyLGkpe3ZhciBuO2lmKGU9PT1cInNlcW9mXCIpZT1cInNlcVwiO2Vsc2UgaWYoZT09PVwic2V0b2ZcIillPVwic2V0XCI7aWYoby50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkoZSkpbj1vLnRhZ0J5TmFtZVtlXTtlbHNlIGlmKHR5cGVvZiBlPT09XCJudW1iZXJcIiYmKGV8MCk9PT1lKW49ZTtlbHNlIHJldHVybiBpLmVycm9yKFwiVW5rbm93biB0YWc6IFwiK2UpO2lmKG4+PTMxKXJldHVybiBpLmVycm9yKFwiTXVsdGktb2N0ZXQgdGFnIGVuY29kaW5nIHVuc3VwcG9ydGVkXCIpO2lmKCF0KW58PTMyO258PW8udGFnQ2xhc3NCeU5hbWVbcnx8XCJ1bml2ZXJzYWxcIl08PDY7cmV0dXJuIG59fSwzNDE4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10O2kuZGVyPXIoNzgwNCk7aS5wZW09cigxNTY0KX0sMTU2NDpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDc4MDQpO2Z1bmN0aW9uIFBFTUVuY29kZXIoZSl7bi5jYWxsKHRoaXMsZSk7dGhpcy5lbmM9XCJwZW1cIn1pKFBFTUVuY29kZXIsbik7ZS5leHBvcnRzPVBFTUVuY29kZXI7UEVNRW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uIGVuY29kZShlLHQpe3ZhciByPW4ucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsZSk7dmFyIGk9ci50b1N0cmluZyhcImJhc2U2NFwiKTt2YXIgYT1bXCItLS0tLUJFR0lOIFwiK3QubGFiZWwrXCItLS0tLVwiXTtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrPTY0KWEucHVzaChpLnNsaWNlKHMscys2NCkpO2EucHVzaChcIi0tLS0tRU5EIFwiK3QubGFiZWwrXCItLS0tLVwiKTtyZXR1cm4gYS5qb2luKFwiXFxuXCIpfX0sNzExOmZ1bmN0aW9uKGUsdCxyKXtlPXIubm1kKGUpOyhmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGFzc2VydChlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcih0fHxcIkFzc2VydGlvbiBmYWlsZWRcIil9ZnVuY3Rpb24gaW5oZXJpdHMoZSx0KXtlLnN1cGVyXz10O3ZhciBUZW1wQ3Rvcj1mdW5jdGlvbigpe307VGVtcEN0b3IucHJvdG90eXBlPXQucHJvdG90eXBlO2UucHJvdG90eXBlPW5ldyBUZW1wQ3RvcjtlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfWZ1bmN0aW9uIEJOKGUsdCxyKXtpZihCTi5pc0JOKGUpKXtyZXR1cm4gZX10aGlzLm5lZ2F0aXZlPTA7dGhpcy53b3Jkcz1udWxsO3RoaXMubGVuZ3RoPTA7dGhpcy5yZWQ9bnVsbDtpZihlIT09bnVsbCl7aWYodD09PVwibGVcInx8dD09PVwiYmVcIil7cj10O3Q9MTB9dGhpcy5faW5pdChlfHwwLHR8fDEwLHJ8fFwiYmVcIil9fWlmKHR5cGVvZiBlPT09XCJvYmplY3RcIil7ZS5leHBvcnRzPUJOfWVsc2V7dC5CTj1CTn1CTi5CTj1CTjtCTi53b3JkU2l6ZT0yNjt2YXIgaTt0cnl7aT1yKDQzMDApLkJ1ZmZlcn1jYXRjaChlKXt9Qk4uaXNCTj1mdW5jdGlvbiBpc0JOKGUpe2lmKGUgaW5zdGFuY2VvZiBCTil7cmV0dXJuIHRydWV9cmV0dXJuIGUhPT1udWxsJiZ0eXBlb2YgZT09PVwib2JqZWN0XCImJmUuY29uc3RydWN0b3Iud29yZFNpemU9PT1CTi53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShlLndvcmRzKX07Qk4ubWF4PWZ1bmN0aW9uIG1heChlLHQpe2lmKGUuY21wKHQpPjApcmV0dXJuIGU7cmV0dXJuIHR9O0JOLm1pbj1mdW5jdGlvbiBtaW4oZSx0KXtpZihlLmNtcCh0KTwwKXJldHVybiBlO3JldHVybiB0fTtCTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24gaW5pdChlLHQscil7aWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXtyZXR1cm4gdGhpcy5faW5pdE51bWJlcihlLHQscil9aWYodHlwZW9mIGU9PT1cIm9iamVjdFwiKXtyZXR1cm4gdGhpcy5faW5pdEFycmF5KGUsdCxyKX1pZih0PT09XCJoZXhcIil7dD0xNn1hc3NlcnQodD09PSh0fDApJiZ0Pj0yJiZ0PD0zNik7ZT1lLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxzKy9nLFwiXCIpO3ZhciBpPTA7aWYoZVswXT09PVwiLVwiKXtpKyt9aWYodD09PTE2KXt0aGlzLl9wYXJzZUhleChlLGkpfWVsc2V7dGhpcy5fcGFyc2VCYXNlKGUsdCxpKX1pZihlWzBdPT09XCItXCIpe3RoaXMubmVnYXRpdmU9MX10aGlzLnN0cmlwKCk7aWYociE9PVwibGVcIilyZXR1cm47dGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHQscil9O0JOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbiBfaW5pdE51bWJlcihlLHQscil7aWYoZTwwKXt0aGlzLm5lZ2F0aXZlPTE7ZT0tZX1pZihlPDY3MTA4ODY0KXt0aGlzLndvcmRzPVtlJjY3MTA4ODYzXTt0aGlzLmxlbmd0aD0xfWVsc2UgaWYoZTw0NTAzNTk5NjI3MzcwNDk2KXt0aGlzLndvcmRzPVtlJjY3MTA4ODYzLGUvNjcxMDg4NjQmNjcxMDg4NjNdO3RoaXMubGVuZ3RoPTJ9ZWxzZXthc3NlcnQoZTw5MDA3MTk5MjU0NzQwOTkyKTt0aGlzLndvcmRzPVtlJjY3MTA4ODYzLGUvNjcxMDg4NjQmNjcxMDg4NjMsMV07dGhpcy5sZW5ndGg9M31pZihyIT09XCJsZVwiKXJldHVybjt0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksdCxyKX07Qk4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24gX2luaXRBcnJheShlLHQscil7YXNzZXJ0KHR5cGVvZiBlLmxlbmd0aD09PVwibnVtYmVyXCIpO2lmKGUubGVuZ3RoPD0wKXt0aGlzLndvcmRzPVswXTt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfXRoaXMubGVuZ3RoPU1hdGguY2VpbChlLmxlbmd0aC8zKTt0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3RoaXMud29yZHNbaV09MH12YXIgbixhO3ZhciBzPTA7aWYocj09PVwiYmVcIil7Zm9yKGk9ZS5sZW5ndGgtMSxuPTA7aT49MDtpLT0zKXthPWVbaV18ZVtpLTFdPDw4fGVbaS0yXTw8MTY7dGhpcy53b3Jkc1tuXXw9YTw8cyY2NzEwODg2Mzt0aGlzLndvcmRzW24rMV09YT4+PjI2LXMmNjcxMDg4NjM7cys9MjQ7aWYocz49MjYpe3MtPTI2O24rK319fWVsc2UgaWYocj09PVwibGVcIil7Zm9yKGk9MCxuPTA7aTxlLmxlbmd0aDtpKz0zKXthPWVbaV18ZVtpKzFdPDw4fGVbaSsyXTw8MTY7dGhpcy53b3Jkc1tuXXw9YTw8cyY2NzEwODg2Mzt0aGlzLndvcmRzW24rMV09YT4+PjI2LXMmNjcxMDg4NjM7cys9MjQ7aWYocz49MjYpe3MtPTI2O24rK319fXJldHVybiB0aGlzLnN0cmlwKCl9O2Z1bmN0aW9uIHBhcnNlSGV4KGUsdCxyKXt2YXIgaT0wO3ZhciBuPU1hdGgubWluKGUubGVuZ3RoLHIpO2Zvcih2YXIgYT10O2E8bjthKyspe3ZhciBzPWUuY2hhckNvZGVBdChhKS00ODtpPDw9NDtpZihzPj00OSYmczw9NTQpe2l8PXMtNDkrMTB9ZWxzZSBpZihzPj0xNyYmczw9MjIpe2l8PXMtMTcrMTB9ZWxzZXtpfD1zJjE1fX1yZXR1cm4gaX1CTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uIF9wYXJzZUhleChlLHQpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoZS5sZW5ndGgtdCkvNik7dGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGg7cisrKXt0aGlzLndvcmRzW3JdPTB9dmFyIGksbjt2YXIgYT0wO2ZvcihyPWUubGVuZ3RoLTYsaT0wO3I+PXQ7ci09Nil7bj1wYXJzZUhleChlLHIscis2KTt0aGlzLndvcmRzW2ldfD1uPDxhJjY3MTA4ODYzO3RoaXMud29yZHNbaSsxXXw9bj4+PjI2LWEmNDE5NDMwMzthKz0yNDtpZihhPj0yNil7YS09MjY7aSsrfX1pZihyKzYhPT10KXtuPXBhcnNlSGV4KGUsdCxyKzYpO3RoaXMud29yZHNbaV18PW48PGEmNjcxMDg4NjM7dGhpcy53b3Jkc1tpKzFdfD1uPj4+MjYtYSY0MTk0MzAzfXRoaXMuc3RyaXAoKX07ZnVuY3Rpb24gcGFyc2VCYXNlKGUsdCxyLGkpe3ZhciBuPTA7dmFyIGE9TWF0aC5taW4oZS5sZW5ndGgscik7Zm9yKHZhciBzPXQ7czxhO3MrKyl7dmFyIG89ZS5jaGFyQ29kZUF0KHMpLTQ4O24qPWk7aWYobz49NDkpe24rPW8tNDkrMTB9ZWxzZSBpZihvPj0xNyl7bis9by0xNysxMH1lbHNle24rPW99fXJldHVybiBufUJOLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uIF9wYXJzZUJhc2UoZSx0LHIpe3RoaXMud29yZHM9WzBdO3RoaXMubGVuZ3RoPTE7Zm9yKHZhciBpPTAsbj0xO248PTY3MTA4ODYzO24qPXQpe2krK31pLS07bj1uL3R8MDt2YXIgYT1lLmxlbmd0aC1yO3ZhciBzPWElaTt2YXIgbz1NYXRoLm1pbihhLGEtcykrcjt2YXIgaD0wO2Zvcih2YXIgdT1yO3U8bzt1Kz1pKXtoPXBhcnNlQmFzZShlLHUsdStpLHQpO3RoaXMuaW11bG4obik7aWYodGhpcy53b3Jkc1swXStoPDY3MTA4ODY0KXt0aGlzLndvcmRzWzBdKz1ofWVsc2V7dGhpcy5faWFkZG4oaCl9fWlmKHMhPT0wKXt2YXIgZD0xO2g9cGFyc2VCYXNlKGUsdSxlLmxlbmd0aCx0KTtmb3IodT0wO3U8czt1Kyspe2QqPXR9dGhpcy5pbXVsbihkKTtpZih0aGlzLndvcmRzWzBdK2g8NjcxMDg4NjQpe3RoaXMud29yZHNbMF0rPWh9ZWxzZXt0aGlzLl9pYWRkbihoKX19fTtCTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbiBjb3B5KGUpe2Uud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7ZS53b3Jkc1t0XT10aGlzLndvcmRzW3RdfWUubGVuZ3RoPXRoaXMubGVuZ3RoO2UubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZTtlLnJlZD10aGlzLnJlZH07Qk4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uIGNsb25lKCl7dmFyIGU9bmV3IEJOKG51bGwpO3RoaXMuY29weShlKTtyZXR1cm4gZX07Qk4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24gX2V4cGFuZChlKXt3aGlsZSh0aGlzLmxlbmd0aDxlKXt0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTB9cmV0dXJuIHRoaXN9O0JOLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbiBzdHJpcCgpe3doaWxlKHRoaXMubGVuZ3RoPjEmJnRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV09PT0wKXt0aGlzLmxlbmd0aC0tfXJldHVybiB0aGlzLl9ub3JtU2lnbigpfTtCTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uIF9ub3JtU2lnbigpe2lmKHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXT09PTApe3RoaXMubmVnYXRpdmU9MH1yZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24gaW5zcGVjdCgpe3JldHVybih0aGlzLnJlZD9cIjxCTi1SOiBcIjpcIjxCTjogXCIpK3RoaXMudG9TdHJpbmcoMTYpK1wiPlwifTt2YXIgbj1bXCJcIixcIjBcIixcIjAwXCIsXCIwMDBcIixcIjAwMDBcIixcIjAwMDAwXCIsXCIwMDAwMDBcIixcIjAwMDAwMDBcIixcIjAwMDAwMDAwXCIsXCIwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwXCIsXCIwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwXCIsXCIwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwXCIsXCIwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsXCIwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsXCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIl07dmFyIGE9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV07dmFyIHM9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07Qk4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKGUsdCl7ZT1lfHwxMDt0PXR8MHx8MTt2YXIgcjtpZihlPT09MTZ8fGU9PT1cImhleFwiKXtyPVwiXCI7dmFyIGk9MDt2YXIgbz0wO2Zvcih2YXIgaD0wO2g8dGhpcy5sZW5ndGg7aCsrKXt2YXIgdT10aGlzLndvcmRzW2hdO3ZhciBkPSgodTw8aXxvKSYxNjc3NzIxNSkudG9TdHJpbmcoMTYpO289dT4+PjI0LWkmMTY3NzcyMTU7aWYobyE9PTB8fGghPT10aGlzLmxlbmd0aC0xKXtyPW5bNi1kLmxlbmd0aF0rZCtyfWVsc2V7cj1kK3J9aSs9MjtpZihpPj0yNil7aS09MjY7aC0tfX1pZihvIT09MCl7cj1vLnRvU3RyaW5nKDE2KStyfXdoaWxlKHIubGVuZ3RoJXQhPT0wKXtyPVwiMFwiK3J9aWYodGhpcy5uZWdhdGl2ZSE9PTApe3I9XCItXCIrcn1yZXR1cm4gcn1pZihlPT09KGV8MCkmJmU+PTImJmU8PTM2KXt2YXIgYz1hW2VdO3ZhciBsPXNbZV07cj1cIlwiO3ZhciBwPXRoaXMuY2xvbmUoKTtwLm5lZ2F0aXZlPTA7d2hpbGUoIXAuaXNaZXJvKCkpe3ZhciB2PXAubW9kbihsKS50b1N0cmluZyhlKTtwPXAuaWRpdm4obCk7aWYoIXAuaXNaZXJvKCkpe3I9bltjLXYubGVuZ3RoXSt2K3J9ZWxzZXtyPXYrcn19aWYodGhpcy5pc1plcm8oKSl7cj1cIjBcIityfXdoaWxlKHIubGVuZ3RoJXQhPT0wKXtyPVwiMFwiK3J9aWYodGhpcy5uZWdhdGl2ZSE9PTApe3I9XCItXCIrcn1yZXR1cm4gcn1hc3NlcnQoZmFsc2UsXCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2XCIpfTtCTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24gdG9OdW1iZXIoKXt2YXIgZT10aGlzLndvcmRzWzBdO2lmKHRoaXMubGVuZ3RoPT09Mil7ZSs9dGhpcy53b3Jkc1sxXSo2NzEwODg2NH1lbHNlIGlmKHRoaXMubGVuZ3RoPT09MyYmdGhpcy53b3Jkc1syXT09PTEpe2UrPTQ1MDM1OTk2MjczNzA0OTYrdGhpcy53b3Jkc1sxXSo2NzEwODg2NH1lbHNlIGlmKHRoaXMubGVuZ3RoPjIpe2Fzc2VydChmYWxzZSxcIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0c1wiKX1yZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTA/LWU6ZX07Qk4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbiB0b0pTT04oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9O0JOLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbiB0b0J1ZmZlcihlLHQpe2Fzc2VydCh0eXBlb2YgaSE9PVwidW5kZWZpbmVkXCIpO3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKGksZSx0KX07Qk4ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24gdG9BcnJheShlLHQpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGUsdCl9O0JOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbiB0b0FycmF5TGlrZShlLHQscil7dmFyIGk9dGhpcy5ieXRlTGVuZ3RoKCk7dmFyIG49cnx8TWF0aC5tYXgoMSxpKTthc3NlcnQoaTw9bixcImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGhcIik7YXNzZXJ0KG4+MCxcIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMFwiKTt0aGlzLnN0cmlwKCk7dmFyIGE9dD09PVwibGVcIjt2YXIgcz1uZXcgZShuKTt2YXIgbyxoO3ZhciB1PXRoaXMuY2xvbmUoKTtpZighYSl7Zm9yKGg9MDtoPG4taTtoKyspe3NbaF09MH1mb3IoaD0wOyF1LmlzWmVybygpO2grKyl7bz11LmFuZGxuKDI1NSk7dS5pdXNocm4oOCk7c1tuLWgtMV09b319ZWxzZXtmb3IoaD0wOyF1LmlzWmVybygpO2grKyl7bz11LmFuZGxuKDI1NSk7dS5pdXNocm4oOCk7c1toXT1vfWZvcig7aDxuO2grKyl7c1toXT0wfX1yZXR1cm4gc307aWYoTWF0aC5jbHozMil7Qk4ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24gX2NvdW50Qml0cyhlKXtyZXR1cm4gMzItTWF0aC5jbHozMihlKX19ZWxzZXtCTi5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbiBfY291bnRCaXRzKGUpe3ZhciB0PWU7dmFyIHI9MDtpZih0Pj00MDk2KXtyKz0xMzt0Pj4+PTEzfWlmKHQ+PTY0KXtyKz03O3Q+Pj49N31pZih0Pj04KXtyKz00O3Q+Pj49NH1pZih0Pj0yKXtyKz0yO3Q+Pj49Mn1yZXR1cm4gcit0fX1CTi5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uIF96ZXJvQml0cyhlKXtpZihlPT09MClyZXR1cm4gMjY7dmFyIHQ9ZTt2YXIgcj0wO2lmKCh0JjgxOTEpPT09MCl7cis9MTM7dD4+Pj0xM31pZigodCYxMjcpPT09MCl7cis9Nzt0Pj4+PTd9aWYoKHQmMTUpPT09MCl7cis9NDt0Pj4+PTR9aWYoKHQmMyk9PT0wKXtyKz0yO3Q+Pj49Mn1pZigodCYxKT09PTApe3IrK31yZXR1cm4gcn07Qk4ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbiBiaXRMZW5ndGgoKXt2YXIgZT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdO3ZhciB0PXRoaXMuX2NvdW50Qml0cyhlKTtyZXR1cm4odGhpcy5sZW5ndGgtMSkqMjYrdH07ZnVuY3Rpb24gdG9CaXRBcnJheShlKXt2YXIgdD1uZXcgQXJyYXkoZS5iaXRMZW5ndGgoKSk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXIvMjZ8MDt2YXIgbj1yJTI2O3Rbcl09KGUud29yZHNbaV0mMTw8bik+Pj5ufXJldHVybiB0fUJOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbiB6ZXJvQml0cygpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7dmFyIGU9MDtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHI9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t0XSk7ZSs9cjtpZihyIT09MjYpYnJlYWt9cmV0dXJuIGV9O0JOLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uIGJ5dGVMZW5ndGgoKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9O0JOLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24gdG9Ud29zKGUpe2lmKHRoaXMubmVnYXRpdmUhPT0wKXtyZXR1cm4gdGhpcy5hYnMoKS5pbm90bihlKS5pYWRkbigxKX1yZXR1cm4gdGhpcy5jbG9uZSgpfTtCTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24gZnJvbVR3b3MoZSl7aWYodGhpcy50ZXN0bihlLTEpKXtyZXR1cm4gdGhpcy5ub3RuKGUpLmlhZGRuKDEpLmluZWcoKX1yZXR1cm4gdGhpcy5jbG9uZSgpfTtCTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24gaXNOZWcoKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTB9O0JOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24gbmVnKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9O0JOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uIGluZWcoKXtpZighdGhpcy5pc1plcm8oKSl7dGhpcy5uZWdhdGl2ZV49MX1yZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24gaXVvcihlKXt3aGlsZSh0aGlzLmxlbmd0aDxlLmxlbmd0aCl7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wfWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt0aGlzLndvcmRzW3RdPXRoaXMud29yZHNbdF18ZS53b3Jkc1t0XX1yZXR1cm4gdGhpcy5zdHJpcCgpfTtCTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uIGlvcihlKXthc3NlcnQoKHRoaXMubmVnYXRpdmV8ZS5uZWdhdGl2ZSk9PT0wKTtyZXR1cm4gdGhpcy5pdW9yKGUpfTtCTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24gb3IoZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2xvbmUoKS5pb3IoZSk7cmV0dXJuIGUuY2xvbmUoKS5pb3IodGhpcyl9O0JOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24gdW9yKGUpe2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXJldHVybiB0aGlzLmNsb25lKCkuaXVvcihlKTtyZXR1cm4gZS5jbG9uZSgpLml1b3IodGhpcyl9O0JOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbiBpdWFuZChlKXt2YXIgdDtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aCl7dD1lfWVsc2V7dD10aGlzfWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mZS53b3Jkc1tyXX10aGlzLmxlbmd0aD10Lmxlbmd0aDtyZXR1cm4gdGhpcy5zdHJpcCgpfTtCTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbiBpYW5kKGUpe2Fzc2VydCgodGhpcy5uZWdhdGl2ZXxlLm5lZ2F0aXZlKT09PTApO3JldHVybiB0aGlzLml1YW5kKGUpfTtCTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uIGFuZChlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gdGhpcy5jbG9uZSgpLmlhbmQoZSk7cmV0dXJuIGUuY2xvbmUoKS5pYW5kKHRoaXMpfTtCTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbiB1YW5kKGUpe2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXJldHVybiB0aGlzLmNsb25lKCkuaXVhbmQoZSk7cmV0dXJuIGUuY2xvbmUoKS5pdWFuZCh0aGlzKX07Qk4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uIGl1eG9yKGUpe3ZhciB0O3ZhciByO2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXt0PXRoaXM7cj1lfWVsc2V7dD1lO3I9dGhpc31mb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl7dGhpcy53b3Jkc1tpXT10LndvcmRzW2ldXnIud29yZHNbaV19aWYodGhpcyE9PXQpe2Zvcig7aTx0Lmxlbmd0aDtpKyspe3RoaXMud29yZHNbaV09dC53b3Jkc1tpXX19dGhpcy5sZW5ndGg9dC5sZW5ndGg7cmV0dXJuIHRoaXMuc3RyaXAoKX07Qk4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24gaXhvcihlKXthc3NlcnQoKHRoaXMubmVnYXRpdmV8ZS5uZWdhdGl2ZSk9PT0wKTtyZXR1cm4gdGhpcy5pdXhvcihlKX07Qk4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbiB4b3IoZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2xvbmUoKS5peG9yKGUpO3JldHVybiBlLmNsb25lKCkuaXhvcih0aGlzKX07Qk4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24gdXhvcihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gdGhpcy5jbG9uZSgpLml1eG9yKGUpO3JldHVybiBlLmNsb25lKCkuaXV4b3IodGhpcyl9O0JOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbiBpbm90bihlKXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgdD1NYXRoLmNlaWwoZS8yNil8MDt2YXIgcj1lJTI2O3RoaXMuX2V4cGFuZCh0KTtpZihyPjApe3QtLX1mb3IodmFyIGk9MDtpPHQ7aSsrKXt0aGlzLndvcmRzW2ldPX50aGlzLndvcmRzW2ldJjY3MTA4ODYzfWlmKHI+MCl7dGhpcy53b3Jkc1tpXT1+dGhpcy53b3Jkc1tpXSY2NzEwODg2Mz4+MjYtcn1yZXR1cm4gdGhpcy5zdHJpcCgpfTtCTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbiBub3RuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZSl9O0JOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uIHNldG4oZSx0KXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgcj1lLzI2fDA7dmFyIGk9ZSUyNjt0aGlzLl9leHBhbmQocisxKTtpZih0KXt0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl18MTw8aX1lbHNle3RoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXSZ+KDE8PGkpfXJldHVybiB0aGlzLnN0cmlwKCl9O0JOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uIGlhZGQoZSl7dmFyIHQ7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJmUubmVnYXRpdmU9PT0wKXt0aGlzLm5lZ2F0aXZlPTA7dD10aGlzLmlzdWIoZSk7dGhpcy5uZWdhdGl2ZV49MTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX1lbHNlIGlmKHRoaXMubmVnYXRpdmU9PT0wJiZlLm5lZ2F0aXZlIT09MCl7ZS5uZWdhdGl2ZT0wO3Q9dGhpcy5pc3ViKGUpO2UubmVnYXRpdmU9MTtyZXR1cm4gdC5fbm9ybVNpZ24oKX12YXIgcixpO2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXtyPXRoaXM7aT1lfWVsc2V7cj1lO2k9dGhpc312YXIgbj0wO2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt0PShyLndvcmRzW2FdfDApKyhpLndvcmRzW2FdfDApK247dGhpcy53b3Jkc1thXT10JjY3MTA4ODYzO249dD4+PjI2fWZvcig7biE9PTAmJmE8ci5sZW5ndGg7YSsrKXt0PShyLndvcmRzW2FdfDApK247dGhpcy53b3Jkc1thXT10JjY3MTA4ODYzO249dD4+PjI2fXRoaXMubGVuZ3RoPXIubGVuZ3RoO2lmKG4hPT0wKXt0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1uO3RoaXMubGVuZ3RoKyt9ZWxzZSBpZihyIT09dGhpcyl7Zm9yKDthPHIubGVuZ3RoO2ErKyl7dGhpcy53b3Jkc1thXT1yLndvcmRzW2FdfX1yZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbiBhZGQoZSl7dmFyIHQ7aWYoZS5uZWdhdGl2ZSE9PTAmJnRoaXMubmVnYXRpdmU9PT0wKXtlLm5lZ2F0aXZlPTA7dD10aGlzLnN1YihlKTtlLm5lZ2F0aXZlXj0xO3JldHVybiB0fWVsc2UgaWYoZS5uZWdhdGl2ZT09PTAmJnRoaXMubmVnYXRpdmUhPT0wKXt0aGlzLm5lZ2F0aXZlPTA7dD1lLnN1Yih0aGlzKTt0aGlzLm5lZ2F0aXZlPTE7cmV0dXJuIHR9aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkKGUpO3JldHVybiBlLmNsb25lKCkuaWFkZCh0aGlzKX07Qk4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24gaXN1YihlKXtpZihlLm5lZ2F0aXZlIT09MCl7ZS5uZWdhdGl2ZT0wO3ZhciB0PXRoaXMuaWFkZChlKTtlLm5lZ2F0aXZlPTE7cmV0dXJuIHQuX25vcm1TaWduKCl9ZWxzZSBpZih0aGlzLm5lZ2F0aXZlIT09MCl7dGhpcy5uZWdhdGl2ZT0wO3RoaXMuaWFkZChlKTt0aGlzLm5lZ2F0aXZlPTE7cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9dmFyIHI9dGhpcy5jbXAoZSk7aWYocj09PTApe3RoaXMubmVnYXRpdmU9MDt0aGlzLmxlbmd0aD0xO3RoaXMud29yZHNbMF09MDtyZXR1cm4gdGhpc312YXIgaSxuO2lmKHI+MCl7aT10aGlzO249ZX1lbHNle2k9ZTtuPXRoaXN9dmFyIGE9MDtmb3IodmFyIHM9MDtzPG4ubGVuZ3RoO3MrKyl7dD0oaS53b3Jkc1tzXXwwKS0obi53b3Jkc1tzXXwwKSthO2E9dD4+MjY7dGhpcy53b3Jkc1tzXT10JjY3MTA4ODYzfWZvcig7YSE9PTAmJnM8aS5sZW5ndGg7cysrKXt0PShpLndvcmRzW3NdfDApK2E7YT10Pj4yNjt0aGlzLndvcmRzW3NdPXQmNjcxMDg4NjN9aWYoYT09PTAmJnM8aS5sZW5ndGgmJmkhPT10aGlzKXtmb3IoO3M8aS5sZW5ndGg7cysrKXt0aGlzLndvcmRzW3NdPWkud29yZHNbc119fXRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHMpO2lmKGkhPT10aGlzKXt0aGlzLm5lZ2F0aXZlPTF9cmV0dXJuIHRoaXMuc3RyaXAoKX07Qk4ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbiBzdWIoZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGUpfTtmdW5jdGlvbiBzbWFsbE11bFRvKGUsdCxyKXtyLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZTt2YXIgaT1lLmxlbmd0aCt0Lmxlbmd0aHwwO3IubGVuZ3RoPWk7aT1pLTF8MDt2YXIgbj1lLndvcmRzWzBdfDA7dmFyIGE9dC53b3Jkc1swXXwwO3ZhciBzPW4qYTt2YXIgbz1zJjY3MTA4ODYzO3ZhciBoPXMvNjcxMDg4NjR8MDtyLndvcmRzWzBdPW87Zm9yKHZhciB1PTE7dTxpO3UrKyl7dmFyIGQ9aD4+PjI2O3ZhciBjPWgmNjcxMDg4NjM7dmFyIGw9TWF0aC5taW4odSx0Lmxlbmd0aC0xKTtmb3IodmFyIHA9TWF0aC5tYXgoMCx1LWUubGVuZ3RoKzEpO3A8PWw7cCsrKXt2YXIgdj11LXB8MDtuPWUud29yZHNbdl18MDthPXQud29yZHNbcF18MDtzPW4qYStjO2QrPXMvNjcxMDg4NjR8MDtjPXMmNjcxMDg4NjN9ci53b3Jkc1t1XT1jfDA7aD1kfDB9aWYoaCE9PTApe3Iud29yZHNbdV09aHwwfWVsc2V7ci5sZW5ndGgtLX1yZXR1cm4gci5zdHJpcCgpfXZhciBvPWZ1bmN0aW9uIGNvbWIxME11bFRvKGUsdCxyKXt2YXIgaT1lLndvcmRzO3ZhciBuPXQud29yZHM7dmFyIGE9ci53b3Jkczt2YXIgcz0wO3ZhciBvO3ZhciBoO3ZhciB1O3ZhciBkPWlbMF18MDt2YXIgYz1kJjgxOTE7dmFyIGw9ZD4+PjEzO3ZhciBwPWlbMV18MDt2YXIgdj1wJjgxOTE7dmFyIGI9cD4+PjEzO3ZhciBtPWlbMl18MDt2YXIgeT1tJjgxOTE7dmFyIGc9bT4+PjEzO3ZhciBfPWlbM118MDt2YXIgdz1fJjgxOTE7dmFyIE09Xz4+PjEzO3ZhciBCPWlbNF18MDt2YXIgRT1CJjgxOTE7dmFyIGs9Qj4+PjEzO3ZhciBBPWlbNV18MDt2YXIgTj1BJjgxOTE7dmFyIFA9QT4+PjEzO3ZhciB4PWlbNl18MDt2YXIgST14JjgxOTE7dmFyIEM9eD4+PjEzO3ZhciBEPWlbN118MDt2YXIgVD1EJjgxOTE7dmFyIGo9RD4+PjEzO3ZhciBxPWlbOF18MDt2YXIgTz1xJjgxOTE7dmFyIEg9cT4+PjEzO3ZhciBMPWlbOV18MDt2YXIgej1MJjgxOTE7dmFyIEY9TD4+PjEzO3ZhciBVPW5bMF18MDt2YXIgVz1VJjgxOTE7dmFyIFY9VT4+PjEzO3ZhciBHPW5bMV18MDt2YXIgSj1HJjgxOTE7dmFyIFo9Rz4+PjEzO3ZhciBYPW5bMl18MDt2YXIgWT1YJjgxOTE7dmFyICQ9WD4+PjEzO3ZhciBRPW5bM118MDt2YXIgZWU9USY4MTkxO3ZhciB0ZT1RPj4+MTM7dmFyIHJlPW5bNF18MDt2YXIgaWU9cmUmODE5MTt2YXIgbmU9cmU+Pj4xMzt2YXIgYWU9bls1XXwwO3ZhciBmZT1hZSY4MTkxO3ZhciBzZT1hZT4+PjEzO3ZhciBvZT1uWzZdfDA7dmFyIGhlPW9lJjgxOTE7dmFyIHVlPW9lPj4+MTM7dmFyIGRlPW5bN118MDt2YXIgY2U9ZGUmODE5MTt2YXIgbGU9ZGU+Pj4xMzt2YXIgcGU9bls4XXwwO3ZhciB2ZT1wZSY4MTkxO3ZhciBiZT1wZT4+PjEzO3ZhciBtZT1uWzldfDA7dmFyIHllPW1lJjgxOTE7dmFyIGdlPW1lPj4+MTM7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmU7ci5sZW5ndGg9MTk7bz1NYXRoLmltdWwoYyxXKTtoPU1hdGguaW11bChjLFYpO2g9aCtNYXRoLmltdWwobCxXKXwwO3U9TWF0aC5pbXVsKGwsVik7dmFyIF9lPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhfZT4+PjI2KXwwO19lJj02NzEwODg2MztvPU1hdGguaW11bCh2LFcpO2g9TWF0aC5pbXVsKHYsVik7aD1oK01hdGguaW11bChiLFcpfDA7dT1NYXRoLmltdWwoYixWKTtvPW8rTWF0aC5pbXVsKGMsSil8MDtoPWgrTWF0aC5pbXVsKGMsWil8MDtoPWgrTWF0aC5pbXVsKGwsSil8MDt1PXUrTWF0aC5pbXVsKGwsWil8MDt2YXIgd2U9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKHdlPj4+MjYpfDA7d2UmPTY3MTA4ODYzO289TWF0aC5pbXVsKHksVyk7aD1NYXRoLmltdWwoeSxWKTtoPWgrTWF0aC5pbXVsKGcsVyl8MDt1PU1hdGguaW11bChnLFYpO289bytNYXRoLmltdWwodixKKXwwO2g9aCtNYXRoLmltdWwodixaKXwwO2g9aCtNYXRoLmltdWwoYixKKXwwO3U9dStNYXRoLmltdWwoYixaKXwwO289bytNYXRoLmltdWwoYyxZKXwwO2g9aCtNYXRoLmltdWwoYywkKXwwO2g9aCtNYXRoLmltdWwobCxZKXwwO3U9dStNYXRoLmltdWwobCwkKXwwO3ZhciBNZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoTWU+Pj4yNil8MDtNZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwodyxXKTtoPU1hdGguaW11bCh3LFYpO2g9aCtNYXRoLmltdWwoTSxXKXwwO3U9TWF0aC5pbXVsKE0sVik7bz1vK01hdGguaW11bCh5LEopfDA7aD1oK01hdGguaW11bCh5LFopfDA7aD1oK01hdGguaW11bChnLEopfDA7dT11K01hdGguaW11bChnLFopfDA7bz1vK01hdGguaW11bCh2LFkpfDA7aD1oK01hdGguaW11bCh2LCQpfDA7aD1oK01hdGguaW11bChiLFkpfDA7dT11K01hdGguaW11bChiLCQpfDA7bz1vK01hdGguaW11bChjLGVlKXwwO2g9aCtNYXRoLmltdWwoYyx0ZSl8MDtoPWgrTWF0aC5pbXVsKGwsZWUpfDA7dT11K01hdGguaW11bChsLHRlKXwwO3ZhciBTZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoU2U+Pj4yNil8MDtTZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoRSxXKTtoPU1hdGguaW11bChFLFYpO2g9aCtNYXRoLmltdWwoayxXKXwwO3U9TWF0aC5pbXVsKGssVik7bz1vK01hdGguaW11bCh3LEopfDA7aD1oK01hdGguaW11bCh3LFopfDA7aD1oK01hdGguaW11bChNLEopfDA7dT11K01hdGguaW11bChNLFopfDA7bz1vK01hdGguaW11bCh5LFkpfDA7aD1oK01hdGguaW11bCh5LCQpfDA7aD1oK01hdGguaW11bChnLFkpfDA7dT11K01hdGguaW11bChnLCQpfDA7bz1vK01hdGguaW11bCh2LGVlKXwwO2g9aCtNYXRoLmltdWwodix0ZSl8MDtoPWgrTWF0aC5pbXVsKGIsZWUpfDA7dT11K01hdGguaW11bChiLHRlKXwwO289bytNYXRoLmltdWwoYyxpZSl8MDtoPWgrTWF0aC5pbXVsKGMsbmUpfDA7aD1oK01hdGguaW11bChsLGllKXwwO3U9dStNYXRoLmltdWwobCxuZSl8MDt2YXIgQmU9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKEJlPj4+MjYpfDA7QmUmPTY3MTA4ODYzO289TWF0aC5pbXVsKE4sVyk7aD1NYXRoLmltdWwoTixWKTtoPWgrTWF0aC5pbXVsKFAsVyl8MDt1PU1hdGguaW11bChQLFYpO289bytNYXRoLmltdWwoRSxKKXwwO2g9aCtNYXRoLmltdWwoRSxaKXwwO2g9aCtNYXRoLmltdWwoayxKKXwwO3U9dStNYXRoLmltdWwoayxaKXwwO289bytNYXRoLmltdWwodyxZKXwwO2g9aCtNYXRoLmltdWwodywkKXwwO2g9aCtNYXRoLmltdWwoTSxZKXwwO3U9dStNYXRoLmltdWwoTSwkKXwwO289bytNYXRoLmltdWwoeSxlZSl8MDtoPWgrTWF0aC5pbXVsKHksdGUpfDA7aD1oK01hdGguaW11bChnLGVlKXwwO3U9dStNYXRoLmltdWwoZyx0ZSl8MDtvPW8rTWF0aC5pbXVsKHYsaWUpfDA7aD1oK01hdGguaW11bCh2LG5lKXwwO2g9aCtNYXRoLmltdWwoYixpZSl8MDt1PXUrTWF0aC5pbXVsKGIsbmUpfDA7bz1vK01hdGguaW11bChjLGZlKXwwO2g9aCtNYXRoLmltdWwoYyxzZSl8MDtoPWgrTWF0aC5pbXVsKGwsZmUpfDA7dT11K01hdGguaW11bChsLHNlKXwwO3ZhciBFZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoRWU+Pj4yNil8MDtFZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoSSxXKTtoPU1hdGguaW11bChJLFYpO2g9aCtNYXRoLmltdWwoQyxXKXwwO3U9TWF0aC5pbXVsKEMsVik7bz1vK01hdGguaW11bChOLEopfDA7aD1oK01hdGguaW11bChOLFopfDA7aD1oK01hdGguaW11bChQLEopfDA7dT11K01hdGguaW11bChQLFopfDA7bz1vK01hdGguaW11bChFLFkpfDA7aD1oK01hdGguaW11bChFLCQpfDA7aD1oK01hdGguaW11bChrLFkpfDA7dT11K01hdGguaW11bChrLCQpfDA7bz1vK01hdGguaW11bCh3LGVlKXwwO2g9aCtNYXRoLmltdWwodyx0ZSl8MDtoPWgrTWF0aC5pbXVsKE0sZWUpfDA7dT11K01hdGguaW11bChNLHRlKXwwO289bytNYXRoLmltdWwoeSxpZSl8MDtoPWgrTWF0aC5pbXVsKHksbmUpfDA7aD1oK01hdGguaW11bChnLGllKXwwO3U9dStNYXRoLmltdWwoZyxuZSl8MDtvPW8rTWF0aC5pbXVsKHYsZmUpfDA7aD1oK01hdGguaW11bCh2LHNlKXwwO2g9aCtNYXRoLmltdWwoYixmZSl8MDt1PXUrTWF0aC5pbXVsKGIsc2UpfDA7bz1vK01hdGguaW11bChjLGhlKXwwO2g9aCtNYXRoLmltdWwoYyx1ZSl8MDtoPWgrTWF0aC5pbXVsKGwsaGUpfDA7dT11K01hdGguaW11bChsLHVlKXwwO3ZhciBrZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoa2U+Pj4yNil8MDtrZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoVCxXKTtoPU1hdGguaW11bChULFYpO2g9aCtNYXRoLmltdWwoaixXKXwwO3U9TWF0aC5pbXVsKGosVik7bz1vK01hdGguaW11bChJLEopfDA7aD1oK01hdGguaW11bChJLFopfDA7aD1oK01hdGguaW11bChDLEopfDA7dT11K01hdGguaW11bChDLFopfDA7bz1vK01hdGguaW11bChOLFkpfDA7aD1oK01hdGguaW11bChOLCQpfDA7aD1oK01hdGguaW11bChQLFkpfDA7dT11K01hdGguaW11bChQLCQpfDA7bz1vK01hdGguaW11bChFLGVlKXwwO2g9aCtNYXRoLmltdWwoRSx0ZSl8MDtoPWgrTWF0aC5pbXVsKGssZWUpfDA7dT11K01hdGguaW11bChrLHRlKXwwO289bytNYXRoLmltdWwodyxpZSl8MDtoPWgrTWF0aC5pbXVsKHcsbmUpfDA7aD1oK01hdGguaW11bChNLGllKXwwO3U9dStNYXRoLmltdWwoTSxuZSl8MDtvPW8rTWF0aC5pbXVsKHksZmUpfDA7aD1oK01hdGguaW11bCh5LHNlKXwwO2g9aCtNYXRoLmltdWwoZyxmZSl8MDt1PXUrTWF0aC5pbXVsKGcsc2UpfDA7bz1vK01hdGguaW11bCh2LGhlKXwwO2g9aCtNYXRoLmltdWwodix1ZSl8MDtoPWgrTWF0aC5pbXVsKGIsaGUpfDA7dT11K01hdGguaW11bChiLHVlKXwwO289bytNYXRoLmltdWwoYyxjZSl8MDtoPWgrTWF0aC5pbXVsKGMsbGUpfDA7aD1oK01hdGguaW11bChsLGNlKXwwO3U9dStNYXRoLmltdWwobCxsZSl8MDt2YXIgQWU9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKEFlPj4+MjYpfDA7QWUmPTY3MTA4ODYzO289TWF0aC5pbXVsKE8sVyk7aD1NYXRoLmltdWwoTyxWKTtoPWgrTWF0aC5pbXVsKEgsVyl8MDt1PU1hdGguaW11bChILFYpO289bytNYXRoLmltdWwoVCxKKXwwO2g9aCtNYXRoLmltdWwoVCxaKXwwO2g9aCtNYXRoLmltdWwoaixKKXwwO3U9dStNYXRoLmltdWwoaixaKXwwO289bytNYXRoLmltdWwoSSxZKXwwO2g9aCtNYXRoLmltdWwoSSwkKXwwO2g9aCtNYXRoLmltdWwoQyxZKXwwO3U9dStNYXRoLmltdWwoQywkKXwwO289bytNYXRoLmltdWwoTixlZSl8MDtoPWgrTWF0aC5pbXVsKE4sdGUpfDA7aD1oK01hdGguaW11bChQLGVlKXwwO3U9dStNYXRoLmltdWwoUCx0ZSl8MDtvPW8rTWF0aC5pbXVsKEUsaWUpfDA7aD1oK01hdGguaW11bChFLG5lKXwwO2g9aCtNYXRoLmltdWwoayxpZSl8MDt1PXUrTWF0aC5pbXVsKGssbmUpfDA7bz1vK01hdGguaW11bCh3LGZlKXwwO2g9aCtNYXRoLmltdWwodyxzZSl8MDtoPWgrTWF0aC5pbXVsKE0sZmUpfDA7dT11K01hdGguaW11bChNLHNlKXwwO289bytNYXRoLmltdWwoeSxoZSl8MDtoPWgrTWF0aC5pbXVsKHksdWUpfDA7aD1oK01hdGguaW11bChnLGhlKXwwO3U9dStNYXRoLmltdWwoZyx1ZSl8MDtvPW8rTWF0aC5pbXVsKHYsY2UpfDA7aD1oK01hdGguaW11bCh2LGxlKXwwO2g9aCtNYXRoLmltdWwoYixjZSl8MDt1PXUrTWF0aC5pbXVsKGIsbGUpfDA7bz1vK01hdGguaW11bChjLHZlKXwwO2g9aCtNYXRoLmltdWwoYyxiZSl8MDtoPWgrTWF0aC5pbXVsKGwsdmUpfDA7dT11K01hdGguaW11bChsLGJlKXwwO3ZhciBOZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoTmU+Pj4yNil8MDtOZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixXKTtoPU1hdGguaW11bCh6LFYpO2g9aCtNYXRoLmltdWwoRixXKXwwO3U9TWF0aC5pbXVsKEYsVik7bz1vK01hdGguaW11bChPLEopfDA7aD1oK01hdGguaW11bChPLFopfDA7aD1oK01hdGguaW11bChILEopfDA7dT11K01hdGguaW11bChILFopfDA7bz1vK01hdGguaW11bChULFkpfDA7aD1oK01hdGguaW11bChULCQpfDA7aD1oK01hdGguaW11bChqLFkpfDA7dT11K01hdGguaW11bChqLCQpfDA7bz1vK01hdGguaW11bChJLGVlKXwwO2g9aCtNYXRoLmltdWwoSSx0ZSl8MDtoPWgrTWF0aC5pbXVsKEMsZWUpfDA7dT11K01hdGguaW11bChDLHRlKXwwO289bytNYXRoLmltdWwoTixpZSl8MDtoPWgrTWF0aC5pbXVsKE4sbmUpfDA7aD1oK01hdGguaW11bChQLGllKXwwO3U9dStNYXRoLmltdWwoUCxuZSl8MDtvPW8rTWF0aC5pbXVsKEUsZmUpfDA7aD1oK01hdGguaW11bChFLHNlKXwwO2g9aCtNYXRoLmltdWwoayxmZSl8MDt1PXUrTWF0aC5pbXVsKGssc2UpfDA7bz1vK01hdGguaW11bCh3LGhlKXwwO2g9aCtNYXRoLmltdWwodyx1ZSl8MDtoPWgrTWF0aC5pbXVsKE0saGUpfDA7dT11K01hdGguaW11bChNLHVlKXwwO289bytNYXRoLmltdWwoeSxjZSl8MDtoPWgrTWF0aC5pbXVsKHksbGUpfDA7aD1oK01hdGguaW11bChnLGNlKXwwO3U9dStNYXRoLmltdWwoZyxsZSl8MDtvPW8rTWF0aC5pbXVsKHYsdmUpfDA7aD1oK01hdGguaW11bCh2LGJlKXwwO2g9aCtNYXRoLmltdWwoYix2ZSl8MDt1PXUrTWF0aC5pbXVsKGIsYmUpfDA7bz1vK01hdGguaW11bChjLHllKXwwO2g9aCtNYXRoLmltdWwoYyxnZSl8MDtoPWgrTWF0aC5pbXVsKGwseWUpfDA7dT11K01hdGguaW11bChsLGdlKXwwO3ZhciBSZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoUmU+Pj4yNil8MDtSZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixKKTtoPU1hdGguaW11bCh6LFopO2g9aCtNYXRoLmltdWwoRixKKXwwO3U9TWF0aC5pbXVsKEYsWik7bz1vK01hdGguaW11bChPLFkpfDA7aD1oK01hdGguaW11bChPLCQpfDA7aD1oK01hdGguaW11bChILFkpfDA7dT11K01hdGguaW11bChILCQpfDA7bz1vK01hdGguaW11bChULGVlKXwwO2g9aCtNYXRoLmltdWwoVCx0ZSl8MDtoPWgrTWF0aC5pbXVsKGosZWUpfDA7dT11K01hdGguaW11bChqLHRlKXwwO289bytNYXRoLmltdWwoSSxpZSl8MDtoPWgrTWF0aC5pbXVsKEksbmUpfDA7aD1oK01hdGguaW11bChDLGllKXwwO3U9dStNYXRoLmltdWwoQyxuZSl8MDtvPW8rTWF0aC5pbXVsKE4sZmUpfDA7aD1oK01hdGguaW11bChOLHNlKXwwO2g9aCtNYXRoLmltdWwoUCxmZSl8MDt1PXUrTWF0aC5pbXVsKFAsc2UpfDA7bz1vK01hdGguaW11bChFLGhlKXwwO2g9aCtNYXRoLmltdWwoRSx1ZSl8MDtoPWgrTWF0aC5pbXVsKGssaGUpfDA7dT11K01hdGguaW11bChrLHVlKXwwO289bytNYXRoLmltdWwodyxjZSl8MDtoPWgrTWF0aC5pbXVsKHcsbGUpfDA7aD1oK01hdGguaW11bChNLGNlKXwwO3U9dStNYXRoLmltdWwoTSxsZSl8MDtvPW8rTWF0aC5pbXVsKHksdmUpfDA7aD1oK01hdGguaW11bCh5LGJlKXwwO2g9aCtNYXRoLmltdWwoZyx2ZSl8MDt1PXUrTWF0aC5pbXVsKGcsYmUpfDA7bz1vK01hdGguaW11bCh2LHllKXwwO2g9aCtNYXRoLmltdWwodixnZSl8MDtoPWgrTWF0aC5pbXVsKGIseWUpfDA7dT11K01hdGguaW11bChiLGdlKXwwO3ZhciBQZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoUGU+Pj4yNil8MDtQZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixZKTtoPU1hdGguaW11bCh6LCQpO2g9aCtNYXRoLmltdWwoRixZKXwwO3U9TWF0aC5pbXVsKEYsJCk7bz1vK01hdGguaW11bChPLGVlKXwwO2g9aCtNYXRoLmltdWwoTyx0ZSl8MDtoPWgrTWF0aC5pbXVsKEgsZWUpfDA7dT11K01hdGguaW11bChILHRlKXwwO289bytNYXRoLmltdWwoVCxpZSl8MDtoPWgrTWF0aC5pbXVsKFQsbmUpfDA7aD1oK01hdGguaW11bChqLGllKXwwO3U9dStNYXRoLmltdWwoaixuZSl8MDtvPW8rTWF0aC5pbXVsKEksZmUpfDA7aD1oK01hdGguaW11bChJLHNlKXwwO2g9aCtNYXRoLmltdWwoQyxmZSl8MDt1PXUrTWF0aC5pbXVsKEMsc2UpfDA7bz1vK01hdGguaW11bChOLGhlKXwwO2g9aCtNYXRoLmltdWwoTix1ZSl8MDtoPWgrTWF0aC5pbXVsKFAsaGUpfDA7dT11K01hdGguaW11bChQLHVlKXwwO289bytNYXRoLmltdWwoRSxjZSl8MDtoPWgrTWF0aC5pbXVsKEUsbGUpfDA7aD1oK01hdGguaW11bChrLGNlKXwwO3U9dStNYXRoLmltdWwoayxsZSl8MDtvPW8rTWF0aC5pbXVsKHcsdmUpfDA7aD1oK01hdGguaW11bCh3LGJlKXwwO2g9aCtNYXRoLmltdWwoTSx2ZSl8MDt1PXUrTWF0aC5pbXVsKE0sYmUpfDA7bz1vK01hdGguaW11bCh5LHllKXwwO2g9aCtNYXRoLmltdWwoeSxnZSl8MDtoPWgrTWF0aC5pbXVsKGcseWUpfDA7dT11K01hdGguaW11bChnLGdlKXwwO3ZhciB4ZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoeGU+Pj4yNil8MDt4ZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixlZSk7aD1NYXRoLmltdWwoeix0ZSk7aD1oK01hdGguaW11bChGLGVlKXwwO3U9TWF0aC5pbXVsKEYsdGUpO289bytNYXRoLmltdWwoTyxpZSl8MDtoPWgrTWF0aC5pbXVsKE8sbmUpfDA7aD1oK01hdGguaW11bChILGllKXwwO3U9dStNYXRoLmltdWwoSCxuZSl8MDtvPW8rTWF0aC5pbXVsKFQsZmUpfDA7aD1oK01hdGguaW11bChULHNlKXwwO2g9aCtNYXRoLmltdWwoaixmZSl8MDt1PXUrTWF0aC5pbXVsKGosc2UpfDA7bz1vK01hdGguaW11bChJLGhlKXwwO2g9aCtNYXRoLmltdWwoSSx1ZSl8MDtoPWgrTWF0aC5pbXVsKEMsaGUpfDA7dT11K01hdGguaW11bChDLHVlKXwwO289bytNYXRoLmltdWwoTixjZSl8MDtoPWgrTWF0aC5pbXVsKE4sbGUpfDA7aD1oK01hdGguaW11bChQLGNlKXwwO3U9dStNYXRoLmltdWwoUCxsZSl8MDtvPW8rTWF0aC5pbXVsKEUsdmUpfDA7aD1oK01hdGguaW11bChFLGJlKXwwO2g9aCtNYXRoLmltdWwoayx2ZSl8MDt1PXUrTWF0aC5pbXVsKGssYmUpfDA7bz1vK01hdGguaW11bCh3LHllKXwwO2g9aCtNYXRoLmltdWwodyxnZSl8MDtoPWgrTWF0aC5pbXVsKE0seWUpfDA7dT11K01hdGguaW11bChNLGdlKXwwO3ZhciBJZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoSWU+Pj4yNil8MDtJZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixpZSk7aD1NYXRoLmltdWwoeixuZSk7aD1oK01hdGguaW11bChGLGllKXwwO3U9TWF0aC5pbXVsKEYsbmUpO289bytNYXRoLmltdWwoTyxmZSl8MDtoPWgrTWF0aC5pbXVsKE8sc2UpfDA7aD1oK01hdGguaW11bChILGZlKXwwO3U9dStNYXRoLmltdWwoSCxzZSl8MDtvPW8rTWF0aC5pbXVsKFQsaGUpfDA7aD1oK01hdGguaW11bChULHVlKXwwO2g9aCtNYXRoLmltdWwoaixoZSl8MDt1PXUrTWF0aC5pbXVsKGosdWUpfDA7bz1vK01hdGguaW11bChJLGNlKXwwO2g9aCtNYXRoLmltdWwoSSxsZSl8MDtoPWgrTWF0aC5pbXVsKEMsY2UpfDA7dT11K01hdGguaW11bChDLGxlKXwwO289bytNYXRoLmltdWwoTix2ZSl8MDtoPWgrTWF0aC5pbXVsKE4sYmUpfDA7aD1oK01hdGguaW11bChQLHZlKXwwO3U9dStNYXRoLmltdWwoUCxiZSl8MDtvPW8rTWF0aC5pbXVsKEUseWUpfDA7aD1oK01hdGguaW11bChFLGdlKXwwO2g9aCtNYXRoLmltdWwoayx5ZSl8MDt1PXUrTWF0aC5pbXVsKGssZ2UpfDA7dmFyIENlPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhDZT4+PjI2KXwwO0NlJj02NzEwODg2MztvPU1hdGguaW11bCh6LGZlKTtoPU1hdGguaW11bCh6LHNlKTtoPWgrTWF0aC5pbXVsKEYsZmUpfDA7dT1NYXRoLmltdWwoRixzZSk7bz1vK01hdGguaW11bChPLGhlKXwwO2g9aCtNYXRoLmltdWwoTyx1ZSl8MDtoPWgrTWF0aC5pbXVsKEgsaGUpfDA7dT11K01hdGguaW11bChILHVlKXwwO289bytNYXRoLmltdWwoVCxjZSl8MDtoPWgrTWF0aC5pbXVsKFQsbGUpfDA7aD1oK01hdGguaW11bChqLGNlKXwwO3U9dStNYXRoLmltdWwoaixsZSl8MDtvPW8rTWF0aC5pbXVsKEksdmUpfDA7aD1oK01hdGguaW11bChJLGJlKXwwO2g9aCtNYXRoLmltdWwoQyx2ZSl8MDt1PXUrTWF0aC5pbXVsKEMsYmUpfDA7bz1vK01hdGguaW11bChOLHllKXwwO2g9aCtNYXRoLmltdWwoTixnZSl8MDtoPWgrTWF0aC5pbXVsKFAseWUpfDA7dT11K01hdGguaW11bChQLGdlKXwwO3ZhciBEZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoRGU+Pj4yNil8MDtEZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixoZSk7aD1NYXRoLmltdWwoeix1ZSk7aD1oK01hdGguaW11bChGLGhlKXwwO3U9TWF0aC5pbXVsKEYsdWUpO289bytNYXRoLmltdWwoTyxjZSl8MDtoPWgrTWF0aC5pbXVsKE8sbGUpfDA7aD1oK01hdGguaW11bChILGNlKXwwO3U9dStNYXRoLmltdWwoSCxsZSl8MDtvPW8rTWF0aC5pbXVsKFQsdmUpfDA7aD1oK01hdGguaW11bChULGJlKXwwO2g9aCtNYXRoLmltdWwoaix2ZSl8MDt1PXUrTWF0aC5pbXVsKGosYmUpfDA7bz1vK01hdGguaW11bChJLHllKXwwO2g9aCtNYXRoLmltdWwoSSxnZSl8MDtoPWgrTWF0aC5pbXVsKEMseWUpfDA7dT11K01hdGguaW11bChDLGdlKXwwO3ZhciBUZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoVGU+Pj4yNil8MDtUZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixjZSk7aD1NYXRoLmltdWwoeixsZSk7aD1oK01hdGguaW11bChGLGNlKXwwO3U9TWF0aC5pbXVsKEYsbGUpO289bytNYXRoLmltdWwoTyx2ZSl8MDtoPWgrTWF0aC5pbXVsKE8sYmUpfDA7aD1oK01hdGguaW11bChILHZlKXwwO3U9dStNYXRoLmltdWwoSCxiZSl8MDtvPW8rTWF0aC5pbXVsKFQseWUpfDA7aD1oK01hdGguaW11bChULGdlKXwwO2g9aCtNYXRoLmltdWwoaix5ZSl8MDt1PXUrTWF0aC5pbXVsKGosZ2UpfDA7dmFyIGplPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhqZT4+PjI2KXwwO2plJj02NzEwODg2MztvPU1hdGguaW11bCh6LHZlKTtoPU1hdGguaW11bCh6LGJlKTtoPWgrTWF0aC5pbXVsKEYsdmUpfDA7dT1NYXRoLmltdWwoRixiZSk7bz1vK01hdGguaW11bChPLHllKXwwO2g9aCtNYXRoLmltdWwoTyxnZSl8MDtoPWgrTWF0aC5pbXVsKEgseWUpfDA7dT11K01hdGguaW11bChILGdlKXwwO3ZhciBxZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsocWU+Pj4yNil8MDtxZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeix5ZSk7aD1NYXRoLmltdWwoeixnZSk7aD1oK01hdGguaW11bChGLHllKXwwO3U9TWF0aC5pbXVsKEYsZ2UpO3ZhciBPZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoT2U+Pj4yNil8MDtPZSY9NjcxMDg4NjM7YVswXT1fZTthWzFdPXdlO2FbMl09TWU7YVszXT1TZTthWzRdPUJlO2FbNV09RWU7YVs2XT1rZTthWzddPUFlO2FbOF09TmU7YVs5XT1SZTthWzEwXT1QZTthWzExXT14ZTthWzEyXT1JZTthWzEzXT1DZTthWzE0XT1EZTthWzE1XT1UZTthWzE2XT1qZTthWzE3XT1xZTthWzE4XT1PZTtpZihzIT09MCl7YVsxOV09cztyLmxlbmd0aCsrfXJldHVybiByfTtpZighTWF0aC5pbXVsKXtvPXNtYWxsTXVsVG99ZnVuY3Rpb24gYmlnTXVsVG8oZSx0LHIpe3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlO3IubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoO3ZhciBpPTA7dmFyIG49MDtmb3IodmFyIGE9MDthPHIubGVuZ3RoLTE7YSsrKXt2YXIgcz1uO249MDt2YXIgbz1pJjY3MTA4ODYzO3ZhciBoPU1hdGgubWluKGEsdC5sZW5ndGgtMSk7Zm9yKHZhciB1PU1hdGgubWF4KDAsYS1lLmxlbmd0aCsxKTt1PD1oO3UrKyl7dmFyIGQ9YS11O3ZhciBjPWUud29yZHNbZF18MDt2YXIgbD10LndvcmRzW3VdfDA7dmFyIHA9YypsO3ZhciB2PXAmNjcxMDg4NjM7cz1zKyhwLzY3MTA4ODY0fDApfDA7dj12K298MDtvPXYmNjcxMDg4NjM7cz1zKyh2Pj4+MjYpfDA7bis9cz4+PjI2O3MmPTY3MTA4ODYzfXIud29yZHNbYV09bztpPXM7cz1ufWlmKGkhPT0wKXtyLndvcmRzW2FdPWl9ZWxzZXtyLmxlbmd0aC0tfXJldHVybiByLnN0cmlwKCl9ZnVuY3Rpb24ganVtYm9NdWxUbyhlLHQscil7dmFyIGk9bmV3IEZGVE07cmV0dXJuIGkubXVscChlLHQscil9Qk4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uIG11bFRvKGUsdCl7dmFyIHI7dmFyIGk9dGhpcy5sZW5ndGgrZS5sZW5ndGg7aWYodGhpcy5sZW5ndGg9PT0xMCYmZS5sZW5ndGg9PT0xMCl7cj1vKHRoaXMsZSx0KX1lbHNlIGlmKGk8NjMpe3I9c21hbGxNdWxUbyh0aGlzLGUsdCl9ZWxzZSBpZihpPDEwMjQpe3I9YmlnTXVsVG8odGhpcyxlLHQpfWVsc2V7cj1qdW1ib011bFRvKHRoaXMsZSx0KX1yZXR1cm4gcn07ZnVuY3Rpb24gRkZUTShlLHQpe3RoaXMueD1lO3RoaXMueT10fUZGVE0ucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24gbWFrZVJCVChlKXt2YXIgdD1uZXcgQXJyYXkoZSk7dmFyIHI9Qk4ucHJvdG90eXBlLl9jb3VudEJpdHMoZSktMTtmb3IodmFyIGk9MDtpPGU7aSsrKXt0W2ldPXRoaXMucmV2QmluKGkscixlKX1yZXR1cm4gdH07RkZUTS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uIHJldkJpbihlLHQscil7aWYoZT09PTB8fGU9PT1yLTEpcmV0dXJuIGU7dmFyIGk9MDtmb3IodmFyIG49MDtuPHQ7bisrKXtpfD0oZSYxKTw8dC1uLTE7ZT4+PTF9cmV0dXJuIGl9O0ZGVE0ucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24gcGVybXV0ZShlLHQscixpLG4sYSl7Zm9yKHZhciBzPTA7czxhO3MrKyl7aVtzXT10W2Vbc11dO25bc109cltlW3NdXX19O0ZGVE0ucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbiB0cmFuc2Zvcm0oZSx0LHIsaSxuLGEpe3RoaXMucGVybXV0ZShhLGUsdCxyLGksbik7Zm9yKHZhciBzPTE7czxuO3M8PD0xKXt2YXIgbz1zPDwxO3ZhciBoPU1hdGguY29zKDIqTWF0aC5QSS9vKTt2YXIgdT1NYXRoLnNpbigyKk1hdGguUEkvbyk7Zm9yKHZhciBkPTA7ZDxuO2QrPW8pe3ZhciBjPWg7dmFyIGw9dTtmb3IodmFyIHA9MDtwPHM7cCsrKXt2YXIgdj1yW2QrcF07dmFyIGI9aVtkK3BdO3ZhciBtPXJbZCtwK3NdO3ZhciB5PWlbZCtwK3NdO3ZhciBnPWMqbS1sKnk7eT1jKnkrbCptO209ZztyW2QrcF09dittO2lbZCtwXT1iK3k7cltkK3Arc109di1tO2lbZCtwK3NdPWIteTtpZihwIT09byl7Zz1oKmMtdSpsO2w9aCpsK3UqYztjPWd9fX19fTtGRlRNLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbiBndWVzc0xlbjEzYihlLHQpe3ZhciByPU1hdGgubWF4KHQsZSl8MTt2YXIgaT1yJjE7dmFyIG49MDtmb3Iocj1yLzJ8MDtyO3I9cj4+PjEpe24rK31yZXR1cm4gMTw8bisxK2l9O0ZGVE0ucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbiBjb25qdWdhdGUoZSx0LHIpe2lmKHI8PTEpcmV0dXJuO2Zvcih2YXIgaT0wO2k8ci8yO2krKyl7dmFyIG49ZVtpXTtlW2ldPWVbci1pLTFdO2Vbci1pLTFdPW47bj10W2ldO3RbaV09LXRbci1pLTFdO3Rbci1pLTFdPS1ufX07RkZUTS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uIG5vcm1hbGl6ZTEzYihlLHQpe3ZhciByPTA7Zm9yKHZhciBpPTA7aTx0LzI7aSsrKXt2YXIgbj1NYXRoLnJvdW5kKGVbMippKzFdL3QpKjgxOTIrTWF0aC5yb3VuZChlWzIqaV0vdCkrcjtlW2ldPW4mNjcxMDg4NjM7aWYobjw2NzEwODg2NCl7cj0wfWVsc2V7cj1uLzY3MTA4ODY0fDB9fXJldHVybiBlfTtGRlRNLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uIGNvbnZlcnQxM2IoZSx0LHIsaSl7dmFyIG49MDtmb3IodmFyIGE9MDthPHQ7YSsrKXtuPW4rKGVbYV18MCk7clsyKmFdPW4mODE5MTtuPW4+Pj4xMztyWzIqYSsxXT1uJjgxOTE7bj1uPj4+MTN9Zm9yKGE9Mip0O2E8aTsrK2Epe3JbYV09MH1hc3NlcnQobj09PTApO2Fzc2VydCgobiZ+ODE5MSk9PT0wKX07RkZUTS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbiBzdHViKGUpe3ZhciB0PW5ldyBBcnJheShlKTtmb3IodmFyIHI9MDtyPGU7cisrKXt0W3JdPTB9cmV0dXJuIHR9O0ZGVE0ucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24gbXVscChlLHQscil7dmFyIGk9Mip0aGlzLmd1ZXNzTGVuMTNiKGUubGVuZ3RoLHQubGVuZ3RoKTt2YXIgbj10aGlzLm1ha2VSQlQoaSk7dmFyIGE9dGhpcy5zdHViKGkpO3ZhciBzPW5ldyBBcnJheShpKTt2YXIgbz1uZXcgQXJyYXkoaSk7dmFyIGg9bmV3IEFycmF5KGkpO3ZhciB1PW5ldyBBcnJheShpKTt2YXIgZD1uZXcgQXJyYXkoaSk7dmFyIGM9bmV3IEFycmF5KGkpO3ZhciBsPXIud29yZHM7bC5sZW5ndGg9aTt0aGlzLmNvbnZlcnQxM2IoZS53b3JkcyxlLmxlbmd0aCxzLGkpO3RoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHUsaSk7dGhpcy50cmFuc2Zvcm0ocyxhLG8saCxpLG4pO3RoaXMudHJhbnNmb3JtKHUsYSxkLGMsaSxuKTtmb3IodmFyIHA9MDtwPGk7cCsrKXt2YXIgdj1vW3BdKmRbcF0taFtwXSpjW3BdO2hbcF09b1twXSpjW3BdK2hbcF0qZFtwXTtvW3BdPXZ9dGhpcy5jb25qdWdhdGUobyxoLGkpO3RoaXMudHJhbnNmb3JtKG8saCxsLGEsaSxuKTt0aGlzLmNvbmp1Z2F0ZShsLGEsaSk7dGhpcy5ub3JtYWxpemUxM2IobCxpKTtyLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZTtyLmxlbmd0aD1lLmxlbmd0aCt0Lmxlbmd0aDtyZXR1cm4gci5zdHJpcCgpfTtCTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIG11bChlKXt2YXIgdD1uZXcgQk4obnVsbCk7dC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZS5sZW5ndGgpO3JldHVybiB0aGlzLm11bFRvKGUsdCl9O0JOLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uIG11bGYoZSl7dmFyIHQ9bmV3IEJOKG51bGwpO3Qud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2UubGVuZ3RoKTtyZXR1cm4ganVtYm9NdWxUbyh0aGlzLGUsdCl9O0JOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uIGltdWwoZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhlLHRoaXMpfTtCTi5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24gaW11bG4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7YXNzZXJ0KGU8NjcxMDg4NjQpO3ZhciB0PTA7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspe3ZhciBpPSh0aGlzLndvcmRzW3JdfDApKmU7dmFyIG49KGkmNjcxMDg4NjMpKyh0JjY3MTA4ODYzKTt0Pj49MjY7dCs9aS82NzEwODg2NHwwO3QrPW4+Pj4yNjt0aGlzLndvcmRzW3JdPW4mNjcxMDg4NjN9aWYodCE9PTApe3RoaXMud29yZHNbcl09dDt0aGlzLmxlbmd0aCsrfXJldHVybiB0aGlzfTtCTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbiBtdWxuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZSl9O0JOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24gc3FyKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfTtCTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbiBpc3FyKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfTtCTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uIHBvdyhlKXt2YXIgdD10b0JpdEFycmF5KGUpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbmV3IEJOKDEpO3ZhciByPXRoaXM7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKysscj1yLnNxcigpKXtpZih0W2ldIT09MClicmVha31pZigrK2k8dC5sZW5ndGgpe2Zvcih2YXIgbj1yLnNxcigpO2k8dC5sZW5ndGg7aSsrLG49bi5zcXIoKSl7aWYodFtpXT09PTApY29udGludWU7cj1yLm11bChuKX19cmV0dXJuIHJ9O0JOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24gaXVzaGxuKGUpe2Fzc2VydCh0eXBlb2YgZT09PVwibnVtYmVyXCImJmU+PTApO3ZhciB0PWUlMjY7dmFyIHI9KGUtdCkvMjY7dmFyIGk9NjcxMDg4NjM+Pj4yNi10PDwyNi10O3ZhciBuO2lmKHQhPT0wKXt2YXIgYT0wO2ZvcihuPTA7bjx0aGlzLmxlbmd0aDtuKyspe3ZhciBzPXRoaXMud29yZHNbbl0maTt2YXIgbz0odGhpcy53b3Jkc1tuXXwwKS1zPDx0O3RoaXMud29yZHNbbl09b3xhO2E9cz4+PjI2LXR9aWYoYSl7dGhpcy53b3Jkc1tuXT1hO3RoaXMubGVuZ3RoKyt9fWlmKHIhPT0wKXtmb3Iobj10aGlzLmxlbmd0aC0xO24+PTA7bi0tKXt0aGlzLndvcmRzW24rcl09dGhpcy53b3Jkc1tuXX1mb3Iobj0wO248cjtuKyspe3RoaXMud29yZHNbbl09MH10aGlzLmxlbmd0aCs9cn1yZXR1cm4gdGhpcy5zdHJpcCgpfTtCTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24gaXNobG4oZSl7YXNzZXJ0KHRoaXMubmVnYXRpdmU9PT0wKTtyZXR1cm4gdGhpcy5pdXNobG4oZSl9O0JOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24gaXVzaHJuKGUsdCxyKXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgaTtpZih0KXtpPSh0LXQlMjYpLzI2fWVsc2V7aT0wfXZhciBuPWUlMjY7dmFyIGE9TWF0aC5taW4oKGUtbikvMjYsdGhpcy5sZW5ndGgpO3ZhciBzPTY3MTA4ODYzXjY3MTA4ODYzPj4+bjw8bjt2YXIgbz1yO2ktPWE7aT1NYXRoLm1heCgwLGkpO2lmKG8pe2Zvcih2YXIgaD0wO2g8YTtoKyspe28ud29yZHNbaF09dGhpcy53b3Jkc1toXX1vLmxlbmd0aD1hfWlmKGE9PT0wKXt9ZWxzZSBpZih0aGlzLmxlbmd0aD5hKXt0aGlzLmxlbmd0aC09YTtmb3IoaD0wO2g8dGhpcy5sZW5ndGg7aCsrKXt0aGlzLndvcmRzW2hdPXRoaXMud29yZHNbaCthXX19ZWxzZXt0aGlzLndvcmRzWzBdPTA7dGhpcy5sZW5ndGg9MX12YXIgdT0wO2ZvcihoPXRoaXMubGVuZ3RoLTE7aD49MCYmKHUhPT0wfHxoPj1pKTtoLS0pe3ZhciBkPXRoaXMud29yZHNbaF18MDt0aGlzLndvcmRzW2hdPXU8PDI2LW58ZD4+Pm47dT1kJnN9aWYobyYmdSE9PTApe28ud29yZHNbby5sZW5ndGgrK109dX1pZih0aGlzLmxlbmd0aD09PTApe3RoaXMud29yZHNbMF09MDt0aGlzLmxlbmd0aD0xfXJldHVybiB0aGlzLnN0cmlwKCl9O0JOLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbiBpc2hybihlLHQscil7YXNzZXJ0KHRoaXMubmVnYXRpdmU9PT0wKTtyZXR1cm4gdGhpcy5pdXNocm4oZSx0LHIpfTtCTi5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbiBzaGxuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZSl9O0JOLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbiB1c2hsbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihlKX07Qk4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24gc2hybihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGUpfTtCTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24gdXNocm4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZSl9O0JOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbiB0ZXN0bihlKXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgdD1lJTI2O3ZhciByPShlLXQpLzI2O3ZhciBpPTE8PHQ7aWYodGhpcy5sZW5ndGg8PXIpcmV0dXJuIGZhbHNlO3ZhciBuPXRoaXMud29yZHNbcl07cmV0dXJuISEobiZpKX07Qk4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbiBpbWFza24oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIiYmZT49MCk7dmFyIHQ9ZSUyNjt2YXIgcj0oZS10KS8yNjthc3NlcnQodGhpcy5uZWdhdGl2ZT09PTAsXCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnNcIik7aWYodGhpcy5sZW5ndGg8PXIpe3JldHVybiB0aGlzfWlmKHQhPT0wKXtyKyt9dGhpcy5sZW5ndGg9TWF0aC5taW4ocix0aGlzLmxlbmd0aCk7aWYodCE9PTApe3ZhciBpPTY3MTA4ODYzXjY3MTA4ODYzPj4+dDw8dDt0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj1pfXJldHVybiB0aGlzLnN0cmlwKCl9O0JOLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbiBtYXNrbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihlKX07Qk4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uIGlhZGRuKGUpe2Fzc2VydCh0eXBlb2YgZT09PVwibnVtYmVyXCIpO2Fzc2VydChlPDY3MTA4ODY0KTtpZihlPDApcmV0dXJuIHRoaXMuaXN1Ym4oLWUpO2lmKHRoaXMubmVnYXRpdmUhPT0wKXtpZih0aGlzLmxlbmd0aD09PTEmJih0aGlzLndvcmRzWzBdfDApPGUpe3RoaXMud29yZHNbMF09ZS0odGhpcy53b3Jkc1swXXwwKTt0aGlzLm5lZ2F0aXZlPTA7cmV0dXJuIHRoaXN9dGhpcy5uZWdhdGl2ZT0wO3RoaXMuaXN1Ym4oZSk7dGhpcy5uZWdhdGl2ZT0xO3JldHVybiB0aGlzfXJldHVybiB0aGlzLl9pYWRkbihlKX07Qk4ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbiBfaWFkZG4oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0Kyspe3RoaXMud29yZHNbdF0tPTY3MTA4ODY0O2lmKHQ9PT10aGlzLmxlbmd0aC0xKXt0aGlzLndvcmRzW3QrMV09MX1lbHNle3RoaXMud29yZHNbdCsxXSsrfX10aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx0KzEpO3JldHVybiB0aGlzfTtCTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24gaXN1Ym4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7YXNzZXJ0KGU8NjcxMDg4NjQpO2lmKGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYodGhpcy5uZWdhdGl2ZSE9PTApe3RoaXMubmVnYXRpdmU9MDt0aGlzLmlhZGRuKGUpO3RoaXMubmVnYXRpdmU9MTtyZXR1cm4gdGhpc310aGlzLndvcmRzWzBdLT1lO2lmKHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXTwwKXt0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdO3RoaXMubmVnYXRpdmU9MX1lbHNle2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF08MDt0Kyspe3RoaXMud29yZHNbdF0rPTY3MTA4ODY0O3RoaXMud29yZHNbdCsxXS09MX19cmV0dXJuIHRoaXMuc3RyaXAoKX07Qk4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24gYWRkbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGUpfTtCTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbiBzdWJuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZSl9O0JOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uIGlhYnMoKXt0aGlzLm5lZ2F0aXZlPTA7cmV0dXJuIHRoaXN9O0JOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24gYWJzKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9O0JOLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24gX2lzaGxuc3VibXVsKGUsdCxyKXt2YXIgaT1lLmxlbmd0aCtyO3ZhciBuO3RoaXMuX2V4cGFuZChpKTt2YXIgYTt2YXIgcz0wO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe2E9KHRoaXMud29yZHNbbityXXwwKStzO3ZhciBvPShlLndvcmRzW25dfDApKnQ7YS09byY2NzEwODg2MztzPShhPj4yNiktKG8vNjcxMDg4NjR8MCk7dGhpcy53b3Jkc1tuK3JdPWEmNjcxMDg4NjN9Zm9yKDtuPHRoaXMubGVuZ3RoLXI7bisrKXthPSh0aGlzLndvcmRzW24rcl18MCkrcztzPWE+PjI2O3RoaXMud29yZHNbbityXT1hJjY3MTA4ODYzfWlmKHM9PT0wKXJldHVybiB0aGlzLnN0cmlwKCk7YXNzZXJ0KHM9PT0tMSk7cz0wO2ZvcihuPTA7bjx0aGlzLmxlbmd0aDtuKyspe2E9LSh0aGlzLndvcmRzW25dfDApK3M7cz1hPj4yNjt0aGlzLndvcmRzW25dPWEmNjcxMDg4NjN9dGhpcy5uZWdhdGl2ZT0xO3JldHVybiB0aGlzLnN0cmlwKCl9O0JOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbiBfd29yZERpdihlLHQpe3ZhciByPXRoaXMubGVuZ3RoLWUubGVuZ3RoO3ZhciBpPXRoaXMuY2xvbmUoKTt2YXIgbj1lO3ZhciBhPW4ud29yZHNbbi5sZW5ndGgtMV18MDt2YXIgcz10aGlzLl9jb3VudEJpdHMoYSk7cj0yNi1zO2lmKHIhPT0wKXtuPW4udXNobG4ocik7aS5pdXNobG4ocik7YT1uLndvcmRzW24ubGVuZ3RoLTFdfDB9dmFyIG89aS5sZW5ndGgtbi5sZW5ndGg7dmFyIGg7aWYodCE9PVwibW9kXCIpe2g9bmV3IEJOKG51bGwpO2gubGVuZ3RoPW8rMTtoLndvcmRzPW5ldyBBcnJheShoLmxlbmd0aCk7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1Kyspe2gud29yZHNbdV09MH19dmFyIGQ9aS5jbG9uZSgpLl9pc2hsbnN1Ym11bChuLDEsbyk7aWYoZC5uZWdhdGl2ZT09PTApe2k9ZDtpZihoKXtoLndvcmRzW29dPTF9fWZvcih2YXIgYz1vLTE7Yz49MDtjLS0pe3ZhciBsPShpLndvcmRzW24ubGVuZ3RoK2NdfDApKjY3MTA4ODY0KyhpLndvcmRzW24ubGVuZ3RoK2MtMV18MCk7bD1NYXRoLm1pbihsL2F8MCw2NzEwODg2Myk7aS5faXNobG5zdWJtdWwobixsLGMpO3doaWxlKGkubmVnYXRpdmUhPT0wKXtsLS07aS5uZWdhdGl2ZT0wO2kuX2lzaGxuc3VibXVsKG4sMSxjKTtpZighaS5pc1plcm8oKSl7aS5uZWdhdGl2ZV49MX19aWYoaCl7aC53b3Jkc1tjXT1sfX1pZihoKXtoLnN0cmlwKCl9aS5zdHJpcCgpO2lmKHQhPT1cImRpdlwiJiZyIT09MCl7aS5pdXNocm4ocil9cmV0dXJue2RpdjpofHxudWxsLG1vZDppfX07Qk4ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbiBkaXZtb2QoZSx0LHIpe2Fzc2VydCghZS5pc1plcm8oKSk7aWYodGhpcy5pc1plcm8oKSl7cmV0dXJue2RpdjpuZXcgQk4oMCksbW9kOm5ldyBCTigwKX19dmFyIGksbixhO2lmKHRoaXMubmVnYXRpdmUhPT0wJiZlLm5lZ2F0aXZlPT09MCl7YT10aGlzLm5lZygpLmRpdm1vZChlLHQpO2lmKHQhPT1cIm1vZFwiKXtpPWEuZGl2Lm5lZygpfWlmKHQhPT1cImRpdlwiKXtuPWEubW9kLm5lZygpO2lmKHImJm4ubmVnYXRpdmUhPT0wKXtuLmlhZGQoZSl9fXJldHVybntkaXY6aSxtb2Q6bn19aWYodGhpcy5uZWdhdGl2ZT09PTAmJmUubmVnYXRpdmUhPT0wKXthPXRoaXMuZGl2bW9kKGUubmVnKCksdCk7aWYodCE9PVwibW9kXCIpe2k9YS5kaXYubmVnKCl9cmV0dXJue2RpdjppLG1vZDphLm1vZH19aWYoKHRoaXMubmVnYXRpdmUmZS5uZWdhdGl2ZSkhPT0wKXthPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCk7aWYodCE9PVwiZGl2XCIpe249YS5tb2QubmVnKCk7aWYociYmbi5uZWdhdGl2ZSE9PTApe24uaXN1YihlKX19cmV0dXJue2RpdjphLmRpdixtb2Q6bn19aWYoZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDApe3JldHVybntkaXY6bmV3IEJOKDApLG1vZDp0aGlzfX1pZihlLmxlbmd0aD09PTEpe2lmKHQ9PT1cImRpdlwiKXtyZXR1cm57ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH19aWYodD09PVwibW9kXCIpe3JldHVybntkaXY6bnVsbCxtb2Q6bmV3IEJOKHRoaXMubW9kbihlLndvcmRzWzBdKSl9fXJldHVybntkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpuZXcgQk4odGhpcy5tb2RuKGUud29yZHNbMF0pKX19cmV0dXJuIHRoaXMuX3dvcmREaXYoZSx0KX07Qk4ucHJvdG90eXBlLmRpdj1mdW5jdGlvbiBkaXYoZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsXCJkaXZcIixmYWxzZSkuZGl2fTtCTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uIG1vZChlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSxcIm1vZFwiLGZhbHNlKS5tb2R9O0JOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uIHVtb2QoZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsXCJtb2RcIix0cnVlKS5tb2R9O0JOLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbiBkaXZSb3VuZChlKXt2YXIgdD10aGlzLmRpdm1vZChlKTtpZih0Lm1vZC5pc1plcm8oKSlyZXR1cm4gdC5kaXY7dmFyIHI9dC5kaXYubmVnYXRpdmUhPT0wP3QubW9kLmlzdWIoZSk6dC5tb2Q7dmFyIGk9ZS51c2hybigxKTt2YXIgbj1lLmFuZGxuKDEpO3ZhciBhPXIuY21wKGkpO2lmKGE8MHx8bj09PTEmJmE9PT0wKXJldHVybiB0LmRpdjtyZXR1cm4gdC5kaXYubmVnYXRpdmUhPT0wP3QuZGl2LmlzdWJuKDEpOnQuZGl2LmlhZGRuKDEpfTtCTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbiBtb2RuKGUpe2Fzc2VydChlPD02NzEwODg2Myk7dmFyIHQ9KDE8PDI2KSVlO3ZhciByPTA7Zm9yKHZhciBpPXRoaXMubGVuZ3RoLTE7aT49MDtpLS0pe3I9KHQqcisodGhpcy53b3Jkc1tpXXwwKSklZX1yZXR1cm4gcn07Qk4ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uIGlkaXZuKGUpe2Fzc2VydChlPD02NzEwODg2Myk7dmFyIHQ9MDtmb3IodmFyIHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSl7dmFyIGk9KHRoaXMud29yZHNbcl18MCkrdCo2NzEwODg2NDt0aGlzLndvcmRzW3JdPWkvZXwwO3Q9aSVlfXJldHVybiB0aGlzLnN0cmlwKCl9O0JOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uIGRpdm4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihlKX07Qk4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24gZWdjZChlKXthc3NlcnQoZS5uZWdhdGl2ZT09PTApO2Fzc2VydCghZS5pc1plcm8oKSk7dmFyIHQ9dGhpczt2YXIgcj1lLmNsb25lKCk7aWYodC5uZWdhdGl2ZSE9PTApe3Q9dC51bW9kKGUpfWVsc2V7dD10LmNsb25lKCl9dmFyIGk9bmV3IEJOKDEpO3ZhciBuPW5ldyBCTigwKTt2YXIgYT1uZXcgQk4oMCk7dmFyIHM9bmV3IEJOKDEpO3ZhciBvPTA7d2hpbGUodC5pc0V2ZW4oKSYmci5pc0V2ZW4oKSl7dC5pdXNocm4oMSk7ci5pdXNocm4oMSk7KytvfXZhciBoPXIuY2xvbmUoKTt2YXIgdT10LmNsb25lKCk7d2hpbGUoIXQuaXNaZXJvKCkpe2Zvcih2YXIgZD0wLGM9MTsodC53b3Jkc1swXSZjKT09PTAmJmQ8MjY7KytkLGM8PD0xKTtpZihkPjApe3QuaXVzaHJuKGQpO3doaWxlKGQtLSA+MCl7aWYoaS5pc09kZCgpfHxuLmlzT2RkKCkpe2kuaWFkZChoKTtuLmlzdWIodSl9aS5pdXNocm4oMSk7bi5pdXNocm4oMSl9fWZvcih2YXIgbD0wLHA9MTsoci53b3Jkc1swXSZwKT09PTAmJmw8MjY7KytsLHA8PD0xKTtpZihsPjApe3IuaXVzaHJuKGwpO3doaWxlKGwtLSA+MCl7aWYoYS5pc09kZCgpfHxzLmlzT2RkKCkpe2EuaWFkZChoKTtzLmlzdWIodSl9YS5pdXNocm4oMSk7cy5pdXNocm4oMSl9fWlmKHQuY21wKHIpPj0wKXt0LmlzdWIocik7aS5pc3ViKGEpO24uaXN1YihzKX1lbHNle3IuaXN1Yih0KTthLmlzdWIoaSk7cy5pc3ViKG4pfX1yZXR1cm57YTphLGI6cyxnY2Q6ci5pdXNobG4obyl9fTtCTi5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uIF9pbnZtcChlKXthc3NlcnQoZS5uZWdhdGl2ZT09PTApO2Fzc2VydCghZS5pc1plcm8oKSk7dmFyIHQ9dGhpczt2YXIgcj1lLmNsb25lKCk7aWYodC5uZWdhdGl2ZSE9PTApe3Q9dC51bW9kKGUpfWVsc2V7dD10LmNsb25lKCl9dmFyIGk9bmV3IEJOKDEpO3ZhciBuPW5ldyBCTigwKTt2YXIgYT1yLmNsb25lKCk7d2hpbGUodC5jbXBuKDEpPjAmJnIuY21wbigxKT4wKXtmb3IodmFyIHM9MCxvPTE7KHQud29yZHNbMF0mbyk9PT0wJiZzPDI2OysrcyxvPDw9MSk7aWYocz4wKXt0Lml1c2hybihzKTt3aGlsZShzLS0gPjApe2lmKGkuaXNPZGQoKSl7aS5pYWRkKGEpfWkuaXVzaHJuKDEpfX1mb3IodmFyIGg9MCx1PTE7KHIud29yZHNbMF0mdSk9PT0wJiZoPDI2OysraCx1PDw9MSk7aWYoaD4wKXtyLml1c2hybihoKTt3aGlsZShoLS0gPjApe2lmKG4uaXNPZGQoKSl7bi5pYWRkKGEpfW4uaXVzaHJuKDEpfX1pZih0LmNtcChyKT49MCl7dC5pc3ViKHIpO2kuaXN1YihuKX1lbHNle3IuaXN1Yih0KTtuLmlzdWIoaSl9fXZhciBkO2lmKHQuY21wbigxKT09PTApe2Q9aX1lbHNle2Q9bn1pZihkLmNtcG4oMCk8MCl7ZC5pYWRkKGUpfXJldHVybiBkfTtCTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uIGdjZChlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBlLmFicygpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHQ9dGhpcy5jbG9uZSgpO3ZhciByPWUuY2xvbmUoKTt0Lm5lZ2F0aXZlPTA7ci5uZWdhdGl2ZT0wO2Zvcih2YXIgaT0wO3QuaXNFdmVuKCkmJnIuaXNFdmVuKCk7aSsrKXt0Lml1c2hybigxKTtyLml1c2hybigxKX1kb3t3aGlsZSh0LmlzRXZlbigpKXt0Lml1c2hybigxKX13aGlsZShyLmlzRXZlbigpKXtyLml1c2hybigxKX12YXIgbj10LmNtcChyKTtpZihuPDApe3ZhciBhPXQ7dD1yO3I9YX1lbHNlIGlmKG49PT0wfHxyLmNtcG4oMSk9PT0wKXticmVha310LmlzdWIocil9d2hpbGUodHJ1ZSk7cmV0dXJuIHIuaXVzaGxuKGkpfTtCTi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbiBpbnZtKGUpe3JldHVybiB0aGlzLmVnY2QoZSkuYS51bW9kKGUpfTtCTi5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uIGlzRXZlbigpe3JldHVybih0aGlzLndvcmRzWzBdJjEpPT09MH07Qk4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uIGlzT2RkKCl7cmV0dXJuKHRoaXMud29yZHNbMF0mMSk9PT0xfTtCTi5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24gYW5kbG4oZSl7cmV0dXJuIHRoaXMud29yZHNbMF0mZX07Qk4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uIGJpbmNuKGUpe2Fzc2VydCh0eXBlb2YgZT09PVwibnVtYmVyXCIpO3ZhciB0PWUlMjY7dmFyIHI9KGUtdCkvMjY7dmFyIGk9MTw8dDtpZih0aGlzLmxlbmd0aDw9cil7dGhpcy5fZXhwYW5kKHIrMSk7dGhpcy53b3Jkc1tyXXw9aTtyZXR1cm4gdGhpc312YXIgbj1pO2Zvcih2YXIgYT1yO24hPT0wJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9dGhpcy53b3Jkc1thXXwwO3MrPW47bj1zPj4+MjY7cyY9NjcxMDg4NjM7dGhpcy53b3Jkc1thXT1zfWlmKG4hPT0wKXt0aGlzLndvcmRzW2FdPW47dGhpcy5sZW5ndGgrK31yZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbiBpc1plcm8oKXtyZXR1cm4gdGhpcy5sZW5ndGg9PT0xJiZ0aGlzLndvcmRzWzBdPT09MH07Qk4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24gY21wbihlKXt2YXIgdD1lPDA7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJiF0KXJldHVybi0xO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZ0KXJldHVybiAxO3RoaXMuc3RyaXAoKTt2YXIgcjtpZih0aGlzLmxlbmd0aD4xKXtyPTF9ZWxzZXtpZih0KXtlPS1lfWFzc2VydChlPD02NzEwODg2MyxcIk51bWJlciBpcyB0b28gYmlnXCIpO3ZhciBpPXRoaXMud29yZHNbMF18MDtyPWk9PT1lPzA6aTxlPy0xOjF9aWYodGhpcy5uZWdhdGl2ZSE9PTApcmV0dXJuLXJ8MDtyZXR1cm4gcn07Qk4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbiBjbXAoZSl7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJmUubmVnYXRpdmU9PT0wKXJldHVybi0xO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZlLm5lZ2F0aXZlIT09MClyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7aWYodGhpcy5uZWdhdGl2ZSE9PTApcmV0dXJuLXR8MDtyZXR1cm4gdH07Qk4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24gdWNtcChlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTt2YXIgdD0wO2Zvcih2YXIgcj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT10aGlzLndvcmRzW3JdfDA7dmFyIG49ZS53b3Jkc1tyXXwwO2lmKGk9PT1uKWNvbnRpbnVlO2lmKGk8bil7dD0tMX1lbHNlIGlmKGk+bil7dD0xfWJyZWFrfXJldHVybiB0fTtCTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uIGd0bihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPT09MX07Qk4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uIGd0KGUpe3JldHVybiB0aGlzLmNtcChlKT09PTF9O0JOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uIGd0ZW4oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH07Qk4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbiBndGUoZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfTtCTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uIGx0bihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPT09LTF9O0JOLnByb3RvdHlwZS5sdD1mdW5jdGlvbiBsdChlKXtyZXR1cm4gdGhpcy5jbXAoZSk9PT0tMX07Qk4ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24gbHRlbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPD0wfTtCTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uIGx0ZShlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9O0JOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24gZXFuKGUpe3JldHVybiB0aGlzLmNtcG4oZSk9PT0wfTtCTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24gZXEoZSl7cmV0dXJuIHRoaXMuY21wKGUpPT09MH07Qk4ucmVkPWZ1bmN0aW9uIHJlZChlKXtyZXR1cm4gbmV3IFJlZChlKX07Qk4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uIHRvUmVkKGUpe2Fzc2VydCghdGhpcy5yZWQsXCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO2Fzc2VydCh0aGlzLm5lZ2F0aXZlPT09MCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzXCIpO3JldHVybiBlLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZSl9O0JOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uIGZyb21SZWQoKXthc3NlcnQodGhpcy5yZWQsXCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO3JldHVybiB0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX07Qk4ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbiBfZm9yY2VSZWQoZSl7dGhpcy5yZWQ9ZTtyZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uIGZvcmNlUmVkKGUpe2Fzc2VydCghdGhpcy5yZWQsXCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO3JldHVybiB0aGlzLl9mb3JjZVJlZChlKX07Qk4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbiByZWRBZGQoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuYWRkKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uIHJlZElBZGQoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7cmV0dXJuIHRoaXMucmVkLmlhZGQodGhpcyxlKX07Qk4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbiByZWRTdWIoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuc3ViKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uIHJlZElTdWIoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7cmV0dXJuIHRoaXMucmVkLmlzdWIodGhpcyxlKX07Qk4ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbiByZWRTaGwoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuc2hsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24gcmVkTXVsKGUpe2Fzc2VydCh0aGlzLnJlZCxcInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKTtyZXR1cm4gdGhpcy5yZWQubXVsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uIHJlZElNdWwoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpO3JldHVybiB0aGlzLnJlZC5pbXVsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24gcmVkU3FyKCl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQuc3FyKHRoaXMpfTtCTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbiByZWRJU3FyKCl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7cmV0dXJuIHRoaXMucmVkLmlzcXIodGhpcyl9O0JOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uIHJlZFNxcnQoKXthc3NlcnQodGhpcy5yZWQsXCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQuc3FydCh0aGlzKX07Qk4ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24gcmVkSW52bSgpe2Fzc2VydCh0aGlzLnJlZCxcInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzXCIpO3RoaXMucmVkLl92ZXJpZnkxKHRoaXMpO3JldHVybiB0aGlzLnJlZC5pbnZtKHRoaXMpfTtCTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uIHJlZE5lZygpe2Fzc2VydCh0aGlzLnJlZCxcInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7cmV0dXJuIHRoaXMucmVkLm5lZyh0aGlzKX07Qk4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbiByZWRQb3coZSl7YXNzZXJ0KHRoaXMucmVkJiYhZS5yZWQsXCJyZWRQb3cobm9ybWFsTnVtKVwiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciBoPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gTVByaW1lKGUsdCl7dGhpcy5uYW1lPWU7dGhpcy5wPW5ldyBCTih0LDE2KTt0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpO3RoaXMuaz1uZXcgQk4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApO3RoaXMudG1wPXRoaXMuX3RtcCgpfU1QcmltZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbiBfdG1wKCl7dmFyIGU9bmV3IEJOKG51bGwpO2Uud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKTtyZXR1cm4gZX07TVByaW1lLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uIGlyZWR1Y2UoZSl7dmFyIHQ9ZTt2YXIgcjtkb3t0aGlzLnNwbGl0KHQsdGhpcy50bXApO3Q9dGhpcy5pbXVsSyh0KTt0PXQuaWFkZCh0aGlzLnRtcCk7cj10LmJpdExlbmd0aCgpfXdoaWxlKHI+dGhpcy5uKTt2YXIgaT1yPHRoaXMubj8tMTp0LnVjbXAodGhpcy5wKTtpZihpPT09MCl7dC53b3Jkc1swXT0wO3QubGVuZ3RoPTF9ZWxzZSBpZihpPjApe3QuaXN1Yih0aGlzLnApfWVsc2V7aWYodC5zdHJpcCE9PXVuZGVmaW5lZCl7dC5zdHJpcCgpfWVsc2V7dC5fc3RyaXAoKX19cmV0dXJuIHR9O01QcmltZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24gc3BsaXQoZSx0KXtlLml1c2hybih0aGlzLm4sMCx0KX07TVByaW1lLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbiBpbXVsSyhlKXtyZXR1cm4gZS5pbXVsKHRoaXMuayl9O2Z1bmN0aW9uIEsyNTYoKXtNUHJpbWUuY2FsbCh0aGlzLFwiazI1NlwiLFwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmZcIil9aW5oZXJpdHMoSzI1NixNUHJpbWUpO0syNTYucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uIHNwbGl0KGUsdCl7dmFyIHI9NDE5NDMwMzt2YXIgaT1NYXRoLm1pbihlLmxlbmd0aCw5KTtmb3IodmFyIG49MDtuPGk7bisrKXt0LndvcmRzW25dPWUud29yZHNbbl19dC5sZW5ndGg9aTtpZihlLmxlbmd0aDw9OSl7ZS53b3Jkc1swXT0wO2UubGVuZ3RoPTE7cmV0dXJufXZhciBhPWUud29yZHNbOV07dC53b3Jkc1t0Lmxlbmd0aCsrXT1hJnI7Zm9yKG49MTA7bjxlLmxlbmd0aDtuKyspe3ZhciBzPWUud29yZHNbbl18MDtlLndvcmRzW24tMTBdPShzJnIpPDw0fGE+Pj4yMjthPXN9YT4+Pj0yMjtlLndvcmRzW24tMTBdPWE7aWYoYT09PTAmJmUubGVuZ3RoPjEwKXtlLmxlbmd0aC09MTB9ZWxzZXtlLmxlbmd0aC09OX19O0syNTYucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uIGltdWxLKGUpe2Uud29yZHNbZS5sZW5ndGhdPTA7ZS53b3Jkc1tlLmxlbmd0aCsxXT0wO2UubGVuZ3RoKz0yO3ZhciB0PTA7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWUud29yZHNbcl18MDt0Kz1pKjk3NztlLndvcmRzW3JdPXQmNjcxMDg4NjM7dD1pKjY0Kyh0LzY3MTA4ODY0fDApfWlmKGUud29yZHNbZS5sZW5ndGgtMV09PT0wKXtlLmxlbmd0aC0tO2lmKGUud29yZHNbZS5sZW5ndGgtMV09PT0wKXtlLmxlbmd0aC0tfX1yZXR1cm4gZX07ZnVuY3Rpb24gUDIyNCgpe01QcmltZS5jYWxsKHRoaXMsXCJwMjI0XCIsXCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMVwiKX1pbmhlcml0cyhQMjI0LE1QcmltZSk7ZnVuY3Rpb24gUDE5Migpe01QcmltZS5jYWxsKHRoaXMsXCJwMTkyXCIsXCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZlwiKX1pbmhlcml0cyhQMTkyLE1QcmltZSk7ZnVuY3Rpb24gUDI1NTE5KCl7TVByaW1lLmNhbGwodGhpcyxcIjI1NTE5XCIsXCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkXCIpfWluaGVyaXRzKFAyNTUxOSxNUHJpbWUpO1AyNTUxOS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24gaW11bEsoZSl7dmFyIHQ9MDtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9KGUud29yZHNbcl18MCkqMTkrdDt2YXIgbj1pJjY3MTA4ODYzO2k+Pj49MjY7ZS53b3Jkc1tyXT1uO3Q9aX1pZih0IT09MCl7ZS53b3Jkc1tlLmxlbmd0aCsrXT10fXJldHVybiBlfTtCTi5fcHJpbWU9ZnVuY3Rpb24gcHJpbWUoZSl7aWYoaFtlXSlyZXR1cm4gaFtlXTt2YXIgcHJpbWU7aWYoZT09PVwiazI1NlwiKXtwcmltZT1uZXcgSzI1Nn1lbHNlIGlmKGU9PT1cInAyMjRcIil7cHJpbWU9bmV3IFAyMjR9ZWxzZSBpZihlPT09XCJwMTkyXCIpe3ByaW1lPW5ldyBQMTkyfWVsc2UgaWYoZT09PVwicDI1NTE5XCIpe3ByaW1lPW5ldyBQMjU1MTl9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHByaW1lIFwiK2UpfWhbZV09cHJpbWU7cmV0dXJuIHByaW1lfTtmdW5jdGlvbiBSZWQoZSl7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXt2YXIgdD1CTi5fcHJpbWUoZSk7dGhpcy5tPXQucDt0aGlzLnByaW1lPXR9ZWxzZXthc3NlcnQoZS5ndG4oMSksXCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDFcIik7dGhpcy5tPWU7dGhpcy5wcmltZT1udWxsfX1SZWQucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uIF92ZXJpZnkxKGUpe2Fzc2VydChlLm5lZ2F0aXZlPT09MCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzXCIpO2Fzc2VydChlLnJlZCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIil9O1JlZC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24gX3ZlcmlmeTIoZSx0KXthc3NlcnQoKGUubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wLFwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXNcIik7YXNzZXJ0KGUucmVkJiZlLnJlZD09PXQucmVkLFwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKX07UmVkLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uIGltb2QoZSl7aWYodGhpcy5wcmltZSlyZXR1cm4gdGhpcy5wcmltZS5pcmVkdWNlKGUpLl9mb3JjZVJlZCh0aGlzKTtyZXR1cm4gZS51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfTtSZWQucHJvdG90eXBlLm5lZz1mdW5jdGlvbiBuZWcoZSl7aWYoZS5pc1plcm8oKSl7cmV0dXJuIGUuY2xvbmUoKX1yZXR1cm4gdGhpcy5tLnN1YihlKS5fZm9yY2VSZWQodGhpcyl9O1JlZC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uIGFkZChlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLmFkZCh0KTtpZihyLmNtcCh0aGlzLm0pPj0wKXtyLmlzdWIodGhpcy5tKX1yZXR1cm4gci5fZm9yY2VSZWQodGhpcyl9O1JlZC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbiBpYWRkKGUsdCl7dGhpcy5fdmVyaWZ5MihlLHQpO3ZhciByPWUuaWFkZCh0KTtpZihyLmNtcCh0aGlzLm0pPj0wKXtyLmlzdWIodGhpcy5tKX1yZXR1cm4gcn07UmVkLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24gc3ViKGUsdCl7dGhpcy5fdmVyaWZ5MihlLHQpO3ZhciByPWUuc3ViKHQpO2lmKHIuY21wbigwKTwwKXtyLmlhZGQodGhpcy5tKX1yZXR1cm4gci5fZm9yY2VSZWQodGhpcyl9O1JlZC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbiBpc3ViKGUsdCl7dGhpcy5fdmVyaWZ5MihlLHQpO3ZhciByPWUuaXN1Yih0KTtpZihyLmNtcG4oMCk8MCl7ci5pYWRkKHRoaXMubSl9cmV0dXJuIHJ9O1JlZC5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uIHNobChlLHQpe3RoaXMuX3ZlcmlmeTEoZSk7cmV0dXJuIHRoaXMuaW1vZChlLnVzaGxuKHQpKX07UmVkLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uIGltdWwoZSx0KXt0aGlzLl92ZXJpZnkyKGUsdCk7cmV0dXJuIHRoaXMuaW1vZChlLmltdWwodCkpfTtSZWQucHJvdG90eXBlLm11bD1mdW5jdGlvbiBtdWwoZSx0KXt0aGlzLl92ZXJpZnkyKGUsdCk7cmV0dXJuIHRoaXMuaW1vZChlLm11bCh0KSl9O1JlZC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbiBpc3FyKGUpe3JldHVybiB0aGlzLmltdWwoZSxlLmNsb25lKCkpfTtSZWQucHJvdG90eXBlLnNxcj1mdW5jdGlvbiBzcXIoZSl7cmV0dXJuIHRoaXMubXVsKGUsZSl9O1JlZC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbiBzcXJ0KGUpe2lmKGUuaXNaZXJvKCkpcmV0dXJuIGUuY2xvbmUoKTt2YXIgdD10aGlzLm0uYW5kbG4oMyk7YXNzZXJ0KHQlMj09PTEpO2lmKHQ9PT0zKXt2YXIgcj10aGlzLm0uYWRkKG5ldyBCTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhlLHIpfXZhciBpPXRoaXMubS5zdWJuKDEpO3ZhciBuPTA7d2hpbGUoIWkuaXNaZXJvKCkmJmkuYW5kbG4oMSk9PT0wKXtuKys7aS5pdXNocm4oMSl9YXNzZXJ0KCFpLmlzWmVybygpKTt2YXIgYT1uZXcgQk4oMSkudG9SZWQodGhpcyk7dmFyIHM9YS5yZWROZWcoKTt2YXIgbz10aGlzLm0uc3VibigxKS5pdXNocm4oMSk7dmFyIGg9dGhpcy5tLmJpdExlbmd0aCgpO2g9bmV3IEJOKDIqaCpoKS50b1JlZCh0aGlzKTt3aGlsZSh0aGlzLnBvdyhoLG8pLmNtcChzKSE9PTApe2gucmVkSUFkZChzKX12YXIgdT10aGlzLnBvdyhoLGkpO3ZhciBkPXRoaXMucG93KGUsaS5hZGRuKDEpLml1c2hybigxKSk7dmFyIGM9dGhpcy5wb3coZSxpKTt2YXIgbD1uO3doaWxlKGMuY21wKGEpIT09MCl7dmFyIHA9Yztmb3IodmFyIHY9MDtwLmNtcChhKSE9PTA7disrKXtwPXAucmVkU3FyKCl9YXNzZXJ0KHY8bCk7dmFyIGI9dGhpcy5wb3codSxuZXcgQk4oMSkuaXVzaGxuKGwtdi0xKSk7ZD1kLnJlZE11bChiKTt1PWIucmVkU3FyKCk7Yz1jLnJlZE11bCh1KTtsPXZ9cmV0dXJuIGR9O1JlZC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbiBpbnZtKGUpe3ZhciB0PWUuX2ludm1wKHRoaXMubSk7aWYodC5uZWdhdGl2ZSE9PTApe3QubmVnYXRpdmU9MDtyZXR1cm4gdGhpcy5pbW9kKHQpLnJlZE5lZygpfWVsc2V7cmV0dXJuIHRoaXMuaW1vZCh0KX19O1JlZC5wcm90b3R5cGUucG93PWZ1bmN0aW9uIHBvdyhlLHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIG5ldyBCTigxKS50b1JlZCh0aGlzKTtpZih0LmNtcG4oMSk9PT0wKXJldHVybiBlLmNsb25lKCk7dmFyIHI9NDt2YXIgaT1uZXcgQXJyYXkoMTw8cik7aVswXT1uZXcgQk4oMSkudG9SZWQodGhpcyk7aVsxXT1lO2Zvcih2YXIgbj0yO248aS5sZW5ndGg7bisrKXtpW25dPXRoaXMubXVsKGlbbi0xXSxlKX12YXIgYT1pWzBdO3ZhciBzPTA7dmFyIG89MDt2YXIgaD10LmJpdExlbmd0aCgpJTI2O2lmKGg9PT0wKXtoPTI2fWZvcihuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciB1PXQud29yZHNbbl07Zm9yKHZhciBkPWgtMTtkPj0wO2QtLSl7dmFyIGM9dT4+ZCYxO2lmKGEhPT1pWzBdKXthPXRoaXMuc3FyKGEpfWlmKGM9PT0wJiZzPT09MCl7bz0wO2NvbnRpbnVlfXM8PD0xO3N8PWM7bysrO2lmKG8hPT1yJiYobiE9PTB8fGQhPT0wKSljb250aW51ZTthPXRoaXMubXVsKGEsaVtzXSk7bz0wO3M9MH1oPTI2fXJldHVybiBhfTtSZWQucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbiBjb252ZXJ0VG8oZSl7dmFyIHQ9ZS51bW9kKHRoaXMubSk7cmV0dXJuIHQ9PT1lP3QuY2xvbmUoKTp0fTtSZWQucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uIGNvbnZlcnRGcm9tKGUpe3ZhciB0PWUuY2xvbmUoKTt0LnJlZD1udWxsO3JldHVybiB0fTtCTi5tb250PWZ1bmN0aW9uIG1vbnQoZSl7cmV0dXJuIG5ldyBNb250KGUpfTtmdW5jdGlvbiBNb250KGUpe1JlZC5jYWxsKHRoaXMsZSk7dGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCk7aWYodGhpcy5zaGlmdCUyNiE9PTApe3RoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjZ9dGhpcy5yPW5ldyBCTigxKS5pdXNobG4odGhpcy5zaGlmdCk7dGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKTt0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pO3RoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSk7dGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMucik7dGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1pbmhlcml0cyhNb250LFJlZCk7TW9udC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uIGNvbnZlcnRUbyhlKXtyZXR1cm4gdGhpcy5pbW9kKGUudXNobG4odGhpcy5zaGlmdCkpfTtNb250LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbiBjb252ZXJ0RnJvbShlKXt2YXIgdD10aGlzLmltb2QoZS5tdWwodGhpcy5yaW52KSk7dC5yZWQ9bnVsbDtyZXR1cm4gdH07TW9udC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbiBpbXVsKGUsdCl7aWYoZS5pc1plcm8oKXx8dC5pc1plcm8oKSl7ZS53b3Jkc1swXT0wO2UubGVuZ3RoPTE7cmV0dXJuIGV9dmFyIHI9ZS5pbXVsKHQpO3ZhciBpPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pO3ZhciBuPXIuaXN1YihpKS5pdXNocm4odGhpcy5zaGlmdCk7dmFyIGE9bjtpZihuLmNtcCh0aGlzLm0pPj0wKXthPW4uaXN1Yih0aGlzLm0pfWVsc2UgaWYobi5jbXBuKDApPDApe2E9bi5pYWRkKHRoaXMubSl9cmV0dXJuIGEuX2ZvcmNlUmVkKHRoaXMpfTtNb250LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24gbXVsKGUsdCl7aWYoZS5pc1plcm8oKXx8dC5pc1plcm8oKSlyZXR1cm4gbmV3IEJOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgcj1lLm11bCh0KTt2YXIgaT1yLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKTt2YXIgbj1yLmlzdWIoaSkuaXVzaHJuKHRoaXMuc2hpZnQpO3ZhciBhPW47aWYobi5jbXAodGhpcy5tKT49MCl7YT1uLmlzdWIodGhpcy5tKX1lbHNlIGlmKG4uY21wbigwKTwwKXthPW4uaWFkZCh0aGlzLm0pfXJldHVybiBhLl9mb3JjZVJlZCh0aGlzKX07TW9udC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbiBpbnZtKGUpe3ZhciB0PXRoaXMuaW1vZChlLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSk7cmV0dXJuIHQuX2ZvcmNlUmVkKHRoaXMpfX0pKGZhbHNlfHxlLHRoaXMpfSwxNjcwOmZ1bmN0aW9uKGUsdCxyKXtlPXIubm1kKGUpOyhmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGFzc2VydChlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcih0fHxcIkFzc2VydGlvbiBmYWlsZWRcIil9ZnVuY3Rpb24gaW5oZXJpdHMoZSx0KXtlLnN1cGVyXz10O3ZhciBUZW1wQ3Rvcj1mdW5jdGlvbigpe307VGVtcEN0b3IucHJvdG90eXBlPXQucHJvdG90eXBlO2UucHJvdG90eXBlPW5ldyBUZW1wQ3RvcjtlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfWZ1bmN0aW9uIEJOKGUsdCxyKXtpZihCTi5pc0JOKGUpKXtyZXR1cm4gZX10aGlzLm5lZ2F0aXZlPTA7dGhpcy53b3Jkcz1udWxsO3RoaXMubGVuZ3RoPTA7dGhpcy5yZWQ9bnVsbDtpZihlIT09bnVsbCl7aWYodD09PVwibGVcInx8dD09PVwiYmVcIil7cj10O3Q9MTB9dGhpcy5faW5pdChlfHwwLHR8fDEwLHJ8fFwiYmVcIil9fWlmKHR5cGVvZiBlPT09XCJvYmplY3RcIil7ZS5leHBvcnRzPUJOfWVsc2V7dC5CTj1CTn1CTi5CTj1CTjtCTi53b3JkU2l6ZT0yNjt2YXIgaTt0cnl7aT1yKDQzMDApLkJ1ZmZlcn1jYXRjaChlKXt9Qk4uaXNCTj1mdW5jdGlvbiBpc0JOKGUpe2lmKGUgaW5zdGFuY2VvZiBCTil7cmV0dXJuIHRydWV9cmV0dXJuIGUhPT1udWxsJiZ0eXBlb2YgZT09PVwib2JqZWN0XCImJmUuY29uc3RydWN0b3Iud29yZFNpemU9PT1CTi53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShlLndvcmRzKX07Qk4ubWF4PWZ1bmN0aW9uIG1heChlLHQpe2lmKGUuY21wKHQpPjApcmV0dXJuIGU7cmV0dXJuIHR9O0JOLm1pbj1mdW5jdGlvbiBtaW4oZSx0KXtpZihlLmNtcCh0KTwwKXJldHVybiBlO3JldHVybiB0fTtCTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24gaW5pdChlLHQscil7aWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXtyZXR1cm4gdGhpcy5faW5pdE51bWJlcihlLHQscil9aWYodHlwZW9mIGU9PT1cIm9iamVjdFwiKXtyZXR1cm4gdGhpcy5faW5pdEFycmF5KGUsdCxyKX1pZih0PT09XCJoZXhcIil7dD0xNn1hc3NlcnQodD09PSh0fDApJiZ0Pj0yJiZ0PD0zNik7ZT1lLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxzKy9nLFwiXCIpO3ZhciBpPTA7aWYoZVswXT09PVwiLVwiKXtpKyt9aWYodD09PTE2KXt0aGlzLl9wYXJzZUhleChlLGkpfWVsc2V7dGhpcy5fcGFyc2VCYXNlKGUsdCxpKX1pZihlWzBdPT09XCItXCIpe3RoaXMubmVnYXRpdmU9MX10aGlzLl9zdHJpcCgpO2lmKHIhPT1cImxlXCIpcmV0dXJuO3RoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx0LHIpfTtCTi5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24gX2luaXROdW1iZXIoZSx0LHIpe2lmKGU8MCl7dGhpcy5uZWdhdGl2ZT0xO2U9LWV9aWYoZTw2NzEwODg2NCl7dGhpcy53b3Jkcz1bZSY2NzEwODg2M107dGhpcy5sZW5ndGg9MX1lbHNlIGlmKGU8NDUwMzU5OTYyNzM3MDQ5Nil7dGhpcy53b3Jkcz1bZSY2NzEwODg2MyxlLzY3MTA4ODY0JjY3MTA4ODYzXTt0aGlzLmxlbmd0aD0yfWVsc2V7YXNzZXJ0KGU8OTAwNzE5OTI1NDc0MDk5Mik7dGhpcy53b3Jkcz1bZSY2NzEwODg2MyxlLzY3MTA4ODY0JjY3MTA4ODYzLDFdO3RoaXMubGVuZ3RoPTN9aWYociE9PVwibGVcIilyZXR1cm47dGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHQscil9O0JOLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uIF9pbml0QXJyYXkoZSx0LHIpe2Fzc2VydCh0eXBlb2YgZS5sZW5ndGg9PT1cIm51bWJlclwiKTtpZihlLmxlbmd0aDw9MCl7dGhpcy53b3Jkcz1bMF07dGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc310aGlzLmxlbmd0aD1NYXRoLmNlaWwoZS5sZW5ndGgvMyk7dGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXt0aGlzLndvcmRzW2ldPTB9dmFyIG4sYTt2YXIgcz0wO2lmKHI9PT1cImJlXCIpe2ZvcihpPWUubGVuZ3RoLTEsbj0wO2k+PTA7aS09Myl7YT1lW2ldfGVbaS0xXTw8OHxlW2ktMl08PDE2O3RoaXMud29yZHNbbl18PWE8PHMmNjcxMDg4NjM7dGhpcy53b3Jkc1tuKzFdPWE+Pj4yNi1zJjY3MTA4ODYzO3MrPTI0O2lmKHM+PTI2KXtzLT0yNjtuKyt9fX1lbHNlIGlmKHI9PT1cImxlXCIpe2ZvcihpPTAsbj0wO2k8ZS5sZW5ndGg7aSs9Myl7YT1lW2ldfGVbaSsxXTw8OHxlW2krMl08PDE2O3RoaXMud29yZHNbbl18PWE8PHMmNjcxMDg4NjM7dGhpcy53b3Jkc1tuKzFdPWE+Pj4yNi1zJjY3MTA4ODYzO3MrPTI0O2lmKHM+PTI2KXtzLT0yNjtuKyt9fX1yZXR1cm4gdGhpcy5fc3RyaXAoKX07ZnVuY3Rpb24gcGFyc2VIZXgoZSx0LHIpe3ZhciBpPTA7dmFyIG49TWF0aC5taW4oZS5sZW5ndGgscik7dmFyIGE9MDtmb3IodmFyIHM9dDtzPG47cysrKXt2YXIgbz1lLmNoYXJDb2RlQXQocyktNDg7aTw8PTQ7dmFyIGg7aWYobz49NDkmJm88PTU0KXtoPW8tNDkrMTB9ZWxzZSBpZihvPj0xNyYmbzw9MjIpe2g9by0xNysxMH1lbHNle2g9b31pfD1oO2F8PWh9YXNzZXJ0KCEoYSYyNDApLFwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gXCIrZSk7cmV0dXJuIGl9Qk4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbiBfcGFyc2VIZXgoZSx0KXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGUubGVuZ3RoLXQpLzYpO3RoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9MDtyPHRoaXMubGVuZ3RoO3IrKyl7dGhpcy53b3Jkc1tyXT0wfXZhciBpLG47dmFyIGE9MDtmb3Iocj1lLmxlbmd0aC02LGk9MDtyPj10O3ItPTYpe249cGFyc2VIZXgoZSxyLHIrNik7dGhpcy53b3Jkc1tpXXw9bjw8YSY2NzEwODg2Mzt0aGlzLndvcmRzW2krMV18PW4+Pj4yNi1hJjQxOTQzMDM7YSs9MjQ7aWYoYT49MjYpe2EtPTI2O2krK319aWYocis2IT09dCl7bj1wYXJzZUhleChlLHQscis2KTt0aGlzLndvcmRzW2ldfD1uPDxhJjY3MTA4ODYzO3RoaXMud29yZHNbaSsxXXw9bj4+PjI2LWEmNDE5NDMwM310aGlzLl9zdHJpcCgpfTtmdW5jdGlvbiBwYXJzZUJhc2UoZSx0LHIsaSl7dmFyIG49MDt2YXIgYT0wO3ZhciBzPU1hdGgubWluKGUubGVuZ3RoLHIpO2Zvcih2YXIgbz10O288cztvKyspe3ZhciBoPWUuY2hhckNvZGVBdChvKS00ODtuKj1pO2lmKGg+PTQ5KXthPWgtNDkrMTB9ZWxzZSBpZihoPj0xNyl7YT1oLTE3KzEwfWVsc2V7YT1ofWFzc2VydChoPj0wJiZhPGksXCJJbnZhbGlkIGNoYXJhY3RlclwiKTtuKz1hfXJldHVybiBufUJOLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uIF9wYXJzZUJhc2UoZSx0LHIpe3RoaXMud29yZHM9WzBdO3RoaXMubGVuZ3RoPTE7Zm9yKHZhciBpPTAsbj0xO248PTY3MTA4ODYzO24qPXQpe2krK31pLS07bj1uL3R8MDt2YXIgYT1lLmxlbmd0aC1yO3ZhciBzPWElaTt2YXIgbz1NYXRoLm1pbihhLGEtcykrcjt2YXIgaD0wO2Zvcih2YXIgdT1yO3U8bzt1Kz1pKXtoPXBhcnNlQmFzZShlLHUsdStpLHQpO3RoaXMuaW11bG4obik7aWYodGhpcy53b3Jkc1swXStoPDY3MTA4ODY0KXt0aGlzLndvcmRzWzBdKz1ofWVsc2V7dGhpcy5faWFkZG4oaCl9fWlmKHMhPT0wKXt2YXIgZD0xO2g9cGFyc2VCYXNlKGUsdSxlLmxlbmd0aCx0KTtmb3IodT0wO3U8czt1Kyspe2QqPXR9dGhpcy5pbXVsbihkKTtpZih0aGlzLndvcmRzWzBdK2g8NjcxMDg4NjQpe3RoaXMud29yZHNbMF0rPWh9ZWxzZXt0aGlzLl9pYWRkbihoKX19fTtCTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbiBjb3B5KGUpe2Uud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7ZS53b3Jkc1t0XT10aGlzLndvcmRzW3RdfWUubGVuZ3RoPXRoaXMubGVuZ3RoO2UubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZTtlLnJlZD10aGlzLnJlZH07ZnVuY3Rpb24gbW92ZShlLHQpe2Uud29yZHM9dC53b3JkcztlLmxlbmd0aD10Lmxlbmd0aDtlLm5lZ2F0aXZlPXQubmVnYXRpdmU7ZS5yZWQ9dC5yZWR9Qk4ucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uIF9tb3ZlKGUpe21vdmUoZSx0aGlzKX07Qk4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uIGNsb25lKCl7dmFyIGU9bmV3IEJOKG51bGwpO3RoaXMuY29weShlKTtyZXR1cm4gZX07Qk4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24gX2V4cGFuZChlKXt3aGlsZSh0aGlzLmxlbmd0aDxlKXt0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTB9cmV0dXJuIHRoaXN9O0JOLnByb3RvdHlwZS5fc3RyaXA9ZnVuY3Rpb24gc3RyaXAoKXt3aGlsZSh0aGlzLmxlbmd0aD4xJiZ0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdPT09MCl7dGhpcy5sZW5ndGgtLX1yZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX07Qk4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbiBfbm9ybVNpZ24oKXtpZih0aGlzLmxlbmd0aD09PTEmJnRoaXMud29yZHNbMF09PT0wKXt0aGlzLm5lZ2F0aXZlPTB9cmV0dXJuIHRoaXN9O2lmKHR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiJiZ0eXBlb2YgU3ltYm9sLmZvcj09PVwiZnVuY3Rpb25cIil7Qk4ucHJvdG90eXBlW1N5bWJvbC5mb3IoXCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbVwiKV09aW5zcGVjdH1lbHNle0JOLnByb3RvdHlwZS5pbnNwZWN0PWluc3BlY3R9ZnVuY3Rpb24gaW5zcGVjdCgpe3JldHVybih0aGlzLnJlZD9cIjxCTi1SOiBcIjpcIjxCTjogXCIpK3RoaXMudG9TdHJpbmcoMTYpK1wiPlwifXZhciBuPVtcIlwiLFwiMFwiLFwiMDBcIixcIjAwMFwiLFwiMDAwMFwiLFwiMDAwMDBcIixcIjAwMDAwMFwiLFwiMDAwMDAwMFwiLFwiMDAwMDAwMDBcIixcIjAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXTt2YXIgYT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XTt2YXIgcz1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtCTi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoZSx0KXtlPWV8fDEwO3Q9dHwwfHwxO3ZhciByO2lmKGU9PT0xNnx8ZT09PVwiaGV4XCIpe3I9XCJcIjt2YXIgaT0wO3ZhciBvPTA7Zm9yKHZhciBoPTA7aDx0aGlzLmxlbmd0aDtoKyspe3ZhciB1PXRoaXMud29yZHNbaF07dmFyIGQ9KCh1PDxpfG8pJjE2Nzc3MjE1KS50b1N0cmluZygxNik7bz11Pj4+MjQtaSYxNjc3NzIxNTtpZihvIT09MHx8aCE9PXRoaXMubGVuZ3RoLTEpe3I9bls2LWQubGVuZ3RoXStkK3J9ZWxzZXtyPWQrcn1pKz0yO2lmKGk+PTI2KXtpLT0yNjtoLS19fWlmKG8hPT0wKXtyPW8udG9TdHJpbmcoMTYpK3J9d2hpbGUoci5sZW5ndGgldCE9PTApe3I9XCIwXCIrcn1pZih0aGlzLm5lZ2F0aXZlIT09MCl7cj1cIi1cIityfXJldHVybiByfWlmKGU9PT0oZXwwKSYmZT49MiYmZTw9MzYpe3ZhciBjPWFbZV07dmFyIGw9c1tlXTtyPVwiXCI7dmFyIHA9dGhpcy5jbG9uZSgpO3AubmVnYXRpdmU9MDt3aGlsZSghcC5pc1plcm8oKSl7dmFyIHY9cC5tb2RybihsKS50b1N0cmluZyhlKTtwPXAuaWRpdm4obCk7aWYoIXAuaXNaZXJvKCkpe3I9bltjLXYubGVuZ3RoXSt2K3J9ZWxzZXtyPXYrcn19aWYodGhpcy5pc1plcm8oKSl7cj1cIjBcIityfXdoaWxlKHIubGVuZ3RoJXQhPT0wKXtyPVwiMFwiK3J9aWYodGhpcy5uZWdhdGl2ZSE9PTApe3I9XCItXCIrcn1yZXR1cm4gcn1hc3NlcnQoZmFsc2UsXCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2XCIpfTtCTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24gdG9OdW1iZXIoKXt2YXIgZT10aGlzLndvcmRzWzBdO2lmKHRoaXMubGVuZ3RoPT09Mil7ZSs9dGhpcy53b3Jkc1sxXSo2NzEwODg2NH1lbHNlIGlmKHRoaXMubGVuZ3RoPT09MyYmdGhpcy53b3Jkc1syXT09PTEpe2UrPTQ1MDM1OTk2MjczNzA0OTYrdGhpcy53b3Jkc1sxXSo2NzEwODg2NH1lbHNlIGlmKHRoaXMubGVuZ3RoPjIpe2Fzc2VydChmYWxzZSxcIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0c1wiKX1yZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTA/LWU6ZX07Qk4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbiB0b0pTT04oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNiwyKX07aWYoaSl7Qk4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uIHRvQnVmZmVyKGUsdCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoaSxlLHQpfX1CTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbiB0b0FycmF5KGUsdCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksZSx0KX07dmFyIG89ZnVuY3Rpb24gYWxsb2NhdGUoZSx0KXtpZihlLmFsbG9jVW5zYWZlKXtyZXR1cm4gZS5hbGxvY1Vuc2FmZSh0KX1yZXR1cm4gbmV3IGUodCl9O0JOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbiB0b0FycmF5TGlrZShlLHQscil7dGhpcy5fc3RyaXAoKTt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKTt2YXIgbj1yfHxNYXRoLm1heCgxLGkpO2Fzc2VydChpPD1uLFwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aFwiKTthc3NlcnQobj4wLFwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwXCIpO3ZhciBhPW8oZSxuKTt2YXIgcz10PT09XCJsZVwiP1wiTEVcIjpcIkJFXCI7dGhpc1tcIl90b0FycmF5TGlrZVwiK3NdKGEsaSk7cmV0dXJuIGF9O0JOLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbiBfdG9BcnJheUxpa2VMRShlLHQpe3ZhciByPTA7dmFyIGk9MDtmb3IodmFyIG49MCxhPTA7bjx0aGlzLmxlbmd0aDtuKyspe3ZhciBzPXRoaXMud29yZHNbbl08PGF8aTtlW3IrK109cyYyNTU7aWYocjxlLmxlbmd0aCl7ZVtyKytdPXM+PjgmMjU1fWlmKHI8ZS5sZW5ndGgpe2VbcisrXT1zPj4xNiYyNTV9aWYoYT09PTYpe2lmKHI8ZS5sZW5ndGgpe2VbcisrXT1zPj4yNCYyNTV9aT0wO2E9MH1lbHNle2k9cz4+PjI0O2ErPTJ9fWlmKHI8ZS5sZW5ndGgpe2VbcisrXT1pO3doaWxlKHI8ZS5sZW5ndGgpe2VbcisrXT0wfX19O0JOLnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbiBfdG9BcnJheUxpa2VCRShlLHQpe3ZhciByPWUubGVuZ3RoLTE7dmFyIGk9MDtmb3IodmFyIG49MCxhPTA7bjx0aGlzLmxlbmd0aDtuKyspe3ZhciBzPXRoaXMud29yZHNbbl08PGF8aTtlW3ItLV09cyYyNTU7aWYocj49MCl7ZVtyLS1dPXM+PjgmMjU1fWlmKHI+PTApe2Vbci0tXT1zPj4xNiYyNTV9aWYoYT09PTYpe2lmKHI+PTApe2Vbci0tXT1zPj4yNCYyNTV9aT0wO2E9MH1lbHNle2k9cz4+PjI0O2ErPTJ9fWlmKHI+PTApe2Vbci0tXT1pO3doaWxlKHI+PTApe2Vbci0tXT0wfX19O2lmKE1hdGguY2x6MzIpe0JOLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uIF9jb3VudEJpdHMoZSl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZSl9fWVsc2V7Qk4ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24gX2NvdW50Qml0cyhlKXt2YXIgdD1lO3ZhciByPTA7aWYodD49NDA5Nil7cis9MTM7dD4+Pj0xM31pZih0Pj02NCl7cis9Nzt0Pj4+PTd9aWYodD49OCl7cis9NDt0Pj4+PTR9aWYodD49Mil7cis9Mjt0Pj4+PTJ9cmV0dXJuIHIrdH19Qk4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbiBfemVyb0JpdHMoZSl7aWYoZT09PTApcmV0dXJuIDI2O3ZhciB0PWU7dmFyIHI9MDtpZigodCY4MTkxKT09PTApe3IrPTEzO3Q+Pj49MTN9aWYoKHQmMTI3KT09PTApe3IrPTc7dD4+Pj03fWlmKCh0JjE1KT09PTApe3IrPTQ7dD4+Pj00fWlmKCh0JjMpPT09MCl7cis9Mjt0Pj4+PTJ9aWYoKHQmMSk9PT0wKXtyKyt9cmV0dXJuIHJ9O0JOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24gYml0TGVuZ3RoKCl7dmFyIGU9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTt2YXIgdD10aGlzLl9jb3VudEJpdHMoZSk7cmV0dXJuKHRoaXMubGVuZ3RoLTEpKjI2K3R9O2Z1bmN0aW9uIHRvQml0QXJyYXkoZSl7dmFyIHQ9bmV3IEFycmF5KGUuYml0TGVuZ3RoKCkpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT1yLzI2fDA7dmFyIG49ciUyNjt0W3JdPWUud29yZHNbaV0+Pj5uJjF9cmV0dXJuIHR9Qk4ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uIHplcm9CaXRzKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDt2YXIgZT0wO2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGg7dCsrKXt2YXIgcj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3RdKTtlKz1yO2lmKHIhPT0yNilicmVha31yZXR1cm4gZX07Qk4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24gYnl0ZUxlbmd0aCgpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX07Qk4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbiB0b1R3b3MoZSl7aWYodGhpcy5uZWdhdGl2ZSE9PTApe3JldHVybiB0aGlzLmFicygpLmlub3RuKGUpLmlhZGRuKDEpfXJldHVybiB0aGlzLmNsb25lKCl9O0JOLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbiBmcm9tVHdvcyhlKXtpZih0aGlzLnRlc3RuKGUtMSkpe3JldHVybiB0aGlzLm5vdG4oZSkuaWFkZG4oMSkuaW5lZygpfXJldHVybiB0aGlzLmNsb25lKCl9O0JOLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbiBpc05lZygpe3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MH07Qk4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbiBuZWcoKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX07Qk4ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24gaW5lZygpe2lmKCF0aGlzLmlzWmVybygpKXt0aGlzLm5lZ2F0aXZlXj0xfXJldHVybiB0aGlzfTtCTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbiBpdW9yKGUpe3doaWxlKHRoaXMubGVuZ3RoPGUubGVuZ3RoKXt0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTB9Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3RoaXMud29yZHNbdF09dGhpcy53b3Jkc1t0XXxlLndvcmRzW3RdfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uIGlvcihlKXthc3NlcnQoKHRoaXMubmVnYXRpdmV8ZS5uZWdhdGl2ZSk9PT0wKTtyZXR1cm4gdGhpcy5pdW9yKGUpfTtCTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24gb3IoZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2xvbmUoKS5pb3IoZSk7cmV0dXJuIGUuY2xvbmUoKS5pb3IodGhpcyl9O0JOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24gdW9yKGUpe2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXJldHVybiB0aGlzLmNsb25lKCkuaXVvcihlKTtyZXR1cm4gZS5jbG9uZSgpLml1b3IodGhpcyl9O0JOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbiBpdWFuZChlKXt2YXIgdDtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aCl7dD1lfWVsc2V7dD10aGlzfWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mZS53b3Jkc1tyXX10aGlzLmxlbmd0aD10Lmxlbmd0aDtyZXR1cm4gdGhpcy5fc3RyaXAoKX07Qk4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24gaWFuZChlKXthc3NlcnQoKHRoaXMubmVnYXRpdmV8ZS5uZWdhdGl2ZSk9PT0wKTtyZXR1cm4gdGhpcy5pdWFuZChlKX07Qk4ucHJvdG90eXBlLmFuZD1mdW5jdGlvbiBhbmQoZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2xvbmUoKS5pYW5kKGUpO3JldHVybiBlLmNsb25lKCkuaWFuZCh0aGlzKX07Qk4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24gdWFuZChlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gdGhpcy5jbG9uZSgpLml1YW5kKGUpO3JldHVybiBlLmNsb25lKCkuaXVhbmQodGhpcyl9O0JOLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbiBpdXhvcihlKXt2YXIgdDt2YXIgcjtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aCl7dD10aGlzO3I9ZX1lbHNle3Q9ZTtyPXRoaXN9Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3RoaXMud29yZHNbaV09dC53b3Jkc1tpXV5yLndvcmRzW2ldfWlmKHRoaXMhPT10KXtmb3IoO2k8dC5sZW5ndGg7aSsrKXt0aGlzLndvcmRzW2ldPXQud29yZHNbaV19fXRoaXMubGVuZ3RoPXQubGVuZ3RoO3JldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbiBpeG9yKGUpe2Fzc2VydCgodGhpcy5uZWdhdGl2ZXxlLm5lZ2F0aXZlKT09PTApO3JldHVybiB0aGlzLml1eG9yKGUpfTtCTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uIHhvcihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gdGhpcy5jbG9uZSgpLml4b3IoZSk7cmV0dXJuIGUuY2xvbmUoKS5peG9yKHRoaXMpfTtCTi5wcm90b3R5cGUudXhvcj1mdW5jdGlvbiB1eG9yKGUpe2lmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXJldHVybiB0aGlzLmNsb25lKCkuaXV4b3IoZSk7cmV0dXJuIGUuY2xvbmUoKS5pdXhvcih0aGlzKX07Qk4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uIGlub3RuKGUpe2Fzc2VydCh0eXBlb2YgZT09PVwibnVtYmVyXCImJmU+PTApO3ZhciB0PU1hdGguY2VpbChlLzI2KXwwO3ZhciByPWUlMjY7dGhpcy5fZXhwYW5kKHQpO2lmKHI+MCl7dC0tfWZvcih2YXIgaT0wO2k8dDtpKyspe3RoaXMud29yZHNbaV09fnRoaXMud29yZHNbaV0mNjcxMDg4NjN9aWYocj4wKXt0aGlzLndvcmRzW2ldPX50aGlzLndvcmRzW2ldJjY3MTA4ODYzPj4yNi1yfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbiBub3RuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZSl9O0JOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uIHNldG4oZSx0KXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgcj1lLzI2fDA7dmFyIGk9ZSUyNjt0aGlzLl9leHBhbmQocisxKTtpZih0KXt0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl18MTw8aX1lbHNle3RoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXSZ+KDE8PGkpfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbiBpYWRkKGUpe3ZhciB0O2lmKHRoaXMubmVnYXRpdmUhPT0wJiZlLm5lZ2F0aXZlPT09MCl7dGhpcy5uZWdhdGl2ZT0wO3Q9dGhpcy5pc3ViKGUpO3RoaXMubmVnYXRpdmVePTE7cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9ZWxzZSBpZih0aGlzLm5lZ2F0aXZlPT09MCYmZS5uZWdhdGl2ZSE9PTApe2UubmVnYXRpdmU9MDt0PXRoaXMuaXN1YihlKTtlLm5lZ2F0aXZlPTE7cmV0dXJuIHQuX25vcm1TaWduKCl9dmFyIHIsaTtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aCl7cj10aGlzO2k9ZX1lbHNle3I9ZTtpPXRoaXN9dmFyIG49MDtmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl7dD0oci53b3Jkc1thXXwwKSsoaS53b3Jkc1thXXwwKStuO3RoaXMud29yZHNbYV09dCY2NzEwODg2MztuPXQ+Pj4yNn1mb3IoO24hPT0wJiZhPHIubGVuZ3RoO2ErKyl7dD0oci53b3Jkc1thXXwwKStuO3RoaXMud29yZHNbYV09dCY2NzEwODg2MztuPXQ+Pj4yNn10aGlzLmxlbmd0aD1yLmxlbmd0aDtpZihuIT09MCl7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09bjt0aGlzLmxlbmd0aCsrfWVsc2UgaWYociE9PXRoaXMpe2Zvcig7YTxyLmxlbmd0aDthKyspe3RoaXMud29yZHNbYV09ci53b3Jkc1thXX19cmV0dXJuIHRoaXN9O0JOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24gYWRkKGUpe3ZhciB0O2lmKGUubmVnYXRpdmUhPT0wJiZ0aGlzLm5lZ2F0aXZlPT09MCl7ZS5uZWdhdGl2ZT0wO3Q9dGhpcy5zdWIoZSk7ZS5uZWdhdGl2ZV49MTtyZXR1cm4gdH1lbHNlIGlmKGUubmVnYXRpdmU9PT0wJiZ0aGlzLm5lZ2F0aXZlIT09MCl7dGhpcy5uZWdhdGl2ZT0wO3Q9ZS5zdWIodGhpcyk7dGhpcy5uZWdhdGl2ZT0xO3JldHVybiB0fWlmKHRoaXMubGVuZ3RoPmUubGVuZ3RoKXJldHVybiB0aGlzLmNsb25lKCkuaWFkZChlKTtyZXR1cm4gZS5jbG9uZSgpLmlhZGQodGhpcyl9O0JOLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uIGlzdWIoZSl7aWYoZS5uZWdhdGl2ZSE9PTApe2UubmVnYXRpdmU9MDt2YXIgdD10aGlzLmlhZGQoZSk7ZS5uZWdhdGl2ZT0xO3JldHVybiB0Ll9ub3JtU2lnbigpfWVsc2UgaWYodGhpcy5uZWdhdGl2ZSE9PTApe3RoaXMubmVnYXRpdmU9MDt0aGlzLmlhZGQoZSk7dGhpcy5uZWdhdGl2ZT0xO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfXZhciByPXRoaXMuY21wKGUpO2lmKHI9PT0wKXt0aGlzLm5lZ2F0aXZlPTA7dGhpcy5sZW5ndGg9MTt0aGlzLndvcmRzWzBdPTA7cmV0dXJuIHRoaXN9dmFyIGksbjtpZihyPjApe2k9dGhpcztuPWV9ZWxzZXtpPWU7bj10aGlzfXZhciBhPTA7Zm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKyspe3Q9KGkud29yZHNbc118MCktKG4ud29yZHNbc118MCkrYTthPXQ+PjI2O3RoaXMud29yZHNbc109dCY2NzEwODg2M31mb3IoO2EhPT0wJiZzPGkubGVuZ3RoO3MrKyl7dD0oaS53b3Jkc1tzXXwwKSthO2E9dD4+MjY7dGhpcy53b3Jkc1tzXT10JjY3MTA4ODYzfWlmKGE9PT0wJiZzPGkubGVuZ3RoJiZpIT09dGhpcyl7Zm9yKDtzPGkubGVuZ3RoO3MrKyl7dGhpcy53b3Jkc1tzXT1pLndvcmRzW3NdfX10aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxzKTtpZihpIT09dGhpcyl7dGhpcy5uZWdhdGl2ZT0xfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uIHN1YihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZSl9O2Z1bmN0aW9uIHNtYWxsTXVsVG8oZSx0LHIpe3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlO3ZhciBpPWUubGVuZ3RoK3QubGVuZ3RofDA7ci5sZW5ndGg9aTtpPWktMXwwO3ZhciBuPWUud29yZHNbMF18MDt2YXIgYT10LndvcmRzWzBdfDA7dmFyIHM9biphO3ZhciBvPXMmNjcxMDg4NjM7dmFyIGg9cy82NzEwODg2NHwwO3Iud29yZHNbMF09bztmb3IodmFyIHU9MTt1PGk7dSsrKXt2YXIgZD1oPj4+MjY7dmFyIGM9aCY2NzEwODg2Mzt2YXIgbD1NYXRoLm1pbih1LHQubGVuZ3RoLTEpO2Zvcih2YXIgcD1NYXRoLm1heCgwLHUtZS5sZW5ndGgrMSk7cDw9bDtwKyspe3ZhciB2PXUtcHwwO249ZS53b3Jkc1t2XXwwO2E9dC53b3Jkc1twXXwwO3M9biphK2M7ZCs9cy82NzEwODg2NHwwO2M9cyY2NzEwODg2M31yLndvcmRzW3VdPWN8MDtoPWR8MH1pZihoIT09MCl7ci53b3Jkc1t1XT1ofDB9ZWxzZXtyLmxlbmd0aC0tfXJldHVybiByLl9zdHJpcCgpfXZhciBoPWZ1bmN0aW9uIGNvbWIxME11bFRvKGUsdCxyKXt2YXIgaT1lLndvcmRzO3ZhciBuPXQud29yZHM7dmFyIGE9ci53b3Jkczt2YXIgcz0wO3ZhciBvO3ZhciBoO3ZhciB1O3ZhciBkPWlbMF18MDt2YXIgYz1kJjgxOTE7dmFyIGw9ZD4+PjEzO3ZhciBwPWlbMV18MDt2YXIgdj1wJjgxOTE7dmFyIGI9cD4+PjEzO3ZhciBtPWlbMl18MDt2YXIgeT1tJjgxOTE7dmFyIGc9bT4+PjEzO3ZhciBfPWlbM118MDt2YXIgdz1fJjgxOTE7dmFyIE09Xz4+PjEzO3ZhciBCPWlbNF18MDt2YXIgRT1CJjgxOTE7dmFyIGs9Qj4+PjEzO3ZhciBBPWlbNV18MDt2YXIgTj1BJjgxOTE7dmFyIFA9QT4+PjEzO3ZhciB4PWlbNl18MDt2YXIgST14JjgxOTE7dmFyIEM9eD4+PjEzO3ZhciBEPWlbN118MDt2YXIgVD1EJjgxOTE7dmFyIGo9RD4+PjEzO3ZhciBxPWlbOF18MDt2YXIgTz1xJjgxOTE7dmFyIEg9cT4+PjEzO3ZhciBMPWlbOV18MDt2YXIgej1MJjgxOTE7dmFyIEY9TD4+PjEzO3ZhciBVPW5bMF18MDt2YXIgVz1VJjgxOTE7dmFyIFY9VT4+PjEzO3ZhciBHPW5bMV18MDt2YXIgSj1HJjgxOTE7dmFyIFo9Rz4+PjEzO3ZhciBYPW5bMl18MDt2YXIgWT1YJjgxOTE7dmFyICQ9WD4+PjEzO3ZhciBRPW5bM118MDt2YXIgZWU9USY4MTkxO3ZhciB0ZT1RPj4+MTM7dmFyIHJlPW5bNF18MDt2YXIgaWU9cmUmODE5MTt2YXIgbmU9cmU+Pj4xMzt2YXIgYWU9bls1XXwwO3ZhciBmZT1hZSY4MTkxO3ZhciBzZT1hZT4+PjEzO3ZhciBvZT1uWzZdfDA7dmFyIGhlPW9lJjgxOTE7dmFyIHVlPW9lPj4+MTM7dmFyIGRlPW5bN118MDt2YXIgY2U9ZGUmODE5MTt2YXIgbGU9ZGU+Pj4xMzt2YXIgcGU9bls4XXwwO3ZhciB2ZT1wZSY4MTkxO3ZhciBiZT1wZT4+PjEzO3ZhciBtZT1uWzldfDA7dmFyIHllPW1lJjgxOTE7dmFyIGdlPW1lPj4+MTM7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmU7ci5sZW5ndGg9MTk7bz1NYXRoLmltdWwoYyxXKTtoPU1hdGguaW11bChjLFYpO2g9aCtNYXRoLmltdWwobCxXKXwwO3U9TWF0aC5pbXVsKGwsVik7dmFyIF9lPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhfZT4+PjI2KXwwO19lJj02NzEwODg2MztvPU1hdGguaW11bCh2LFcpO2g9TWF0aC5pbXVsKHYsVik7aD1oK01hdGguaW11bChiLFcpfDA7dT1NYXRoLmltdWwoYixWKTtvPW8rTWF0aC5pbXVsKGMsSil8MDtoPWgrTWF0aC5pbXVsKGMsWil8MDtoPWgrTWF0aC5pbXVsKGwsSil8MDt1PXUrTWF0aC5pbXVsKGwsWil8MDt2YXIgd2U9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKHdlPj4+MjYpfDA7d2UmPTY3MTA4ODYzO289TWF0aC5pbXVsKHksVyk7aD1NYXRoLmltdWwoeSxWKTtoPWgrTWF0aC5pbXVsKGcsVyl8MDt1PU1hdGguaW11bChnLFYpO289bytNYXRoLmltdWwodixKKXwwO2g9aCtNYXRoLmltdWwodixaKXwwO2g9aCtNYXRoLmltdWwoYixKKXwwO3U9dStNYXRoLmltdWwoYixaKXwwO289bytNYXRoLmltdWwoYyxZKXwwO2g9aCtNYXRoLmltdWwoYywkKXwwO2g9aCtNYXRoLmltdWwobCxZKXwwO3U9dStNYXRoLmltdWwobCwkKXwwO3ZhciBNZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoTWU+Pj4yNil8MDtNZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwodyxXKTtoPU1hdGguaW11bCh3LFYpO2g9aCtNYXRoLmltdWwoTSxXKXwwO3U9TWF0aC5pbXVsKE0sVik7bz1vK01hdGguaW11bCh5LEopfDA7aD1oK01hdGguaW11bCh5LFopfDA7aD1oK01hdGguaW11bChnLEopfDA7dT11K01hdGguaW11bChnLFopfDA7bz1vK01hdGguaW11bCh2LFkpfDA7aD1oK01hdGguaW11bCh2LCQpfDA7aD1oK01hdGguaW11bChiLFkpfDA7dT11K01hdGguaW11bChiLCQpfDA7bz1vK01hdGguaW11bChjLGVlKXwwO2g9aCtNYXRoLmltdWwoYyx0ZSl8MDtoPWgrTWF0aC5pbXVsKGwsZWUpfDA7dT11K01hdGguaW11bChsLHRlKXwwO3ZhciBTZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoU2U+Pj4yNil8MDtTZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoRSxXKTtoPU1hdGguaW11bChFLFYpO2g9aCtNYXRoLmltdWwoayxXKXwwO3U9TWF0aC5pbXVsKGssVik7bz1vK01hdGguaW11bCh3LEopfDA7aD1oK01hdGguaW11bCh3LFopfDA7aD1oK01hdGguaW11bChNLEopfDA7dT11K01hdGguaW11bChNLFopfDA7bz1vK01hdGguaW11bCh5LFkpfDA7aD1oK01hdGguaW11bCh5LCQpfDA7aD1oK01hdGguaW11bChnLFkpfDA7dT11K01hdGguaW11bChnLCQpfDA7bz1vK01hdGguaW11bCh2LGVlKXwwO2g9aCtNYXRoLmltdWwodix0ZSl8MDtoPWgrTWF0aC5pbXVsKGIsZWUpfDA7dT11K01hdGguaW11bChiLHRlKXwwO289bytNYXRoLmltdWwoYyxpZSl8MDtoPWgrTWF0aC5pbXVsKGMsbmUpfDA7aD1oK01hdGguaW11bChsLGllKXwwO3U9dStNYXRoLmltdWwobCxuZSl8MDt2YXIgQmU9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKEJlPj4+MjYpfDA7QmUmPTY3MTA4ODYzO289TWF0aC5pbXVsKE4sVyk7aD1NYXRoLmltdWwoTixWKTtoPWgrTWF0aC5pbXVsKFAsVyl8MDt1PU1hdGguaW11bChQLFYpO289bytNYXRoLmltdWwoRSxKKXwwO2g9aCtNYXRoLmltdWwoRSxaKXwwO2g9aCtNYXRoLmltdWwoayxKKXwwO3U9dStNYXRoLmltdWwoayxaKXwwO289bytNYXRoLmltdWwodyxZKXwwO2g9aCtNYXRoLmltdWwodywkKXwwO2g9aCtNYXRoLmltdWwoTSxZKXwwO3U9dStNYXRoLmltdWwoTSwkKXwwO289bytNYXRoLmltdWwoeSxlZSl8MDtoPWgrTWF0aC5pbXVsKHksdGUpfDA7aD1oK01hdGguaW11bChnLGVlKXwwO3U9dStNYXRoLmltdWwoZyx0ZSl8MDtvPW8rTWF0aC5pbXVsKHYsaWUpfDA7aD1oK01hdGguaW11bCh2LG5lKXwwO2g9aCtNYXRoLmltdWwoYixpZSl8MDt1PXUrTWF0aC5pbXVsKGIsbmUpfDA7bz1vK01hdGguaW11bChjLGZlKXwwO2g9aCtNYXRoLmltdWwoYyxzZSl8MDtoPWgrTWF0aC5pbXVsKGwsZmUpfDA7dT11K01hdGguaW11bChsLHNlKXwwO3ZhciBFZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoRWU+Pj4yNil8MDtFZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoSSxXKTtoPU1hdGguaW11bChJLFYpO2g9aCtNYXRoLmltdWwoQyxXKXwwO3U9TWF0aC5pbXVsKEMsVik7bz1vK01hdGguaW11bChOLEopfDA7aD1oK01hdGguaW11bChOLFopfDA7aD1oK01hdGguaW11bChQLEopfDA7dT11K01hdGguaW11bChQLFopfDA7bz1vK01hdGguaW11bChFLFkpfDA7aD1oK01hdGguaW11bChFLCQpfDA7aD1oK01hdGguaW11bChrLFkpfDA7dT11K01hdGguaW11bChrLCQpfDA7bz1vK01hdGguaW11bCh3LGVlKXwwO2g9aCtNYXRoLmltdWwodyx0ZSl8MDtoPWgrTWF0aC5pbXVsKE0sZWUpfDA7dT11K01hdGguaW11bChNLHRlKXwwO289bytNYXRoLmltdWwoeSxpZSl8MDtoPWgrTWF0aC5pbXVsKHksbmUpfDA7aD1oK01hdGguaW11bChnLGllKXwwO3U9dStNYXRoLmltdWwoZyxuZSl8MDtvPW8rTWF0aC5pbXVsKHYsZmUpfDA7aD1oK01hdGguaW11bCh2LHNlKXwwO2g9aCtNYXRoLmltdWwoYixmZSl8MDt1PXUrTWF0aC5pbXVsKGIsc2UpfDA7bz1vK01hdGguaW11bChjLGhlKXwwO2g9aCtNYXRoLmltdWwoYyx1ZSl8MDtoPWgrTWF0aC5pbXVsKGwsaGUpfDA7dT11K01hdGguaW11bChsLHVlKXwwO3ZhciBrZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoa2U+Pj4yNil8MDtrZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoVCxXKTtoPU1hdGguaW11bChULFYpO2g9aCtNYXRoLmltdWwoaixXKXwwO3U9TWF0aC5pbXVsKGosVik7bz1vK01hdGguaW11bChJLEopfDA7aD1oK01hdGguaW11bChJLFopfDA7aD1oK01hdGguaW11bChDLEopfDA7dT11K01hdGguaW11bChDLFopfDA7bz1vK01hdGguaW11bChOLFkpfDA7aD1oK01hdGguaW11bChOLCQpfDA7aD1oK01hdGguaW11bChQLFkpfDA7dT11K01hdGguaW11bChQLCQpfDA7bz1vK01hdGguaW11bChFLGVlKXwwO2g9aCtNYXRoLmltdWwoRSx0ZSl8MDtoPWgrTWF0aC5pbXVsKGssZWUpfDA7dT11K01hdGguaW11bChrLHRlKXwwO289bytNYXRoLmltdWwodyxpZSl8MDtoPWgrTWF0aC5pbXVsKHcsbmUpfDA7aD1oK01hdGguaW11bChNLGllKXwwO3U9dStNYXRoLmltdWwoTSxuZSl8MDtvPW8rTWF0aC5pbXVsKHksZmUpfDA7aD1oK01hdGguaW11bCh5LHNlKXwwO2g9aCtNYXRoLmltdWwoZyxmZSl8MDt1PXUrTWF0aC5pbXVsKGcsc2UpfDA7bz1vK01hdGguaW11bCh2LGhlKXwwO2g9aCtNYXRoLmltdWwodix1ZSl8MDtoPWgrTWF0aC5pbXVsKGIsaGUpfDA7dT11K01hdGguaW11bChiLHVlKXwwO289bytNYXRoLmltdWwoYyxjZSl8MDtoPWgrTWF0aC5pbXVsKGMsbGUpfDA7aD1oK01hdGguaW11bChsLGNlKXwwO3U9dStNYXRoLmltdWwobCxsZSl8MDt2YXIgQWU9KHMrb3wwKSsoKGgmODE5MSk8PDEzKXwwO3M9KHUrKGg+Pj4xMyl8MCkrKEFlPj4+MjYpfDA7QWUmPTY3MTA4ODYzO289TWF0aC5pbXVsKE8sVyk7aD1NYXRoLmltdWwoTyxWKTtoPWgrTWF0aC5pbXVsKEgsVyl8MDt1PU1hdGguaW11bChILFYpO289bytNYXRoLmltdWwoVCxKKXwwO2g9aCtNYXRoLmltdWwoVCxaKXwwO2g9aCtNYXRoLmltdWwoaixKKXwwO3U9dStNYXRoLmltdWwoaixaKXwwO289bytNYXRoLmltdWwoSSxZKXwwO2g9aCtNYXRoLmltdWwoSSwkKXwwO2g9aCtNYXRoLmltdWwoQyxZKXwwO3U9dStNYXRoLmltdWwoQywkKXwwO289bytNYXRoLmltdWwoTixlZSl8MDtoPWgrTWF0aC5pbXVsKE4sdGUpfDA7aD1oK01hdGguaW11bChQLGVlKXwwO3U9dStNYXRoLmltdWwoUCx0ZSl8MDtvPW8rTWF0aC5pbXVsKEUsaWUpfDA7aD1oK01hdGguaW11bChFLG5lKXwwO2g9aCtNYXRoLmltdWwoayxpZSl8MDt1PXUrTWF0aC5pbXVsKGssbmUpfDA7bz1vK01hdGguaW11bCh3LGZlKXwwO2g9aCtNYXRoLmltdWwodyxzZSl8MDtoPWgrTWF0aC5pbXVsKE0sZmUpfDA7dT11K01hdGguaW11bChNLHNlKXwwO289bytNYXRoLmltdWwoeSxoZSl8MDtoPWgrTWF0aC5pbXVsKHksdWUpfDA7aD1oK01hdGguaW11bChnLGhlKXwwO3U9dStNYXRoLmltdWwoZyx1ZSl8MDtvPW8rTWF0aC5pbXVsKHYsY2UpfDA7aD1oK01hdGguaW11bCh2LGxlKXwwO2g9aCtNYXRoLmltdWwoYixjZSl8MDt1PXUrTWF0aC5pbXVsKGIsbGUpfDA7bz1vK01hdGguaW11bChjLHZlKXwwO2g9aCtNYXRoLmltdWwoYyxiZSl8MDtoPWgrTWF0aC5pbXVsKGwsdmUpfDA7dT11K01hdGguaW11bChsLGJlKXwwO3ZhciBOZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoTmU+Pj4yNil8MDtOZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixXKTtoPU1hdGguaW11bCh6LFYpO2g9aCtNYXRoLmltdWwoRixXKXwwO3U9TWF0aC5pbXVsKEYsVik7bz1vK01hdGguaW11bChPLEopfDA7aD1oK01hdGguaW11bChPLFopfDA7aD1oK01hdGguaW11bChILEopfDA7dT11K01hdGguaW11bChILFopfDA7bz1vK01hdGguaW11bChULFkpfDA7aD1oK01hdGguaW11bChULCQpfDA7aD1oK01hdGguaW11bChqLFkpfDA7dT11K01hdGguaW11bChqLCQpfDA7bz1vK01hdGguaW11bChJLGVlKXwwO2g9aCtNYXRoLmltdWwoSSx0ZSl8MDtoPWgrTWF0aC5pbXVsKEMsZWUpfDA7dT11K01hdGguaW11bChDLHRlKXwwO289bytNYXRoLmltdWwoTixpZSl8MDtoPWgrTWF0aC5pbXVsKE4sbmUpfDA7aD1oK01hdGguaW11bChQLGllKXwwO3U9dStNYXRoLmltdWwoUCxuZSl8MDtvPW8rTWF0aC5pbXVsKEUsZmUpfDA7aD1oK01hdGguaW11bChFLHNlKXwwO2g9aCtNYXRoLmltdWwoayxmZSl8MDt1PXUrTWF0aC5pbXVsKGssc2UpfDA7bz1vK01hdGguaW11bCh3LGhlKXwwO2g9aCtNYXRoLmltdWwodyx1ZSl8MDtoPWgrTWF0aC5pbXVsKE0saGUpfDA7dT11K01hdGguaW11bChNLHVlKXwwO289bytNYXRoLmltdWwoeSxjZSl8MDtoPWgrTWF0aC5pbXVsKHksbGUpfDA7aD1oK01hdGguaW11bChnLGNlKXwwO3U9dStNYXRoLmltdWwoZyxsZSl8MDtvPW8rTWF0aC5pbXVsKHYsdmUpfDA7aD1oK01hdGguaW11bCh2LGJlKXwwO2g9aCtNYXRoLmltdWwoYix2ZSl8MDt1PXUrTWF0aC5pbXVsKGIsYmUpfDA7bz1vK01hdGguaW11bChjLHllKXwwO2g9aCtNYXRoLmltdWwoYyxnZSl8MDtoPWgrTWF0aC5pbXVsKGwseWUpfDA7dT11K01hdGguaW11bChsLGdlKXwwO3ZhciBSZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoUmU+Pj4yNil8MDtSZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixKKTtoPU1hdGguaW11bCh6LFopO2g9aCtNYXRoLmltdWwoRixKKXwwO3U9TWF0aC5pbXVsKEYsWik7bz1vK01hdGguaW11bChPLFkpfDA7aD1oK01hdGguaW11bChPLCQpfDA7aD1oK01hdGguaW11bChILFkpfDA7dT11K01hdGguaW11bChILCQpfDA7bz1vK01hdGguaW11bChULGVlKXwwO2g9aCtNYXRoLmltdWwoVCx0ZSl8MDtoPWgrTWF0aC5pbXVsKGosZWUpfDA7dT11K01hdGguaW11bChqLHRlKXwwO289bytNYXRoLmltdWwoSSxpZSl8MDtoPWgrTWF0aC5pbXVsKEksbmUpfDA7aD1oK01hdGguaW11bChDLGllKXwwO3U9dStNYXRoLmltdWwoQyxuZSl8MDtvPW8rTWF0aC5pbXVsKE4sZmUpfDA7aD1oK01hdGguaW11bChOLHNlKXwwO2g9aCtNYXRoLmltdWwoUCxmZSl8MDt1PXUrTWF0aC5pbXVsKFAsc2UpfDA7bz1vK01hdGguaW11bChFLGhlKXwwO2g9aCtNYXRoLmltdWwoRSx1ZSl8MDtoPWgrTWF0aC5pbXVsKGssaGUpfDA7dT11K01hdGguaW11bChrLHVlKXwwO289bytNYXRoLmltdWwodyxjZSl8MDtoPWgrTWF0aC5pbXVsKHcsbGUpfDA7aD1oK01hdGguaW11bChNLGNlKXwwO3U9dStNYXRoLmltdWwoTSxsZSl8MDtvPW8rTWF0aC5pbXVsKHksdmUpfDA7aD1oK01hdGguaW11bCh5LGJlKXwwO2g9aCtNYXRoLmltdWwoZyx2ZSl8MDt1PXUrTWF0aC5pbXVsKGcsYmUpfDA7bz1vK01hdGguaW11bCh2LHllKXwwO2g9aCtNYXRoLmltdWwodixnZSl8MDtoPWgrTWF0aC5pbXVsKGIseWUpfDA7dT11K01hdGguaW11bChiLGdlKXwwO3ZhciBQZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoUGU+Pj4yNil8MDtQZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixZKTtoPU1hdGguaW11bCh6LCQpO2g9aCtNYXRoLmltdWwoRixZKXwwO3U9TWF0aC5pbXVsKEYsJCk7bz1vK01hdGguaW11bChPLGVlKXwwO2g9aCtNYXRoLmltdWwoTyx0ZSl8MDtoPWgrTWF0aC5pbXVsKEgsZWUpfDA7dT11K01hdGguaW11bChILHRlKXwwO289bytNYXRoLmltdWwoVCxpZSl8MDtoPWgrTWF0aC5pbXVsKFQsbmUpfDA7aD1oK01hdGguaW11bChqLGllKXwwO3U9dStNYXRoLmltdWwoaixuZSl8MDtvPW8rTWF0aC5pbXVsKEksZmUpfDA7aD1oK01hdGguaW11bChJLHNlKXwwO2g9aCtNYXRoLmltdWwoQyxmZSl8MDt1PXUrTWF0aC5pbXVsKEMsc2UpfDA7bz1vK01hdGguaW11bChOLGhlKXwwO2g9aCtNYXRoLmltdWwoTix1ZSl8MDtoPWgrTWF0aC5pbXVsKFAsaGUpfDA7dT11K01hdGguaW11bChQLHVlKXwwO289bytNYXRoLmltdWwoRSxjZSl8MDtoPWgrTWF0aC5pbXVsKEUsbGUpfDA7aD1oK01hdGguaW11bChrLGNlKXwwO3U9dStNYXRoLmltdWwoayxsZSl8MDtvPW8rTWF0aC5pbXVsKHcsdmUpfDA7aD1oK01hdGguaW11bCh3LGJlKXwwO2g9aCtNYXRoLmltdWwoTSx2ZSl8MDt1PXUrTWF0aC5pbXVsKE0sYmUpfDA7bz1vK01hdGguaW11bCh5LHllKXwwO2g9aCtNYXRoLmltdWwoeSxnZSl8MDtoPWgrTWF0aC5pbXVsKGcseWUpfDA7dT11K01hdGguaW11bChnLGdlKXwwO3ZhciB4ZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoeGU+Pj4yNil8MDt4ZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixlZSk7aD1NYXRoLmltdWwoeix0ZSk7aD1oK01hdGguaW11bChGLGVlKXwwO3U9TWF0aC5pbXVsKEYsdGUpO289bytNYXRoLmltdWwoTyxpZSl8MDtoPWgrTWF0aC5pbXVsKE8sbmUpfDA7aD1oK01hdGguaW11bChILGllKXwwO3U9dStNYXRoLmltdWwoSCxuZSl8MDtvPW8rTWF0aC5pbXVsKFQsZmUpfDA7aD1oK01hdGguaW11bChULHNlKXwwO2g9aCtNYXRoLmltdWwoaixmZSl8MDt1PXUrTWF0aC5pbXVsKGosc2UpfDA7bz1vK01hdGguaW11bChJLGhlKXwwO2g9aCtNYXRoLmltdWwoSSx1ZSl8MDtoPWgrTWF0aC5pbXVsKEMsaGUpfDA7dT11K01hdGguaW11bChDLHVlKXwwO289bytNYXRoLmltdWwoTixjZSl8MDtoPWgrTWF0aC5pbXVsKE4sbGUpfDA7aD1oK01hdGguaW11bChQLGNlKXwwO3U9dStNYXRoLmltdWwoUCxsZSl8MDtvPW8rTWF0aC5pbXVsKEUsdmUpfDA7aD1oK01hdGguaW11bChFLGJlKXwwO2g9aCtNYXRoLmltdWwoayx2ZSl8MDt1PXUrTWF0aC5pbXVsKGssYmUpfDA7bz1vK01hdGguaW11bCh3LHllKXwwO2g9aCtNYXRoLmltdWwodyxnZSl8MDtoPWgrTWF0aC5pbXVsKE0seWUpfDA7dT11K01hdGguaW11bChNLGdlKXwwO3ZhciBJZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoSWU+Pj4yNil8MDtJZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixpZSk7aD1NYXRoLmltdWwoeixuZSk7aD1oK01hdGguaW11bChGLGllKXwwO3U9TWF0aC5pbXVsKEYsbmUpO289bytNYXRoLmltdWwoTyxmZSl8MDtoPWgrTWF0aC5pbXVsKE8sc2UpfDA7aD1oK01hdGguaW11bChILGZlKXwwO3U9dStNYXRoLmltdWwoSCxzZSl8MDtvPW8rTWF0aC5pbXVsKFQsaGUpfDA7aD1oK01hdGguaW11bChULHVlKXwwO2g9aCtNYXRoLmltdWwoaixoZSl8MDt1PXUrTWF0aC5pbXVsKGosdWUpfDA7bz1vK01hdGguaW11bChJLGNlKXwwO2g9aCtNYXRoLmltdWwoSSxsZSl8MDtoPWgrTWF0aC5pbXVsKEMsY2UpfDA7dT11K01hdGguaW11bChDLGxlKXwwO289bytNYXRoLmltdWwoTix2ZSl8MDtoPWgrTWF0aC5pbXVsKE4sYmUpfDA7aD1oK01hdGguaW11bChQLHZlKXwwO3U9dStNYXRoLmltdWwoUCxiZSl8MDtvPW8rTWF0aC5pbXVsKEUseWUpfDA7aD1oK01hdGguaW11bChFLGdlKXwwO2g9aCtNYXRoLmltdWwoayx5ZSl8MDt1PXUrTWF0aC5pbXVsKGssZ2UpfDA7dmFyIENlPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhDZT4+PjI2KXwwO0NlJj02NzEwODg2MztvPU1hdGguaW11bCh6LGZlKTtoPU1hdGguaW11bCh6LHNlKTtoPWgrTWF0aC5pbXVsKEYsZmUpfDA7dT1NYXRoLmltdWwoRixzZSk7bz1vK01hdGguaW11bChPLGhlKXwwO2g9aCtNYXRoLmltdWwoTyx1ZSl8MDtoPWgrTWF0aC5pbXVsKEgsaGUpfDA7dT11K01hdGguaW11bChILHVlKXwwO289bytNYXRoLmltdWwoVCxjZSl8MDtoPWgrTWF0aC5pbXVsKFQsbGUpfDA7aD1oK01hdGguaW11bChqLGNlKXwwO3U9dStNYXRoLmltdWwoaixsZSl8MDtvPW8rTWF0aC5pbXVsKEksdmUpfDA7aD1oK01hdGguaW11bChJLGJlKXwwO2g9aCtNYXRoLmltdWwoQyx2ZSl8MDt1PXUrTWF0aC5pbXVsKEMsYmUpfDA7bz1vK01hdGguaW11bChOLHllKXwwO2g9aCtNYXRoLmltdWwoTixnZSl8MDtoPWgrTWF0aC5pbXVsKFAseWUpfDA7dT11K01hdGguaW11bChQLGdlKXwwO3ZhciBEZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoRGU+Pj4yNil8MDtEZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixoZSk7aD1NYXRoLmltdWwoeix1ZSk7aD1oK01hdGguaW11bChGLGhlKXwwO3U9TWF0aC5pbXVsKEYsdWUpO289bytNYXRoLmltdWwoTyxjZSl8MDtoPWgrTWF0aC5pbXVsKE8sbGUpfDA7aD1oK01hdGguaW11bChILGNlKXwwO3U9dStNYXRoLmltdWwoSCxsZSl8MDtvPW8rTWF0aC5pbXVsKFQsdmUpfDA7aD1oK01hdGguaW11bChULGJlKXwwO2g9aCtNYXRoLmltdWwoaix2ZSl8MDt1PXUrTWF0aC5pbXVsKGosYmUpfDA7bz1vK01hdGguaW11bChJLHllKXwwO2g9aCtNYXRoLmltdWwoSSxnZSl8MDtoPWgrTWF0aC5pbXVsKEMseWUpfDA7dT11K01hdGguaW11bChDLGdlKXwwO3ZhciBUZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoVGU+Pj4yNil8MDtUZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeixjZSk7aD1NYXRoLmltdWwoeixsZSk7aD1oK01hdGguaW11bChGLGNlKXwwO3U9TWF0aC5pbXVsKEYsbGUpO289bytNYXRoLmltdWwoTyx2ZSl8MDtoPWgrTWF0aC5pbXVsKE8sYmUpfDA7aD1oK01hdGguaW11bChILHZlKXwwO3U9dStNYXRoLmltdWwoSCxiZSl8MDtvPW8rTWF0aC5pbXVsKFQseWUpfDA7aD1oK01hdGguaW11bChULGdlKXwwO2g9aCtNYXRoLmltdWwoaix5ZSl8MDt1PXUrTWF0aC5pbXVsKGosZ2UpfDA7dmFyIGplPShzK298MCkrKChoJjgxOTEpPDwxMyl8MDtzPSh1KyhoPj4+MTMpfDApKyhqZT4+PjI2KXwwO2plJj02NzEwODg2MztvPU1hdGguaW11bCh6LHZlKTtoPU1hdGguaW11bCh6LGJlKTtoPWgrTWF0aC5pbXVsKEYsdmUpfDA7dT1NYXRoLmltdWwoRixiZSk7bz1vK01hdGguaW11bChPLHllKXwwO2g9aCtNYXRoLmltdWwoTyxnZSl8MDtoPWgrTWF0aC5pbXVsKEgseWUpfDA7dT11K01hdGguaW11bChILGdlKXwwO3ZhciBxZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsocWU+Pj4yNil8MDtxZSY9NjcxMDg4NjM7bz1NYXRoLmltdWwoeix5ZSk7aD1NYXRoLmltdWwoeixnZSk7aD1oK01hdGguaW11bChGLHllKXwwO3U9TWF0aC5pbXVsKEYsZ2UpO3ZhciBPZT0ocytvfDApKygoaCY4MTkxKTw8MTMpfDA7cz0odSsoaD4+PjEzKXwwKSsoT2U+Pj4yNil8MDtPZSY9NjcxMDg4NjM7YVswXT1fZTthWzFdPXdlO2FbMl09TWU7YVszXT1TZTthWzRdPUJlO2FbNV09RWU7YVs2XT1rZTthWzddPUFlO2FbOF09TmU7YVs5XT1SZTthWzEwXT1QZTthWzExXT14ZTthWzEyXT1JZTthWzEzXT1DZTthWzE0XT1EZTthWzE1XT1UZTthWzE2XT1qZTthWzE3XT1xZTthWzE4XT1PZTtpZihzIT09MCl7YVsxOV09cztyLmxlbmd0aCsrfXJldHVybiByfTtpZighTWF0aC5pbXVsKXtoPXNtYWxsTXVsVG99ZnVuY3Rpb24gYmlnTXVsVG8oZSx0LHIpe3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlO3IubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoO3ZhciBpPTA7dmFyIG49MDtmb3IodmFyIGE9MDthPHIubGVuZ3RoLTE7YSsrKXt2YXIgcz1uO249MDt2YXIgbz1pJjY3MTA4ODYzO3ZhciBoPU1hdGgubWluKGEsdC5sZW5ndGgtMSk7Zm9yKHZhciB1PU1hdGgubWF4KDAsYS1lLmxlbmd0aCsxKTt1PD1oO3UrKyl7dmFyIGQ9YS11O3ZhciBjPWUud29yZHNbZF18MDt2YXIgbD10LndvcmRzW3VdfDA7dmFyIHA9YypsO3ZhciB2PXAmNjcxMDg4NjM7cz1zKyhwLzY3MTA4ODY0fDApfDA7dj12K298MDtvPXYmNjcxMDg4NjM7cz1zKyh2Pj4+MjYpfDA7bis9cz4+PjI2O3MmPTY3MTA4ODYzfXIud29yZHNbYV09bztpPXM7cz1ufWlmKGkhPT0wKXtyLndvcmRzW2FdPWl9ZWxzZXtyLmxlbmd0aC0tfXJldHVybiByLl9zdHJpcCgpfWZ1bmN0aW9uIGp1bWJvTXVsVG8oZSx0LHIpe3JldHVybiBiaWdNdWxUbyhlLHQscil9Qk4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uIG11bFRvKGUsdCl7dmFyIHI7dmFyIGk9dGhpcy5sZW5ndGgrZS5sZW5ndGg7aWYodGhpcy5sZW5ndGg9PT0xMCYmZS5sZW5ndGg9PT0xMCl7cj1oKHRoaXMsZSx0KX1lbHNlIGlmKGk8NjMpe3I9c21hbGxNdWxUbyh0aGlzLGUsdCl9ZWxzZSBpZihpPDEwMjQpe3I9YmlnTXVsVG8odGhpcyxlLHQpfWVsc2V7cj1qdW1ib011bFRvKHRoaXMsZSx0KX1yZXR1cm4gcn07ZnVuY3Rpb24gRkZUTShlLHQpe3RoaXMueD1lO3RoaXMueT10fUZGVE0ucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24gbWFrZVJCVChlKXt2YXIgdD1uZXcgQXJyYXkoZSk7dmFyIHI9Qk4ucHJvdG90eXBlLl9jb3VudEJpdHMoZSktMTtmb3IodmFyIGk9MDtpPGU7aSsrKXt0W2ldPXRoaXMucmV2QmluKGkscixlKX1yZXR1cm4gdH07RkZUTS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uIHJldkJpbihlLHQscil7aWYoZT09PTB8fGU9PT1yLTEpcmV0dXJuIGU7dmFyIGk9MDtmb3IodmFyIG49MDtuPHQ7bisrKXtpfD0oZSYxKTw8dC1uLTE7ZT4+PTF9cmV0dXJuIGl9O0ZGVE0ucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24gcGVybXV0ZShlLHQscixpLG4sYSl7Zm9yKHZhciBzPTA7czxhO3MrKyl7aVtzXT10W2Vbc11dO25bc109cltlW3NdXX19O0ZGVE0ucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbiB0cmFuc2Zvcm0oZSx0LHIsaSxuLGEpe3RoaXMucGVybXV0ZShhLGUsdCxyLGksbik7Zm9yKHZhciBzPTE7czxuO3M8PD0xKXt2YXIgbz1zPDwxO3ZhciBoPU1hdGguY29zKDIqTWF0aC5QSS9vKTt2YXIgdT1NYXRoLnNpbigyKk1hdGguUEkvbyk7Zm9yKHZhciBkPTA7ZDxuO2QrPW8pe3ZhciBjPWg7dmFyIGw9dTtmb3IodmFyIHA9MDtwPHM7cCsrKXt2YXIgdj1yW2QrcF07dmFyIGI9aVtkK3BdO3ZhciBtPXJbZCtwK3NdO3ZhciB5PWlbZCtwK3NdO3ZhciBnPWMqbS1sKnk7eT1jKnkrbCptO209ZztyW2QrcF09dittO2lbZCtwXT1iK3k7cltkK3Arc109di1tO2lbZCtwK3NdPWIteTtpZihwIT09byl7Zz1oKmMtdSpsO2w9aCpsK3UqYztjPWd9fX19fTtGRlRNLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbiBndWVzc0xlbjEzYihlLHQpe3ZhciByPU1hdGgubWF4KHQsZSl8MTt2YXIgaT1yJjE7dmFyIG49MDtmb3Iocj1yLzJ8MDtyO3I9cj4+PjEpe24rK31yZXR1cm4gMTw8bisxK2l9O0ZGVE0ucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbiBjb25qdWdhdGUoZSx0LHIpe2lmKHI8PTEpcmV0dXJuO2Zvcih2YXIgaT0wO2k8ci8yO2krKyl7dmFyIG49ZVtpXTtlW2ldPWVbci1pLTFdO2Vbci1pLTFdPW47bj10W2ldO3RbaV09LXRbci1pLTFdO3Rbci1pLTFdPS1ufX07RkZUTS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uIG5vcm1hbGl6ZTEzYihlLHQpe3ZhciByPTA7Zm9yKHZhciBpPTA7aTx0LzI7aSsrKXt2YXIgbj1NYXRoLnJvdW5kKGVbMippKzFdL3QpKjgxOTIrTWF0aC5yb3VuZChlWzIqaV0vdCkrcjtlW2ldPW4mNjcxMDg4NjM7aWYobjw2NzEwODg2NCl7cj0wfWVsc2V7cj1uLzY3MTA4ODY0fDB9fXJldHVybiBlfTtGRlRNLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uIGNvbnZlcnQxM2IoZSx0LHIsaSl7dmFyIG49MDtmb3IodmFyIGE9MDthPHQ7YSsrKXtuPW4rKGVbYV18MCk7clsyKmFdPW4mODE5MTtuPW4+Pj4xMztyWzIqYSsxXT1uJjgxOTE7bj1uPj4+MTN9Zm9yKGE9Mip0O2E8aTsrK2Epe3JbYV09MH1hc3NlcnQobj09PTApO2Fzc2VydCgobiZ+ODE5MSk9PT0wKX07RkZUTS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbiBzdHViKGUpe3ZhciB0PW5ldyBBcnJheShlKTtmb3IodmFyIHI9MDtyPGU7cisrKXt0W3JdPTB9cmV0dXJuIHR9O0ZGVE0ucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24gbXVscChlLHQscil7dmFyIGk9Mip0aGlzLmd1ZXNzTGVuMTNiKGUubGVuZ3RoLHQubGVuZ3RoKTt2YXIgbj10aGlzLm1ha2VSQlQoaSk7dmFyIGE9dGhpcy5zdHViKGkpO3ZhciBzPW5ldyBBcnJheShpKTt2YXIgbz1uZXcgQXJyYXkoaSk7dmFyIGg9bmV3IEFycmF5KGkpO3ZhciB1PW5ldyBBcnJheShpKTt2YXIgZD1uZXcgQXJyYXkoaSk7dmFyIGM9bmV3IEFycmF5KGkpO3ZhciBsPXIud29yZHM7bC5sZW5ndGg9aTt0aGlzLmNvbnZlcnQxM2IoZS53b3JkcyxlLmxlbmd0aCxzLGkpO3RoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHUsaSk7dGhpcy50cmFuc2Zvcm0ocyxhLG8saCxpLG4pO3RoaXMudHJhbnNmb3JtKHUsYSxkLGMsaSxuKTtmb3IodmFyIHA9MDtwPGk7cCsrKXt2YXIgdj1vW3BdKmRbcF0taFtwXSpjW3BdO2hbcF09b1twXSpjW3BdK2hbcF0qZFtwXTtvW3BdPXZ9dGhpcy5jb25qdWdhdGUobyxoLGkpO3RoaXMudHJhbnNmb3JtKG8saCxsLGEsaSxuKTt0aGlzLmNvbmp1Z2F0ZShsLGEsaSk7dGhpcy5ub3JtYWxpemUxM2IobCxpKTtyLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZTtyLmxlbmd0aD1lLmxlbmd0aCt0Lmxlbmd0aDtyZXR1cm4gci5fc3RyaXAoKX07Qk4ucHJvdG90eXBlLm11bD1mdW5jdGlvbiBtdWwoZSl7dmFyIHQ9bmV3IEJOKG51bGwpO3Qud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2UubGVuZ3RoKTtyZXR1cm4gdGhpcy5tdWxUbyhlLHQpfTtCTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbiBtdWxmKGUpe3ZhciB0PW5ldyBCTihudWxsKTt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCk7cmV0dXJuIGp1bWJvTXVsVG8odGhpcyxlLHQpfTtCTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbiBpbXVsKGUpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZSx0aGlzKX07Qk4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uIGltdWxuKGUpe3ZhciB0PWU8MDtpZih0KWU9LWU7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7YXNzZXJ0KGU8NjcxMDg4NjQpO3ZhciByPTA7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciBuPSh0aGlzLndvcmRzW2ldfDApKmU7dmFyIGE9KG4mNjcxMDg4NjMpKyhyJjY3MTA4ODYzKTtyPj49MjY7cis9bi82NzEwODg2NHwwO3IrPWE+Pj4yNjt0aGlzLndvcmRzW2ldPWEmNjcxMDg4NjN9aWYociE9PTApe3RoaXMud29yZHNbaV09cjt0aGlzLmxlbmd0aCsrfXJldHVybiB0P3RoaXMuaW5lZygpOnRoaXN9O0JOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uIG11bG4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihlKX07Qk4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbiBzcXIoKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9O0JOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uIGlzcXIoKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9O0JOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24gcG93KGUpe3ZhciB0PXRvQml0QXJyYXkoZSk7aWYodC5sZW5ndGg9PT0wKXJldHVybiBuZXcgQk4oMSk7dmFyIHI9dGhpcztmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyxyPXIuc3FyKCkpe2lmKHRbaV0hPT0wKWJyZWFrfWlmKCsraTx0Lmxlbmd0aCl7Zm9yKHZhciBuPXIuc3FyKCk7aTx0Lmxlbmd0aDtpKyssbj1uLnNxcigpKXtpZih0W2ldPT09MCljb250aW51ZTtyPXIubXVsKG4pfX1yZXR1cm4gcn07Qk4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbiBpdXNobG4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIiYmZT49MCk7dmFyIHQ9ZSUyNjt2YXIgcj0oZS10KS8yNjt2YXIgaT02NzEwODg2Mz4+PjI2LXQ8PDI2LXQ7dmFyIG47aWYodCE9PTApe3ZhciBhPTA7Zm9yKG49MDtuPHRoaXMubGVuZ3RoO24rKyl7dmFyIHM9dGhpcy53b3Jkc1tuXSZpO3ZhciBvPSh0aGlzLndvcmRzW25dfDApLXM8PHQ7dGhpcy53b3Jkc1tuXT1vfGE7YT1zPj4+MjYtdH1pZihhKXt0aGlzLndvcmRzW25dPWE7dGhpcy5sZW5ndGgrK319aWYociE9PTApe2ZvcihuPXRoaXMubGVuZ3RoLTE7bj49MDtuLS0pe3RoaXMud29yZHNbbityXT10aGlzLndvcmRzW25dfWZvcihuPTA7bjxyO24rKyl7dGhpcy53b3Jkc1tuXT0wfXRoaXMubGVuZ3RoKz1yfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24gaXNobG4oZSl7YXNzZXJ0KHRoaXMubmVnYXRpdmU9PT0wKTtyZXR1cm4gdGhpcy5pdXNobG4oZSl9O0JOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24gaXVzaHJuKGUsdCxyKXthc3NlcnQodHlwZW9mIGU9PT1cIm51bWJlclwiJiZlPj0wKTt2YXIgaTtpZih0KXtpPSh0LXQlMjYpLzI2fWVsc2V7aT0wfXZhciBuPWUlMjY7dmFyIGE9TWF0aC5taW4oKGUtbikvMjYsdGhpcy5sZW5ndGgpO3ZhciBzPTY3MTA4ODYzXjY3MTA4ODYzPj4+bjw8bjt2YXIgbz1yO2ktPWE7aT1NYXRoLm1heCgwLGkpO2lmKG8pe2Zvcih2YXIgaD0wO2g8YTtoKyspe28ud29yZHNbaF09dGhpcy53b3Jkc1toXX1vLmxlbmd0aD1hfWlmKGE9PT0wKXt9ZWxzZSBpZih0aGlzLmxlbmd0aD5hKXt0aGlzLmxlbmd0aC09YTtmb3IoaD0wO2g8dGhpcy5sZW5ndGg7aCsrKXt0aGlzLndvcmRzW2hdPXRoaXMud29yZHNbaCthXX19ZWxzZXt0aGlzLndvcmRzWzBdPTA7dGhpcy5sZW5ndGg9MX12YXIgdT0wO2ZvcihoPXRoaXMubGVuZ3RoLTE7aD49MCYmKHUhPT0wfHxoPj1pKTtoLS0pe3ZhciBkPXRoaXMud29yZHNbaF18MDt0aGlzLndvcmRzW2hdPXU8PDI2LW58ZD4+Pm47dT1kJnN9aWYobyYmdSE9PTApe28ud29yZHNbby5sZW5ndGgrK109dX1pZih0aGlzLmxlbmd0aD09PTApe3RoaXMud29yZHNbMF09MDt0aGlzLmxlbmd0aD0xfXJldHVybiB0aGlzLl9zdHJpcCgpfTtCTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24gaXNocm4oZSx0LHIpe2Fzc2VydCh0aGlzLm5lZ2F0aXZlPT09MCk7cmV0dXJuIHRoaXMuaXVzaHJuKGUsdCxyKX07Qk4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24gc2hsbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGUpfTtCTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24gdXNobG4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZSl9O0JOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uIHNocm4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihlKX07Qk4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uIHVzaHJuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGUpfTtCTi5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24gdGVzdG4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIiYmZT49MCk7dmFyIHQ9ZSUyNjt2YXIgcj0oZS10KS8yNjt2YXIgaT0xPDx0O2lmKHRoaXMubGVuZ3RoPD1yKXJldHVybiBmYWxzZTt2YXIgbj10aGlzLndvcmRzW3JdO3JldHVybiEhKG4maSl9O0JOLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24gaW1hc2tuKGUpe2Fzc2VydCh0eXBlb2YgZT09PVwibnVtYmVyXCImJmU+PTApO3ZhciB0PWUlMjY7dmFyIHI9KGUtdCkvMjY7YXNzZXJ0KHRoaXMubmVnYXRpdmU9PT0wLFwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzXCIpO2lmKHRoaXMubGVuZ3RoPD1yKXtyZXR1cm4gdGhpc31pZih0IT09MCl7cisrfXRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpO2lmKHQhPT0wKXt2YXIgaT02NzEwODg2M142NzEwODg2Mz4+PnQ8PHQ7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9aX1yZXR1cm4gdGhpcy5fc3RyaXAoKX07Qk4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uIG1hc2tuKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGUpfTtCTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24gaWFkZG4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7YXNzZXJ0KGU8NjcxMDg4NjQpO2lmKGU8MClyZXR1cm4gdGhpcy5pc3VibigtZSk7aWYodGhpcy5uZWdhdGl2ZSE9PTApe2lmKHRoaXMubGVuZ3RoPT09MSYmKHRoaXMud29yZHNbMF18MCk8PWUpe3RoaXMud29yZHNbMF09ZS0odGhpcy53b3Jkc1swXXwwKTt0aGlzLm5lZ2F0aXZlPTA7cmV0dXJuIHRoaXN9dGhpcy5uZWdhdGl2ZT0wO3RoaXMuaXN1Ym4oZSk7dGhpcy5uZWdhdGl2ZT0xO3JldHVybiB0aGlzfXJldHVybiB0aGlzLl9pYWRkbihlKX07Qk4ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbiBfaWFkZG4oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0Kyspe3RoaXMud29yZHNbdF0tPTY3MTA4ODY0O2lmKHQ9PT10aGlzLmxlbmd0aC0xKXt0aGlzLndvcmRzW3QrMV09MX1lbHNle3RoaXMud29yZHNbdCsxXSsrfX10aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx0KzEpO3JldHVybiB0aGlzfTtCTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24gaXN1Ym4oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7YXNzZXJ0KGU8NjcxMDg4NjQpO2lmKGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYodGhpcy5uZWdhdGl2ZSE9PTApe3RoaXMubmVnYXRpdmU9MDt0aGlzLmlhZGRuKGUpO3RoaXMubmVnYXRpdmU9MTtyZXR1cm4gdGhpc310aGlzLndvcmRzWzBdLT1lO2lmKHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXTwwKXt0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdO3RoaXMubmVnYXRpdmU9MX1lbHNle2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF08MDt0Kyspe3RoaXMud29yZHNbdF0rPTY3MTA4ODY0O3RoaXMud29yZHNbdCsxXS09MX19cmV0dXJuIHRoaXMuX3N0cmlwKCl9O0JOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uIGFkZG4oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihlKX07Qk4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24gc3VibihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGUpfTtCTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbiBpYWJzKCl7dGhpcy5uZWdhdGl2ZT0wO3JldHVybiB0aGlzfTtCTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uIGFicygpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfTtCTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uIF9pc2hsbnN1Ym11bChlLHQscil7dmFyIGk9ZS5sZW5ndGgrcjt2YXIgbjt0aGlzLl9leHBhbmQoaSk7dmFyIGE7dmFyIHM9MDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXthPSh0aGlzLndvcmRzW24rcl18MCkrczt2YXIgbz0oZS53b3Jkc1tuXXwwKSp0O2EtPW8mNjcxMDg4NjM7cz0oYT4+MjYpLShvLzY3MTA4ODY0fDApO3RoaXMud29yZHNbbityXT1hJjY3MTA4ODYzfWZvcig7bjx0aGlzLmxlbmd0aC1yO24rKyl7YT0odGhpcy53b3Jkc1tuK3JdfDApK3M7cz1hPj4yNjt0aGlzLndvcmRzW24rcl09YSY2NzEwODg2M31pZihzPT09MClyZXR1cm4gdGhpcy5fc3RyaXAoKTthc3NlcnQocz09PS0xKTtzPTA7Zm9yKG49MDtuPHRoaXMubGVuZ3RoO24rKyl7YT0tKHRoaXMud29yZHNbbl18MCkrcztzPWE+PjI2O3RoaXMud29yZHNbbl09YSY2NzEwODg2M310aGlzLm5lZ2F0aXZlPTE7cmV0dXJuIHRoaXMuX3N0cmlwKCl9O0JOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbiBfd29yZERpdihlLHQpe3ZhciByPXRoaXMubGVuZ3RoLWUubGVuZ3RoO3ZhciBpPXRoaXMuY2xvbmUoKTt2YXIgbj1lO3ZhciBhPW4ud29yZHNbbi5sZW5ndGgtMV18MDt2YXIgcz10aGlzLl9jb3VudEJpdHMoYSk7cj0yNi1zO2lmKHIhPT0wKXtuPW4udXNobG4ocik7aS5pdXNobG4ocik7YT1uLndvcmRzW24ubGVuZ3RoLTFdfDB9dmFyIG89aS5sZW5ndGgtbi5sZW5ndGg7dmFyIGg7aWYodCE9PVwibW9kXCIpe2g9bmV3IEJOKG51bGwpO2gubGVuZ3RoPW8rMTtoLndvcmRzPW5ldyBBcnJheShoLmxlbmd0aCk7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1Kyspe2gud29yZHNbdV09MH19dmFyIGQ9aS5jbG9uZSgpLl9pc2hsbnN1Ym11bChuLDEsbyk7aWYoZC5uZWdhdGl2ZT09PTApe2k9ZDtpZihoKXtoLndvcmRzW29dPTF9fWZvcih2YXIgYz1vLTE7Yz49MDtjLS0pe3ZhciBsPShpLndvcmRzW24ubGVuZ3RoK2NdfDApKjY3MTA4ODY0KyhpLndvcmRzW24ubGVuZ3RoK2MtMV18MCk7bD1NYXRoLm1pbihsL2F8MCw2NzEwODg2Myk7aS5faXNobG5zdWJtdWwobixsLGMpO3doaWxlKGkubmVnYXRpdmUhPT0wKXtsLS07aS5uZWdhdGl2ZT0wO2kuX2lzaGxuc3VibXVsKG4sMSxjKTtpZighaS5pc1plcm8oKSl7aS5uZWdhdGl2ZV49MX19aWYoaCl7aC53b3Jkc1tjXT1sfX1pZihoKXtoLl9zdHJpcCgpfWkuX3N0cmlwKCk7aWYodCE9PVwiZGl2XCImJnIhPT0wKXtpLml1c2hybihyKX1yZXR1cm57ZGl2Omh8fG51bGwsbW9kOml9fTtCTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uIGRpdm1vZChlLHQscil7YXNzZXJ0KCFlLmlzWmVybygpKTtpZih0aGlzLmlzWmVybygpKXtyZXR1cm57ZGl2Om5ldyBCTigwKSxtb2Q6bmV3IEJOKDApfX12YXIgaSxuLGE7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJmUubmVnYXRpdmU9PT0wKXthPXRoaXMubmVnKCkuZGl2bW9kKGUsdCk7aWYodCE9PVwibW9kXCIpe2k9YS5kaXYubmVnKCl9aWYodCE9PVwiZGl2XCIpe249YS5tb2QubmVnKCk7aWYociYmbi5uZWdhdGl2ZSE9PTApe24uaWFkZChlKX19cmV0dXJue2RpdjppLG1vZDpufX1pZih0aGlzLm5lZ2F0aXZlPT09MCYmZS5uZWdhdGl2ZSE9PTApe2E9dGhpcy5kaXZtb2QoZS5uZWcoKSx0KTtpZih0IT09XCJtb2RcIil7aT1hLmRpdi5uZWcoKX1yZXR1cm57ZGl2OmksbW9kOmEubW9kfX1pZigodGhpcy5uZWdhdGl2ZSZlLm5lZ2F0aXZlKSE9PTApe2E9dGhpcy5uZWcoKS5kaXZtb2QoZS5uZWcoKSx0KTtpZih0IT09XCJkaXZcIil7bj1hLm1vZC5uZWcoKTtpZihyJiZuLm5lZ2F0aXZlIT09MCl7bi5pc3ViKGUpfX1yZXR1cm57ZGl2OmEuZGl2LG1vZDpufX1pZihlLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZSk8MCl7cmV0dXJue2RpdjpuZXcgQk4oMCksbW9kOnRoaXN9fWlmKGUubGVuZ3RoPT09MSl7aWYodD09PVwiZGl2XCIpe3JldHVybntkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpudWxsfX1pZih0PT09XCJtb2RcIil7cmV0dXJue2RpdjpudWxsLG1vZDpuZXcgQk4odGhpcy5tb2RybihlLndvcmRzWzBdKSl9fXJldHVybntkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpuZXcgQk4odGhpcy5tb2RybihlLndvcmRzWzBdKSl9fXJldHVybiB0aGlzLl93b3JkRGl2KGUsdCl9O0JOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24gZGl2KGUpe3JldHVybiB0aGlzLmRpdm1vZChlLFwiZGl2XCIsZmFsc2UpLmRpdn07Qk4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbiBtb2QoZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsXCJtb2RcIixmYWxzZSkubW9kfTtCTi5wcm90b3R5cGUudW1vZD1mdW5jdGlvbiB1bW9kKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLFwibW9kXCIsdHJ1ZSkubW9kfTtCTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24gZGl2Um91bmQoZSl7dmFyIHQ9dGhpcy5kaXZtb2QoZSk7aWYodC5tb2QuaXNaZXJvKCkpcmV0dXJuIHQuZGl2O3ZhciByPXQuZGl2Lm5lZ2F0aXZlIT09MD90Lm1vZC5pc3ViKGUpOnQubW9kO3ZhciBpPWUudXNocm4oMSk7dmFyIG49ZS5hbmRsbigxKTt2YXIgYT1yLmNtcChpKTtpZihhPDB8fG49PT0xJiZhPT09MClyZXR1cm4gdC5kaXY7cmV0dXJuIHQuZGl2Lm5lZ2F0aXZlIT09MD90LmRpdi5pc3VibigxKTp0LmRpdi5pYWRkbigxKX07Qk4ucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uIG1vZHJuKGUpe3ZhciB0PWU8MDtpZih0KWU9LWU7YXNzZXJ0KGU8PTY3MTA4ODYzKTt2YXIgcj0oMTw8MjYpJWU7dmFyIGk9MDtmb3IodmFyIG49dGhpcy5sZW5ndGgtMTtuPj0wO24tLSl7aT0ocippKyh0aGlzLndvcmRzW25dfDApKSVlfXJldHVybiB0Py1pOml9O0JOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uIG1vZG4oZSl7cmV0dXJuIHRoaXMubW9kcm4oZSl9O0JOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbiBpZGl2bihlKXt2YXIgdD1lPDA7aWYodCllPS1lO2Fzc2VydChlPD02NzEwODg2Myk7dmFyIHI9MDtmb3IodmFyIGk9dGhpcy5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIG49KHRoaXMud29yZHNbaV18MCkrcio2NzEwODg2NDt0aGlzLndvcmRzW2ldPW4vZXwwO3I9biVlfXRoaXMuX3N0cmlwKCk7cmV0dXJuIHQ/dGhpcy5pbmVnKCk6dGhpc307Qk4ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24gZGl2bihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGUpfTtCTi5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbiBlZ2NkKGUpe2Fzc2VydChlLm5lZ2F0aXZlPT09MCk7YXNzZXJ0KCFlLmlzWmVybygpKTt2YXIgdD10aGlzO3ZhciByPWUuY2xvbmUoKTtpZih0Lm5lZ2F0aXZlIT09MCl7dD10LnVtb2QoZSl9ZWxzZXt0PXQuY2xvbmUoKX12YXIgaT1uZXcgQk4oMSk7dmFyIG49bmV3IEJOKDApO3ZhciBhPW5ldyBCTigwKTt2YXIgcz1uZXcgQk4oMSk7dmFyIG89MDt3aGlsZSh0LmlzRXZlbigpJiZyLmlzRXZlbigpKXt0Lml1c2hybigxKTtyLml1c2hybigxKTsrK299dmFyIGg9ci5jbG9uZSgpO3ZhciB1PXQuY2xvbmUoKTt3aGlsZSghdC5pc1plcm8oKSl7Zm9yKHZhciBkPTAsYz0xOyh0LndvcmRzWzBdJmMpPT09MCYmZDwyNjsrK2QsYzw8PTEpO2lmKGQ+MCl7dC5pdXNocm4oZCk7d2hpbGUoZC0tID4wKXtpZihpLmlzT2RkKCl8fG4uaXNPZGQoKSl7aS5pYWRkKGgpO24uaXN1Yih1KX1pLml1c2hybigxKTtuLml1c2hybigxKX19Zm9yKHZhciBsPTAscD0xOyhyLndvcmRzWzBdJnApPT09MCYmbDwyNjsrK2wscDw8PTEpO2lmKGw+MCl7ci5pdXNocm4obCk7d2hpbGUobC0tID4wKXtpZihhLmlzT2RkKCl8fHMuaXNPZGQoKSl7YS5pYWRkKGgpO3MuaXN1Yih1KX1hLml1c2hybigxKTtzLml1c2hybigxKX19aWYodC5jbXAocik+PTApe3QuaXN1YihyKTtpLmlzdWIoYSk7bi5pc3ViKHMpfWVsc2V7ci5pc3ViKHQpO2EuaXN1YihpKTtzLmlzdWIobil9fXJldHVybnthOmEsYjpzLGdjZDpyLml1c2hsbihvKX19O0JOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24gX2ludm1wKGUpe2Fzc2VydChlLm5lZ2F0aXZlPT09MCk7YXNzZXJ0KCFlLmlzWmVybygpKTt2YXIgdD10aGlzO3ZhciByPWUuY2xvbmUoKTtpZih0Lm5lZ2F0aXZlIT09MCl7dD10LnVtb2QoZSl9ZWxzZXt0PXQuY2xvbmUoKX12YXIgaT1uZXcgQk4oMSk7dmFyIG49bmV3IEJOKDApO3ZhciBhPXIuY2xvbmUoKTt3aGlsZSh0LmNtcG4oMSk+MCYmci5jbXBuKDEpPjApe2Zvcih2YXIgcz0wLG89MTsodC53b3Jkc1swXSZvKT09PTAmJnM8MjY7KytzLG88PD0xKTtpZihzPjApe3QuaXVzaHJuKHMpO3doaWxlKHMtLSA+MCl7aWYoaS5pc09kZCgpKXtpLmlhZGQoYSl9aS5pdXNocm4oMSl9fWZvcih2YXIgaD0wLHU9MTsoci53b3Jkc1swXSZ1KT09PTAmJmg8MjY7KytoLHU8PD0xKTtpZihoPjApe3IuaXVzaHJuKGgpO3doaWxlKGgtLSA+MCl7aWYobi5pc09kZCgpKXtuLmlhZGQoYSl9bi5pdXNocm4oMSl9fWlmKHQuY21wKHIpPj0wKXt0LmlzdWIocik7aS5pc3ViKG4pfWVsc2V7ci5pc3ViKHQpO24uaXN1YihpKX19dmFyIGQ7aWYodC5jbXBuKDEpPT09MCl7ZD1pfWVsc2V7ZD1ufWlmKGQuY21wbigwKTwwKXtkLmlhZGQoZSl9cmV0dXJuIGR9O0JOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24gZ2NkKGUpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGUuYWJzKCk7aWYoZS5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgdD10aGlzLmNsb25lKCk7dmFyIHI9ZS5jbG9uZSgpO3QubmVnYXRpdmU9MDtyLm5lZ2F0aXZlPTA7Zm9yKHZhciBpPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtpKyspe3QuaXVzaHJuKDEpO3IuaXVzaHJuKDEpfWRve3doaWxlKHQuaXNFdmVuKCkpe3QuaXVzaHJuKDEpfXdoaWxlKHIuaXNFdmVuKCkpe3IuaXVzaHJuKDEpfXZhciBuPXQuY21wKHIpO2lmKG48MCl7dmFyIGE9dDt0PXI7cj1hfWVsc2UgaWYobj09PTB8fHIuY21wbigxKT09PTApe2JyZWFrfXQuaXN1YihyKX13aGlsZSh0cnVlKTtyZXR1cm4gci5pdXNobG4oaSl9O0JOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uIGludm0oZSl7cmV0dXJuIHRoaXMuZWdjZChlKS5hLnVtb2QoZSl9O0JOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24gaXNFdmVuKCl7cmV0dXJuKHRoaXMud29yZHNbMF0mMSk9PT0wfTtCTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24gaXNPZGQoKXtyZXR1cm4odGhpcy53b3Jkc1swXSYxKT09PTF9O0JOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbiBhbmRsbihlKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZlfTtCTi5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24gYmluY24oZSl7YXNzZXJ0KHR5cGVvZiBlPT09XCJudW1iZXJcIik7dmFyIHQ9ZSUyNjt2YXIgcj0oZS10KS8yNjt2YXIgaT0xPDx0O2lmKHRoaXMubGVuZ3RoPD1yKXt0aGlzLl9leHBhbmQocisxKTt0aGlzLndvcmRzW3JdfD1pO3JldHVybiB0aGlzfXZhciBuPWk7Zm9yKHZhciBhPXI7biE9PTAmJmE8dGhpcy5sZW5ndGg7YSsrKXt2YXIgcz10aGlzLndvcmRzW2FdfDA7cys9bjtuPXM+Pj4yNjtzJj02NzEwODg2Mzt0aGlzLndvcmRzW2FdPXN9aWYobiE9PTApe3RoaXMud29yZHNbYV09bjt0aGlzLmxlbmd0aCsrfXJldHVybiB0aGlzfTtCTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uIGlzWmVybygpe3JldHVybiB0aGlzLmxlbmd0aD09PTEmJnRoaXMud29yZHNbMF09PT0wfTtCTi5wcm90b3R5cGUuY21wbj1mdW5jdGlvbiBjbXBuKGUpe3ZhciB0PWU8MDtpZih0aGlzLm5lZ2F0aXZlIT09MCYmIXQpcmV0dXJuLTE7aWYodGhpcy5uZWdhdGl2ZT09PTAmJnQpcmV0dXJuIDE7dGhpcy5fc3RyaXAoKTt2YXIgcjtpZih0aGlzLmxlbmd0aD4xKXtyPTF9ZWxzZXtpZih0KXtlPS1lfWFzc2VydChlPD02NzEwODg2MyxcIk51bWJlciBpcyB0b28gYmlnXCIpO3ZhciBpPXRoaXMud29yZHNbMF18MDtyPWk9PT1lPzA6aTxlPy0xOjF9aWYodGhpcy5uZWdhdGl2ZSE9PTApcmV0dXJuLXJ8MDtyZXR1cm4gcn07Qk4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbiBjbXAoZSl7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJmUubmVnYXRpdmU9PT0wKXJldHVybi0xO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZlLm5lZ2F0aXZlIT09MClyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7aWYodGhpcy5uZWdhdGl2ZSE9PTApcmV0dXJuLXR8MDtyZXR1cm4gdH07Qk4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24gdWNtcChlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTt2YXIgdD0wO2Zvcih2YXIgcj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT10aGlzLndvcmRzW3JdfDA7dmFyIG49ZS53b3Jkc1tyXXwwO2lmKGk9PT1uKWNvbnRpbnVlO2lmKGk8bil7dD0tMX1lbHNlIGlmKGk+bil7dD0xfWJyZWFrfXJldHVybiB0fTtCTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uIGd0bihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPT09MX07Qk4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uIGd0KGUpe3JldHVybiB0aGlzLmNtcChlKT09PTF9O0JOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uIGd0ZW4oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH07Qk4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbiBndGUoZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfTtCTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uIGx0bihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPT09LTF9O0JOLnByb3RvdHlwZS5sdD1mdW5jdGlvbiBsdChlKXtyZXR1cm4gdGhpcy5jbXAoZSk9PT0tMX07Qk4ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24gbHRlbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPD0wfTtCTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uIGx0ZShlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9O0JOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24gZXFuKGUpe3JldHVybiB0aGlzLmNtcG4oZSk9PT0wfTtCTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24gZXEoZSl7cmV0dXJuIHRoaXMuY21wKGUpPT09MH07Qk4ucmVkPWZ1bmN0aW9uIHJlZChlKXtyZXR1cm4gbmV3IFJlZChlKX07Qk4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uIHRvUmVkKGUpe2Fzc2VydCghdGhpcy5yZWQsXCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO2Fzc2VydCh0aGlzLm5lZ2F0aXZlPT09MCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzXCIpO3JldHVybiBlLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZSl9O0JOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uIGZyb21SZWQoKXthc3NlcnQodGhpcy5yZWQsXCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO3JldHVybiB0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX07Qk4ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbiBfZm9yY2VSZWQoZSl7dGhpcy5yZWQ9ZTtyZXR1cm4gdGhpc307Qk4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uIGZvcmNlUmVkKGUpe2Fzc2VydCghdGhpcy5yZWQsXCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0XCIpO3JldHVybiB0aGlzLl9mb3JjZVJlZChlKX07Qk4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbiByZWRBZGQoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuYWRkKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uIHJlZElBZGQoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7cmV0dXJuIHRoaXMucmVkLmlhZGQodGhpcyxlKX07Qk4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbiByZWRTdWIoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuc3ViKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uIHJlZElTdWIoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7cmV0dXJuIHRoaXMucmVkLmlzdWIodGhpcyxlKX07Qk4ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbiByZWRTaGwoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTtyZXR1cm4gdGhpcy5yZWQuc2hsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24gcmVkTXVsKGUpe2Fzc2VydCh0aGlzLnJlZCxcInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKTtyZXR1cm4gdGhpcy5yZWQubXVsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uIHJlZElNdWwoZSl7YXNzZXJ0KHRoaXMucmVkLFwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpO3JldHVybiB0aGlzLnJlZC5pbXVsKHRoaXMsZSl9O0JOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24gcmVkU3FyKCl7YXNzZXJ0KHRoaXMucmVkLFwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQuc3FyKHRoaXMpfTtCTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbiByZWRJU3FyKCl7YXNzZXJ0KHRoaXMucmVkLFwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7cmV0dXJuIHRoaXMucmVkLmlzcXIodGhpcyl9O0JOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uIHJlZFNxcnQoKXthc3NlcnQodGhpcy5yZWQsXCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQuc3FydCh0aGlzKX07Qk4ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24gcmVkSW52bSgpe2Fzc2VydCh0aGlzLnJlZCxcInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzXCIpO3RoaXMucmVkLl92ZXJpZnkxKHRoaXMpO3JldHVybiB0aGlzLnJlZC5pbnZtKHRoaXMpfTtCTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uIHJlZE5lZygpe2Fzc2VydCh0aGlzLnJlZCxcInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIik7dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7cmV0dXJuIHRoaXMucmVkLm5lZyh0aGlzKX07Qk4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbiByZWRQb3coZSl7YXNzZXJ0KHRoaXMucmVkJiYhZS5yZWQsXCJyZWRQb3cobm9ybWFsTnVtKVwiKTt0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtyZXR1cm4gdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciB1PXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gTVByaW1lKGUsdCl7dGhpcy5uYW1lPWU7dGhpcy5wPW5ldyBCTih0LDE2KTt0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpO3RoaXMuaz1uZXcgQk4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApO3RoaXMudG1wPXRoaXMuX3RtcCgpfU1QcmltZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbiBfdG1wKCl7dmFyIGU9bmV3IEJOKG51bGwpO2Uud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKTtyZXR1cm4gZX07TVByaW1lLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uIGlyZWR1Y2UoZSl7dmFyIHQ9ZTt2YXIgcjtkb3t0aGlzLnNwbGl0KHQsdGhpcy50bXApO3Q9dGhpcy5pbXVsSyh0KTt0PXQuaWFkZCh0aGlzLnRtcCk7cj10LmJpdExlbmd0aCgpfXdoaWxlKHI+dGhpcy5uKTt2YXIgaT1yPHRoaXMubj8tMTp0LnVjbXAodGhpcy5wKTtpZihpPT09MCl7dC53b3Jkc1swXT0wO3QubGVuZ3RoPTF9ZWxzZSBpZihpPjApe3QuaXN1Yih0aGlzLnApfWVsc2V7aWYodC5zdHJpcCE9PXVuZGVmaW5lZCl7dC5zdHJpcCgpfWVsc2V7dC5fc3RyaXAoKX19cmV0dXJuIHR9O01QcmltZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24gc3BsaXQoZSx0KXtlLml1c2hybih0aGlzLm4sMCx0KX07TVByaW1lLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbiBpbXVsSyhlKXtyZXR1cm4gZS5pbXVsKHRoaXMuayl9O2Z1bmN0aW9uIEsyNTYoKXtNUHJpbWUuY2FsbCh0aGlzLFwiazI1NlwiLFwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmZcIil9aW5oZXJpdHMoSzI1NixNUHJpbWUpO0syNTYucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uIHNwbGl0KGUsdCl7dmFyIHI9NDE5NDMwMzt2YXIgaT1NYXRoLm1pbihlLmxlbmd0aCw5KTtmb3IodmFyIG49MDtuPGk7bisrKXt0LndvcmRzW25dPWUud29yZHNbbl19dC5sZW5ndGg9aTtpZihlLmxlbmd0aDw9OSl7ZS53b3Jkc1swXT0wO2UubGVuZ3RoPTE7cmV0dXJufXZhciBhPWUud29yZHNbOV07dC53b3Jkc1t0Lmxlbmd0aCsrXT1hJnI7Zm9yKG49MTA7bjxlLmxlbmd0aDtuKyspe3ZhciBzPWUud29yZHNbbl18MDtlLndvcmRzW24tMTBdPShzJnIpPDw0fGE+Pj4yMjthPXN9YT4+Pj0yMjtlLndvcmRzW24tMTBdPWE7aWYoYT09PTAmJmUubGVuZ3RoPjEwKXtlLmxlbmd0aC09MTB9ZWxzZXtlLmxlbmd0aC09OX19O0syNTYucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uIGltdWxLKGUpe2Uud29yZHNbZS5sZW5ndGhdPTA7ZS53b3Jkc1tlLmxlbmd0aCsxXT0wO2UubGVuZ3RoKz0yO3ZhciB0PTA7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWUud29yZHNbcl18MDt0Kz1pKjk3NztlLndvcmRzW3JdPXQmNjcxMDg4NjM7dD1pKjY0Kyh0LzY3MTA4ODY0fDApfWlmKGUud29yZHNbZS5sZW5ndGgtMV09PT0wKXtlLmxlbmd0aC0tO2lmKGUud29yZHNbZS5sZW5ndGgtMV09PT0wKXtlLmxlbmd0aC0tfX1yZXR1cm4gZX07ZnVuY3Rpb24gUDIyNCgpe01QcmltZS5jYWxsKHRoaXMsXCJwMjI0XCIsXCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMVwiKX1pbmhlcml0cyhQMjI0LE1QcmltZSk7ZnVuY3Rpb24gUDE5Migpe01QcmltZS5jYWxsKHRoaXMsXCJwMTkyXCIsXCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZlwiKX1pbmhlcml0cyhQMTkyLE1QcmltZSk7ZnVuY3Rpb24gUDI1NTE5KCl7TVByaW1lLmNhbGwodGhpcyxcIjI1NTE5XCIsXCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkXCIpfWluaGVyaXRzKFAyNTUxOSxNUHJpbWUpO1AyNTUxOS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24gaW11bEsoZSl7dmFyIHQ9MDtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9KGUud29yZHNbcl18MCkqMTkrdDt2YXIgbj1pJjY3MTA4ODYzO2k+Pj49MjY7ZS53b3Jkc1tyXT1uO3Q9aX1pZih0IT09MCl7ZS53b3Jkc1tlLmxlbmd0aCsrXT10fXJldHVybiBlfTtCTi5fcHJpbWU9ZnVuY3Rpb24gcHJpbWUoZSl7aWYodVtlXSlyZXR1cm4gdVtlXTt2YXIgcHJpbWU7aWYoZT09PVwiazI1NlwiKXtwcmltZT1uZXcgSzI1Nn1lbHNlIGlmKGU9PT1cInAyMjRcIil7cHJpbWU9bmV3IFAyMjR9ZWxzZSBpZihlPT09XCJwMTkyXCIpe3ByaW1lPW5ldyBQMTkyfWVsc2UgaWYoZT09PVwicDI1NTE5XCIpe3ByaW1lPW5ldyBQMjU1MTl9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHByaW1lIFwiK2UpfXVbZV09cHJpbWU7cmV0dXJuIHByaW1lfTtmdW5jdGlvbiBSZWQoZSl7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXt2YXIgdD1CTi5fcHJpbWUoZSk7dGhpcy5tPXQucDt0aGlzLnByaW1lPXR9ZWxzZXthc3NlcnQoZS5ndG4oMSksXCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDFcIik7dGhpcy5tPWU7dGhpcy5wcmltZT1udWxsfX1SZWQucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uIF92ZXJpZnkxKGUpe2Fzc2VydChlLm5lZ2F0aXZlPT09MCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzXCIpO2Fzc2VydChlLnJlZCxcInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnNcIil9O1JlZC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24gX3ZlcmlmeTIoZSx0KXthc3NlcnQoKGUubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wLFwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXNcIik7YXNzZXJ0KGUucmVkJiZlLnJlZD09PXQucmVkLFwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVyc1wiKX07UmVkLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uIGltb2QoZSl7aWYodGhpcy5wcmltZSlyZXR1cm4gdGhpcy5wcmltZS5pcmVkdWNlKGUpLl9mb3JjZVJlZCh0aGlzKTttb3ZlKGUsZS51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpKTtyZXR1cm4gZX07UmVkLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24gbmVnKGUpe2lmKGUuaXNaZXJvKCkpe3JldHVybiBlLmNsb25lKCl9cmV0dXJuIHRoaXMubS5zdWIoZSkuX2ZvcmNlUmVkKHRoaXMpfTtSZWQucHJvdG90eXBlLmFkZD1mdW5jdGlvbiBhZGQoZSx0KXt0aGlzLl92ZXJpZnkyKGUsdCk7dmFyIHI9ZS5hZGQodCk7aWYoci5jbXAodGhpcy5tKT49MCl7ci5pc3ViKHRoaXMubSl9cmV0dXJuIHIuX2ZvcmNlUmVkKHRoaXMpfTtSZWQucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24gaWFkZChlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLmlhZGQodCk7aWYoci5jbXAodGhpcy5tKT49MCl7ci5pc3ViKHRoaXMubSl9cmV0dXJuIHJ9O1JlZC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uIHN1YihlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLnN1Yih0KTtpZihyLmNtcG4oMCk8MCl7ci5pYWRkKHRoaXMubSl9cmV0dXJuIHIuX2ZvcmNlUmVkKHRoaXMpfTtSZWQucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24gaXN1YihlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLmlzdWIodCk7aWYoci5jbXBuKDApPDApe3IuaWFkZCh0aGlzLm0pfXJldHVybiByfTtSZWQucHJvdG90eXBlLnNobD1mdW5jdGlvbiBzaGwoZSx0KXt0aGlzLl92ZXJpZnkxKGUpO3JldHVybiB0aGlzLmltb2QoZS51c2hsbih0KSl9O1JlZC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbiBpbXVsKGUsdCl7dGhpcy5fdmVyaWZ5MihlLHQpO3JldHVybiB0aGlzLmltb2QoZS5pbXVsKHQpKX07UmVkLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24gbXVsKGUsdCl7dGhpcy5fdmVyaWZ5MihlLHQpO3JldHVybiB0aGlzLmltb2QoZS5tdWwodCkpfTtSZWQucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24gaXNxcihlKXtyZXR1cm4gdGhpcy5pbXVsKGUsZS5jbG9uZSgpKX07UmVkLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24gc3FyKGUpe3JldHVybiB0aGlzLm11bChlLGUpfTtSZWQucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24gc3FydChlKXtpZihlLmlzWmVybygpKXJldHVybiBlLmNsb25lKCk7dmFyIHQ9dGhpcy5tLmFuZGxuKDMpO2Fzc2VydCh0JTI9PT0xKTtpZih0PT09Myl7dmFyIHI9dGhpcy5tLmFkZChuZXcgQk4oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZSxyKX12YXIgaT10aGlzLm0uc3VibigxKTt2YXIgbj0wO3doaWxlKCFpLmlzWmVybygpJiZpLmFuZGxuKDEpPT09MCl7bisrO2kuaXVzaHJuKDEpfWFzc2VydCghaS5pc1plcm8oKSk7dmFyIGE9bmV3IEJOKDEpLnRvUmVkKHRoaXMpO3ZhciBzPWEucmVkTmVnKCk7dmFyIG89dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpO3ZhciBoPXRoaXMubS5iaXRMZW5ndGgoKTtoPW5ldyBCTigyKmgqaCkudG9SZWQodGhpcyk7d2hpbGUodGhpcy5wb3coaCxvKS5jbXAocykhPT0wKXtoLnJlZElBZGQocyl9dmFyIHU9dGhpcy5wb3coaCxpKTt2YXIgZD10aGlzLnBvdyhlLGkuYWRkbigxKS5pdXNocm4oMSkpO3ZhciBjPXRoaXMucG93KGUsaSk7dmFyIGw9bjt3aGlsZShjLmNtcChhKSE9PTApe3ZhciBwPWM7Zm9yKHZhciB2PTA7cC5jbXAoYSkhPT0wO3YrKyl7cD1wLnJlZFNxcigpfWFzc2VydCh2PGwpO3ZhciBiPXRoaXMucG93KHUsbmV3IEJOKDEpLml1c2hsbihsLXYtMSkpO2Q9ZC5yZWRNdWwoYik7dT1iLnJlZFNxcigpO2M9Yy5yZWRNdWwodSk7bD12fXJldHVybiBkfTtSZWQucHJvdG90eXBlLmludm09ZnVuY3Rpb24gaW52bShlKXt2YXIgdD1lLl9pbnZtcCh0aGlzLm0pO2lmKHQubmVnYXRpdmUhPT0wKXt0Lm5lZ2F0aXZlPTA7cmV0dXJuIHRoaXMuaW1vZCh0KS5yZWROZWcoKX1lbHNle3JldHVybiB0aGlzLmltb2QodCl9fTtSZWQucHJvdG90eXBlLnBvdz1mdW5jdGlvbiBwb3coZSx0KXtpZih0LmlzWmVybygpKXJldHVybiBuZXcgQk4oMSkudG9SZWQodGhpcyk7aWYodC5jbXBuKDEpPT09MClyZXR1cm4gZS5jbG9uZSgpO3ZhciByPTQ7dmFyIGk9bmV3IEFycmF5KDE8PHIpO2lbMF09bmV3IEJOKDEpLnRvUmVkKHRoaXMpO2lbMV09ZTtmb3IodmFyIG49MjtuPGkubGVuZ3RoO24rKyl7aVtuXT10aGlzLm11bChpW24tMV0sZSl9dmFyIGE9aVswXTt2YXIgcz0wO3ZhciBvPTA7dmFyIGg9dC5iaXRMZW5ndGgoKSUyNjtpZihoPT09MCl7aD0yNn1mb3Iobj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgdT10LndvcmRzW25dO2Zvcih2YXIgZD1oLTE7ZD49MDtkLS0pe3ZhciBjPXU+PmQmMTtpZihhIT09aVswXSl7YT10aGlzLnNxcihhKX1pZihjPT09MCYmcz09PTApe289MDtjb250aW51ZX1zPDw9MTtzfD1jO28rKztpZihvIT09ciYmKG4hPT0wfHxkIT09MCkpY29udGludWU7YT10aGlzLm11bChhLGlbc10pO289MDtzPTB9aD0yNn1yZXR1cm4gYX07UmVkLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24gY29udmVydFRvKGUpe3ZhciB0PWUudW1vZCh0aGlzLm0pO3JldHVybiB0PT09ZT90LmNsb25lKCk6dH07UmVkLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbiBjb252ZXJ0RnJvbShlKXt2YXIgdD1lLmNsb25lKCk7dC5yZWQ9bnVsbDtyZXR1cm4gdH07Qk4ubW9udD1mdW5jdGlvbiBtb250KGUpe3JldHVybiBuZXcgTW9udChlKX07ZnVuY3Rpb24gTW9udChlKXtSZWQuY2FsbCh0aGlzLGUpO3RoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpO2lmKHRoaXMuc2hpZnQlMjYhPT0wKXt0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2fXRoaXMucj1uZXcgQk4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpO3RoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSk7dGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKTt0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pO3RoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpO3RoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9aW5oZXJpdHMoTW9udCxSZWQpO01vbnQucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbiBjb252ZXJ0VG8oZSl7cmV0dXJuIHRoaXMuaW1vZChlLnVzaGxuKHRoaXMuc2hpZnQpKX07TW9udC5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24gY29udmVydEZyb20oZSl7dmFyIHQ9dGhpcy5pbW9kKGUubXVsKHRoaXMucmludikpO3QucmVkPW51bGw7cmV0dXJuIHR9O01vbnQucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24gaW11bChlLHQpe2lmKGUuaXNaZXJvKCl8fHQuaXNaZXJvKCkpe2Uud29yZHNbMF09MDtlLmxlbmd0aD0xO3JldHVybiBlfXZhciByPWUuaW11bCh0KTt2YXIgaT1yLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKTt2YXIgbj1yLmlzdWIoaSkuaXVzaHJuKHRoaXMuc2hpZnQpO3ZhciBhPW47aWYobi5jbXAodGhpcy5tKT49MCl7YT1uLmlzdWIodGhpcy5tKX1lbHNlIGlmKG4uY21wbigwKTwwKXthPW4uaWFkZCh0aGlzLm0pfXJldHVybiBhLl9mb3JjZVJlZCh0aGlzKX07TW9udC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIG11bChlLHQpe2lmKGUuaXNaZXJvKCl8fHQuaXNaZXJvKCkpcmV0dXJuIG5ldyBCTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIHI9ZS5tdWwodCk7dmFyIGk9ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSk7dmFyIG49ci5pc3ViKGkpLml1c2hybih0aGlzLnNoaWZ0KTt2YXIgYT1uO2lmKG4uY21wKHRoaXMubSk+PTApe2E9bi5pc3ViKHRoaXMubSl9ZWxzZSBpZihuLmNtcG4oMCk8MCl7YT1uLmlhZGQodGhpcy5tKX1yZXR1cm4gYS5fZm9yY2VSZWQodGhpcyl9O01vbnQucHJvdG90eXBlLmludm09ZnVuY3Rpb24gaW52bShlKXt2YXIgdD10aGlzLmltb2QoZS5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpO3JldHVybiB0Ll9mb3JjZVJlZCh0aGlzKX19KShmYWxzZXx8ZSx0aGlzKX0sMzUwMDpmdW5jdGlvbihlLHQscil7dmFyIGk7ZS5leHBvcnRzPWZ1bmN0aW9uIHJhbmQoZSl7aWYoIWkpaT1uZXcgUmFuZChudWxsKTtyZXR1cm4gaS5nZW5lcmF0ZShlKX07ZnVuY3Rpb24gUmFuZChlKXt0aGlzLnJhbmQ9ZX1lLmV4cG9ydHMuUmFuZD1SYW5kO1JhbmQucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uIGdlbmVyYXRlKGUpe3JldHVybiB0aGlzLl9yYW5kKGUpfTtSYW5kLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbiBfcmFuZChlKXtpZih0aGlzLnJhbmQuZ2V0Qnl0ZXMpcmV0dXJuIHRoaXMucmFuZC5nZXRCeXRlcyhlKTt2YXIgdD1uZXcgVWludDhBcnJheShlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdPXRoaXMucmFuZC5nZXRCeXRlKCk7cmV0dXJuIHR9O2lmKHR5cGVvZiBzZWxmPT09XCJvYmplY3RcIil7aWYoc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl7UmFuZC5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24gX3JhbmQoZSl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSk7c2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHQpO3JldHVybiB0fX1lbHNlIGlmKHNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtSYW5kLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbiBfcmFuZChlKXt2YXIgdD1uZXcgVWludDhBcnJheShlKTtzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KTtyZXR1cm4gdH19ZWxzZSBpZih0eXBlb2Ygd2luZG93PT09XCJvYmplY3RcIil7UmFuZC5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJOb3QgaW1wbGVtZW50ZWQgeWV0XCIpfX19ZWxzZXt0cnl7dmFyIG49cig2MTEzKTtpZih0eXBlb2Ygbi5yYW5kb21CeXRlcyE9PVwiZnVuY3Rpb25cIil0aHJvdyBuZXcgRXJyb3IoXCJOb3Qgc3VwcG9ydGVkXCIpO1JhbmQucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uIF9yYW5kKGUpe3JldHVybiBuLnJhbmRvbUJ5dGVzKGUpfX1jYXRjaChlKXt9fX0sMTM4NzpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2OTExKS5CdWZmZXI7ZnVuY3Rpb24gYXNVSW50MzJBcnJheShlKXtpZighaS5pc0J1ZmZlcihlKSllPWkuZnJvbShlKTt2YXIgdD1lLmxlbmd0aC80fDA7dmFyIHI9bmV3IEFycmF5KHQpO2Zvcih2YXIgbj0wO248dDtuKyspe3Jbbl09ZS5yZWFkVUludDMyQkUobio0KX1yZXR1cm4gcn1mdW5jdGlvbiBzY3J1YlZlYyhlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO2UrKyl7ZVt0XT0wfX1mdW5jdGlvbiBjcnlwdEJsb2NrKGUsdCxyLGksbil7dmFyIGE9clswXTt2YXIgcz1yWzFdO3ZhciBvPXJbMl07dmFyIGg9clszXTt2YXIgdT1lWzBdXnRbMF07dmFyIGQ9ZVsxXV50WzFdO3ZhciBjPWVbMl1edFsyXTt2YXIgbD1lWzNdXnRbM107dmFyIHAsdixiLG07dmFyIHk9NDtmb3IodmFyIGc9MTtnPG47ZysrKXtwPWFbdT4+PjI0XV5zW2Q+Pj4xNiYyNTVdXm9bYz4+PjgmMjU1XV5oW2wmMjU1XV50W3krK107dj1hW2Q+Pj4yNF1ec1tjPj4+MTYmMjU1XV5vW2w+Pj44JjI1NV1eaFt1JjI1NV1edFt5KytdO2I9YVtjPj4+MjRdXnNbbD4+PjE2JjI1NV1eb1t1Pj4+OCYyNTVdXmhbZCYyNTVdXnRbeSsrXTttPWFbbD4+PjI0XV5zW3U+Pj4xNiYyNTVdXm9bZD4+PjgmMjU1XV5oW2MmMjU1XV50W3krK107dT1wO2Q9djtjPWI7bD1tfXA9KGlbdT4+PjI0XTw8MjR8aVtkPj4+MTYmMjU1XTw8MTZ8aVtjPj4+OCYyNTVdPDw4fGlbbCYyNTVdKV50W3krK107dj0oaVtkPj4+MjRdPDwyNHxpW2M+Pj4xNiYyNTVdPDwxNnxpW2w+Pj44JjI1NV08PDh8aVt1JjI1NV0pXnRbeSsrXTtiPShpW2M+Pj4yNF08PDI0fGlbbD4+PjE2JjI1NV08PDE2fGlbdT4+PjgmMjU1XTw8OHxpW2QmMjU1XSledFt5KytdO209KGlbbD4+PjI0XTw8MjR8aVt1Pj4+MTYmMjU1XTw8MTZ8aVtkPj4+OCYyNTVdPDw4fGlbYyYyNTVdKV50W3krK107cD1wPj4+MDt2PXY+Pj4wO2I9Yj4+PjA7bT1tPj4+MDtyZXR1cm5bcCx2LGIsbV19dmFyIG49WzAsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTRdO3ZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IEFycmF5KDI1Nik7Zm9yKHZhciB0PTA7dDwyNTY7dCsrKXtpZih0PDEyOCl7ZVt0XT10PDwxfWVsc2V7ZVt0XT10PDwxXjI4M319dmFyIHI9W107dmFyIGk9W107dmFyIG49W1tdLFtdLFtdLFtdXTt2YXIgYT1bW10sW10sW10sW11dO3ZhciBzPTA7dmFyIG89MDtmb3IodmFyIGg9MDtoPDI1NjsrK2gpe3ZhciB1PW9ebzw8MV5vPDwyXm88PDNebzw8NDt1PXU+Pj44XnUmMjU1Xjk5O3Jbc109dTtpW3VdPXM7dmFyIGQ9ZVtzXTt2YXIgYz1lW2RdO3ZhciBsPWVbY107dmFyIHA9ZVt1XSoyNTdedSoxNjg0MzAwODtuWzBdW3NdPXA8PDI0fHA+Pj44O25bMV1bc109cDw8MTZ8cD4+PjE2O25bMl1bc109cDw8OHxwPj4+MjQ7blszXVtzXT1wO3A9bCoxNjg0MzAwOV5jKjY1NTM3XmQqMjU3XnMqMTY4NDMwMDg7YVswXVt1XT1wPDwyNHxwPj4+ODthWzFdW3VdPXA8PDE2fHA+Pj4xNjthWzJdW3VdPXA8PDh8cD4+PjI0O2FbM11bdV09cDtpZihzPT09MCl7cz1vPTF9ZWxzZXtzPWReZVtlW2VbbF5kXV1dO29ePWVbZVtvXV19fXJldHVybntTQk9YOnIsSU5WX1NCT1g6aSxTVUJfTUlYOm4sSU5WX1NVQl9NSVg6YX19KCk7ZnVuY3Rpb24gQUVTKGUpe3RoaXMuX2tleT1hc1VJbnQzMkFycmF5KGUpO3RoaXMuX3Jlc2V0KCl9QUVTLmJsb2NrU2l6ZT00KjQ7QUVTLmtleVNpemU9MjU2Lzg7QUVTLnByb3RvdHlwZS5ibG9ja1NpemU9QUVTLmJsb2NrU2l6ZTtBRVMucHJvdG90eXBlLmtleVNpemU9QUVTLmtleVNpemU7QUVTLnByb3RvdHlwZS5fcmVzZXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9rZXk7dmFyIHQ9ZS5sZW5ndGg7dmFyIHI9dCs2O3ZhciBpPShyKzEpKjQ7dmFyIHM9W107Zm9yKHZhciBvPTA7bzx0O28rKyl7c1tvXT1lW29dfWZvcihvPXQ7bzxpO28rKyl7dmFyIGg9c1tvLTFdO2lmKG8ldD09PTApe2g9aDw8OHxoPj4+MjQ7aD1hLlNCT1hbaD4+PjI0XTw8MjR8YS5TQk9YW2g+Pj4xNiYyNTVdPDwxNnxhLlNCT1hbaD4+PjgmMjU1XTw8OHxhLlNCT1hbaCYyNTVdO2hePW5bby90fDBdPDwyNH1lbHNlIGlmKHQ+NiYmbyV0PT09NCl7aD1hLlNCT1hbaD4+PjI0XTw8MjR8YS5TQk9YW2g+Pj4xNiYyNTVdPDwxNnxhLlNCT1hbaD4+PjgmMjU1XTw8OHxhLlNCT1hbaCYyNTVdfXNbb109c1tvLXRdXmh9dmFyIHU9W107Zm9yKHZhciBkPTA7ZDxpO2QrKyl7dmFyIGM9aS1kO3ZhciBsPXNbYy0oZCU0PzA6NCldO2lmKGQ8NHx8Yzw9NCl7dVtkXT1sfWVsc2V7dVtkXT1hLklOVl9TVUJfTUlYWzBdW2EuU0JPWFtsPj4+MjRdXV5hLklOVl9TVUJfTUlYWzFdW2EuU0JPWFtsPj4+MTYmMjU1XV1eYS5JTlZfU1VCX01JWFsyXVthLlNCT1hbbD4+PjgmMjU1XV1eYS5JTlZfU1VCX01JWFszXVthLlNCT1hbbCYyNTVdXX19dGhpcy5fblJvdW5kcz1yO3RoaXMuX2tleVNjaGVkdWxlPXM7dGhpcy5faW52S2V5U2NoZWR1bGU9dX07QUVTLnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXc9ZnVuY3Rpb24oZSl7ZT1hc1VJbnQzMkFycmF5KGUpO3JldHVybiBjcnlwdEJsb2NrKGUsdGhpcy5fa2V5U2NoZWR1bGUsYS5TVUJfTUlYLGEuU0JPWCx0aGlzLl9uUm91bmRzKX07QUVTLnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbmNyeXB0QmxvY2tSYXcoZSk7dmFyIHI9aS5hbGxvY1Vuc2FmZSgxNik7ci53cml0ZVVJbnQzMkJFKHRbMF0sMCk7ci53cml0ZVVJbnQzMkJFKHRbMV0sNCk7ci53cml0ZVVJbnQzMkJFKHRbMl0sOCk7ci53cml0ZVVJbnQzMkJFKHRbM10sMTIpO3JldHVybiByfTtBRVMucHJvdG90eXBlLmRlY3J5cHRCbG9jaz1mdW5jdGlvbihlKXtlPWFzVUludDMyQXJyYXkoZSk7dmFyIHQ9ZVsxXTtlWzFdPWVbM107ZVszXT10O3ZhciByPWNyeXB0QmxvY2soZSx0aGlzLl9pbnZLZXlTY2hlZHVsZSxhLklOVl9TVUJfTUlYLGEuSU5WX1NCT1gsdGhpcy5fblJvdW5kcyk7dmFyIG49aS5hbGxvY1Vuc2FmZSgxNik7bi53cml0ZVVJbnQzMkJFKHJbMF0sMCk7bi53cml0ZVVJbnQzMkJFKHJbM10sNCk7bi53cml0ZVVJbnQzMkJFKHJbMl0sOCk7bi53cml0ZVVJbnQzMkJFKHJbMV0sMTIpO3JldHVybiBufTtBRVMucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7c2NydWJWZWModGhpcy5fa2V5U2NoZWR1bGUpO3NjcnViVmVjKHRoaXMuX2ludktleVNjaGVkdWxlKTtzY3J1YlZlYyh0aGlzLl9rZXkpfTtlLmV4cG9ydHMuQUVTPUFFU30sNjYyNDpmdW5jdGlvbihlLHQscil7dmFyIGk9cigxMzg3KTt2YXIgbj1yKDY5MTEpLkJ1ZmZlcjt2YXIgYT1yKDEwNDMpO3ZhciBzPXIoMzc4Mik7dmFyIG89cig3MjI1KTt2YXIgaD1yKDQ3MzQpO3ZhciB1PXIoNTk4KTtmdW5jdGlvbiB4b3JUZXN0KGUsdCl7dmFyIHI9MDtpZihlLmxlbmd0aCE9PXQubGVuZ3RoKXIrKzt2YXIgaT1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKHZhciBuPTA7bjxpOysrbil7cis9ZVtuXV50W25dfXJldHVybiByfWZ1bmN0aW9uIGNhbGNJdihlLHQscil7aWYodC5sZW5ndGg9PT0xMil7ZS5fZmluSUQ9bi5jb25jYXQoW3Qsbi5mcm9tKFswLDAsMCwxXSldKTtyZXR1cm4gbi5jb25jYXQoW3Qsbi5mcm9tKFswLDAsMCwyXSldKX12YXIgaT1uZXcgbyhyKTt2YXIgYT10Lmxlbmd0aDt2YXIgcz1hJTE2O2kudXBkYXRlKHQpO2lmKHMpe3M9MTYtcztpLnVwZGF0ZShuLmFsbG9jKHMsMCkpfWkudXBkYXRlKG4uYWxsb2MoOCwwKSk7dmFyIGg9YSo4O3ZhciBkPW4uYWxsb2MoOCk7ZC53cml0ZVVJbnRCRShoLDAsOCk7aS51cGRhdGUoZCk7ZS5fZmluSUQ9aS5zdGF0ZTt2YXIgYz1uLmZyb20oZS5fZmluSUQpO3UoYyk7cmV0dXJuIGN9ZnVuY3Rpb24gU3RyZWFtQ2lwaGVyKGUsdCxyLHMpe2EuY2FsbCh0aGlzKTt2YXIgaD1uLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpLkFFUyh0KTt2YXIgdT10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKGgpO3RoaXMuX2doYXNoPW5ldyBvKHUpO3I9Y2FsY0l2KHRoaXMscix1KTt0aGlzLl9wcmV2PW4uZnJvbShyKTt0aGlzLl9jYWNoZT1uLmFsbG9jVW5zYWZlKDApO3RoaXMuX3NlY0NhY2hlPW4uYWxsb2NVbnNhZmUoMCk7dGhpcy5fZGVjcnlwdD1zO3RoaXMuX2FsZW49MDt0aGlzLl9sZW49MDt0aGlzLl9tb2RlPWU7dGhpcy5fYXV0aFRhZz1udWxsO3RoaXMuX2NhbGxlZD1mYWxzZX1zKFN0cmVhbUNpcGhlcixhKTtTdHJlYW1DaXBoZXIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuX2NhbGxlZCYmdGhpcy5fYWxlbil7dmFyIHQ9MTYtdGhpcy5fYWxlbiUxNjtpZih0PDE2KXt0PW4uYWxsb2ModCwwKTt0aGlzLl9naGFzaC51cGRhdGUodCl9fXRoaXMuX2NhbGxlZD10cnVlO3ZhciByPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLGUpO2lmKHRoaXMuX2RlY3J5cHQpe3RoaXMuX2doYXNoLnVwZGF0ZShlKX1lbHNle3RoaXMuX2doYXNoLnVwZGF0ZShyKX10aGlzLl9sZW4rPWUubGVuZ3RoO3JldHVybiByfTtTdHJlYW1DaXBoZXIucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFnKXRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YVwiKTt2YXIgZT1oKHRoaXMuX2doYXNoLmZpbmFsKHRoaXMuX2FsZW4qOCx0aGlzLl9sZW4qOCksdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0aGlzLl9maW5JRCkpO2lmKHRoaXMuX2RlY3J5cHQmJnhvclRlc3QoZSx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGFcIik7dGhpcy5fYXV0aFRhZz1lO3RoaXMuX2NpcGhlci5zY3J1YigpfTtTdHJlYW1DaXBoZXIucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24gZ2V0QXV0aFRhZygpe2lmKHRoaXMuX2RlY3J5cHR8fCFuLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlXCIpO3JldHVybiB0aGlzLl9hdXRoVGFnfTtTdHJlYW1DaXBoZXIucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24gc2V0QXV0aFRhZyhlKXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZVwiKTt0aGlzLl9hdXRoVGFnPWV9O1N0cmVhbUNpcGhlci5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uIHNldEFBRChlKXtpZih0aGlzLl9jYWxsZWQpdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlXCIpO3RoaXMuX2doYXNoLnVwZGF0ZShlKTt0aGlzLl9hbGVuKz1lLmxlbmd0aH07ZS5leHBvcnRzPVN0cmVhbUNpcGhlcn0sNjU5NDpmdW5jdGlvbihlLHQscil7dmFyIGk9cigyKTt2YXIgbj1yKDI1OTgpO3ZhciBhPXIoNTg2Nik7ZnVuY3Rpb24gZ2V0Q2lwaGVycygpe3JldHVybiBPYmplY3Qua2V5cyhhKX10LmNyZWF0ZUNpcGhlcj10LkNpcGhlcj1pLmNyZWF0ZUNpcGhlcjt0LmNyZWF0ZUNpcGhlcml2PXQuQ2lwaGVyaXY9aS5jcmVhdGVDaXBoZXJpdjt0LmNyZWF0ZURlY2lwaGVyPXQuRGVjaXBoZXI9bi5jcmVhdGVEZWNpcGhlcjt0LmNyZWF0ZURlY2lwaGVyaXY9dC5EZWNpcGhlcml2PW4uY3JlYXRlRGVjaXBoZXJpdjt0Lmxpc3RDaXBoZXJzPXQuZ2V0Q2lwaGVycz1nZXRDaXBoZXJzfSwyNTk4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDY2MjQpO3ZhciBuPXIoNjkxMSkuQnVmZmVyO3ZhciBhPXIoNjM3MCk7dmFyIHM9cigxMjYpO3ZhciBvPXIoMTA0Myk7dmFyIGg9cigxMzg3KTt2YXIgdT1yKDgzNjgpO3ZhciBkPXIoMzc4Mik7ZnVuY3Rpb24gRGVjaXBoZXIoZSx0LHIpe28uY2FsbCh0aGlzKTt0aGlzLl9jYWNoZT1uZXcgU3BsaXR0ZXI7dGhpcy5fbGFzdD12b2lkIDA7dGhpcy5fY2lwaGVyPW5ldyBoLkFFUyh0KTt0aGlzLl9wcmV2PW4uZnJvbShyKTt0aGlzLl9tb2RlPWU7dGhpcy5fYXV0b3BhZGRpbmc9dHJ1ZX1kKERlY2lwaGVyLG8pO0RlY2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2NhY2hlLmFkZChlKTt2YXIgdDt2YXIgcjt2YXIgaT1bXTt3aGlsZSh0PXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZykpe3I9dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsdCk7aS5wdXNoKHIpfXJldHVybiBuLmNvbmNhdChpKX07RGVjaXBoZXIucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpe3JldHVybiB1bnBhZCh0aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxlKSl9ZWxzZSBpZihlKXt0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGhcIil9fTtEZWNpcGhlci5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oZSl7dGhpcy5fYXV0b3BhZGRpbmc9ISFlO3JldHVybiB0aGlzfTtmdW5jdGlvbiBTcGxpdHRlcigpe3RoaXMuY2FjaGU9bi5hbGxvY1Vuc2FmZSgwKX1TcGxpdHRlci5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3RoaXMuY2FjaGU9bi5jb25jYXQoW3RoaXMuY2FjaGUsZV0pfTtTcGxpdHRlci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE2KXt0PXRoaXMuY2FjaGUuc2xpY2UoMCwxNik7dGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KTtyZXR1cm4gdH19ZWxzZXtpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpe3Q9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTt0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpO3JldHVybiB0fX1yZXR1cm4gbnVsbH07U3BsaXR0ZXIucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9O2Z1bmN0aW9uIHVucGFkKGUpe3ZhciB0PWVbMTVdO2lmKHQ8MXx8dD4xNil7dGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIGRlY3J5cHQgZGF0YVwiKX12YXIgcj0tMTt3aGlsZSgrK3I8dCl7aWYoZVtyKygxNi10KV0hPT10KXt0aHJvdyBuZXcgRXJyb3IoXCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhXCIpfX1pZih0PT09MTYpcmV0dXJuO3JldHVybiBlLnNsaWNlKDAsMTYtdCl9ZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXJpdihlLHQscil7dmFyIG89YVtlLnRvTG93ZXJDYXNlKCldO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHN1aXRlIHR5cGVcIik7aWYodHlwZW9mIHI9PT1cInN0cmluZ1wiKXI9bi5mcm9tKHIpO2lmKG8ubW9kZSE9PVwiR0NNXCImJnIubGVuZ3RoIT09by5pdil0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBpdiBsZW5ndGggXCIrci5sZW5ndGgpO2lmKHR5cGVvZiB0PT09XCJzdHJpbmdcIil0PW4uZnJvbSh0KTtpZih0Lmxlbmd0aCE9PW8ua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQga2V5IGxlbmd0aCBcIit0Lmxlbmd0aCk7aWYoby50eXBlPT09XCJzdHJlYW1cIil7cmV0dXJuIG5ldyBzKG8ubW9kdWxlLHQscix0cnVlKX1lbHNlIGlmKG8udHlwZT09PVwiYXV0aFwiKXtyZXR1cm4gbmV3IGkoby5tb2R1bGUsdCxyLHRydWUpfXJldHVybiBuZXcgRGVjaXBoZXIoby5tb2R1bGUsdCxyKX1mdW5jdGlvbiBjcmVhdGVEZWNpcGhlcihlLHQpe3ZhciByPWFbZS50b0xvd2VyQ2FzZSgpXTtpZighcil0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBzdWl0ZSB0eXBlXCIpO3ZhciBpPXUodCxmYWxzZSxyLmtleSxyLml2KTtyZXR1cm4gY3JlYXRlRGVjaXBoZXJpdihlLGkua2V5LGkuaXYpfXQuY3JlYXRlRGVjaXBoZXI9Y3JlYXRlRGVjaXBoZXI7dC5jcmVhdGVEZWNpcGhlcml2PWNyZWF0ZURlY2lwaGVyaXZ9LDI6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjM3MCk7dmFyIG49cig2NjI0KTt2YXIgYT1yKDY5MTEpLkJ1ZmZlcjt2YXIgcz1yKDEyNik7dmFyIG89cigxMDQzKTt2YXIgaD1yKDEzODcpO3ZhciB1PXIoODM2OCk7dmFyIGQ9cigzNzgyKTtmdW5jdGlvbiBDaXBoZXIoZSx0LHIpe28uY2FsbCh0aGlzKTt0aGlzLl9jYWNoZT1uZXcgU3BsaXR0ZXI7dGhpcy5fY2lwaGVyPW5ldyBoLkFFUyh0KTt0aGlzLl9wcmV2PWEuZnJvbShyKTt0aGlzLl9tb2RlPWU7dGhpcy5fYXV0b3BhZGRpbmc9dHJ1ZX1kKENpcGhlcixvKTtDaXBoZXIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy5fY2FjaGUuYWRkKGUpO3ZhciB0O3ZhciByO3ZhciBpPVtdO3doaWxlKHQ9dGhpcy5fY2FjaGUuZ2V0KCkpe3I9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsdCk7aS5wdXNoKHIpfXJldHVybiBhLmNvbmNhdChpKX07dmFyIGM9YS5hbGxvYygxNiwxNik7Q2lwaGVyLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXtlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLGUpO3RoaXMuX2NpcGhlci5zY3J1YigpO3JldHVybiBlfWlmKCFlLmVxdWFscyhjKSl7dGhpcy5fY2lwaGVyLnNjcnViKCk7dGhyb3cgbmV3IEVycm9yKFwiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoXCIpfX07Q2lwaGVyLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbihlKXt0aGlzLl9hdXRvcGFkZGluZz0hIWU7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIFNwbGl0dGVyKCl7dGhpcy5jYWNoZT1hLmFsbG9jVW5zYWZlKDApfVNwbGl0dGVyLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7dGhpcy5jYWNoZT1hLmNvbmNhdChbdGhpcy5jYWNoZSxlXSl9O1NwbGl0dGVyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aD4xNSl7dmFyIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTt0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpO3JldHVybiBlfXJldHVybiBudWxsfTtTcGxpdHRlci5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt2YXIgZT0xNi10aGlzLmNhY2hlLmxlbmd0aDt2YXIgdD1hLmFsbG9jVW5zYWZlKGUpO3ZhciByPS0xO3doaWxlKCsrcjxlKXt0LndyaXRlVUludDgoZSxyKX1yZXR1cm4gYS5jb25jYXQoW3RoaXMuY2FjaGUsdF0pfTtmdW5jdGlvbiBjcmVhdGVDaXBoZXJpdihlLHQscil7dmFyIG89aVtlLnRvTG93ZXJDYXNlKCldO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHN1aXRlIHR5cGVcIik7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXQ9YS5mcm9tKHQpO2lmKHQubGVuZ3RoIT09by5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBrZXkgbGVuZ3RoIFwiK3QubGVuZ3RoKTtpZih0eXBlb2Ygcj09PVwic3RyaW5nXCIpcj1hLmZyb20ocik7aWYoby5tb2RlIT09XCJHQ01cIiYmci5sZW5ndGghPT1vLml2KXRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIGl2IGxlbmd0aCBcIityLmxlbmd0aCk7aWYoby50eXBlPT09XCJzdHJlYW1cIil7cmV0dXJuIG5ldyBzKG8ubW9kdWxlLHQscil9ZWxzZSBpZihvLnR5cGU9PT1cImF1dGhcIil7cmV0dXJuIG5ldyBuKG8ubW9kdWxlLHQscil9cmV0dXJuIG5ldyBDaXBoZXIoby5tb2R1bGUsdCxyKX1mdW5jdGlvbiBjcmVhdGVDaXBoZXIoZSx0KXt2YXIgcj1pW2UudG9Mb3dlckNhc2UoKV07aWYoIXIpdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgc3VpdGUgdHlwZVwiKTt2YXIgbj11KHQsZmFsc2Usci5rZXksci5pdik7cmV0dXJuIGNyZWF0ZUNpcGhlcml2KGUsbi5rZXksbi5pdil9dC5jcmVhdGVDaXBoZXJpdj1jcmVhdGVDaXBoZXJpdjt0LmNyZWF0ZUNpcGhlcj1jcmVhdGVDaXBoZXJ9LDcyMjU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjkxMSkuQnVmZmVyO3ZhciBuPWkuYWxsb2MoMTYsMCk7ZnVuY3Rpb24gdG9BcnJheShlKXtyZXR1cm5bZS5yZWFkVUludDMyQkUoMCksZS5yZWFkVUludDMyQkUoNCksZS5yZWFkVUludDMyQkUoOCksZS5yZWFkVUludDMyQkUoMTIpXX1mdW5jdGlvbiBmcm9tQXJyYXkoZSl7dmFyIHQ9aS5hbGxvY1Vuc2FmZSgxNik7dC53cml0ZVVJbnQzMkJFKGVbMF0+Pj4wLDApO3Qud3JpdGVVSW50MzJCRShlWzFdPj4+MCw0KTt0LndyaXRlVUludDMyQkUoZVsyXT4+PjAsOCk7dC53cml0ZVVJbnQzMkJFKGVbM10+Pj4wLDEyKTtyZXR1cm4gdH1mdW5jdGlvbiBHSEFTSChlKXt0aGlzLmg9ZTt0aGlzLnN0YXRlPWkuYWxsb2MoMTYsMCk7dGhpcy5jYWNoZT1pLmFsbG9jVW5zYWZlKDApfUdIQVNILnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihlKXt2YXIgdD0tMTt3aGlsZSgrK3Q8ZS5sZW5ndGgpe3RoaXMuc3RhdGVbdF1ePWVbdF19dGhpcy5fbXVsdGlwbHkoKX07R0hBU0gucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe3ZhciBlPXRvQXJyYXkodGhpcy5oKTt2YXIgdD1bMCwwLDAsMF07dmFyIHIsaSxuO3ZhciBhPS0xO3doaWxlKCsrYTwxMjgpe2k9KHRoaXMuc3RhdGVbfn4oYS84KV0mMTw8Ny1hJTgpIT09MDtpZihpKXt0WzBdXj1lWzBdO3RbMV1ePWVbMV07dFsyXV49ZVsyXTt0WzNdXj1lWzNdfW49KGVbM10mMSkhPT0wO2ZvcihyPTM7cj4wO3ItLSl7ZVtyXT1lW3JdPj4+MXwoZVtyLTFdJjEpPDwzMX1lWzBdPWVbMF0+Pj4xO2lmKG4pe2VbMF09ZVswXV4yMjU8PDI0fX10aGlzLnN0YXRlPWZyb21BcnJheSh0KX07R0hBU0gucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLmNhY2hlPWkuY29uY2F0KFt0aGlzLmNhY2hlLGVdKTt2YXIgdDt3aGlsZSh0aGlzLmNhY2hlLmxlbmd0aD49MTYpe3Q9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTt0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpO3RoaXMuZ2hhc2godCl9fTtHSEFTSC5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmNhY2hlLmxlbmd0aCl7dGhpcy5naGFzaChpLmNvbmNhdChbdGhpcy5jYWNoZSxuXSwxNikpfXRoaXMuZ2hhc2goZnJvbUFycmF5KFswLGUsMCx0XSkpO3JldHVybiB0aGlzLnN0YXRlfTtlLmV4cG9ydHM9R0hBU0h9LDU5ODpmdW5jdGlvbihlKXtmdW5jdGlvbiBpbmNyMzIoZSl7dmFyIHQ9ZS5sZW5ndGg7dmFyIHI7d2hpbGUodC0tKXtyPWUucmVhZFVJbnQ4KHQpO2lmKHI9PT0yNTUpe2Uud3JpdGVVSW50OCgwLHQpfWVsc2V7cisrO2Uud3JpdGVVSW50OChyLHQpO2JyZWFrfX19ZS5leHBvcnRzPWluY3IzMn0sOTgyNTpmdW5jdGlvbihlLHQscil7dmFyIGk9cig0NzM0KTt0LmVuY3J5cHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1pKHQsZS5fcHJldik7ZS5fcHJldj1lLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHIpO3JldHVybiBlLl9wcmV2fTt0LmRlY3J5cHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLl9wcmV2O2UuX3ByZXY9dDt2YXIgbj1lLl9jaXBoZXIuZGVjcnlwdEJsb2NrKHQpO3JldHVybiBpKG4scil9fSwzMjE6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjkxMSkuQnVmZmVyO3ZhciBuPXIoNDczNCk7ZnVuY3Rpb24gZW5jcnlwdFN0YXJ0KGUsdCxyKXt2YXIgYT10Lmxlbmd0aDt2YXIgcz1uKHQsZS5fY2FjaGUpO2UuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKGEpO2UuX3ByZXY9aS5jb25jYXQoW2UuX3ByZXYscj90OnNdKTtyZXR1cm4gc310LmVuY3J5cHQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWkuYWxsb2NVbnNhZmUoMCk7dmFyIGE7d2hpbGUodC5sZW5ndGgpe2lmKGUuX2NhY2hlLmxlbmd0aD09PTApe2UuX2NhY2hlPWUuX2NpcGhlci5lbmNyeXB0QmxvY2soZS5fcHJldik7ZS5fcHJldj1pLmFsbG9jVW5zYWZlKDApfWlmKGUuX2NhY2hlLmxlbmd0aDw9dC5sZW5ndGgpe2E9ZS5fY2FjaGUubGVuZ3RoO249aS5jb25jYXQoW24sZW5jcnlwdFN0YXJ0KGUsdC5zbGljZSgwLGEpLHIpXSk7dD10LnNsaWNlKGEpfWVsc2V7bj1pLmNvbmNhdChbbixlbmNyeXB0U3RhcnQoZSx0LHIpXSk7YnJlYWt9fXJldHVybiBufX0sMzE0NzpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2OTExKS5CdWZmZXI7ZnVuY3Rpb24gZW5jcnlwdEJ5dGUoZSx0LHIpe3ZhciBpO3ZhciBuPS0xO3ZhciBhPTg7dmFyIHM9MDt2YXIgbyxoO3doaWxlKCsrbjxhKXtpPWUuX2NpcGhlci5lbmNyeXB0QmxvY2soZS5fcHJldik7bz10JjE8PDctbj8xMjg6MDtoPWlbMF1ebztzKz0oaCYxMjgpPj5uJTg7ZS5fcHJldj1zaGlmdEluKGUuX3ByZXYscj9vOmgpfXJldHVybiBzfWZ1bmN0aW9uIHNoaWZ0SW4oZSx0KXt2YXIgcj1lLmxlbmd0aDt2YXIgbj0tMTt2YXIgYT1pLmFsbG9jVW5zYWZlKGUubGVuZ3RoKTtlPWkuY29uY2F0KFtlLGkuZnJvbShbdF0pXSk7d2hpbGUoKytuPHIpe2Fbbl09ZVtuXTw8MXxlW24rMV0+Pjd9cmV0dXJuIGF9dC5lbmNyeXB0PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10Lmxlbmd0aDt2YXIgYT1pLmFsbG9jVW5zYWZlKG4pO3ZhciBzPS0xO3doaWxlKCsrczxuKXthW3NdPWVuY3J5cHRCeXRlKGUsdFtzXSxyKX1yZXR1cm4gYX19LDI0MzA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjkxMSkuQnVmZmVyO2Z1bmN0aW9uIGVuY3J5cHRCeXRlKGUsdCxyKXt2YXIgbj1lLl9jaXBoZXIuZW5jcnlwdEJsb2NrKGUuX3ByZXYpO3ZhciBhPW5bMF1edDtlLl9wcmV2PWkuY29uY2F0KFtlLl9wcmV2LnNsaWNlKDEpLGkuZnJvbShbcj90OmFdKV0pO3JldHVybiBhfXQuZW5jcnlwdD1mdW5jdGlvbihlLHQscil7dmFyIG49dC5sZW5ndGg7dmFyIGE9aS5hbGxvY1Vuc2FmZShuKTt2YXIgcz0tMTt3aGlsZSgrK3M8bil7YVtzXT1lbmNyeXB0Qnl0ZShlLHRbc10scil9cmV0dXJuIGF9fSwzMzYxOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDQ3MzQpO3ZhciBuPXIoNjkxMSkuQnVmZmVyO3ZhciBhPXIoNTk4KTtmdW5jdGlvbiBnZXRCbG9jayhlKXt2YXIgdD1lLl9jaXBoZXIuZW5jcnlwdEJsb2NrUmF3KGUuX3ByZXYpO2EoZS5fcHJldik7cmV0dXJuIHR9dmFyIHM9MTY7dC5lbmNyeXB0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9TWF0aC5jZWlsKHQubGVuZ3RoL3MpO3ZhciBhPWUuX2NhY2hlLmxlbmd0aDtlLl9jYWNoZT1uLmNvbmNhdChbZS5fY2FjaGUsbi5hbGxvY1Vuc2FmZShyKnMpXSk7Zm9yKHZhciBvPTA7bzxyO28rKyl7dmFyIGg9Z2V0QmxvY2soZSk7dmFyIHU9YStvKnM7ZS5fY2FjaGUud3JpdGVVSW50MzJCRShoWzBdLHUrMCk7ZS5fY2FjaGUud3JpdGVVSW50MzJCRShoWzFdLHUrNCk7ZS5fY2FjaGUud3JpdGVVSW50MzJCRShoWzJdLHUrOCk7ZS5fY2FjaGUud3JpdGVVSW50MzJCRShoWzNdLHUrMTIpfXZhciBkPWUuX2NhY2hlLnNsaWNlKDAsdC5sZW5ndGgpO2UuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKHQubGVuZ3RoKTtyZXR1cm4gaSh0LGQpfX0sMTU5MDpmdW5jdGlvbihlLHQpe3QuZW5jcnlwdD1mdW5jdGlvbihlLHQpe3JldHVybiBlLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHQpfTt0LmRlY3J5cHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fY2lwaGVyLmRlY3J5cHRCbG9jayh0KX19LDYzNzA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXtFQ0I6cigxNTkwKSxDQkM6cig5ODI1KSxDRkI6cigzMjEpLENGQjg6cigyNDMwKSxDRkIxOnIoMzE0NyksT0ZCOnIoMzQxMiksQ1RSOnIoMzM2MSksR0NNOnIoMzM2MSl9O3ZhciBuPXIoNTg2Nik7Zm9yKHZhciBhIGluIG4pe25bYV0ubW9kdWxlPWlbblthXS5tb2RlXX1lLmV4cG9ydHM9bn0sMzQxMjpmdW5jdGlvbihlLHQscil7dmFyIGk9cig0NzM0KTtmdW5jdGlvbiBnZXRCbG9jayhlKXtlLl9wcmV2PWUuX2NpcGhlci5lbmNyeXB0QmxvY2soZS5fcHJldik7cmV0dXJuIGUuX3ByZXZ9dC5lbmNyeXB0PWZ1bmN0aW9uKGUsdCl7d2hpbGUoZS5fY2FjaGUubGVuZ3RoPHQubGVuZ3RoKXtlLl9jYWNoZT1CdWZmZXIuY29uY2F0KFtlLl9jYWNoZSxnZXRCbG9jayhlKV0pfXZhciByPWUuX2NhY2hlLnNsaWNlKDAsdC5sZW5ndGgpO2UuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKHQubGVuZ3RoKTtyZXR1cm4gaSh0LHIpfX0sMTI2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDEzODcpO3ZhciBuPXIoNjkxMSkuQnVmZmVyO3ZhciBhPXIoMTA0Myk7dmFyIHM9cigzNzgyKTtmdW5jdGlvbiBTdHJlYW1DaXBoZXIoZSx0LHIscyl7YS5jYWxsKHRoaXMpO3RoaXMuX2NpcGhlcj1uZXcgaS5BRVModCk7dGhpcy5fcHJldj1uLmZyb20ocik7dGhpcy5fY2FjaGU9bi5hbGxvY1Vuc2FmZSgwKTt0aGlzLl9zZWNDYWNoZT1uLmFsbG9jVW5zYWZlKDApO3RoaXMuX2RlY3J5cHQ9czt0aGlzLl9tb2RlPWV9cyhTdHJlYW1DaXBoZXIsYSk7U3RyZWFtQ2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxlLHRoaXMuX2RlY3J5cHQpfTtTdHJlYW1DaXBoZXIucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3RoaXMuX2NpcGhlci5zY3J1YigpfTtlLmV4cG9ydHM9U3RyZWFtQ2lwaGVyfSw4OTk2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDUyMzgpO3ZhciBuPXIoNjU5NCk7dmFyIGE9cig2MzcwKTt2YXIgcz1yKDYyODApO3ZhciBvPXIoODM2OCk7ZnVuY3Rpb24gY3JlYXRlQ2lwaGVyKGUsdCl7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIHIsaTtpZihhW2VdKXtyPWFbZV0ua2V5O2k9YVtlXS5pdn1lbHNlIGlmKHNbZV0pe3I9c1tlXS5rZXkqODtpPXNbZV0uaXZ9ZWxzZXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBzdWl0ZSB0eXBlXCIpfXZhciBuPW8odCxmYWxzZSxyLGkpO3JldHVybiBjcmVhdGVDaXBoZXJpdihlLG4ua2V5LG4uaXYpfWZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyKGUsdCl7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIHIsaTtpZihhW2VdKXtyPWFbZV0ua2V5O2k9YVtlXS5pdn1lbHNlIGlmKHNbZV0pe3I9c1tlXS5rZXkqODtpPXNbZV0uaXZ9ZWxzZXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBzdWl0ZSB0eXBlXCIpfXZhciBuPW8odCxmYWxzZSxyLGkpO3JldHVybiBjcmVhdGVEZWNpcGhlcml2KGUsbi5rZXksbi5pdil9ZnVuY3Rpb24gY3JlYXRlQ2lwaGVyaXYoZSx0LHIpe2U9ZS50b0xvd2VyQ2FzZSgpO2lmKGFbZV0pcmV0dXJuIG4uY3JlYXRlQ2lwaGVyaXYoZSx0LHIpO2lmKHNbZV0pcmV0dXJuIG5ldyBpKHtrZXk6dCxpdjpyLG1vZGU6ZX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHN1aXRlIHR5cGVcIil9ZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXJpdihlLHQscil7ZT1lLnRvTG93ZXJDYXNlKCk7aWYoYVtlXSlyZXR1cm4gbi5jcmVhdGVEZWNpcGhlcml2KGUsdCxyKTtpZihzW2VdKXJldHVybiBuZXcgaSh7a2V5OnQsaXY6cixtb2RlOmUsZGVjcnlwdDp0cnVlfSk7dGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgc3VpdGUgdHlwZVwiKX1mdW5jdGlvbiBnZXRDaXBoZXJzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLmNvbmNhdChuLmdldENpcGhlcnMoKSl9dC5jcmVhdGVDaXBoZXI9dC5DaXBoZXI9Y3JlYXRlQ2lwaGVyO3QuY3JlYXRlQ2lwaGVyaXY9dC5DaXBoZXJpdj1jcmVhdGVDaXBoZXJpdjt0LmNyZWF0ZURlY2lwaGVyPXQuRGVjaXBoZXI9Y3JlYXRlRGVjaXBoZXI7dC5jcmVhdGVEZWNpcGhlcml2PXQuRGVjaXBoZXJpdj1jcmVhdGVEZWNpcGhlcml2O3QubGlzdENpcGhlcnM9dC5nZXRDaXBoZXJzPWdldENpcGhlcnN9LDUyMzg6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoMTA0Myk7dmFyIG49cig5NTM2KTt2YXIgYT1yKDM3ODIpO3ZhciBzPXIoNjkxMSkuQnVmZmVyO3ZhciBvPXtcImRlcy1lZGUzLWNiY1wiOm4uQ0JDLmluc3RhbnRpYXRlKG4uRURFKSxcImRlcy1lZGUzXCI6bi5FREUsXCJkZXMtZWRlLWNiY1wiOm4uQ0JDLmluc3RhbnRpYXRlKG4uRURFKSxcImRlcy1lZGVcIjpuLkVERSxcImRlcy1jYmNcIjpuLkNCQy5pbnN0YW50aWF0ZShuLkRFUyksXCJkZXMtZWNiXCI6bi5ERVN9O28uZGVzPW9bXCJkZXMtY2JjXCJdO28uZGVzMz1vW1wiZGVzLWVkZTMtY2JjXCJdO2UuZXhwb3J0cz1ERVM7YShERVMsaSk7ZnVuY3Rpb24gREVTKGUpe2kuY2FsbCh0aGlzKTt2YXIgdD1lLm1vZGUudG9Mb3dlckNhc2UoKTt2YXIgcj1vW3RdO3ZhciBuO2lmKGUuZGVjcnlwdCl7bj1cImRlY3J5cHRcIn1lbHNle249XCJlbmNyeXB0XCJ9dmFyIGE9ZS5rZXk7aWYoIXMuaXNCdWZmZXIoYSkpe2E9cy5mcm9tKGEpfWlmKHQ9PT1cImRlcy1lZGVcInx8dD09PVwiZGVzLWVkZS1jYmNcIil7YT1zLmNvbmNhdChbYSxhLnNsaWNlKDAsOCldKX12YXIgaD1lLml2O2lmKCFzLmlzQnVmZmVyKGgpKXtoPXMuZnJvbShoKX10aGlzLl9kZXM9ci5jcmVhdGUoe2tleTphLGl2OmgsdHlwZTpufSl9REVTLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLnVwZGF0ZShlKSl9O0RFUy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZnJvbSh0aGlzLl9kZXMuZmluYWwoKSl9fSw2MjgwOmZ1bmN0aW9uKGUsdCl7dFtcImRlcy1lY2JcIl09e2tleTo4LGl2OjB9O3RbXCJkZXMtY2JjXCJdPXQuZGVzPXtrZXk6OCxpdjo4fTt0W1wiZGVzLWVkZTMtY2JjXCJdPXQuZGVzMz17a2V5OjI0LGl2Ojh9O3RbXCJkZXMtZWRlM1wiXT17a2V5OjI0LGl2OjB9O3RbXCJkZXMtZWRlLWNiY1wiXT17a2V5OjE2LGl2Ojh9O3RbXCJkZXMtZWRlXCJdPXtrZXk6MTYsaXY6MH19LDcxNjY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNzExKTt2YXIgbj1yKDcyMjMpO2UuZXhwb3J0cz1jcnQ7ZnVuY3Rpb24gYmxpbmQoZSl7dmFyIHQ9Z2V0cihlKTt2YXIgcj10LnRvUmVkKGkubW9udChlLm1vZHVsdXMpKS5yZWRQb3cobmV3IGkoZS5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKTtyZXR1cm57YmxpbmRlcjpyLHVuYmxpbmRlcjp0Lmludm0oZS5tb2R1bHVzKX19ZnVuY3Rpb24gY3J0KGUsdCl7dmFyIHI9YmxpbmQodCk7dmFyIG49dC5tb2R1bHVzLmJ5dGVMZW5ndGgoKTt2YXIgYT1pLm1vbnQodC5tb2R1bHVzKTt2YXIgcz1uZXcgaShlKS5tdWwoci5ibGluZGVyKS51bW9kKHQubW9kdWx1cyk7dmFyIG89cy50b1JlZChpLm1vbnQodC5wcmltZTEpKTt2YXIgaD1zLnRvUmVkKGkubW9udCh0LnByaW1lMikpO3ZhciB1PXQuY29lZmZpY2llbnQ7dmFyIGQ9dC5wcmltZTE7dmFyIGM9dC5wcmltZTI7dmFyIGw9by5yZWRQb3codC5leHBvbmVudDEpO3ZhciBwPWgucmVkUG93KHQuZXhwb25lbnQyKTtsPWwuZnJvbVJlZCgpO3A9cC5mcm9tUmVkKCk7dmFyIHY9bC5pc3ViKHApLmltdWwodSkudW1vZChkKTt2LmltdWwoYyk7cC5pYWRkKHYpO3JldHVybiBuZXcgQnVmZmVyKHAuaW11bChyLnVuYmxpbmRlcikudW1vZCh0Lm1vZHVsdXMpLnRvQXJyYXkoZmFsc2UsbikpfWNydC5nZXRyPWdldHI7ZnVuY3Rpb24gZ2V0cihlKXt2YXIgdD1lLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO3ZhciByPW5ldyBpKG4odCkpO3doaWxlKHIuY21wKGUubW9kdWx1cyk+PTB8fCFyLnVtb2QoZS5wcmltZTEpfHwhci51bW9kKGUucHJpbWUyKSl7cj1uZXcgaShuKHQpKX1yZXR1cm4gcn19LDkyNzY6ZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDI5MDgpfSw0MDc4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDY5MTEpLkJ1ZmZlcjt2YXIgbj1yKDk3MzkpO3ZhciBhPXIoMzcyNik7dmFyIHM9cigzNzgyKTt2YXIgbz1yKDk4MDcpO3ZhciBoPXIoNDAxMyk7dmFyIHU9cigyOTA4KTtPYmplY3Qua2V5cyh1KS5mb3JFYWNoKChmdW5jdGlvbihlKXt1W2VdLmlkPWkuZnJvbSh1W2VdLmlkLFwiaGV4XCIpO3VbZS50b0xvd2VyQ2FzZSgpXT11W2VdfSkpO2Z1bmN0aW9uIFNpZ24oZSl7YS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciB0PXVbZV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBtZXNzYWdlIGRpZ2VzdFwiKTt0aGlzLl9oYXNoVHlwZT10Lmhhc2g7dGhpcy5faGFzaD1uKHQuaGFzaCk7dGhpcy5fdGFnPXQuaWQ7dGhpcy5fc2lnblR5cGU9dC5zaWdufXMoU2lnbixhLldyaXRhYmxlKTtTaWduLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24gX3dyaXRlKGUsdCxyKXt0aGlzLl9oYXNoLnVwZGF0ZShlKTtyKCl9O1NpZ24ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbiB1cGRhdGUoZSx0KXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpZT1pLmZyb20oZSx0KTt0aGlzLl9oYXNoLnVwZGF0ZShlKTtyZXR1cm4gdGhpc307U2lnbi5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbiBzaWduTWV0aG9kKGUsdCl7dGhpcy5lbmQoKTt2YXIgcj10aGlzLl9oYXNoLmRpZ2VzdCgpO3ZhciBpPW8ocixlLHRoaXMuX2hhc2hUeXBlLHRoaXMuX3NpZ25UeXBlLHRoaXMuX3RhZyk7cmV0dXJuIHQ/aS50b1N0cmluZyh0KTppfTtmdW5jdGlvbiBWZXJpZnkoZSl7YS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciB0PXVbZV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBtZXNzYWdlIGRpZ2VzdFwiKTt0aGlzLl9oYXNoPW4odC5oYXNoKTt0aGlzLl90YWc9dC5pZDt0aGlzLl9zaWduVHlwZT10LnNpZ259cyhWZXJpZnksYS5Xcml0YWJsZSk7VmVyaWZ5LnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24gX3dyaXRlKGUsdCxyKXt0aGlzLl9oYXNoLnVwZGF0ZShlKTtyKCl9O1ZlcmlmeS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uIHVwZGF0ZShlLHQpe2lmKHR5cGVvZiBlPT09XCJzdHJpbmdcIillPWkuZnJvbShlLHQpO3RoaXMuX2hhc2gudXBkYXRlKGUpO3JldHVybiB0aGlzfTtWZXJpZnkucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbiB2ZXJpZnlNZXRob2QoZSx0LHIpe2lmKHR5cGVvZiB0PT09XCJzdHJpbmdcIil0PWkuZnJvbSh0LHIpO3RoaXMuZW5kKCk7dmFyIG49dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gaCh0LG4sZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpfTtmdW5jdGlvbiBjcmVhdGVTaWduKGUpe3JldHVybiBuZXcgU2lnbihlKX1mdW5jdGlvbiBjcmVhdGVWZXJpZnkoZSl7cmV0dXJuIG5ldyBWZXJpZnkoZSl9ZS5leHBvcnRzPXtTaWduOmNyZWF0ZVNpZ24sVmVyaWZ5OmNyZWF0ZVZlcmlmeSxjcmVhdGVTaWduOmNyZWF0ZVNpZ24sY3JlYXRlVmVyaWZ5OmNyZWF0ZVZlcmlmeX19LDk4MDc6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjkxMSkuQnVmZmVyO3ZhciBuPXIoNDg3Myk7dmFyIGE9cig3MTY2KTt2YXIgcz1yKDk0OSkuZWM7dmFyIG89cigxNjcwKTt2YXIgaD1yKDk5MDIpO3ZhciB1PXIoOTI2Nyk7ZnVuY3Rpb24gc2lnbihlLHQscixuLHMpe3ZhciBvPWgodCk7aWYoby5jdXJ2ZSl7aWYobiE9PVwiZWNkc2FcIiYmbiE9PVwiZWNkc2EvcnNhXCIpdGhyb3cgbmV3IEVycm9yKFwid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZVwiKTtyZXR1cm4gZWNTaWduKGUsbyl9ZWxzZSBpZihvLnR5cGU9PT1cImRzYVwiKXtpZihuIT09XCJkc2FcIil0aHJvdyBuZXcgRXJyb3IoXCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlXCIpO3JldHVybiBkc2FTaWduKGUsbyxyKX1lbHNle2lmKG4hPT1cInJzYVwiJiZuIT09XCJlY2RzYS9yc2FcIil0aHJvdyBuZXcgRXJyb3IoXCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlXCIpfWU9aS5jb25jYXQoW3MsZV0pO3ZhciB1PW8ubW9kdWx1cy5ieXRlTGVuZ3RoKCk7dmFyIGQ9WzAsMV07d2hpbGUoZS5sZW5ndGgrZC5sZW5ndGgrMTx1KWQucHVzaCgyNTUpO2QucHVzaCgwKTt2YXIgYz0tMTt3aGlsZSgrK2M8ZS5sZW5ndGgpZC5wdXNoKGVbY10pO3ZhciBsPWEoZCxvKTtyZXR1cm4gbH1mdW5jdGlvbiBlY1NpZ24oZSx0KXt2YXIgcj11W3QuY3VydmUuam9pbihcIi5cIildO2lmKCFyKXRocm93IG5ldyBFcnJvcihcInVua25vd24gY3VydmUgXCIrdC5jdXJ2ZS5qb2luKFwiLlwiKSk7dmFyIG49bmV3IHMocik7dmFyIGE9bi5rZXlGcm9tUHJpdmF0ZSh0LnByaXZhdGVLZXkpO3ZhciBvPWEuc2lnbihlKTtyZXR1cm4gaS5mcm9tKG8udG9ERVIoKSl9ZnVuY3Rpb24gZHNhU2lnbihlLHQscil7dmFyIGk9dC5wYXJhbXMucHJpdl9rZXk7dmFyIG49dC5wYXJhbXMucDt2YXIgYT10LnBhcmFtcy5xO3ZhciBzPXQucGFyYW1zLmc7dmFyIGg9bmV3IG8oMCk7dmFyIHU7dmFyIGQ9Yml0czJpbnQoZSxhKS5tb2QoYSk7dmFyIGM9ZmFsc2U7dmFyIGw9Z2V0S2V5KGksYSxlLHIpO3doaWxlKGM9PT1mYWxzZSl7dT1tYWtlS2V5KGEsbCxyKTtoPW1ha2VSKHMsdSxuLGEpO2M9dS5pbnZtKGEpLmltdWwoZC5hZGQoaS5tdWwoaCkpKS5tb2QoYSk7aWYoYy5jbXBuKDApPT09MCl7Yz1mYWxzZTtoPW5ldyBvKDApfX1yZXR1cm4gdG9ERVIoaCxjKX1mdW5jdGlvbiB0b0RFUihlLHQpe2U9ZS50b0FycmF5KCk7dD10LnRvQXJyYXkoKTtpZihlWzBdJjEyOCllPVswXS5jb25jYXQoZSk7aWYodFswXSYxMjgpdD1bMF0uY29uY2F0KHQpO3ZhciByPWUubGVuZ3RoK3QubGVuZ3RoKzQ7dmFyIG49WzQ4LHIsMixlLmxlbmd0aF07bj1uLmNvbmNhdChlLFsyLHQubGVuZ3RoXSx0KTtyZXR1cm4gaS5mcm9tKG4pfWZ1bmN0aW9uIGdldEtleShlLHQscixhKXtlPWkuZnJvbShlLnRvQXJyYXkoKSk7aWYoZS5sZW5ndGg8dC5ieXRlTGVuZ3RoKCkpe3ZhciBzPWkuYWxsb2ModC5ieXRlTGVuZ3RoKCktZS5sZW5ndGgpO2U9aS5jb25jYXQoW3MsZV0pfXZhciBvPXIubGVuZ3RoO3ZhciBoPWJpdHMyb2N0ZXRzKHIsdCk7dmFyIHU9aS5hbGxvYyhvKTt1LmZpbGwoMSk7dmFyIGQ9aS5hbGxvYyhvKTtkPW4oYSxkKS51cGRhdGUodSkudXBkYXRlKGkuZnJvbShbMF0pKS51cGRhdGUoZSkudXBkYXRlKGgpLmRpZ2VzdCgpO3U9bihhLGQpLnVwZGF0ZSh1KS5kaWdlc3QoKTtkPW4oYSxkKS51cGRhdGUodSkudXBkYXRlKGkuZnJvbShbMV0pKS51cGRhdGUoZSkudXBkYXRlKGgpLmRpZ2VzdCgpO3U9bihhLGQpLnVwZGF0ZSh1KS5kaWdlc3QoKTtyZXR1cm57azpkLHY6dX19ZnVuY3Rpb24gYml0czJpbnQoZSx0KXt2YXIgcj1uZXcgbyhlKTt2YXIgaT0oZS5sZW5ndGg8PDMpLXQuYml0TGVuZ3RoKCk7aWYoaT4wKXIuaXNocm4oaSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYml0czJvY3RldHMoZSx0KXtlPWJpdHMyaW50KGUsdCk7ZT1lLm1vZCh0KTt2YXIgcj1pLmZyb20oZS50b0FycmF5KCkpO2lmKHIubGVuZ3RoPHQuYnl0ZUxlbmd0aCgpKXt2YXIgbj1pLmFsbG9jKHQuYnl0ZUxlbmd0aCgpLXIubGVuZ3RoKTtyPWkuY29uY2F0KFtuLHJdKX1yZXR1cm4gcn1mdW5jdGlvbiBtYWtlS2V5KGUsdCxyKXt2YXIgYTt2YXIgcztkb3thPWkuYWxsb2MoMCk7d2hpbGUoYS5sZW5ndGgqODxlLmJpdExlbmd0aCgpKXt0LnY9bihyLHQuaykudXBkYXRlKHQudikuZGlnZXN0KCk7YT1pLmNvbmNhdChbYSx0LnZdKX1zPWJpdHMyaW50KGEsZSk7dC5rPW4ocix0LmspLnVwZGF0ZSh0LnYpLnVwZGF0ZShpLmZyb20oWzBdKSkuZGlnZXN0KCk7dC52PW4ocix0LmspLnVwZGF0ZSh0LnYpLmRpZ2VzdCgpfXdoaWxlKHMuY21wKGUpIT09LTEpO3JldHVybiBzfWZ1bmN0aW9uIG1ha2VSKGUsdCxyLGkpe3JldHVybiBlLnRvUmVkKG8ubW9udChyKSkucmVkUG93KHQpLmZyb21SZWQoKS5tb2QoaSl9ZS5leHBvcnRzPXNpZ247ZS5leHBvcnRzLmdldEtleT1nZXRLZXk7ZS5leHBvcnRzLm1ha2VLZXk9bWFrZUtleX0sNDAxMzpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2OTExKS5CdWZmZXI7dmFyIG49cigxNjcwKTt2YXIgYT1yKDk0OSkuZWM7dmFyIHM9cig5OTAyKTt2YXIgbz1yKDkyNjcpO2Z1bmN0aW9uIHZlcmlmeShlLHQscixhLG8pe3ZhciBoPXMocik7aWYoaC50eXBlPT09XCJlY1wiKXtpZihhIT09XCJlY2RzYVwiJiZhIT09XCJlY2RzYS9yc2FcIil0aHJvdyBuZXcgRXJyb3IoXCJ3cm9uZyBwdWJsaWMga2V5IHR5cGVcIik7cmV0dXJuIGVjVmVyaWZ5KGUsdCxoKX1lbHNlIGlmKGgudHlwZT09PVwiZHNhXCIpe2lmKGEhPT1cImRzYVwiKXRocm93IG5ldyBFcnJvcihcIndyb25nIHB1YmxpYyBrZXkgdHlwZVwiKTtyZXR1cm4gZHNhVmVyaWZ5KGUsdCxoKX1lbHNle2lmKGEhPT1cInJzYVwiJiZhIT09XCJlY2RzYS9yc2FcIil0aHJvdyBuZXcgRXJyb3IoXCJ3cm9uZyBwdWJsaWMga2V5IHR5cGVcIil9dD1pLmNvbmNhdChbbyx0XSk7dmFyIHU9aC5tb2R1bHVzLmJ5dGVMZW5ndGgoKTt2YXIgZD1bMV07dmFyIGM9MDt3aGlsZSh0Lmxlbmd0aCtkLmxlbmd0aCsyPHUpe2QucHVzaCgyNTUpO2MrK31kLnB1c2goMCk7dmFyIGw9LTE7d2hpbGUoKytsPHQubGVuZ3RoKXtkLnB1c2godFtsXSl9ZD1pLmZyb20oZCk7dmFyIHA9bi5tb250KGgubW9kdWx1cyk7ZT1uZXcgbihlKS50b1JlZChwKTtlPWUucmVkUG93KG5ldyBuKGgucHVibGljRXhwb25lbnQpKTtlPWkuZnJvbShlLmZyb21SZWQoKS50b0FycmF5KCkpO3ZhciB2PWM8OD8xOjA7dT1NYXRoLm1pbihlLmxlbmd0aCxkLmxlbmd0aCk7aWYoZS5sZW5ndGghPT1kLmxlbmd0aCl2PTE7bD0tMTt3aGlsZSgrK2w8dSl2fD1lW2xdXmRbbF07cmV0dXJuIHY9PT0wfWZ1bmN0aW9uIGVjVmVyaWZ5KGUsdCxyKXt2YXIgaT1vW3IuZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbihcIi5cIildO2lmKCFpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gY3VydmUgXCIrci5kYXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2luKFwiLlwiKSk7dmFyIG49bmV3IGEoaSk7dmFyIHM9ci5kYXRhLnN1YmplY3RQcml2YXRlS2V5LmRhdGE7cmV0dXJuIG4udmVyaWZ5KHQsZSxzKX1mdW5jdGlvbiBkc2FWZXJpZnkoZSx0LHIpe3ZhciBpPXIuZGF0YS5wO3ZhciBhPXIuZGF0YS5xO3ZhciBvPXIuZGF0YS5nO3ZhciBoPXIuZGF0YS5wdWJfa2V5O3ZhciB1PXMuc2lnbmF0dXJlLmRlY29kZShlLFwiZGVyXCIpO3ZhciBkPXUuczt2YXIgYz11LnI7Y2hlY2tWYWx1ZShkLGEpO2NoZWNrVmFsdWUoYyxhKTt2YXIgbD1uLm1vbnQoaSk7dmFyIHA9ZC5pbnZtKGEpO3ZhciB2PW8udG9SZWQobCkucmVkUG93KG5ldyBuKHQpLm11bChwKS5tb2QoYSkpLmZyb21SZWQoKS5tdWwoaC50b1JlZChsKS5yZWRQb3coYy5tdWwocCkubW9kKGEpKS5mcm9tUmVkKCkpLm1vZChpKS5tb2QoYSk7cmV0dXJuIHYuY21wKGMpPT09MH1mdW5jdGlvbiBjaGVja1ZhbHVlKGUsdCl7aWYoZS5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgc2lnXCIpO2lmKGUuY21wKHQpPj10KXRocm93IG5ldyBFcnJvcihcImludmFsaWQgc2lnXCIpfWUuZXhwb3J0cz12ZXJpZnl9LDQ3MzQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uIHhvcihlLHQpe3ZhciByPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTt2YXIgaT1uZXcgQnVmZmVyKHIpO2Zvcih2YXIgbj0wO248cjsrK24pe2lbbl09ZVtuXV50W25dfXJldHVybiBpfX0sMTA0MzpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2OTExKS5CdWZmZXI7dmFyIG49cigyNzgxKS5UcmFuc2Zvcm07dmFyIGE9cigxNTc2KS5TdHJpbmdEZWNvZGVyO3ZhciBzPXIoMzc4Mik7ZnVuY3Rpb24gQ2lwaGVyQmFzZShlKXtuLmNhbGwodGhpcyk7dGhpcy5oYXNoTW9kZT10eXBlb2YgZT09PVwic3RyaW5nXCI7aWYodGhpcy5oYXNoTW9kZSl7dGhpc1tlXT10aGlzLl9maW5hbE9yRGlnZXN0fWVsc2V7dGhpcy5maW5hbD10aGlzLl9maW5hbE9yRGlnZXN0fWlmKHRoaXMuX2ZpbmFsKXt0aGlzLl9fZmluYWw9dGhpcy5fZmluYWw7dGhpcy5fZmluYWw9bnVsbH10aGlzLl9kZWNvZGVyPW51bGw7dGhpcy5fZW5jb2Rpbmc9bnVsbH1zKENpcGhlckJhc2Usbik7Q2lwaGVyQmFzZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUsdCxyKXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2U9aS5mcm9tKGUsdCl9dmFyIG49dGhpcy5fdXBkYXRlKGUpO2lmKHRoaXMuaGFzaE1vZGUpcmV0dXJuIHRoaXM7aWYocil7bj10aGlzLl90b1N0cmluZyhuLHIpfXJldHVybiBufTtDaXBoZXJCYXNlLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbigpe307Q2lwaGVyQmFzZS5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGVcIil9O0NpcGhlckJhc2UucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJ0cnlpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlXCIpfTtDaXBoZXJCYXNlLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZVwiKX07Q2lwaGVyQmFzZS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihlLHQscil7dmFyIGk7dHJ5e2lmKHRoaXMuaGFzaE1vZGUpe3RoaXMuX3VwZGF0ZShlKX1lbHNle3RoaXMucHVzaCh0aGlzLl91cGRhdGUoZSkpfX1jYXRjaChlKXtpPWV9ZmluYWxseXtyKGkpfX07Q2lwaGVyQmFzZS5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKGUpe3ZhciB0O3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNoKGUpe3Q9ZX1lKHQpfTtDaXBoZXJCYXNlLnByb3RvdHlwZS5fZmluYWxPckRpZ2VzdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fZmluYWwoKXx8aS5hbGxvYygwKTtpZihlKXt0PXRoaXMuX3RvU3RyaW5nKHQsZSx0cnVlKX1yZXR1cm4gdH07Q2lwaGVyQmFzZS5wcm90b3R5cGUuX3RvU3RyaW5nPWZ1bmN0aW9uKGUsdCxyKXtpZighdGhpcy5fZGVjb2Rlcil7dGhpcy5fZGVjb2Rlcj1uZXcgYSh0KTt0aGlzLl9lbmNvZGluZz10fWlmKHRoaXMuX2VuY29kaW5nIT09dCl0aHJvdyBuZXcgRXJyb3IoXCJjYW4ndCBzd2l0Y2ggZW5jb2RpbmdzXCIpO3ZhciBpPXRoaXMuX2RlY29kZXIud3JpdGUoZSk7aWYocil7aSs9dGhpcy5fZGVjb2Rlci5lbmQoKX1yZXR1cm4gaX07ZS5leHBvcnRzPUNpcGhlckJhc2V9LDk5NDI6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoOTQ5KTt2YXIgbj1yKDcxMSk7ZS5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUVDREgoZSl7cmV0dXJuIG5ldyBFQ0RIKGUpfTt2YXIgYT17c2VjcDI1NmsxOntuYW1lOlwic2VjcDI1NmsxXCIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntuYW1lOlwicDIyNFwiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6XCJwMjU2XCIsYnl0ZUxlbmd0aDozMn0scHJpbWUxOTJ2MTp7bmFtZTpcInAxOTJcIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOlwiZWQyNTUxOVwiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7bmFtZTpcInAzODRcIixieXRlTGVuZ3RoOjQ4fSxzZWNwNTIxcjE6e25hbWU6XCJwNTIxXCIsYnl0ZUxlbmd0aDo2Nn19O2EucDIyND1hLnNlY3AyMjRyMTthLnAyNTY9YS5zZWNwMjU2cjE9YS5wcmltZTI1NnYxO2EucDE5Mj1hLnNlY3AxOTJyMT1hLnByaW1lMTkydjE7YS5wMzg0PWEuc2VjcDM4NHIxO2EucDUyMT1hLnNlY3A1MjFyMTtmdW5jdGlvbiBFQ0RIKGUpe3RoaXMuY3VydmVUeXBlPWFbZV07aWYoIXRoaXMuY3VydmVUeXBlKXt0aGlzLmN1cnZlVHlwZT17bmFtZTplfX10aGlzLmN1cnZlPW5ldyBpLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpO3RoaXMua2V5cz12b2lkIDB9RUNESC5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKGUsdCl7dGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpO3JldHVybiB0aGlzLmdldFB1YmxpY0tleShlLHQpfTtFQ0RILnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKGUsdCxyKXt0PXR8fFwidXRmOFwiO2lmKCFCdWZmZXIuaXNCdWZmZXIoZSkpe2U9bmV3IEJ1ZmZlcihlLHQpfXZhciBpPXRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhlKS5nZXRQdWJsaWMoKTt2YXIgbj1pLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCk7cmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKG4scix0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX07RUNESC5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5rZXlzLmdldFB1YmxpYyh0PT09XCJjb21wcmVzc2VkXCIsdHJ1ZSk7aWYodD09PVwiaHlicmlkXCIpe2lmKHJbci5sZW5ndGgtMV0lMil7clswXT03fWVsc2V7clswXT02fX1yZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUocixlKX07RUNESC5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihlKXtyZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5rZXlzLmdldFByaXZhdGUoKSxlKX07RUNESC5wcm90b3R5cGUuc2V0UHVibGljS2V5PWZ1bmN0aW9uKGUsdCl7dD10fHxcInV0ZjhcIjtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXtlPW5ldyBCdWZmZXIoZSx0KX10aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhlKTtyZXR1cm4gdGhpc307RUNESC5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlvbihlLHQpe3Q9dHx8XCJ1dGY4XCI7aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl7ZT1uZXcgQnVmZmVyKGUsdCl9dmFyIHI9bmV3IG4oZSk7cj1yLnRvU3RyaW5nKDE2KTt0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCk7dGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKHIpO3JldHVybiB0aGlzfTtmdW5jdGlvbiBmb3JtYXRSZXR1cm5WYWx1ZShlLHQscil7aWYoIUFycmF5LmlzQXJyYXkoZSkpe2U9ZS50b0FycmF5KCl9dmFyIGk9bmV3IEJ1ZmZlcihlKTtpZihyJiZpLmxlbmd0aDxyKXt2YXIgbj1uZXcgQnVmZmVyKHItaS5sZW5ndGgpO24uZmlsbCgwKTtpPUJ1ZmZlci5jb25jYXQoW24saV0pfWlmKCF0KXtyZXR1cm4gaX1lbHNle3JldHVybiBpLnRvU3RyaW5nKHQpfX19LDk3Mzk6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoMzc4Mik7dmFyIG49cigzNTMzKTt2YXIgYT1yKDMyMjUpO3ZhciBzPXIoNDM3MSk7dmFyIG89cigxMDQzKTtmdW5jdGlvbiBIYXNoKGUpe28uY2FsbCh0aGlzLFwiZGlnZXN0XCIpO3RoaXMuX2hhc2g9ZX1pKEhhc2gsbyk7SGFzaC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLl9oYXNoLnVwZGF0ZShlKX07SGFzaC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9O2UuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVIYXNoKGUpe2U9ZS50b0xvd2VyQ2FzZSgpO2lmKGU9PT1cIm1kNVwiKXJldHVybiBuZXcgbjtpZihlPT09XCJybWQxNjBcInx8ZT09PVwicmlwZW1kMTYwXCIpcmV0dXJuIG5ldyBhO3JldHVybiBuZXcgSGFzaChzKGUpKX19LDQ1MDpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNTMzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuKG5ldyBpKS51cGRhdGUoZSkuZGlnZXN0KCl9fSw0ODczOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDM3ODIpO3ZhciBuPXIoODExOSk7dmFyIGE9cigxMDQzKTt2YXIgcz1yKDY5MTEpLkJ1ZmZlcjt2YXIgbz1yKDQ1MCk7dmFyIGg9cigzMjI1KTt2YXIgdT1yKDQzNzEpO3ZhciBkPXMuYWxsb2MoMTI4KTtmdW5jdGlvbiBIbWFjKGUsdCl7YS5jYWxsKHRoaXMsXCJkaWdlc3RcIik7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXt0PXMuZnJvbSh0KX12YXIgcj1lPT09XCJzaGE1MTJcInx8ZT09PVwic2hhMzg0XCI/MTI4OjY0O3RoaXMuX2FsZz1lO3RoaXMuX2tleT10O2lmKHQubGVuZ3RoPnIpe3ZhciBpPWU9PT1cInJtZDE2MFwiP25ldyBoOnUoZSk7dD1pLnVwZGF0ZSh0KS5kaWdlc3QoKX1lbHNlIGlmKHQubGVuZ3RoPHIpe3Q9cy5jb25jYXQoW3QsZF0scil9dmFyIG49dGhpcy5faXBhZD1zLmFsbG9jVW5zYWZlKHIpO3ZhciBvPXRoaXMuX29wYWQ9cy5hbGxvY1Vuc2FmZShyKTtmb3IodmFyIGM9MDtjPHI7YysrKXtuW2NdPXRbY11eNTQ7b1tjXT10W2NdXjkyfXRoaXMuX2hhc2g9ZT09PVwicm1kMTYwXCI/bmV3IGg6dShlKTt0aGlzLl9oYXNoLnVwZGF0ZShuKX1pKEhtYWMsYSk7SG1hYy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLl9oYXNoLnVwZGF0ZShlKX07SG1hYy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faGFzaC5kaWdlc3QoKTt2YXIgdD10aGlzLl9hbGc9PT1cInJtZDE2MFwiP25ldyBoOnUodGhpcy5fYWxnKTtyZXR1cm4gdC51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKGUpLmRpZ2VzdCgpfTtlLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlSG1hYyhlLHQpe2U9ZS50b0xvd2VyQ2FzZSgpO2lmKGU9PT1cInJtZDE2MFwifHxlPT09XCJyaXBlbWQxNjBcIil7cmV0dXJuIG5ldyBIbWFjKFwicm1kMTYwXCIsdCl9aWYoZT09PVwibWQ1XCIpe3JldHVybiBuZXcgbihvLHQpfXJldHVybiBuZXcgSG1hYyhlLHQpfX0sODExOTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDY5MTEpLkJ1ZmZlcjt2YXIgYT1yKDEwNDMpO3ZhciBzPW4uYWxsb2MoMTI4KTt2YXIgbz02NDtmdW5jdGlvbiBIbWFjKGUsdCl7YS5jYWxsKHRoaXMsXCJkaWdlc3RcIik7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXt0PW4uZnJvbSh0KX10aGlzLl9hbGc9ZTt0aGlzLl9rZXk9dDtpZih0Lmxlbmd0aD5vKXt0PWUodCl9ZWxzZSBpZih0Lmxlbmd0aDxvKXt0PW4uY29uY2F0KFt0LHNdLG8pfXZhciByPXRoaXMuX2lwYWQ9bi5hbGxvY1Vuc2FmZShvKTt2YXIgaT10aGlzLl9vcGFkPW4uYWxsb2NVbnNhZmUobyk7Zm9yKHZhciBoPTA7aDxvO2grKyl7cltoXT10W2hdXjU0O2lbaF09dFtoXV45Mn10aGlzLl9oYXNoPVtyXX1pKEhtYWMsYSk7SG1hYy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLl9oYXNoLnB1c2goZSl9O0htYWMucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2FsZyhuLmNvbmNhdCh0aGlzLl9oYXNoKSk7cmV0dXJuIHRoaXMuX2FsZyhuLmNvbmNhdChbdGhpcy5fb3BhZCxlXSkpfTtlLmV4cG9ydHM9SG1hY30sOTUzNjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dC51dGlscz1yKDUzMzQpO3QuQ2lwaGVyPXIoOTg3Nik7dC5ERVM9cigxMDE2KTt0LkNCQz1yKDg2NDEpO3QuRURFPXIoNjE1OSl9LDg2NDE6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoMzUyMyk7dmFyIG49cigzNzgyKTt2YXIgYT17fTtmdW5jdGlvbiBDQkNTdGF0ZShlKXtpLmVxdWFsKGUubGVuZ3RoLDgsXCJJbnZhbGlkIElWIGxlbmd0aFwiKTt0aGlzLml2PW5ldyBBcnJheSg4KTtmb3IodmFyIHQ9MDt0PHRoaXMuaXYubGVuZ3RoO3QrKyl0aGlzLml2W3RdPWVbdF19ZnVuY3Rpb24gaW5zdGFudGlhdGUoZSl7ZnVuY3Rpb24gQ0JDKHQpe2UuY2FsbCh0aGlzLHQpO3RoaXMuX2NiY0luaXQoKX1uKENCQyxlKTt2YXIgdD1PYmplY3Qua2V5cyhhKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTtDQkMucHJvdG90eXBlW2ldPWFbaV19Q0JDLmNyZWF0ZT1mdW5jdGlvbiBjcmVhdGUoZSl7cmV0dXJuIG5ldyBDQkMoZSl9O3JldHVybiBDQkN9dC5pbnN0YW50aWF0ZT1pbnN0YW50aWF0ZTthLl9jYmNJbml0PWZ1bmN0aW9uIF9jYmNJbml0KCl7dmFyIGU9bmV3IENCQ1N0YXRlKHRoaXMub3B0aW9ucy5pdik7dGhpcy5fY2JjU3RhdGU9ZX07YS5fdXBkYXRlPWZ1bmN0aW9uIF91cGRhdGUoZSx0LHIsaSl7dmFyIG49dGhpcy5fY2JjU3RhdGU7dmFyIGE9dGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlO3ZhciBzPW4uaXY7aWYodGhpcy50eXBlPT09XCJlbmNyeXB0XCIpe2Zvcih2YXIgbz0wO288dGhpcy5ibG9ja1NpemU7bysrKXNbb11ePWVbdCtvXTthLl91cGRhdGUuY2FsbCh0aGlzLHMsMCxyLGkpO2Zvcih2YXIgbz0wO288dGhpcy5ibG9ja1NpemU7bysrKXNbb109cltpK29dfWVsc2V7YS5fdXBkYXRlLmNhbGwodGhpcyxlLHQscixpKTtmb3IodmFyIG89MDtvPHRoaXMuYmxvY2tTaXplO28rKylyW2krb11ePXNbb107Zm9yKHZhciBvPTA7bzx0aGlzLmJsb2NrU2l6ZTtvKyspc1tvXT1lW3Qrb119fX0sOTg3NjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigzNTIzKTtmdW5jdGlvbiBDaXBoZXIoZSl7dGhpcy5vcHRpb25zPWU7dGhpcy50eXBlPXRoaXMub3B0aW9ucy50eXBlO3RoaXMuYmxvY2tTaXplPTg7dGhpcy5faW5pdCgpO3RoaXMuYnVmZmVyPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7dGhpcy5idWZmZXJPZmY9MH1lLmV4cG9ydHM9Q2lwaGVyO0NpcGhlci5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24gX2luaXQoKXt9O0NpcGhlci5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uIHVwZGF0ZShlKXtpZihlLmxlbmd0aD09PTApcmV0dXJuW107aWYodGhpcy50eXBlPT09XCJkZWNyeXB0XCIpcmV0dXJuIHRoaXMuX3VwZGF0ZURlY3J5cHQoZSk7ZWxzZSByZXR1cm4gdGhpcy5fdXBkYXRlRW5jcnlwdChlKX07Q2lwaGVyLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uIF9idWZmZXIoZSx0KXt2YXIgcj1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsZS5sZW5ndGgtdCk7Zm9yKHZhciBpPTA7aTxyO2krKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitpXT1lW3QraV07dGhpcy5idWZmZXJPZmYrPXI7cmV0dXJuIHJ9O0NpcGhlci5wcm90b3R5cGUuX2ZsdXNoQnVmZmVyPWZ1bmN0aW9uIF9mbHVzaEJ1ZmZlcihlLHQpe3RoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLGUsdCk7dGhpcy5idWZmZXJPZmY9MDtyZXR1cm4gdGhpcy5ibG9ja1NpemV9O0NpcGhlci5wcm90b3R5cGUuX3VwZGF0ZUVuY3J5cHQ9ZnVuY3Rpb24gX3VwZGF0ZUVuY3J5cHQoZSl7dmFyIHQ9MDt2YXIgcj0wO3ZhciBpPSh0aGlzLmJ1ZmZlck9mZitlLmxlbmd0aCkvdGhpcy5ibG9ja1NpemV8MDt2YXIgbj1uZXcgQXJyYXkoaSp0aGlzLmJsb2NrU2l6ZSk7aWYodGhpcy5idWZmZXJPZmYhPT0wKXt0Kz10aGlzLl9idWZmZXIoZSx0KTtpZih0aGlzLmJ1ZmZlck9mZj09PXRoaXMuYnVmZmVyLmxlbmd0aClyKz10aGlzLl9mbHVzaEJ1ZmZlcihuLHIpfXZhciBhPWUubGVuZ3RoLShlLmxlbmd0aC10KSV0aGlzLmJsb2NrU2l6ZTtmb3IoO3Q8YTt0Kz10aGlzLmJsb2NrU2l6ZSl7dGhpcy5fdXBkYXRlKGUsdCxuLHIpO3IrPXRoaXMuYmxvY2tTaXplfWZvcig7dDxlLmxlbmd0aDt0KyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09ZVt0XTtyZXR1cm4gbn07Q2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlRGVjcnlwdD1mdW5jdGlvbiBfdXBkYXRlRGVjcnlwdChlKXt2YXIgdD0wO3ZhciByPTA7dmFyIGk9TWF0aC5jZWlsKCh0aGlzLmJ1ZmZlck9mZitlLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTE7dmFyIG49bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpO2Zvcig7aT4wO2ktLSl7dCs9dGhpcy5fYnVmZmVyKGUsdCk7cis9dGhpcy5fZmx1c2hCdWZmZXIobixyKX10Kz10aGlzLl9idWZmZXIoZSx0KTtyZXR1cm4gbn07Q2lwaGVyLnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbiBmaW5hbChlKXt2YXIgdDtpZihlKXQ9dGhpcy51cGRhdGUoZSk7dmFyIHI7aWYodGhpcy50eXBlPT09XCJlbmNyeXB0XCIpcj10aGlzLl9maW5hbEVuY3J5cHQoKTtlbHNlIHI9dGhpcy5fZmluYWxEZWNyeXB0KCk7aWYodClyZXR1cm4gdC5jb25jYXQocik7ZWxzZSByZXR1cm4gcn07Q2lwaGVyLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uIF9wYWQoZSx0KXtpZih0PT09MClyZXR1cm4gZmFsc2U7d2hpbGUodDxlLmxlbmd0aCllW3QrK109MDtyZXR1cm4gdHJ1ZX07Q2lwaGVyLnByb3RvdHlwZS5fZmluYWxFbmNyeXB0PWZ1bmN0aW9uIF9maW5hbEVuY3J5cHQoKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgZT1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLGUsMCk7cmV0dXJuIGV9O0NpcGhlci5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uIF91bnBhZChlKXtyZXR1cm4gZX07Q2lwaGVyLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uIF9maW5hbERlY3J5cHQoKXtpLmVxdWFsKHRoaXMuYnVmZmVyT2ZmLHRoaXMuYmxvY2tTaXplLFwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHRcIik7dmFyIGU9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLl9mbHVzaEJ1ZmZlcihlLDApO3JldHVybiB0aGlzLl91bnBhZChlKX19LDEwMTY6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoMzUyMyk7dmFyIG49cigzNzgyKTt2YXIgYT1yKDUzMzQpO3ZhciBzPXIoOTg3Nik7ZnVuY3Rpb24gREVTU3RhdGUoKXt0aGlzLnRtcD1uZXcgQXJyYXkoMik7dGhpcy5rZXlzPW51bGx9ZnVuY3Rpb24gREVTKGUpe3MuY2FsbCh0aGlzLGUpO3ZhciB0PW5ldyBERVNTdGF0ZTt0aGlzLl9kZXNTdGF0ZT10O3RoaXMuZGVyaXZlS2V5cyh0LGUua2V5KX1uKERFUyxzKTtlLmV4cG9ydHM9REVTO0RFUy5jcmVhdGU9ZnVuY3Rpb24gY3JlYXRlKGUpe3JldHVybiBuZXcgREVTKGUpfTt2YXIgbz1bMSwxLDIsMiwyLDIsMiwyLDEsMiwyLDIsMiwyLDIsMV07REVTLnByb3RvdHlwZS5kZXJpdmVLZXlzPWZ1bmN0aW9uIGRlcml2ZUtleXMoZSx0KXtlLmtleXM9bmV3IEFycmF5KDE2KjIpO2kuZXF1YWwodC5sZW5ndGgsdGhpcy5ibG9ja1NpemUsXCJJbnZhbGlkIGtleSBsZW5ndGhcIik7dmFyIHI9YS5yZWFkVUludDMyQkUodCwwKTt2YXIgbj1hLnJlYWRVSW50MzJCRSh0LDQpO2EucGMxKHIsbixlLnRtcCwwKTtyPWUudG1wWzBdO249ZS50bXBbMV07Zm9yKHZhciBzPTA7czxlLmtleXMubGVuZ3RoO3MrPTIpe3ZhciBoPW9bcz4+PjFdO3I9YS5yMjhzaGwocixoKTtuPWEucjI4c2hsKG4saCk7YS5wYzIocixuLGUua2V5cyxzKX19O0RFUy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbiBfdXBkYXRlKGUsdCxyLGkpe3ZhciBuPXRoaXMuX2Rlc1N0YXRlO3ZhciBzPWEucmVhZFVJbnQzMkJFKGUsdCk7dmFyIG89YS5yZWFkVUludDMyQkUoZSx0KzQpO2EuaXAocyxvLG4udG1wLDApO3M9bi50bXBbMF07bz1uLnRtcFsxXTtpZih0aGlzLnR5cGU9PT1cImVuY3J5cHRcIil0aGlzLl9lbmNyeXB0KG4scyxvLG4udG1wLDApO2Vsc2UgdGhpcy5fZGVjcnlwdChuLHMsbyxuLnRtcCwwKTtzPW4udG1wWzBdO289bi50bXBbMV07YS53cml0ZVVJbnQzMkJFKHIscyxpKTthLndyaXRlVUludDMyQkUocixvLGkrNCl9O0RFUy5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbiBfcGFkKGUsdCl7dmFyIHI9ZS5sZW5ndGgtdDtmb3IodmFyIGk9dDtpPGUubGVuZ3RoO2krKyllW2ldPXI7cmV0dXJuIHRydWV9O0RFUy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uIF91bnBhZChlKXt2YXIgdD1lW2UubGVuZ3RoLTFdO2Zvcih2YXIgcj1lLmxlbmd0aC10O3I8ZS5sZW5ndGg7cisrKWkuZXF1YWwoZVtyXSx0KTtyZXR1cm4gZS5zbGljZSgwLGUubGVuZ3RoLXQpfTtERVMucHJvdG90eXBlLl9lbmNyeXB0PWZ1bmN0aW9uIF9lbmNyeXB0KGUsdCxyLGksbil7dmFyIHM9dDt2YXIgbz1yO2Zvcih2YXIgaD0wO2g8ZS5rZXlzLmxlbmd0aDtoKz0yKXt2YXIgdT1lLmtleXNbaF07dmFyIGQ9ZS5rZXlzW2grMV07YS5leHBhbmQobyxlLnRtcCwwKTt1Xj1lLnRtcFswXTtkXj1lLnRtcFsxXTt2YXIgYz1hLnN1YnN0aXR1dGUodSxkKTt2YXIgbD1hLnBlcm11dGUoYyk7dmFyIHA9bztvPShzXmwpPj4+MDtzPXB9YS5yaXAobyxzLGksbil9O0RFUy5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24gX2RlY3J5cHQoZSx0LHIsaSxuKXt2YXIgcz1yO3ZhciBvPXQ7Zm9yKHZhciBoPWUua2V5cy5sZW5ndGgtMjtoPj0wO2gtPTIpe3ZhciB1PWUua2V5c1toXTt2YXIgZD1lLmtleXNbaCsxXTthLmV4cGFuZChzLGUudG1wLDApO3VePWUudG1wWzBdO2RePWUudG1wWzFdO3ZhciBjPWEuc3Vic3RpdHV0ZSh1LGQpO3ZhciBsPWEucGVybXV0ZShjKTt2YXIgcD1zO3M9KG9ebCk+Pj4wO289cH1hLnJpcChzLG8saSxuKX19LDYxNTk6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoMzUyMyk7dmFyIG49cigzNzgyKTt2YXIgYT1yKDk4NzYpO3ZhciBzPXIoMTAxNik7ZnVuY3Rpb24gRURFU3RhdGUoZSx0KXtpLmVxdWFsKHQubGVuZ3RoLDI0LFwiSW52YWxpZCBrZXkgbGVuZ3RoXCIpO3ZhciByPXQuc2xpY2UoMCw4KTt2YXIgbj10LnNsaWNlKDgsMTYpO3ZhciBhPXQuc2xpY2UoMTYsMjQpO2lmKGU9PT1cImVuY3J5cHRcIil7dGhpcy5jaXBoZXJzPVtzLmNyZWF0ZSh7dHlwZTpcImVuY3J5cHRcIixrZXk6cn0pLHMuY3JlYXRlKHt0eXBlOlwiZGVjcnlwdFwiLGtleTpufSkscy5jcmVhdGUoe3R5cGU6XCJlbmNyeXB0XCIsa2V5OmF9KV19ZWxzZXt0aGlzLmNpcGhlcnM9W3MuY3JlYXRlKHt0eXBlOlwiZGVjcnlwdFwiLGtleTphfSkscy5jcmVhdGUoe3R5cGU6XCJlbmNyeXB0XCIsa2V5Om59KSxzLmNyZWF0ZSh7dHlwZTpcImRlY3J5cHRcIixrZXk6cn0pXX19ZnVuY3Rpb24gRURFKGUpe2EuY2FsbCh0aGlzLGUpO3ZhciB0PW5ldyBFREVTdGF0ZSh0aGlzLnR5cGUsdGhpcy5vcHRpb25zLmtleSk7dGhpcy5fZWRlU3RhdGU9dH1uKEVERSxhKTtlLmV4cG9ydHM9RURFO0VERS5jcmVhdGU9ZnVuY3Rpb24gY3JlYXRlKGUpe3JldHVybiBuZXcgRURFKGUpfTtFREUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24gX3VwZGF0ZShlLHQscixpKXt2YXIgbj10aGlzLl9lZGVTdGF0ZTtuLmNpcGhlcnNbMF0uX3VwZGF0ZShlLHQscixpKTtuLmNpcGhlcnNbMV0uX3VwZGF0ZShyLGkscixpKTtuLmNpcGhlcnNbMl0uX3VwZGF0ZShyLGkscixpKX07RURFLnByb3RvdHlwZS5fcGFkPXMucHJvdG90eXBlLl9wYWQ7RURFLnByb3RvdHlwZS5fdW5wYWQ9cy5wcm90b3R5cGUuX3VucGFkfSw1MzM0OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5yZWFkVUludDMyQkU9ZnVuY3Rpb24gcmVhZFVJbnQzMkJFKGUsdCl7dmFyIHI9ZVswK3RdPDwyNHxlWzErdF08PDE2fGVbMit0XTw8OHxlWzMrdF07cmV0dXJuIHI+Pj4wfTt0LndyaXRlVUludDMyQkU9ZnVuY3Rpb24gd3JpdGVVSW50MzJCRShlLHQscil7ZVswK3JdPXQ+Pj4yNDtlWzErcl09dD4+PjE2JjI1NTtlWzIrcl09dD4+PjgmMjU1O2VbMytyXT10JjI1NX07dC5pcD1mdW5jdGlvbiBpcChlLHQscixpKXt2YXIgbj0wO3ZhciBhPTA7Zm9yKHZhciBzPTY7cz49MDtzLT0yKXtmb3IodmFyIG89MDtvPD0yNDtvKz04KXtuPDw9MTtufD10Pj4+bytzJjF9Zm9yKHZhciBvPTA7bzw9MjQ7bys9OCl7bjw8PTE7bnw9ZT4+Pm8rcyYxfX1mb3IodmFyIHM9NjtzPj0wO3MtPTIpe2Zvcih2YXIgbz0xO288PTI1O28rPTgpe2E8PD0xO2F8PXQ+Pj5vK3MmMX1mb3IodmFyIG89MTtvPD0yNTtvKz04KXthPDw9MTthfD1lPj4+bytzJjF9fXJbaSswXT1uPj4+MDtyW2krMV09YT4+PjB9O3QucmlwPWZ1bmN0aW9uIHJpcChlLHQscixpKXt2YXIgbj0wO3ZhciBhPTA7Zm9yKHZhciBzPTA7czw0O3MrKyl7Zm9yKHZhciBvPTI0O28+PTA7by09OCl7bjw8PTE7bnw9dD4+Pm8rcyYxO248PD0xO258PWU+Pj5vK3MmMX19Zm9yKHZhciBzPTQ7czw4O3MrKyl7Zm9yKHZhciBvPTI0O28+PTA7by09OCl7YTw8PTE7YXw9dD4+Pm8rcyYxO2E8PD0xO2F8PWU+Pj5vK3MmMX19cltpKzBdPW4+Pj4wO3JbaSsxXT1hPj4+MH07dC5wYzE9ZnVuY3Rpb24gcGMxKGUsdCxyLGkpe3ZhciBuPTA7dmFyIGE9MDtmb3IodmFyIHM9NztzPj01O3MtLSl7Zm9yKHZhciBvPTA7bzw9MjQ7bys9OCl7bjw8PTE7bnw9dD4+bytzJjF9Zm9yKHZhciBvPTA7bzw9MjQ7bys9OCl7bjw8PTE7bnw9ZT4+bytzJjF9fWZvcih2YXIgbz0wO288PTI0O28rPTgpe248PD0xO258PXQ+Pm8rcyYxfWZvcih2YXIgcz0xO3M8PTM7cysrKXtmb3IodmFyIG89MDtvPD0yNDtvKz04KXthPDw9MTthfD10Pj5vK3MmMX1mb3IodmFyIG89MDtvPD0yNDtvKz04KXthPDw9MTthfD1lPj5vK3MmMX19Zm9yKHZhciBvPTA7bzw9MjQ7bys9OCl7YTw8PTE7YXw9ZT4+bytzJjF9cltpKzBdPW4+Pj4wO3JbaSsxXT1hPj4+MH07dC5yMjhzaGw9ZnVuY3Rpb24gcjI4c2hsKGUsdCl7cmV0dXJuIGU8PHQmMjY4NDM1NDU1fGU+Pj4yOC10fTt2YXIgcj1bMTQsMTEsMTcsNCwyNywyMywyNSwwLDEzLDIyLDcsMTgsNSw5LDE2LDI0LDIsMjAsMTIsMjEsMSw4LDE1LDI2LDE1LDQsMjUsMTksOSwxLDI2LDE2LDUsMTEsMjMsOCwxMiw3LDE3LDAsMjIsMywxMCwxNCw2LDIwLDI3LDI0XTt0LnBjMj1mdW5jdGlvbiBwYzIoZSx0LGksbil7dmFyIGE9MDt2YXIgcz0wO3ZhciBvPXIubGVuZ3RoPj4+MTtmb3IodmFyIGg9MDtoPG87aCsrKXthPDw9MTthfD1lPj4+cltoXSYxfWZvcih2YXIgaD1vO2g8ci5sZW5ndGg7aCsrKXtzPDw9MTtzfD10Pj4+cltoXSYxfWlbbiswXT1hPj4+MDtpW24rMV09cz4+PjB9O3QuZXhwYW5kPWZ1bmN0aW9uIGV4cGFuZChlLHQscil7dmFyIGk9MDt2YXIgbj0wO2k9KGUmMSk8PDV8ZT4+PjI3O2Zvcih2YXIgYT0yMzthPj0xNTthLT00KXtpPDw9NjtpfD1lPj4+YSY2M31mb3IodmFyIGE9MTE7YT49MzthLT00KXtufD1lPj4+YSY2MztuPDw9Nn1ufD0oZSYzMSk8PDF8ZT4+PjMxO3RbciswXT1pPj4+MDt0W3IrMV09bj4+PjB9O3ZhciBpPVsxNCwwLDQsMTUsMTMsNywxLDQsMiwxNCwxNSwyLDExLDEzLDgsMSwzLDEwLDEwLDYsNiwxMiwxMiwxMSw1LDksOSw1LDAsMyw3LDgsNCwxNSwxLDEyLDE0LDgsOCwyLDEzLDQsNiw5LDIsMSwxMSw3LDE1LDUsMTIsMTEsOSwzLDcsMTQsMywxMCwxMCwwLDUsNiwwLDEzLDE1LDMsMSwxMyw4LDQsMTQsNyw2LDE1LDExLDIsMyw4LDQsMTQsOSwxMiw3LDAsMiwxLDEzLDEwLDEyLDYsMCw5LDUsMTEsMTAsNSwwLDEzLDE0LDgsNywxMCwxMSwxLDEwLDMsNCwxNSwxMyw0LDEsMiw1LDExLDgsNiwxMiw3LDYsMTIsOSwwLDMsNSwyLDE0LDE1LDksMTAsMTMsMCw3LDksMCwxNCw5LDYsMywzLDQsMTUsNiw1LDEwLDEsMiwxMyw4LDEyLDUsNywxNCwxMSwxMiw0LDExLDIsMTUsOCwxLDEzLDEsNiwxMCw0LDEzLDksMCw4LDYsMTUsOSwzLDgsMCw3LDExLDQsMSwxNSwyLDE0LDEyLDMsNSwxMSwxMCw1LDE0LDIsNywxMiw3LDEzLDEzLDgsMTQsMTEsMyw1LDAsNiw2LDE1LDksMCwxMCwzLDEsNCwyLDcsOCwyLDUsMTIsMTEsMSwxMiwxMCw0LDE0LDE1LDksMTAsMyw2LDE1LDksMCwwLDYsMTIsMTAsMTEsMSw3LDEzLDEzLDgsMTUsOSwxLDQsMyw1LDE0LDExLDUsMTIsMiw3LDgsMiw0LDE0LDIsMTQsMTIsMTEsNCwyLDEsMTIsNyw0LDEwLDcsMTEsMTMsNiwxLDgsNSw1LDAsMywxNSwxNSwxMCwxMywzLDAsOSwxNCw4LDksNiw0LDExLDIsOCwxLDEyLDExLDcsMTAsMSwxMywxNCw3LDIsOCwxMywxNSw2LDksMTUsMTIsMCw1LDksNiwxMCwzLDQsMCw1LDE0LDMsMTIsMTAsMSwxNSwxMCw0LDE1LDIsOSw3LDIsMTIsNiw5LDgsNSwwLDYsMTMsMSwzLDEzLDQsMTQsMTQsMCw3LDExLDUsMywxMSw4LDksNCwxNCwzLDE1LDIsNSwxMiwyLDksOCw1LDEyLDE1LDMsMTAsNywxMSwwLDE0LDQsMSwxMCw3LDEsNiwxMywwLDExLDgsNiwxMyw0LDEzLDExLDAsMiwxMSwxNCw3LDE1LDQsMCw5LDgsMSwxMywxMCwzLDE0LDEyLDMsOSw1LDcsMTIsNSwyLDEwLDE1LDYsOCwxLDYsMSw2LDQsMTEsMTEsMTMsMTMsOCwxMiwxLDMsNCw3LDEwLDE0LDcsMTAsOSwxNSw1LDYsMCw4LDE1LDAsMTQsNSwyLDksMywyLDEyLDEzLDEsMiwxNSw4LDEzLDQsOCw2LDEwLDE1LDMsMTEsNywxLDQsMTAsMTIsOSw1LDMsNiwxNCwxMSw1LDAsMCwxNCwxMiw5LDcsMiw3LDIsMTEsMSw0LDE0LDEsNyw5LDQsMTIsMTAsMTQsOCwyLDEzLDAsMTUsNiwxMiwxMCw5LDEzLDAsMTUsMywzLDUsNSw2LDgsMTFdO3Quc3Vic3RpdHV0ZT1mdW5jdGlvbiBzdWJzdGl0dXRlKGUsdCl7dmFyIHI9MDtmb3IodmFyIG49MDtuPDQ7bisrKXt2YXIgYT1lPj4+MTgtbio2JjYzO3ZhciBzPWlbbio2NCthXTtyPDw9NDtyfD1zfWZvcih2YXIgbj0wO248NDtuKyspe3ZhciBhPXQ+Pj4xOC1uKjYmNjM7dmFyIHM9aVs0KjY0K24qNjQrYV07cjw8PTQ7cnw9c31yZXR1cm4gcj4+PjB9O3ZhciBuPVsxNiwyNSwxMiwxMSwzLDIwLDQsMTUsMzEsMTcsOSw2LDI3LDE0LDEsMjIsMzAsMjQsOCwxOCwwLDUsMjksMjMsMTMsMTksMiwyNiwxMCwyMSwyOCw3XTt0LnBlcm11dGU9ZnVuY3Rpb24gcGVybXV0ZShlKXt2YXIgdD0wO2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt0PDw9MTt0fD1lPj4+bltyXSYxfXJldHVybiB0Pj4+MH07dC5wYWRTcGxpdD1mdW5jdGlvbiBwYWRTcGxpdChlLHQscil7dmFyIGk9ZS50b1N0cmluZygyKTt3aGlsZShpLmxlbmd0aDx0KWk9XCIwXCIraTt2YXIgbj1bXTtmb3IodmFyIGE9MDthPHQ7YSs9ciluLnB1c2goaS5zbGljZShhLGErcikpO3JldHVybiBuLmpvaW4oXCIgXCIpfX0sNjU4NzpmdW5jdGlvbihlLHQscil7dmFyIGk9cigyOTYpO3ZhciBuPXIoNzk5Mik7dmFyIGE9cigzNzMpO2Z1bmN0aW9uIGdldERpZmZpZUhlbGxtYW4oZSl7dmFyIHQ9bmV3IEJ1ZmZlcihuW2VdLnByaW1lLFwiaGV4XCIpO3ZhciByPW5ldyBCdWZmZXIobltlXS5nZW4sXCJoZXhcIik7cmV0dXJuIG5ldyBhKHQscil9dmFyIHM9e2JpbmFyeTp0cnVlLGhleDp0cnVlLGJhc2U2NDp0cnVlfTtmdW5jdGlvbiBjcmVhdGVEaWZmaWVIZWxsbWFuKGUsdCxyLG4pe2lmKEJ1ZmZlci5pc0J1ZmZlcih0KXx8c1t0XT09PXVuZGVmaW5lZCl7cmV0dXJuIGNyZWF0ZURpZmZpZUhlbGxtYW4oZSxcImJpbmFyeVwiLHQscil9dD10fHxcImJpbmFyeVwiO249bnx8XCJiaW5hcnlcIjtyPXJ8fG5ldyBCdWZmZXIoWzJdKTtpZighQnVmZmVyLmlzQnVmZmVyKHIpKXtyPW5ldyBCdWZmZXIocixuKX1pZih0eXBlb2YgZT09PVwibnVtYmVyXCIpe3JldHVybiBuZXcgYShpKGUscikscix0cnVlKX1pZighQnVmZmVyLmlzQnVmZmVyKGUpKXtlPW5ldyBCdWZmZXIoZSx0KX1yZXR1cm4gbmV3IGEoZSxyLHRydWUpfXQuRGlmZmllSGVsbG1hbkdyb3VwPXQuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPXQuZ2V0RGlmZmllSGVsbG1hbj1nZXREaWZmaWVIZWxsbWFuO3QuY3JlYXRlRGlmZmllSGVsbG1hbj10LkRpZmZpZUhlbGxtYW49Y3JlYXRlRGlmZmllSGVsbG1hbn0sMzczOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDcxMSk7dmFyIG49cigxMzU0KTt2YXIgYT1uZXcgbjt2YXIgcz1uZXcgaSgyNCk7dmFyIG89bmV3IGkoMTEpO3ZhciBoPW5ldyBpKDEwKTt2YXIgdT1uZXcgaSgzKTt2YXIgZD1uZXcgaSg3KTt2YXIgYz1yKDI5Nik7dmFyIGw9cig3MjIzKTtlLmV4cG9ydHM9REg7ZnVuY3Rpb24gc2V0UHVibGljS2V5KGUsdCl7dD10fHxcInV0ZjhcIjtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXtlPW5ldyBCdWZmZXIoZSx0KX10aGlzLl9wdWI9bmV3IGkoZSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gc2V0UHJpdmF0ZUtleShlLHQpe3Q9dHx8XCJ1dGY4XCI7aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl7ZT1uZXcgQnVmZmVyKGUsdCl9dGhpcy5fcHJpdj1uZXcgaShlKTtyZXR1cm4gdGhpc312YXIgcD17fTtmdW5jdGlvbiBjaGVja1ByaW1lKGUsdCl7dmFyIHI9dC50b1N0cmluZyhcImhleFwiKTt2YXIgaT1bcixlLnRvU3RyaW5nKDE2KV0uam9pbihcIl9cIik7aWYoaSBpbiBwKXtyZXR1cm4gcFtpXX12YXIgbj0wO2lmKGUuaXNFdmVuKCl8fCFjLnNpbXBsZVNpZXZlfHwhYy5mZXJtYXRUZXN0KGUpfHwhYS50ZXN0KGUpKXtuKz0xO2lmKHI9PT1cIjAyXCJ8fHI9PT1cIjA1XCIpe24rPTh9ZWxzZXtuKz00fXBbaV09bjtyZXR1cm4gbn1pZighYS50ZXN0KGUuc2hybigxKSkpe24rPTJ9dmFyIGw7c3dpdGNoKHIpe2Nhc2VcIjAyXCI6aWYoZS5tb2QocykuY21wKG8pKXtuKz04fWJyZWFrO2Nhc2VcIjA1XCI6bD1lLm1vZChoKTtpZihsLmNtcCh1KSYmbC5jbXAoZCkpe24rPTh9YnJlYWs7ZGVmYXVsdDpuKz00fXBbaV09bjtyZXR1cm4gbn1mdW5jdGlvbiBESChlLHQscil7dGhpcy5zZXRHZW5lcmF0b3IodCk7dGhpcy5fX3ByaW1lPW5ldyBpKGUpO3RoaXMuX3ByaW1lPWkubW9udCh0aGlzLl9fcHJpbWUpO3RoaXMuX3ByaW1lTGVuPWUubGVuZ3RoO3RoaXMuX3B1Yj11bmRlZmluZWQ7dGhpcy5fcHJpdj11bmRlZmluZWQ7dGhpcy5fcHJpbWVDb2RlPXVuZGVmaW5lZDtpZihyKXt0aGlzLnNldFB1YmxpY0tleT1zZXRQdWJsaWNLZXk7dGhpcy5zZXRQcml2YXRlS2V5PXNldFByaXZhdGVLZXl9ZWxzZXt0aGlzLl9wcmltZUNvZGU9OH19T2JqZWN0LmRlZmluZVByb3BlcnR5KERILnByb3RvdHlwZSxcInZlcmlmeUVycm9yXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5fcHJpbWVDb2RlIT09XCJudW1iZXJcIil7dGhpcy5fcHJpbWVDb2RlPWNoZWNrUHJpbWUodGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pfXJldHVybiB0aGlzLl9wcmltZUNvZGV9fSk7REgucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbigpe2lmKCF0aGlzLl9wcml2KXt0aGlzLl9wcml2PW5ldyBpKGwodGhpcy5fcHJpbWVMZW4pKX10aGlzLl9wdWI9dGhpcy5fZ2VuLnRvUmVkKHRoaXMuX3ByaW1lKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpO3JldHVybiB0aGlzLmdldFB1YmxpY0tleSgpfTtESC5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihlKXtlPW5ldyBpKGUpO2U9ZS50b1JlZCh0aGlzLl9wcmltZSk7dmFyIHQ9ZS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpO3ZhciByPW5ldyBCdWZmZXIodC50b0FycmF5KCkpO3ZhciBuPXRoaXMuZ2V0UHJpbWUoKTtpZihyLmxlbmd0aDxuLmxlbmd0aCl7dmFyIGE9bmV3IEJ1ZmZlcihuLmxlbmd0aC1yLmxlbmd0aCk7YS5maWxsKDApO3I9QnVmZmVyLmNvbmNhdChbYSxyXSl9cmV0dXJuIHJ9O0RILnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24gZ2V0UHVibGljS2V5KGUpe3JldHVybiBmb3JtYXRSZXR1cm5WYWx1ZSh0aGlzLl9wdWIsZSl9O0RILnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uIGdldFByaXZhdGVLZXkoZSl7cmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKHRoaXMuX3ByaXYsZSl9O0RILnByb3RvdHlwZS5nZXRQcmltZT1mdW5jdGlvbihlKXtyZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5fX3ByaW1lLGUpfTtESC5wcm90b3R5cGUuZ2V0R2VuZXJhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBmb3JtYXRSZXR1cm5WYWx1ZSh0aGlzLl9nZW4sZSl9O0RILnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24oZSx0KXt0PXR8fFwidXRmOFwiO2lmKCFCdWZmZXIuaXNCdWZmZXIoZSkpe2U9bmV3IEJ1ZmZlcihlLHQpfXRoaXMuX19nZW49ZTt0aGlzLl9nZW49bmV3IGkoZSk7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGZvcm1hdFJldHVyblZhbHVlKGUsdCl7dmFyIHI9bmV3IEJ1ZmZlcihlLnRvQXJyYXkoKSk7aWYoIXQpe3JldHVybiByfWVsc2V7cmV0dXJuIHIudG9TdHJpbmcodCl9fX0sMjk2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDcyMjMpO2UuZXhwb3J0cz1maW5kUHJpbWU7ZmluZFByaW1lLnNpbXBsZVNpZXZlPXNpbXBsZVNpZXZlO2ZpbmRQcmltZS5mZXJtYXRUZXN0PWZlcm1hdFRlc3Q7dmFyIG49cig3MTEpO3ZhciBhPW5ldyBuKDI0KTt2YXIgcz1yKDEzNTQpO3ZhciBvPW5ldyBzO3ZhciBoPW5ldyBuKDEpO3ZhciB1PW5ldyBuKDIpO3ZhciBkPW5ldyBuKDUpO3ZhciBjPW5ldyBuKDE2KTt2YXIgbD1uZXcgbig4KTt2YXIgcD1uZXcgbigxMCk7dmFyIHY9bmV3IG4oMyk7dmFyIGI9bmV3IG4oNyk7dmFyIG09bmV3IG4oMTEpO3ZhciB5PW5ldyBuKDQpO3ZhciBnPW5ldyBuKDEyKTt2YXIgXz1udWxsO2Z1bmN0aW9uIF9nZXRQcmltZXMoKXtpZihfIT09bnVsbClyZXR1cm4gXzt2YXIgZT0xMDQ4NTc2O3ZhciB0PVtdO3RbMF09Mjtmb3IodmFyIHI9MSxpPTM7aTxlO2krPTIpe3ZhciBuPU1hdGguY2VpbChNYXRoLnNxcnQoaSkpO2Zvcih2YXIgYT0wO2E8ciYmdFthXTw9bjthKyspaWYoaSV0W2FdPT09MClicmVhaztpZihyIT09YSYmdFthXTw9biljb250aW51ZTt0W3IrK109aX1fPXQ7cmV0dXJuIHR9ZnVuY3Rpb24gc2ltcGxlU2lldmUoZSl7dmFyIHQ9X2dldFByaW1lcygpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUubW9kbih0W3JdKT09PTApe2lmKGUuY21wbih0W3JdKT09PTApe3JldHVybiB0cnVlfWVsc2V7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1mdW5jdGlvbiBmZXJtYXRUZXN0KGUpe3ZhciB0PW4ubW9udChlKTtyZXR1cm4gdS50b1JlZCh0KS5yZWRQb3coZS5zdWJuKDEpKS5mcm9tUmVkKCkuY21wbigxKT09PTB9ZnVuY3Rpb24gZmluZFByaW1lKGUsdCl7aWYoZTwxNil7aWYodD09PTJ8fHQ9PT01KXtyZXR1cm4gbmV3IG4oWzE0MCwxMjNdKX1lbHNle3JldHVybiBuZXcgbihbMTQwLDM5XSl9fXQ9bmV3IG4odCk7dmFyIHIsczt3aGlsZSh0cnVlKXtyPW5ldyBuKGkoTWF0aC5jZWlsKGUvOCkpKTt3aGlsZShyLmJpdExlbmd0aCgpPmUpe3IuaXNocm4oMSl9aWYoci5pc0V2ZW4oKSl7ci5pYWRkKGgpfWlmKCFyLnRlc3RuKDEpKXtyLmlhZGQodSl9aWYoIXQuY21wKHUpKXt3aGlsZShyLm1vZChhKS5jbXAobSkpe3IuaWFkZCh5KX19ZWxzZSBpZighdC5jbXAoZCkpe3doaWxlKHIubW9kKHApLmNtcCh2KSl7ci5pYWRkKHkpfX1zPXIuc2hybigxKTtpZihzaW1wbGVTaWV2ZShzKSYmc2ltcGxlU2lldmUocikmJmZlcm1hdFRlc3QocykmJmZlcm1hdFRlc3QocikmJm8udGVzdChzKSYmby50ZXN0KHIpKXtyZXR1cm4gcn19fX0sOTQ5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT10O2kudmVyc2lvbj1yKDI1MzEpLmk4O2kudXRpbHM9cig0NDAxKTtpLnJhbmQ9cigzNTAwKTtpLmN1cnZlPXIoOTM1OSk7aS5jdXJ2ZXM9cig2MjI2KTtpLmVjPXIoNDA4OCk7aS5lZGRzYT1yKDg1MTEpfSwyNzI3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDcxMSk7dmFyIG49cig0NDAxKTt2YXIgYT1uLmdldE5BRjt2YXIgcz1uLmdldEpTRjt2YXIgbz1uLmFzc2VydDtmdW5jdGlvbiBCYXNlQ3VydmUoZSx0KXt0aGlzLnR5cGU9ZTt0aGlzLnA9bmV3IGkodC5wLDE2KTt0aGlzLnJlZD10LnByaW1lP2kucmVkKHQucHJpbWUpOmkubW9udCh0aGlzLnApO3RoaXMuemVybz1uZXcgaSgwKS50b1JlZCh0aGlzLnJlZCk7dGhpcy5vbmU9bmV3IGkoMSkudG9SZWQodGhpcy5yZWQpO3RoaXMudHdvPW5ldyBpKDIpLnRvUmVkKHRoaXMucmVkKTt0aGlzLm49dC5uJiZuZXcgaSh0Lm4sMTYpO3RoaXMuZz10LmcmJnRoaXMucG9pbnRGcm9tSlNPTih0LmcsdC5nUmVkKTt0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpO3RoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCk7dGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KTt0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpO3RoaXMuX2JpdExlbmd0aD10aGlzLm4/dGhpcy5uLmJpdExlbmd0aCgpOjA7dmFyIHI9dGhpcy5uJiZ0aGlzLnAuZGl2KHRoaXMubik7aWYoIXJ8fHIuY21wbigxMDApPjApe3RoaXMucmVkTj1udWxsfWVsc2V7dGhpcy5fbWF4d2VsbFRyaWNrPXRydWU7dGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCl9fWUuZXhwb3J0cz1CYXNlQ3VydmU7QmFzZUN1cnZlLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbiBwb2ludCgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKX07QmFzZUN1cnZlLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbiB2YWxpZGF0ZSgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKX07QmFzZUN1cnZlLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24gX2ZpeGVkTmFmTXVsKGUsdCl7byhlLnByZWNvbXB1dGVkKTt2YXIgcj1lLl9nZXREb3VibGVzKCk7dmFyIGk9YSh0LDEsdGhpcy5fYml0TGVuZ3RoKTt2YXIgbj0oMTw8ci5zdGVwKzEpLShyLnN0ZXAlMj09PTA/MjoxKTtuLz0zO3ZhciBzPVtdO2Zvcih2YXIgaD0wO2g8aS5sZW5ndGg7aCs9ci5zdGVwKXt2YXIgdT0wO2Zvcih2YXIgdD1oK3Iuc3RlcC0xO3Q+PWg7dC0tKXU9KHU8PDEpK2lbdF07cy5wdXNoKHUpfXZhciBkPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKTt2YXIgYz10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCk7Zm9yKHZhciBsPW47bD4wO2wtLSl7Zm9yKHZhciBoPTA7aDxzLmxlbmd0aDtoKyspe3ZhciB1PXNbaF07aWYodT09PWwpYz1jLm1peGVkQWRkKHIucG9pbnRzW2hdKTtlbHNlIGlmKHU9PT0tbCljPWMubWl4ZWRBZGQoci5wb2ludHNbaF0ubmVnKCkpfWQ9ZC5hZGQoYyl9cmV0dXJuIGQudG9QKCl9O0Jhc2VDdXJ2ZS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24gX3duYWZNdWwoZSx0KXt2YXIgcj00O3ZhciBpPWUuX2dldE5BRlBvaW50cyhyKTtyPWkud25kO3ZhciBuPWkucG9pbnRzO3ZhciBzPWEodCxyLHRoaXMuX2JpdExlbmd0aCk7dmFyIGg9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpO2Zvcih2YXIgdT1zLmxlbmd0aC0xO3U+PTA7dS0tKXtmb3IodmFyIHQ9MDt1Pj0wJiZzW3VdPT09MDt1LS0pdCsrO2lmKHU+PTApdCsrO2g9aC5kYmxwKHQpO2lmKHU8MClicmVhazt2YXIgZD1zW3VdO28oZCE9PTApO2lmKGUudHlwZT09PVwiYWZmaW5lXCIpe2lmKGQ+MCloPWgubWl4ZWRBZGQobltkLTE+PjFdKTtlbHNlIGg9aC5taXhlZEFkZChuWy1kLTE+PjFdLm5lZygpKX1lbHNle2lmKGQ+MCloPWguYWRkKG5bZC0xPj4xXSk7ZWxzZSBoPWguYWRkKG5bLWQtMT4+MV0ubmVnKCkpfX1yZXR1cm4gZS50eXBlPT09XCJhZmZpbmVcIj9oLnRvUCgpOmh9O0Jhc2VDdXJ2ZS5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24gX3duYWZNdWxBZGQoZSx0LHIsaSxuKXt2YXIgbz10aGlzLl93bmFmVDE7dmFyIGg9dGhpcy5fd25hZlQyO3ZhciB1PXRoaXMuX3duYWZUMzt2YXIgZD0wO2Zvcih2YXIgYz0wO2M8aTtjKyspe3ZhciBsPXRbY107dmFyIHA9bC5fZ2V0TkFGUG9pbnRzKGUpO29bY109cC53bmQ7aFtjXT1wLnBvaW50c31mb3IodmFyIGM9aS0xO2M+PTE7Yy09Mil7dmFyIHY9Yy0xO3ZhciBiPWM7aWYob1t2XSE9PTF8fG9bYl0hPT0xKXt1W3ZdPWEoclt2XSxvW3ZdLHRoaXMuX2JpdExlbmd0aCk7dVtiXT1hKHJbYl0sb1tiXSx0aGlzLl9iaXRMZW5ndGgpO2Q9TWF0aC5tYXgodVt2XS5sZW5ndGgsZCk7ZD1NYXRoLm1heCh1W2JdLmxlbmd0aCxkKTtjb250aW51ZX12YXIgbT1bdFt2XSxudWxsLG51bGwsdFtiXV07aWYodFt2XS55LmNtcCh0W2JdLnkpPT09MCl7bVsxXT10W3ZdLmFkZCh0W2JdKTttWzJdPXRbdl0udG9KKCkubWl4ZWRBZGQodFtiXS5uZWcoKSl9ZWxzZSBpZih0W3ZdLnkuY21wKHRbYl0ueS5yZWROZWcoKSk9PT0wKXttWzFdPXRbdl0udG9KKCkubWl4ZWRBZGQodFtiXSk7bVsyXT10W3ZdLmFkZCh0W2JdLm5lZygpKX1lbHNle21bMV09dFt2XS50b0ooKS5taXhlZEFkZCh0W2JdKTttWzJdPXRbdl0udG9KKCkubWl4ZWRBZGQodFtiXS5uZWcoKSl9dmFyIHk9Wy0zLC0xLC01LC03LDAsNyw1LDEsM107dmFyIGc9cyhyW3ZdLHJbYl0pO2Q9TWF0aC5tYXgoZ1swXS5sZW5ndGgsZCk7dVt2XT1uZXcgQXJyYXkoZCk7dVtiXT1uZXcgQXJyYXkoZCk7Zm9yKHZhciBfPTA7XzxkO18rKyl7dmFyIHc9Z1swXVtfXXwwO3ZhciBNPWdbMV1bX118MDt1W3ZdW19dPXlbKHcrMSkqMysoTSsxKV07dVtiXVtfXT0wO2hbdl09bX19dmFyIEI9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpO3ZhciBFPXRoaXMuX3duYWZUNDtmb3IodmFyIGM9ZDtjPj0wO2MtLSl7dmFyIGs9MDt3aGlsZShjPj0wKXt2YXIgQT10cnVlO2Zvcih2YXIgXz0wO188aTtfKyspe0VbX109dVtfXVtjXXwwO2lmKEVbX10hPT0wKUE9ZmFsc2V9aWYoIUEpYnJlYWs7aysrO2MtLX1pZihjPj0wKWsrKztCPUIuZGJscChrKTtpZihjPDApYnJlYWs7Zm9yKHZhciBfPTA7XzxpO18rKyl7dmFyIE49RVtfXTt2YXIgbDtpZihOPT09MCljb250aW51ZTtlbHNlIGlmKE4+MClsPWhbX11bTi0xPj4xXTtlbHNlIGlmKE48MClsPWhbX11bLU4tMT4+MV0ubmVnKCk7aWYobC50eXBlPT09XCJhZmZpbmVcIilCPUIubWl4ZWRBZGQobCk7ZWxzZSBCPUIuYWRkKGwpfX1mb3IodmFyIGM9MDtjPGk7YysrKWhbY109bnVsbDtpZihuKXJldHVybiBCO2Vsc2UgcmV0dXJuIEIudG9QKCl9O2Z1bmN0aW9uIEJhc2VQb2ludChlLHQpe3RoaXMuY3VydmU9ZTt0aGlzLnR5cGU9dDt0aGlzLnByZWNvbXB1dGVkPW51bGx9QmFzZUN1cnZlLkJhc2VQb2ludD1CYXNlUG9pbnQ7QmFzZVBvaW50LnByb3RvdHlwZS5lcT1mdW5jdGlvbiBlcSgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKX07QmFzZVBvaW50LnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbiB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfTtCYXNlQ3VydmUucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uIGRlY29kZVBvaW50KGUsdCl7ZT1uLnRvQXJyYXkoZSx0KTt2YXIgcj10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKChlWzBdPT09NHx8ZVswXT09PTZ8fGVbMF09PT03KSYmZS5sZW5ndGgtMT09PTIqcil7aWYoZVswXT09PTYpbyhlW2UubGVuZ3RoLTFdJTI9PT0wKTtlbHNlIGlmKGVbMF09PT03KW8oZVtlLmxlbmd0aC0xXSUyPT09MSk7dmFyIGk9dGhpcy5wb2ludChlLnNsaWNlKDEsMStyKSxlLnNsaWNlKDErciwxKzIqcikpO3JldHVybiBpfWVsc2UgaWYoKGVbMF09PT0yfHxlWzBdPT09MykmJmUubGVuZ3RoLTE9PT1yKXtyZXR1cm4gdGhpcy5wb2ludEZyb21YKGUuc2xpY2UoMSwxK3IpLGVbMF09PT0zKX10aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHBvaW50IGZvcm1hdFwiKX07QmFzZVBvaW50LnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9uIGVuY29kZUNvbXByZXNzZWQoZSl7cmV0dXJuIHRoaXMuZW5jb2RlKGUsdHJ1ZSl9O0Jhc2VQb2ludC5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbiBfZW5jb2RlKGUpe3ZhciB0PXRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCk7dmFyIHI9dGhpcy5nZXRYKCkudG9BcnJheShcImJlXCIsdCk7aWYoZSlyZXR1cm5bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQocik7cmV0dXJuWzRdLmNvbmNhdChyLHRoaXMuZ2V0WSgpLnRvQXJyYXkoXCJiZVwiLHQpKX07QmFzZVBvaW50LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24gZW5jb2RlKGUsdCl7cmV0dXJuIG4uZW5jb2RlKHRoaXMuX2VuY29kZSh0KSxlKX07QmFzZVBvaW50LnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uIHByZWNvbXB1dGUoZSl7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4gdGhpczt2YXIgdD17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07dC5uYWY9dGhpcy5fZ2V0TkFGUG9pbnRzKDgpO3QuZG91Ymxlcz10aGlzLl9nZXREb3VibGVzKDQsZSk7dC5iZXRhPXRoaXMuX2dldEJldGEoKTt0aGlzLnByZWNvbXB1dGVkPXQ7cmV0dXJuIHRoaXN9O0Jhc2VQb2ludC5wcm90b3R5cGUuX2hhc0RvdWJsZXM9ZnVuY3Rpb24gX2hhc0RvdWJsZXMoZSl7aWYoIXRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIGZhbHNlO3ZhciB0PXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztpZighdClyZXR1cm4gZmFsc2U7cmV0dXJuIHQucG9pbnRzLmxlbmd0aD49TWF0aC5jZWlsKChlLmJpdExlbmd0aCgpKzEpL3Quc3RlcCl9O0Jhc2VQb2ludC5wcm90b3R5cGUuX2dldERvdWJsZXM9ZnVuY3Rpb24gX2dldERvdWJsZXMoZSx0KXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQuZG91Ymxlczt2YXIgcj1bdGhpc107dmFyIGk9dGhpcztmb3IodmFyIG49MDtuPHQ7bis9ZSl7Zm9yKHZhciBhPTA7YTxlO2ErKylpPWkuZGJsKCk7ci5wdXNoKGkpfXJldHVybntzdGVwOmUscG9pbnRzOnJ9fTtCYXNlUG9pbnQucHJvdG90eXBlLl9nZXROQUZQb2ludHM9ZnVuY3Rpb24gX2dldE5BRlBvaW50cyhlKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLm5hZilyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5uYWY7dmFyIHQ9W3RoaXNdO3ZhciByPSgxPDxlKS0xO3ZhciBpPXI9PT0xP251bGw6dGhpcy5kYmwoKTtmb3IodmFyIG49MTtuPHI7bisrKXRbbl09dFtuLTFdLmFkZChpKTtyZXR1cm57d25kOmUscG9pbnRzOnR9fTtCYXNlUG9pbnQucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uIF9nZXRCZXRhKCl7cmV0dXJuIG51bGx9O0Jhc2VQb2ludC5wcm90b3R5cGUuZGJscD1mdW5jdGlvbiBkYmxwKGUpe3ZhciB0PXRoaXM7Zm9yKHZhciByPTA7cjxlO3IrKyl0PXQuZGJsKCk7cmV0dXJuIHR9fSwyNzA1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDQ0MDEpO3ZhciBuPXIoNzExKTt2YXIgYT1yKDM3ODIpO3ZhciBzPXIoMjcyNyk7dmFyIG89aS5hc3NlcnQ7ZnVuY3Rpb24gRWR3YXJkc0N1cnZlKGUpe3RoaXMudHdpc3RlZD0oZS5hfDApIT09MTt0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmKGUuYXwwKT09PS0xO3RoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQTtzLmNhbGwodGhpcyxcImVkd2FyZHNcIixlKTt0aGlzLmE9bmV3IG4oZS5hLDE2KS51bW9kKHRoaXMucmVkLm0pO3RoaXMuYT10aGlzLmEudG9SZWQodGhpcy5yZWQpO3RoaXMuYz1uZXcgbihlLmMsMTYpLnRvUmVkKHRoaXMucmVkKTt0aGlzLmMyPXRoaXMuYy5yZWRTcXIoKTt0aGlzLmQ9bmV3IG4oZS5kLDE2KS50b1JlZCh0aGlzLnJlZCk7dGhpcy5kZD10aGlzLmQucmVkQWRkKHRoaXMuZCk7byghdGhpcy50d2lzdGVkfHx0aGlzLmMuZnJvbVJlZCgpLmNtcG4oMSk9PT0wKTt0aGlzLm9uZUM9KGUuY3wwKT09PTF9YShFZHdhcmRzQ3VydmUscyk7ZS5leHBvcnRzPUVkd2FyZHNDdXJ2ZTtFZHdhcmRzQ3VydmUucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uIF9tdWxBKGUpe2lmKHRoaXMubU9uZUEpcmV0dXJuIGUucmVkTmVnKCk7ZWxzZSByZXR1cm4gdGhpcy5hLnJlZE11bChlKX07RWR3YXJkc0N1cnZlLnByb3RvdHlwZS5fbXVsQz1mdW5jdGlvbiBfbXVsQyhlKXtpZih0aGlzLm9uZUMpcmV0dXJuIGU7ZWxzZSByZXR1cm4gdGhpcy5jLnJlZE11bChlKX07RWR3YXJkc0N1cnZlLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24ganBvaW50KGUsdCxyLGkpe3JldHVybiB0aGlzLnBvaW50KGUsdCxyLGkpfTtFZHdhcmRzQ3VydmUucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24gcG9pbnRGcm9tWChlLHQpe2U9bmV3IG4oZSwxNik7aWYoIWUucmVkKWU9ZS50b1JlZCh0aGlzLnJlZCk7dmFyIHI9ZS5yZWRTcXIoKTt2YXIgaT10aGlzLmMyLnJlZFN1Yih0aGlzLmEucmVkTXVsKHIpKTt2YXIgYT10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwocikpO3ZhciBzPWkucmVkTXVsKGEucmVkSW52bSgpKTt2YXIgbz1zLnJlZFNxcnQoKTtpZihvLnJlZFNxcigpLnJlZFN1YihzKS5jbXAodGhpcy56ZXJvKSE9PTApdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBwb2ludFwiKTt2YXIgaD1vLmZyb21SZWQoKS5pc09kZCgpO2lmKHQmJiFofHwhdCYmaClvPW8ucmVkTmVnKCk7cmV0dXJuIHRoaXMucG9pbnQoZSxvKX07RWR3YXJkc0N1cnZlLnByb3RvdHlwZS5wb2ludEZyb21ZPWZ1bmN0aW9uIHBvaW50RnJvbVkoZSx0KXtlPW5ldyBuKGUsMTYpO2lmKCFlLnJlZCllPWUudG9SZWQodGhpcy5yZWQpO3ZhciByPWUucmVkU3FyKCk7dmFyIGk9ci5yZWRTdWIodGhpcy5jMik7dmFyIGE9ci5yZWRNdWwodGhpcy5kKS5yZWRNdWwodGhpcy5jMikucmVkU3ViKHRoaXMuYSk7dmFyIHM9aS5yZWRNdWwoYS5yZWRJbnZtKCkpO2lmKHMuY21wKHRoaXMuemVybyk9PT0wKXtpZih0KXRocm93IG5ldyBFcnJvcihcImludmFsaWQgcG9pbnRcIik7ZWxzZSByZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sZSl9dmFyIG89cy5yZWRTcXJ0KCk7aWYoby5yZWRTcXIoKS5yZWRTdWIocykuY21wKHRoaXMuemVybykhPT0wKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgcG9pbnRcIik7aWYoby5mcm9tUmVkKCkuaXNPZGQoKSE9PXQpbz1vLnJlZE5lZygpO3JldHVybiB0aGlzLnBvaW50KG8sZSl9O0Vkd2FyZHNDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS5pc0luZmluaXR5KCkpcmV0dXJuIHRydWU7ZS5ub3JtYWxpemUoKTt2YXIgdD1lLngucmVkU3FyKCk7dmFyIHI9ZS55LnJlZFNxcigpO3ZhciBpPXQucmVkTXVsKHRoaXMuYSkucmVkQWRkKHIpO3ZhciBuPXRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJlZEFkZCh0aGlzLmQucmVkTXVsKHQpLnJlZE11bChyKSkpO3JldHVybiBpLmNtcChuKT09PTB9O2Z1bmN0aW9uIFBvaW50KGUsdCxyLGksYSl7cy5CYXNlUG9pbnQuY2FsbCh0aGlzLGUsXCJwcm9qZWN0aXZlXCIpO2lmKHQ9PT1udWxsJiZyPT09bnVsbCYmaT09PW51bGwpe3RoaXMueD10aGlzLmN1cnZlLnplcm87dGhpcy55PXRoaXMuY3VydmUub25lO3RoaXMuej10aGlzLmN1cnZlLm9uZTt0aGlzLnQ9dGhpcy5jdXJ2ZS56ZXJvO3RoaXMuek9uZT10cnVlfWVsc2V7dGhpcy54PW5ldyBuKHQsMTYpO3RoaXMueT1uZXcgbihyLDE2KTt0aGlzLno9aT9uZXcgbihpLDE2KTp0aGlzLmN1cnZlLm9uZTt0aGlzLnQ9YSYmbmV3IG4oYSwxNik7aWYoIXRoaXMueC5yZWQpdGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCk7aWYoIXRoaXMueS5yZWQpdGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCk7aWYoIXRoaXMuei5yZWQpdGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCk7aWYodGhpcy50JiYhdGhpcy50LnJlZCl0aGlzLnQ9dGhpcy50LnRvUmVkKHRoaXMuY3VydmUucmVkKTt0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmU7aWYodGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCl7dGhpcy50PXRoaXMueC5yZWRNdWwodGhpcy55KTtpZighdGhpcy56T25lKXRoaXMudD10aGlzLnQucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpfX19YShQb2ludCxzLkJhc2VQb2ludCk7RWR3YXJkc0N1cnZlLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uIHBvaW50RnJvbUpTT04oZSl7cmV0dXJuIFBvaW50LmZyb21KU09OKHRoaXMsZSl9O0Vkd2FyZHNDdXJ2ZS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24gcG9pbnQoZSx0LHIsaSl7cmV0dXJuIG5ldyBQb2ludCh0aGlzLGUsdCxyLGkpfTtQb2ludC5mcm9tSlNPTj1mdW5jdGlvbiBmcm9tSlNPTihlLHQpe3JldHVybiBuZXcgUG9pbnQoZSx0WzBdLHRbMV0sdFsyXSl9O1BvaW50LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uIGluc3BlY3QoKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm5cIjxFQyBQb2ludCBJbmZpbml0eT5cIjtyZXR1cm5cIjxFQyBQb2ludCB4OiBcIit0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpK1wiIHk6IFwiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrXCIgejogXCIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKStcIj5cIn07UG9pbnQucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24gaXNJbmZpbml0eSgpe3JldHVybiB0aGlzLnguY21wbigwKT09PTAmJih0aGlzLnkuY21wKHRoaXMueik9PT0wfHx0aGlzLnpPbmUmJnRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKT09PTApfTtQb2ludC5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbiBfZXh0RGJsKCl7dmFyIGU9dGhpcy54LnJlZFNxcigpO3ZhciB0PXRoaXMueS5yZWRTcXIoKTt2YXIgcj10aGlzLnoucmVkU3FyKCk7cj1yLnJlZElBZGQocik7dmFyIGk9dGhpcy5jdXJ2ZS5fbXVsQShlKTt2YXIgbj10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCkucmVkSVN1YihlKS5yZWRJU3ViKHQpO3ZhciBhPWkucmVkQWRkKHQpO3ZhciBzPWEucmVkU3ViKHIpO3ZhciBvPWkucmVkU3ViKHQpO3ZhciBoPW4ucmVkTXVsKHMpO3ZhciB1PWEucmVkTXVsKG8pO3ZhciBkPW4ucmVkTXVsKG8pO3ZhciBjPXMucmVkTXVsKGEpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGgsdSxjLGQpfTtQb2ludC5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24gX3Byb2pEYmwoKXt2YXIgZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCk7dmFyIHQ9dGhpcy54LnJlZFNxcigpO3ZhciByPXRoaXMueS5yZWRTcXIoKTt2YXIgaTt2YXIgbjt2YXIgYTtpZih0aGlzLmN1cnZlLnR3aXN0ZWQpe3ZhciBzPXRoaXMuY3VydmUuX211bEEodCk7dmFyIG89cy5yZWRBZGQocik7aWYodGhpcy56T25lKXtpPWUucmVkU3ViKHQpLnJlZFN1YihyKS5yZWRNdWwoby5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKTtuPW8ucmVkTXVsKHMucmVkU3ViKHIpKTthPW8ucmVkU3FyKCkucmVkU3ViKG8pLnJlZFN1YihvKX1lbHNle3ZhciBoPXRoaXMuei5yZWRTcXIoKTt2YXIgdT1vLnJlZFN1YihoKS5yZWRJU3ViKGgpO2k9ZS5yZWRTdWIodCkucmVkSVN1YihyKS5yZWRNdWwodSk7bj1vLnJlZE11bChzLnJlZFN1YihyKSk7YT1vLnJlZE11bCh1KX19ZWxzZXt2YXIgcz10LnJlZEFkZChyKTt2YXIgaD10aGlzLmN1cnZlLl9tdWxDKHRoaXMueikucmVkU3FyKCk7dmFyIHU9cy5yZWRTdWIoaCkucmVkU3ViKGgpO2k9dGhpcy5jdXJ2ZS5fbXVsQyhlLnJlZElTdWIocykpLnJlZE11bCh1KTtuPXRoaXMuY3VydmUuX211bEMocykucmVkTXVsKHQucmVkSVN1YihyKSk7YT1zLnJlZE11bCh1KX1yZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChpLG4sYSl9O1BvaW50LnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24gZGJsKCl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYodGhpcy5jdXJ2ZS5leHRlbmRlZClyZXR1cm4gdGhpcy5fZXh0RGJsKCk7ZWxzZSByZXR1cm4gdGhpcy5fcHJvakRibCgpfTtQb2ludC5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbiBfZXh0QWRkKGUpe3ZhciB0PXRoaXMueS5yZWRTdWIodGhpcy54KS5yZWRNdWwoZS55LnJlZFN1YihlLngpKTt2YXIgcj10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKGUueS5yZWRBZGQoZS54KSk7dmFyIGk9dGhpcy50LnJlZE11bCh0aGlzLmN1cnZlLmRkKS5yZWRNdWwoZS50KTt2YXIgbj10aGlzLnoucmVkTXVsKGUuei5yZWRBZGQoZS56KSk7dmFyIGE9ci5yZWRTdWIodCk7dmFyIHM9bi5yZWRTdWIoaSk7dmFyIG89bi5yZWRBZGQoaSk7dmFyIGg9ci5yZWRBZGQodCk7dmFyIHU9YS5yZWRNdWwocyk7dmFyIGQ9by5yZWRNdWwoaCk7dmFyIGM9YS5yZWRNdWwoaCk7dmFyIGw9cy5yZWRNdWwobyk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodSxkLGwsYyl9O1BvaW50LnByb3RvdHlwZS5fcHJvakFkZD1mdW5jdGlvbiBfcHJvakFkZChlKXt2YXIgdD10aGlzLnoucmVkTXVsKGUueik7dmFyIHI9dC5yZWRTcXIoKTt2YXIgaT10aGlzLngucmVkTXVsKGUueCk7dmFyIG49dGhpcy55LnJlZE11bChlLnkpO3ZhciBhPXRoaXMuY3VydmUuZC5yZWRNdWwoaSkucmVkTXVsKG4pO3ZhciBzPXIucmVkU3ViKGEpO3ZhciBvPXIucmVkQWRkKGEpO3ZhciBoPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRNdWwoZS54LnJlZEFkZChlLnkpKS5yZWRJU3ViKGkpLnJlZElTdWIobik7dmFyIHU9dC5yZWRNdWwocykucmVkTXVsKGgpO3ZhciBkO3ZhciBjO2lmKHRoaXMuY3VydmUudHdpc3RlZCl7ZD10LnJlZE11bChvKS5yZWRNdWwobi5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQShpKSkpO2M9cy5yZWRNdWwobyl9ZWxzZXtkPXQucmVkTXVsKG8pLnJlZE11bChuLnJlZFN1YihpKSk7Yz10aGlzLmN1cnZlLl9tdWxDKHMpLnJlZE11bChvKX1yZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludCh1LGQsYyl9O1BvaW50LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24gYWRkKGUpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiBlO2lmKGUuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO2lmKHRoaXMuY3VydmUuZXh0ZW5kZWQpcmV0dXJuIHRoaXMuX2V4dEFkZChlKTtlbHNlIHJldHVybiB0aGlzLl9wcm9qQWRkKGUpfTtQb2ludC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIG11bChlKXtpZih0aGlzLl9oYXNEb3VibGVzKGUpKXJldHVybiB0aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLGUpO2Vsc2UgcmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxlKX07UG9pbnQucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbiBtdWxBZGQoZSx0LHIpe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsdF0sW2Uscl0sMixmYWxzZSl9O1BvaW50LnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uIGptdWxBZGQoZSx0LHIpe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsdF0sW2Uscl0sMix0cnVlKX07UG9pbnQucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbiBub3JtYWxpemUoKXtpZih0aGlzLnpPbmUpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcy56LnJlZEludm0oKTt0aGlzLng9dGhpcy54LnJlZE11bChlKTt0aGlzLnk9dGhpcy55LnJlZE11bChlKTtpZih0aGlzLnQpdGhpcy50PXRoaXMudC5yZWRNdWwoZSk7dGhpcy56PXRoaXMuY3VydmUub25lO3RoaXMuek9uZT10cnVlO3JldHVybiB0aGlzfTtQb2ludC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uIG5lZygpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX07UG9pbnQucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24gZ2V0WCgpe3RoaXMubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMueC5mcm9tUmVkKCl9O1BvaW50LnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uIGdldFkoKXt0aGlzLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnkuZnJvbVJlZCgpfTtQb2ludC5wcm90b3R5cGUuZXE9ZnVuY3Rpb24gZXEoZSl7cmV0dXJuIHRoaXM9PT1lfHx0aGlzLmdldFgoKS5jbXAoZS5nZXRYKCkpPT09MCYmdGhpcy5nZXRZKCkuY21wKGUuZ2V0WSgpKT09PTB9O1BvaW50LnByb3RvdHlwZS5lcVhUb1A9ZnVuY3Rpb24gZXFYVG9QKGUpe3ZhciB0PWUudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKHRoaXMueC5jbXAodCk9PT0wKXJldHVybiB0cnVlO3ZhciByPWUuY2xvbmUoKTt2YXIgaT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Zm9yKDs7KXtyLmlhZGQodGhpcy5jdXJ2ZS5uKTtpZihyLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiBmYWxzZTt0LnJlZElBZGQoaSk7aWYodGhpcy54LmNtcCh0KT09PTApcmV0dXJuIHRydWV9fTtQb2ludC5wcm90b3R5cGUudG9QPVBvaW50LnByb3RvdHlwZS5ub3JtYWxpemU7UG9pbnQucHJvdG90eXBlLm1peGVkQWRkPVBvaW50LnByb3RvdHlwZS5hZGR9LDkzNTk6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXQ7aS5iYXNlPXIoMjcyNyk7aS5zaG9ydD1yKDQ3MjApO2kubW9udD1yKDY2NTMpO2kuZWR3YXJkcz1yKDI3MDUpfSw2NjUzOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDcxMSk7dmFyIG49cigzNzgyKTt2YXIgYT1yKDI3MjcpO3ZhciBzPXIoNDQwMSk7ZnVuY3Rpb24gTW9udEN1cnZlKGUpe2EuY2FsbCh0aGlzLFwibW9udFwiLGUpO3RoaXMuYT1uZXcgaShlLmEsMTYpLnRvUmVkKHRoaXMucmVkKTt0aGlzLmI9bmV3IGkoZS5iLDE2KS50b1JlZCh0aGlzLnJlZCk7dGhpcy5pND1uZXcgaSg0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpO3RoaXMudHdvPW5ldyBpKDIpLnRvUmVkKHRoaXMucmVkKTt0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9bihNb250Q3VydmUsYSk7ZS5leHBvcnRzPU1vbnRDdXJ2ZTtNb250Q3VydmUucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uIHZhbGlkYXRlKGUpe3ZhciB0PWUubm9ybWFsaXplKCkueDt2YXIgcj10LnJlZFNxcigpO3ZhciBpPXIucmVkTXVsKHQpLnJlZEFkZChyLnJlZE11bCh0aGlzLmEpKS5yZWRBZGQodCk7dmFyIG49aS5yZWRTcXJ0KCk7cmV0dXJuIG4ucmVkU3FyKCkuY21wKGkpPT09MH07ZnVuY3Rpb24gUG9pbnQoZSx0LHIpe2EuQmFzZVBvaW50LmNhbGwodGhpcyxlLFwicHJvamVjdGl2ZVwiKTtpZih0PT09bnVsbCYmcj09PW51bGwpe3RoaXMueD10aGlzLmN1cnZlLm9uZTt0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvfWVsc2V7dGhpcy54PW5ldyBpKHQsMTYpO3RoaXMuej1uZXcgaShyLDE2KTtpZighdGhpcy54LnJlZCl0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKTtpZighdGhpcy56LnJlZCl0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKX19bihQb2ludCxhLkJhc2VQb2ludCk7TW9udEN1cnZlLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbiBkZWNvZGVQb2ludChlLHQpe3JldHVybiB0aGlzLnBvaW50KHMudG9BcnJheShlLHQpLDEpfTtNb250Q3VydmUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uIHBvaW50KGUsdCl7cmV0dXJuIG5ldyBQb2ludCh0aGlzLGUsdCl9O01vbnRDdXJ2ZS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbiBwb2ludEZyb21KU09OKGUpe3JldHVybiBQb2ludC5mcm9tSlNPTih0aGlzLGUpfTtQb2ludC5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbiBwcmVjb21wdXRlKCl7fTtQb2ludC5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbiBfZW5jb2RlKCl7cmV0dXJuIHRoaXMuZ2V0WCgpLnRvQXJyYXkoXCJiZVwiLHRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCkpfTtQb2ludC5mcm9tSlNPTj1mdW5jdGlvbiBmcm9tSlNPTihlLHQpe3JldHVybiBuZXcgUG9pbnQoZSx0WzBdLHRbMV18fGUub25lKX07UG9pbnQucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24gaW5zcGVjdCgpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVyblwiPEVDIFBvaW50IEluZmluaXR5PlwiO3JldHVyblwiPEVDIFBvaW50IHg6IFwiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrXCIgejogXCIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKStcIj5cIn07UG9pbnQucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24gaXNJbmZpbml0eSgpe3JldHVybiB0aGlzLnouY21wbigwKT09PTB9O1BvaW50LnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24gZGJsKCl7dmFyIGU9dGhpcy54LnJlZEFkZCh0aGlzLnopO3ZhciB0PWUucmVkU3FyKCk7dmFyIHI9dGhpcy54LnJlZFN1Yih0aGlzLnopO3ZhciBpPXIucmVkU3FyKCk7dmFyIG49dC5yZWRTdWIoaSk7dmFyIGE9dC5yZWRNdWwoaSk7dmFyIHM9bi5yZWRNdWwoaS5yZWRBZGQodGhpcy5jdXJ2ZS5hMjQucmVkTXVsKG4pKSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoYSxzKX07UG9pbnQucHJvdG90eXBlLmFkZD1mdW5jdGlvbiBhZGQoKXt0aHJvdyBuZXcgRXJyb3IoXCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmVcIil9O1BvaW50LnByb3RvdHlwZS5kaWZmQWRkPWZ1bmN0aW9uIGRpZmZBZGQoZSx0KXt2YXIgcj10aGlzLngucmVkQWRkKHRoaXMueik7dmFyIGk9dGhpcy54LnJlZFN1Yih0aGlzLnopO3ZhciBuPWUueC5yZWRBZGQoZS56KTt2YXIgYT1lLngucmVkU3ViKGUueik7dmFyIHM9YS5yZWRNdWwocik7dmFyIG89bi5yZWRNdWwoaSk7dmFyIGg9dC56LnJlZE11bChzLnJlZEFkZChvKS5yZWRTcXIoKSk7dmFyIHU9dC54LnJlZE11bChzLnJlZElTdWIobykucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGgsdSl9O1BvaW50LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24gbXVsKGUpe3ZhciB0PWUuY2xvbmUoKTt2YXIgcj10aGlzO3ZhciBpPXRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgbj10aGlzO2Zvcih2YXIgYT1bXTt0LmNtcG4oMCkhPT0wO3QuaXVzaHJuKDEpKWEucHVzaCh0LmFuZGxuKDEpKTtmb3IodmFyIHM9YS5sZW5ndGgtMTtzPj0wO3MtLSl7aWYoYVtzXT09PTApe3I9ci5kaWZmQWRkKGksbik7aT1pLmRibCgpfWVsc2V7aT1yLmRpZmZBZGQoaSxuKTtyPXIuZGJsKCl9fXJldHVybiBpfTtQb2ludC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uIG11bEFkZCgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZVwiKX07UG9pbnQucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24ganVtbEFkZCgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZVwiKX07UG9pbnQucHJvdG90eXBlLmVxPWZ1bmN0aW9uIGVxKGUpe3JldHVybiB0aGlzLmdldFgoKS5jbXAoZS5nZXRYKCkpPT09MH07UG9pbnQucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbiBub3JtYWxpemUoKXt0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKTt0aGlzLno9dGhpcy5jdXJ2ZS5vbmU7cmV0dXJuIHRoaXN9O1BvaW50LnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uIGdldFgoKXt0aGlzLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnguZnJvbVJlZCgpfX0sNDcyMDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cig0NDAxKTt2YXIgbj1yKDcxMSk7dmFyIGE9cigzNzgyKTt2YXIgcz1yKDI3MjcpO3ZhciBvPWkuYXNzZXJ0O2Z1bmN0aW9uIFNob3J0Q3VydmUoZSl7cy5jYWxsKHRoaXMsXCJzaG9ydFwiLGUpO3RoaXMuYT1uZXcgbihlLmEsMTYpLnRvUmVkKHRoaXMucmVkKTt0aGlzLmI9bmV3IG4oZS5iLDE2KS50b1JlZCh0aGlzLnJlZCk7dGhpcy50aW52PXRoaXMudHdvLnJlZEludm0oKTt0aGlzLnplcm9BPXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKT09PTA7dGhpcy50aHJlZUE9dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKT09PTA7dGhpcy5lbmRvPXRoaXMuX2dldEVuZG9tb3JwaGlzbShlKTt0aGlzLl9lbmRvV25hZlQxPW5ldyBBcnJheSg0KTt0aGlzLl9lbmRvV25hZlQyPW5ldyBBcnJheSg0KX1hKFNob3J0Q3VydmUscyk7ZS5leHBvcnRzPVNob3J0Q3VydmU7U2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2dldEVuZG9tb3JwaGlzbT1mdW5jdGlvbiBfZ2V0RW5kb21vcnBoaXNtKGUpe2lmKCF0aGlzLnplcm9BfHwhdGhpcy5nfHwhdGhpcy5ufHx0aGlzLnAubW9kbigzKSE9PTEpcmV0dXJuO3ZhciB0O3ZhciByO2lmKGUuYmV0YSl7dD1uZXcgbihlLmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKX1lbHNle3ZhciBpPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO3Q9aVswXS5jbXAoaVsxXSk8MD9pWzBdOmlbMV07dD10LnRvUmVkKHRoaXMucmVkKX1pZihlLmxhbWJkYSl7cj1uZXcgbihlLmxhbWJkYSwxNil9ZWxzZXt2YXIgYT10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTtpZih0aGlzLmcubXVsKGFbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bCh0KSk9PT0wKXtyPWFbMF19ZWxzZXtyPWFbMV07byh0aGlzLmcubXVsKHIpLnguY21wKHRoaXMuZy54LnJlZE11bCh0KSk9PT0wKX19dmFyIHM7aWYoZS5iYXNpcyl7cz1lLmJhc2lzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue2E6bmV3IG4oZS5hLDE2KSxiOm5ldyBuKGUuYiwxNil9fSkpfWVsc2V7cz10aGlzLl9nZXRFbmRvQmFzaXMocil9cmV0dXJue2JldGE6dCxsYW1iZGE6cixiYXNpczpzfX07U2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2dldEVuZG9Sb290cz1mdW5jdGlvbiBfZ2V0RW5kb1Jvb3RzKGUpe3ZhciB0PWU9PT10aGlzLnA/dGhpcy5yZWQ6bi5tb250KGUpO3ZhciByPW5ldyBuKDIpLnRvUmVkKHQpLnJlZEludm0oKTt2YXIgaT1yLnJlZE5lZygpO3ZhciBhPW5ldyBuKDMpLnRvUmVkKHQpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwocik7dmFyIHM9aS5yZWRBZGQoYSkuZnJvbVJlZCgpO3ZhciBvPWkucmVkU3ViKGEpLmZyb21SZWQoKTtyZXR1cm5bcyxvXX07U2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2dldEVuZG9CYXNpcz1mdW5jdGlvbiBfZ2V0RW5kb0Jhc2lzKGUpe3ZhciB0PXRoaXMubi51c2hybihNYXRoLmZsb29yKHRoaXMubi5iaXRMZW5ndGgoKS8yKSk7dmFyIHI9ZTt2YXIgaT10aGlzLm4uY2xvbmUoKTt2YXIgYT1uZXcgbigxKTt2YXIgcz1uZXcgbigwKTt2YXIgbz1uZXcgbigwKTt2YXIgaD1uZXcgbigxKTt2YXIgdTt2YXIgZDt2YXIgYzt2YXIgbDt2YXIgcDt2YXIgdjt2YXIgYjt2YXIgbT0wO3ZhciB5O3ZhciBnO3doaWxlKHIuY21wbigwKSE9PTApe3ZhciBfPWkuZGl2KHIpO3k9aS5zdWIoXy5tdWwocikpO2c9by5zdWIoXy5tdWwoYSkpO3ZhciB3PWguc3ViKF8ubXVsKHMpKTtpZighYyYmeS5jbXAodCk8MCl7dT1iLm5lZygpO2Q9YTtjPXkubmVnKCk7bD1nfWVsc2UgaWYoYyYmKyttPT09Mil7YnJlYWt9Yj15O2k9cjtyPXk7bz1hO2E9ZztoPXM7cz13fXA9eS5uZWcoKTt2PWc7dmFyIE09Yy5zcXIoKS5hZGQobC5zcXIoKSk7dmFyIEI9cC5zcXIoKS5hZGQodi5zcXIoKSk7aWYoQi5jbXAoTSk+PTApe3A9dTt2PWR9aWYoYy5uZWdhdGl2ZSl7Yz1jLm5lZygpO2w9bC5uZWcoKX1pZihwLm5lZ2F0aXZlKXtwPXAubmVnKCk7dj12Lm5lZygpfXJldHVyblt7YTpjLGI6bH0se2E6cCxiOnZ9XX07U2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbiBfZW5kb1NwbGl0KGUpe3ZhciB0PXRoaXMuZW5kby5iYXNpczt2YXIgcj10WzBdO3ZhciBpPXRbMV07dmFyIG49aS5iLm11bChlKS5kaXZSb3VuZCh0aGlzLm4pO3ZhciBhPXIuYi5uZWcoKS5tdWwoZSkuZGl2Um91bmQodGhpcy5uKTt2YXIgcz1uLm11bChyLmEpO3ZhciBvPWEubXVsKGkuYSk7dmFyIGg9bi5tdWwoci5iKTt2YXIgdT1hLm11bChpLmIpO3ZhciBkPWUuc3ViKHMpLnN1YihvKTt2YXIgYz1oLmFkZCh1KS5uZWcoKTtyZXR1cm57azE6ZCxrMjpjfX07U2hvcnRDdXJ2ZS5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbiBwb2ludEZyb21YKGUsdCl7ZT1uZXcgbihlLDE2KTtpZighZS5yZWQpZT1lLnRvUmVkKHRoaXMucmVkKTt2YXIgcj1lLnJlZFNxcigpLnJlZE11bChlKS5yZWRJQWRkKGUucmVkTXVsKHRoaXMuYSkpLnJlZElBZGQodGhpcy5iKTt2YXIgaT1yLnJlZFNxcnQoKTtpZihpLnJlZFNxcigpLnJlZFN1YihyKS5jbXAodGhpcy56ZXJvKSE9PTApdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBwb2ludFwiKTt2YXIgYT1pLmZyb21SZWQoKS5pc09kZCgpO2lmKHQmJiFhfHwhdCYmYSlpPWkucmVkTmVnKCk7cmV0dXJuIHRoaXMucG9pbnQoZSxpKX07U2hvcnRDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS5pbmYpcmV0dXJuIHRydWU7dmFyIHQ9ZS54O3ZhciByPWUueTt2YXIgaT10aGlzLmEucmVkTXVsKHQpO3ZhciBuPXQucmVkU3FyKCkucmVkTXVsKHQpLnJlZElBZGQoaSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiByLnJlZFNxcigpLnJlZElTdWIobikuY21wbigwKT09PTB9O1Nob3J0Q3VydmUucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbiBfZW5kb1duYWZNdWxBZGQoZSx0LHIpe3ZhciBpPXRoaXMuX2VuZG9XbmFmVDE7dmFyIG49dGhpcy5fZW5kb1duYWZUMjtmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIHM9dGhpcy5fZW5kb1NwbGl0KHRbYV0pO3ZhciBvPWVbYV07dmFyIGg9by5fZ2V0QmV0YSgpO2lmKHMuazEubmVnYXRpdmUpe3MuazEuaW5lZygpO289by5uZWcodHJ1ZSl9aWYocy5rMi5uZWdhdGl2ZSl7cy5rMi5pbmVnKCk7aD1oLm5lZyh0cnVlKX1pW2EqMl09bztpW2EqMisxXT1oO25bYSoyXT1zLmsxO25bYSoyKzFdPXMuazJ9dmFyIHU9dGhpcy5fd25hZk11bEFkZCgxLGksbixhKjIscik7Zm9yKHZhciBkPTA7ZDxhKjI7ZCsrKXtpW2RdPW51bGw7bltkXT1udWxsfXJldHVybiB1fTtmdW5jdGlvbiBQb2ludChlLHQscixpKXtzLkJhc2VQb2ludC5jYWxsKHRoaXMsZSxcImFmZmluZVwiKTtpZih0PT09bnVsbCYmcj09PW51bGwpe3RoaXMueD1udWxsO3RoaXMueT1udWxsO3RoaXMuaW5mPXRydWV9ZWxzZXt0aGlzLng9bmV3IG4odCwxNik7dGhpcy55PW5ldyBuKHIsMTYpO2lmKGkpe3RoaXMueC5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCk7dGhpcy55LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKX1pZighdGhpcy54LnJlZCl0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKTtpZighdGhpcy55LnJlZCl0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKTt0aGlzLmluZj1mYWxzZX19YShQb2ludCxzLkJhc2VQb2ludCk7U2hvcnRDdXJ2ZS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24gcG9pbnQoZSx0LHIpe3JldHVybiBuZXcgUG9pbnQodGhpcyxlLHQscil9O1Nob3J0Q3VydmUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24gcG9pbnRGcm9tSlNPTihlLHQpe3JldHVybiBQb2ludC5mcm9tSlNPTih0aGlzLGUsdCl9O1BvaW50LnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbiBfZ2V0QmV0YSgpe2lmKCF0aGlzLmN1cnZlLmVuZG8pcmV0dXJuO3ZhciBlPXRoaXMucHJlY29tcHV0ZWQ7aWYoZSYmZS5iZXRhKXJldHVybiBlLmJldGE7dmFyIHQ9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngucmVkTXVsKHRoaXMuY3VydmUuZW5kby5iZXRhKSx0aGlzLnkpO2lmKGUpe3ZhciByPXRoaXMuY3VydmU7dmFyIGVuZG9NdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHIucG9pbnQoZS54LnJlZE11bChyLmVuZG8uYmV0YSksZS55KX07ZS5iZXRhPXQ7dC5wcmVjb21wdXRlZD17YmV0YTpudWxsLG5hZjplLm5hZiYme3duZDplLm5hZi53bmQscG9pbnRzOmUubmFmLnBvaW50cy5tYXAoZW5kb011bCl9LGRvdWJsZXM6ZS5kb3VibGVzJiZ7c3RlcDplLmRvdWJsZXMuc3RlcCxwb2ludHM6ZS5kb3VibGVzLnBvaW50cy5tYXAoZW5kb011bCl9fX1yZXR1cm4gdH07UG9pbnQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbiB0b0pTT04oKXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm5bdGhpcy54LHRoaXMueV07cmV0dXJuW3RoaXMueCx0aGlzLnksdGhpcy5wcmVjb21wdXRlZCYme2RvdWJsZXM6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzJiZ7c3RlcDp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMuc3RlcCxwb2ludHM6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnBvaW50cy5zbGljZSgxKX0sbmFmOnRoaXMucHJlY29tcHV0ZWQubmFmJiZ7d25kOnRoaXMucHJlY29tcHV0ZWQubmFmLnduZCxwb2ludHM6dGhpcy5wcmVjb21wdXRlZC5uYWYucG9pbnRzLnNsaWNlKDEpfX1dfTtQb2ludC5mcm9tSlNPTj1mdW5jdGlvbiBmcm9tSlNPTihlLHQscil7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXQ9SlNPTi5wYXJzZSh0KTt2YXIgaT1lLnBvaW50KHRbMF0sdFsxXSxyKTtpZighdFsyXSlyZXR1cm4gaTtmdW5jdGlvbiBvYmoycG9pbnQodCl7cmV0dXJuIGUucG9pbnQodFswXSx0WzFdLHIpfXZhciBuPXRbMl07aS5wcmVjb21wdXRlZD17YmV0YTpudWxsLGRvdWJsZXM6bi5kb3VibGVzJiZ7c3RlcDpuLmRvdWJsZXMuc3RlcCxwb2ludHM6W2ldLmNvbmNhdChuLmRvdWJsZXMucG9pbnRzLm1hcChvYmoycG9pbnQpKX0sbmFmOm4ubmFmJiZ7d25kOm4ubmFmLnduZCxwb2ludHM6W2ldLmNvbmNhdChuLm5hZi5wb2ludHMubWFwKG9iajJwb2ludCkpfX07cmV0dXJuIGl9O1BvaW50LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uIGluc3BlY3QoKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm5cIjxFQyBQb2ludCBJbmZpbml0eT5cIjtyZXR1cm5cIjxFQyBQb2ludCB4OiBcIit0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpK1wiIHk6IFwiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrXCI+XCJ9O1BvaW50LnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uIGlzSW5maW5pdHkoKXtyZXR1cm4gdGhpcy5pbmZ9O1BvaW50LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24gYWRkKGUpe2lmKHRoaXMuaW5mKXJldHVybiBlO2lmKGUuaW5mKXJldHVybiB0aGlzO2lmKHRoaXMuZXEoZSkpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5uZWcoKS5lcShlKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO2lmKHRoaXMueC5jbXAoZS54KT09PTApcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgdD10aGlzLnkucmVkU3ViKGUueSk7aWYodC5jbXBuKDApIT09MCl0PXQucmVkTXVsKHRoaXMueC5yZWRTdWIoZS54KS5yZWRJbnZtKCkpO3ZhciByPXQucmVkU3FyKCkucmVkSVN1Yih0aGlzLngpLnJlZElTdWIoZS54KTt2YXIgaT10LnJlZE11bCh0aGlzLngucmVkU3ViKHIpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQocixpKX07UG9pbnQucHJvdG90eXBlLmRibD1mdW5jdGlvbiBkYmwoKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZT10aGlzLnkucmVkQWRkKHRoaXMueSk7aWYoZS5jbXBuKDApPT09MClyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciB0PXRoaXMuY3VydmUuYTt2YXIgcj10aGlzLngucmVkU3FyKCk7dmFyIGk9ZS5yZWRJbnZtKCk7dmFyIG49ci5yZWRBZGQocikucmVkSUFkZChyKS5yZWRJQWRkKHQpLnJlZE11bChpKTt2YXIgYT1uLnJlZFNxcigpLnJlZElTdWIodGhpcy54LnJlZEFkZCh0aGlzLngpKTt2YXIgcz1uLnJlZE11bCh0aGlzLngucmVkU3ViKGEpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoYSxzKX07UG9pbnQucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24gZ2V0WCgpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfTtQb2ludC5wcm90b3R5cGUuZ2V0WT1mdW5jdGlvbiBnZXRZKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9O1BvaW50LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24gbXVsKGUpe2U9bmV3IG4oZSwxNik7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7ZWxzZSBpZih0aGlzLl9oYXNEb3VibGVzKGUpKXJldHVybiB0aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLGUpO2Vsc2UgaWYodGhpcy5jdXJ2ZS5lbmRvKXJldHVybiB0aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW2VdKTtlbHNlIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsZSl9O1BvaW50LnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24gbXVsQWRkKGUsdCxyKXt2YXIgaT1bdGhpcyx0XTt2YXIgbj1bZSxyXTtpZih0aGlzLmN1cnZlLmVuZG8pcmV0dXJuIHRoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKGksbik7ZWxzZSByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGksbiwyKX07UG9pbnQucHJvdG90eXBlLmptdWxBZGQ9ZnVuY3Rpb24gam11bEFkZChlLHQscil7dmFyIGk9W3RoaXMsdF07dmFyIG49W2Uscl07aWYodGhpcy5jdXJ2ZS5lbmRvKXJldHVybiB0aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChpLG4sdHJ1ZSk7ZWxzZSByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGksbiwyLHRydWUpfTtQb2ludC5wcm90b3R5cGUuZXE9ZnVuY3Rpb24gZXEoZSl7cmV0dXJuIHRoaXM9PT1lfHx0aGlzLmluZj09PWUuaW5mJiYodGhpcy5pbmZ8fHRoaXMueC5jbXAoZS54KT09PTAmJnRoaXMueS5jbXAoZS55KT09PTApfTtQb2ludC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uIG5lZyhlKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgdD10aGlzLmN1cnZlLnBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCkpO2lmKGUmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciByPXRoaXMucHJlY29tcHV0ZWQ7dmFyIG5lZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5uZWcoKX07dC5wcmVjb21wdXRlZD17bmFmOnIubmFmJiZ7d25kOnIubmFmLnduZCxwb2ludHM6ci5uYWYucG9pbnRzLm1hcChuZWdhdGUpfSxkb3VibGVzOnIuZG91YmxlcyYme3N0ZXA6ci5kb3VibGVzLnN0ZXAscG9pbnRzOnIuZG91Ymxlcy5wb2ludHMubWFwKG5lZ2F0ZSl9fX1yZXR1cm4gdH07UG9pbnQucHJvdG90eXBlLnRvSj1mdW5jdGlvbiB0b0ooKXtpZih0aGlzLmluZilyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpO3ZhciBlPXRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpO3JldHVybiBlfTtmdW5jdGlvbiBKUG9pbnQoZSx0LHIsaSl7cy5CYXNlUG9pbnQuY2FsbCh0aGlzLGUsXCJqYWNvYmlhblwiKTtpZih0PT09bnVsbCYmcj09PW51bGwmJmk9PT1udWxsKXt0aGlzLng9dGhpcy5jdXJ2ZS5vbmU7dGhpcy55PXRoaXMuY3VydmUub25lO3RoaXMuej1uZXcgbigwKX1lbHNle3RoaXMueD1uZXcgbih0LDE2KTt0aGlzLnk9bmV3IG4ociwxNik7dGhpcy56PW5ldyBuKGksMTYpfWlmKCF0aGlzLngucmVkKXRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO2lmKCF0aGlzLnkucmVkKXRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO2lmKCF0aGlzLnoucmVkKXRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO3RoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1hKEpQb2ludCxzLkJhc2VQb2ludCk7U2hvcnRDdXJ2ZS5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uIGpwb2ludChlLHQscil7cmV0dXJuIG5ldyBKUG9pbnQodGhpcyxlLHQscil9O0pQb2ludC5wcm90b3R5cGUudG9QPWZ1bmN0aW9uIHRvUCgpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGU9dGhpcy56LnJlZEludm0oKTt2YXIgdD1lLnJlZFNxcigpO3ZhciByPXRoaXMueC5yZWRNdWwodCk7dmFyIGk9dGhpcy55LnJlZE11bCh0KS5yZWRNdWwoZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQocixpKX07SlBvaW50LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24gbmVnKCl7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCksdGhpcy56KX07SlBvaW50LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24gYWRkKGUpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiBlO2lmKGUuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciB0PWUuei5yZWRTcXIoKTt2YXIgcj10aGlzLnoucmVkU3FyKCk7dmFyIGk9dGhpcy54LnJlZE11bCh0KTt2YXIgbj1lLngucmVkTXVsKHIpO3ZhciBhPXRoaXMueS5yZWRNdWwodC5yZWRNdWwoZS56KSk7dmFyIHM9ZS55LnJlZE11bChyLnJlZE11bCh0aGlzLnopKTt2YXIgbz1pLnJlZFN1YihuKTt2YXIgaD1hLnJlZFN1YihzKTtpZihvLmNtcG4oMCk9PT0wKXtpZihoLmNtcG4oMCkhPT0wKXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk7ZWxzZSByZXR1cm4gdGhpcy5kYmwoKX12YXIgdT1vLnJlZFNxcigpO3ZhciBkPXUucmVkTXVsKG8pO3ZhciBjPWkucmVkTXVsKHUpO3ZhciBsPWgucmVkU3FyKCkucmVkSUFkZChkKS5yZWRJU3ViKGMpLnJlZElTdWIoYyk7dmFyIHA9aC5yZWRNdWwoYy5yZWRJU3ViKGwpKS5yZWRJU3ViKGEucmVkTXVsKGQpKTt2YXIgdj10aGlzLnoucmVkTXVsKGUueikucmVkTXVsKG8pO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChsLHAsdil9O0pQb2ludC5wcm90b3R5cGUubWl4ZWRBZGQ9ZnVuY3Rpb24gbWl4ZWRBZGQoZSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIGUudG9KKCk7aWYoZS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIHQ9dGhpcy56LnJlZFNxcigpO3ZhciByPXRoaXMueDt2YXIgaT1lLngucmVkTXVsKHQpO3ZhciBuPXRoaXMueTt2YXIgYT1lLnkucmVkTXVsKHQpLnJlZE11bCh0aGlzLnopO3ZhciBzPXIucmVkU3ViKGkpO3ZhciBvPW4ucmVkU3ViKGEpO2lmKHMuY21wbigwKT09PTApe2lmKG8uY21wbigwKSE9PTApcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTtlbHNlIHJldHVybiB0aGlzLmRibCgpfXZhciBoPXMucmVkU3FyKCk7dmFyIHU9aC5yZWRNdWwocyk7dmFyIGQ9ci5yZWRNdWwoaCk7dmFyIGM9by5yZWRTcXIoKS5yZWRJQWRkKHUpLnJlZElTdWIoZCkucmVkSVN1YihkKTt2YXIgbD1vLnJlZE11bChkLnJlZElTdWIoYykpLnJlZElTdWIobi5yZWRNdWwodSkpO3ZhciBwPXRoaXMuei5yZWRNdWwocyk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGMsbCxwKX07SlBvaW50LnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uIGRibHAoZSl7aWYoZT09PTApcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIWUpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe3ZhciB0PXRoaXM7Zm9yKHZhciByPTA7cjxlO3IrKyl0PXQuZGJsKCk7cmV0dXJuIHR9dmFyIGk9dGhpcy5jdXJ2ZS5hO3ZhciBuPXRoaXMuY3VydmUudGludjt2YXIgYT10aGlzLng7dmFyIHM9dGhpcy55O3ZhciBvPXRoaXMuejt2YXIgaD1vLnJlZFNxcigpLnJlZFNxcigpO3ZhciB1PXMucmVkQWRkKHMpO2Zvcih2YXIgcj0wO3I8ZTtyKyspe3ZhciBkPWEucmVkU3FyKCk7dmFyIGM9dS5yZWRTcXIoKTt2YXIgbD1jLnJlZFNxcigpO3ZhciBwPWQucmVkQWRkKGQpLnJlZElBZGQoZCkucmVkSUFkZChpLnJlZE11bChoKSk7dmFyIHY9YS5yZWRNdWwoYyk7dmFyIGI9cC5yZWRTcXIoKS5yZWRJU3ViKHYucmVkQWRkKHYpKTt2YXIgbT12LnJlZElTdWIoYik7dmFyIHk9cC5yZWRNdWwobSk7eT15LnJlZElBZGQoeSkucmVkSVN1YihsKTt2YXIgZz11LnJlZE11bChvKTtpZihyKzE8ZSloPWgucmVkTXVsKGwpO2E9YjtvPWc7dT15fXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChhLHUucmVkTXVsKG4pLG8pfTtKUG9pbnQucHJvdG90eXBlLmRibD1mdW5jdGlvbiBkYmwoKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcztpZih0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLl96ZXJvRGJsKCk7ZWxzZSBpZih0aGlzLmN1cnZlLnRocmVlQSlyZXR1cm4gdGhpcy5fdGhyZWVEYmwoKTtlbHNlIHJldHVybiB0aGlzLl9kYmwoKX07SlBvaW50LnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbiBfemVyb0RibCgpe3ZhciBlO3ZhciB0O3ZhciByO2lmKHRoaXMuek9uZSl7dmFyIGk9dGhpcy54LnJlZFNxcigpO3ZhciBuPXRoaXMueS5yZWRTcXIoKTt2YXIgYT1uLnJlZFNxcigpO3ZhciBzPXRoaXMueC5yZWRBZGQobikucmVkU3FyKCkucmVkSVN1YihpKS5yZWRJU3ViKGEpO3M9cy5yZWRJQWRkKHMpO3ZhciBvPWkucmVkQWRkKGkpLnJlZElBZGQoaSk7dmFyIGg9by5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7dmFyIHU9YS5yZWRJQWRkKGEpO3U9dS5yZWRJQWRkKHUpO3U9dS5yZWRJQWRkKHUpO2U9aDt0PW8ucmVkTXVsKHMucmVkSVN1YihoKSkucmVkSVN1Yih1KTtyPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBkPXRoaXMueC5yZWRTcXIoKTt2YXIgYz10aGlzLnkucmVkU3FyKCk7dmFyIGw9Yy5yZWRTcXIoKTt2YXIgcD10aGlzLngucmVkQWRkKGMpLnJlZFNxcigpLnJlZElTdWIoZCkucmVkSVN1YihsKTtwPXAucmVkSUFkZChwKTt2YXIgdj1kLnJlZEFkZChkKS5yZWRJQWRkKGQpO3ZhciBiPXYucmVkU3FyKCk7dmFyIG09bC5yZWRJQWRkKGwpO209bS5yZWRJQWRkKG0pO209bS5yZWRJQWRkKG0pO2U9Yi5yZWRJU3ViKHApLnJlZElTdWIocCk7dD12LnJlZE11bChwLnJlZElTdWIoZSkpLnJlZElTdWIobSk7cj10aGlzLnkucmVkTXVsKHRoaXMueik7cj1yLnJlZElBZGQocil9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGUsdCxyKX07SlBvaW50LnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24gX3RocmVlRGJsKCl7dmFyIGU7dmFyIHQ7dmFyIHI7aWYodGhpcy56T25lKXt2YXIgaT10aGlzLngucmVkU3FyKCk7dmFyIG49dGhpcy55LnJlZFNxcigpO3ZhciBhPW4ucmVkU3FyKCk7dmFyIHM9dGhpcy54LnJlZEFkZChuKS5yZWRTcXIoKS5yZWRJU3ViKGkpLnJlZElTdWIoYSk7cz1zLnJlZElBZGQocyk7dmFyIG89aS5yZWRBZGQoaSkucmVkSUFkZChpKS5yZWRJQWRkKHRoaXMuY3VydmUuYSk7dmFyIGg9by5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7ZT1oO3ZhciB1PWEucmVkSUFkZChhKTt1PXUucmVkSUFkZCh1KTt1PXUucmVkSUFkZCh1KTt0PW8ucmVkTXVsKHMucmVkSVN1YihoKSkucmVkSVN1Yih1KTtyPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBkPXRoaXMuei5yZWRTcXIoKTt2YXIgYz10aGlzLnkucmVkU3FyKCk7dmFyIGw9dGhpcy54LnJlZE11bChjKTt2YXIgcD10aGlzLngucmVkU3ViKGQpLnJlZE11bCh0aGlzLngucmVkQWRkKGQpKTtwPXAucmVkQWRkKHApLnJlZElBZGQocCk7dmFyIHY9bC5yZWRJQWRkKGwpO3Y9di5yZWRJQWRkKHYpO3ZhciBiPXYucmVkQWRkKHYpO2U9cC5yZWRTcXIoKS5yZWRJU3ViKGIpO3I9dGhpcy55LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLnJlZElTdWIoYykucmVkSVN1YihkKTt2YXIgbT1jLnJlZFNxcigpO209bS5yZWRJQWRkKG0pO209bS5yZWRJQWRkKG0pO209bS5yZWRJQWRkKG0pO3Q9cC5yZWRNdWwodi5yZWRJU3ViKGUpKS5yZWRJU3ViKG0pfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChlLHQscil9O0pQb2ludC5wcm90b3R5cGUuX2RibD1mdW5jdGlvbiBfZGJsKCl7dmFyIGU9dGhpcy5jdXJ2ZS5hO3ZhciB0PXRoaXMueDt2YXIgcj10aGlzLnk7dmFyIGk9dGhpcy56O3ZhciBuPWkucmVkU3FyKCkucmVkU3FyKCk7dmFyIGE9dC5yZWRTcXIoKTt2YXIgcz1yLnJlZFNxcigpO3ZhciBvPWEucmVkQWRkKGEpLnJlZElBZGQoYSkucmVkSUFkZChlLnJlZE11bChuKSk7dmFyIGg9dC5yZWRBZGQodCk7aD1oLnJlZElBZGQoaCk7dmFyIHU9aC5yZWRNdWwocyk7dmFyIGQ9by5yZWRTcXIoKS5yZWRJU3ViKHUucmVkQWRkKHUpKTt2YXIgYz11LnJlZElTdWIoZCk7dmFyIGw9cy5yZWRTcXIoKTtsPWwucmVkSUFkZChsKTtsPWwucmVkSUFkZChsKTtsPWwucmVkSUFkZChsKTt2YXIgcD1vLnJlZE11bChjKS5yZWRJU3ViKGwpO3ZhciB2PXIucmVkQWRkKHIpLnJlZE11bChpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoZCxwLHYpfTtKUG9pbnQucHJvdG90eXBlLnRycGw9ZnVuY3Rpb24gdHJwbCgpe2lmKCF0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTt2YXIgZT10aGlzLngucmVkU3FyKCk7dmFyIHQ9dGhpcy55LnJlZFNxcigpO3ZhciByPXRoaXMuei5yZWRTcXIoKTt2YXIgaT10LnJlZFNxcigpO3ZhciBuPWUucmVkQWRkKGUpLnJlZElBZGQoZSk7dmFyIGE9bi5yZWRTcXIoKTt2YXIgcz10aGlzLngucmVkQWRkKHQpLnJlZFNxcigpLnJlZElTdWIoZSkucmVkSVN1YihpKTtzPXMucmVkSUFkZChzKTtzPXMucmVkQWRkKHMpLnJlZElBZGQocyk7cz1zLnJlZElTdWIoYSk7dmFyIG89cy5yZWRTcXIoKTt2YXIgaD1pLnJlZElBZGQoaSk7aD1oLnJlZElBZGQoaCk7aD1oLnJlZElBZGQoaCk7aD1oLnJlZElBZGQoaCk7dmFyIHU9bi5yZWRJQWRkKHMpLnJlZFNxcigpLnJlZElTdWIoYSkucmVkSVN1YihvKS5yZWRJU3ViKGgpO3ZhciBkPXQucmVkTXVsKHUpO2Q9ZC5yZWRJQWRkKGQpO2Q9ZC5yZWRJQWRkKGQpO3ZhciBjPXRoaXMueC5yZWRNdWwobykucmVkSVN1YihkKTtjPWMucmVkSUFkZChjKTtjPWMucmVkSUFkZChjKTt2YXIgbD10aGlzLnkucmVkTXVsKHUucmVkTXVsKGgucmVkSVN1Yih1KSkucmVkSVN1YihzLnJlZE11bChvKSkpO2w9bC5yZWRJQWRkKGwpO2w9bC5yZWRJQWRkKGwpO2w9bC5yZWRJQWRkKGwpO3ZhciBwPXRoaXMuei5yZWRBZGQocykucmVkU3FyKCkucmVkSVN1YihyKS5yZWRJU3ViKG8pO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChjLGwscCl9O0pQb2ludC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uIG11bChlLHQpe2U9bmV3IG4oZSx0KTtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLGUpfTtKUG9pbnQucHJvdG90eXBlLmVxPWZ1bmN0aW9uIGVxKGUpe2lmKGUudHlwZT09PVwiYWZmaW5lXCIpcmV0dXJuIHRoaXMuZXEoZS50b0ooKSk7aWYodGhpcz09PWUpcmV0dXJuIHRydWU7dmFyIHQ9dGhpcy56LnJlZFNxcigpO3ZhciByPWUuei5yZWRTcXIoKTtpZih0aGlzLngucmVkTXVsKHIpLnJlZElTdWIoZS54LnJlZE11bCh0KSkuY21wbigwKSE9PTApcmV0dXJuIGZhbHNlO3ZhciBpPXQucmVkTXVsKHRoaXMueik7dmFyIG49ci5yZWRNdWwoZS56KTtyZXR1cm4gdGhpcy55LnJlZE11bChuKS5yZWRJU3ViKGUueS5yZWRNdWwoaSkpLmNtcG4oMCk9PT0wfTtKUG9pbnQucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbiBlcVhUb1AoZSl7dmFyIHQ9dGhpcy56LnJlZFNxcigpO3ZhciByPWUudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0KTtpZih0aGlzLnguY21wKHIpPT09MClyZXR1cm4gdHJ1ZTt2YXIgaT1lLmNsb25lKCk7dmFyIG49dGhpcy5jdXJ2ZS5yZWROLnJlZE11bCh0KTtmb3IoOzspe2kuaWFkZCh0aGlzLmN1cnZlLm4pO2lmKGkuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuIGZhbHNlO3IucmVkSUFkZChuKTtpZih0aGlzLnguY21wKHIpPT09MClyZXR1cm4gdHJ1ZX19O0pQb2ludC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbiBpbnNwZWN0KCl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuXCI8RUMgSlBvaW50IEluZmluaXR5PlwiO3JldHVyblwiPEVDIEpQb2ludCB4OiBcIit0aGlzLngudG9TdHJpbmcoMTYsMikrXCIgeTogXCIrdGhpcy55LnRvU3RyaW5nKDE2LDIpK1wiIHo6IFwiK3RoaXMuei50b1N0cmluZygxNiwyKStcIj5cIn07SlBvaW50LnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uIGlzSW5maW5pdHkoKXtyZXR1cm4gdGhpcy56LmNtcG4oMCk9PT0wfX0sNjIyNjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9dDt2YXIgbj1yKDcwMjgpO3ZhciBhPXIoOTM1OSk7dmFyIHM9cig0NDAxKTt2YXIgbz1zLmFzc2VydDtmdW5jdGlvbiBQcmVzZXRDdXJ2ZShlKXtpZihlLnR5cGU9PT1cInNob3J0XCIpdGhpcy5jdXJ2ZT1uZXcgYS5zaG9ydChlKTtlbHNlIGlmKGUudHlwZT09PVwiZWR3YXJkc1wiKXRoaXMuY3VydmU9bmV3IGEuZWR3YXJkcyhlKTtlbHNlIHRoaXMuY3VydmU9bmV3IGEubW9udChlKTt0aGlzLmc9dGhpcy5jdXJ2ZS5nO3RoaXMubj10aGlzLmN1cnZlLm47dGhpcy5oYXNoPWUuaGFzaDtvKHRoaXMuZy52YWxpZGF0ZSgpLFwiSW52YWxpZCBjdXJ2ZVwiKTtvKHRoaXMuZy5tdWwodGhpcy5uKS5pc0luZmluaXR5KCksXCJJbnZhbGlkIGN1cnZlLCBHKk4gIT0gT1wiKX1pLlByZXNldEN1cnZlPVByZXNldEN1cnZlO2Z1bmN0aW9uIGRlZmluZUN1cnZlKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSx7Y29uZmlndXJhYmxlOnRydWUsZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3ZhciByPW5ldyBQcmVzZXRDdXJ2ZSh0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHtjb25maWd1cmFibGU6dHJ1ZSxlbnVtZXJhYmxlOnRydWUsdmFsdWU6cn0pO3JldHVybiByfX0pfWRlZmluZUN1cnZlKFwicDE5MlwiLHt0eXBlOlwic2hvcnRcIixwcmltZTpcInAxOTJcIixwOlwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmZcIixhOlwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmNcIixiOlwiNjQyMTA1MTkgZTU5YzgwZTcgMGZhN2U5YWIgNzIyNDMwNDkgZmViOGRlZWMgYzE0NmI5YjFcIixuOlwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4MzYgMTQ2YmM5YjEgYjRkMjI4MzFcIixoYXNoOm4uc2hhMjU2LGdSZWQ6ZmFsc2UsZzpbXCIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMlwiLFwiMDcxOTJiOTUgZmZjOGRhNzggNjMxMDExZWQgNmIyNGNkZDUgNzNmOTc3YTEgMWU3OTQ4MTFcIl19KTtkZWZpbmVDdXJ2ZShcInAyMjRcIix7dHlwZTpcInNob3J0XCIscHJpbWU6XCJwMjI0XCIscDpcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxXCIsYTpcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlXCIsYjpcImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0XCIsbjpcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmYxNmEyIGUwYjhmMDNlIDEzZGQyOTQ1IDVjNWMyYTNkXCIsaGFzaDpuLnNoYTI1NixnUmVkOmZhbHNlLGc6W1wiYjcwZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgwZDYgMTE1YzFkMjFcIixcImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0XCJdfSk7ZGVmaW5lQ3VydmUoXCJwMjU2XCIse3R5cGU6XCJzaG9ydFwiLHByaW1lOm51bGwscDpcImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmXCIsYTpcImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjXCIsYjpcIjVhYzYzNWQ4IGFhM2E5M2U3IGIzZWJiZDU1IDc2OTg4NmJjIDY1MWQwNmIwIGNjNTNiMGY2IDNiY2UzYzNlIDI3ZDI2MDRiXCIsbjpcImZmZmZmZmZmIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxXCIsaGFzaDpuLnNoYTI1NixnUmVkOmZhbHNlLGc6W1wiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTZcIixcIjRmZTM0MmUyIGZlMWE3ZjliIDhlZTdlYjRhIDdjMGY5ZTE2IDJiY2UzMzU3IDZiMzE1ZWNlIGNiYjY0MDY4IDM3YmY1MWY1XCJdfSk7ZGVmaW5lQ3VydmUoXCJwMzg0XCIse3R5cGU6XCJzaG9ydFwiLHByaW1lOm51bGwscDpcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIFwiK1wiZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmZcIixhOlwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgXCIrXCJmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmY1wiLGI6XCJiMzMxMmZhNyBlMjNlZTdlNCA5ODhlMDU2YiBlM2Y4MmQxOSAxODFkOWM2ZSBmZTgxNDExMiAwMzE0MDg4ZiBcIitcIjUwMTM4NzVhIGM2NTYzOThkIDhhMmVkMTlkIDJhODVjOGVkIGQzZWMyYWVmXCIsbjpcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIFwiK1wiZjQzNzJkZGYgNTgxYTBkYjIgNDhiMGE3N2EgZWNlYzE5NmEgY2NjNTI5NzNcIixoYXNoOm4uc2hhMzg0LGdSZWQ6ZmFsc2UsZzpbXCJhYTg3Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5OCA1OWY3NDFlMCA4MjU0MmEzOCBcIitcIjU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3XCIsXCIzNjE3ZGU0YSA5NjI2MmM2ZiA1ZDllOThiZiA5MjkyZGMyOSBmOGY0MWRiZCAyODlhMTQ3YyBlOWRhMzExMyBiNWYwYjhjMCBcIitcIjBhNjBiMWNlIDFkN2U4MTlkIDdhNDMxZDdjIDkwZWEwZTVmXCJdfSk7ZGVmaW5lQ3VydmUoXCJwNTIxXCIse3R5cGU6XCJzaG9ydFwiLHByaW1lOm51bGwscDpcIjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIFwiK1wiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgXCIrXCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZlwiLGE6XCIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBcIitcImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIFwiK1wiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmNcIixiOlwiMDAwMDAwNTEgOTUzZWI5NjEgOGUxYzlhMWYgOTI5YTIxYTAgYjY4NTQwZWUgYTJkYTcyNWIgXCIrXCI5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBlYzdlOTM3YiAxNjUyYzBiZCBcIitcIjNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwXCIsbjpcIjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIFwiK1wiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIgN2ZjYzAxNDggXCIrXCJmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOVwiLGhhc2g6bi5zaGE1MTIsZ1JlZDpmYWxzZSxnOltcIjAwMDAwMGM2IDg1OGUwNmI3IDA0MDRlOWNkIDllM2VjYjY2IDIzOTViNDQyIDljNjQ4MTM5IFwiK1wiMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgXCIrXCJhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NlwiLFwiMDAwMDAxMTggMzkyOTZhNzggOWEzYmMwMDQgNWM4YTVmYjQgMmM3ZDFiZDkgOThmNTQ0NDkgXCIrXCI1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0MjY0MCBjNTUwYjkwMSBcIitcIjNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwXCJdfSk7ZGVmaW5lQ3VydmUoXCJjdXJ2ZTI1NTE5XCIse3R5cGU6XCJtb250XCIscHJpbWU6XCJwMjU1MTlcIixwOlwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZFwiLGE6XCI3NmQwNlwiLGI6XCIxXCIsbjpcIjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWRcIixoYXNoOm4uc2hhMjU2LGdSZWQ6ZmFsc2UsZzpbXCI5XCJdfSk7ZGVmaW5lQ3VydmUoXCJlZDI1NTE5XCIse3R5cGU6XCJlZHdhcmRzXCIscHJpbWU6XCJwMjU1MTlcIixwOlwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZFwiLGE6XCItMVwiLGM6XCIxXCIsZDpcIjUyMDM2Y2VlMmI2ZmZlNzMgOGNjNzQwNzk3Nzc5ZTg5OCAwMDcwMGE0ZDQxNDFkOGFiIDc1ZWI0ZGNhMTM1OTc4YTNcIixuOlwiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZFwiLGhhc2g6bi5zaGEyNTYsZ1JlZDpmYWxzZSxnOltcIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWFcIixcIjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NThcIl19KTt2YXIgaDt0cnl7aD1yKDk3MDIpfWNhdGNoKGUpe2g9dW5kZWZpbmVkfWRlZmluZUN1cnZlKFwic2VjcDI1NmsxXCIse3R5cGU6XCJzaG9ydFwiLHByaW1lOlwiazI1NlwiLHA6XCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZlwiLGE6XCIwXCIsYjpcIjdcIixuOlwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDFcIixoOlwiMVwiLGhhc2g6bi5zaGEyNTYsYmV0YTpcIjdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWVcIixsYW1iZGE6XCI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyXCIsYmFzaXM6W3thOlwiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTVcIixiOlwiLWU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzXCJ9LHthOlwiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4XCIsYjpcIjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1XCJ9XSxnUmVkOmZhbHNlLGc6W1wiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIxNmY4MTc5OFwiLFwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOFwiLGhdfSl9LDQwODg6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoNzExKTt2YXIgbj1yKDQ5MTApO3ZhciBhPXIoNDQwMSk7dmFyIHM9cig2MjI2KTt2YXIgbz1yKDM1MDApO3ZhciBoPWEuYXNzZXJ0O3ZhciB1PXIoNDcyNCk7dmFyIGQ9cig3NTI2KTtmdW5jdGlvbiBFQyhlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFQykpcmV0dXJuIG5ldyBFQyhlKTtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2gocy5oYXNPd25Qcm9wZXJ0eShlKSxcIlVua25vd24gY3VydmUgXCIrZSk7ZT1zW2VdfWlmKGUgaW5zdGFuY2VvZiBzLlByZXNldEN1cnZlKWU9e2N1cnZlOmV9O3RoaXMuY3VydmU9ZS5jdXJ2ZS5jdXJ2ZTt0aGlzLm49dGhpcy5jdXJ2ZS5uO3RoaXMubmg9dGhpcy5uLnVzaHJuKDEpO3RoaXMuZz10aGlzLmN1cnZlLmc7dGhpcy5nPWUuY3VydmUuZzt0aGlzLmcucHJlY29tcHV0ZShlLmN1cnZlLm4uYml0TGVuZ3RoKCkrMSk7dGhpcy5oYXNoPWUuaGFzaHx8ZS5jdXJ2ZS5oYXNofWUuZXhwb3J0cz1FQztFQy5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbiBrZXlQYWlyKGUpe3JldHVybiBuZXcgdSh0aGlzLGUpfTtFQy5wcm90b3R5cGUua2V5RnJvbVByaXZhdGU9ZnVuY3Rpb24ga2V5RnJvbVByaXZhdGUoZSx0KXtyZXR1cm4gdS5mcm9tUHJpdmF0ZSh0aGlzLGUsdCl9O0VDLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uIGtleUZyb21QdWJsaWMoZSx0KXtyZXR1cm4gdS5mcm9tUHVibGljKHRoaXMsZSx0KX07RUMucHJvdG90eXBlLmdlbktleVBhaXI9ZnVuY3Rpb24gZ2VuS2V5UGFpcihlKXtpZighZSllPXt9O3ZhciB0PW5ldyBuKHtoYXNoOnRoaXMuaGFzaCxwZXJzOmUucGVycyxwZXJzRW5jOmUucGVyc0VuY3x8XCJ1dGY4XCIsZW50cm9weTplLmVudHJvcHl8fG8odGhpcy5oYXNoLmhtYWNTdHJlbmd0aCksZW50cm9weUVuYzplLmVudHJvcHkmJmUuZW50cm9weUVuY3x8XCJ1dGY4XCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pO3ZhciByPXRoaXMubi5ieXRlTGVuZ3RoKCk7dmFyIGE9dGhpcy5uLnN1YihuZXcgaSgyKSk7ZG97dmFyIHM9bmV3IGkodC5nZW5lcmF0ZShyKSk7aWYocy5jbXAoYSk+MCljb250aW51ZTtzLmlhZGRuKDEpO3JldHVybiB0aGlzLmtleUZyb21Qcml2YXRlKHMpfXdoaWxlKHRydWUpfTtFQy5wcm90b3R5cGUuX3RydW5jYXRlVG9OPWZ1bmN0aW9uIHRydW5jYXRlVG9OKGUsdCl7dmFyIHI9ZS5ieXRlTGVuZ3RoKCkqOC10aGlzLm4uYml0TGVuZ3RoKCk7aWYocj4wKWU9ZS51c2hybihyKTtpZighdCYmZS5jbXAodGhpcy5uKT49MClyZXR1cm4gZS5zdWIodGhpcy5uKTtlbHNlIHJldHVybiBlfTtFQy5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbiBzaWduKGUsdCxyLGEpe2lmKHR5cGVvZiByPT09XCJvYmplY3RcIil7YT1yO3I9bnVsbH1pZighYSlhPXt9O3Q9dGhpcy5rZXlGcm9tUHJpdmF0ZSh0LHIpO2U9dGhpcy5fdHJ1bmNhdGVUb04obmV3IGkoZSwxNikpO3ZhciBzPXRoaXMubi5ieXRlTGVuZ3RoKCk7dmFyIG89dC5nZXRQcml2YXRlKCkudG9BcnJheShcImJlXCIscyk7dmFyIGg9ZS50b0FycmF5KFwiYmVcIixzKTt2YXIgdT1uZXcgbih7aGFzaDp0aGlzLmhhc2gsZW50cm9weTpvLG5vbmNlOmgscGVyczphLnBlcnMscGVyc0VuYzphLnBlcnNFbmN8fFwidXRmOFwifSk7dmFyIGM9dGhpcy5uLnN1YihuZXcgaSgxKSk7Zm9yKHZhciBsPTA7dHJ1ZTtsKyspe3ZhciBwPWEuaz9hLmsobCk6bmV3IGkodS5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7cD10aGlzLl90cnVuY2F0ZVRvTihwLHRydWUpO2lmKHAuY21wbigxKTw9MHx8cC5jbXAoYyk+PTApY29udGludWU7dmFyIHY9dGhpcy5nLm11bChwKTtpZih2LmlzSW5maW5pdHkoKSljb250aW51ZTt2YXIgYj12LmdldFgoKTt2YXIgbT1iLnVtb2QodGhpcy5uKTtpZihtLmNtcG4oMCk9PT0wKWNvbnRpbnVlO3ZhciB5PXAuaW52bSh0aGlzLm4pLm11bChtLm11bCh0LmdldFByaXZhdGUoKSkuaWFkZChlKSk7eT15LnVtb2QodGhpcy5uKTtpZih5LmNtcG4oMCk9PT0wKWNvbnRpbnVlO3ZhciBnPSh2LmdldFkoKS5pc09kZCgpPzE6MCl8KGIuY21wKG0pIT09MD8yOjApO2lmKGEuY2Fub25pY2FsJiZ5LmNtcCh0aGlzLm5oKT4wKXt5PXRoaXMubi5zdWIoeSk7Z149MX1yZXR1cm4gbmV3IGQoe3I6bSxzOnkscmVjb3ZlcnlQYXJhbTpnfSl9fTtFQy5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uIHZlcmlmeShlLHQscixuKXtlPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBpKGUsMTYpKTtyPXRoaXMua2V5RnJvbVB1YmxpYyhyLG4pO3Q9bmV3IGQodCxcImhleFwiKTt2YXIgYT10LnI7dmFyIHM9dC5zO2lmKGEuY21wbigxKTwwfHxhLmNtcCh0aGlzLm4pPj0wKXJldHVybiBmYWxzZTtpZihzLmNtcG4oMSk8MHx8cy5jbXAodGhpcy5uKT49MClyZXR1cm4gZmFsc2U7dmFyIG89cy5pbnZtKHRoaXMubik7dmFyIGg9by5tdWwoZSkudW1vZCh0aGlzLm4pO3ZhciB1PW8ubXVsKGEpLnVtb2QodGhpcy5uKTtpZighdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrKXt2YXIgYz10aGlzLmcubXVsQWRkKGgsci5nZXRQdWJsaWMoKSx1KTtpZihjLmlzSW5maW5pdHkoKSlyZXR1cm4gZmFsc2U7cmV0dXJuIGMuZ2V0WCgpLnVtb2QodGhpcy5uKS5jbXAoYSk9PT0wfXZhciBjPXRoaXMuZy5qbXVsQWRkKGgsci5nZXRQdWJsaWMoKSx1KTtpZihjLmlzSW5maW5pdHkoKSlyZXR1cm4gZmFsc2U7cmV0dXJuIGMuZXFYVG9QKGEpfTtFQy5wcm90b3R5cGUucmVjb3ZlclB1YktleT1mdW5jdGlvbihlLHQscixuKXtoKCgzJnIpPT09cixcIlRoZSByZWNvdmVyeSBwYXJhbSBpcyBtb3JlIHRoYW4gdHdvIGJpdHNcIik7dD1uZXcgZCh0LG4pO3ZhciBhPXRoaXMubjt2YXIgcz1uZXcgaShlKTt2YXIgbz10LnI7dmFyIHU9dC5zO3ZhciBjPXImMTt2YXIgbD1yPj4xO2lmKG8uY21wKHRoaXMuY3VydmUucC51bW9kKHRoaXMuY3VydmUubikpPj0wJiZsKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZVwiKTtpZihsKW89dGhpcy5jdXJ2ZS5wb2ludEZyb21YKG8uYWRkKHRoaXMuY3VydmUubiksYyk7ZWxzZSBvPXRoaXMuY3VydmUucG9pbnRGcm9tWChvLGMpO3ZhciBwPXQuci5pbnZtKGEpO3ZhciB2PWEuc3ViKHMpLm11bChwKS51bW9kKGEpO3ZhciBiPXUubXVsKHApLnVtb2QoYSk7cmV0dXJuIHRoaXMuZy5tdWxBZGQodixvLGIpfTtFQy5wcm90b3R5cGUuZ2V0S2V5UmVjb3ZlcnlQYXJhbT1mdW5jdGlvbihlLHQscixpKXt0PW5ldyBkKHQsaSk7aWYodC5yZWNvdmVyeVBhcmFtIT09bnVsbClyZXR1cm4gdC5yZWNvdmVyeVBhcmFtO2Zvcih2YXIgbj0wO248NDtuKyspe3ZhciBhO3RyeXthPXRoaXMucmVjb3ZlclB1YktleShlLHQsbil9Y2F0Y2goZSl7Y29udGludWV9aWYoYS5lcShyKSlyZXR1cm4gbn10aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3JcIil9fSw0NzI0OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDcxMSk7dmFyIG49cig0NDAxKTt2YXIgYT1uLmFzc2VydDtmdW5jdGlvbiBLZXlQYWlyKGUsdCl7dGhpcy5lYz1lO3RoaXMucHJpdj1udWxsO3RoaXMucHViPW51bGw7aWYodC5wcml2KXRoaXMuX2ltcG9ydFByaXZhdGUodC5wcml2LHQucHJpdkVuYyk7aWYodC5wdWIpdGhpcy5faW1wb3J0UHVibGljKHQucHViLHQucHViRW5jKX1lLmV4cG9ydHM9S2V5UGFpcjtLZXlQYWlyLmZyb21QdWJsaWM9ZnVuY3Rpb24gZnJvbVB1YmxpYyhlLHQscil7aWYodCBpbnN0YW5jZW9mIEtleVBhaXIpcmV0dXJuIHQ7cmV0dXJuIG5ldyBLZXlQYWlyKGUse3B1Yjp0LHB1YkVuYzpyfSl9O0tleVBhaXIuZnJvbVByaXZhdGU9ZnVuY3Rpb24gZnJvbVByaXZhdGUoZSx0LHIpe2lmKHQgaW5zdGFuY2VvZiBLZXlQYWlyKXJldHVybiB0O3JldHVybiBuZXcgS2V5UGFpcihlLHtwcml2OnQscHJpdkVuYzpyfSl9O0tleVBhaXIucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uIHZhbGlkYXRlKCl7dmFyIGU9dGhpcy5nZXRQdWJsaWMoKTtpZihlLmlzSW5maW5pdHkoKSlyZXR1cm57cmVzdWx0OmZhbHNlLHJlYXNvbjpcIkludmFsaWQgcHVibGljIGtleVwifTtpZighZS52YWxpZGF0ZSgpKXJldHVybntyZXN1bHQ6ZmFsc2UscmVhc29uOlwiUHVibGljIGtleSBpcyBub3QgYSBwb2ludFwifTtpZighZS5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5pc0luZmluaXR5KCkpcmV0dXJue3Jlc3VsdDpmYWxzZSxyZWFzb246XCJQdWJsaWMga2V5ICogTiAhPSBPXCJ9O3JldHVybntyZXN1bHQ6dHJ1ZSxyZWFzb246bnVsbH19O0tleVBhaXIucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbiBnZXRQdWJsaWMoZSx0KXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe3Q9ZTtlPW51bGx9aWYoIXRoaXMucHViKXRoaXMucHViPXRoaXMuZWMuZy5tdWwodGhpcy5wcml2KTtpZighdClyZXR1cm4gdGhpcy5wdWI7cmV0dXJuIHRoaXMucHViLmVuY29kZSh0LGUpfTtLZXlQYWlyLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uIGdldFByaXZhdGUoZSl7aWYoZT09PVwiaGV4XCIpcmV0dXJuIHRoaXMucHJpdi50b1N0cmluZygxNiwyKTtlbHNlIHJldHVybiB0aGlzLnByaXZ9O0tleVBhaXIucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlPWZ1bmN0aW9uIF9pbXBvcnRQcml2YXRlKGUsdCl7dGhpcy5wcml2PW5ldyBpKGUsdHx8MTYpO3RoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfTtLZXlQYWlyLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uIF9pbXBvcnRQdWJsaWMoZSx0KXtpZihlLnh8fGUueSl7aWYodGhpcy5lYy5jdXJ2ZS50eXBlPT09XCJtb250XCIpe2EoZS54LFwiTmVlZCB4IGNvb3JkaW5hdGVcIil9ZWxzZSBpZih0aGlzLmVjLmN1cnZlLnR5cGU9PT1cInNob3J0XCJ8fHRoaXMuZWMuY3VydmUudHlwZT09PVwiZWR3YXJkc1wiKXthKGUueCYmZS55LFwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZVwiKX10aGlzLnB1Yj10aGlzLmVjLmN1cnZlLnBvaW50KGUueCxlLnkpO3JldHVybn10aGlzLnB1Yj10aGlzLmVjLmN1cnZlLmRlY29kZVBvaW50KGUsdCl9O0tleVBhaXIucHJvdG90eXBlLmRlcml2ZT1mdW5jdGlvbiBkZXJpdmUoZSl7cmV0dXJuIGUubXVsKHRoaXMucHJpdikuZ2V0WCgpfTtLZXlQYWlyLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uIHNpZ24oZSx0LHIpe3JldHVybiB0aGlzLmVjLnNpZ24oZSx0aGlzLHQscil9O0tleVBhaXIucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbiB2ZXJpZnkoZSx0KXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkoZSx0LHRoaXMpfTtLZXlQYWlyLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uIGluc3BlY3QoKXtyZXR1cm5cIjxLZXkgcHJpdjogXCIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKStcIiBwdWI6IFwiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKStcIiA+XCJ9fSw3NTI2OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDcxMSk7dmFyIG49cig0NDAxKTt2YXIgYT1uLmFzc2VydDtmdW5jdGlvbiBTaWduYXR1cmUoZSx0KXtpZihlIGluc3RhbmNlb2YgU2lnbmF0dXJlKXJldHVybiBlO2lmKHRoaXMuX2ltcG9ydERFUihlLHQpKXJldHVybjthKGUuciYmZS5zLFwiU2lnbmF0dXJlIHdpdGhvdXQgciBvciBzXCIpO3RoaXMucj1uZXcgaShlLnIsMTYpO3RoaXMucz1uZXcgaShlLnMsMTYpO2lmKGUucmVjb3ZlcnlQYXJhbT09PXVuZGVmaW5lZCl0aGlzLnJlY292ZXJ5UGFyYW09bnVsbDtlbHNlIHRoaXMucmVjb3ZlcnlQYXJhbT1lLnJlY292ZXJ5UGFyYW19ZS5leHBvcnRzPVNpZ25hdHVyZTtmdW5jdGlvbiBQb3NpdGlvbigpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiBnZXRMZW5ndGgoZSx0KXt2YXIgcj1lW3QucGxhY2UrK107aWYoIShyJjEyOCkpe3JldHVybiByfXZhciBpPXImMTU7aWYoaT09PTB8fGk+NCl7cmV0dXJuIGZhbHNlfXZhciBuPTA7Zm9yKHZhciBhPTAscz10LnBsYWNlO2E8aTthKysscysrKXtuPDw9ODtufD1lW3NdO24+Pj49MH1pZihuPD0xMjcpe3JldHVybiBmYWxzZX10LnBsYWNlPXM7cmV0dXJuIG59ZnVuY3Rpb24gcm1QYWRkaW5nKGUpe3ZhciB0PTA7dmFyIHI9ZS5sZW5ndGgtMTt3aGlsZSghZVt0XSYmIShlW3QrMV0mMTI4KSYmdDxyKXt0Kyt9aWYodD09PTApe3JldHVybiBlfXJldHVybiBlLnNsaWNlKHQpfVNpZ25hdHVyZS5wcm90b3R5cGUuX2ltcG9ydERFUj1mdW5jdGlvbiBfaW1wb3J0REVSKGUsdCl7ZT1uLnRvQXJyYXkoZSx0KTt2YXIgcj1uZXcgUG9zaXRpb247aWYoZVtyLnBsYWNlKytdIT09NDgpe3JldHVybiBmYWxzZX12YXIgYT1nZXRMZW5ndGgoZSxyKTtpZihhPT09ZmFsc2Upe3JldHVybiBmYWxzZX1pZihhK3IucGxhY2UhPT1lLmxlbmd0aCl7cmV0dXJuIGZhbHNlfWlmKGVbci5wbGFjZSsrXSE9PTIpe3JldHVybiBmYWxzZX12YXIgcz1nZXRMZW5ndGgoZSxyKTtpZihzPT09ZmFsc2Upe3JldHVybiBmYWxzZX12YXIgbz1lLnNsaWNlKHIucGxhY2UscytyLnBsYWNlKTtyLnBsYWNlKz1zO2lmKGVbci5wbGFjZSsrXSE9PTIpe3JldHVybiBmYWxzZX12YXIgaD1nZXRMZW5ndGgoZSxyKTtpZihoPT09ZmFsc2Upe3JldHVybiBmYWxzZX1pZihlLmxlbmd0aCE9PWgrci5wbGFjZSl7cmV0dXJuIGZhbHNlfXZhciB1PWUuc2xpY2Uoci5wbGFjZSxoK3IucGxhY2UpO2lmKG9bMF09PT0wKXtpZihvWzFdJjEyOCl7bz1vLnNsaWNlKDEpfWVsc2V7cmV0dXJuIGZhbHNlfX1pZih1WzBdPT09MCl7aWYodVsxXSYxMjgpe3U9dS5zbGljZSgxKX1lbHNle3JldHVybiBmYWxzZX19dGhpcy5yPW5ldyBpKG8pO3RoaXMucz1uZXcgaSh1KTt0aGlzLnJlY292ZXJ5UGFyYW09bnVsbDtyZXR1cm4gdHJ1ZX07ZnVuY3Rpb24gY29uc3RydWN0TGVuZ3RoKGUsdCl7aWYodDwxMjgpe2UucHVzaCh0KTtyZXR1cm59dmFyIHI9MSsoTWF0aC5sb2codCkvTWF0aC5MTjI+Pj4zKTtlLnB1c2gocnwxMjgpO3doaWxlKC0tcil7ZS5wdXNoKHQ+Pj4ocjw8MykmMjU1KX1lLnB1c2godCl9U2lnbmF0dXJlLnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbiB0b0RFUihlKXt2YXIgdD10aGlzLnIudG9BcnJheSgpO3ZhciByPXRoaXMucy50b0FycmF5KCk7aWYodFswXSYxMjgpdD1bMF0uY29uY2F0KHQpO2lmKHJbMF0mMTI4KXI9WzBdLmNvbmNhdChyKTt0PXJtUGFkZGluZyh0KTtyPXJtUGFkZGluZyhyKTt3aGlsZSghclswXSYmIShyWzFdJjEyOCkpe3I9ci5zbGljZSgxKX12YXIgaT1bMl07Y29uc3RydWN0TGVuZ3RoKGksdC5sZW5ndGgpO2k9aS5jb25jYXQodCk7aS5wdXNoKDIpO2NvbnN0cnVjdExlbmd0aChpLHIubGVuZ3RoKTt2YXIgYT1pLmNvbmNhdChyKTt2YXIgcz1bNDhdO2NvbnN0cnVjdExlbmd0aChzLGEubGVuZ3RoKTtzPXMuY29uY2F0KGEpO3JldHVybiBuLmVuY29kZShzLGUpfX0sODUxMTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cig3MDI4KTt2YXIgbj1yKDYyMjYpO3ZhciBhPXIoNDQwMSk7dmFyIHM9YS5hc3NlcnQ7dmFyIG89YS5wYXJzZUJ5dGVzO3ZhciBoPXIoOTkxNyk7dmFyIHU9cig5MzE0KTtmdW5jdGlvbiBFRERTQShlKXtzKGU9PT1cImVkMjU1MTlcIixcIm9ubHkgdGVzdGVkIHdpdGggZWQyNTUxOSBzbyBmYXJcIik7aWYoISh0aGlzIGluc3RhbmNlb2YgRUREU0EpKXJldHVybiBuZXcgRUREU0EoZSk7dmFyIGU9bltlXS5jdXJ2ZTt0aGlzLmN1cnZlPWU7dGhpcy5nPWUuZzt0aGlzLmcucHJlY29tcHV0ZShlLm4uYml0TGVuZ3RoKCkrMSk7dGhpcy5wb2ludENsYXNzPWUucG9pbnQoKS5jb25zdHJ1Y3Rvcjt0aGlzLmVuY29kaW5nTGVuZ3RoPU1hdGguY2VpbChlLm4uYml0TGVuZ3RoKCkvOCk7dGhpcy5oYXNoPWkuc2hhNTEyfWUuZXhwb3J0cz1FRERTQTtFRERTQS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbiBzaWduKGUsdCl7ZT1vKGUpO3ZhciByPXRoaXMua2V5RnJvbVNlY3JldCh0KTt2YXIgaT10aGlzLmhhc2hJbnQoci5tZXNzYWdlUHJlZml4KCksZSk7dmFyIG49dGhpcy5nLm11bChpKTt2YXIgYT10aGlzLmVuY29kZVBvaW50KG4pO3ZhciBzPXRoaXMuaGFzaEludChhLHIucHViQnl0ZXMoKSxlKS5tdWwoci5wcml2KCkpO3ZhciBoPWkuYWRkKHMpLnVtb2QodGhpcy5jdXJ2ZS5uKTtyZXR1cm4gdGhpcy5tYWtlU2lnbmF0dXJlKHtSOm4sUzpoLFJlbmNvZGVkOmF9KX07RUREU0EucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbiB2ZXJpZnkoZSx0LHIpe2U9byhlKTt0PXRoaXMubWFrZVNpZ25hdHVyZSh0KTt2YXIgaT10aGlzLmtleUZyb21QdWJsaWMocik7dmFyIG49dGhpcy5oYXNoSW50KHQuUmVuY29kZWQoKSxpLnB1YkJ5dGVzKCksZSk7dmFyIGE9dGhpcy5nLm11bCh0LlMoKSk7dmFyIHM9dC5SKCkuYWRkKGkucHViKCkubXVsKG4pKTtyZXR1cm4gcy5lcShhKX07RUREU0EucHJvdG90eXBlLmhhc2hJbnQ9ZnVuY3Rpb24gaGFzaEludCgpe3ZhciBlPXRoaXMuaGFzaCgpO2Zvcih2YXIgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZS51cGRhdGUoYXJndW1lbnRzW3RdKTtyZXR1cm4gYS5pbnRGcm9tTEUoZS5kaWdlc3QoKSkudW1vZCh0aGlzLmN1cnZlLm4pfTtFRERTQS5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbiBrZXlGcm9tUHVibGljKGUpe3JldHVybiBoLmZyb21QdWJsaWModGhpcyxlKX07RUREU0EucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24ga2V5RnJvbVNlY3JldChlKXtyZXR1cm4gaC5mcm9tU2VjcmV0KHRoaXMsZSl9O0VERFNBLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uIG1ha2VTaWduYXR1cmUoZSl7aWYoZSBpbnN0YW5jZW9mIHUpcmV0dXJuIGU7cmV0dXJuIG5ldyB1KHRoaXMsZSl9O0VERFNBLnByb3RvdHlwZS5lbmNvZGVQb2ludD1mdW5jdGlvbiBlbmNvZGVQb2ludChlKXt2YXIgdD1lLmdldFkoKS50b0FycmF5KFwibGVcIix0aGlzLmVuY29kaW5nTGVuZ3RoKTt0W3RoaXMuZW5jb2RpbmdMZW5ndGgtMV18PWUuZ2V0WCgpLmlzT2RkKCk/MTI4OjA7cmV0dXJuIHR9O0VERFNBLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbiBkZWNvZGVQb2ludChlKXtlPWEucGFyc2VCeXRlcyhlKTt2YXIgdD1lLmxlbmd0aC0xO3ZhciByPWUuc2xpY2UoMCx0KS5jb25jYXQoZVt0XSZ+MTI4KTt2YXIgaT0oZVt0XSYxMjgpIT09MDt2YXIgbj1hLmludEZyb21MRShyKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludEZyb21ZKG4saSl9O0VERFNBLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24gZW5jb2RlSW50KGUpe3JldHVybiBlLnRvQXJyYXkoXCJsZVwiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfTtFRERTQS5wcm90b3R5cGUuZGVjb2RlSW50PWZ1bmN0aW9uIGRlY29kZUludChlKXtyZXR1cm4gYS5pbnRGcm9tTEUoZSl9O0VERFNBLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uIGlzUG9pbnQoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzLnBvaW50Q2xhc3N9fSw5OTE3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDQ0MDEpO3ZhciBuPWkuYXNzZXJ0O3ZhciBhPWkucGFyc2VCeXRlczt2YXIgcz1pLmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIEtleVBhaXIoZSx0KXt0aGlzLmVkZHNhPWU7dGhpcy5fc2VjcmV0PWEodC5zZWNyZXQpO2lmKGUuaXNQb2ludCh0LnB1YikpdGhpcy5fcHViPXQucHViO2Vsc2UgdGhpcy5fcHViQnl0ZXM9YSh0LnB1Yil9S2V5UGFpci5mcm9tUHVibGljPWZ1bmN0aW9uIGZyb21QdWJsaWMoZSx0KXtpZih0IGluc3RhbmNlb2YgS2V5UGFpcilyZXR1cm4gdDtyZXR1cm4gbmV3IEtleVBhaXIoZSx7cHViOnR9KX07S2V5UGFpci5mcm9tU2VjcmV0PWZ1bmN0aW9uIGZyb21TZWNyZXQoZSx0KXtpZih0IGluc3RhbmNlb2YgS2V5UGFpcilyZXR1cm4gdDtyZXR1cm4gbmV3IEtleVBhaXIoZSx7c2VjcmV0OnR9KX07S2V5UGFpci5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uIHNlY3JldCgpe3JldHVybiB0aGlzLl9zZWNyZXR9O3MoS2V5UGFpcixcInB1YkJ5dGVzXCIsKGZ1bmN0aW9uIHB1YkJ5dGVzKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5wdWIoKSl9KSk7cyhLZXlQYWlyLFwicHViXCIsKGZ1bmN0aW9uIHB1Yigpe2lmKHRoaXMuX3B1YkJ5dGVzKXJldHVybiB0aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTtyZXR1cm4gdGhpcy5lZGRzYS5nLm11bCh0aGlzLnByaXYoKSl9KSk7cyhLZXlQYWlyLFwicHJpdkJ5dGVzXCIsKGZ1bmN0aW9uIHByaXZCeXRlcygpe3ZhciBlPXRoaXMuZWRkc2E7dmFyIHQ9dGhpcy5oYXNoKCk7dmFyIHI9ZS5lbmNvZGluZ0xlbmd0aC0xO3ZhciBpPXQuc2xpY2UoMCxlLmVuY29kaW5nTGVuZ3RoKTtpWzBdJj0yNDg7aVtyXSY9MTI3O2lbcl18PTY0O3JldHVybiBpfSkpO3MoS2V5UGFpcixcInByaXZcIiwoZnVuY3Rpb24gcHJpdigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKX0pKTtzKEtleVBhaXIsXCJoYXNoXCIsKGZ1bmN0aW9uIGhhc2goKXtyZXR1cm4gdGhpcy5lZGRzYS5oYXNoKCkudXBkYXRlKHRoaXMuc2VjcmV0KCkpLmRpZ2VzdCgpfSkpO3MoS2V5UGFpcixcIm1lc3NhZ2VQcmVmaXhcIiwoZnVuY3Rpb24gbWVzc2FnZVByZWZpeCgpe3JldHVybiB0aGlzLmhhc2goKS5zbGljZSh0aGlzLmVkZHNhLmVuY29kaW5nTGVuZ3RoKX0pKTtLZXlQYWlyLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uIHNpZ24oZSl7bih0aGlzLl9zZWNyZXQsXCJLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeVwiKTtyZXR1cm4gdGhpcy5lZGRzYS5zaWduKGUsdGhpcyl9O0tleVBhaXIucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbiB2ZXJpZnkoZSx0KXtyZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkoZSx0LHRoaXMpfTtLZXlQYWlyLnByb3RvdHlwZS5nZXRTZWNyZXQ9ZnVuY3Rpb24gZ2V0U2VjcmV0KGUpe24odGhpcy5fc2VjcmV0LFwiS2V5UGFpciBpcyBwdWJsaWMgb25seVwiKTtyZXR1cm4gaS5lbmNvZGUodGhpcy5zZWNyZXQoKSxlKX07S2V5UGFpci5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uIGdldFB1YmxpYyhlKXtyZXR1cm4gaS5lbmNvZGUodGhpcy5wdWJCeXRlcygpLGUpfTtlLmV4cG9ydHM9S2V5UGFpcn0sOTMxNDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cig3MTEpO3ZhciBuPXIoNDQwMSk7dmFyIGE9bi5hc3NlcnQ7dmFyIHM9bi5jYWNoZWRQcm9wZXJ0eTt2YXIgbz1uLnBhcnNlQnl0ZXM7ZnVuY3Rpb24gU2lnbmF0dXJlKGUsdCl7dGhpcy5lZGRzYT1lO2lmKHR5cGVvZiB0IT09XCJvYmplY3RcIil0PW8odCk7aWYoQXJyYXkuaXNBcnJheSh0KSl7dD17Ujp0LnNsaWNlKDAsZS5lbmNvZGluZ0xlbmd0aCksUzp0LnNsaWNlKGUuZW5jb2RpbmdMZW5ndGgpfX1hKHQuUiYmdC5TLFwiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTXCIpO2lmKGUuaXNQb2ludCh0LlIpKXRoaXMuX1I9dC5SO2lmKHQuUyBpbnN0YW5jZW9mIGkpdGhpcy5fUz10LlM7dGhpcy5fUmVuY29kZWQ9QXJyYXkuaXNBcnJheSh0LlIpP3QuUjp0LlJlbmNvZGVkO3RoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkodC5TKT90LlM6dC5TZW5jb2RlZH1zKFNpZ25hdHVyZSxcIlNcIiwoZnVuY3Rpb24gUygpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLlNlbmNvZGVkKCkpfSkpO3MoU2lnbmF0dXJlLFwiUlwiLChmdW5jdGlvbiBSKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5jb2RlZCgpKX0pKTtzKFNpZ25hdHVyZSxcIlJlbmNvZGVkXCIsKGZ1bmN0aW9uIFJlbmNvZGVkKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSkpO3MoU2lnbmF0dXJlLFwiU2VuY29kZWRcIiwoZnVuY3Rpb24gU2VuY29kZWQoKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVJbnQodGhpcy5TKCkpfSkpO1NpZ25hdHVyZS5wcm90b3R5cGUudG9CeXRlcz1mdW5jdGlvbiB0b0J5dGVzKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX07U2lnbmF0dXJlLnByb3RvdHlwZS50b0hleD1mdW5jdGlvbiB0b0hleCgpe3JldHVybiBuLmVuY29kZSh0aGlzLnRvQnl0ZXMoKSxcImhleFwiKS50b1VwcGVyQ2FzZSgpfTtlLmV4cG9ydHM9U2lnbmF0dXJlfSw5NzAyOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz17ZG91Ymxlczp7c3RlcDo0LHBvaW50czpbW1wiZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYVwiLFwiZjdlMzUwNzM5OWU1OTU5MjlkYjk5ZjM0ZjU3OTM3MTAxMjk2ODkxZTQ0ZDIzZjBiZTFmMzJjY2U2OTYxNjgyMVwiXSxbXCI4MjgyMjYzMjEyYzYwOWQ5ZWEyYTZlM2UxNzJkZTIzOGQ4YzM5Y2FiZDVhYzFjYTEwNjQ2ZTIzZmQ1ZjUxNTA4XCIsXCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmXCJdLFtcIjE3NWUxNTlmNzI4Yjg2NWE3MmY5OWNjNmM2ZmM4NDZkZTBiOTM4MzNmZDIyMjJlZDczZmNlNWI1NTFlNWI3MzlcIixcImQzNTA2ZTBkOWUzYzc5ZWJhNGVmOTdhNTFmZjcxZjVlYWNiNTk1NWFkZDI0MzQ1YzZlZmE2ZmZlZTlmZWQ2OTVcIl0sW1wiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MFwiLFwiNGUyNzNhZGZjNzMyMjIxOTUzYjQ0NTM5N2YzMzYzMTQ1YjlhODkwMDgxOTllY2I2MjAwM2M3ZjNiZWU5ZGU5XCJdLFtcIjhiNGI1ZjE2NWRmM2MyYmU4YzYyNDRiNWI3NDU2Mzg4NDNlNGE3ODFhMTViY2QxYjY5Zjc5YTU1ZGZmZGY4MGNcIixcIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzZcIl0sW1wiNzIzY2JhYTZlNWRiOTk2ZDZiZjc3MWMwMGJkNTQ4YzdiNzAwZGJmZmE2YzBlNzdiY2I2MTE1OTI1MjMyZmNkYVwiLFwiOTZlODY3YjU1OTVjYzQ5OGE5MjExMzc0ODg4MjRkNmUyNjYwYTA2NTM3Nzk0OTQ4MDFkYzA2OWQ5ZWIzOWY1ZlwiXSxbXCJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhXCIsXCI1ZDlhOGNhMzk3MGVmMGYyNjllZTdlZGFmMTc4MDg5ZDlhZTRjZGMzYTcxMWY3MTJkZGZkNGZkYWUxZGU4OTk5XCJdLFtcIjEwMGY0NGRhNjk2ZTcxNjcyNzkxZDBhMDliN2JkZTQ1OWYxMjE1YTI5YjNjMDNiZmVmZDc4MzViMzlhNDhkYjBcIixcImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDlcIl0sW1wiZTEwMzFiZTI2MmM3ZWQxYjFkYzkyMjdhNGEwNGMwMTdhNzdmOGQ0NDY0ZjNiMzg1MmM4YWNkZTZlNTM0ZmQyZFwiLFwiOWQ3MDYxOTI4OTQwNDA1ZTZiYjZhNDE3NjU5NzUzNWFmMjkyZGQ0MTllMWNlZDc5YTQ0ZjE4ZjI5NDU2YTAwZFwiXSxbXCJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkXCIsXCJlNTdjNmI2Yzk3ZGNlMWJhYjA2ZTRlMTJiZjNlY2Q1Yzk4MWM4OTU3Y2M0MTQ0MmQzMTU1ZGViZjE4MDkwMDg4XCJdLFtcImRhNjdhOTFkOTEwNDljZGNiMzY3YmU0YmU2ZmZjYTNjZmVlZDY1N2Q4MDg1ODNkZTMzZmE5NzhiYzFlYzZjYjFcIixcIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWRcIl0sW1wiNTM5MDRmYWEwYjMzNGNkZGE2ZTAwMDkzNWVmMjIxNTFlYzA4ZDBmN2JiMTEwNjlmNTc1NDVjY2MxYTM3YjdjMFwiLFwiNWJjMDg3ZDBiYzgwMTA2ZDg4YzllY2NhYzIwZDNjMWMxMzk5OTk4MWUxNDQzNDY5OWRjYjA5NmIwMjI3NzFjOFwiXSxbXCI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3XCIsXCIxMGI3NzcwYjJhM2RhNGIzOTQwMzEwNDIwY2E5NTE0NTc5ZTg4ZTJlNDdmZDY4YjNlYTEwMDQ3ZTg0NjAzNzJhXCJdLFtcIjM4NWVlZDM0YzFjZGZmMjFlNmQwODE4Njg5YjgxYmRlNzFhN2Y0ZjE4Mzk3ZTY2OTBhODQxZTE1OTljNDM4NjJcIixcIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTNcIl0sW1wiNmY5ZDliODAzZWNmMTkxNjM3YzczYTQ0MTNkZmExODBmZGRmODRhNTk0N2ZiYzljNjA2ZWQ4NmMzZmFjM2E3XCIsXCI3YzgwYzY4ZTYwMzA1OWJhNjliOGUyYTMwZTQ1YzRkNDdlYTRkZDJmNWMyODEwMDJkODY4OTA2MDNhODQyMTYwXCJdLFtcIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmRcIixcIjU2ZTcwNzk3ZTk2NjRlZjViZmIwMTliYzRkZGFmOWI3MjgwNWY2M2VhMjg3M2FmNjI0ZjNhMmU5NmMyOGIyYTBcIl0sW1wiODU2NzJjN2QyZGUwYjdkYTJiZDE3NzBkODk2NjU4Njg3NDFiM2Y5YWY3NjQzMzk3NzIxZDc0ZDI4MTM0YWI4M1wiLFwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNlwiXSxbXCI5NDhiZjgwOWIxOTg4YTQ2YjA2YzlmMTkxOTQxM2IxMGY5MjI2YzYwZjY2ODgzMmZmZDk1OWFmNjBjODJhMGFcIixcIjUzYTU2Mjg1NmRjYjY2NDZkYzZiNzRjNWQxYzM0MThjNmQ0ZGZmMDhjOTdjZDJiZWQ0Y2I3Zjg4ZDhjOGU1ODlcIl0sW1wiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOFwiLFwiYmMyZGE4MmI2ZmE1YjU3MWE3ZjA5MDQ5Nzc2YTFlZjdlY2QyOTIyMzgwNTFjMTk4YzFhODRlOTViMmI0YWUxN1wiXSxbXCJlNTAzN2RlMGFmYzFkOGQ0M2Q4MzQ4NDE0YmJmNDEwMzA0M2VjOGY1NzViZmRjNDMyOTUzY2M4ZDIwMzdmYTJkXCIsXCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhXCJdLFtcImUwNjM3MmIwZjRhMjA3YWRmNWVhOTA1ZThmMTc3MWI0ZTdlOGRiZDFjNmE2YzViNzI1ODY2YTBhZTRmY2U3MjVcIixcIjdhOTA4OTc0YmNlMThjZmUxMmEyN2JiMmFkNWE0ODhjZDc0ODRhNzc4NzEwNDg3MGIyNzAzNGY5NGVlZTMxZGRcIl0sW1wiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NFwiLFwiNGI2ZGFkMGI1YWU0NjI1MDcwMTNhZDA2MjQ1YmExOTBiYjQ4NTBmNWYzNmE3ZWVkZGZmMmMyNzUzNGI0NThmMlwiXSxbXCI0ZTdjMjcyYTdhZjRiMzRlOGRiYjkzNTJhNTQxOWE4N2UyODM4YzcwYWRjNjJjZGRmMGNjM2EzYjA4ZmJkNTNjXCIsXCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2XCJdLFtcImZlYTc0ZTNkYmU3NzhiMWIxMGYyMzhhZDYxNjg2YWE1Yzc2ZTNkYjJiZTQzMDU3NjMyNDI3ZTI4NDBmYjI3YjZcIixcIjZlMDU2OGRiOWIwYjEzMjk3Y2Y2NzRkZWNjYjZhZjkzMTI2YjU5NmI5NzNmN2I3NzcwMWQzZGI3ZjIzY2I5NmZcIl0sW1wiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOVwiLFwiYzkwZGRmOGRlZTRlOTVjZjU3NzA2NmQ3MDY4MWYwZDM1ZTJhMzNkMmI1NmQyMDMyYjRiMTc1MmQxOTAxYWMwMVwiXSxbXCJjNzM4YzU2YjAzYjJhYmUxZTgyODFiYWE3NDNmOGY5YThmN2NjNjQzZGYyNmNiZWUzYWIxNTAyNDJiY2JiODkxXCIsXCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzXCJdLFtcImQ4OTU2MjY1NDhiNjViODFlMjY0Yzc2MzdjOTcyODc3ZDFkNzJlNWYzYTkyNTAxNDM3MmU5ZjY1ODhmNmMxNGJcIixcImZlYmZhYTM4ZjJiYzdlYWU3MjhlYzYwODE4YzM0MGViMDM0MjhkNjMyYmIwNjdlMTc5MzYzZWQ3NWQ3ZDk5MWZcIl0sW1wiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwM1wiLFwiMjgwNGRmYTQ0ODA1YTFlNGQ3Yzk5Y2M5NzYyODA4YjA5MmNjNTg0ZDk1ZmYzYjUxMTQ4OGU0ZTc0ZWZkZjZlN1wiXSxbXCJlODBmZWExNDQ0MWZiMzNhN2Q4YWRhYjk0NzVkN2ZhYjIwMTllZmZiNTE1NmE3OTJmMWExMTc3OGUzYzBkZjVkXCIsXCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4XCJdLFtcImEzMDE2OTdiZGZjZDcwNDMxM2JhNDhlNTFkNTY3NTQzZjJhMTgyMDMxZWZkNjkxNWRkYzA3YmJjYzRlMTYwNzBcIixcIjczNzBmOTFjZmI2N2U0ZjUwODE4MDlmYTI1ZDQwZjliMTczNWRiZjdjMGExMWExMzBjMGQxYTA0MWUxNzdlYTFcIl0sW1wiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNFwiLFwiZTUwN2EzNjIwYTM4MjYxYWZmZGNiZDk0MjcyMjJiODM5YWVmYWJlMTU4Mjg5NGQ5OTFkNGQ0OGNiNmVmMTUwXCJdLFtcIjhmNjhiOWQyZjYzYjVmMzM5MjM5YzFhZDk4MWYxNjJlZTg4YzU2Nzg3MjNlYTMzNTFiN2I0NDRjOWVjNGMwZGFcIixcIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODJcIl0sW1wiZTRmM2ZiMDE3NmFmODVkNjVmZjk5ZmY5MTk4YzM2MDkxZjQ4ZTg2NTAzNjgxZTNlNjY4NmZkNTA1MzIzMWUxMVwiLFwiMWU2MzYzM2FkMGVmNGYxYzE2NjFhNmQwZWEwMmI3Mjg2Y2M3ZTc0ZWM5NTFkMWM5ODIyYzM4NTc2ZmViNzNiY1wiXSxbXCI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllXCIsXCJlZmE0NzI2N2ZlYTUyMWExYTlkYzM0M2EzNzM2Yzk3NGMyZmFkYWZhODFlMzZjNTRlN2QyYTRjNjY3MDI0MTRiXCJdLFtcImU3YTI2Y2U2OWRkNDgyOWYzZTEwY2VjMGE5ZTk4ZWQzMTQzZDA4NGYzMDhiOTJjMDk5N2ZkZGZjNjBjYjNlNDFcIixcIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTFcIl0sW1wiYjY0NTllMGVlMzY2MmVjOGQyMzU0MGMyMjNiY2JkYzU3MWNiY2I5NjdkNzk0MjRmM2NmMjllYjNkZTZiODBlZlwiLFwiNjdjODc2ZDA2ZjNlMDZkZTFkYWRmMTZlNTY2MWRiM2M0YjNhZTZkNDhlMzViMmZmMzBiZjBiNjFhNzFiYTQ1XCJdLFtcImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZThcIixcImRiOGJhOWZmZjRiNTg2ZDAwYzRiMWY5MTc3YjBlMjhiNWIwZTdiOGY3ODQ1Mjk1YTI5NGM4NDI2NmIxMzMxMjBcIl0sW1wiMzI0YWVkN2RmNjVjODA0MjUyZGMwMjcwOTA3YTMwYjA5NjEyYWViOTczNDQ5Y2VhNDA5NTk4MGZjMjhkM2Q1ZFwiLFwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NFwiXSxbXCI0ZGY5YzE0OTE5Y2RlNjFmNmQ1MWRmZGJlNWZlZTVkY2VlYzQxNDNiYThkMWNhODg4ZThiZDM3M2ZkMDU0Yzk2XCIsXCIzNWVjNTEwOTJkODcyODA1MDk3NGMyM2ExZDg1ZDRiNWQ1MDZjZGMyODg0OTAxOTJlYmFjMDZjYWQxMGQ1ZFwiXSxbXCI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkXCIsXCJkZGI4NGYwZjRhNGRkZDU3NTg0ZjA0NGJmMjYwZTY0MTkwNTMyNmY3NmM2NGM4ZTZiZTdlNWUwM2Q0ZmM1OTlkXCJdLFtcIjYwNTcxNzBiMWRkMTJmZGY4ZGUwNWYyODFkOGUwNmJiOTFlMTQ5M2E4YjkxZDRjYzVhMjEzODIxMjBhOTU5ZTVcIixcIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYThcIl0sW1wiYTU3NmRmOGUyM2EwODQxMTQyMTQzOWE0NTE4ZGEzMTg4MGNlZjBmYmE3ZDRkZjEyYjFhNjk3M2VlY2I5NDI2NlwiLFwiNDBhNmJmMjBlNzY2NDBiMmM5MmI5N2FmZTU4Y2Q4MmM0MzJlMTBhN2Y1MTRkOWYzZWU4YmUxMWFlMWIyOGVjOFwiXSxbXCI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxXCIsXCIzNDYyNmQ5YWI1YTViMjJmZjcwOThlMTJmMmZmNTgwMDg3YjM4NDExZmYyNGFjNTYzYjUxM2ZjMWZkOWY0M2FjXCJdLFtcIjkyODk1NWVlNjM3YTg0NDYzNzI5ZmQzMGU3YWZkMmVkNWY5NjI3NGU1YWQ3ZTVjYjA5ZWRhOWMwNmQ5MDNhY1wiLFwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZlwiXSxbXCI4NWQwZmVmM2VjNmRiMTA5Mzk5MDY0ZjNhMGUzYjI4NTU2NDViNGE5MDdhZDM1NDUyN2FhZTc1MTYzZDgyNzUxXCIsXCIxZjAzNjQ4NDEzYTM4YzBiZTI5ZDQ5NmU1ODJjZjU2NjNlODc1MWU5Njg3NzMzMTU4MmMyMzdhMjRlYjFmOTYyXCJdLFtcImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2VcIixcIjQ5M2QxM2ZlZjUyNGJhMTg4YWY0YzRkYzU0ZDA3OTM2YzdiN2VkNmZiOTBlMmNlYjJjOTUxZTAxZjBjMjk5MDdcIl0sW1wiODI3ZmJiZTRiMWU4ODBlYTllZDJiMmU2MzAxYjIxMmI1N2YxZWUxNDhjZDZkZDI4NzgwZTVlMmNmODU2ZTI0MVwiLFwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlY1wiXSxbXCJlYWE2NDlmMjFmNTFiZGJhZTdiZTRhZTM0Y2U2ZTUyMTdhNThmZGNlN2Y0N2Y5YWE3ZjNiNThmYTIxMjBlMmIzXCIsXCJiZTMyNzllZDViYmJiMDNhYzY5YTgwZjg5ODc5YWE1YTAxYTZiOTY1ZjEzZjdlNTlkNDdhNTMwNWJhNWFkOTNkXCJdLFtcImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGZcIixcIjRkOWY5MmU3MTZkMWM3MzUyNmZjOTljY2ZiOGFkMzRjZTg4NmVlZGZhOGQ4ZTRmMTNhN2Y3MTMxZGViYTk0MTRcIl0sW1wiMWVjODBmZWYzNjBjYmRkOTU0MTYwZmFkYWIzNTJiNmI5MmI1MzU3NmE4OGZlYTQ5NDcxNzNiOWQ0MzAwYmYxOVwiLFwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZFwiXSxbXCIxNDZhNzc4YzA0NjcwYzJmOTFiMDBhZjQ2ODBkZmE4YmNlMzQ5MDcxN2Q1OGJhODg5ZGRiNTkyODM2NjY0MmJlXCIsXCJiMzE4ZTBlYzMzNTQwMjhhZGQ2Njk4MjdmOWQ0YjI4NzBhYWE5NzFkMmY3ZTVlZDFkMGIyOTc0ODNkODNlZmQwXCJdLFtcImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjlcIixcIjZiODRjNjkyMjM5N2ViYTliNzJjZDI4NzIyODFhNjhhNWU2ODMyOTNhNTdhMjEzYjM4Y2Q4ZDdkM2Y0ZjI4MTFcIl0sW1wiZGExZDYxZDBjYTcyMWExMWIxYTViZjZiN2Q4OGU4NDIxYTI4OGFiNWQ1YmJhNTIyMGU1M2QzMmI1ZjA2N2VjMlwiLFwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMVwiXSxbXCJhOGUyODJmZjBjOTcwNjkwNzIxNWZmOThlOGZkNDE2NjE1MzExZGUwNDQ2ZjFlMDYyYTczYjA2MTBkMDY0ZTEzXCIsXCI3Zjk3MzU1YjhkYjgxYzA5YWJmYjdmM2M1YjI1MTU4ODhiNjc5YTNlNTBkZDZiZDZjZWY3YzczMTExZjRjYzBjXCJdLFtcIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2NcIixcImNjYzlkYzM3YWJmYzljMTY1N2I0MTU1ZjJjNDdmOWU2NjQ2YjNhMWQ4Y2I5ODU0MzgzZGExM2FjMDc5YWZhNzNcIl0sW1wiOTU5Mzk2OTgxOTQzNzg1YzNkM2U1N2VkZjUwMThjZGJlMDM5ZTczMGU0OTE4YjNkODg0ZmRmZjA5NDc1YjdiYVwiLFwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZFwiXSxbXCJkMmE2M2E1MGFlNDAxZTU2ZDY0NWExMTUzYjEwOWE4ZmNjYTBhNDNkNTYxZmJhMmRiYjUxMzQwYzlkODJiMTUxXCIsXCJlODJkODZmYjY0NDNmY2I3NTY1YWVlNThiMjk0ODIyMGE3MGY3NTBhZjQ4NGNhNTJkNDE0MjE3NGRjZjg5NDA1XCJdLFtcIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzNcIixcImQ5OWZjZGQ1YmY2OTAyZTJhZTk2ZGQ2NDQ3YzI5OWExODViOTBhMzkxMzNhZWFiMzU4Mjk5ZTVlOWZhZjY1ODlcIl0sW1wiODQ4MWJkZTBlNGU0ZDg4NWIzYTU0NmQzZTU0OWRlMDQyZjBhYTZjZWEyNTBlN2ZkMzU4ZDZjODZkZDQ1ZTQ1OFwiLFwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZVwiXSxbXCIxMzQ2NGE1N2E3ODEwMmFhNjJiNjk3OWFlODE3ZjQ2MzdmZmNmZWQzYzRiMWNlMzBiY2Q2MzAzZjZjYWY2NjZiXCIsXCI2OWJlMTU5MDA0NjE0NTgwZWY3ZTQzMzQ1M2NjYjBjYTQ4ZjMwMGE4MWQwOTQyZTEzZjQ5NWE5MDdmNmVjYzI3XCJdLFtcImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjZcIixcImQzYTgxY2E2ZTc4NWMwNjM4MzkzN2FkZjRiNzk4Y2FhNmU4YTlmYmZhNTQ3YjE2ZDc1OGQ2NjY1ODFmMzNjMVwiXSxbXCI4YzI4YTk3YmY4Mjk4YmMwZDIzZDhjNzQ5NDUyYTMyZTY5NGI2NWUzMGE5NDcyYTM5NTRhYjMwZmU1MzI0Y2FhXCIsXCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyXCJdLFtcIjhlYTk2NjYxMzk1MjdhOGMxZGQ5NGNlNGYwNzFmZDIzYzhiMzUwYzVhNGJiMzM3NDhjNGJhMTExZmFjY2FlMFwiLFwiNjIwZWZhYmJjOGVlMjc4MmUyNGU3YzBjZmI5NWM1ZDczNWI3ODNiZTljZjBmOGU5NTVhZjM0YTMwZTYyYjk0NVwiXSxbXCJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3XCIsXCI3YTE4OGZhMzUyMGUzMGQ0NjFkYTI1MDEwNDU3MzFjYTk0MTQ2MTk4Mjg4MzM5NTkzN2Y2OGQwMGM2NDRhNTczXCJdLFtcImY3MTBkNzlkOWViOTYyMjk3ZTRmNjIzMmI0MGU4ZjdmZWIyYmM2MzgxNDYxNGQ2OTJjMTJkZTc1MjQwODIyMWVcIixcImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODJcIl1dfSxuYWY6e3duZDo3LHBvaW50czpbW1wiZjkzMDhhMDE5MjU4YzMxMDQ5MzQ0Zjg1Zjg5ZDUyMjliNTMxYzg0NTgzNmY5OWIwODYwMWYxMTNiY2UwMzZmOVwiLFwiMzg4ZjdiMGY2MzJkZTgxNDBmZTMzN2U2MmEzN2YzNTY2NTAwYTk5OTM0YzIyMzFiNmNiOWZkNzU4NGI4ZTY3MlwiXSxbXCIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0XCIsXCJkOGFjMjIyNjM2ZTVlM2Q2ZDRkYmE5ZGRhNmM5YzQyNmY3ODgyNzFiYWIwZDY4NDBkY2E4N2QzYWE2YWM2MmQ2XCJdLFtcIjVjYmRmMDY0NmU1ZGI0ZWFhMzk4ZjM2NWYyZWE3YTBlM2Q0MTliN2UwMzMwZTM5Y2U5MmJkZGVkY2FjNGY5YmNcIixcIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGFcIl0sW1wiYWNkNDg0ZTJmMGM3ZjY1MzA5YWQxNzhhOWY1NTlhYmRlMDk3OTY5NzRjNTdlNzE0YzM1ZjExMGRmYzI3Y2NiZVwiLFwiY2MzMzg5MjFiMGE3ZDlmZDY0MzgwOTcxNzYzYjYxZTlhZGQ4ODhhNDM3NWY4ZTBmMDVjYzI2MmFjNjRmOWMzN1wiXSxbXCI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiXCIsXCJkOTg0YTAzMmViNmI1ZTE5MDI0M2RkNTZkN2I3YjM2NTM3MmRiMWUyZGZmOWQ2YTgzMDFkNzRjOWM5NTNjNjFiXCJdLFtcImYyODc3M2MyZDk3NTI4OGJjN2QxZDIwNWMzNzQ4NjUxYjA3NWZiYzY2MTBlNThjZGRlZWRkZjhmMTk0MDVhYThcIixcImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MVwiXSxbXCJkNzkyNGQ0ZjdkNDNlYTk2NWE0NjVhZTMwOTVmZjQxMTMxZTU5NDZmM2M4NWY3OWU0NGFkYmNmOGUyN2UwODBlXCIsXCI1ODFlMjg3MmE4NmM3MmE2ODM4NDJlYzIyOGNjNmRlZmVhNDBhZjJiZDg5NmQzYTVjNTA0ZGM5ZmY2YTI2YjU4XCJdLFtcImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzRcIixcIjQyMTFhYjA2OTQ2MzUxNjhlOTk3YjBlYWQyYTkzZGFlY2VkMWY0YTA0YTk1YzBmNmNmYjE5OWY2OWU1NmViNzdcIl0sW1wiMmI0ZWEwYTc5N2E0NDNkMjkzZWY1Y2ZmNDQ0ZjQ5NzlmMDZhY2ZlYmQ3ZTg2ZDI3NzQ3NTY1NjEzODM4NWI2Y1wiLFwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YVwiXSxbXCIzNTJiYmY0YTRjZGQxMjU2NGY5M2ZhMzMyY2UzMzMzMDFkOWFkNDAyNzFmODEwNzE4MTM0MGFlZjI1YmU1OWQ1XCIsXCIzMjFlYjQwNzUzNDhmNTM0ZDU5YzE4MjU5ZGRhM2UxZjRhMWIzYjJlNzFiMTAzOWM2N2JkM2Q4YmNmODE5OThjXCJdLFtcIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2ZcIixcIjJkZTEwNjgyOTVkZDg2NWI2NDU2OTMzNWJkNWRkODAxODFkNzBlY2ZjODgyNjQ4NDIzYmE3NmI1MzJiN2Q2N1wiXSxbXCI5MjQ4Mjc5YjA5YjRkNjhkYWIyMWE5YjA2NmVkZGE4MzI2M2MzZDg0ZTA5NTcyZTI2OWNhMGNkN2Y1NDUzNzE0XCIsXCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyXCJdLFtcImRhZWQ0ZjJiZTNhOGJmMjc4ZTcwMTMyZmIwYmViNzUyMmY1NzBlMTQ0YmY2MTVjMDdlOTk2ZDQ0M2RlZTg3MjlcIixcImE2OWRjZTRhN2Q2Yzk4ZThkNGExYWNhODdlZjhkNzAwM2Y4M2MyMzBmM2FmYTcyNmFiNDBlNTIyOTBiZTFjNTVcIl0sW1wiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYlwiLFwiMjExOWE0NjBjZTMyNmNkYzc2YzQ1OTI2Yzk4MmZkYWMwZTEwNmU4NjFlZGY2MWM1YTAzOTA2M2YwZTBlNjQ4MlwiXSxbXCI2YTI0NWJmNmRjNjk4NTA0Yzg5YTIwY2ZkZWQ2MDg1MzE1MmI2OTUzMzZjMjgwNjNiNjFjNjVjYmQyNjllNmI0XCIsXCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyXCJdLFtcIjE2OTdmZmE2ZmQ5ZGU2MjdjMDc3ZTNkMmZlNTQxMDg0Y2UxMzMwMGIwYmVjMTE0NmY5NWFlNTdmMGQwYmQ2YTVcIixcImI5YzM5OGYxODY4MDZmNWQyNzU2MTUwNmU0NTU3NDMzYTJjZjE1MDA5ZTQ5OGFlN2FkZWU5ZDYzZDAxYjIzOTZcIl0sW1wiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OVwiLFwiMjk3MmQyZGU0ZjhkMjA2ODFhNzhkOTNlYzk2ZmUyM2MyNmJmYWU4NGZiMTRkYjQzYjAxZTFlOTA1NmI4YzQ5XCJdLFtcIjYyZDE0ZGFiNDE1MGJmNDk3NDAyZmRjNDVhMjE1ZTEwZGNiMDFjMzU0OTU5YjEwY2ZlMzFjN2U5ZDg3ZmYzM2RcIixcIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWZcIl0sW1wiODBjNjBhZDAwNDBmMjdkYWRlNWI0YjA2YzQwOGU1NmIyYzUwZTlmNTZiOWI4YjQyNWU1NTVjMmY4NjMwOGI2ZlwiLFwiMWMzODMwM2YxY2M1YzMwZjI2ZTY2YmFkN2ZlNzJmNzBhNjVlZWQ0Y2JlNzAyNGViMWFhMDFmNTY0MzBiZDU3YVwiXSxbXCI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiXCIsXCJkMGUzZmE5ZWNhODcyNjkwOTU1OWUwZDc5MjY5MDQ2YmRjNTllYTEwYzcwY2UyYjAyZDQ5OWVjMjI0ZGM3ZjdcIl0sW1wiZDUyOGVjZDliNjk2YjU0YzkwN2E5ZWQwNDU0NDdhNzliYjQwOGVjMzliNjhkZjUwNGJiNTFmNDU5YmMzZmZjOVwiLFwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzM1wiXSxbXCI0OTM3MGE0YjVmNDM0MTJlYTI1ZjUxNGU4ZWNkYWQwNTI2NjExNWU0YTdlY2IxMzg3MjMxODA4ZjhiNDU5NjNcIixcIjc1OGYzZjQxYWZkNmVkNDI4YjMwODFiMDUxMmZkNjJhNTRjM2YzYWZiYjViNjc2NGI2NTMwNTJhMTI5NDljOWFcIl0sW1wiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NFwiLFwiOTU4ZWY0MmE3ODg2YjY0MDBhMDgyNjZlOWJhMWIzNzg5NmM5NTMzMGQ5NzA3N2NiYmU4ZWIzYzc2NzFjNjBkNlwiXSxbXCJmMmRhYzk5MWNjNGNlNGI5ZWE0NDg4N2U1YzdjMGJjZTU4YzgwMDc0YWI5ZDRkYmFlYjI4NTMxYjc3MzlmNTMwXCIsXCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3XCJdLFtcIjQ2M2IzZDlmNjYyNjIxZmIxYjRiZThmYmJlMjUyMDEyNWEyMTZjZGZjOWRhZTNkZWJjYmE0ODUwYzY5MGQ0NWJcIixcIjVlZDQzMGQ3OGMyOTZjMzU0MzExNDMwNmRkODYyMmQ3YzYyMmUyN2M5NzBhMWRlMzFjYjM3N2IwMWFmNzMwN2VcIl0sW1wiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0N1wiLFwiY2VkYWJkOWI4MjIwM2Y3ZTEzZDIwNmZjZGY0ZTMzZDkyYTZjNTNjMjZlNWNjZTI2ZDY1Nzk5NjJjNGUzMWRmNlwiXSxbXCJjYWY3NTQyNzJkYzg0NTYzYjAzNTJiN2ExNDMxMWFmNTVkMjQ1MzE1YWNlMjdjNjUzNjllMTVmNzE1MWQ0MWQxXCIsXCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2XCJdLFtcIjI2MDBjYTRiMjgyY2I5ODZmODVkMGYxNzA5OTc5ZDhiNDRhMDljMDdjYjg2ZDdjMTI0NDk3YmM4NmYwODIxMjBcIixcIjQxMTliODg3NTNjMTViZDZhNjkzYjAzZmNkZGJiNDVkNWFjNmJlNzRhYjVmMGVmNDRiMGJlOTQ3NWE3ZTRiNDBcIl0sW1wiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNVwiLFwiOTFiNjQ5NjA5NDg5ZDYxM2QxZDVlNTkwZjc4ZTZkNzRlY2ZjMDYxZDU3MDQ4YmFkOWU3NmYzMDJjNWI5YzYxXCJdLFtcIjc1NGUzMjM5ZjMyNTU3MGNkYmJmNGE4N2RlZWU4YTY2YjdmMmIzMzQ3OWQ0NjhmYmMxYTUwNzQzYmY1NmNjMThcIixcIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4M1wiXSxbXCJlM2U2YmQxMDcxYTFlOTZhZmY1Nzg1OWM4MmQ1NzBmMDMzMDgwMDY2MWQxYzk1MmY5ZmUyNjk0NjkxZDliOWU4XCIsXCI1OWM5ZTBiYmEzOTRlNzZmNDBjMGFhNTgzNzlhM2NiNmE1YTIyODM5OTNlOTBjNDE2NzAwMmFmNDkyMGUzN2Y1XCJdLFtcIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWJcIixcIjNiOTUyZDMyYzY3Y2Y3N2UyZTE3NDQ2ZTIwNDE4MGFiMjFmYjgwOTA4OTUxMzhiNGE0YTc5N2Y4NmU4MDg4OGJcIl0sW1wiZGY5ZDcwYTZiOTg3NmNlNTQ0Yzk4NTYxZjRiZTRmNzI1NDQyZTZkMmI3MzdkOWM5MWE4MzIxNzI0Y2UwOTYzZlwiLFwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxN1wiXSxbXCI1ZWRkNWNjMjNjNTFlODdhNDk3Y2E4MTVkNWRjZTBmOGFiNTI1NTRmODQ5ZWQ4OTk1ZGU2NGM1ZjM0Y2U3MTQzXCIsXCJlZmFlOWM4ZGJjMTQxMzA2NjFlOGNlYzAzMGM4OWFkMGMxM2M2NmMwZDE3YTI5MDVjZGM3MDZhYjczOTlhODY4XCJdLFtcIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmFcIixcImUzOGRhNzZkY2Q0NDA2MjE5ODhkMDBiY2Y3OWFmMjVkNWIyOWMwOTRkYjJhMjMxNDZkMDAzYWZkNDE5NDNlN2FcIl0sW1wiYWYzYzQyM2E5NWQ5ZjViMzA1NDc1NGVmYTE1MGFjMzljZDI5NTUyZmUzNjAyNTczNjJkZmRlY2VmNDA1M2I0NVwiLFwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNlwiXSxbXCI3NjZkYmIyNGQxMzRlNzQ1Y2NjYWEyOGM5OWJmMjc0OTA2YmI2NmIyNmRjZjk4ZGY4ZDJmZWQ1MGQ4ODQyNDlhXCIsXCI3NDRiMTE1MmVhY2JlNWUzOGRjYzg4Nzk4MGRhMzhiODk3NTg0YTY1ZmEwNmNlZGQyYzkyNGY5N2NiYWM1OTk2XCJdLFtcIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2VcIixcImM1MzRhZDQ0MTc1ZmJjMzAwZjRlYTZjZTY0ODMwOWEwNDJjZTczOWE3OTE5Nzk4Y2Q4NWUyMTZjNGEzMDdmNmVcIl0sW1wiZjEzYWRhOTUxMDNjNDUzNzMwNWU2OTFlNzRlOWE0YThkZDY0N2U3MTFhOTVlNzNjYjYyZGM2MDE4Y2ZkODdiOFwiLFwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZFwiXSxbXCI3NzU0YjRmYTBlOGFjZWQwNmQ0MTY3YTJjNTljY2E0Y2RhMTg2OWMwNmViYWRmYjY0ODg1NTAwMTVhODg1MjJjXCIsXCIzMGU5M2U4NjRlNjY5ZDgyMjI0Yjk2N2MzMDIwYjhmYThkMWU0ZTM1MGI2Y2JjYzUzN2E0OGI1Nzg0MTE2M2EyXCJdLFtcIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTlcIixcImU0OTFhNDI1MzdmNmU1OTdkNWQyOGEzMjI0YjFiYzI1ZGY5MTU0ZWZiZDJlZjFkMmNiYmEyY2FlNTM0N2Q1N2VcIl0sW1wiNzk2MjQxNDQ1MGM3NmMxNjg5YzdiNDhmODIwMmVjMzdmYjIyNGNmNWFjMGJmYTE1NzAzMjhhOGEzZDdjNzdhYlwiLFwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzN1wiXSxbXCIzNTE0MDg3ODM0OTY0YjU0YjE1YjE2MDY0NGQ5MTU0ODVhMTY5NzcyMjViODg0N2JiMGRkMDg1MTM3ZWM0N2NhXCIsXCJlZjBhZmJiMjA1NjIwNTQ0OGUxNjUyYzQ4ZTgxMjdmYzYwMzllNzdjMTVjMjM3OGI3ZTdkMTVhMGRlMjkzMzExXCJdLFtcImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWZcIixcIjhiMzc4YTIyZDgyNzI3OGQ4OWM1ZTliZThmOTUwOGFlM2MyYWQ0NjI5MDM1ODYzMGFmYjM0ZGIwNGVlZGUwYTRcIl0sW1wiMTYyNGQ4NDc4MDczMjg2MGNlMWM3OGZjYmZlZmUwOGIyYjI5ODIzZGI5MTNmNjQ5Mzk3NWJhMGZmNDg0NzYxMFwiLFwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NVwiXSxbXCI3MzNjZTgwZGE5NTVhOGEyNjkwMmM5NTYzM2U2MmE5ODUxOTI0NzRiNWFmMjA3ZGE2ZGY3YjRmZDVmYzYxY2Q0XCIsXCJmNTQzNWEyYmQyYmFkZjdkNDg1YTRkOGI4ZGI5ZmNjZTNlMWVmOGUwMjAxZTQ1NzhjNTQ2NzNiYzFkYzVlYTFkXCJdLFtcIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWNcIixcImQ1NmViMzBiNjk0NjNlNzIzNGY1MTM3YjczYjg0MTc3NDM0ODAwYmFjZWJmYzY4NWZjMzdiYmU5ZWZlNDA3MGRcIl0sW1wiYTFkMGZjZjJlYzlkZTY3NWI2MTIxMzZlNWNlNzBkMjcxYzIxNDE3YzlkMmI4YWFhYWMxMzg1OTlkMDcxNzk0MFwiLFwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOVwiXSxbXCJlMjJmYmUxNWMwYWY4Y2NjNTc4MGMwNzM1Zjg0ZGJlOWE3OTBiYWRlZTgyNDVjMDZjN2NhMzczMzFjYjM2OTgwXCIsXCJhODU1YmFiYWQ1Y2Q2MGM4OGI0MzBhNjlmNTNhMWE3YTM4Mjg5MTU0OTY0Nzk5YmU0M2QwNmQ3N2QzMWRhMDZcIl0sW1wiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliM1wiLFwiNjZkYjY1NmY4N2QxZjA0ZmZmZDFmMDQ3ODhjMDY4MzA4NzFlYzVhNjRmZWVlNjg1YmQ4MGYwYjEyODZkODM3NFwiXSxbXCIzNGMxZmQwNGQzMDFiZTg5YjMxYzA0NDJkM2U2YWMyNDg4MzkyOGI0NWE5MzQwNzgxODY3ZDQyMzJlYzJkYmRmXCIsXCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWVcIl0sW1wiZjIxOWVhNWQ2YjU0NzAxYzFjMTRkZTViNTU3ZWI0MmE4ZDEzZjNhYmJjZDA4YWZmY2MyYTVlNmIwNDliOGQ2M1wiLFwiNGNiOTU5NTdlODNkNDBiMGY3M2FmNDU0NGNjY2Y2YjFmNGIwOGQzYzA3YjI3ZmI4ZDhjMjk2MmE0MDA3NjZkMVwiXSxbXCJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4XCIsXCJmYTc3OTY4MTI4ZDljOTJlZTEwMTBmMzM3YWQ0NzE3ZWZmMTVkYjVlZDNjMDQ5YjM0MTFlMDMxNWVhYTQ1OTNiXCJdLFtcIjMyZDMxYzIyMmY4ZjZmMGVmODZmN2M5OGQzYTMzMzVlYWQ1YmNkMzJhYmRkOTQyODlmZTRkMzA5MWFhODI0YmZcIixcIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjFcIl0sW1wiNzQ2MWYzNzE5MTRhYjMyNjcxMDQ1YTE1NWQ5ODMxZWE4NzkzZDc3Y2Q1OTU5MmM0MzQwZjg2Y2JjMTgzNDdiNVwiLFwiOGVjMGJhMjM4Yjk2YmVjMGNiZGRkY2FlMGFhNDQyNTQyZWVlMWZmNTBjOTg2ZWE2YjM5ODQ3YjNjYzA5MmZmNlwiXSxbXCJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2XCIsXCI4ZGMyNDEyYWFmZTNiZTVjNGM1ZjM3ZTBlY2M1ZjlmNmE0NDY5ODlhZjA0YzRlMjVlYmFhYzQ3OWVjMWM4YzFlXCJdLFtcIjE2ZWM5M2U0NDdlYzgzZjA0NjdiMTgzMDJlZTYyMGY3ZTY1ZGUzMzE4NzRjOWRjNzJiZmQ4NjE2YmE5ZGE2YjVcIixcIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGRcIl0sW1wiZWFhNWY5ODBjMjQ1ZjZmMDM4OTc4MjkwYWZhNzBiNmJkODg1NTg5N2Y5OGI2YWE0ODViOTYwNjVkNTM3YmQ5OVwiLFwiZjY1ZjVkM2UyOTJjMmUwODE5YTUyODM5MWM5OTQ2MjRkNzg0ODY5ZDdlNmVhNjdmYjE4MDQxMDI0ZWRjMDdkY1wiXSxbXCI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTFcIixcImYzZTAzMTkxNjllYjliODVkNTQwNDc5NTUzOWE1ZTY4ZmExZmJkNTgzYzA2NGQyNDYyYjY3NWYxOTRhM2RkYjRcIl0sW1wiNDk0ZjRiZTIxOWExYTc3MDE2ZGNkODM4NDMxYWVhMDAwMWNkYzhhZTdhNmZjNjg4NzI2NTc4ZDk3MDI4NTdhNVwiLFwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyY1wiXSxbXCJhNTk4YTgwMzBkYTZkODZjNmJjN2YyZjUxNDRlYTU0OWQyODIxMWVhNThmYWE3MGViZjRjMWU2NjVjMWZlOWI1XCIsXCIyMDRiNWQ2Zjg0ODIyYzMwN2U0YjRhNzE0MDczN2FlYzIzZmM2M2I2NWIzNWY4NmExMDAyNmRiZDJkODY0ZTZiXCJdLFtcImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTdcIixcIjRmMTQzNTFkMDA4N2VmYTQ5ZDI0NWIzMjg5ODQ5ODlkNWNhZjk0NTBmMzRiZmMwZWQxNmU5NmI1OGZhOTkxM1wiXSxbXCI4NDFkNjA2M2E1ODZmYTQ3NWE3MjQ2MDRkYTAzYmM1YjkyYTJlMGQyZTBhMzZhY2ZlNGM3M2E1NTE0NzQyODgxXCIsXCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTRcIl0sW1wiNWU5NWJiMzk5YTY5NzFkMzc2MDI2OTQ3Zjg5YmRlMmYyODJiMzM4MTA5MjhiZTRkZWQxMTJhYzRkNzBlMjBkNVwiLFwiMzlmMjNmMzY2ODA5MDg1YmVlYmZjNzExODEzMTM3NzVhOTljOWFlZDdkOGJhMzhiMTYxMzg0Yzc0NjAxMjg2NVwiXSxbXCIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2XCIsXCJkMjQyNGIxYjFhYmU0ZWI4MTY0MjI3YjA4NWM5YWE5NDU2ZWExMzQ5M2ZkNTYzZTA2ZmQ1MWNmNTY5NGM3OGZjXCJdLFtcIjMzNjU4MWVhN2JmYmJiMjkwYzE5MWEyZjUwN2E0MWNmNTY0Mzg0MjE3MGU5MTRmYWVhYjI3YzJjNTc5ZjcyNlwiLFwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNFwiXSxbXCI4YWI4OTgxNmRhZGZkNmI2YTFmMjYzNGZjZjAwZWM4NDAzNzgxMDI1ZWQ2ODkwYzQ4NDk3NDI3MDZiZDQzZWRlXCIsXCI2ZmRjZWYwOWYyZjZkMGEwNDRlNjU0YWVmNjI0MTM2ZjUwM2Q0NTljM2U4OTg0NTg1OGE0N2E5MTI5Y2RkMjRlXCJdLFtcIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTRcIixcIjYwNjYwMjU3ZGQxMWIzYWE5YzhlZDYxOGQyNGVkZmYyMzA2ZDMyMGYxZDAzMDEwZTMzYTdkMjA1N2YzYjNiNlwiXSxbXCI4NWI3YzFkY2IzY2VjMWI3ZWU3ZjMwZGVkNzlkZDIwYTBlZDFmNGNjMThjYmNmY2ZhNDEwMzYxZmQ4ZjA4ZjMxXCIsXCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExXCJdLFtcIjI5ZGY5ZmJkOGQ5ZTQ2NTA5Mjc1ZjRiMTI1ZDZkNDVkN2ZiZTlhM2I4NzhhN2FmODcyYTI4MDA2NjFhYzVmNTFcIixcImI0YzRmZTk5Yzc3NWE2MDZlMmQ4ODYyMTc5MTM5ZmZkYTYxZGM4NjFjMDE5ZTU1Y2QyODc2ZWIyYTI3ZDg0YlwiXSxbXCJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyXCIsXCJhZTQzNDEwMmVkZGUwOTU4ZWM0YjE5ZDkxN2E2YTI4ZTZiNzJkYTE4MzRhZmYwZTY1MGYwNDk1MDNhMjk2Y2YyXCJdLFtcIjRlOGNlYWZiOWIzZTlhMTM2ZGM3ZmY2N2U4NDAyOTViNDk5ZGZiM2IyMTMzZTRiYTExM2YyZTRjMGUxMjFlNVwiLFwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzY1wiXSxbXCJkMjRhNDRlMDQ3ZTE5YjZmNWFmYjgxYzdjYTJmNjkwODBhNTA3NjY4OWEwMTA5MTlmNDI3MjVjMmI3ODlhMzNiXCIsXCI2ZmI4ZDU1OTFiNDY2ZjhmYzYzZGI1MGYxYzBmMWM2OTAxM2Y5OTY4ODdiODI0NGQyY2RlYzQxN2FmZWE4ZmEzXCJdLFtcImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDRcIixcIjMyMmFmNDkwOGM3MzEyYjBjZmJmZTM2OWY3YTdiM2NkYjdkNDQ5NGJjMjgyMzcwMGNmZDY1MjE4OGEzZWE5OGRcIl0sW1wiYWY4YWRkYmYyYjY2MWM4YTZjNjMyODY1NWViOTY2NTEyNTIwMDdkOGM1ZWEzMWJlNGFkMTk2ZGU4Y2UyMTMxZlwiLFwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMFwiXSxbXCJlM2FlMTk3NDU2NmNhMDZjYzUxNmQ0N2UwZmIxNjVhNjc0YTNkYWJjZmNhMTVlNzIyZjBlMzQ1MGY0NTg4OVwiLFwiMmFlYWJlN2U0NTMxNTEwMTE2MjE3ZjA3YmY0ZDA3MzAwZGU5N2U0ODc0ZjgxZjUzMzQyMGE3MmVlYjBiZDZhNFwiXSxbXCI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2XCIsXCJiMGVhNTU4YTExM2MzMGJlYTYwZmM0Nzc1NDYwYzc5MDFmZjBiMDUzZDI1Y2EyYmRlZWU5OGYxYTRiZTVkMTk2XCJdLFtcIjExMzk2ZDU1ZmRhNTRjNDlmMTlhYTk3MzE4ZDhkYTYxZmE4NTg0ZTQ3YjA4NDk0NTA3N2NmMDMyNTViNTI5ODRcIixcIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTRcIl0sW1wiM2M1ZDJhMWJhMzljNWExNzkwMDAwNzM4YzllMGM0MGI4ZGNkZmQ1NDY4NzU0YjY0MDU1NDAxNTdlMDE3YWE3YVwiLFwiYjIyODQyNzk5OTVhMzRlMmY5ZDRkZTczOTZmYzE4YjgwZjliOGI5ZmRkMjcwZjY2NjFmNzljYTRjODFiZDI1N1wiXSxbXCJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwXCIsXCJiZGQ0NjAzOWZlZWQxNzg4MWQxZTA4NjJkYjM0N2Y4Y2YzOTViNzRmYzRiY2RjNGU5NDBiNzRlM2FjMWYxYjEzXCJdLFtcImM1MzNlNGY3ZWE4NTU1YWFjZDk3NzdhYzVjYWQyOWI5N2RkNGRlZmNjYzUzZWU3ZWEyMDQxMTliMjg4OWIxOTdcIixcIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTZcIl0sW1wiYzE0ZjhmMmNjYjI3ZDZmMTA5ZjZkMDhkMDNjYzk2YTY5YmE4YzM0ZWVjMDdiYmNmNTY2ZDQ4ZTMzZGE2NTkzXCIsXCJjMzU5ZDY5MjNiYjM5OGY3ZmQ0NDczZTE2ZmUxYzI4NDc1Yjc0MGRkMDk4MDc1ZTZjMGU4NjQ5MTEzZGMzYTM4XCJdLFtcImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWZcIixcIjIxYWU3ZjQ2ODBlODg5YmIxMzA2MTllMmMwZjk1YTM2MGNlYjU3M2M3MDYwMzEzOTg2MmFmZDYxN2ZhOWI5ZlwiXSxbXCIzNDdkNmQ5YTAyYzQ4OTI3ZWJmYjg2YzEzNTliMWNhZjEzMGEzYzAyNjdkMTFjZTYzNDRiMzlmOTlkNDNjYzM4XCIsXCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4XCJdLFtcImRhNjU0NWQyMTgxZGI4ZDk4M2Y3ZGNiMzc1ZWY1ODY2ZDQ3YzY3YjFiZjMxYzhjZjg1NWVmNzQzN2I3MjY1NmFcIixcIjQ5Yjk2NzE1YWI2ODc4YTc5ZTc4ZjA3Y2U1NjgwYzVkNjY3MzA1MWI0OTM1YmQ4OTdmZWE4MjRiNzdkYzIwOGFcIl0sW1wiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMVwiLFwiNWNhNTYwNzUzYmUyYTEyZmM2ZGU2Y2FmMmNiNDg5NTY1ZGI5MzYxNTZiOTUxNGUxYmI1ZTgzMDM3ZTBmYTJkNFwiXSxbXCI0ZTQyYzhlYzgyYzk5Nzk4Y2NmM2E2MTBiZTg3MGU3ODMzOGM3ZjcxMzM0OGJkMzRjODIwM2VmNDAzN2YzNTAyXCIsXCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3XCJdLFtcIjM3NzVhYjcwODliYzZhZjgyM2FiYTJlMWFmNzBiMjM2ZDI1MWNhZGIwYzg2NzQzMjg3NTIyYTFiM2IwZGVkZWFcIixcImJlNTJkMTA3YmNmYTA5ZDhiY2I5NzM2YTgyOGNmYTdmYWM4ZGIxN2JmN2E3NmEyYzQyYWQ5NjE0MDkwMThjZjdcIl0sW1wiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNlwiLFwiOGZkNjRhMTRjMDZiNTg5YzI2Yjk0N2FlMmJjZjZiZmEwMTQ5ZWYwYmUxNGVkNGQ4MGY0NDhhMDFjNDNiMWM2ZFwiXSxbXCJiNGY5ZWFlYTA5YjY5MTc2MTlmNmVhNmE0ZWI1NDY0ZWZkZGI1OGZkNDViMWViZWZjZGMxYTAxZDA4YjQ3OTg2XCIsXCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhXCJdLFtcImQ0MjYzZGZjM2QyZGY5MjNhMDE3OWE0ODk2NmQzMGNlODRlMjUxNWFmYzNkY2NjMWI3NzkwNzc5MmViY2M2MGVcIixcIjYyZGZhZjA3YTBmNzhmZWIzMGUzMGQ2Mjk1ODUzY2UxODllMTI3NzYwYWQ2Y2Y3ZmFlMTY0ZTEyMmEyMDhkNTRcIl0sW1wiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNFwiLFwiMjVhNzQ4YWIzNjc5NzlkOTg3MzNjMzhhMWZhMWMyZTdkYzZjYzA3ZGIyZDYwYTlhZTdhNzZhYWE0OWJkMGY3N1wiXSxbXCJkZmVlZWYxODgxMTAxZjJjYjExNjQ0ZjNhMmFmZGZjMjA0NWUxOTkxOTE1MjkyM2YzNjdhMTc2N2MxMWNjZWRhXCIsXCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3XCJdLFtcIjZkN2VmNmIxNzU0M2Y4MzczYzU3M2Y0NGUxZjM4OTgzNWQ4OWJjYmM2MDYyY2VkMzZjODJkZjgzYjhmYWU4NTlcIixcImNkNDUwZWMzMzU0Mzg5ODZkZmVmYTEwYzU3ZmVhOWJjYzUyMWEwOTU5YjJkODBiYmY3NGIxOTBkY2E3MTJkMTBcIl0sW1wiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZlwiLFwiZjVjNTQ3NTRhOGY3MWVlNTQwYjliNDg3Mjg0NzNlMzE0ZjcyOWFjNTMwOGIwNjkzODM2MDk5MGUyYmZhZDEyNVwiXSxbXCJlYjk4NjYwZjRjNGRmYWEwNmEyYmU0NTNkNTAyMGJjOTlhMGMyZTYwYWJlMzg4NDU3ZGQ0M2ZlZmIxZWQ2MjBjXCIsXCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlXCJdLFtcIjEzZTg3YjAyN2Q4NTE0ZDM1OTM5ZjJlNjg5MmIxOTkyMjE1NDU5Njk0MTg4ODMzNmRjMzU2M2UzYjhkYmE5NDJcIixcImZlZjVhM2M2ODA1OWE2ZGVjNWQ2MjQxMTRiZjFlOTFhYWMyYjlkYTU2OGQ2YWJlYjI1NzBkNTU2NDZiOGFkZjFcIl0sW1wiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YVwiLFwiMWFjYjI1MGYyNTVkZDYxYzQzZDk0Y2NjNjcwZDBmNThmNDlhZTNmYTE1Yjk2NjIzZTU0MzBkYTBhZDZjNjJiMlwiXSxbXCJiMjY4ZjVlZjlhZDUxZTRkNzhkZTNhNzUwYzJkYzg5YjFlNjI2ZDQzNTA1ODY3OTk5OTMyZTVkYjMzYWYzZDgwXCIsXCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzXCJdLFtcImZmMDdmMzExOGE5ZGYwMzVlOWZhZDg1ZWI2YzdiZmU0MmIwMmYwMWNhOTljZWVhM2JmN2ZmZGJhOTNjNDc1MGRcIixcIjQzODEzNmQ2MDNlODU4YTNhNWM0NDBjMzhlY2NiYWRkYzFkMjk0MjExNGUyZWRkZDQ3NDBkMDk4Y2VkMWYwZDhcIl0sW1wiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMVwiLFwiY2RiNTU5ZWVkYzJkNzlmOTI2YmFmNDRmYjg0ZWE0ZDQ0YmNmNTBmZWU1MWQ3Y2ViMzBlMmU3ZjQ2MzAzNjc1OFwiXSxbXCI1MmRiMGI1Mzg0ZGZiZjA1YmZhOWQ0NzJkN2FlMjZkZmU0Yjg1MWNlY2E5MWIxZWJhNTQyNjMxODBkYTMyYjYzXCIsXCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzVcIl0sW1wiZTYyZjk0OTBkM2Q1MWRhNjM5NWVmZDI0ZTgwOTE5Y2M3ZDBmMjljM2YzZmE0OGM2ZmZmNTQzYmVjYmQ0MzM1MlwiLFwiNmQ4OWFkN2JhNDg3NmIwYjIyYzJjYTI4MGM2ODI4NjJmMzQyYzg1OTFmMWRhZjUxNzBlMDdiZmQ5Y2NhZmE3ZFwiXSxbXCI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzXCIsXCJjYTVlZjdkNGIyMzFjOTRjM2IxNTM4OWE1ZjYzMTFlOWRhZmY3YmI2N2IxMDNlOTg4MGVmNGJmZjYzN2FjYWVjXCJdLFtcIjUwOThmZjFlMWQ5ZjE0ZmI0NmEyMTBmYWRhNmM5MDNmZWYwZmI3YjRhMWRkMWQ5YWM2MGEwMzYxODAwYjdhMDBcIixcIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMFwiXSxbXCIzMmI3OGM3ZGU5ZWU1MTJhNzI4OTViZTZiOWNiZWZhNmUyZjNjNGNjY2U0NDVjOTZiOWYyYzgxZTI3NzhhZDU4XCIsXCJlZTE4NDlmNTEzZGY3MWUzMmVmYzM4OTZlZTI4MjYwYzczYmI4MDU0N2FlMjI3NWJhNDk3MjM3Nzk0Yzg3NTNjXCJdLFtcImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjdcIixcImQzYWEyZWQ3MWM5ZGQyMjQ3YTYyZGYwNjI3MzZlYjBiYWRkZWE5ZTM2MTIyZDJiZTg2NDFhYmNiMDA1Y2M0YTRcIl0sW1wiODQzODQ0NzU2NmQ0ZDdiZWRhZGMyOTk0OTZhYjM1NzQyNjAwOWEzNWYyMzVjYjE0MWJlMGQ5OWNkMTBhZTNhOFwiLFwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZlwiXSxbXCI0MTYyZDQ4OGI4OTQwMjAzOWI1ODRjNmZjNmMzMDg4NzA1ODdkOWM0NmY2NjBiODc4YWI2NWM4MmM3MTFkNjdlXCIsXCI2NzE2M2U5MDMyMzYyODlmNzc2ZjIyYzI1ZmI4YTNhZmMxNzMyZjJiODRiNGU5NWRiZGE0N2FlNWEwODUyNjQ5XCJdLFtcIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2RcIixcImNkMWJjN2NiNmNjNDA3YmIyZjBjYTY0N2M3MThhNzMwY2Y3MTg3MmU3ZDBkMmE1M2ZhMjBlZmNkZmU2MTgyNlwiXSxbXCI2NzRmMjYwMGEzMDA3YTAwNTY4YzFhN2NlMDVkMDgxNmMxZmI4NGJmMTM3MDc5OGYxYzY5NTMyZmFlYjFhODZiXCIsXCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1XCJdLFtcImQzMmY0ZGE1NGFkZTc0YWJiODFiODE1YWQxZmIzYjI2M2Q4MmQ2YzY5MjcxNGJjZmY4N2QyOWJkNWVlOWYwOGZcIixcImY5NDI5ZTczOGI4ZTUzYjk2OGU5OTAxNmMwNTk3MDc3ODJlMTRmNDUzNTM1OWQ1ODJmYzQxNjkxMGIzZWVhODdcIl0sW1wiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNlwiLFwiNDYyZjliY2U2MTk4OTg2Mzg0OTkzNTAxMTNiYmM5YjEwYTg3OGQzNWRhNzA3NDBkYzY5NWE1NTllYjg4ZGI3YlwiXSxbXCJiZTIwNjIwMDNjNTFjYzMwMDQ2ODI5MDQzMzBlNGRlZTdmM2RjZDEwYjAxZTU4MGJmMTk3MWIwNGQ0Y2FkMjk3XCIsXCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjXCJdLFtcIjkzMTQ0NDIzYWNlMzQ1MWVkMjllMGZiOWFjMmFmMjExY2I2ZTg0YTYwMWRmNTk5M2M0MTk4NTlmZmY1ZGYwNGFcIixcIjdjMTBkZmIxNjRjMzQyNWY1YzcxYTNmOWQ3OTkyMDM4ZjEwNjUyMjRmNzJiYjlkMWQ5MDJhNmQxMzAzN2I0N2NcIl0sW1wiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyY1wiLFwiYWI4YzFlMDg2ZDA0ZTgxMzc0NGE2NTViMmRmOGQ1ZjgzYjNjZGM2ZmFhMzA4OGMxZDNhZWExNDU0ZTNhMWQ1ZlwiXSxbXCJkNWU5ZTFkYTY0OWQ5N2Q4OWU0ODY4MTE3YTQ2NWEzYTRmOGExOGRlNTdhMTQwZDM2YjNmMmFmMzQxYTIxYjUyXCIsXCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhXCJdLFtcImQzYWU0MTA0N2RkN2NhMDY1ZGJmOGVkNzdiOTkyNDM5OTgzMDA1Y2Q3MmUxNmQ2Zjk5NmE1MzE2ZDM2OTY2YmJcIixcImJkMWFlYjIxYWQyMmViYjIyYTEwZjAzMDM0MTdjNmQ5NjRmOGNkZDdkZjBhY2E2MTRiMTBkYzE0ZDEyNWFjNDZcIl0sW1wiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NVwiLFwiYmZlZmFjZGIwZTVkMGZkN2RmM2EzMTFhOTRkZTA2MmIyNmI4MGM2MWZiYzk3NTA4Yjc5OTkyNjcxZWY3Y2E3ZlwiXSxbXCI3OTg1ZmRmZDEyN2MwNTY3YzZmNTNlYzFiYjYzZWMzMTU4ZTU5N2M0MGJmZTc0N2M4M2NkZGZjOTEwNjQxOTE3XCIsXCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzXCJdLFtcIjc0YTFhZDZiNWY3NmUzOWRiMmRkMjQ5NDEwZWFjN2Y5OWU3NGM1OWNiODNkMmQwZWQ1ZmYxNTQzZGE3NzAzZTlcIixcImNjNjE1N2VmMThjOWM2M2NkNjE5M2Q4MzYzMWJiZWEwMDkzZTA5Njg5NDJlOGMzM2Q1NzM3ZmQ3OTBlMGRiMDhcIl0sW1wiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhM1wiLFwiNTUzZTA0ZjZiMDE4YjRmYTZjOGYzOWU3ZjMxMWQzMTc2MjkwZDBlMGYxOWNhNzNmMTc3MTRkOTk3N2EyMmZmOFwiXSxbXCI5ZTIxNThmMGQ3YzBkNWYyNmMzNzkxZWZlZmE3OTU5NzY1NGU3YTJiMjQ2NGY1MmIxZWU2YzEzNDc3NjllZjU3XCIsXCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzNcIl0sW1wiMTc2ZTI2OTg5YTQzYzljZmViYTQwMjljMjAyNTM4YzI4MTcyZTU2NmUzYzRmY2U3MzIyODU3ZjNiZTMyN2Q2NlwiLFwiZWQ4Y2M5ZDA0YjI5ZWI4NzdkMjcwYjQ4NzhkYzQzYzE5YWVmZDMxZjRlZWUwOWVlN2I0NzgzNGMxZmE0YjFjM1wiXSxbXCI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4XCIsXCI5ODUyMzkwYTk5NTA3Njc5ZmQwYjg2ZmQyYjM5YTg2OGQ3ZWZjMjIxNTEzNDZlMWEzY2E0NzI2NTg2YTZiZWQ4XCJdLFtcIjgwOWEyMGM2N2Q2NDkwMGZmYjY5OGM0YzgyNWY2ZDVmMjMxMGZiMDQ1MWM4NjkzNDViNzMxOWY2NDU2MDU3MjFcIixcIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzFcIl0sW1wiMWIzODkwM2E0M2Y3ZjExNGVkNDUwMGI0ZWFjNzA4M2ZkZWZlY2UxY2YyOWM2MzUyOGQ1NjM0NDZmOTcyYzE4MFwiLFwiNDAzNmVkYzkzMWE2MGFlODg5MzUzZjc3ZmQ1M2RlNGEyNzA4YjI2YjZmNWRhNzJhZDMzOTQxMTlkYWY0MDhmOVwiXV19fX0sNDQwMTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9dDt2YXIgbj1yKDcxMSk7dmFyIGE9cigzNTIzKTt2YXIgcz1yKDY1NDUpO2kuYXNzZXJ0PWE7aS50b0FycmF5PXMudG9BcnJheTtpLnplcm8yPXMuemVybzI7aS50b0hleD1zLnRvSGV4O2kuZW5jb2RlPXMuZW5jb2RlO2Z1bmN0aW9uIGdldE5BRihlLHQscil7dmFyIGk9bmV3IEFycmF5KE1hdGgubWF4KGUuYml0TGVuZ3RoKCkscikrMSk7aS5maWxsKDApO3ZhciBuPTE8PHQrMTt2YXIgYT1lLmNsb25lKCk7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBvO3ZhciBoPWEuYW5kbG4obi0xKTtpZihhLmlzT2RkKCkpe2lmKGg+KG4+PjEpLTEpbz0obj4+MSktaDtlbHNlIG89aDthLmlzdWJuKG8pfWVsc2V7bz0wfWlbc109bzthLml1c2hybigxKX1yZXR1cm4gaX1pLmdldE5BRj1nZXROQUY7ZnVuY3Rpb24gZ2V0SlNGKGUsdCl7dmFyIHI9W1tdLFtdXTtlPWUuY2xvbmUoKTt0PXQuY2xvbmUoKTt2YXIgaT0wO3ZhciBuPTA7d2hpbGUoZS5jbXBuKC1pKT4wfHx0LmNtcG4oLW4pPjApe3ZhciBhPWUuYW5kbG4oMykraSYzO3ZhciBzPXQuYW5kbG4oMykrbiYzO2lmKGE9PT0zKWE9LTE7aWYocz09PTMpcz0tMTt2YXIgbztpZigoYSYxKT09PTApe289MH1lbHNle3ZhciBoPWUuYW5kbG4oNykraSY3O2lmKChoPT09M3x8aD09PTUpJiZzPT09MilvPS1hO2Vsc2Ugbz1hfXJbMF0ucHVzaChvKTt2YXIgdTtpZigocyYxKT09PTApe3U9MH1lbHNle3ZhciBoPXQuYW5kbG4oNykrbiY3O2lmKChoPT09M3x8aD09PTUpJiZhPT09Mil1PS1zO2Vsc2UgdT1zfXJbMV0ucHVzaCh1KTtpZigyKmk9PT1vKzEpaT0xLWk7aWYoMipuPT09dSsxKW49MS1uO2UuaXVzaHJuKDEpO3QuaXVzaHJuKDEpfXJldHVybiByfWkuZ2V0SlNGPWdldEpTRjtmdW5jdGlvbiBjYWNoZWRQcm9wZXJ0eShlLHQscil7dmFyIGk9XCJfXCIrdDtlLnByb3RvdHlwZVt0XT1mdW5jdGlvbiBjYWNoZWRQcm9wZXJ0eSgpe3JldHVybiB0aGlzW2ldIT09dW5kZWZpbmVkP3RoaXNbaV06dGhpc1tpXT1yLmNhbGwodGhpcyl9fWkuY2FjaGVkUHJvcGVydHk9Y2FjaGVkUHJvcGVydHk7ZnVuY3Rpb24gcGFyc2VCeXRlcyhlKXtyZXR1cm4gdHlwZW9mIGU9PT1cInN0cmluZ1wiP2kudG9BcnJheShlLFwiaGV4XCIpOmV9aS5wYXJzZUJ5dGVzPXBhcnNlQnl0ZXM7ZnVuY3Rpb24gaW50RnJvbUxFKGUpe3JldHVybiBuZXcgbihlLFwiaGV4XCIsXCJsZVwiKX1pLmludEZyb21MRT1pbnRGcm9tTEV9LDgzNjg6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNjkxMSkuQnVmZmVyO3ZhciBuPXIoMzUzMyk7ZnVuY3Rpb24gRVZQX0J5dGVzVG9LZXkoZSx0LHIsYSl7aWYoIWkuaXNCdWZmZXIoZSkpZT1pLmZyb20oZSxcImJpbmFyeVwiKTtpZih0KXtpZighaS5pc0J1ZmZlcih0KSl0PWkuZnJvbSh0LFwiYmluYXJ5XCIpO2lmKHQubGVuZ3RoIT09OCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcInNhbHQgc2hvdWxkIGJlIEJ1ZmZlciB3aXRoIDggYnl0ZSBsZW5ndGhcIil9dmFyIHM9ci84O3ZhciBvPWkuYWxsb2Mocyk7dmFyIGg9aS5hbGxvYyhhfHwwKTt2YXIgdT1pLmFsbG9jKDApO3doaWxlKHM+MHx8YT4wKXt2YXIgZD1uZXcgbjtkLnVwZGF0ZSh1KTtkLnVwZGF0ZShlKTtpZih0KWQudXBkYXRlKHQpO3U9ZC5kaWdlc3QoKTt2YXIgYz0wO2lmKHM+MCl7dmFyIGw9by5sZW5ndGgtcztjPU1hdGgubWluKHMsdS5sZW5ndGgpO3UuY29weShvLGwsMCxjKTtzLT1jfWlmKGM8dS5sZW5ndGgmJmE+MCl7dmFyIHA9aC5sZW5ndGgtYTt2YXIgdj1NYXRoLm1pbihhLHUubGVuZ3RoLWMpO3UuY29weShoLHAsYyxjK3YpO2EtPXZ9fXUuZmlsbCgwKTtyZXR1cm57a2V5Om8saXY6aH19ZS5leHBvcnRzPUVWUF9CeXRlc1RvS2V5fSw5MDI5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDY5MTEpLkJ1ZmZlcjt2YXIgbj1yKDM3MjYpLlRyYW5zZm9ybTt2YXIgYT1yKDM3ODIpO2Z1bmN0aW9uIHRocm93SWZOb3RTdHJpbmdPckJ1ZmZlcihlLHQpe2lmKCFpLmlzQnVmZmVyKGUpJiZ0eXBlb2YgZSE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IodCtcIiBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyXCIpfX1mdW5jdGlvbiBIYXNoQmFzZShlKXtuLmNhbGwodGhpcyk7dGhpcy5fYmxvY2s9aS5hbGxvY1Vuc2FmZShlKTt0aGlzLl9ibG9ja1NpemU9ZTt0aGlzLl9ibG9ja09mZnNldD0wO3RoaXMuX2xlbmd0aD1bMCwwLDAsMF07dGhpcy5fZmluYWxpemVkPWZhbHNlfWEoSGFzaEJhc2Usbik7SGFzaEJhc2UucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPW51bGw7dHJ5e3RoaXMudXBkYXRlKGUsdCl9Y2F0Y2goZSl7aT1lfXIoaSl9O0hhc2hCYXNlLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKGUpe3Q9ZX1lKHQpfTtIYXNoQmFzZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUsdCl7dGhyb3dJZk5vdFN0cmluZ09yQnVmZmVyKGUsXCJEYXRhXCIpO2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoXCJEaWdlc3QgYWxyZWFkeSBjYWxsZWRcIik7aWYoIWkuaXNCdWZmZXIoZSkpZT1pLmZyb20oZSx0KTt2YXIgcj10aGlzLl9ibG9jazt2YXIgbj0wO3doaWxlKHRoaXMuX2Jsb2NrT2Zmc2V0K2UubGVuZ3RoLW4+PXRoaXMuX2Jsb2NrU2l6ZSl7Zm9yKHZhciBhPXRoaXMuX2Jsb2NrT2Zmc2V0O2E8dGhpcy5fYmxvY2tTaXplOylyW2ErK109ZVtuKytdO3RoaXMuX3VwZGF0ZSgpO3RoaXMuX2Jsb2NrT2Zmc2V0PTB9d2hpbGUobjxlLmxlbmd0aClyW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPWVbbisrXTtmb3IodmFyIHM9MCxvPWUubGVuZ3RoKjg7bz4wOysrcyl7dGhpcy5fbGVuZ3RoW3NdKz1vO289dGhpcy5fbGVuZ3RoW3NdLzQyOTQ5NjcyOTZ8MDtpZihvPjApdGhpcy5fbGVuZ3RoW3NdLT00Mjk0OTY3Mjk2Km99cmV0dXJuIHRoaXN9O0hhc2hCYXNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwiX3VwZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWRcIil9O0hhc2hCYXNlLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcihcIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZFwiKTt0aGlzLl9maW5hbGl6ZWQ9dHJ1ZTt2YXIgdD10aGlzLl9kaWdlc3QoKTtpZihlIT09dW5kZWZpbmVkKXQ9dC50b1N0cmluZyhlKTt0aGlzLl9ibG9jay5maWxsKDApO3RoaXMuX2Jsb2NrT2Zmc2V0PTA7Zm9yKHZhciByPTA7cjw0Oysrcil0aGlzLl9sZW5ndGhbcl09MDtyZXR1cm4gdH07SGFzaEJhc2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZFwiKX07ZS5leHBvcnRzPUhhc2hCYXNlfSw3MDI4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10O2kudXRpbHM9cigyNjMpO2kuY29tbW9uPXIoMTMzMCk7aS5zaGE9cigzMDEpO2kucmlwZW1kPXIoMzA3OSk7aS5obWFjPXIoMzA5Mik7aS5zaGExPWkuc2hhLnNoYTE7aS5zaGEyNTY9aS5zaGEuc2hhMjU2O2kuc2hhMjI0PWkuc2hhLnNoYTIyNDtpLnNoYTM4ND1pLnNoYS5zaGEzODQ7aS5zaGE1MTI9aS5zaGEuc2hhNTEyO2kucmlwZW1kMTYwPWkucmlwZW1kLnJpcGVtZDE2MH0sMTMzMDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigyNjMpO3ZhciBuPXIoMzUyMyk7ZnVuY3Rpb24gQmxvY2tIYXNoKCl7dGhpcy5wZW5kaW5nPW51bGw7dGhpcy5wZW5kaW5nVG90YWw9MDt0aGlzLmJsb2NrU2l6ZT10aGlzLmNvbnN0cnVjdG9yLmJsb2NrU2l6ZTt0aGlzLm91dFNpemU9dGhpcy5jb25zdHJ1Y3Rvci5vdXRTaXplO3RoaXMuaG1hY1N0cmVuZ3RoPXRoaXMuY29uc3RydWN0b3IuaG1hY1N0cmVuZ3RoO3RoaXMucGFkTGVuZ3RoPXRoaXMuY29uc3RydWN0b3IucGFkTGVuZ3RoLzg7dGhpcy5lbmRpYW49XCJiaWdcIjt0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvODt0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfXQuQmxvY2tIYXNoPUJsb2NrSGFzaDtCbG9ja0hhc2gucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbiB1cGRhdGUoZSx0KXtlPWkudG9BcnJheShlLHQpO2lmKCF0aGlzLnBlbmRpbmcpdGhpcy5wZW5kaW5nPWU7ZWxzZSB0aGlzLnBlbmRpbmc9dGhpcy5wZW5kaW5nLmNvbmNhdChlKTt0aGlzLnBlbmRpbmdUb3RhbCs9ZS5sZW5ndGg7aWYodGhpcy5wZW5kaW5nLmxlbmd0aD49dGhpcy5fZGVsdGE4KXtlPXRoaXMucGVuZGluZzt2YXIgcj1lLmxlbmd0aCV0aGlzLl9kZWx0YTg7dGhpcy5wZW5kaW5nPWUuc2xpY2UoZS5sZW5ndGgtcixlLmxlbmd0aCk7aWYodGhpcy5wZW5kaW5nLmxlbmd0aD09PTApdGhpcy5wZW5kaW5nPW51bGw7ZT1pLmpvaW4zMihlLDAsZS5sZW5ndGgtcix0aGlzLmVuZGlhbik7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0ZShlLG4sbit0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc307QmxvY2tIYXNoLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24gZGlnZXN0KGUpe3RoaXMudXBkYXRlKHRoaXMuX3BhZCgpKTtuKHRoaXMucGVuZGluZz09PW51bGwpO3JldHVybiB0aGlzLl9kaWdlc3QoZSl9O0Jsb2NrSGFzaC5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbiBwYWQoKXt2YXIgZT10aGlzLnBlbmRpbmdUb3RhbDt2YXIgdD10aGlzLl9kZWx0YTg7dmFyIHI9dC0oZSt0aGlzLnBhZExlbmd0aCkldDt2YXIgaT1uZXcgQXJyYXkocit0aGlzLnBhZExlbmd0aCk7aVswXT0xMjg7Zm9yKHZhciBuPTE7bjxyO24rKylpW25dPTA7ZTw8PTM7aWYodGhpcy5lbmRpYW49PT1cImJpZ1wiKXtmb3IodmFyIGE9ODthPHRoaXMucGFkTGVuZ3RoO2ErKylpW24rK109MDtpW24rK109MDtpW24rK109MDtpW24rK109MDtpW24rK109MDtpW24rK109ZT4+PjI0JjI1NTtpW24rK109ZT4+PjE2JjI1NTtpW24rK109ZT4+PjgmMjU1O2lbbisrXT1lJjI1NX1lbHNle2lbbisrXT1lJjI1NTtpW24rK109ZT4+PjgmMjU1O2lbbisrXT1lPj4+MTYmMjU1O2lbbisrXT1lPj4+MjQmMjU1O2lbbisrXT0wO2lbbisrXT0wO2lbbisrXT0wO2lbbisrXT0wO2ZvcihhPTg7YTx0aGlzLnBhZExlbmd0aDthKyspaVtuKytdPTB9cmV0dXJuIGl9fSwzMDkyOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDI2Myk7dmFyIG49cigzNTIzKTtmdW5jdGlvbiBIbWFjKGUsdCxyKXtpZighKHRoaXMgaW5zdGFuY2VvZiBIbWFjKSlyZXR1cm4gbmV3IEhtYWMoZSx0LHIpO3RoaXMuSGFzaD1lO3RoaXMuYmxvY2tTaXplPWUuYmxvY2tTaXplLzg7dGhpcy5vdXRTaXplPWUub3V0U2l6ZS84O3RoaXMuaW5uZXI9bnVsbDt0aGlzLm91dGVyPW51bGw7dGhpcy5faW5pdChpLnRvQXJyYXkodCxyKSl9ZS5leHBvcnRzPUhtYWM7SG1hYy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24gaW5pdChlKXtpZihlLmxlbmd0aD50aGlzLmJsb2NrU2l6ZSllPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoZSkuZGlnZXN0KCk7bihlLmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgdD1lLmxlbmd0aDt0PHRoaXMuYmxvY2tTaXplO3QrKyllLnB1c2goMCk7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdXj01NDt0aGlzLmlubmVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoZSk7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKGUpfTtIbWFjLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24gdXBkYXRlKGUsdCl7dGhpcy5pbm5lci51cGRhdGUoZSx0KTtyZXR1cm4gdGhpc307SG1hYy5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uIGRpZ2VzdChlKXt0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmlubmVyLmRpZ2VzdCgpKTtyZXR1cm4gdGhpcy5vdXRlci5kaWdlc3QoZSl9fSwzMDc5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDI2Myk7dmFyIG49cigxMzMwKTt2YXIgYT1pLnJvdGwzMjt2YXIgcz1pLnN1bTMyO3ZhciBvPWkuc3VtMzJfMzt2YXIgaD1pLnN1bTMyXzQ7dmFyIHU9bi5CbG9ja0hhc2g7ZnVuY3Rpb24gUklQRU1EMTYwKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUklQRU1EMTYwKSlyZXR1cm4gbmV3IFJJUEVNRDE2MDt1LmNhbGwodGhpcyk7dGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF07dGhpcy5lbmRpYW49XCJsaXR0bGVcIn1pLmluaGVyaXRzKFJJUEVNRDE2MCx1KTt0LnJpcGVtZDE2MD1SSVBFTUQxNjA7UklQRU1EMTYwLmJsb2NrU2l6ZT01MTI7UklQRU1EMTYwLm91dFNpemU9MTYwO1JJUEVNRDE2MC5obWFjU3RyZW5ndGg9MTkyO1JJUEVNRDE2MC5wYWRMZW5ndGg9NjQ7UklQRU1EMTYwLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uIHVwZGF0ZShlLHQpe3ZhciByPXRoaXMuaFswXTt2YXIgaT10aGlzLmhbMV07dmFyIG49dGhpcy5oWzJdO3ZhciB1PXRoaXMuaFszXTt2YXIgdj10aGlzLmhbNF07dmFyIGI9cjt2YXIgbT1pO3ZhciB5PW47dmFyIGc9dTt2YXIgXz12O2Zvcih2YXIgdz0wO3c8ODA7dysrKXt2YXIgTT1zKGEoaChyLGYodyxpLG4sdSksZVtkW3ddK3RdLEsodykpLGxbd10pLHYpO3I9djt2PXU7dT1hKG4sMTApO249aTtpPU07TT1zKGEoaChiLGYoNzktdyxtLHksZyksZVtjW3ddK3RdLEtoKHcpKSxwW3ddKSxfKTtiPV87Xz1nO2c9YSh5LDEwKTt5PW07bT1NfU09byh0aGlzLmhbMV0sbixnKTt0aGlzLmhbMV09byh0aGlzLmhbMl0sdSxfKTt0aGlzLmhbMl09byh0aGlzLmhbM10sdixiKTt0aGlzLmhbM109byh0aGlzLmhbNF0scixtKTt0aGlzLmhbNF09byh0aGlzLmhbMF0saSx5KTt0aGlzLmhbMF09TX07UklQRU1EMTYwLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uIGRpZ2VzdChlKXtpZihlPT09XCJoZXhcIilyZXR1cm4gaS50b0hleDMyKHRoaXMuaCxcImxpdHRsZVwiKTtlbHNlIHJldHVybiBpLnNwbGl0MzIodGhpcy5oLFwibGl0dGxlXCIpfTtmdW5jdGlvbiBmKGUsdCxyLGkpe2lmKGU8PTE1KXJldHVybiB0XnJeaTtlbHNlIGlmKGU8PTMxKXJldHVybiB0JnJ8fnQmaTtlbHNlIGlmKGU8PTQ3KXJldHVybih0fH5yKV5pO2Vsc2UgaWYoZTw9NjMpcmV0dXJuIHQmaXxyJn5pO2Vsc2UgcmV0dXJuIHReKHJ8fmkpfWZ1bmN0aW9uIEsoZSl7aWYoZTw9MTUpcmV0dXJuIDA7ZWxzZSBpZihlPD0zMSlyZXR1cm4gMTUxODUwMDI0OTtlbHNlIGlmKGU8PTQ3KXJldHVybiAxODU5Nzc1MzkzO2Vsc2UgaWYoZTw9NjMpcmV0dXJuIDI0MDA5NTk3MDg7ZWxzZSByZXR1cm4gMjg0MDg1MzgzOH1mdW5jdGlvbiBLaChlKXtpZihlPD0xNSlyZXR1cm4gMTM1MjgyOTkyNjtlbHNlIGlmKGU8PTMxKXJldHVybiAxNTQ4NjAzNjg0O2Vsc2UgaWYoZTw9NDcpcmV0dXJuIDE4MzYwNzI2OTE7ZWxzZSBpZihlPD02MylyZXR1cm4gMjA1Mzk5NDIxNztlbHNlIHJldHVybiAwfXZhciBkPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdO3ZhciBjPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdO3ZhciBsPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XTt2YXIgcD1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV19LDMwMTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dC5zaGExPXIoMjc0Mik7dC5zaGEyMjQ9cig3MTA1KTt0LnNoYTI1Nj1yKDE1MjUpO3Quc2hhMzg0PXIoOTk0OCk7dC5zaGE1MTI9cigxMzE5KX0sMjc0MjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigyNjMpO3ZhciBuPXIoMTMzMCk7dmFyIGE9cigyOTc1KTt2YXIgcz1pLnJvdGwzMjt2YXIgbz1pLnN1bTMyO3ZhciBoPWkuc3VtMzJfNTt2YXIgdT1hLmZ0XzE7dmFyIGQ9bi5CbG9ja0hhc2g7dmFyIGM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDMzOTU0Njk3ODJdO2Z1bmN0aW9uIFNIQTEoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBTSEExKSlyZXR1cm4gbmV3IFNIQTE7ZC5jYWxsKHRoaXMpO3RoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdO3RoaXMuVz1uZXcgQXJyYXkoODApfWkuaW5oZXJpdHMoU0hBMSxkKTtlLmV4cG9ydHM9U0hBMTtTSEExLmJsb2NrU2l6ZT01MTI7U0hBMS5vdXRTaXplPTE2MDtTSEExLmhtYWNTdHJlbmd0aD04MDtTSEExLnBhZExlbmd0aD02NDtTSEExLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uIF91cGRhdGUoZSx0KXt2YXIgcj10aGlzLlc7Zm9yKHZhciBpPTA7aTwxNjtpKyspcltpXT1lW3QraV07Zm9yKDtpPHIubGVuZ3RoO2krKylyW2ldPXMocltpLTNdXnJbaS04XV5yW2ktMTRdXnJbaS0xNl0sMSk7dmFyIG49dGhpcy5oWzBdO3ZhciBhPXRoaXMuaFsxXTt2YXIgZD10aGlzLmhbMl07dmFyIGw9dGhpcy5oWzNdO3ZhciBwPXRoaXMuaFs0XTtmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgdj1+fihpLzIwKTt2YXIgYj1oKHMobiw1KSx1KHYsYSxkLGwpLHAscltpXSxjW3ZdKTtwPWw7bD1kO2Q9cyhhLDMwKTthPW47bj1ifXRoaXMuaFswXT1vKHRoaXMuaFswXSxuKTt0aGlzLmhbMV09byh0aGlzLmhbMV0sYSk7dGhpcy5oWzJdPW8odGhpcy5oWzJdLGQpO3RoaXMuaFszXT1vKHRoaXMuaFszXSxsKTt0aGlzLmhbNF09byh0aGlzLmhbNF0scCl9O1NIQTEucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24gZGlnZXN0KGUpe2lmKGU9PT1cImhleFwiKXJldHVybiBpLnRvSGV4MzIodGhpcy5oLFwiYmlnXCIpO2Vsc2UgcmV0dXJuIGkuc3BsaXQzMih0aGlzLmgsXCJiaWdcIil9fSw3MTA1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDI2Myk7dmFyIG49cigxNTI1KTtmdW5jdGlvbiBTSEEyMjQoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBTSEEyMjQpKXJldHVybiBuZXcgU0hBMjI0O24uY2FsbCh0aGlzKTt0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMoU0hBMjI0LG4pO2UuZXhwb3J0cz1TSEEyMjQ7U0hBMjI0LmJsb2NrU2l6ZT01MTI7U0hBMjI0Lm91dFNpemU9MjI0O1NIQTIyNC5obWFjU3RyZW5ndGg9MTkyO1NIQTIyNC5wYWRMZW5ndGg9NjQ7U0hBMjI0LnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uIGRpZ2VzdChlKXtpZihlPT09XCJoZXhcIilyZXR1cm4gaS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLFwiYmlnXCIpO2Vsc2UgcmV0dXJuIGkuc3BsaXQzMih0aGlzLmguc2xpY2UoMCw3KSxcImJpZ1wiKX19LDE1MjU6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoMjYzKTt2YXIgbj1yKDEzMzApO3ZhciBhPXIoMjk3NSk7dmFyIHM9cigzNTIzKTt2YXIgbz1pLnN1bTMyO3ZhciBoPWkuc3VtMzJfNDt2YXIgdT1pLnN1bTMyXzU7dmFyIGQ9YS5jaDMyO3ZhciBjPWEubWFqMzI7dmFyIGw9YS5zMF8yNTY7dmFyIHA9YS5zMV8yNTY7dmFyIHY9YS5nMF8yNTY7dmFyIGI9YS5nMV8yNTY7dmFyIG09bi5CbG9ja0hhc2g7dmFyIHk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gU0hBMjU2KCl7aWYoISh0aGlzIGluc3RhbmNlb2YgU0hBMjU2KSlyZXR1cm4gbmV3IFNIQTI1NjttLmNhbGwodGhpcyk7dGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07dGhpcy5rPXk7dGhpcy5XPW5ldyBBcnJheSg2NCl9aS5pbmhlcml0cyhTSEEyNTYsbSk7ZS5leHBvcnRzPVNIQTI1NjtTSEEyNTYuYmxvY2tTaXplPTUxMjtTSEEyNTYub3V0U2l6ZT0yNTY7U0hBMjU2LmhtYWNTdHJlbmd0aD0xOTI7U0hBMjU2LnBhZExlbmd0aD02NDtTSEEyNTYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24gX3VwZGF0ZShlLHQpe3ZhciByPXRoaXMuVztmb3IodmFyIGk9MDtpPDE2O2krKylyW2ldPWVbdCtpXTtmb3IoO2k8ci5sZW5ndGg7aSsrKXJbaV09aChiKHJbaS0yXSkscltpLTddLHYocltpLTE1XSkscltpLTE2XSk7dmFyIG49dGhpcy5oWzBdO3ZhciBhPXRoaXMuaFsxXTt2YXIgbT10aGlzLmhbMl07dmFyIHk9dGhpcy5oWzNdO3ZhciBnPXRoaXMuaFs0XTt2YXIgXz10aGlzLmhbNV07dmFyIHc9dGhpcy5oWzZdO3ZhciBNPXRoaXMuaFs3XTtzKHRoaXMuay5sZW5ndGg9PT1yLmxlbmd0aCk7Zm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIEI9dShNLHAoZyksZChnLF8sdyksdGhpcy5rW2ldLHJbaV0pO3ZhciBFPW8obChuKSxjKG4sYSxtKSk7TT13O3c9XztfPWc7Zz1vKHksQik7eT1tO209YTthPW47bj1vKEIsRSl9dGhpcy5oWzBdPW8odGhpcy5oWzBdLG4pO3RoaXMuaFsxXT1vKHRoaXMuaFsxXSxhKTt0aGlzLmhbMl09byh0aGlzLmhbMl0sbSk7dGhpcy5oWzNdPW8odGhpcy5oWzNdLHkpO3RoaXMuaFs0XT1vKHRoaXMuaFs0XSxnKTt0aGlzLmhbNV09byh0aGlzLmhbNV0sXyk7dGhpcy5oWzZdPW8odGhpcy5oWzZdLHcpO3RoaXMuaFs3XT1vKHRoaXMuaFs3XSxNKX07U0hBMjU2LnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uIGRpZ2VzdChlKXtpZihlPT09XCJoZXhcIilyZXR1cm4gaS50b0hleDMyKHRoaXMuaCxcImJpZ1wiKTtlbHNlIHJldHVybiBpLnNwbGl0MzIodGhpcy5oLFwiYmlnXCIpfX0sOTk0ODpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigyNjMpO3ZhciBuPXIoMTMxOSk7ZnVuY3Rpb24gU0hBMzg0KCl7aWYoISh0aGlzIGluc3RhbmNlb2YgU0hBMzg0KSlyZXR1cm4gbmV3IFNIQTM4NDtuLmNhbGwodGhpcyk7dGhpcy5oPVszNDE4MDcwMzY1LDMyMzgzNzEwMzIsMTY1NDI3MDI1MCw5MTQxNTA2NjMsMjQzODUyOTM3MCw4MTI3MDI5OTksMzU1NDYyMzYwLDQxNDQ5MTI2OTcsMTczMTQwNTQxNSw0MjkwNzc1ODU3LDIzOTQxODAyMzEsMTc1MDYwMzAyNSwzNjc1MDA4NTI1LDE2OTQwNzY4MzksMTIwMzA2MjgxMywzMjA0MDc1NDI4XX1pLmluaGVyaXRzKFNIQTM4NCxuKTtlLmV4cG9ydHM9U0hBMzg0O1NIQTM4NC5ibG9ja1NpemU9MTAyNDtTSEEzODQub3V0U2l6ZT0zODQ7U0hBMzg0LmhtYWNTdHJlbmd0aD0xOTI7U0hBMzg0LnBhZExlbmd0aD0xMjg7U0hBMzg0LnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uIGRpZ2VzdChlKXtpZihlPT09XCJoZXhcIilyZXR1cm4gaS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDEyKSxcImJpZ1wiKTtlbHNlIHJldHVybiBpLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLFwiYmlnXCIpfX0sMTMxOTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigyNjMpO3ZhciBuPXIoMTMzMCk7dmFyIGE9cigzNTIzKTt2YXIgcz1pLnJvdHI2NF9oaTt2YXIgbz1pLnJvdHI2NF9sbzt2YXIgaD1pLnNocjY0X2hpO3ZhciB1PWkuc2hyNjRfbG87dmFyIGQ9aS5zdW02NDt2YXIgYz1pLnN1bTY0X2hpO3ZhciBsPWkuc3VtNjRfbG87dmFyIHA9aS5zdW02NF80X2hpO3ZhciB2PWkuc3VtNjRfNF9sbzt2YXIgYj1pLnN1bTY0XzVfaGk7dmFyIG09aS5zdW02NF81X2xvO3ZhciB5PW4uQmxvY2tIYXNoO3ZhciBnPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gU0hBNTEyKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgU0hBNTEyKSlyZXR1cm4gbmV3IFNIQTUxMjt5LmNhbGwodGhpcyk7dGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XTt0aGlzLms9Zzt0aGlzLlc9bmV3IEFycmF5KDE2MCl9aS5pbmhlcml0cyhTSEE1MTIseSk7ZS5leHBvcnRzPVNIQTUxMjtTSEE1MTIuYmxvY2tTaXplPTEwMjQ7U0hBNTEyLm91dFNpemU9NTEyO1NIQTUxMi5obWFjU3RyZW5ndGg9MTkyO1NIQTUxMi5wYWRMZW5ndGg9MTI4O1NIQTUxMi5wcm90b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbiBfcHJlcGFyZUJsb2NrKGUsdCl7dmFyIHI9dGhpcy5XO2Zvcih2YXIgaT0wO2k8MzI7aSsrKXJbaV09ZVt0K2ldO2Zvcig7aTxyLmxlbmd0aDtpKz0yKXt2YXIgbj1nMV81MTJfaGkocltpLTRdLHJbaS0zXSk7dmFyIGE9ZzFfNTEyX2xvKHJbaS00XSxyW2ktM10pO3ZhciBzPXJbaS0xNF07dmFyIG89cltpLTEzXTt2YXIgaD1nMF81MTJfaGkocltpLTMwXSxyW2ktMjldKTt2YXIgdT1nMF81MTJfbG8ocltpLTMwXSxyW2ktMjldKTt2YXIgZD1yW2ktMzJdO3ZhciBjPXJbaS0zMV07cltpXT1wKG4sYSxzLG8saCx1LGQsYyk7cltpKzFdPXYobixhLHMsbyxoLHUsZCxjKX19O1NIQTUxMi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbiBfdXBkYXRlKGUsdCl7dGhpcy5fcHJlcGFyZUJsb2NrKGUsdCk7dmFyIHI9dGhpcy5XO3ZhciBpPXRoaXMuaFswXTt2YXIgbj10aGlzLmhbMV07dmFyIHM9dGhpcy5oWzJdO3ZhciBvPXRoaXMuaFszXTt2YXIgaD10aGlzLmhbNF07dmFyIHU9dGhpcy5oWzVdO3ZhciBwPXRoaXMuaFs2XTt2YXIgdj10aGlzLmhbN107dmFyIHk9dGhpcy5oWzhdO3ZhciBnPXRoaXMuaFs5XTt2YXIgXz10aGlzLmhbMTBdO3ZhciB3PXRoaXMuaFsxMV07dmFyIE09dGhpcy5oWzEyXTt2YXIgQj10aGlzLmhbMTNdO3ZhciBFPXRoaXMuaFsxNF07dmFyIGs9dGhpcy5oWzE1XTthKHRoaXMuay5sZW5ndGg9PT1yLmxlbmd0aCk7Zm9yKHZhciBBPTA7QTxyLmxlbmd0aDtBKz0yKXt2YXIgTj1FO3ZhciBQPWs7dmFyIHg9czFfNTEyX2hpKHksZyk7dmFyIEk9czFfNTEyX2xvKHksZyk7dmFyIEM9Y2g2NF9oaSh5LGcsXyx3LE0sQik7dmFyIEQ9Y2g2NF9sbyh5LGcsXyx3LE0sQik7dmFyIFQ9dGhpcy5rW0FdO3ZhciBqPXRoaXMua1tBKzFdO3ZhciBxPXJbQV07dmFyIE89cltBKzFdO3ZhciBIPWIoTixQLHgsSSxDLEQsVCxqLHEsTyk7dmFyIEw9bShOLFAseCxJLEMsRCxULGoscSxPKTtOPXMwXzUxMl9oaShpLG4pO1A9czBfNTEyX2xvKGksbik7eD1tYWo2NF9oaShpLG4scyxvLGgsdSk7ST1tYWo2NF9sbyhpLG4scyxvLGgsdSk7dmFyIHo9YyhOLFAseCxJKTt2YXIgRj1sKE4sUCx4LEkpO0U9TTtrPUI7TT1fO0I9dztfPXk7dz1nO3k9YyhwLHYsSCxMKTtnPWwodix2LEgsTCk7cD1oO3Y9dTtoPXM7dT1vO3M9aTtvPW47aT1jKEgsTCx6LEYpO249bChILEwseixGKX1kKHRoaXMuaCwwLGksbik7ZCh0aGlzLmgsMixzLG8pO2QodGhpcy5oLDQsaCx1KTtkKHRoaXMuaCw2LHAsdik7ZCh0aGlzLmgsOCx5LGcpO2QodGhpcy5oLDEwLF8sdyk7ZCh0aGlzLmgsMTIsTSxCKTtkKHRoaXMuaCwxNCxFLGspfTtTSEE1MTIucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24gZGlnZXN0KGUpe2lmKGU9PT1cImhleFwiKXJldHVybiBpLnRvSGV4MzIodGhpcy5oLFwiYmlnXCIpO2Vsc2UgcmV0dXJuIGkuc3BsaXQzMih0aGlzLmgsXCJiaWdcIil9O2Z1bmN0aW9uIGNoNjRfaGkoZSx0LHIsaSxuKXt2YXIgYT1lJnJefmUmbjtpZihhPDApYSs9NDI5NDk2NzI5NjtyZXR1cm4gYX1mdW5jdGlvbiBjaDY0X2xvKGUsdCxyLGksbixhKXt2YXIgcz10JmlefnQmYTtpZihzPDApcys9NDI5NDk2NzI5NjtyZXR1cm4gc31mdW5jdGlvbiBtYWo2NF9oaShlLHQscixpLG4pe3ZhciBhPWUmcl5lJm5eciZuO2lmKGE8MClhKz00Mjk0OTY3Mjk2O3JldHVybiBhfWZ1bmN0aW9uIG1hajY0X2xvKGUsdCxyLGksbixhKXt2YXIgcz10JmledCZhXmkmYTtpZihzPDApcys9NDI5NDk2NzI5NjtyZXR1cm4gc31mdW5jdGlvbiBzMF81MTJfaGkoZSx0KXt2YXIgcj1zKGUsdCwyOCk7dmFyIGk9cyh0LGUsMik7dmFyIG49cyh0LGUsNyk7dmFyIGE9cl5pXm47aWYoYTwwKWErPTQyOTQ5NjcyOTY7cmV0dXJuIGF9ZnVuY3Rpb24gczBfNTEyX2xvKGUsdCl7dmFyIHI9byhlLHQsMjgpO3ZhciBpPW8odCxlLDIpO3ZhciBuPW8odCxlLDcpO3ZhciBhPXJeaV5uO2lmKGE8MClhKz00Mjk0OTY3Mjk2O3JldHVybiBhfWZ1bmN0aW9uIHMxXzUxMl9oaShlLHQpe3ZhciByPXMoZSx0LDE0KTt2YXIgaT1zKGUsdCwxOCk7dmFyIG49cyh0LGUsOSk7dmFyIGE9cl5pXm47aWYoYTwwKWErPTQyOTQ5NjcyOTY7cmV0dXJuIGF9ZnVuY3Rpb24gczFfNTEyX2xvKGUsdCl7dmFyIHI9byhlLHQsMTQpO3ZhciBpPW8oZSx0LDE4KTt2YXIgbj1vKHQsZSw5KTt2YXIgYT1yXmlebjtpZihhPDApYSs9NDI5NDk2NzI5NjtyZXR1cm4gYX1mdW5jdGlvbiBnMF81MTJfaGkoZSx0KXt2YXIgcj1zKGUsdCwxKTt2YXIgaT1zKGUsdCw4KTt2YXIgbj1oKGUsdCw3KTt2YXIgYT1yXmlebjtpZihhPDApYSs9NDI5NDk2NzI5NjtyZXR1cm4gYX1mdW5jdGlvbiBnMF81MTJfbG8oZSx0KXt2YXIgcj1vKGUsdCwxKTt2YXIgaT1vKGUsdCw4KTt2YXIgbj11KGUsdCw3KTt2YXIgYT1yXmlebjtpZihhPDApYSs9NDI5NDk2NzI5NjtyZXR1cm4gYX1mdW5jdGlvbiBnMV81MTJfaGkoZSx0KXt2YXIgcj1zKGUsdCwxOSk7dmFyIGk9cyh0LGUsMjkpO3ZhciBuPWgoZSx0LDYpO3ZhciBhPXJeaV5uO2lmKGE8MClhKz00Mjk0OTY3Mjk2O3JldHVybiBhfWZ1bmN0aW9uIGcxXzUxMl9sbyhlLHQpe3ZhciByPW8oZSx0LDE5KTt2YXIgaT1vKHQsZSwyOSk7dmFyIG49dShlLHQsNik7dmFyIGE9cl5pXm47aWYoYTwwKWErPTQyOTQ5NjcyOTY7cmV0dXJuIGF9fSwyOTc1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDI2Myk7dmFyIG49aS5yb3RyMzI7ZnVuY3Rpb24gZnRfMShlLHQscixpKXtpZihlPT09MClyZXR1cm4gY2gzMih0LHIsaSk7aWYoZT09PTF8fGU9PT0zKXJldHVybiBwMzIodCxyLGkpO2lmKGU9PT0yKXJldHVybiBtYWozMih0LHIsaSl9dC5mdF8xPWZ0XzE7ZnVuY3Rpb24gY2gzMihlLHQscil7cmV0dXJuIGUmdF5+ZSZyfXQuY2gzMj1jaDMyO2Z1bmN0aW9uIG1hajMyKGUsdCxyKXtyZXR1cm4gZSZ0XmUmcl50JnJ9dC5tYWozMj1tYWozMjtmdW5jdGlvbiBwMzIoZSx0LHIpe3JldHVybiBlXnRecn10LnAzMj1wMzI7ZnVuY3Rpb24gczBfMjU2KGUpe3JldHVybiBuKGUsMilebihlLDEzKV5uKGUsMjIpfXQuczBfMjU2PXMwXzI1NjtmdW5jdGlvbiBzMV8yNTYoZSl7cmV0dXJuIG4oZSw2KV5uKGUsMTEpXm4oZSwyNSl9dC5zMV8yNTY9czFfMjU2O2Z1bmN0aW9uIGcwXzI1NihlKXtyZXR1cm4gbihlLDcpXm4oZSwxOCleZT4+PjN9dC5nMF8yNTY9ZzBfMjU2O2Z1bmN0aW9uIGcxXzI1NihlKXtyZXR1cm4gbihlLDE3KV5uKGUsMTkpXmU+Pj4xMH10LmcxXzI1Nj1nMV8yNTZ9LDI2MzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigzNTIzKTt2YXIgbj1yKDM3ODIpO3QuaW5oZXJpdHM9bjtmdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoZSx0KXtpZigoZS5jaGFyQ29kZUF0KHQpJjY0NTEyKSE9PTU1Mjk2KXtyZXR1cm4gZmFsc2V9aWYodDwwfHx0KzE+PWUubGVuZ3RoKXtyZXR1cm4gZmFsc2V9cmV0dXJuKGUuY2hhckNvZGVBdCh0KzEpJjY0NTEyKT09PTU2MzIwfWZ1bmN0aW9uIHRvQXJyYXkoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLnNsaWNlKCk7aWYoIWUpcmV0dXJuW107dmFyIHI9W107aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtpZighdCl7dmFyIGk9MDtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZS5jaGFyQ29kZUF0KG4pO2lmKGE8MTI4KXtyW2krK109YX1lbHNlIGlmKGE8MjA0OCl7cltpKytdPWE+PjZ8MTkyO3JbaSsrXT1hJjYzfDEyOH1lbHNlIGlmKGlzU3Vycm9nYXRlUGFpcihlLG4pKXthPTY1NTM2KygoYSYxMDIzKTw8MTApKyhlLmNoYXJDb2RlQXQoKytuKSYxMDIzKTtyW2krK109YT4+MTh8MjQwO3JbaSsrXT1hPj4xMiY2M3wxMjg7cltpKytdPWE+PjYmNjN8MTI4O3JbaSsrXT1hJjYzfDEyOH1lbHNle3JbaSsrXT1hPj4xMnwyMjQ7cltpKytdPWE+PjYmNjN8MTI4O3JbaSsrXT1hJjYzfDEyOH19fWVsc2UgaWYodD09PVwiaGV4XCIpe2U9ZS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLFwiXCIpO2lmKGUubGVuZ3RoJTIhPT0wKWU9XCIwXCIrZTtmb3Iobj0wO248ZS5sZW5ndGg7bis9MilyLnB1c2gocGFyc2VJbnQoZVtuXStlW24rMV0sMTYpKX19ZWxzZXtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXJbbl09ZVtuXXwwfXJldHVybiByfXQudG9BcnJheT10b0FycmF5O2Z1bmN0aW9uIHRvSGV4KGUpe3ZhciB0PVwiXCI7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdCs9emVybzIoZVtyXS50b1N0cmluZygxNikpO3JldHVybiB0fXQudG9IZXg9dG9IZXg7ZnVuY3Rpb24gaHRvbmwoZSl7dmFyIHQ9ZT4+PjI0fGU+Pj44JjY1MjgwfGU8PDgmMTY3MTE2ODB8KGUmMjU1KTw8MjQ7cmV0dXJuIHQ+Pj4wfXQuaHRvbmw9aHRvbmw7ZnVuY3Rpb24gdG9IZXgzMihlLHQpe3ZhciByPVwiXCI7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBuPWVbaV07aWYodD09PVwibGl0dGxlXCIpbj1odG9ubChuKTtyKz16ZXJvOChuLnRvU3RyaW5nKDE2KSl9cmV0dXJuIHJ9dC50b0hleDMyPXRvSGV4MzI7ZnVuY3Rpb24gemVybzIoZSl7aWYoZS5sZW5ndGg9PT0xKXJldHVyblwiMFwiK2U7ZWxzZSByZXR1cm4gZX10Lnplcm8yPXplcm8yO2Z1bmN0aW9uIHplcm84KGUpe2lmKGUubGVuZ3RoPT09NylyZXR1cm5cIjBcIitlO2Vsc2UgaWYoZS5sZW5ndGg9PT02KXJldHVyblwiMDBcIitlO2Vsc2UgaWYoZS5sZW5ndGg9PT01KXJldHVyblwiMDAwXCIrZTtlbHNlIGlmKGUubGVuZ3RoPT09NClyZXR1cm5cIjAwMDBcIitlO2Vsc2UgaWYoZS5sZW5ndGg9PT0zKXJldHVyblwiMDAwMDBcIitlO2Vsc2UgaWYoZS5sZW5ndGg9PT0yKXJldHVyblwiMDAwMDAwXCIrZTtlbHNlIGlmKGUubGVuZ3RoPT09MSlyZXR1cm5cIjAwMDAwMDBcIitlO2Vsc2UgcmV0dXJuIGV9dC56ZXJvOD16ZXJvODtmdW5jdGlvbiBqb2luMzIoZSx0LHIsbil7dmFyIGE9ci10O2koYSU0PT09MCk7dmFyIHM9bmV3IEFycmF5KGEvNCk7Zm9yKHZhciBvPTAsaD10O288cy5sZW5ndGg7bysrLGgrPTQpe3ZhciB1O2lmKG49PT1cImJpZ1wiKXU9ZVtoXTw8MjR8ZVtoKzFdPDwxNnxlW2grMl08PDh8ZVtoKzNdO2Vsc2UgdT1lW2grM108PDI0fGVbaCsyXTw8MTZ8ZVtoKzFdPDw4fGVbaF07c1tvXT11Pj4+MH1yZXR1cm4gc310LmpvaW4zMj1qb2luMzI7ZnVuY3Rpb24gc3BsaXQzMihlLHQpe3ZhciByPW5ldyBBcnJheShlLmxlbmd0aCo0KTtmb3IodmFyIGk9MCxuPTA7aTxlLmxlbmd0aDtpKyssbis9NCl7dmFyIGE9ZVtpXTtpZih0PT09XCJiaWdcIil7cltuXT1hPj4+MjQ7cltuKzFdPWE+Pj4xNiYyNTU7cltuKzJdPWE+Pj44JjI1NTtyW24rM109YSYyNTV9ZWxzZXtyW24rM109YT4+PjI0O3JbbisyXT1hPj4+MTYmMjU1O3JbbisxXT1hPj4+OCYyNTU7cltuXT1hJjI1NX19cmV0dXJuIHJ9dC5zcGxpdDMyPXNwbGl0MzI7ZnVuY3Rpb24gcm90cjMyKGUsdCl7cmV0dXJuIGU+Pj50fGU8PDMyLXR9dC5yb3RyMzI9cm90cjMyO2Z1bmN0aW9uIHJvdGwzMihlLHQpe3JldHVybiBlPDx0fGU+Pj4zMi10fXQucm90bDMyPXJvdGwzMjtmdW5jdGlvbiBzdW0zMihlLHQpe3JldHVybiBlK3Q+Pj4wfXQuc3VtMzI9c3VtMzI7ZnVuY3Rpb24gc3VtMzJfMyhlLHQscil7cmV0dXJuIGUrdCtyPj4+MH10LnN1bTMyXzM9c3VtMzJfMztmdW5jdGlvbiBzdW0zMl80KGUsdCxyLGkpe3JldHVybiBlK3QrcitpPj4+MH10LnN1bTMyXzQ9c3VtMzJfNDtmdW5jdGlvbiBzdW0zMl81KGUsdCxyLGksbil7cmV0dXJuIGUrdCtyK2krbj4+PjB9dC5zdW0zMl81PXN1bTMyXzU7ZnVuY3Rpb24gc3VtNjQoZSx0LHIsaSl7dmFyIG49ZVt0XTt2YXIgYT1lW3QrMV07dmFyIHM9aSthPj4+MDt2YXIgbz0oczxpPzE6MCkrcituO2VbdF09bz4+PjA7ZVt0KzFdPXN9dC5zdW02ND1zdW02NDtmdW5jdGlvbiBzdW02NF9oaShlLHQscixpKXt2YXIgbj10K2k+Pj4wO3ZhciBhPShuPHQ/MTowKStlK3I7cmV0dXJuIGE+Pj4wfXQuc3VtNjRfaGk9c3VtNjRfaGk7ZnVuY3Rpb24gc3VtNjRfbG8oZSx0LHIsaSl7dmFyIG49dCtpO3JldHVybiBuPj4+MH10LnN1bTY0X2xvPXN1bTY0X2xvO2Z1bmN0aW9uIHN1bTY0XzRfaGkoZSx0LHIsaSxuLGEscyxvKXt2YXIgaD0wO3ZhciB1PXQ7dT11K2k+Pj4wO2grPXU8dD8xOjA7dT11K2E+Pj4wO2grPXU8YT8xOjA7dT11K28+Pj4wO2grPXU8bz8xOjA7dmFyIGQ9ZStyK24rcytoO3JldHVybiBkPj4+MH10LnN1bTY0XzRfaGk9c3VtNjRfNF9oaTtmdW5jdGlvbiBzdW02NF80X2xvKGUsdCxyLGksbixhLHMsbyl7dmFyIGg9dCtpK2ErbztyZXR1cm4gaD4+PjB9dC5zdW02NF80X2xvPXN1bTY0XzRfbG87ZnVuY3Rpb24gc3VtNjRfNV9oaShlLHQscixpLG4sYSxzLG8saCx1KXt2YXIgZD0wO3ZhciBjPXQ7Yz1jK2k+Pj4wO2QrPWM8dD8xOjA7Yz1jK2E+Pj4wO2QrPWM8YT8xOjA7Yz1jK28+Pj4wO2QrPWM8bz8xOjA7Yz1jK3U+Pj4wO2QrPWM8dT8xOjA7dmFyIGw9ZStyK24rcytoK2Q7cmV0dXJuIGw+Pj4wfXQuc3VtNjRfNV9oaT1zdW02NF81X2hpO2Z1bmN0aW9uIHN1bTY0XzVfbG8oZSx0LHIsaSxuLGEscyxvLGgsdSl7dmFyIGQ9dCtpK2Erbyt1O3JldHVybiBkPj4+MH10LnN1bTY0XzVfbG89c3VtNjRfNV9sbztmdW5jdGlvbiByb3RyNjRfaGkoZSx0LHIpe3ZhciBpPXQ8PDMyLXJ8ZT4+PnI7cmV0dXJuIGk+Pj4wfXQucm90cjY0X2hpPXJvdHI2NF9oaTtmdW5jdGlvbiByb3RyNjRfbG8oZSx0LHIpe3ZhciBpPWU8PDMyLXJ8dD4+PnI7cmV0dXJuIGk+Pj4wfXQucm90cjY0X2xvPXJvdHI2NF9sbztmdW5jdGlvbiBzaHI2NF9oaShlLHQscil7cmV0dXJuIGU+Pj5yfXQuc2hyNjRfaGk9c2hyNjRfaGk7ZnVuY3Rpb24gc2hyNjRfbG8oZSx0LHIpe3ZhciBpPWU8PDMyLXJ8dD4+PnI7cmV0dXJuIGk+Pj4wfXQuc2hyNjRfbG89c2hyNjRfbG99LDQ5MTA6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoNzAyOCk7dmFyIG49cig2NTQ1KTt2YXIgYT1yKDM1MjMpO2Z1bmN0aW9uIEhtYWNEUkJHKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEhtYWNEUkJHKSlyZXR1cm4gbmV3IEhtYWNEUkJHKGUpO3RoaXMuaGFzaD1lLmhhc2g7dGhpcy5wcmVkUmVzaXN0PSEhZS5wcmVkUmVzaXN0O3RoaXMub3V0TGVuPXRoaXMuaGFzaC5vdXRTaXplO3RoaXMubWluRW50cm9weT1lLm1pbkVudHJvcHl8fHRoaXMuaGFzaC5obWFjU3RyZW5ndGg7dGhpcy5fcmVzZWVkPW51bGw7dGhpcy5yZXNlZWRJbnRlcnZhbD1udWxsO3RoaXMuSz1udWxsO3RoaXMuVj1udWxsO3ZhciB0PW4udG9BcnJheShlLmVudHJvcHksZS5lbnRyb3B5RW5jfHxcImhleFwiKTt2YXIgcj1uLnRvQXJyYXkoZS5ub25jZSxlLm5vbmNlRW5jfHxcImhleFwiKTt2YXIgaT1uLnRvQXJyYXkoZS5wZXJzLGUucGVyc0VuY3x8XCJoZXhcIik7YSh0Lmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsXCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6IFwiK3RoaXMubWluRW50cm9weStcIiBiaXRzXCIpO3RoaXMuX2luaXQodCxyLGkpfWUuZXhwb3J0cz1IbWFjRFJCRztIbWFjRFJCRy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24gaW5pdChlLHQscil7dmFyIGk9ZS5jb25jYXQodCkuY29uY2F0KHIpO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCk7dGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIG49MDtuPHRoaXMuVi5sZW5ndGg7bisrKXt0aGlzLktbbl09MDt0aGlzLlZbbl09MX10aGlzLl91cGRhdGUoaSk7dGhpcy5fcmVzZWVkPTE7dGhpcy5yZXNlZWRJbnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9O0htYWNEUkJHLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbiBobWFjKCl7cmV0dXJuIG5ldyBpLmhtYWModGhpcy5oYXNoLHRoaXMuSyl9O0htYWNEUkJHLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uIHVwZGF0ZShlKXt2YXIgdD10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7aWYoZSl0PXQudXBkYXRlKGUpO3RoaXMuSz10LmRpZ2VzdCgpO3RoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCk7aWYoIWUpcmV0dXJuO3RoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKGUpLmRpZ2VzdCgpO3RoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCl9O0htYWNEUkJHLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24gcmVzZWVkKGUsdCxyLGkpe2lmKHR5cGVvZiB0IT09XCJzdHJpbmdcIil7aT1yO3I9dDt0PW51bGx9ZT1uLnRvQXJyYXkoZSx0KTtyPW4udG9BcnJheShyLGkpO2EoZS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LFwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiBcIit0aGlzLm1pbkVudHJvcHkrXCIgYml0c1wiKTt0aGlzLl91cGRhdGUoZS5jb25jYXQocnx8W10pKTt0aGlzLl9yZXNlZWQ9MX07SG1hY0RSQkcucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uIGdlbmVyYXRlKGUsdCxyLGkpe2lmKHRoaXMuX3Jlc2VlZD50aGlzLnJlc2VlZEludGVydmFsKXRocm93IG5ldyBFcnJvcihcIlJlc2VlZCBpcyByZXF1aXJlZFwiKTtpZih0eXBlb2YgdCE9PVwic3RyaW5nXCIpe2k9cjtyPXQ7dD1udWxsfWlmKHIpe3I9bi50b0FycmF5KHIsaXx8XCJoZXhcIik7dGhpcy5fdXBkYXRlKHIpfXZhciBhPVtdO3doaWxlKGEubGVuZ3RoPGUpe3RoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCk7YT1hLmNvbmNhdCh0aGlzLlYpfXZhciBzPWEuc2xpY2UoMCxlKTt0aGlzLl91cGRhdGUocik7dGhpcy5fcmVzZWVkKys7cmV0dXJuIG4uZW5jb2RlKHMsdCl9fSwzNzgyOmZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBPYmplY3QuY3JlYXRlPT09XCJmdW5jdGlvblwiKXtlLmV4cG9ydHM9ZnVuY3Rpb24gaW5oZXJpdHMoZSx0KXtpZih0KXtlLnN1cGVyXz10O2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX19KX19fWVsc2V7ZS5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKGUsdCl7aWYodCl7ZS5zdXBlcl89dDt2YXIgVGVtcEN0b3I9ZnVuY3Rpb24oKXt9O1RlbXBDdG9yLnByb3RvdHlwZT10LnByb3RvdHlwZTtlLnByb3RvdHlwZT1uZXcgVGVtcEN0b3I7ZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZX19fX0sMzUzMzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDkwMjkpO3ZhciBhPXIoNjkxMSkuQnVmZmVyO3ZhciBzPW5ldyBBcnJheSgxNik7ZnVuY3Rpb24gTUQ1KCl7bi5jYWxsKHRoaXMsNjQpO3RoaXMuX2E9MTczMjU4NDE5Mzt0aGlzLl9iPTQwMjMyMzM0MTc7dGhpcy5fYz0yNTYyMzgzMTAyO3RoaXMuX2Q9MjcxNzMzODc4fWkoTUQ1LG4pO01ENS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXM7Zm9yKHZhciB0PTA7dDwxNjsrK3QpZVt0XT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSh0KjQpO3ZhciByPXRoaXMuX2E7dmFyIGk9dGhpcy5fYjt2YXIgbj10aGlzLl9jO3ZhciBhPXRoaXMuX2Q7cj1mbkYocixpLG4sYSxlWzBdLDM2MTQwOTAzNjAsNyk7YT1mbkYoYSxyLGksbixlWzFdLDM5MDU0MDI3MTAsMTIpO249Zm5GKG4sYSxyLGksZVsyXSw2MDYxMDU4MTksMTcpO2k9Zm5GKGksbixhLHIsZVszXSwzMjUwNDQxOTY2LDIyKTtyPWZuRihyLGksbixhLGVbNF0sNDExODU0ODM5OSw3KTthPWZuRihhLHIsaSxuLGVbNV0sMTIwMDA4MDQyNiwxMik7bj1mbkYobixhLHIsaSxlWzZdLDI4MjE3MzU5NTUsMTcpO2k9Zm5GKGksbixhLHIsZVs3XSw0MjQ5MjYxMzEzLDIyKTtyPWZuRihyLGksbixhLGVbOF0sMTc3MDAzNTQxNiw3KTthPWZuRihhLHIsaSxuLGVbOV0sMjMzNjU1Mjg3OSwxMik7bj1mbkYobixhLHIsaSxlWzEwXSw0Mjk0OTI1MjMzLDE3KTtpPWZuRihpLG4sYSxyLGVbMTFdLDIzMDQ1NjMxMzQsMjIpO3I9Zm5GKHIsaSxuLGEsZVsxMl0sMTgwNDYwMzY4Miw3KTthPWZuRihhLHIsaSxuLGVbMTNdLDQyNTQ2MjYxOTUsMTIpO249Zm5GKG4sYSxyLGksZVsxNF0sMjc5Mjk2NTAwNiwxNyk7aT1mbkYoaSxuLGEscixlWzE1XSwxMjM2NTM1MzI5LDIyKTtyPWZuRyhyLGksbixhLGVbMV0sNDEyOTE3MDc4Niw1KTthPWZuRyhhLHIsaSxuLGVbNl0sMzIyNTQ2NTY2NCw5KTtuPWZuRyhuLGEscixpLGVbMTFdLDY0MzcxNzcxMywxNCk7aT1mbkcoaSxuLGEscixlWzBdLDM5MjEwNjk5OTQsMjApO3I9Zm5HKHIsaSxuLGEsZVs1XSwzNTkzNDA4NjA1LDUpO2E9Zm5HKGEscixpLG4sZVsxMF0sMzgwMTYwODMsOSk7bj1mbkcobixhLHIsaSxlWzE1XSwzNjM0NDg4OTYxLDE0KTtpPWZuRyhpLG4sYSxyLGVbNF0sMzg4OTQyOTQ0OCwyMCk7cj1mbkcocixpLG4sYSxlWzldLDU2ODQ0NjQzOCw1KTthPWZuRyhhLHIsaSxuLGVbMTRdLDMyNzUxNjM2MDYsOSk7bj1mbkcobixhLHIsaSxlWzNdLDQxMDc2MDMzMzUsMTQpO2k9Zm5HKGksbixhLHIsZVs4XSwxMTYzNTMxNTAxLDIwKTtyPWZuRyhyLGksbixhLGVbMTNdLDI4NTAyODU4MjksNSk7YT1mbkcoYSxyLGksbixlWzJdLDQyNDM1NjM1MTIsOSk7bj1mbkcobixhLHIsaSxlWzddLDE3MzUzMjg0NzMsMTQpO2k9Zm5HKGksbixhLHIsZVsxMl0sMjM2ODM1OTU2MiwyMCk7cj1mbkgocixpLG4sYSxlWzVdLDQyOTQ1ODg3MzgsNCk7YT1mbkgoYSxyLGksbixlWzhdLDIyNzIzOTI4MzMsMTEpO249Zm5IKG4sYSxyLGksZVsxMV0sMTgzOTAzMDU2MiwxNik7aT1mbkgoaSxuLGEscixlWzE0XSw0MjU5NjU3NzQwLDIzKTtyPWZuSChyLGksbixhLGVbMV0sMjc2Mzk3NTIzNiw0KTthPWZuSChhLHIsaSxuLGVbNF0sMTI3Mjg5MzM1MywxMSk7bj1mbkgobixhLHIsaSxlWzddLDQxMzk0Njk2NjQsMTYpO2k9Zm5IKGksbixhLHIsZVsxMF0sMzIwMDIzNjY1NiwyMyk7cj1mbkgocixpLG4sYSxlWzEzXSw2ODEyNzkxNzQsNCk7YT1mbkgoYSxyLGksbixlWzBdLDM5MzY0MzAwNzQsMTEpO249Zm5IKG4sYSxyLGksZVszXSwzNTcyNDQ1MzE3LDE2KTtpPWZuSChpLG4sYSxyLGVbNl0sNzYwMjkxODksMjMpO3I9Zm5IKHIsaSxuLGEsZVs5XSwzNjU0NjAyODA5LDQpO2E9Zm5IKGEscixpLG4sZVsxMl0sMzg3MzE1MTQ2MSwxMSk7bj1mbkgobixhLHIsaSxlWzE1XSw1MzA3NDI1MjAsMTYpO2k9Zm5IKGksbixhLHIsZVsyXSwzMjk5NjI4NjQ1LDIzKTtyPWZuSShyLGksbixhLGVbMF0sNDA5NjMzNjQ1Miw2KTthPWZuSShhLHIsaSxuLGVbN10sMTEyNjg5MTQxNSwxMCk7bj1mbkkobixhLHIsaSxlWzE0XSwyODc4NjEyMzkxLDE1KTtpPWZuSShpLG4sYSxyLGVbNV0sNDIzNzUzMzI0MSwyMSk7cj1mbkkocixpLG4sYSxlWzEyXSwxNzAwNDg1NTcxLDYpO2E9Zm5JKGEscixpLG4sZVszXSwyMzk5OTgwNjkwLDEwKTtuPWZuSShuLGEscixpLGVbMTBdLDQyOTM5MTU3NzMsMTUpO2k9Zm5JKGksbixhLHIsZVsxXSwyMjQwMDQ0NDk3LDIxKTtyPWZuSShyLGksbixhLGVbOF0sMTg3MzMxMzM1OSw2KTthPWZuSShhLHIsaSxuLGVbMTVdLDQyNjQzNTU1NTIsMTApO249Zm5JKG4sYSxyLGksZVs2XSwyNzM0NzY4OTE2LDE1KTtpPWZuSShpLG4sYSxyLGVbMTNdLDEzMDkxNTE2NDksMjEpO3I9Zm5JKHIsaSxuLGEsZVs0XSw0MTQ5NDQ0MjI2LDYpO2E9Zm5JKGEscixpLG4sZVsxMV0sMzE3NDc1NjkxNywxMCk7bj1mbkkobixhLHIsaSxlWzJdLDcxODc4NzI1OSwxNSk7aT1mbkkoaSxuLGEscixlWzldLDM5NTE0ODE3NDUsMjEpO3RoaXMuX2E9dGhpcy5fYStyfDA7dGhpcy5fYj10aGlzLl9iK2l8MDt0aGlzLl9jPXRoaXMuX2MrbnwwO3RoaXMuX2Q9dGhpcy5fZCthfDB9O01ENS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyODtpZih0aGlzLl9ibG9ja09mZnNldD41Nil7dGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KTt0aGlzLl91cGRhdGUoKTt0aGlzLl9ibG9ja09mZnNldD0wfXRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1Nik7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpO3RoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKTt0aGlzLl91cGRhdGUoKTt2YXIgZT1hLmFsbG9jVW5zYWZlKDE2KTtlLndyaXRlSW50MzJMRSh0aGlzLl9hLDApO2Uud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCk7ZS53cml0ZUludDMyTEUodGhpcy5fYyw4KTtlLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKTtyZXR1cm4gZX07ZnVuY3Rpb24gcm90bChlLHQpe3JldHVybiBlPDx0fGU+Pj4zMi10fWZ1bmN0aW9uIGZuRihlLHQscixpLG4sYSxzKXtyZXR1cm4gcm90bChlKyh0JnJ8fnQmaSkrbithfDAscykrdHwwfWZ1bmN0aW9uIGZuRyhlLHQscixpLG4sYSxzKXtyZXR1cm4gcm90bChlKyh0Jml8ciZ+aSkrbithfDAscykrdHwwfWZ1bmN0aW9uIGZuSChlLHQscixpLG4sYSxzKXtyZXR1cm4gcm90bChlKyh0XnJeaSkrbithfDAscykrdHwwfWZ1bmN0aW9uIGZuSShlLHQscixpLG4sYSxzKXtyZXR1cm4gcm90bChlKyhyXih0fH5pKSkrbithfDAscykrdHwwfWUuZXhwb3J0cz1NRDV9LDEzNTQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNzExKTt2YXIgbj1yKDM1MDApO2Z1bmN0aW9uIE1pbGxlclJhYmluKGUpe3RoaXMucmFuZD1lfHxuZXcgbi5SYW5kfWUuZXhwb3J0cz1NaWxsZXJSYWJpbjtNaWxsZXJSYWJpbi5jcmVhdGU9ZnVuY3Rpb24gY3JlYXRlKGUpe3JldHVybiBuZXcgTWlsbGVyUmFiaW4oZSl9O01pbGxlclJhYmluLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uIF9yYW5kYmVsb3coZSl7dmFyIHQ9ZS5iaXRMZW5ndGgoKTt2YXIgcj1NYXRoLmNlaWwodC84KTtkb3t2YXIgbj1uZXcgaSh0aGlzLnJhbmQuZ2VuZXJhdGUocikpfXdoaWxlKG4uY21wKGUpPj0wKTtyZXR1cm4gbn07TWlsbGVyUmFiaW4ucHJvdG90eXBlLl9yYW5kcmFuZ2U9ZnVuY3Rpb24gX3JhbmRyYW5nZShlLHQpe3ZhciByPXQuc3ViKGUpO3JldHVybiBlLmFkZCh0aGlzLl9yYW5kYmVsb3cocikpfTtNaWxsZXJSYWJpbi5wcm90b3R5cGUudGVzdD1mdW5jdGlvbiB0ZXN0KGUsdCxyKXt2YXIgbj1lLmJpdExlbmd0aCgpO3ZhciBhPWkubW9udChlKTt2YXIgcz1uZXcgaSgxKS50b1JlZChhKTtpZighdCl0PU1hdGgubWF4KDEsbi80OHwwKTt2YXIgbz1lLnN1Ym4oMSk7Zm9yKHZhciBoPTA7IW8udGVzdG4oaCk7aCsrKXt9dmFyIHU9ZS5zaHJuKGgpO3ZhciBkPW8udG9SZWQoYSk7dmFyIGM9dHJ1ZTtmb3IoO3Q+MDt0LS0pe3ZhciBsPXRoaXMuX3JhbmRyYW5nZShuZXcgaSgyKSxvKTtpZihyKXIobCk7dmFyIHA9bC50b1JlZChhKS5yZWRQb3codSk7aWYocC5jbXAocyk9PT0wfHxwLmNtcChkKT09PTApY29udGludWU7Zm9yKHZhciB2PTE7djxoO3YrKyl7cD1wLnJlZFNxcigpO2lmKHAuY21wKHMpPT09MClyZXR1cm4gZmFsc2U7aWYocC5jbXAoZCk9PT0wKWJyZWFrfWlmKHY9PT1oKXJldHVybiBmYWxzZX1yZXR1cm4gY307TWlsbGVyUmFiaW4ucHJvdG90eXBlLmdldERpdmlzb3I9ZnVuY3Rpb24gZ2V0RGl2aXNvcihlLHQpe3ZhciByPWUuYml0TGVuZ3RoKCk7dmFyIG49aS5tb250KGUpO3ZhciBhPW5ldyBpKDEpLnRvUmVkKG4pO2lmKCF0KXQ9TWF0aC5tYXgoMSxyLzQ4fDApO3ZhciBzPWUuc3VibigxKTtmb3IodmFyIG89MDshcy50ZXN0bihvKTtvKyspe312YXIgaD1lLnNocm4obyk7dmFyIHU9cy50b1JlZChuKTtmb3IoO3Q+MDt0LS0pe3ZhciBkPXRoaXMuX3JhbmRyYW5nZShuZXcgaSgyKSxzKTt2YXIgYz1lLmdjZChkKTtpZihjLmNtcG4oMSkhPT0wKXJldHVybiBjO3ZhciBsPWQudG9SZWQobikucmVkUG93KGgpO2lmKGwuY21wKGEpPT09MHx8bC5jbXAodSk9PT0wKWNvbnRpbnVlO2Zvcih2YXIgcD0xO3A8bztwKyspe2w9bC5yZWRTcXIoKTtpZihsLmNtcChhKT09PTApcmV0dXJuIGwuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKGUpO2lmKGwuY21wKHUpPT09MClicmVha31pZihwPT09byl7bD1sLnJlZFNxcigpO3JldHVybiBsLmZyb21SZWQoKS5zdWJuKDEpLmdjZChlKX19cmV0dXJuIGZhbHNlfX0sMzUyMzpmdW5jdGlvbihlKXtlLmV4cG9ydHM9YXNzZXJ0O2Z1bmN0aW9uIGFzc2VydChlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcih0fHxcIkFzc2VydGlvbiBmYWlsZWRcIil9YXNzZXJ0LmVxdWFsPWZ1bmN0aW9uIGFzc2VydEVxdWFsKGUsdCxyKXtpZihlIT10KXRocm93IG5ldyBFcnJvcihyfHxcIkFzc2VydGlvbiBmYWlsZWQ6IFwiK2UrXCIgIT0gXCIrdCl9fSw2NTQ1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dDtmdW5jdGlvbiB0b0FycmF5KGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZS5zbGljZSgpO2lmKCFlKXJldHVybltdO3ZhciByPVtdO2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspcltpXT1lW2ldfDA7cmV0dXJuIHJ9aWYodD09PVwiaGV4XCIpe2U9ZS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLFwiXCIpO2lmKGUubGVuZ3RoJTIhPT0wKWU9XCIwXCIrZTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krPTIpci5wdXNoKHBhcnNlSW50KGVbaV0rZVtpKzFdLDE2KSl9ZWxzZXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG49ZS5jaGFyQ29kZUF0KGkpO3ZhciBhPW4+Pjg7dmFyIHM9biYyNTU7aWYoYSlyLnB1c2goYSxzKTtlbHNlIHIucHVzaChzKX19cmV0dXJuIHJ9ci50b0FycmF5PXRvQXJyYXk7ZnVuY3Rpb24gemVybzIoZSl7aWYoZS5sZW5ndGg9PT0xKXJldHVyblwiMFwiK2U7ZWxzZSByZXR1cm4gZX1yLnplcm8yPXplcm8yO2Z1bmN0aW9uIHRvSGV4KGUpe3ZhciB0PVwiXCI7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdCs9emVybzIoZVtyXS50b1N0cmluZygxNikpO3JldHVybiB0fXIudG9IZXg9dG9IZXg7ci5lbmNvZGU9ZnVuY3Rpb24gZW5jb2RlKGUsdCl7aWYodD09PVwiaGV4XCIpcmV0dXJuIHRvSGV4KGUpO2Vsc2UgcmV0dXJuIGV9fSw4Njg3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDcxNjApO3QuY2VydGlmaWNhdGU9cig4NzgyKTt2YXIgbj1pLmRlZmluZShcIlJTQVByaXZhdGVLZXlcIiwoZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleShcInZlcnNpb25cIikuaW50KCksdGhpcy5rZXkoXCJtb2R1bHVzXCIpLmludCgpLHRoaXMua2V5KFwicHVibGljRXhwb25lbnRcIikuaW50KCksdGhpcy5rZXkoXCJwcml2YXRlRXhwb25lbnRcIikuaW50KCksdGhpcy5rZXkoXCJwcmltZTFcIikuaW50KCksdGhpcy5rZXkoXCJwcmltZTJcIikuaW50KCksdGhpcy5rZXkoXCJleHBvbmVudDFcIikuaW50KCksdGhpcy5rZXkoXCJleHBvbmVudDJcIikuaW50KCksdGhpcy5rZXkoXCJjb2VmZmljaWVudFwiKS5pbnQoKSl9KSk7dC5SU0FQcml2YXRlS2V5PW47dmFyIGE9aS5kZWZpbmUoXCJSU0FQdWJsaWNLZXlcIiwoZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleShcIm1vZHVsdXNcIikuaW50KCksdGhpcy5rZXkoXCJwdWJsaWNFeHBvbmVudFwiKS5pbnQoKSl9KSk7dC5SU0FQdWJsaWNLZXk9YTt2YXIgcz1pLmRlZmluZShcIlN1YmplY3RQdWJsaWNLZXlJbmZvXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJhbGdvcml0aG1cIikudXNlKG8pLHRoaXMua2V5KFwic3ViamVjdFB1YmxpY0tleVwiKS5iaXRzdHIoKSl9KSk7dC5QdWJsaWNLZXk9czt2YXIgbz1pLmRlZmluZShcIkFsZ29yaXRobUlkZW50aWZpZXJcIiwoZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleShcImFsZ29yaXRobVwiKS5vYmppZCgpLHRoaXMua2V5KFwibm9uZVwiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoXCJjdXJ2ZVwiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoXCJwYXJhbXNcIikuc2VxKCkub2JqKHRoaXMua2V5KFwicFwiKS5pbnQoKSx0aGlzLmtleShcInFcIikuaW50KCksdGhpcy5rZXkoXCJnXCIpLmludCgpKS5vcHRpb25hbCgpKX0pKTt2YXIgaD1pLmRlZmluZShcIlByaXZhdGVLZXlJbmZvXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJ2ZXJzaW9uXCIpLmludCgpLHRoaXMua2V5KFwiYWxnb3JpdGhtXCIpLnVzZShvKSx0aGlzLmtleShcInN1YmplY3RQcml2YXRlS2V5XCIpLm9jdHN0cigpKX0pKTt0LlByaXZhdGVLZXk9aDt2YXIgdT1pLmRlZmluZShcIkVuY3J5cHRlZFByaXZhdGVLZXlJbmZvXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJhbGdvcml0aG1cIikuc2VxKCkub2JqKHRoaXMua2V5KFwiaWRcIikub2JqaWQoKSx0aGlzLmtleShcImRlY3J5cHRcIikuc2VxKCkub2JqKHRoaXMua2V5KFwia2RlXCIpLnNlcSgpLm9iaih0aGlzLmtleShcImlkXCIpLm9iamlkKCksdGhpcy5rZXkoXCJrZGVwYXJhbXNcIikuc2VxKCkub2JqKHRoaXMua2V5KFwic2FsdFwiKS5vY3RzdHIoKSx0aGlzLmtleShcIml0ZXJzXCIpLmludCgpKSksdGhpcy5rZXkoXCJjaXBoZXJcIikuc2VxKCkub2JqKHRoaXMua2V5KFwiYWxnb1wiKS5vYmppZCgpLHRoaXMua2V5KFwiaXZcIikub2N0c3RyKCkpKSksdGhpcy5rZXkoXCJzdWJqZWN0UHJpdmF0ZUtleVwiKS5vY3RzdHIoKSl9KSk7dC5FbmNyeXB0ZWRQcml2YXRlS2V5PXU7dmFyIGQ9aS5kZWZpbmUoXCJEU0FQcml2YXRlS2V5XCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJ2ZXJzaW9uXCIpLmludCgpLHRoaXMua2V5KFwicFwiKS5pbnQoKSx0aGlzLmtleShcInFcIikuaW50KCksdGhpcy5rZXkoXCJnXCIpLmludCgpLHRoaXMua2V5KFwicHViX2tleVwiKS5pbnQoKSx0aGlzLmtleShcInByaXZfa2V5XCIpLmludCgpKX0pKTt0LkRTQVByaXZhdGVLZXk9ZDt0LkRTQXBhcmFtPWkuZGVmaW5lKFwiRFNBcGFyYW1cIiwoZnVuY3Rpb24oKXt0aGlzLmludCgpfSkpO3ZhciBjPWkuZGVmaW5lKFwiRUNQcml2YXRlS2V5XCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJ2ZXJzaW9uXCIpLmludCgpLHRoaXMua2V5KFwicHJpdmF0ZUtleVwiKS5vY3RzdHIoKSx0aGlzLmtleShcInBhcmFtZXRlcnNcIikub3B0aW9uYWwoKS5leHBsaWNpdCgwKS51c2UobCksdGhpcy5rZXkoXCJwdWJsaWNLZXlcIikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKSl9KSk7dC5FQ1ByaXZhdGVLZXk9Yzt2YXIgbD1pLmRlZmluZShcIkVDUGFyYW1ldGVyc1wiLChmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtuYW1lZEN1cnZlOnRoaXMub2JqaWQoKX0pfSkpO3Quc2lnbmF0dXJlPWkuZGVmaW5lKFwic2lnbmF0dXJlXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJyXCIpLmludCgpLHRoaXMua2V5KFwic1wiKS5pbnQoKSl9KSl9LDg3ODI6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoNzE2MCk7dmFyIG49aS5kZWZpbmUoXCJUaW1lXCIsKGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3V0Y1RpbWU6dGhpcy51dGN0aW1lKCksZ2VuZXJhbFRpbWU6dGhpcy5nZW50aW1lKCl9KX0pKTt2YXIgYT1pLmRlZmluZShcIkF0dHJpYnV0ZVR5cGVWYWx1ZVwiLChmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KFwidHlwZVwiKS5vYmppZCgpLHRoaXMua2V5KFwidmFsdWVcIikuYW55KCkpfSkpO3ZhciBzPWkuZGVmaW5lKFwiQWxnb3JpdGhtSWRlbnRpZmllclwiLChmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KFwiYWxnb3JpdGhtXCIpLm9iamlkKCksdGhpcy5rZXkoXCJwYXJhbWV0ZXJzXCIpLm9wdGlvbmFsKCksdGhpcy5rZXkoXCJjdXJ2ZVwiKS5vYmppZCgpLm9wdGlvbmFsKCkpfSkpO3ZhciBvPWkuZGVmaW5lKFwiU3ViamVjdFB1YmxpY0tleUluZm9cIiwoZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleShcImFsZ29yaXRobVwiKS51c2UocyksdGhpcy5rZXkoXCJzdWJqZWN0UHVibGljS2V5XCIpLmJpdHN0cigpKX0pKTt2YXIgaD1pLmRlZmluZShcIlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWVcIiwoZnVuY3Rpb24oKXt0aGlzLnNldG9mKGEpfSkpO3ZhciB1PWkuZGVmaW5lKFwiUkROU2VxdWVuY2VcIiwoZnVuY3Rpb24oKXt0aGlzLnNlcW9mKGgpfSkpO3ZhciBkPWkuZGVmaW5lKFwiTmFtZVwiLChmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtyZG5TZXF1ZW5jZTp0aGlzLnVzZSh1KX0pfSkpO3ZhciBjPWkuZGVmaW5lKFwiVmFsaWRpdHlcIiwoZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleShcIm5vdEJlZm9yZVwiKS51c2UobiksdGhpcy5rZXkoXCJub3RBZnRlclwiKS51c2UobikpfSkpO3ZhciBsPWkuZGVmaW5lKFwiRXh0ZW5zaW9uXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJleHRuSURcIikub2JqaWQoKSx0aGlzLmtleShcImNyaXRpY2FsXCIpLmJvb2woKS5kZWYoZmFsc2UpLHRoaXMua2V5KFwiZXh0blZhbHVlXCIpLm9jdHN0cigpKX0pKTt2YXIgcD1pLmRlZmluZShcIlRCU0NlcnRpZmljYXRlXCIsKGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoXCJ2ZXJzaW9uXCIpLmV4cGxpY2l0KDApLmludCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoXCJzZXJpYWxOdW1iZXJcIikuaW50KCksdGhpcy5rZXkoXCJzaWduYXR1cmVcIikudXNlKHMpLHRoaXMua2V5KFwiaXNzdWVyXCIpLnVzZShkKSx0aGlzLmtleShcInZhbGlkaXR5XCIpLnVzZShjKSx0aGlzLmtleShcInN1YmplY3RcIikudXNlKGQpLHRoaXMua2V5KFwic3ViamVjdFB1YmxpY0tleUluZm9cIikudXNlKG8pLHRoaXMua2V5KFwiaXNzdWVyVW5pcXVlSURcIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleShcInN1YmplY3RVbmlxdWVJRFwiKS5pbXBsaWNpdCgyKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KFwiZXh0ZW5zaW9uc1wiKS5leHBsaWNpdCgzKS5zZXFvZihsKS5vcHRpb25hbCgpKX0pKTt2YXIgdj1pLmRlZmluZShcIlg1MDlDZXJ0aWZpY2F0ZVwiLChmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KFwidGJzQ2VydGlmaWNhdGVcIikudXNlKHApLHRoaXMua2V5KFwic2lnbmF0dXJlQWxnb3JpdGhtXCIpLnVzZShzKSx0aGlzLmtleShcInNpZ25hdHVyZVZhbHVlXCIpLmJpdHN0cigpKX0pKTtlLmV4cG9ydHM9dn0sNjUwMTpmdW5jdGlvbihlLHQscil7dmFyIGk9L1Byb2MtVHlwZTogNCxFTkNSWVBURURbXFxuXFxyXStERUstSW5mbzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xcblxccl0rKFswLTlBLXpcXG5cXHJcXCtcXC9cXD1dKylbXFxuXFxyXSsvbTt2YXIgbj0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tL207dmFyIGE9L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLShbMC05QS16XFxuXFxyXFwrXFwvXFw9XSspLS0tLS1FTkQgXFwxLS0tLS0kL207dmFyIHM9cig4MzY4KTt2YXIgbz1yKDY1OTQpO3ZhciBoPXIoNjkxMSkuQnVmZmVyO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPWUudG9TdHJpbmcoKTt2YXIgdT1yLm1hdGNoKGkpO3ZhciBkO2lmKCF1KXt2YXIgYz1yLm1hdGNoKGEpO2Q9bmV3IGgoY1syXS5yZXBsYWNlKC9bXFxyXFxuXS9nLFwiXCIpLFwiYmFzZTY0XCIpfWVsc2V7dmFyIGw9XCJhZXNcIit1WzFdO3ZhciBwPWguZnJvbSh1WzJdLFwiaGV4XCIpO3ZhciB2PWguZnJvbSh1WzNdLnJlcGxhY2UoL1tcXHJcXG5dL2csXCJcIiksXCJiYXNlNjRcIik7dmFyIGI9cyh0LHAuc2xpY2UoMCw4KSxwYXJzZUludCh1WzFdLDEwKSkua2V5O3ZhciBtPVtdO3ZhciB5PW8uY3JlYXRlRGVjaXBoZXJpdihsLGIscCk7bS5wdXNoKHkudXBkYXRlKHYpKTttLnB1c2goeS5maW5hbCgpKTtkPWguY29uY2F0KG0pfXZhciBnPXIubWF0Y2gobilbMV07cmV0dXJue3RhZzpnLGRhdGE6ZH19fSw5OTAyOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDg2ODcpO3ZhciBuPXIoMjUxMCk7dmFyIGE9cig2NTAxKTt2YXIgcz1yKDY1OTQpO3ZhciBvPXIoNDk3OCk7dmFyIGg9cig2OTExKS5CdWZmZXI7ZS5leHBvcnRzPXBhcnNlS2V5cztmdW5jdGlvbiBwYXJzZUtleXMoZSl7dmFyIHQ7aWYodHlwZW9mIGU9PT1cIm9iamVjdFwiJiYhaC5pc0J1ZmZlcihlKSl7dD1lLnBhc3NwaHJhc2U7ZT1lLmtleX1pZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2U9aC5mcm9tKGUpfXZhciByPWEoZSx0KTt2YXIgbj1yLnRhZzt2YXIgcz1yLmRhdGE7dmFyIG8sdTtzd2l0Y2gobil7Y2FzZVwiQ0VSVElGSUNBVEVcIjp1PWkuY2VydGlmaWNhdGUuZGVjb2RlKHMsXCJkZXJcIikudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm87Y2FzZVwiUFVCTElDIEtFWVwiOmlmKCF1KXt1PWkuUHVibGljS2V5LmRlY29kZShzLFwiZGVyXCIpfW89dS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oXCIuXCIpO3N3aXRjaChvKXtjYXNlXCIxLjIuODQwLjExMzU0OS4xLjEuMVwiOnJldHVybiBpLlJTQVB1YmxpY0tleS5kZWNvZGUodS5zdWJqZWN0UHVibGljS2V5LmRhdGEsXCJkZXJcIik7Y2FzZVwiMS4yLjg0MC4xMDA0NS4yLjFcIjp1LnN1YmplY3RQcml2YXRlS2V5PXUuc3ViamVjdFB1YmxpY0tleTtyZXR1cm57dHlwZTpcImVjXCIsZGF0YTp1fTtjYXNlXCIxLjIuODQwLjEwMDQwLjQuMVwiOnUuYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5PWkuRFNBcGFyYW0uZGVjb2RlKHUuc3ViamVjdFB1YmxpY0tleS5kYXRhLFwiZGVyXCIpO3JldHVybnt0eXBlOlwiZHNhXCIsZGF0YTp1LmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBrZXkgaWQgXCIrbyl9dGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBrZXkgdHlwZSBcIituKTtjYXNlXCJFTkNSWVBURUQgUFJJVkFURSBLRVlcIjpzPWkuRW5jcnlwdGVkUHJpdmF0ZUtleS5kZWNvZGUocyxcImRlclwiKTtzPWRlY3J5cHQocyx0KTtjYXNlXCJQUklWQVRFIEtFWVwiOnU9aS5Qcml2YXRlS2V5LmRlY29kZShzLFwiZGVyXCIpO289dS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oXCIuXCIpO3N3aXRjaChvKXtjYXNlXCIxLjIuODQwLjExMzU0OS4xLjEuMVwiOnJldHVybiBpLlJTQVByaXZhdGVLZXkuZGVjb2RlKHUuc3ViamVjdFByaXZhdGVLZXksXCJkZXJcIik7Y2FzZVwiMS4yLjg0MC4xMDA0NS4yLjFcIjpyZXR1cm57Y3VydmU6dS5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTppLkVDUHJpdmF0ZUtleS5kZWNvZGUodS5zdWJqZWN0UHJpdmF0ZUtleSxcImRlclwiKS5wcml2YXRlS2V5fTtjYXNlXCIxLjIuODQwLjEwMDQwLjQuMVwiOnUuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1pLkRTQXBhcmFtLmRlY29kZSh1LnN1YmplY3RQcml2YXRlS2V5LFwiZGVyXCIpO3JldHVybnt0eXBlOlwiZHNhXCIscGFyYW1zOnUuYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIGtleSBpZCBcIitvKX10aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIGtleSB0eXBlIFwiK24pO2Nhc2VcIlJTQSBQVUJMSUMgS0VZXCI6cmV0dXJuIGkuUlNBUHVibGljS2V5LmRlY29kZShzLFwiZGVyXCIpO2Nhc2VcIlJTQSBQUklWQVRFIEtFWVwiOnJldHVybiBpLlJTQVByaXZhdGVLZXkuZGVjb2RlKHMsXCJkZXJcIik7Y2FzZVwiRFNBIFBSSVZBVEUgS0VZXCI6cmV0dXJue3R5cGU6XCJkc2FcIixwYXJhbXM6aS5EU0FQcml2YXRlS2V5LmRlY29kZShzLFwiZGVyXCIpfTtjYXNlXCJFQyBQUklWQVRFIEtFWVwiOnM9aS5FQ1ByaXZhdGVLZXkuZGVjb2RlKHMsXCJkZXJcIik7cmV0dXJue2N1cnZlOnMucGFyYW1ldGVycy52YWx1ZSxwcml2YXRlS2V5OnMucHJpdmF0ZUtleX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIGtleSB0eXBlIFwiK24pfX1wYXJzZUtleXMuc2lnbmF0dXJlPWkuc2lnbmF0dXJlO2Z1bmN0aW9uIGRlY3J5cHQoZSx0KXt2YXIgcj1lLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuc2FsdDt2YXIgaT1wYXJzZUludChlLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCk7dmFyIGE9bltlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5hbGdvLmpvaW4oXCIuXCIpXTt2YXIgdT1lLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdjt2YXIgZD1lLnN1YmplY3RQcml2YXRlS2V5O3ZhciBjPXBhcnNlSW50KGEuc3BsaXQoXCItXCIpWzFdLDEwKS84O3ZhciBsPW8ucGJrZGYyU3luYyh0LHIsaSxjLFwic2hhMVwiKTt2YXIgcD1zLmNyZWF0ZURlY2lwaGVyaXYoYSxsLHUpO3ZhciB2PVtdO3YucHVzaChwLnVwZGF0ZShkKSk7di5wdXNoKHAuZmluYWwoKSk7cmV0dXJuIGguY29uY2F0KHYpfX0sNDk3ODpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2MTEzKTt2YXIgbj1yKDUzNDkpO3ZhciBhPXIoNzAwNyk7dmFyIHM9cig1NDA3KTtmdW5jdGlvbiBuYXRpdmVQQktERjIoZSx0LHIsbyxoLHUpe24ocixvKTtlPXMoZSxhLFwiUGFzc3dvcmRcIik7dD1zKHQsYSxcIlNhbHRcIik7aWYodHlwZW9mIGg9PT1cImZ1bmN0aW9uXCIpe3U9aDtoPVwic2hhMVwifWlmKHR5cGVvZiB1IT09XCJmdW5jdGlvblwiKXRocm93IG5ldyBFcnJvcihcIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMlwiKTtyZXR1cm4gaS5wYmtkZjIoZSx0LHIsbyxoLHUpfWZ1bmN0aW9uIG5hdGl2ZVBCS0RGMlN5bmMoZSx0LHIsbyxoKXtuKHIsbyk7ZT1zKGUsYSxcIlBhc3N3b3JkXCIpO3Q9cyh0LGEsXCJTYWx0XCIpO2g9aHx8XCJzaGExXCI7cmV0dXJuIGkucGJrZGYyU3luYyhlLHQscixvLGgpfWlmKCFpLnBia2RmMlN5bmN8fGkucGJrZGYyU3luYy50b1N0cmluZygpLmluZGV4T2YoXCJrZXlsZW4sIGRpZ2VzdFwiKT09PS0xKXt0LnBia2RmMlN5bmM9cigyMTI3KTt0LnBia2RmMj1yKDk2MDEpfWVsc2V7dC5wYmtkZjJTeW5jPW5hdGl2ZVBCS0RGMlN5bmM7dC5wYmtkZjI9bmF0aXZlUEJLREYyfX0sOTYwMTpmdW5jdGlvbihlLHQscil7dmFyIGk9cig2OTExKS5CdWZmZXI7dmFyIG49cig1MzQ5KTt2YXIgYT1yKDcwMDcpO3ZhciBzPXIoMjEyNyk7dmFyIG89cig1NDA3KTt2YXIgaDt2YXIgdT1nbG9iYWwuY3J5cHRvJiZnbG9iYWwuY3J5cHRvLnN1YnRsZTt2YXIgZD17c2hhOlwiU0hBLTFcIixcInNoYS0xXCI6XCJTSEEtMVwiLHNoYTE6XCJTSEEtMVwiLHNoYTI1NjpcIlNIQS0yNTZcIixcInNoYS0yNTZcIjpcIlNIQS0yNTZcIixzaGEzODQ6XCJTSEEtMzg0XCIsXCJzaGEtMzg0XCI6XCJTSEEtMzg0XCIsXCJzaGEtNTEyXCI6XCJTSEEtNTEyXCIsc2hhNTEyOlwiU0hBLTUxMlwifTt2YXIgYz1bXTtmdW5jdGlvbiBjaGVja05hdGl2ZShlKXtpZihnbG9iYWwucHJvY2VzcyYmIWdsb2JhbC5wcm9jZXNzLmJyb3dzZXIpe3JldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpfWlmKCF1fHwhdS5pbXBvcnRLZXl8fCF1LmRlcml2ZUJpdHMpe3JldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpfWlmKGNbZV0hPT11bmRlZmluZWQpe3JldHVybiBjW2VdfWg9aHx8aS5hbGxvYyg4KTt2YXIgdD1icm93c2VyUGJrZGYyKGgsaCwxMCwxMjgsZSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9KSk7Y1tlXT10O3JldHVybiB0fWZ1bmN0aW9uIGJyb3dzZXJQYmtkZjIoZSx0LHIsbixhKXtyZXR1cm4gdS5pbXBvcnRLZXkoXCJyYXdcIixlLHtuYW1lOlwiUEJLREYyXCJ9LGZhbHNlLFtcImRlcml2ZUJpdHNcIl0pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiB1LmRlcml2ZUJpdHMoe25hbWU6XCJQQktERjJcIixzYWx0OnQsaXRlcmF0aW9uczpyLGhhc2g6e25hbWU6YX19LGUsbjw8Myl9KSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZnJvbShlKX0pKX1mdW5jdGlvbiByZXNvbHZlUHJvbWlzZShlLHQpe2UudGhlbigoZnVuY3Rpb24oZSl7cHJvY2Vzcy5uZXh0VGljaygoZnVuY3Rpb24oKXt0KG51bGwsZSl9KSl9KSwoZnVuY3Rpb24oZSl7cHJvY2Vzcy5uZXh0VGljaygoZnVuY3Rpb24oKXt0KGUpfSkpfSkpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQscixpLGgsdSl7aWYodHlwZW9mIGg9PT1cImZ1bmN0aW9uXCIpe3U9aDtoPXVuZGVmaW5lZH1oPWh8fFwic2hhMVwiO3ZhciBjPWRbaC50b0xvd2VyQ2FzZSgpXTtpZighY3x8dHlwZW9mIGdsb2JhbC5Qcm9taXNlIT09XCJmdW5jdGlvblwiKXtyZXR1cm4gcHJvY2Vzcy5uZXh0VGljaygoZnVuY3Rpb24oKXt2YXIgbjt0cnl7bj1zKGUsdCxyLGksaCl9Y2F0Y2goZSl7cmV0dXJuIHUoZSl9dShudWxsLG4pfSkpfW4ocixpKTtlPW8oZSxhLFwiUGFzc3dvcmRcIik7dD1vKHQsYSxcIlNhbHRcIik7aWYodHlwZW9mIHUhPT1cImZ1bmN0aW9uXCIpdGhyb3cgbmV3IEVycm9yKFwiTm8gY2FsbGJhY2sgcHJvdmlkZWQgdG8gcGJrZGYyXCIpO3Jlc29sdmVQcm9taXNlKGNoZWNrTmF0aXZlKGMpLnRoZW4oKGZ1bmN0aW9uKG4pe2lmKG4pcmV0dXJuIGJyb3dzZXJQYmtkZjIoZSx0LHIsaSxjKTtyZXR1cm4gcyhlLHQscixpLGgpfSkpLHUpfX0sNzAwNzpmdW5jdGlvbihlKXt2YXIgdDtpZihwcm9jZXNzLmJyb3dzZXIpe3Q9XCJ1dGYtOFwifWVsc2UgaWYocHJvY2Vzcy52ZXJzaW9uKXt2YXIgcj1wYXJzZUludChwcm9jZXNzLnZlcnNpb24uc3BsaXQoXCIuXCIpWzBdLnNsaWNlKDEpLDEwKTt0PXI+PTY/XCJ1dGYtOFwiOlwiYmluYXJ5XCJ9ZWxzZXt0PVwidXRmLThcIn1lLmV4cG9ydHM9dH0sNTM0OTpmdW5jdGlvbihlKXt2YXIgdD1NYXRoLnBvdygyLDMwKS0xO2UuZXhwb3J0cz1mdW5jdGlvbihlLHIpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkl0ZXJhdGlvbnMgbm90IGEgbnVtYmVyXCIpfWlmKGU8MCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkJhZCBpdGVyYXRpb25zXCIpfWlmKHR5cGVvZiByIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIktleSBsZW5ndGggbm90IGEgbnVtYmVyXCIpfWlmKHI8MHx8cj50fHxyIT09cil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkJhZCBrZXkgbGVuZ3RoXCIpfX19LDIxMjc6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07dmFyIG49cig0ODczKTt2YXIgYT1yKDY5MTEpLkJ1ZmZlcjt2YXIgcz1yKDUzNDkpO3ZhciBvPXIoNzAwNyk7dmFyIGg9cig1NDA3KTtmdW5jdGlvbiBwYmtkZjIoZSx0LHIsdSxkKXtzKHIsdSk7ZT1oKGUsbyxcIlBhc3N3b3JkXCIpO3Q9aCh0LG8sXCJTYWx0XCIpO2Q9ZHx8XCJzaGExXCI7dmFyIGM9YS5hbGxvY1Vuc2FmZSh1KTt2YXIgbD1hLmFsbG9jVW5zYWZlKHQubGVuZ3RoKzQpO3QuY29weShsLDAsMCx0Lmxlbmd0aCk7dmFyIHA9MDt2YXIgdj1pW2RdO3ZhciBiPU1hdGguY2VpbCh1L3YpO2Zvcih2YXIgbT0xO208PWI7bSsrKXtsLndyaXRlVUludDMyQkUobSx0Lmxlbmd0aCk7dmFyIHk9bihkLGUpLnVwZGF0ZShsKS5kaWdlc3QoKTt2YXIgZz15O2Zvcih2YXIgXz0xO188cjtfKyspe2c9bihkLGUpLnVwZGF0ZShnKS5kaWdlc3QoKTtmb3IodmFyIHc9MDt3PHY7dysrKXlbd11ePWdbd119eS5jb3B5KGMscCk7cCs9dn1yZXR1cm4gY31lLmV4cG9ydHM9cGJrZGYyfSw1NDA3OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDY5MTEpLkJ1ZmZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe2lmKGkuaXNCdWZmZXIoZSkpe3JldHVybiBlfWVsc2UgaWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtyZXR1cm4gaS5mcm9tKGUsdCl9ZWxzZSBpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpe3JldHVybiBpLmZyb20oZS5idWZmZXIpfWVsc2V7dGhyb3cgbmV3IFR5cGVFcnJvcihyK1wiIG11c3QgYmUgYSBzdHJpbmcsIGEgQnVmZmVyLCBhIHR5cGVkIGFycmF5IG9yIGEgRGF0YVZpZXdcIil9fX0sOTc4MzpmdW5jdGlvbihlLHQscil7dC5wdWJsaWNFbmNyeXB0PXIoMzk5NSk7dC5wcml2YXRlRGVjcnlwdD1yKDQzNjYpO3QucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24gcHJpdmF0ZUVuY3J5cHQoZSxyKXtyZXR1cm4gdC5wdWJsaWNFbmNyeXB0KGUscix0cnVlKX07dC5wdWJsaWNEZWNyeXB0PWZ1bmN0aW9uIHB1YmxpY0RlY3J5cHQoZSxyKXtyZXR1cm4gdC5wcml2YXRlRGVjcnlwdChlLHIsdHJ1ZSl9fSw1NTIwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDk3MzkpO3ZhciBuPXIoNjkxMSkuQnVmZmVyO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPW4uYWxsb2MoMCk7dmFyIGE9MDt2YXIgczt3aGlsZShyLmxlbmd0aDx0KXtzPWkyb3BzKGErKyk7cj1uLmNvbmNhdChbcixpKFwic2hhMVwiKS51cGRhdGUoZSkudXBkYXRlKHMpLmRpZ2VzdCgpXSl9cmV0dXJuIHIuc2xpY2UoMCx0KX07ZnVuY3Rpb24gaTJvcHMoZSl7dmFyIHQ9bi5hbGxvY1Vuc2FmZSg0KTt0LndyaXRlVUludDMyQkUoZSwwKTtyZXR1cm4gdH19LDQzNjY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoOTkwMik7dmFyIG49cig1NTIwKTt2YXIgYT1yKDYzODYpO3ZhciBzPXIoNzExKTt2YXIgbz1yKDcxNjYpO3ZhciBoPXIoOTczOSk7dmFyIHU9cigxNjA3KTt2YXIgZD1yKDY5MTEpLkJ1ZmZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24gcHJpdmF0ZURlY3J5cHQoZSx0LHIpe3ZhciBuO2lmKGUucGFkZGluZyl7bj1lLnBhZGRpbmd9ZWxzZSBpZihyKXtuPTF9ZWxzZXtuPTR9dmFyIGE9aShlKTt2YXIgaD1hLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKHQubGVuZ3RoPmh8fG5ldyBzKHQpLmNtcChhLm1vZHVsdXMpPj0wKXt0aHJvdyBuZXcgRXJyb3IoXCJkZWNyeXB0aW9uIGVycm9yXCIpfXZhciBjO2lmKHIpe2M9dShuZXcgcyh0KSxhKX1lbHNle2M9byh0LGEpfXZhciBsPWQuYWxsb2MoaC1jLmxlbmd0aCk7Yz1kLmNvbmNhdChbbCxjXSxoKTtpZihuPT09NCl7cmV0dXJuIG9hZXAoYSxjKX1lbHNlIGlmKG49PT0xKXtyZXR1cm4gcGtjczEoYSxjLHIpfWVsc2UgaWYobj09PTMpe3JldHVybiBjfWVsc2V7dGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBwYWRkaW5nXCIpfX07ZnVuY3Rpb24gb2FlcChlLHQpe3ZhciByPWUubW9kdWx1cy5ieXRlTGVuZ3RoKCk7dmFyIGk9aChcInNoYTFcIikudXBkYXRlKGQuYWxsb2MoMCkpLmRpZ2VzdCgpO3ZhciBzPWkubGVuZ3RoO2lmKHRbMF0hPT0wKXt0aHJvdyBuZXcgRXJyb3IoXCJkZWNyeXB0aW9uIGVycm9yXCIpfXZhciBvPXQuc2xpY2UoMSxzKzEpO3ZhciB1PXQuc2xpY2UocysxKTt2YXIgYz1hKG8sbih1LHMpKTt2YXIgbD1hKHUsbihjLHItcy0xKSk7aWYoY29tcGFyZShpLGwuc2xpY2UoMCxzKSkpe3Rocm93IG5ldyBFcnJvcihcImRlY3J5cHRpb24gZXJyb3JcIil9dmFyIHA9czt3aGlsZShsW3BdPT09MCl7cCsrfWlmKGxbcCsrXSE9PTEpe3Rocm93IG5ldyBFcnJvcihcImRlY3J5cHRpb24gZXJyb3JcIil9cmV0dXJuIGwuc2xpY2UocCl9ZnVuY3Rpb24gcGtjczEoZSx0LHIpe3ZhciBpPXQuc2xpY2UoMCwyKTt2YXIgbj0yO3ZhciBhPTA7d2hpbGUodFtuKytdIT09MCl7aWYobj49dC5sZW5ndGgpe2ErKzticmVha319dmFyIHM9dC5zbGljZSgyLG4tMSk7aWYoaS50b1N0cmluZyhcImhleFwiKSE9PVwiMDAwMlwiJiYhcnx8aS50b1N0cmluZyhcImhleFwiKSE9PVwiMDAwMVwiJiZyKXthKyt9aWYocy5sZW5ndGg8OCl7YSsrfWlmKGEpe3Rocm93IG5ldyBFcnJvcihcImRlY3J5cHRpb24gZXJyb3JcIil9cmV0dXJuIHQuc2xpY2Uobil9ZnVuY3Rpb24gY29tcGFyZShlLHQpe2U9ZC5mcm9tKGUpO3Q9ZC5mcm9tKHQpO3ZhciByPTA7dmFyIGk9ZS5sZW5ndGg7aWYoZS5sZW5ndGghPT10Lmxlbmd0aCl7cisrO2k9TWF0aC5taW4oZS5sZW5ndGgsdC5sZW5ndGgpfXZhciBuPS0xO3doaWxlKCsrbjxpKXtyKz1lW25dXnRbbl19cmV0dXJuIHJ9fSwzOTk1OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDk5MDIpO3ZhciBuPXIoNzIyMyk7dmFyIGE9cig5NzM5KTt2YXIgcz1yKDU1MjApO3ZhciBvPXIoNjM4Nik7dmFyIGg9cig3MTEpO3ZhciB1PXIoMTYwNyk7dmFyIGQ9cig3MTY2KTt2YXIgYz1yKDY5MTEpLkJ1ZmZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24gcHVibGljRW5jcnlwdChlLHQscil7dmFyIG47aWYoZS5wYWRkaW5nKXtuPWUucGFkZGluZ31lbHNlIGlmKHIpe249MX1lbHNle249NH12YXIgYT1pKGUpO3ZhciBzO2lmKG49PT00KXtzPW9hZXAoYSx0KX1lbHNlIGlmKG49PT0xKXtzPXBrY3MxKGEsdCxyKX1lbHNlIGlmKG49PT0zKXtzPW5ldyBoKHQpO2lmKHMuY21wKGEubW9kdWx1cyk+PTApe3Rocm93IG5ldyBFcnJvcihcImRhdGEgdG9vIGxvbmcgZm9yIG1vZHVsdXNcIil9fWVsc2V7dGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBwYWRkaW5nXCIpfWlmKHIpe3JldHVybiBkKHMsYSl9ZWxzZXtyZXR1cm4gdShzLGEpfX07ZnVuY3Rpb24gb2FlcChlLHQpe3ZhciByPWUubW9kdWx1cy5ieXRlTGVuZ3RoKCk7dmFyIGk9dC5sZW5ndGg7dmFyIHU9YShcInNoYTFcIikudXBkYXRlKGMuYWxsb2MoMCkpLmRpZ2VzdCgpO3ZhciBkPXUubGVuZ3RoO3ZhciBsPTIqZDtpZihpPnItbC0yKXt0aHJvdyBuZXcgRXJyb3IoXCJtZXNzYWdlIHRvbyBsb25nXCIpfXZhciBwPWMuYWxsb2Moci1pLWwtMik7dmFyIHY9ci1kLTE7dmFyIGI9bihkKTt2YXIgbT1vKGMuY29uY2F0KFt1LHAsYy5hbGxvYygxLDEpLHRdLHYpLHMoYix2KSk7dmFyIHk9byhiLHMobSxkKSk7cmV0dXJuIG5ldyBoKGMuY29uY2F0KFtjLmFsbG9jKDEpLHksbV0scikpfWZ1bmN0aW9uIHBrY3MxKGUsdCxyKXt2YXIgaT10Lmxlbmd0aDt2YXIgbj1lLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKGk+bi0xMSl7dGhyb3cgbmV3IEVycm9yKFwibWVzc2FnZSB0b28gbG9uZ1wiKX12YXIgYTtpZihyKXthPWMuYWxsb2Mobi1pLTMsMjU1KX1lbHNle2E9bm9uWmVybyhuLWktMyl9cmV0dXJuIG5ldyBoKGMuY29uY2F0KFtjLmZyb20oWzAscj8xOjJdKSxhLGMuYWxsb2MoMSksdF0sbikpfWZ1bmN0aW9uIG5vblplcm8oZSl7dmFyIHQ9Yy5hbGxvY1Vuc2FmZShlKTt2YXIgcj0wO3ZhciBpPW4oZSoyKTt2YXIgYT0wO3ZhciBzO3doaWxlKHI8ZSl7aWYoYT09PWkubGVuZ3RoKXtpPW4oZSoyKTthPTB9cz1pW2ErK107aWYocyl7dFtyKytdPXN9fXJldHVybiB0fX0sMTYwNzpmdW5jdGlvbihlLHQscil7dmFyIGk9cig3MTEpO3ZhciBuPXIoNjkxMSkuQnVmZmVyO2Z1bmN0aW9uIHdpdGhQdWJsaWMoZSx0KXtyZXR1cm4gbi5mcm9tKGUudG9SZWQoaS5tb250KHQubW9kdWx1cykpLnJlZFBvdyhuZXcgaSh0LnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9ZS5leHBvcnRzPXdpdGhQdWJsaWN9LDYzODY6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uIHhvcihlLHQpe3ZhciByPWUubGVuZ3RoO3ZhciBpPS0xO3doaWxlKCsraTxyKXtlW2ldXj10W2ldfXJldHVybiBlfX0sNzIyMzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9NjU1MzY7dmFyIG49NDI5NDk2NzI5NTtmdW5jdGlvbiBvbGRCcm93c2VyKCl7dGhyb3cgbmV3IEVycm9yKFwiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cXG5Vc2UgQ2hyb21lLCBGaXJlZm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExXCIpfXZhciBhPXIoNjkxMSkuQnVmZmVyO3ZhciBzPWdsb2JhbC5jcnlwdG98fGdsb2JhbC5tc0NyeXB0bztpZihzJiZzLmdldFJhbmRvbVZhbHVlcyl7ZS5leHBvcnRzPXJhbmRvbUJ5dGVzfWVsc2V7ZS5leHBvcnRzPW9sZEJyb3dzZXJ9ZnVuY3Rpb24gcmFuZG9tQnl0ZXMoZSx0KXtpZihlPm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzXCIpO3ZhciByPWEuYWxsb2NVbnNhZmUoZSk7aWYoZT4wKXtpZihlPmkpe2Zvcih2YXIgbz0wO288ZTtvKz1pKXtzLmdldFJhbmRvbVZhbHVlcyhyLnNsaWNlKG8sbytpKSl9fWVsc2V7cy5nZXRSYW5kb21WYWx1ZXMocil9fWlmKHR5cGVvZiB0PT09XCJmdW5jdGlvblwiKXtyZXR1cm4gcHJvY2Vzcy5uZXh0VGljaygoZnVuY3Rpb24oKXt0KG51bGwscil9KSl9cmV0dXJuIHJ9fSw2NDQ1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvbGRCcm93c2VyKCl7dGhyb3cgbmV3IEVycm9yKFwic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxcbnVzZSBjaHJvbWUsIEZpcmVGb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTFcIil9dmFyIGk9cig2OTExKTt2YXIgbj1yKDcyMjMpO3ZhciBhPWkuQnVmZmVyO3ZhciBzPWkua01heExlbmd0aDt2YXIgbz1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG87dmFyIGg9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiBhc3NlcnRPZmZzZXQoZSx0KXtpZih0eXBlb2YgZSE9PVwibnVtYmVyXCJ8fGUhPT1lKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib2Zmc2V0IG11c3QgYmUgYSBudW1iZXJcIil9aWYoZT5ofHxlPDApe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMlwiKX1pZihlPnN8fGU+dCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJvZmZzZXQgb3V0IG9mIHJhbmdlXCIpfX1mdW5jdGlvbiBhc3NlcnRTaXplKGUsdCxyKXtpZih0eXBlb2YgZSE9PVwibnVtYmVyXCJ8fGUhPT1lKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwic2l6ZSBtdXN0IGJlIGEgbnVtYmVyXCIpfWlmKGU+aHx8ZTwwKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwic2l6ZSBtdXN0IGJlIGEgdWludDMyXCIpfWlmKGUrdD5yfHxlPnMpe3Rocm93IG5ldyBSYW5nZUVycm9yKFwiYnVmZmVyIHRvbyBzbWFsbFwiKX19aWYobyYmby5nZXRSYW5kb21WYWx1ZXN8fCFwcm9jZXNzLmJyb3dzZXIpe3QucmFuZG9tRmlsbD1yYW5kb21GaWxsO3QucmFuZG9tRmlsbFN5bmM9cmFuZG9tRmlsbFN5bmN9ZWxzZXt0LnJhbmRvbUZpbGw9b2xkQnJvd3Nlcjt0LnJhbmRvbUZpbGxTeW5jPW9sZEJyb3dzZXJ9ZnVuY3Rpb24gcmFuZG9tRmlsbChlLHQscixpKXtpZighYS5pc0J1ZmZlcihlKSYmIShlIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZlwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpfWlmKHR5cGVvZiB0PT09XCJmdW5jdGlvblwiKXtpPXQ7dD0wO3I9ZS5sZW5ndGh9ZWxzZSBpZih0eXBlb2Ygcj09PVwiZnVuY3Rpb25cIil7aT1yO3I9ZS5sZW5ndGgtdH1lbHNlIGlmKHR5cGVvZiBpIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdcImNiXCIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyl9YXNzZXJ0T2Zmc2V0KHQsZS5sZW5ndGgpO2Fzc2VydFNpemUocix0LGUubGVuZ3RoKTtyZXR1cm4gYWN0dWFsRmlsbChlLHQscixpKX1mdW5jdGlvbiBhY3R1YWxGaWxsKGUsdCxyLGkpe2lmKHByb2Nlc3MuYnJvd3Nlcil7dmFyIGE9ZS5idWZmZXI7dmFyIHM9bmV3IFVpbnQ4QXJyYXkoYSx0LHIpO28uZ2V0UmFuZG9tVmFsdWVzKHMpO2lmKGkpe3Byb2Nlc3MubmV4dFRpY2soKGZ1bmN0aW9uKCl7aShudWxsLGUpfSkpO3JldHVybn1yZXR1cm4gZX1pZihpKXtuKHIsKGZ1bmN0aW9uKHIsbil7aWYocil7cmV0dXJuIGkocil9bi5jb3B5KGUsdCk7aShudWxsLGUpfSkpO3JldHVybn12YXIgaD1uKHIpO2guY29weShlLHQpO3JldHVybiBlfWZ1bmN0aW9uIHJhbmRvbUZpbGxTeW5jKGUsdCxyKXtpZih0eXBlb2YgdD09PVwidW5kZWZpbmVkXCIpe3Q9MH1pZighYS5pc0J1ZmZlcihlKSYmIShlIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZlwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpfWFzc2VydE9mZnNldCh0LGUubGVuZ3RoKTtpZihyPT09dW5kZWZpbmVkKXI9ZS5sZW5ndGgtdDthc3NlcnRTaXplKHIsdCxlLmxlbmd0aCk7cmV0dXJuIGFjdHVhbEZpbGwoZSx0LHIpfX0sNDY0NjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtjb25zdCB0PXt9O2Z1bmN0aW9uIGNyZWF0ZUVycm9yVHlwZShlLHIsaSl7aWYoIWkpe2k9RXJyb3J9ZnVuY3Rpb24gZ2V0TWVzc2FnZShlLHQsaSl7aWYodHlwZW9mIHI9PT1cInN0cmluZ1wiKXtyZXR1cm4gcn1lbHNle3JldHVybiByKGUsdCxpKX19Y2xhc3MgTm9kZUVycm9yIGV4dGVuZHMgaXtjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZ2V0TWVzc2FnZShlLHQscikpfX1Ob2RlRXJyb3IucHJvdG90eXBlLm5hbWU9aS5uYW1lO05vZGVFcnJvci5wcm90b3R5cGUuY29kZT1lO3RbZV09Tm9kZUVycm9yfWZ1bmN0aW9uIG9uZU9mKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgcj1lLmxlbmd0aDtlPWUubWFwKChlPT5TdHJpbmcoZSkpKTtpZihyPjIpe3JldHVybmBvbmUgb2YgJHt0fSAke2Uuc2xpY2UoMCxyLTEpLmpvaW4oXCIsIFwiKX0sIG9yIGArZVtyLTFdfWVsc2UgaWYocj09PTIpe3JldHVybmBvbmUgb2YgJHt0fSAke2VbMF19IG9yICR7ZVsxXX1gfWVsc2V7cmV0dXJuYG9mICR7dH0gJHtlWzBdfWB9fWVsc2V7cmV0dXJuYG9mICR7dH0gJHtTdHJpbmcoZSl9YH19ZnVuY3Rpb24gc3RhcnRzV2l0aChlLHQscil7cmV0dXJuIGUuc3Vic3RyKCFyfHxyPDA/MDorcix0Lmxlbmd0aCk9PT10fWZ1bmN0aW9uIGVuZHNXaXRoKGUsdCxyKXtpZihyPT09dW5kZWZpbmVkfHxyPmUubGVuZ3RoKXtyPWUubGVuZ3RofXJldHVybiBlLnN1YnN0cmluZyhyLXQubGVuZ3RoLHIpPT09dH1mdW5jdGlvbiBpbmNsdWRlcyhlLHQscil7aWYodHlwZW9mIHIhPT1cIm51bWJlclwiKXtyPTB9aWYocit0Lmxlbmd0aD5lLmxlbmd0aCl7cmV0dXJuIGZhbHNlfWVsc2V7cmV0dXJuIGUuaW5kZXhPZih0LHIpIT09LTF9fWNyZWF0ZUVycm9yVHlwZShcIkVSUl9JTlZBTElEX09QVF9WQUxVRVwiLChmdW5jdGlvbihlLHQpe3JldHVybidUaGUgdmFsdWUgXCInK3QrJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcIicrZSsnXCInfSksVHlwZUVycm9yKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfSU5WQUxJRF9BUkdfVFlQRVwiLChmdW5jdGlvbihlLHQscil7bGV0IGk7aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiJiZzdGFydHNXaXRoKHQsXCJub3QgXCIpKXtpPVwibXVzdCBub3QgYmVcIjt0PXQucmVwbGFjZSgvXm5vdCAvLFwiXCIpfWVsc2V7aT1cIm11c3QgYmVcIn1sZXQgbjtpZihlbmRzV2l0aChlLFwiIGFyZ3VtZW50XCIpKXtuPWBUaGUgJHtlfSAke2l9ICR7b25lT2YodCxcInR5cGVcIil9YH1lbHNle2NvbnN0IHI9aW5jbHVkZXMoZSxcIi5cIik/XCJwcm9wZXJ0eVwiOlwiYXJndW1lbnRcIjtuPWBUaGUgXCIke2V9XCIgJHtyfSAke2l9ICR7b25lT2YodCxcInR5cGVcIil9YH1uKz1gLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIHJ9YDtyZXR1cm4gbn0pLFR5cGVFcnJvcik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRlwiLFwic3RyZWFtLnB1c2goKSBhZnRlciBFT0ZcIik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URURcIiwoZnVuY3Rpb24oZSl7cmV0dXJuXCJUaGUgXCIrZStcIiBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkXCJ9KSk7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0VcIixcIlByZW1hdHVyZSBjbG9zZVwiKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX0RFU1RST1lFRFwiLChmdW5jdGlvbihlKXtyZXR1cm5cIkNhbm5vdCBjYWxsIFwiK2UrXCIgYWZ0ZXIgYSBzdHJlYW0gd2FzIGRlc3Ryb3llZFwifSkpO2NyZWF0ZUVycm9yVHlwZShcIkVSUl9NVUxUSVBMRV9DQUxMQkFDS1wiLFwiQ2FsbGJhY2sgY2FsbGVkIG11bHRpcGxlIHRpbWVzXCIpO2NyZWF0ZUVycm9yVHlwZShcIkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEVcIixcIkNhbm5vdCBwaXBlLCBub3QgcmVhZGFibGVcIik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkRcIixcIndyaXRlIGFmdGVyIGVuZFwiKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX05VTExfVkFMVUVTXCIsXCJNYXkgbm90IHdyaXRlIG51bGwgdmFsdWVzIHRvIHN0cmVhbVwiLFR5cGVFcnJvcik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1VOS05PV05fRU5DT0RJTkdcIiwoZnVuY3Rpb24oZSl7cmV0dXJuXCJVbmtub3duIGVuY29kaW5nOiBcIitlfSksVHlwZUVycm9yKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UXCIsXCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudFwiKTtlLmV4cG9ydHMucT10fSwyNDAzOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7dmFyIHQ9W107Zm9yKHZhciByIGluIGUpe3QucHVzaChyKX1yZXR1cm4gdH07ZS5leHBvcnRzPUR1cGxleDt2YXIgbj1yKDE3MDkpO3ZhciBhPXIoNzMzNyk7cigzNzgyKShEdXBsZXgsbik7e3ZhciBzPWkoYS5wcm90b3R5cGUpO2Zvcih2YXIgbz0wO288cy5sZW5ndGg7bysrKXt2YXIgaD1zW29dO2lmKCFEdXBsZXgucHJvdG90eXBlW2hdKUR1cGxleC5wcm90b3R5cGVbaF09YS5wcm90b3R5cGVbaF19fWZ1bmN0aW9uIER1cGxleChlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBEdXBsZXgpKXJldHVybiBuZXcgRHVwbGV4KGUpO24uY2FsbCh0aGlzLGUpO2EuY2FsbCh0aGlzLGUpO3RoaXMuYWxsb3dIYWxmT3Blbj10cnVlO2lmKGUpe2lmKGUucmVhZGFibGU9PT1mYWxzZSl0aGlzLnJlYWRhYmxlPWZhbHNlO2lmKGUud3JpdGFibGU9PT1mYWxzZSl0aGlzLndyaXRhYmxlPWZhbHNlO2lmKGUuYWxsb3dIYWxmT3Blbj09PWZhbHNlKXt0aGlzLmFsbG93SGFsZk9wZW49ZmFsc2U7dGhpcy5vbmNlKFwiZW5kXCIsb25lbmQpfX19T2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsXCJ3cml0YWJsZUhpZ2hXYXRlck1hcmtcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSxcIndyaXRhYmxlQnVmZmVyXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLFwid3JpdGFibGVMZW5ndGhcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pO2Z1bmN0aW9uIG9uZW5kKCl7aWYodGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZClyZXR1cm47cHJvY2Vzcy5uZXh0VGljayhvbkVuZE5ULHRoaXMpfWZ1bmN0aW9uIG9uRW5kTlQoZSl7ZS5lbmQoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSxcImRlc3Ryb3llZFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlPT09dW5kZWZpbmVkfHx0aGlzLl93cml0YWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uIHNldChlKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlPT09dW5kZWZpbmVkfHx0aGlzLl93cml0YWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm59dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZTt0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1lfX0pfSw3ODg5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9UGFzc1Rocm91Z2g7dmFyIGk9cigxMTcwKTtyKDM3ODIpKFBhc3NUaHJvdWdoLGkpO2Z1bmN0aW9uIFBhc3NUaHJvdWdoKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFBhc3NUaHJvdWdoKSlyZXR1cm4gbmV3IFBhc3NUaHJvdWdoKGUpO2kuY2FsbCh0aGlzLGUpfVBhc3NUaHJvdWdoLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKGUsdCxyKXtyKG51bGwsZSl9fSwxNzA5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9UmVhZGFibGU7dmFyIGk7UmVhZGFibGUuUmVhZGFibGVTdGF0ZT1SZWFkYWJsZVN0YXRlO3ZhciBuPXIoMjM2MSkuRXZlbnRFbWl0dGVyO3ZhciBhPWZ1bmN0aW9uIEVFbGlzdGVuZXJDb3VudChlLHQpe3JldHVybiBlLmxpc3RlbmVycyh0KS5sZW5ndGh9O3ZhciBzPXIoNDY3OCk7dmFyIG89cig0MzAwKS5CdWZmZXI7dmFyIGg9Z2xvYmFsLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGUpe3JldHVybiBvLmZyb20oZSl9ZnVuY3Rpb24gX2lzVWludDhBcnJheShlKXtyZXR1cm4gby5pc0J1ZmZlcihlKXx8ZSBpbnN0YW5jZW9mIGh9dmFyIHU9cigzODM3KTt2YXIgZDtpZih1JiZ1LmRlYnVnbG9nKXtkPXUuZGVidWdsb2coXCJzdHJlYW1cIil9ZWxzZXtkPWZ1bmN0aW9uIGRlYnVnKCl7fX12YXIgYz1yKDQzNzkpO3ZhciBsPXIoNzAyNSk7dmFyIHA9cig2Nzc2KSx2PXAuZ2V0SGlnaFdhdGVyTWFyazt2YXIgYj1yKDQ2NDYpLnEsbT1iLkVSUl9JTlZBTElEX0FSR19UWVBFLHk9Yi5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLGc9Yi5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxfPWIuRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVDt2YXIgdzt2YXIgTTt2YXIgQjtyKDM3ODIpKFJlYWRhYmxlLHMpO3ZhciBFPWwuZXJyb3JPckRlc3Ryb3k7dmFyIGs9W1wiZXJyb3JcIixcImNsb3NlXCIsXCJkZXN0cm95XCIsXCJwYXVzZVwiLFwicmVzdW1lXCJdO2Z1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihlLHQscil7aWYodHlwZW9mIGUucHJlcGVuZExpc3RlbmVyPT09XCJmdW5jdGlvblwiKXJldHVybiBlLnByZXBlbmRMaXN0ZW5lcih0LHIpO2lmKCFlLl9ldmVudHN8fCFlLl9ldmVudHNbdF0pZS5vbih0LHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLl9ldmVudHNbdF0pKWUuX2V2ZW50c1t0XS51bnNoaWZ0KHIpO2Vsc2UgZS5fZXZlbnRzW3RdPVtyLGUuX2V2ZW50c1t0XV19ZnVuY3Rpb24gUmVhZGFibGVTdGF0ZShlLHQsbil7aT1pfHxyKDI0MDMpO2U9ZXx8e307aWYodHlwZW9mIG4hPT1cImJvb2xlYW5cIiluPXQgaW5zdGFuY2VvZiBpO3RoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZTtpZihuKXRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhZS5yZWFkYWJsZU9iamVjdE1vZGU7dGhpcy5oaWdoV2F0ZXJNYXJrPXYodGhpcyxlLFwicmVhZGFibGVIaWdoV2F0ZXJNYXJrXCIsbik7dGhpcy5idWZmZXI9bmV3IGM7dGhpcy5sZW5ndGg9MDt0aGlzLnBpcGVzPW51bGw7dGhpcy5waXBlc0NvdW50PTA7dGhpcy5mbG93aW5nPW51bGw7dGhpcy5lbmRlZD1mYWxzZTt0aGlzLmVuZEVtaXR0ZWQ9ZmFsc2U7dGhpcy5yZWFkaW5nPWZhbHNlO3RoaXMuc3luYz10cnVlO3RoaXMubmVlZFJlYWRhYmxlPWZhbHNlO3RoaXMuZW1pdHRlZFJlYWRhYmxlPWZhbHNlO3RoaXMucmVhZGFibGVMaXN0ZW5pbmc9ZmFsc2U7dGhpcy5yZXN1bWVTY2hlZHVsZWQ9ZmFsc2U7dGhpcy5wYXVzZWQ9dHJ1ZTt0aGlzLmVtaXRDbG9zZT1lLmVtaXRDbG9zZSE9PWZhbHNlO3RoaXMuYXV0b0Rlc3Ryb3k9ISFlLmF1dG9EZXN0cm95O3RoaXMuZGVzdHJveWVkPWZhbHNlO3RoaXMuZGVmYXVsdEVuY29kaW5nPWUuZGVmYXVsdEVuY29kaW5nfHxcInV0ZjhcIjt0aGlzLmF3YWl0RHJhaW49MDt0aGlzLnJlYWRpbmdNb3JlPWZhbHNlO3RoaXMuZGVjb2Rlcj1udWxsO3RoaXMuZW5jb2Rpbmc9bnVsbDtpZihlLmVuY29kaW5nKXtpZighdyl3PXIoMzcwNCkuczt0aGlzLmRlY29kZXI9bmV3IHcoZS5lbmNvZGluZyk7dGhpcy5lbmNvZGluZz1lLmVuY29kaW5nfX1mdW5jdGlvbiBSZWFkYWJsZShlKXtpPWl8fHIoMjQwMyk7aWYoISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKXJldHVybiBuZXcgUmVhZGFibGUoZSk7dmFyIHQ9dGhpcyBpbnN0YW5jZW9mIGk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgUmVhZGFibGVTdGF0ZShlLHRoaXMsdCk7dGhpcy5yZWFkYWJsZT10cnVlO2lmKGUpe2lmKHR5cGVvZiBlLnJlYWQ9PT1cImZ1bmN0aW9uXCIpdGhpcy5fcmVhZD1lLnJlYWQ7aWYodHlwZW9mIGUuZGVzdHJveT09PVwiZnVuY3Rpb25cIil0aGlzLl9kZXN0cm95PWUuZGVzdHJveX1zLmNhbGwodGhpcyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSxcImRlc3Ryb3llZFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KGUpe2lmKCF0aGlzLl9yZWFkYWJsZVN0YXRlKXtyZXR1cm59dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZX19KTtSZWFkYWJsZS5wcm90b3R5cGUuZGVzdHJveT1sLmRlc3Ryb3k7UmVhZGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3k9bC51bmRlc3Ryb3k7UmVhZGFibGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGUsdCl7dChlKX07UmVhZGFibGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9yZWFkYWJsZVN0YXRlO3ZhciBpO2lmKCFyLm9iamVjdE1vZGUpe2lmKHR5cGVvZiBlPT09XCJzdHJpbmdcIil7dD10fHxyLmRlZmF1bHRFbmNvZGluZztpZih0IT09ci5lbmNvZGluZyl7ZT1vLmZyb20oZSx0KTt0PVwiXCJ9aT10cnVlfX1lbHNle2k9dHJ1ZX1yZXR1cm4gcmVhZGFibGVBZGRDaHVuayh0aGlzLGUsdCxmYWxzZSxpKX07UmVhZGFibGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcyxlLG51bGwsdHJ1ZSxmYWxzZSl9O2Z1bmN0aW9uIHJlYWRhYmxlQWRkQ2h1bmsoZSx0LHIsaSxuKXtkKFwicmVhZGFibGVBZGRDaHVua1wiLHQpO3ZhciBhPWUuX3JlYWRhYmxlU3RhdGU7aWYodD09PW51bGwpe2EucmVhZGluZz1mYWxzZTtvbkVvZkNodW5rKGUsYSl9ZWxzZXt2YXIgcztpZighbilzPWNodW5rSW52YWxpZChhLHQpO2lmKHMpe0UoZSxzKX1lbHNlIGlmKGEub2JqZWN0TW9kZXx8dCYmdC5sZW5ndGg+MCl7aWYodHlwZW9mIHQhPT1cInN0cmluZ1wiJiYhYS5vYmplY3RNb2RlJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkhPT1vLnByb3RvdHlwZSl7dD1fdWludDhBcnJheVRvQnVmZmVyKHQpfWlmKGkpe2lmKGEuZW5kRW1pdHRlZClFKGUsbmV3IF8pO2Vsc2UgYWRkQ2h1bmsoZSxhLHQsdHJ1ZSl9ZWxzZSBpZihhLmVuZGVkKXtFKGUsbmV3IHkpfWVsc2UgaWYoYS5kZXN0cm95ZWQpe3JldHVybiBmYWxzZX1lbHNle2EucmVhZGluZz1mYWxzZTtpZihhLmRlY29kZXImJiFyKXt0PWEuZGVjb2Rlci53cml0ZSh0KTtpZihhLm9iamVjdE1vZGV8fHQubGVuZ3RoIT09MClhZGRDaHVuayhlLGEsdCxmYWxzZSk7ZWxzZSBtYXliZVJlYWRNb3JlKGUsYSl9ZWxzZXthZGRDaHVuayhlLGEsdCxmYWxzZSl9fX1lbHNlIGlmKCFpKXthLnJlYWRpbmc9ZmFsc2U7bWF5YmVSZWFkTW9yZShlLGEpfX1yZXR1cm4hYS5lbmRlZCYmKGEubGVuZ3RoPGEuaGlnaFdhdGVyTWFya3x8YS5sZW5ndGg9PT0wKX1mdW5jdGlvbiBhZGRDaHVuayhlLHQscixpKXtpZih0LmZsb3dpbmcmJnQubGVuZ3RoPT09MCYmIXQuc3luYyl7dC5hd2FpdERyYWluPTA7ZS5lbWl0KFwiZGF0YVwiLHIpfWVsc2V7dC5sZW5ndGgrPXQub2JqZWN0TW9kZT8xOnIubGVuZ3RoO2lmKGkpdC5idWZmZXIudW5zaGlmdChyKTtlbHNlIHQuYnVmZmVyLnB1c2gocik7aWYodC5uZWVkUmVhZGFibGUpZW1pdFJlYWRhYmxlKGUpfW1heWJlUmVhZE1vcmUoZSx0KX1mdW5jdGlvbiBjaHVua0ludmFsaWQoZSx0KXt2YXIgcjtpZighX2lzVWludDhBcnJheSh0KSYmdHlwZW9mIHQhPT1cInN0cmluZ1wiJiZ0IT09dW5kZWZpbmVkJiYhZS5vYmplY3RNb2RlKXtyPW5ldyBtKFwiY2h1bmtcIixbXCJzdHJpbmdcIixcIkJ1ZmZlclwiLFwiVWludDhBcnJheVwiXSx0KX1yZXR1cm4gcn1SZWFkYWJsZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPT09ZmFsc2V9O1JlYWRhYmxlLnByb3RvdHlwZS5zZXRFbmNvZGluZz1mdW5jdGlvbihlKXtpZighdyl3PXIoMzcwNCkuczt2YXIgdD1uZXcgdyhlKTt0aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXI9dDt0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlci5lbmNvZGluZzt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5oZWFkO3ZhciBuPVwiXCI7d2hpbGUoaSE9PW51bGwpe24rPXQud3JpdGUoaS5kYXRhKTtpPWkubmV4dH10aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpO2lmKG4hPT1cIlwiKXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2gobik7dGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGg9bi5sZW5ndGg7cmV0dXJuIHRoaXN9O3ZhciBBPTEwNzM3NDE4MjQ7ZnVuY3Rpb24gY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsoZSl7aWYoZT49QSl7ZT1BfWVsc2V7ZS0tO2V8PWU+Pj4xO2V8PWU+Pj4yO2V8PWU+Pj40O2V8PWU+Pj44O2V8PWU+Pj4xNjtlKyt9cmV0dXJuIGV9ZnVuY3Rpb24gaG93TXVjaFRvUmVhZChlLHQpe2lmKGU8PTB8fHQubGVuZ3RoPT09MCYmdC5lbmRlZClyZXR1cm4gMDtpZih0Lm9iamVjdE1vZGUpcmV0dXJuIDE7aWYoZSE9PWUpe2lmKHQuZmxvd2luZyYmdC5sZW5ndGgpcmV0dXJuIHQuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg7ZWxzZSByZXR1cm4gdC5sZW5ndGh9aWYoZT50LmhpZ2hXYXRlck1hcmspdC5oaWdoV2F0ZXJNYXJrPWNvbXB1dGVOZXdIaWdoV2F0ZXJNYXJrKGUpO2lmKGU8PXQubGVuZ3RoKXJldHVybiBlO2lmKCF0LmVuZGVkKXt0Lm5lZWRSZWFkYWJsZT10cnVlO3JldHVybiAwfXJldHVybiB0Lmxlbmd0aH1SZWFkYWJsZS5wcm90b3R5cGUucmVhZD1mdW5jdGlvbihlKXtkKFwicmVhZFwiLGUpO2U9cGFyc2VJbnQoZSwxMCk7dmFyIHQ9dGhpcy5fcmVhZGFibGVTdGF0ZTt2YXIgcj1lO2lmKGUhPT0wKXQuZW1pdHRlZFJlYWRhYmxlPWZhbHNlO2lmKGU9PT0wJiZ0Lm5lZWRSZWFkYWJsZSYmKCh0LmhpZ2hXYXRlck1hcmshPT0wP3QubGVuZ3RoPj10LmhpZ2hXYXRlck1hcms6dC5sZW5ndGg+MCl8fHQuZW5kZWQpKXtkKFwicmVhZDogZW1pdFJlYWRhYmxlXCIsdC5sZW5ndGgsdC5lbmRlZCk7aWYodC5sZW5ndGg9PT0wJiZ0LmVuZGVkKWVuZFJlYWRhYmxlKHRoaXMpO2Vsc2UgZW1pdFJlYWRhYmxlKHRoaXMpO3JldHVybiBudWxsfWU9aG93TXVjaFRvUmVhZChlLHQpO2lmKGU9PT0wJiZ0LmVuZGVkKXtpZih0Lmxlbmd0aD09PTApZW5kUmVhZGFibGUodGhpcyk7cmV0dXJuIG51bGx9dmFyIGk9dC5uZWVkUmVhZGFibGU7ZChcIm5lZWQgcmVhZGFibGVcIixpKTtpZih0Lmxlbmd0aD09PTB8fHQubGVuZ3RoLWU8dC5oaWdoV2F0ZXJNYXJrKXtpPXRydWU7ZChcImxlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrXCIsaSl9aWYodC5lbmRlZHx8dC5yZWFkaW5nKXtpPWZhbHNlO2QoXCJyZWFkaW5nIG9yIGVuZGVkXCIsaSl9ZWxzZSBpZihpKXtkKFwiZG8gcmVhZFwiKTt0LnJlYWRpbmc9dHJ1ZTt0LnN5bmM9dHJ1ZTtpZih0Lmxlbmd0aD09PTApdC5uZWVkUmVhZGFibGU9dHJ1ZTt0aGlzLl9yZWFkKHQuaGlnaFdhdGVyTWFyayk7dC5zeW5jPWZhbHNlO2lmKCF0LnJlYWRpbmcpZT1ob3dNdWNoVG9SZWFkKHIsdCl9dmFyIG47aWYoZT4wKW49ZnJvbUxpc3QoZSx0KTtlbHNlIG49bnVsbDtpZihuPT09bnVsbCl7dC5uZWVkUmVhZGFibGU9dC5sZW5ndGg8PXQuaGlnaFdhdGVyTWFyaztlPTB9ZWxzZXt0Lmxlbmd0aC09ZTt0LmF3YWl0RHJhaW49MH1pZih0Lmxlbmd0aD09PTApe2lmKCF0LmVuZGVkKXQubmVlZFJlYWRhYmxlPXRydWU7aWYociE9PWUmJnQuZW5kZWQpZW5kUmVhZGFibGUodGhpcyl9aWYobiE9PW51bGwpdGhpcy5lbWl0KFwiZGF0YVwiLG4pO3JldHVybiBufTtmdW5jdGlvbiBvbkVvZkNodW5rKGUsdCl7ZChcIm9uRW9mQ2h1bmtcIik7aWYodC5lbmRlZClyZXR1cm47aWYodC5kZWNvZGVyKXt2YXIgcj10LmRlY29kZXIuZW5kKCk7aWYociYmci5sZW5ndGgpe3QuYnVmZmVyLnB1c2gocik7dC5sZW5ndGgrPXQub2JqZWN0TW9kZT8xOnIubGVuZ3RofX10LmVuZGVkPXRydWU7aWYodC5zeW5jKXtlbWl0UmVhZGFibGUoZSl9ZWxzZXt0Lm5lZWRSZWFkYWJsZT1mYWxzZTtpZighdC5lbWl0dGVkUmVhZGFibGUpe3QuZW1pdHRlZFJlYWRhYmxlPXRydWU7ZW1pdFJlYWRhYmxlXyhlKX19fWZ1bmN0aW9uIGVtaXRSZWFkYWJsZShlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2QoXCJlbWl0UmVhZGFibGVcIix0Lm5lZWRSZWFkYWJsZSx0LmVtaXR0ZWRSZWFkYWJsZSk7dC5uZWVkUmVhZGFibGU9ZmFsc2U7aWYoIXQuZW1pdHRlZFJlYWRhYmxlKXtkKFwiZW1pdFJlYWRhYmxlXCIsdC5mbG93aW5nKTt0LmVtaXR0ZWRSZWFkYWJsZT10cnVlO3Byb2Nlc3MubmV4dFRpY2soZW1pdFJlYWRhYmxlXyxlKX19ZnVuY3Rpb24gZW1pdFJlYWRhYmxlXyhlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2QoXCJlbWl0UmVhZGFibGVfXCIsdC5kZXN0cm95ZWQsdC5sZW5ndGgsdC5lbmRlZCk7aWYoIXQuZGVzdHJveWVkJiYodC5sZW5ndGh8fHQuZW5kZWQpKXtlLmVtaXQoXCJyZWFkYWJsZVwiKTt0LmVtaXR0ZWRSZWFkYWJsZT1mYWxzZX10Lm5lZWRSZWFkYWJsZT0hdC5mbG93aW5nJiYhdC5lbmRlZCYmdC5sZW5ndGg8PXQuaGlnaFdhdGVyTWFyaztmbG93KGUpfWZ1bmN0aW9uIG1heWJlUmVhZE1vcmUoZSx0KXtpZighdC5yZWFkaW5nTW9yZSl7dC5yZWFkaW5nTW9yZT10cnVlO3Byb2Nlc3MubmV4dFRpY2sobWF5YmVSZWFkTW9yZV8sZSx0KX19ZnVuY3Rpb24gbWF5YmVSZWFkTW9yZV8oZSx0KXt3aGlsZSghdC5yZWFkaW5nJiYhdC5lbmRlZCYmKHQubGVuZ3RoPHQuaGlnaFdhdGVyTWFya3x8dC5mbG93aW5nJiZ0Lmxlbmd0aD09PTApKXt2YXIgcj10Lmxlbmd0aDtkKFwibWF5YmVSZWFkTW9yZSByZWFkIDBcIik7ZS5yZWFkKDApO2lmKHI9PT10Lmxlbmd0aClicmVha310LnJlYWRpbmdNb3JlPWZhbHNlfVJlYWRhYmxlLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihlKXtFKHRoaXMsbmV3IGcoXCJfcmVhZCgpXCIpKX07UmVhZGFibGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzO3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKGkucGlwZXNDb3VudCl7Y2FzZSAwOmkucGlwZXM9ZTticmVhaztjYXNlIDE6aS5waXBlcz1baS5waXBlcyxlXTticmVhaztkZWZhdWx0OmkucGlwZXMucHVzaChlKTticmVha31pLnBpcGVzQ291bnQrPTE7ZChcInBpcGUgY291bnQ9JWQgb3B0cz0lalwiLGkucGlwZXNDb3VudCx0KTt2YXIgbj0oIXR8fHQuZW5kIT09ZmFsc2UpJiZlIT09cHJvY2Vzcy5zdGRvdXQmJmUhPT1wcm9jZXNzLnN0ZGVycjt2YXIgcz1uP29uZW5kOnVucGlwZTtpZihpLmVuZEVtaXR0ZWQpcHJvY2Vzcy5uZXh0VGljayhzKTtlbHNlIHIub25jZShcImVuZFwiLHMpO2Uub24oXCJ1bnBpcGVcIixvbnVucGlwZSk7ZnVuY3Rpb24gb251bnBpcGUoZSx0KXtkKFwib251bnBpcGVcIik7aWYoZT09PXIpe2lmKHQmJnQuaGFzVW5waXBlZD09PWZhbHNlKXt0Lmhhc1VucGlwZWQ9dHJ1ZTtjbGVhbnVwKCl9fX1mdW5jdGlvbiBvbmVuZCgpe2QoXCJvbmVuZFwiKTtlLmVuZCgpfXZhciBvPXBpcGVPbkRyYWluKHIpO2Uub24oXCJkcmFpblwiLG8pO3ZhciBoPWZhbHNlO2Z1bmN0aW9uIGNsZWFudXAoKXtkKFwiY2xlYW51cFwiKTtlLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIixvbmNsb3NlKTtlLnJlbW92ZUxpc3RlbmVyKFwiZmluaXNoXCIsb25maW5pc2gpO2UucmVtb3ZlTGlzdGVuZXIoXCJkcmFpblwiLG8pO2UucmVtb3ZlTGlzdGVuZXIoXCJlcnJvclwiLG9uZXJyb3IpO2UucmVtb3ZlTGlzdGVuZXIoXCJ1bnBpcGVcIixvbnVucGlwZSk7ci5yZW1vdmVMaXN0ZW5lcihcImVuZFwiLG9uZW5kKTtyLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIsdW5waXBlKTtyLnJlbW92ZUxpc3RlbmVyKFwiZGF0YVwiLG9uZGF0YSk7aD10cnVlO2lmKGkuYXdhaXREcmFpbiYmKCFlLl93cml0YWJsZVN0YXRlfHxlLl93cml0YWJsZVN0YXRlLm5lZWREcmFpbikpbygpfXIub24oXCJkYXRhXCIsb25kYXRhKTtmdW5jdGlvbiBvbmRhdGEodCl7ZChcIm9uZGF0YVwiKTt2YXIgbj1lLndyaXRlKHQpO2QoXCJkZXN0LndyaXRlXCIsbik7aWYobj09PWZhbHNlKXtpZigoaS5waXBlc0NvdW50PT09MSYmaS5waXBlcz09PWV8fGkucGlwZXNDb3VudD4xJiZpbmRleE9mKGkucGlwZXMsZSkhPT0tMSkmJiFoKXtkKFwiZmFsc2Ugd3JpdGUgcmVzcG9uc2UsIHBhdXNlXCIsaS5hd2FpdERyYWluKTtpLmF3YWl0RHJhaW4rK31yLnBhdXNlKCl9fWZ1bmN0aW9uIG9uZXJyb3IodCl7ZChcIm9uZXJyb3JcIix0KTt1bnBpcGUoKTtlLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIixvbmVycm9yKTtpZihhKGUsXCJlcnJvclwiKT09PTApRShlLHQpfXByZXBlbmRMaXN0ZW5lcihlLFwiZXJyb3JcIixvbmVycm9yKTtmdW5jdGlvbiBvbmNsb3NlKCl7ZS5yZW1vdmVMaXN0ZW5lcihcImZpbmlzaFwiLG9uZmluaXNoKTt1bnBpcGUoKX1lLm9uY2UoXCJjbG9zZVwiLG9uY2xvc2UpO2Z1bmN0aW9uIG9uZmluaXNoKCl7ZChcIm9uZmluaXNoXCIpO2UucmVtb3ZlTGlzdGVuZXIoXCJjbG9zZVwiLG9uY2xvc2UpO3VucGlwZSgpfWUub25jZShcImZpbmlzaFwiLG9uZmluaXNoKTtmdW5jdGlvbiB1bnBpcGUoKXtkKFwidW5waXBlXCIpO3IudW5waXBlKGUpfWUuZW1pdChcInBpcGVcIixyKTtpZighaS5mbG93aW5nKXtkKFwicGlwZSByZXN1bWVcIik7ci5yZXN1bWUoKX1yZXR1cm4gZX07ZnVuY3Rpb24gcGlwZU9uRHJhaW4oZSl7cmV0dXJuIGZ1bmN0aW9uIHBpcGVPbkRyYWluRnVuY3Rpb25SZXN1bHQoKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2QoXCJwaXBlT25EcmFpblwiLHQuYXdhaXREcmFpbik7aWYodC5hd2FpdERyYWluKXQuYXdhaXREcmFpbi0tO2lmKHQuYXdhaXREcmFpbj09PTAmJmEoZSxcImRhdGFcIikpe3QuZmxvd2luZz10cnVlO2Zsb3coZSl9fX1SZWFkYWJsZS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3JlYWRhYmxlU3RhdGU7dmFyIHI9e2hhc1VucGlwZWQ6ZmFsc2V9O2lmKHQucGlwZXNDb3VudD09PTApcmV0dXJuIHRoaXM7aWYodC5waXBlc0NvdW50PT09MSl7aWYoZSYmZSE9PXQucGlwZXMpcmV0dXJuIHRoaXM7aWYoIWUpZT10LnBpcGVzO3QucGlwZXM9bnVsbDt0LnBpcGVzQ291bnQ9MDt0LmZsb3dpbmc9ZmFsc2U7aWYoZSllLmVtaXQoXCJ1bnBpcGVcIix0aGlzLHIpO3JldHVybiB0aGlzfWlmKCFlKXt2YXIgaT10LnBpcGVzO3ZhciBuPXQucGlwZXNDb3VudDt0LnBpcGVzPW51bGw7dC5waXBlc0NvdW50PTA7dC5mbG93aW5nPWZhbHNlO2Zvcih2YXIgYT0wO2E8bjthKyspe2lbYV0uZW1pdChcInVucGlwZVwiLHRoaXMse2hhc1VucGlwZWQ6ZmFsc2V9KX1yZXR1cm4gdGhpc312YXIgcz1pbmRleE9mKHQucGlwZXMsZSk7aWYocz09PS0xKXJldHVybiB0aGlzO3QucGlwZXMuc3BsaWNlKHMsMSk7dC5waXBlc0NvdW50LT0xO2lmKHQucGlwZXNDb3VudD09PTEpdC5waXBlcz10LnBpcGVzWzBdO2UuZW1pdChcInVucGlwZVwiLHRoaXMscik7cmV0dXJuIHRoaXN9O1JlYWRhYmxlLnByb3RvdHlwZS5vbj1mdW5jdGlvbihlLHQpe3ZhciByPXMucHJvdG90eXBlLm9uLmNhbGwodGhpcyxlLHQpO3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7aWYoZT09PVwiZGF0YVwiKXtpLnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMubGlzdGVuZXJDb3VudChcInJlYWRhYmxlXCIpPjA7aWYoaS5mbG93aW5nIT09ZmFsc2UpdGhpcy5yZXN1bWUoKX1lbHNlIGlmKGU9PT1cInJlYWRhYmxlXCIpe2lmKCFpLmVuZEVtaXR0ZWQmJiFpLnJlYWRhYmxlTGlzdGVuaW5nKXtpLnJlYWRhYmxlTGlzdGVuaW5nPWkubmVlZFJlYWRhYmxlPXRydWU7aS5mbG93aW5nPWZhbHNlO2kuZW1pdHRlZFJlYWRhYmxlPWZhbHNlO2QoXCJvbiByZWFkYWJsZVwiLGkubGVuZ3RoLGkucmVhZGluZyk7aWYoaS5sZW5ndGgpe2VtaXRSZWFkYWJsZSh0aGlzKX1lbHNlIGlmKCFpLnJlYWRpbmcpe3Byb2Nlc3MubmV4dFRpY2soblJlYWRpbmdOZXh0VGljayx0aGlzKX19fXJldHVybiByfTtSZWFkYWJsZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9UmVhZGFibGUucHJvdG90eXBlLm9uO1JlYWRhYmxlLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3ZhciByPXMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyxlLHQpO2lmKGU9PT1cInJlYWRhYmxlXCIpe3Byb2Nlc3MubmV4dFRpY2sodXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcsdGhpcyl9cmV0dXJuIHJ9O1JlYWRhYmxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7dmFyIHQ9cy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihlPT09XCJyZWFkYWJsZVwifHxlPT09dW5kZWZpbmVkKXtwcm9jZXNzLm5leHRUaWNrKHVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nLHRoaXMpfXJldHVybiB0fTtmdW5jdGlvbiB1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyhlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO3QucmVhZGFibGVMaXN0ZW5pbmc9ZS5saXN0ZW5lckNvdW50KFwicmVhZGFibGVcIik+MDtpZih0LnJlc3VtZVNjaGVkdWxlZCYmIXQucGF1c2VkKXt0LmZsb3dpbmc9dHJ1ZX1lbHNlIGlmKGUubGlzdGVuZXJDb3VudChcImRhdGFcIik+MCl7ZS5yZXN1bWUoKX19ZnVuY3Rpb24gblJlYWRpbmdOZXh0VGljayhlKXtkKFwicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwXCIpO2UucmVhZCgwKX1SZWFkYWJsZS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZTtpZighZS5mbG93aW5nKXtkKFwicmVzdW1lXCIpO2UuZmxvd2luZz0hZS5yZWFkYWJsZUxpc3RlbmluZztyZXN1bWUodGhpcyxlKX1lLnBhdXNlZD1mYWxzZTtyZXR1cm4gdGhpc307ZnVuY3Rpb24gcmVzdW1lKGUsdCl7aWYoIXQucmVzdW1lU2NoZWR1bGVkKXt0LnJlc3VtZVNjaGVkdWxlZD10cnVlO3Byb2Nlc3MubmV4dFRpY2socmVzdW1lXyxlLHQpfX1mdW5jdGlvbiByZXN1bWVfKGUsdCl7ZChcInJlc3VtZVwiLHQucmVhZGluZyk7aWYoIXQucmVhZGluZyl7ZS5yZWFkKDApfXQucmVzdW1lU2NoZWR1bGVkPWZhbHNlO2UuZW1pdChcInJlc3VtZVwiKTtmbG93KGUpO2lmKHQuZmxvd2luZyYmIXQucmVhZGluZyllLnJlYWQoMCl9UmVhZGFibGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7ZChcImNhbGwgcGF1c2UgZmxvd2luZz0lalwiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyk7aWYodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nIT09ZmFsc2Upe2QoXCJwYXVzZVwiKTt0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ZmFsc2U7dGhpcy5lbWl0KFwicGF1c2VcIil9dGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9dHJ1ZTtyZXR1cm4gdGhpc307ZnVuY3Rpb24gZmxvdyhlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2QoXCJmbG93XCIsdC5mbG93aW5nKTt3aGlsZSh0LmZsb3dpbmcmJmUucmVhZCgpIT09bnVsbCl7fX1SZWFkYWJsZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3ZhciByPXRoaXMuX3JlYWRhYmxlU3RhdGU7dmFyIGk9ZmFsc2U7ZS5vbihcImVuZFwiLChmdW5jdGlvbigpe2QoXCJ3cmFwcGVkIGVuZFwiKTtpZihyLmRlY29kZXImJiFyLmVuZGVkKXt2YXIgZT1yLmRlY29kZXIuZW5kKCk7aWYoZSYmZS5sZW5ndGgpdC5wdXNoKGUpfXQucHVzaChudWxsKX0pKTtlLm9uKFwiZGF0YVwiLChmdW5jdGlvbihuKXtkKFwid3JhcHBlZCBkYXRhXCIpO2lmKHIuZGVjb2RlciluPXIuZGVjb2Rlci53cml0ZShuKTtpZihyLm9iamVjdE1vZGUmJihuPT09bnVsbHx8bj09PXVuZGVmaW5lZCkpcmV0dXJuO2Vsc2UgaWYoIXIub2JqZWN0TW9kZSYmKCFufHwhbi5sZW5ndGgpKXJldHVybjt2YXIgYT10LnB1c2gobik7aWYoIWEpe2k9dHJ1ZTtlLnBhdXNlKCl9fSkpO2Zvcih2YXIgbiBpbiBlKXtpZih0aGlzW25dPT09dW5kZWZpbmVkJiZ0eXBlb2YgZVtuXT09PVwiZnVuY3Rpb25cIil7dGhpc1tuXT1mdW5jdGlvbiBtZXRob2RXcmFwKHQpe3JldHVybiBmdW5jdGlvbiBtZXRob2RXcmFwUmV0dXJuRnVuY3Rpb24oKXtyZXR1cm4gZVt0XS5hcHBseShlLGFyZ3VtZW50cyl9fShuKX19Zm9yKHZhciBhPTA7YTxrLmxlbmd0aDthKyspe2Uub24oa1thXSx0aGlzLmVtaXQuYmluZCh0aGlzLGtbYV0pKX10aGlzLl9yZWFkPWZ1bmN0aW9uKHQpe2QoXCJ3cmFwcGVkIF9yZWFkXCIsdCk7aWYoaSl7aT1mYWxzZTtlLnJlc3VtZSgpfX07cmV0dXJuIHRoaXN9O2lmKHR5cGVvZiBTeW1ib2w9PT1cImZ1bmN0aW9uXCIpe1JlYWRhYmxlLnByb3RvdHlwZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtpZihNPT09dW5kZWZpbmVkKXtNPXIoNjg3MSl9cmV0dXJuIE0odGhpcyl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsXCJyZWFkYWJsZUhpZ2hXYXRlck1hcmtcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLFwicmVhZGFibGVCdWZmZXJcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsXCJyZWFkYWJsZUZsb3dpbmdcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sc2V0OmZ1bmN0aW9uIHNldChlKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlKXt0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ZX19fSk7UmVhZGFibGUuX2Zyb21MaXN0PWZyb21MaXN0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsXCJyZWFkYWJsZUxlbmd0aFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGh9fSk7ZnVuY3Rpb24gZnJvbUxpc3QoZSx0KXtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7dmFyIHI7aWYodC5vYmplY3RNb2RlKXI9dC5idWZmZXIuc2hpZnQoKTtlbHNlIGlmKCFlfHxlPj10Lmxlbmd0aCl7aWYodC5kZWNvZGVyKXI9dC5idWZmZXIuam9pbihcIlwiKTtlbHNlIGlmKHQuYnVmZmVyLmxlbmd0aD09PTEpcj10LmJ1ZmZlci5maXJzdCgpO2Vsc2Ugcj10LmJ1ZmZlci5jb25jYXQodC5sZW5ndGgpO3QuYnVmZmVyLmNsZWFyKCl9ZWxzZXtyPXQuYnVmZmVyLmNvbnN1bWUoZSx0LmRlY29kZXIpfXJldHVybiByfWZ1bmN0aW9uIGVuZFJlYWRhYmxlKGUpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7ZChcImVuZFJlYWRhYmxlXCIsdC5lbmRFbWl0dGVkKTtpZighdC5lbmRFbWl0dGVkKXt0LmVuZGVkPXRydWU7cHJvY2Vzcy5uZXh0VGljayhlbmRSZWFkYWJsZU5ULHQsZSl9fWZ1bmN0aW9uIGVuZFJlYWRhYmxlTlQoZSx0KXtkKFwiZW5kUmVhZGFibGVOVFwiLGUuZW5kRW1pdHRlZCxlLmxlbmd0aCk7aWYoIWUuZW5kRW1pdHRlZCYmZS5sZW5ndGg9PT0wKXtlLmVuZEVtaXR0ZWQ9dHJ1ZTt0LnJlYWRhYmxlPWZhbHNlO3QuZW1pdChcImVuZFwiKTtpZihlLmF1dG9EZXN0cm95KXt2YXIgcj10Ll93cml0YWJsZVN0YXRlO2lmKCFyfHxyLmF1dG9EZXN0cm95JiZyLmZpbmlzaGVkKXt0LmRlc3Ryb3koKX19fX1pZih0eXBlb2YgU3ltYm9sPT09XCJmdW5jdGlvblwiKXtSZWFkYWJsZS5mcm9tPWZ1bmN0aW9uKGUsdCl7aWYoQj09PXVuZGVmaW5lZCl7Qj1yKDk3MjcpfXJldHVybiBCKFJlYWRhYmxlLGUsdCl9fWZ1bmN0aW9uIGluZGV4T2YoZSx0KXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe2lmKGVbcl09PT10KXJldHVybiByfXJldHVybi0xfX0sMTE3MDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPVRyYW5zZm9ybTt2YXIgaT1yKDQ2NDYpLnEsbj1pLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELGE9aS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0sscz1pLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsbz1pLkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMDt2YXIgaD1yKDI0MDMpO3IoMzc4MikoVHJhbnNmb3JtLGgpO2Z1bmN0aW9uIGFmdGVyVHJhbnNmb3JtKGUsdCl7dmFyIHI9dGhpcy5fdHJhbnNmb3JtU3RhdGU7ci50cmFuc2Zvcm1pbmc9ZmFsc2U7dmFyIGk9ci53cml0ZWNiO2lmKGk9PT1udWxsKXtyZXR1cm4gdGhpcy5lbWl0KFwiZXJyb3JcIixuZXcgYSl9ci53cml0ZWNodW5rPW51bGw7ci53cml0ZWNiPW51bGw7aWYodCE9bnVsbCl0aGlzLnB1c2godCk7aShlKTt2YXIgbj10aGlzLl9yZWFkYWJsZVN0YXRlO24ucmVhZGluZz1mYWxzZTtpZihuLm5lZWRSZWFkYWJsZXx8bi5sZW5ndGg8bi5oaWdoV2F0ZXJNYXJrKXt0aGlzLl9yZWFkKG4uaGlnaFdhdGVyTWFyayl9fWZ1bmN0aW9uIFRyYW5zZm9ybShlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBUcmFuc2Zvcm0pKXJldHVybiBuZXcgVHJhbnNmb3JtKGUpO2guY2FsbCh0aGlzLGUpO3RoaXMuX3RyYW5zZm9ybVN0YXRlPXthZnRlclRyYW5zZm9ybTphZnRlclRyYW5zZm9ybS5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ZmFsc2UsdHJhbnNmb3JtaW5nOmZhbHNlLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfTt0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT10cnVlO3RoaXMuX3JlYWRhYmxlU3RhdGUuc3luYz1mYWxzZTtpZihlKXtpZih0eXBlb2YgZS50cmFuc2Zvcm09PT1cImZ1bmN0aW9uXCIpdGhpcy5fdHJhbnNmb3JtPWUudHJhbnNmb3JtO2lmKHR5cGVvZiBlLmZsdXNoPT09XCJmdW5jdGlvblwiKXRoaXMuX2ZsdXNoPWUuZmx1c2h9dGhpcy5vbihcInByZWZpbmlzaFwiLHByZWZpbmlzaCl9ZnVuY3Rpb24gcHJlZmluaXNoKCl7dmFyIGU9dGhpcztpZih0eXBlb2YgdGhpcy5fZmx1c2g9PT1cImZ1bmN0aW9uXCImJiF0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCl7dGhpcy5fZmx1c2goKGZ1bmN0aW9uKHQscil7ZG9uZShlLHQscil9KSl9ZWxzZXtkb25lKHRoaXMsbnVsbCxudWxsKX19VHJhbnNmb3JtLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGUsdCl7dGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT1mYWxzZTtyZXR1cm4gaC5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsZSx0KX07VHJhbnNmb3JtLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKGUsdCxyKXtyKG5ldyBuKFwiX3RyYW5zZm9ybSgpXCIpKX07VHJhbnNmb3JtLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2kud3JpdGVjYj1yO2kud3JpdGVjaHVuaz1lO2kud3JpdGVlbmNvZGluZz10O2lmKCFpLnRyYW5zZm9ybWluZyl7dmFyIG49dGhpcy5fcmVhZGFibGVTdGF0ZTtpZihpLm5lZWRUcmFuc2Zvcm18fG4ubmVlZFJlYWRhYmxlfHxuLmxlbmd0aDxuLmhpZ2hXYXRlck1hcmspdGhpcy5fcmVhZChuLmhpZ2hXYXRlck1hcmspfX07VHJhbnNmb3JtLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZih0LndyaXRlY2h1bmshPT1udWxsJiYhdC50cmFuc2Zvcm1pbmcpe3QudHJhbnNmb3JtaW5nPXRydWU7dGhpcy5fdHJhbnNmb3JtKHQud3JpdGVjaHVuayx0LndyaXRlZW5jb2RpbmcsdC5hZnRlclRyYW5zZm9ybSl9ZWxzZXt0Lm5lZWRUcmFuc2Zvcm09dHJ1ZX19O1RyYW5zZm9ybS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oZSx0KXtoLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsZSwoZnVuY3Rpb24oZSl7dChlKX0pKX07ZnVuY3Rpb24gZG9uZShlLHQscil7aWYodClyZXR1cm4gZS5lbWl0KFwiZXJyb3JcIix0KTtpZihyIT1udWxsKWUucHVzaChyKTtpZihlLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgbztpZihlLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IHM7cmV0dXJuIGUucHVzaChudWxsKX19LDczMzc6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1Xcml0YWJsZTtmdW5jdGlvbiBXcml0ZVJlcShlLHQscil7dGhpcy5jaHVuaz1lO3RoaXMuZW5jb2Rpbmc9dDt0aGlzLmNhbGxiYWNrPXI7dGhpcy5uZXh0PW51bGx9ZnVuY3Rpb24gQ29ya2VkUmVxdWVzdChlKXt2YXIgdD10aGlzO3RoaXMubmV4dD1udWxsO3RoaXMuZW50cnk9bnVsbDt0aGlzLmZpbmlzaD1mdW5jdGlvbigpe29uQ29ya2VkRmluaXNoKHQsZSl9fXZhciBpO1dyaXRhYmxlLldyaXRhYmxlU3RhdGU9V3JpdGFibGVTdGF0ZTt2YXIgbj17ZGVwcmVjYXRlOnIoNjc2OSl9O3ZhciBhPXIoNDY3OCk7dmFyIHM9cig0MzAwKS5CdWZmZXI7dmFyIG89Z2xvYmFsLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGUpe3JldHVybiBzLmZyb20oZSl9ZnVuY3Rpb24gX2lzVWludDhBcnJheShlKXtyZXR1cm4gcy5pc0J1ZmZlcihlKXx8ZSBpbnN0YW5jZW9mIG99dmFyIGg9cig3MDI1KTt2YXIgdT1yKDY3NzYpLGQ9dS5nZXRIaWdoV2F0ZXJNYXJrO3ZhciBjPXIoNDY0NikucSxsPWMuRVJSX0lOVkFMSURfQVJHX1RZUEUscD1jLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELHY9Yy5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssYj1jLkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUsbT1jLkVSUl9TVFJFQU1fREVTVFJPWUVELHk9Yy5FUlJfU1RSRUFNX05VTExfVkFMVUVTLGc9Yy5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxfPWMuRVJSX1VOS05PV05fRU5DT0RJTkc7dmFyIHc9aC5lcnJvck9yRGVzdHJveTtyKDM3ODIpKFdyaXRhYmxlLGEpO2Z1bmN0aW9uIG5vcCgpe31mdW5jdGlvbiBXcml0YWJsZVN0YXRlKGUsdCxuKXtpPWl8fHIoMjQwMyk7ZT1lfHx7fTtpZih0eXBlb2YgbiE9PVwiYm9vbGVhblwiKW49dCBpbnN0YW5jZW9mIGk7dGhpcy5vYmplY3RNb2RlPSEhZS5vYmplY3RNb2RlO2lmKG4pdGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZTt0aGlzLmhpZ2hXYXRlck1hcms9ZCh0aGlzLGUsXCJ3cml0YWJsZUhpZ2hXYXRlck1hcmtcIixuKTt0aGlzLmZpbmFsQ2FsbGVkPWZhbHNlO3RoaXMubmVlZERyYWluPWZhbHNlO3RoaXMuZW5kaW5nPWZhbHNlO3RoaXMuZW5kZWQ9ZmFsc2U7dGhpcy5maW5pc2hlZD1mYWxzZTt0aGlzLmRlc3Ryb3llZD1mYWxzZTt2YXIgYT1lLmRlY29kZVN0cmluZ3M9PT1mYWxzZTt0aGlzLmRlY29kZVN0cmluZ3M9IWE7dGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fFwidXRmOFwiO3RoaXMubGVuZ3RoPTA7dGhpcy53cml0aW5nPWZhbHNlO3RoaXMuY29ya2VkPTA7dGhpcy5zeW5jPXRydWU7dGhpcy5idWZmZXJQcm9jZXNzaW5nPWZhbHNlO3RoaXMub253cml0ZT1mdW5jdGlvbihlKXtvbndyaXRlKHQsZSl9O3RoaXMud3JpdGVjYj1udWxsO3RoaXMud3JpdGVsZW49MDt0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsO3RoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsO3RoaXMucGVuZGluZ2NiPTA7dGhpcy5wcmVmaW5pc2hlZD1mYWxzZTt0aGlzLmVycm9yRW1pdHRlZD1mYWxzZTt0aGlzLmVtaXRDbG9zZT1lLmVtaXRDbG9zZSE9PWZhbHNlO3RoaXMuYXV0b0Rlc3Ryb3k9ISFlLmF1dG9EZXN0cm95O3RoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MDt0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgQ29ya2VkUmVxdWVzdCh0aGlzKX1Xcml0YWJsZVN0YXRlLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24gZ2V0QnVmZmVyKCl7dmFyIGU9dGhpcy5idWZmZXJlZFJlcXVlc3Q7dmFyIHQ9W107d2hpbGUoZSl7dC5wdXNoKGUpO2U9ZS5uZXh0fXJldHVybiB0fTsoZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlU3RhdGUucHJvdG90eXBlLFwiYnVmZmVyXCIse2dldDpuLmRlcHJlY2F0ZSgoZnVuY3Rpb24gd3JpdGFibGVTdGF0ZUJ1ZmZlckdldHRlcigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSksXCJfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBcIitcImluc3RlYWQuXCIsXCJERVAwMDAzXCIpfSl9Y2F0Y2goZSl7fX0pKCk7dmFyIE07aWYodHlwZW9mIFN5bWJvbD09PVwiZnVuY3Rpb25cIiYmU3ltYm9sLmhhc0luc3RhbmNlJiZ0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV09PT1cImZ1bmN0aW9uXCIpe009RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV07T2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24gdmFsdWUoZSl7aWYoTS5jYWxsKHRoaXMsZSkpcmV0dXJuIHRydWU7aWYodGhpcyE9PVdyaXRhYmxlKXJldHVybiBmYWxzZTtyZXR1cm4gZSYmZS5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIFdyaXRhYmxlU3RhdGV9fSl9ZWxzZXtNPWZ1bmN0aW9uIHJlYWxIYXNJbnN0YW5jZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXN9fWZ1bmN0aW9uIFdyaXRhYmxlKGUpe2k9aXx8cigyNDAzKTt2YXIgdD10aGlzIGluc3RhbmNlb2YgaTtpZighdCYmIU0uY2FsbChXcml0YWJsZSx0aGlzKSlyZXR1cm4gbmV3IFdyaXRhYmxlKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IFdyaXRhYmxlU3RhdGUoZSx0aGlzLHQpO3RoaXMud3JpdGFibGU9dHJ1ZTtpZihlKXtpZih0eXBlb2YgZS53cml0ZT09PVwiZnVuY3Rpb25cIil0aGlzLl93cml0ZT1lLndyaXRlO2lmKHR5cGVvZiBlLndyaXRldj09PVwiZnVuY3Rpb25cIil0aGlzLl93cml0ZXY9ZS53cml0ZXY7aWYodHlwZW9mIGUuZGVzdHJveT09PVwiZnVuY3Rpb25cIil0aGlzLl9kZXN0cm95PWUuZGVzdHJveTtpZih0eXBlb2YgZS5maW5hbD09PVwiZnVuY3Rpb25cIil0aGlzLl9maW5hbD1lLmZpbmFsfWEuY2FsbCh0aGlzKX1Xcml0YWJsZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3codGhpcyxuZXcgYil9O2Z1bmN0aW9uIHdyaXRlQWZ0ZXJFbmQoZSx0KXt2YXIgcj1uZXcgZzt3KGUscik7cHJvY2Vzcy5uZXh0VGljayh0LHIpfWZ1bmN0aW9uIHZhbGlkQ2h1bmsoZSx0LHIsaSl7dmFyIG47aWYocj09PW51bGwpe249bmV3IHl9ZWxzZSBpZih0eXBlb2YgciE9PVwic3RyaW5nXCImJiF0Lm9iamVjdE1vZGUpe249bmV3IGwoXCJjaHVua1wiLFtcInN0cmluZ1wiLFwiQnVmZmVyXCJdLHIpfWlmKG4pe3coZSxuKTtwcm9jZXNzLm5leHRUaWNrKGksbik7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVdyaXRhYmxlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5fd3JpdGFibGVTdGF0ZTt2YXIgbj1mYWxzZTt2YXIgYT0haS5vYmplY3RNb2RlJiZfaXNVaW50OEFycmF5KGUpO2lmKGEmJiFzLmlzQnVmZmVyKGUpKXtlPV91aW50OEFycmF5VG9CdWZmZXIoZSl9aWYodHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCIpe3I9dDt0PW51bGx9aWYoYSl0PVwiYnVmZmVyXCI7ZWxzZSBpZighdCl0PWkuZGVmYXVsdEVuY29kaW5nO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXI9bm9wO2lmKGkuZW5kaW5nKXdyaXRlQWZ0ZXJFbmQodGhpcyxyKTtlbHNlIGlmKGF8fHZhbGlkQ2h1bmsodGhpcyxpLGUscikpe2kucGVuZGluZ2NiKys7bj13cml0ZU9yQnVmZmVyKHRoaXMsaSxhLGUsdCxyKX1yZXR1cm4gbn07V3JpdGFibGUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfTtXcml0YWJsZS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fd3JpdGFibGVTdGF0ZTtpZihlLmNvcmtlZCl7ZS5jb3JrZWQtLTtpZighZS53cml0aW5nJiYhZS5jb3JrZWQmJiFlLmJ1ZmZlclByb2Nlc3NpbmcmJmUuYnVmZmVyZWRSZXF1ZXN0KWNsZWFyQnVmZmVyKHRoaXMsZSl9fTtXcml0YWJsZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uIHNldERlZmF1bHRFbmNvZGluZyhlKXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpZT1lLnRvTG93ZXJDYXNlKCk7aWYoIShbXCJoZXhcIixcInV0ZjhcIixcInV0Zi04XCIsXCJhc2NpaVwiLFwiYmluYXJ5XCIsXCJiYXNlNjRcIixcInVjczJcIixcInVjcy0yXCIsXCJ1dGYxNmxlXCIsXCJ1dGYtMTZsZVwiLFwicmF3XCJdLmluZGV4T2YoKGUrXCJcIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBfKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWU7cmV0dXJuIHRoaXN9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsXCJ3cml0YWJsZUJ1ZmZlclwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KTtmdW5jdGlvbiBkZWNvZGVDaHVuayhlLHQscil7aWYoIWUub2JqZWN0TW9kZSYmZS5kZWNvZGVTdHJpbmdzIT09ZmFsc2UmJnR5cGVvZiB0PT09XCJzdHJpbmdcIil7dD1zLmZyb20odCxyKX1yZXR1cm4gdH1PYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLFwid3JpdGFibGVIaWdoV2F0ZXJNYXJrXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSk7ZnVuY3Rpb24gd3JpdGVPckJ1ZmZlcihlLHQscixpLG4sYSl7aWYoIXIpe3ZhciBzPWRlY29kZUNodW5rKHQsaSxuKTtpZihpIT09cyl7cj10cnVlO249XCJidWZmZXJcIjtpPXN9fXZhciBvPXQub2JqZWN0TW9kZT8xOmkubGVuZ3RoO3QubGVuZ3RoKz1vO3ZhciBoPXQubGVuZ3RoPHQuaGlnaFdhdGVyTWFyaztpZighaCl0Lm5lZWREcmFpbj10cnVlO2lmKHQud3JpdGluZ3x8dC5jb3JrZWQpe3ZhciB1PXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDt0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOmksZW5jb2Rpbmc6bixpc0J1ZjpyLGNhbGxiYWNrOmEsbmV4dDpudWxsfTtpZih1KXt1Lm5leHQ9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0fWVsc2V7dC5idWZmZXJlZFJlcXVlc3Q9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0fXQuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZXtkb1dyaXRlKGUsdCxmYWxzZSxvLGksbixhKX1yZXR1cm4gaH1mdW5jdGlvbiBkb1dyaXRlKGUsdCxyLGksbixhLHMpe3Qud3JpdGVsZW49aTt0LndyaXRlY2I9czt0LndyaXRpbmc9dHJ1ZTt0LnN5bmM9dHJ1ZTtpZih0LmRlc3Ryb3llZCl0Lm9ud3JpdGUobmV3IG0oXCJ3cml0ZVwiKSk7ZWxzZSBpZihyKWUuX3dyaXRldihuLHQub253cml0ZSk7ZWxzZSBlLl93cml0ZShuLGEsdC5vbndyaXRlKTt0LnN5bmM9ZmFsc2V9ZnVuY3Rpb24gb253cml0ZUVycm9yKGUsdCxyLGksbil7LS10LnBlbmRpbmdjYjtpZihyKXtwcm9jZXNzLm5leHRUaWNrKG4saSk7cHJvY2Vzcy5uZXh0VGljayhmaW5pc2hNYXliZSxlLHQpO2UuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPXRydWU7dyhlLGkpfWVsc2V7bihpKTtlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD10cnVlO3coZSxpKTtmaW5pc2hNYXliZShlLHQpfX1mdW5jdGlvbiBvbndyaXRlU3RhdGVVcGRhdGUoZSl7ZS53cml0aW5nPWZhbHNlO2Uud3JpdGVjYj1udWxsO2UubGVuZ3RoLT1lLndyaXRlbGVuO2Uud3JpdGVsZW49MH1mdW5jdGlvbiBvbndyaXRlKGUsdCl7dmFyIHI9ZS5fd3JpdGFibGVTdGF0ZTt2YXIgaT1yLnN5bmM7dmFyIG49ci53cml0ZWNiO2lmKHR5cGVvZiBuIT09XCJmdW5jdGlvblwiKXRocm93IG5ldyB2O29ud3JpdGVTdGF0ZVVwZGF0ZShyKTtpZih0KW9ud3JpdGVFcnJvcihlLHIsaSx0LG4pO2Vsc2V7dmFyIGE9bmVlZEZpbmlzaChyKXx8ZS5kZXN0cm95ZWQ7aWYoIWEmJiFyLmNvcmtlZCYmIXIuYnVmZmVyUHJvY2Vzc2luZyYmci5idWZmZXJlZFJlcXVlc3Qpe2NsZWFyQnVmZmVyKGUscil9aWYoaSl7cHJvY2Vzcy5uZXh0VGljayhhZnRlcldyaXRlLGUscixhLG4pfWVsc2V7YWZ0ZXJXcml0ZShlLHIsYSxuKX19fWZ1bmN0aW9uIGFmdGVyV3JpdGUoZSx0LHIsaSl7aWYoIXIpb253cml0ZURyYWluKGUsdCk7dC5wZW5kaW5nY2ItLTtpKCk7ZmluaXNoTWF5YmUoZSx0KX1mdW5jdGlvbiBvbndyaXRlRHJhaW4oZSx0KXtpZih0Lmxlbmd0aD09PTAmJnQubmVlZERyYWluKXt0Lm5lZWREcmFpbj1mYWxzZTtlLmVtaXQoXCJkcmFpblwiKX19ZnVuY3Rpb24gY2xlYXJCdWZmZXIoZSx0KXt0LmJ1ZmZlclByb2Nlc3Npbmc9dHJ1ZTt2YXIgcj10LmJ1ZmZlcmVkUmVxdWVzdDtpZihlLl93cml0ZXYmJnImJnIubmV4dCl7dmFyIGk9dC5idWZmZXJlZFJlcXVlc3RDb3VudDt2YXIgbj1uZXcgQXJyYXkoaSk7dmFyIGE9dC5jb3JrZWRSZXF1ZXN0c0ZyZWU7YS5lbnRyeT1yO3ZhciBzPTA7dmFyIG89dHJ1ZTt3aGlsZShyKXtuW3NdPXI7aWYoIXIuaXNCdWYpbz1mYWxzZTtyPXIubmV4dDtzKz0xfW4uYWxsQnVmZmVycz1vO2RvV3JpdGUoZSx0LHRydWUsdC5sZW5ndGgsbixcIlwiLGEuZmluaXNoKTt0LnBlbmRpbmdjYisrO3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsO2lmKGEubmV4dCl7dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9YS5uZXh0O2EubmV4dD1udWxsfWVsc2V7dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IENvcmtlZFJlcXVlc3QodCl9dC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7d2hpbGUocil7dmFyIGg9ci5jaHVuazt2YXIgdT1yLmVuY29kaW5nO3ZhciBkPXIuY2FsbGJhY2s7dmFyIGM9dC5vYmplY3RNb2RlPzE6aC5sZW5ndGg7ZG9Xcml0ZShlLHQsZmFsc2UsYyxoLHUsZCk7cj1yLm5leHQ7dC5idWZmZXJlZFJlcXVlc3RDb3VudC0tO2lmKHQud3JpdGluZyl7YnJlYWt9fWlmKHI9PT1udWxsKXQubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsfXQuYnVmZmVyZWRSZXF1ZXN0PXI7dC5idWZmZXJQcm9jZXNzaW5nPWZhbHNlfVdyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZSx0LHIpe3IobmV3IHAoXCJfd3JpdGUoKVwiKSl9O1dyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGV2PW51bGw7V3JpdGFibGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5fd3JpdGFibGVTdGF0ZTtpZih0eXBlb2YgZT09PVwiZnVuY3Rpb25cIil7cj1lO2U9bnVsbDt0PW51bGx9ZWxzZSBpZih0eXBlb2YgdD09PVwiZnVuY3Rpb25cIil7cj10O3Q9bnVsbH1pZihlIT09bnVsbCYmZSE9PXVuZGVmaW5lZCl0aGlzLndyaXRlKGUsdCk7aWYoaS5jb3JrZWQpe2kuY29ya2VkPTE7dGhpcy51bmNvcmsoKX1pZighaS5lbmRpbmcpZW5kV3JpdGFibGUodGhpcyxpLHIpO3JldHVybiB0aGlzfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLFwid3JpdGFibGVMZW5ndGhcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pO2Z1bmN0aW9uIG5lZWRGaW5pc2goZSl7cmV0dXJuIGUuZW5kaW5nJiZlLmxlbmd0aD09PTAmJmUuYnVmZmVyZWRSZXF1ZXN0PT09bnVsbCYmIWUuZmluaXNoZWQmJiFlLndyaXRpbmd9ZnVuY3Rpb24gY2FsbEZpbmFsKGUsdCl7ZS5fZmluYWwoKGZ1bmN0aW9uKHIpe3QucGVuZGluZ2NiLS07aWYocil7dyhlLHIpfXQucHJlZmluaXNoZWQ9dHJ1ZTtlLmVtaXQoXCJwcmVmaW5pc2hcIik7ZmluaXNoTWF5YmUoZSx0KX0pKX1mdW5jdGlvbiBwcmVmaW5pc2goZSx0KXtpZighdC5wcmVmaW5pc2hlZCYmIXQuZmluYWxDYWxsZWQpe2lmKHR5cGVvZiBlLl9maW5hbD09PVwiZnVuY3Rpb25cIiYmIXQuZGVzdHJveWVkKXt0LnBlbmRpbmdjYisrO3QuZmluYWxDYWxsZWQ9dHJ1ZTtwcm9jZXNzLm5leHRUaWNrKGNhbGxGaW5hbCxlLHQpfWVsc2V7dC5wcmVmaW5pc2hlZD10cnVlO2UuZW1pdChcInByZWZpbmlzaFwiKX19fWZ1bmN0aW9uIGZpbmlzaE1heWJlKGUsdCl7dmFyIHI9bmVlZEZpbmlzaCh0KTtpZihyKXtwcmVmaW5pc2goZSx0KTtpZih0LnBlbmRpbmdjYj09PTApe3QuZmluaXNoZWQ9dHJ1ZTtlLmVtaXQoXCJmaW5pc2hcIik7aWYodC5hdXRvRGVzdHJveSl7dmFyIGk9ZS5fcmVhZGFibGVTdGF0ZTtpZighaXx8aS5hdXRvRGVzdHJveSYmaS5lbmRFbWl0dGVkKXtlLmRlc3Ryb3koKX19fX1yZXR1cm4gcn1mdW5jdGlvbiBlbmRXcml0YWJsZShlLHQscil7dC5lbmRpbmc9dHJ1ZTtmaW5pc2hNYXliZShlLHQpO2lmKHIpe2lmKHQuZmluaXNoZWQpcHJvY2Vzcy5uZXh0VGljayhyKTtlbHNlIGUub25jZShcImZpbmlzaFwiLHIpfXQuZW5kZWQ9dHJ1ZTtlLndyaXRhYmxlPWZhbHNlfWZ1bmN0aW9uIG9uQ29ya2VkRmluaXNoKGUsdCxyKXt2YXIgaT1lLmVudHJ5O2UuZW50cnk9bnVsbDt3aGlsZShpKXt2YXIgbj1pLmNhbGxiYWNrO3QucGVuZGluZ2NiLS07bihyKTtpPWkubmV4dH10LmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PWV9T2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSxcImRlc3Ryb3llZFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtpZih0aGlzLl93cml0YWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KGUpe2lmKCF0aGlzLl93cml0YWJsZVN0YXRlKXtyZXR1cm59dGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZX19KTtXcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveT1oLmRlc3Ryb3k7V3JpdGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3k9aC51bmRlc3Ryb3k7V3JpdGFibGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGUsdCl7dChlKX19LDY4NzE6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpO2Z1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHQscil7aWYodCBpbiBlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlfSl9ZWxzZXtlW3RdPXJ9cmV0dXJuIGV9dmFyIG49cig5Njk4KTt2YXIgYT1TeW1ib2woXCJsYXN0UmVzb2x2ZVwiKTt2YXIgcz1TeW1ib2woXCJsYXN0UmVqZWN0XCIpO3ZhciBvPVN5bWJvbChcImVycm9yXCIpO3ZhciBoPVN5bWJvbChcImVuZGVkXCIpO3ZhciB1PVN5bWJvbChcImxhc3RQcm9taXNlXCIpO3ZhciBkPVN5bWJvbChcImhhbmRsZVByb21pc2VcIik7dmFyIGM9U3ltYm9sKFwic3RyZWFtXCIpO2Z1bmN0aW9uIGNyZWF0ZUl0ZXJSZXN1bHQoZSx0KXtyZXR1cm57dmFsdWU6ZSxkb25lOnR9fWZ1bmN0aW9uIHJlYWRBbmRSZXNvbHZlKGUpe3ZhciB0PWVbYV07aWYodCE9PW51bGwpe3ZhciByPWVbY10ucmVhZCgpO2lmKHIhPT1udWxsKXtlW3VdPW51bGw7ZVthXT1udWxsO2Vbc109bnVsbDt0KGNyZWF0ZUl0ZXJSZXN1bHQocixmYWxzZSkpfX19ZnVuY3Rpb24gb25SZWFkYWJsZShlKXtwcm9jZXNzLm5leHRUaWNrKHJlYWRBbmRSZXNvbHZlLGUpfWZ1bmN0aW9uIHdyYXBGb3JOZXh0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7ZS50aGVuKChmdW5jdGlvbigpe2lmKHRbaF0pe3IoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsdHJ1ZSkpO3JldHVybn10W2RdKHIsaSl9KSxpKX19dmFyIGw9T2JqZWN0LmdldFByb3RvdHlwZU9mKChmdW5jdGlvbigpe30pKTt2YXIgcD1PYmplY3Quc2V0UHJvdG90eXBlT2YoKGk9e2dldCBzdHJlYW0oKXtyZXR1cm4gdGhpc1tjXX0sbmV4dDpmdW5jdGlvbiBuZXh0KCl7dmFyIGU9dGhpczt2YXIgdD10aGlzW29dO2lmKHQhPT1udWxsKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QodCl9aWYodGhpc1toXSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KHVuZGVmaW5lZCx0cnVlKSl9aWYodGhpc1tjXS5kZXN0cm95ZWQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxyKXtwcm9jZXNzLm5leHRUaWNrKChmdW5jdGlvbigpe2lmKGVbb10pe3IoZVtvXSl9ZWxzZXt0KGNyZWF0ZUl0ZXJSZXN1bHQodW5kZWZpbmVkLHRydWUpKX19KSl9KSl9dmFyIHI9dGhpc1t1XTt2YXIgaTtpZihyKXtpPW5ldyBQcm9taXNlKHdyYXBGb3JOZXh0KHIsdGhpcykpfWVsc2V7dmFyIG49dGhpc1tjXS5yZWFkKCk7aWYobiE9PW51bGwpe3JldHVybiBQcm9taXNlLnJlc29sdmUoY3JlYXRlSXRlclJlc3VsdChuLGZhbHNlKSl9aT1uZXcgUHJvbWlzZSh0aGlzW2RdKX10aGlzW3VdPWk7cmV0dXJuIGl9fSxfZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wuYXN5bmNJdGVyYXRvciwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxfZGVmaW5lUHJvcGVydHkoaSxcInJldHVyblwiLChmdW5jdGlvbiBfcmV0dXJuKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQscil7ZVtjXS5kZXN0cm95KG51bGwsKGZ1bmN0aW9uKGUpe2lmKGUpe3IoZSk7cmV0dXJufXQoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsdHJ1ZSkpfSkpfSkpfSkpLGkpLGwpO3ZhciB2PWZ1bmN0aW9uIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQXN5bmNJdGVyYXRvcihlKXt2YXIgdDt2YXIgcj1PYmplY3QuY3JlYXRlKHAsKHQ9e30sX2RlZmluZVByb3BlcnR5KHQsYyx7dmFsdWU6ZSx3cml0YWJsZTp0cnVlfSksX2RlZmluZVByb3BlcnR5KHQsYSx7dmFsdWU6bnVsbCx3cml0YWJsZTp0cnVlfSksX2RlZmluZVByb3BlcnR5KHQscyx7dmFsdWU6bnVsbCx3cml0YWJsZTp0cnVlfSksX2RlZmluZVByb3BlcnR5KHQsbyx7dmFsdWU6bnVsbCx3cml0YWJsZTp0cnVlfSksX2RlZmluZVByb3BlcnR5KHQsaCx7dmFsdWU6ZS5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOnRydWV9KSxfZGVmaW5lUHJvcGVydHkodCxkLHt2YWx1ZTpmdW5jdGlvbiB2YWx1ZShlLHQpe3ZhciBpPXJbY10ucmVhZCgpO2lmKGkpe3JbdV09bnVsbDtyW2FdPW51bGw7cltzXT1udWxsO2UoY3JlYXRlSXRlclJlc3VsdChpLGZhbHNlKSl9ZWxzZXtyW2FdPWU7cltzXT10fX0sd3JpdGFibGU6dHJ1ZX0pLHQpKTtyW3VdPW51bGw7bihlLChmdW5jdGlvbihlKXtpZihlJiZlLmNvZGUhPT1cIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFXCIpe3ZhciB0PXJbc107aWYodCE9PW51bGwpe3JbdV09bnVsbDtyW2FdPW51bGw7cltzXT1udWxsO3QoZSl9cltvXT1lO3JldHVybn12YXIgaT1yW2FdO2lmKGkhPT1udWxsKXtyW3VdPW51bGw7clthXT1udWxsO3Jbc109bnVsbDtpKGNyZWF0ZUl0ZXJSZXN1bHQodW5kZWZpbmVkLHRydWUpKX1yW2hdPXRydWV9KSk7ZS5vbihcInJlYWRhYmxlXCIsb25SZWFkYWJsZS5iaW5kKG51bGwscikpO3JldHVybiByfTtlLmV4cG9ydHM9dn0sNDM3OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gb3duS2V5cyhlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aWYodClpPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSk7ci5wdXNoLmFwcGx5KHIsaSl9cmV0dXJuIHJ9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF0hPW51bGw/YXJndW1lbnRzW3RdOnt9O2lmKHQlMil7b3duS2V5cyhPYmplY3QociksdHJ1ZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7X2RlZmluZVByb3BlcnR5KGUsdCxyW3RdKX0pKX1lbHNlIGlmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKXtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKX1lbHNle293bktleXMoT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9fXJldHVybiBlfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHQscil7aWYodCBpbiBlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlfSl9ZWxzZXtlW3RdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9fWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ZmFsc2U7aS5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBpKWkud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19ZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKGUsdCxyKXtpZih0KV9kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpO2lmKHIpX2RlZmluZVByb3BlcnRpZXMoZSxyKTtyZXR1cm4gZX12YXIgaT1yKDQzMDApLG49aS5CdWZmZXI7dmFyIGE9cigzODM3KSxzPWEuaW5zcGVjdDt2YXIgbz1zJiZzLmN1c3RvbXx8XCJpbnNwZWN0XCI7ZnVuY3Rpb24gY29weUJ1ZmZlcihlLHQscil7bi5wcm90b3R5cGUuY29weS5jYWxsKGUsdCxyKX1lLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBCdWZmZXJMaXN0KCl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsQnVmZmVyTGlzdCk7dGhpcy5oZWFkPW51bGw7dGhpcy50YWlsPW51bGw7dGhpcy5sZW5ndGg9MH1fY3JlYXRlQ2xhc3MoQnVmZmVyTGlzdCxbe2tleTpcInB1c2hcIix2YWx1ZTpmdW5jdGlvbiBwdXNoKGUpe3ZhciB0PXtkYXRhOmUsbmV4dDpudWxsfTtpZih0aGlzLmxlbmd0aD4wKXRoaXMudGFpbC5uZXh0PXQ7ZWxzZSB0aGlzLmhlYWQ9dDt0aGlzLnRhaWw9dDsrK3RoaXMubGVuZ3RofX0se2tleTpcInVuc2hpZnRcIix2YWx1ZTpmdW5jdGlvbiB1bnNoaWZ0KGUpe3ZhciB0PXtkYXRhOmUsbmV4dDp0aGlzLmhlYWR9O2lmKHRoaXMubGVuZ3RoPT09MCl0aGlzLnRhaWw9dDt0aGlzLmhlYWQ9dDsrK3RoaXMubGVuZ3RofX0se2tleTpcInNoaWZ0XCIsdmFsdWU6ZnVuY3Rpb24gc2hpZnQoKXtpZih0aGlzLmxlbmd0aD09PTApcmV0dXJuO3ZhciBlPXRoaXMuaGVhZC5kYXRhO2lmKHRoaXMubGVuZ3RoPT09MSl0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGw7ZWxzZSB0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQ7LS10aGlzLmxlbmd0aDtyZXR1cm4gZX19LHtrZXk6XCJjbGVhclwiLHZhbHVlOmZ1bmN0aW9uIGNsZWFyKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsO3RoaXMubGVuZ3RoPTB9fSx7a2V5Olwiam9pblwiLHZhbHVlOmZ1bmN0aW9uIGpvaW4oZSl7aWYodGhpcy5sZW5ndGg9PT0wKXJldHVyblwiXCI7dmFyIHQ9dGhpcy5oZWFkO3ZhciByPVwiXCIrdC5kYXRhO3doaWxlKHQ9dC5uZXh0KXtyKz1lK3QuZGF0YX1yZXR1cm4gcn19LHtrZXk6XCJjb25jYXRcIix2YWx1ZTpmdW5jdGlvbiBjb25jYXQoZSl7aWYodGhpcy5sZW5ndGg9PT0wKXJldHVybiBuLmFsbG9jKDApO3ZhciB0PW4uYWxsb2NVbnNhZmUoZT4+PjApO3ZhciByPXRoaXMuaGVhZDt2YXIgaT0wO3doaWxlKHIpe2NvcHlCdWZmZXIoci5kYXRhLHQsaSk7aSs9ci5kYXRhLmxlbmd0aDtyPXIubmV4dH1yZXR1cm4gdH19LHtrZXk6XCJjb25zdW1lXCIsdmFsdWU6ZnVuY3Rpb24gY29uc3VtZShlLHQpe3ZhciByO2lmKGU8dGhpcy5oZWFkLmRhdGEubGVuZ3RoKXtyPXRoaXMuaGVhZC5kYXRhLnNsaWNlKDAsZSk7dGhpcy5oZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoZSl9ZWxzZSBpZihlPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoKXtyPXRoaXMuc2hpZnQoKX1lbHNle3I9dD90aGlzLl9nZXRTdHJpbmcoZSk6dGhpcy5fZ2V0QnVmZmVyKGUpfXJldHVybiByfX0se2tleTpcImZpcnN0XCIsdmFsdWU6ZnVuY3Rpb24gZmlyc3QoKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OlwiX2dldFN0cmluZ1wiLHZhbHVlOmZ1bmN0aW9uIF9nZXRTdHJpbmcoZSl7dmFyIHQ9dGhpcy5oZWFkO3ZhciByPTE7dmFyIGk9dC5kYXRhO2UtPWkubGVuZ3RoO3doaWxlKHQ9dC5uZXh0KXt2YXIgbj10LmRhdGE7dmFyIGE9ZT5uLmxlbmd0aD9uLmxlbmd0aDplO2lmKGE9PT1uLmxlbmd0aClpKz1uO2Vsc2UgaSs9bi5zbGljZSgwLGUpO2UtPWE7aWYoZT09PTApe2lmKGE9PT1uLmxlbmd0aCl7KytyO2lmKHQubmV4dCl0aGlzLmhlYWQ9dC5uZXh0O2Vsc2UgdGhpcy5oZWFkPXRoaXMudGFpbD1udWxsfWVsc2V7dGhpcy5oZWFkPXQ7dC5kYXRhPW4uc2xpY2UoYSl9YnJlYWt9KytyfXRoaXMubGVuZ3RoLT1yO3JldHVybiBpfX0se2tleTpcIl9nZXRCdWZmZXJcIix2YWx1ZTpmdW5jdGlvbiBfZ2V0QnVmZmVyKGUpe3ZhciB0PW4uYWxsb2NVbnNhZmUoZSk7dmFyIHI9dGhpcy5oZWFkO3ZhciBpPTE7ci5kYXRhLmNvcHkodCk7ZS09ci5kYXRhLmxlbmd0aDt3aGlsZShyPXIubmV4dCl7dmFyIGE9ci5kYXRhO3ZhciBzPWU+YS5sZW5ndGg/YS5sZW5ndGg6ZTthLmNvcHkodCx0Lmxlbmd0aC1lLDAscyk7ZS09cztpZihlPT09MCl7aWYocz09PWEubGVuZ3RoKXsrK2k7aWYoci5uZXh0KXRoaXMuaGVhZD1yLm5leHQ7ZWxzZSB0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGx9ZWxzZXt0aGlzLmhlYWQ9cjtyLmRhdGE9YS5zbGljZShzKX1icmVha30rK2l9dGhpcy5sZW5ndGgtPWk7cmV0dXJuIHR9fSx7a2V5Om8sdmFsdWU6ZnVuY3Rpb24gdmFsdWUoZSx0KXtyZXR1cm4gcyh0aGlzLF9vYmplY3RTcHJlYWQoe30sdCx7ZGVwdGg6MCxjdXN0b21JbnNwZWN0OmZhbHNlfSkpfX1dKTtyZXR1cm4gQnVmZmVyTGlzdH0oKX0sNzAyNTpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBkZXN0cm95KGUsdCl7dmFyIHI9dGhpczt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZDt2YXIgbj10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtpZihpfHxuKXtpZih0KXt0KGUpfWVsc2UgaWYoZSl7aWYoIXRoaXMuX3dyaXRhYmxlU3RhdGUpe3Byb2Nlc3MubmV4dFRpY2soZW1pdEVycm9yTlQsdGhpcyxlKX1lbHNlIGlmKCF0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9dHJ1ZTtwcm9jZXNzLm5leHRUaWNrKGVtaXRFcnJvck5ULHRoaXMsZSl9fXJldHVybiB0aGlzfWlmKHRoaXMuX3JlYWRhYmxlU3RhdGUpe3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXRydWV9aWYodGhpcy5fd3JpdGFibGVTdGF0ZSl7dGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dHJ1ZX10aGlzLl9kZXN0cm95KGV8fG51bGwsKGZ1bmN0aW9uKGUpe2lmKCF0JiZlKXtpZighci5fd3JpdGFibGVTdGF0ZSl7cHJvY2Vzcy5uZXh0VGljayhlbWl0RXJyb3JBbmRDbG9zZU5ULHIsZSl9ZWxzZSBpZighci5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQpe3IuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPXRydWU7cHJvY2Vzcy5uZXh0VGljayhlbWl0RXJyb3JBbmRDbG9zZU5ULHIsZSl9ZWxzZXtwcm9jZXNzLm5leHRUaWNrKGVtaXRDbG9zZU5ULHIpfX1lbHNlIGlmKHQpe3Byb2Nlc3MubmV4dFRpY2soZW1pdENsb3NlTlQscik7dChlKX1lbHNle3Byb2Nlc3MubmV4dFRpY2soZW1pdENsb3NlTlQscil9fSkpO3JldHVybiB0aGlzfWZ1bmN0aW9uIGVtaXRFcnJvckFuZENsb3NlTlQoZSx0KXtlbWl0RXJyb3JOVChlLHQpO2VtaXRDbG9zZU5UKGUpfWZ1bmN0aW9uIGVtaXRDbG9zZU5UKGUpe2lmKGUuX3dyaXRhYmxlU3RhdGUmJiFlLl93cml0YWJsZVN0YXRlLmVtaXRDbG9zZSlyZXR1cm47aWYoZS5fcmVhZGFibGVTdGF0ZSYmIWUuX3JlYWRhYmxlU3RhdGUuZW1pdENsb3NlKXJldHVybjtlLmVtaXQoXCJjbG9zZVwiKX1mdW5jdGlvbiB1bmRlc3Ryb3koKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlKXt0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1mYWxzZTt0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ZmFsc2U7dGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD1mYWxzZTt0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ZmFsc2V9aWYodGhpcy5fd3JpdGFibGVTdGF0ZSl7dGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZmFsc2U7dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD1mYWxzZTt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz1mYWxzZTt0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPWZhbHNlO3RoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ZmFsc2U7dGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD1mYWxzZTt0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD1mYWxzZX19ZnVuY3Rpb24gZW1pdEVycm9yTlQoZSx0KXtlLmVtaXQoXCJlcnJvclwiLHQpfWZ1bmN0aW9uIGVycm9yT3JEZXN0cm95KGUsdCl7dmFyIHI9ZS5fcmVhZGFibGVTdGF0ZTt2YXIgaT1lLl93cml0YWJsZVN0YXRlO2lmKHImJnIuYXV0b0Rlc3Ryb3l8fGkmJmkuYXV0b0Rlc3Ryb3kpZS5kZXN0cm95KHQpO2Vsc2UgZS5lbWl0KFwiZXJyb3JcIix0KX1lLmV4cG9ydHM9e2Rlc3Ryb3k6ZGVzdHJveSx1bmRlc3Ryb3k6dW5kZXN0cm95LGVycm9yT3JEZXN0cm95OmVycm9yT3JEZXN0cm95fX0sOTY5ODpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cig0NjQ2KS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIG9uY2UoZSl7dmFyIHQ9ZmFsc2U7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodClyZXR1cm47dD10cnVlO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG49MDtuPHI7bisrKXtpW25dPWFyZ3VtZW50c1tuXX1lLmFwcGx5KHRoaXMsaSl9fWZ1bmN0aW9uIG5vb3AoKXt9ZnVuY3Rpb24gaXNSZXF1ZXN0KGUpe3JldHVybiBlLnNldEhlYWRlciYmdHlwZW9mIGUuYWJvcnQ9PT1cImZ1bmN0aW9uXCJ9ZnVuY3Rpb24gZW9zKGUsdCxyKXtpZih0eXBlb2YgdD09PVwiZnVuY3Rpb25cIilyZXR1cm4gZW9zKGUsbnVsbCx0KTtpZighdCl0PXt9O3I9b25jZShyfHxub29wKTt2YXIgbj10LnJlYWRhYmxlfHx0LnJlYWRhYmxlIT09ZmFsc2UmJmUucmVhZGFibGU7dmFyIGE9dC53cml0YWJsZXx8dC53cml0YWJsZSE9PWZhbHNlJiZlLndyaXRhYmxlO3ZhciBzPWZ1bmN0aW9uIG9ubGVnYWN5ZmluaXNoKCl7aWYoIWUud3JpdGFibGUpaCgpfTt2YXIgbz1lLl93cml0YWJsZVN0YXRlJiZlLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkO3ZhciBoPWZ1bmN0aW9uIG9uZmluaXNoKCl7YT1mYWxzZTtvPXRydWU7aWYoIW4pci5jYWxsKGUpfTt2YXIgdT1lLl9yZWFkYWJsZVN0YXRlJiZlLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ7dmFyIGQ9ZnVuY3Rpb24gb25lbmQoKXtuPWZhbHNlO3U9dHJ1ZTtpZighYSlyLmNhbGwoZSl9O3ZhciBjPWZ1bmN0aW9uIG9uZXJyb3IodCl7ci5jYWxsKGUsdCl9O3ZhciBsPWZ1bmN0aW9uIG9uY2xvc2UoKXt2YXIgdDtpZihuJiYhdSl7aWYoIWUuX3JlYWRhYmxlU3RhdGV8fCFlLl9yZWFkYWJsZVN0YXRlLmVuZGVkKXQ9bmV3IGk7cmV0dXJuIHIuY2FsbChlLHQpfWlmKGEmJiFvKXtpZighZS5fd3JpdGFibGVTdGF0ZXx8IWUuX3dyaXRhYmxlU3RhdGUuZW5kZWQpdD1uZXcgaTtyZXR1cm4gci5jYWxsKGUsdCl9fTt2YXIgcD1mdW5jdGlvbiBvbnJlcXVlc3QoKXtlLnJlcS5vbihcImZpbmlzaFwiLGgpfTtpZihpc1JlcXVlc3QoZSkpe2Uub24oXCJjb21wbGV0ZVwiLGgpO2Uub24oXCJhYm9ydFwiLGwpO2lmKGUucmVxKXAoKTtlbHNlIGUub24oXCJyZXF1ZXN0XCIscCl9ZWxzZSBpZihhJiYhZS5fd3JpdGFibGVTdGF0ZSl7ZS5vbihcImVuZFwiLHMpO2Uub24oXCJjbG9zZVwiLHMpfWUub24oXCJlbmRcIixkKTtlLm9uKFwiZmluaXNoXCIsaCk7aWYodC5lcnJvciE9PWZhbHNlKWUub24oXCJlcnJvclwiLGMpO2Uub24oXCJjbG9zZVwiLGwpO3JldHVybiBmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIoXCJjb21wbGV0ZVwiLGgpO2UucmVtb3ZlTGlzdGVuZXIoXCJhYm9ydFwiLGwpO2UucmVtb3ZlTGlzdGVuZXIoXCJyZXF1ZXN0XCIscCk7aWYoZS5yZXEpZS5yZXEucmVtb3ZlTGlzdGVuZXIoXCJmaW5pc2hcIixoKTtlLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIscyk7ZS5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIscyk7ZS5yZW1vdmVMaXN0ZW5lcihcImZpbmlzaFwiLGgpO2UucmVtb3ZlTGlzdGVuZXIoXCJlbmRcIixkKTtlLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIixjKTtlLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIixsKX19ZS5leHBvcnRzPWVvc30sOTcyNzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGUsdCxyLGksbixhLHMpe3RyeXt2YXIgbz1lW2FdKHMpO3ZhciBoPW8udmFsdWV9Y2F0Y2goZSl7cihlKTtyZXR1cm59aWYoby5kb25lKXt0KGgpfWVsc2V7UHJvbWlzZS5yZXNvbHZlKGgpLnRoZW4oaSxuKX19ZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGksbil7dmFyIGE9ZS5hcHBseSh0LHIpO2Z1bmN0aW9uIF9uZXh0KGUpe2FzeW5jR2VuZXJhdG9yU3RlcChhLGksbixfbmV4dCxfdGhyb3csXCJuZXh0XCIsZSl9ZnVuY3Rpb24gX3Rocm93KGUpe2FzeW5jR2VuZXJhdG9yU3RlcChhLGksbixfbmV4dCxfdGhyb3csXCJ0aHJvd1wiLGUpfV9uZXh0KHVuZGVmaW5lZCl9KSl9fWZ1bmN0aW9uIG93bktleXMoZSx0KXt2YXIgcj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2lmKHQpaT1pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpO3IucHVzaC5hcHBseShyLGkpfXJldHVybiByfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTtpZih0JTIpe293bktleXMoT2JqZWN0KHIpLHRydWUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe19kZWZpbmVQcm9wZXJ0eShlLHQsclt0XSl9KSl9ZWxzZSBpZihPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyl7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSl9ZWxzZXtvd25LZXlzKE9iamVjdChyKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCkpfSkpfX1yZXR1cm4gZX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSx0LHIpe2lmKHQgaW4gZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6cixlbnVtZXJhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZX0pfWVsc2V7ZVt0XT1yfXJldHVybiBlfXZhciBpPXIoNDY0NikucS5FUlJfSU5WQUxJRF9BUkdfVFlQRTtmdW5jdGlvbiBmcm9tKGUsdCxyKXt2YXIgbjtpZih0JiZ0eXBlb2YgdC5uZXh0PT09XCJmdW5jdGlvblwiKXtuPXR9ZWxzZSBpZih0JiZ0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSluPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7ZWxzZSBpZih0JiZ0W1N5bWJvbC5pdGVyYXRvcl0pbj10W1N5bWJvbC5pdGVyYXRvcl0oKTtlbHNlIHRocm93IG5ldyBpKFwiaXRlcmFibGVcIixbXCJJdGVyYWJsZVwiXSx0KTt2YXIgYT1uZXcgZShfb2JqZWN0U3ByZWFkKHtvYmplY3RNb2RlOnRydWV9LHIpKTt2YXIgcz1mYWxzZTthLl9yZWFkPWZ1bmN0aW9uKCl7aWYoIXMpe3M9dHJ1ZTtuZXh0KCl9fTtmdW5jdGlvbiBuZXh0KCl7cmV0dXJuIF9uZXh0Mi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gX25leHQyKCl7X25leHQyPV9hc3luY1RvR2VuZXJhdG9yKChmdW5jdGlvbiooKXt0cnl7dmFyIGU9eWllbGQgbi5uZXh0KCksdD1lLnZhbHVlLHI9ZS5kb25lO2lmKHIpe2EucHVzaChudWxsKX1lbHNlIGlmKGEucHVzaCh5aWVsZCB0KSl7bmV4dCgpfWVsc2V7cz1mYWxzZX19Y2F0Y2goZSl7YS5kZXN0cm95KGUpfX0pKTtyZXR1cm4gX25leHQyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYX1lLmV4cG9ydHM9ZnJvbX0sODQ0MjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk7ZnVuY3Rpb24gb25jZShlKXt2YXIgdD1mYWxzZTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0KXJldHVybjt0PXRydWU7ZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19dmFyIG49cig0NjQ2KS5xLGE9bi5FUlJfTUlTU0lOR19BUkdTLHM9bi5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBub29wKGUpe2lmKGUpdGhyb3cgZX1mdW5jdGlvbiBpc1JlcXVlc3QoZSl7cmV0dXJuIGUuc2V0SGVhZGVyJiZ0eXBlb2YgZS5hYm9ydD09PVwiZnVuY3Rpb25cIn1mdW5jdGlvbiBkZXN0cm95ZXIoZSx0LG4sYSl7YT1vbmNlKGEpO3ZhciBvPWZhbHNlO2Uub24oXCJjbG9zZVwiLChmdW5jdGlvbigpe289dHJ1ZX0pKTtpZihpPT09dW5kZWZpbmVkKWk9cig5Njk4KTtpKGUse3JlYWRhYmxlOnQsd3JpdGFibGU6bn0sKGZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIGEoZSk7bz10cnVlO2EoKX0pKTt2YXIgaD1mYWxzZTtyZXR1cm4gZnVuY3Rpb24odCl7aWYobylyZXR1cm47aWYoaClyZXR1cm47aD10cnVlO2lmKGlzUmVxdWVzdChlKSlyZXR1cm4gZS5hYm9ydCgpO2lmKHR5cGVvZiBlLmRlc3Ryb3k9PT1cImZ1bmN0aW9uXCIpcmV0dXJuIGUuZGVzdHJveSgpO2EodHx8bmV3IHMoXCJwaXBlXCIpKX19ZnVuY3Rpb24gY2FsbChlKXtlKCl9ZnVuY3Rpb24gcGlwZShlLHQpe3JldHVybiBlLnBpcGUodCl9ZnVuY3Rpb24gcG9wQ2FsbGJhY2soZSl7aWYoIWUubGVuZ3RoKXJldHVybiBub29wO2lmKHR5cGVvZiBlW2UubGVuZ3RoLTFdIT09XCJmdW5jdGlvblwiKXJldHVybiBub29wO3JldHVybiBlLnBvcCgpfWZ1bmN0aW9uIHBpcGVsaW5lKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspe3Rbcl09YXJndW1lbnRzW3JdfXZhciBpPXBvcENhbGxiYWNrKHQpO2lmKEFycmF5LmlzQXJyYXkodFswXSkpdD10WzBdO2lmKHQubGVuZ3RoPDIpe3Rocm93IG5ldyBhKFwic3RyZWFtc1wiKX12YXIgbjt2YXIgcz10Lm1hcCgoZnVuY3Rpb24oZSxyKXt2YXIgYT1yPHQubGVuZ3RoLTE7dmFyIG89cj4wO3JldHVybiBkZXN0cm95ZXIoZSxhLG8sKGZ1bmN0aW9uKGUpe2lmKCFuKW49ZTtpZihlKXMuZm9yRWFjaChjYWxsKTtpZihhKXJldHVybjtzLmZvckVhY2goY2FsbCk7aShuKX0pKX0pKTtyZXR1cm4gdC5yZWR1Y2UocGlwZSl9ZS5leHBvcnRzPXBpcGVsaW5lfSw2Nzc2OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1yKDQ2NDYpLnEuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO2Z1bmN0aW9uIGhpZ2hXYXRlck1hcmtGcm9tKGUsdCxyKXtyZXR1cm4gZS5oaWdoV2F0ZXJNYXJrIT1udWxsP2UuaGlnaFdhdGVyTWFyazp0P2Vbcl06bnVsbH1mdW5jdGlvbiBnZXRIaWdoV2F0ZXJNYXJrKGUsdCxyLG4pe3ZhciBhPWhpZ2hXYXRlck1hcmtGcm9tKHQsbixyKTtpZihhIT1udWxsKXtpZighKGlzRmluaXRlKGEpJiZNYXRoLmZsb29yKGEpPT09YSl8fGE8MCl7dmFyIHM9bj9yOlwiaGlnaFdhdGVyTWFya1wiO3Rocm93IG5ldyBpKHMsYSl9cmV0dXJuIE1hdGguZmxvb3IoYSl9cmV0dXJuIGUub2JqZWN0TW9kZT8xNjoxNioxMDI0fWUuZXhwb3J0cz17Z2V0SGlnaFdhdGVyTWFyazpnZXRIaWdoV2F0ZXJNYXJrfX0sNDY3ODpmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMjc4MSl9LDM3MjY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoMjc4MSk7aWYocHJvY2Vzcy5lbnYuUkVBREFCTEVfU1RSRUFNPT09XCJkaXNhYmxlXCImJmkpe2UuZXhwb3J0cz1pLlJlYWRhYmxlO09iamVjdC5hc3NpZ24oZS5leHBvcnRzLGkpO2UuZXhwb3J0cy5TdHJlYW09aX1lbHNle3Q9ZS5leHBvcnRzPXIoMTcwOSk7dC5TdHJlYW09aXx8dDt0LlJlYWRhYmxlPXQ7dC5Xcml0YWJsZT1yKDczMzcpO3QuRHVwbGV4PXIoMjQwMyk7dC5UcmFuc2Zvcm09cigxMTcwKTt0LlBhc3NUaHJvdWdoPXIoNzg4OSk7dC5maW5pc2hlZD1yKDk2OTgpO3QucGlwZWxpbmU9cig4NDQyKX19LDMyMjU6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPXIoNDMwMCkuQnVmZmVyO3ZhciBuPXIoMzc4Mik7dmFyIGE9cig5MDI5KTt2YXIgcz1uZXcgQXJyYXkoMTYpO3ZhciBvPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdO3ZhciBoPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdO3ZhciB1PVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XTt2YXIgZD1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV07dmFyIGM9WzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF07dmFyIGw9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gUklQRU1EMTYwKCl7YS5jYWxsKHRoaXMsNjQpO3RoaXMuX2E9MTczMjU4NDE5Mzt0aGlzLl9iPTQwMjMyMzM0MTc7dGhpcy5fYz0yNTYyMzgzMTAyO3RoaXMuX2Q9MjcxNzMzODc4O3RoaXMuX2U9MzI4NTM3NzUyMH1uKFJJUEVNRDE2MCxhKTtSSVBFTUQxNjAucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt2YXIgZT1zO2Zvcih2YXIgdD0wO3Q8MTY7Kyt0KWVbdF09dGhpcy5fYmxvY2sucmVhZEludDMyTEUodCo0KTt2YXIgcj10aGlzLl9hfDA7dmFyIGk9dGhpcy5fYnwwO3ZhciBuPXRoaXMuX2N8MDt2YXIgYT10aGlzLl9kfDA7dmFyIHA9dGhpcy5fZXwwO3ZhciB2PXRoaXMuX2F8MDt2YXIgYj10aGlzLl9ifDA7dmFyIG09dGhpcy5fY3wwO3ZhciB5PXRoaXMuX2R8MDt2YXIgZz10aGlzLl9lfDA7Zm9yKHZhciBfPTA7Xzw4MDtfKz0xKXt2YXIgdzt2YXIgTTtpZihfPDE2KXt3PWZuMShyLGksbixhLHAsZVtvW19dXSxjWzBdLHVbX10pO009Zm41KHYsYixtLHksZyxlW2hbX11dLGxbMF0sZFtfXSl9ZWxzZSBpZihfPDMyKXt3PWZuMihyLGksbixhLHAsZVtvW19dXSxjWzFdLHVbX10pO009Zm40KHYsYixtLHksZyxlW2hbX11dLGxbMV0sZFtfXSl9ZWxzZSBpZihfPDQ4KXt3PWZuMyhyLGksbixhLHAsZVtvW19dXSxjWzJdLHVbX10pO009Zm4zKHYsYixtLHksZyxlW2hbX11dLGxbMl0sZFtfXSl9ZWxzZSBpZihfPDY0KXt3PWZuNChyLGksbixhLHAsZVtvW19dXSxjWzNdLHVbX10pO009Zm4yKHYsYixtLHksZyxlW2hbX11dLGxbM10sZFtfXSl9ZWxzZXt3PWZuNShyLGksbixhLHAsZVtvW19dXSxjWzRdLHVbX10pO009Zm4xKHYsYixtLHksZyxlW2hbX11dLGxbNF0sZFtfXSl9cj1wO3A9YTthPXJvdGwobiwxMCk7bj1pO2k9dzt2PWc7Zz15O3k9cm90bChtLDEwKTttPWI7Yj1NfXZhciBCPXRoaXMuX2Irbit5fDA7dGhpcy5fYj10aGlzLl9jK2ErZ3wwO3RoaXMuX2M9dGhpcy5fZCtwK3Z8MDt0aGlzLl9kPXRoaXMuX2UrcitifDA7dGhpcy5fZT10aGlzLl9hK2krbXwwO3RoaXMuX2E9Qn07UklQRU1EMTYwLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4O2lmKHRoaXMuX2Jsb2NrT2Zmc2V0PjU2KXt0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpO3RoaXMuX3VwZGF0ZSgpO3RoaXMuX2Jsb2NrT2Zmc2V0PTB9dGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KTt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1Nik7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApO3RoaXMuX3VwZGF0ZSgpO3ZhciBlPWkuYWxsb2M/aS5hbGxvYygyMCk6bmV3IGkoMjApO2Uud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCk7ZS53cml0ZUludDMyTEUodGhpcy5fYiw0KTtlLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpO2Uud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpO2Uud3JpdGVJbnQzMkxFKHRoaXMuX2UsMTYpO3JldHVybiBlfTtmdW5jdGlvbiByb3RsKGUsdCl7cmV0dXJuIGU8PHR8ZT4+PjMyLXR9ZnVuY3Rpb24gZm4xKGUsdCxyLGksbixhLHMsbyl7cmV0dXJuIHJvdGwoZSsodF5yXmkpK2Erc3wwLG8pK258MH1mdW5jdGlvbiBmbjIoZSx0LHIsaSxuLGEscyxvKXtyZXR1cm4gcm90bChlKyh0JnJ8fnQmaSkrYStzfDAsbykrbnwwfWZ1bmN0aW9uIGZuMyhlLHQscixpLG4sYSxzLG8pe3JldHVybiByb3RsKGUrKCh0fH5yKV5pKSthK3N8MCxvKStufDB9ZnVuY3Rpb24gZm40KGUsdCxyLGksbixhLHMsbyl7cmV0dXJuIHJvdGwoZSsodCZpfHImfmkpK2Erc3wwLG8pK258MH1mdW5jdGlvbiBmbjUoZSx0LHIsaSxuLGEscyxvKXtyZXR1cm4gcm90bChlKyh0XihyfH5pKSkrYStzfDAsbykrbnwwfWUuZXhwb3J0cz1SSVBFTUQxNjB9LDUwNTU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoNDMwMCk7dmFyIG49aS5CdWZmZXI7ZnVuY3Rpb24gY29weVByb3BzKGUsdCl7Zm9yKHZhciByIGluIGUpe3Rbcl09ZVtyXX19aWYobi5mcm9tJiZuLmFsbG9jJiZuLmFsbG9jVW5zYWZlJiZuLmFsbG9jVW5zYWZlU2xvdyl7ZS5leHBvcnRzPWl9ZWxzZXtjb3B5UHJvcHMoaSx0KTt0LkJ1ZmZlcj1TYWZlQnVmZmVyfWZ1bmN0aW9uIFNhZmVCdWZmZXIoZSx0LHIpe3JldHVybiBuKGUsdCxyKX1TYWZlQnVmZmVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKTtjb3B5UHJvcHMobixTYWZlQnVmZmVyKTtTYWZlQnVmZmVyLmZyb209ZnVuY3Rpb24oZSx0LHIpe2lmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyXCIpfXJldHVybiBuKGUsdCxyKX07U2FmZUJ1ZmZlci5hbGxvYz1mdW5jdGlvbihlLHQscil7aWYodHlwZW9mIGUhPT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlclwiKX12YXIgaT1uKGUpO2lmKHQhPT11bmRlZmluZWQpe2lmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7aS5maWxsKHQscil9ZWxzZXtpLmZpbGwodCl9fWVsc2V7aS5maWxsKDApfXJldHVybiBpfTtTYWZlQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIG4oZSl9O1NhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIGkuU2xvd0J1ZmZlcihlKX19LDY5MTE6ZnVuY3Rpb24oZSx0LHIpe1xuLyohIHNhZmUtYnVmZmVyLiBNSVQgTGljZW5zZS4gRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnL29wZW5zb3VyY2U+ICovXG52YXIgaT1yKDQzMDApO3ZhciBuPWkuQnVmZmVyO2Z1bmN0aW9uIGNvcHlQcm9wcyhlLHQpe2Zvcih2YXIgciBpbiBlKXt0W3JdPWVbcl19fWlmKG4uZnJvbSYmbi5hbGxvYyYmbi5hbGxvY1Vuc2FmZSYmbi5hbGxvY1Vuc2FmZVNsb3cpe2UuZXhwb3J0cz1pfWVsc2V7Y29weVByb3BzKGksdCk7dC5CdWZmZXI9U2FmZUJ1ZmZlcn1mdW5jdGlvbiBTYWZlQnVmZmVyKGUsdCxyKXtyZXR1cm4gbihlLHQscil9U2FmZUJ1ZmZlci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSk7Y29weVByb3BzKG4sU2FmZUJ1ZmZlcik7U2FmZUJ1ZmZlci5mcm9tPWZ1bmN0aW9uKGUsdCxyKXtpZih0eXBlb2YgZT09PVwibnVtYmVyXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlclwiKX1yZXR1cm4gbihlLHQscil9O1NhZmVCdWZmZXIuYWxsb2M9ZnVuY3Rpb24oZSx0LHIpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9dmFyIGk9bihlKTtpZih0IT09dW5kZWZpbmVkKXtpZih0eXBlb2Ygcj09PVwic3RyaW5nXCIpe2kuZmlsbCh0LHIpfWVsc2V7aS5maWxsKHQpfX1lbHNle2kuZmlsbCgwKX1yZXR1cm4gaX07U2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbihlKXtpZih0eXBlb2YgZSE9PVwibnVtYmVyXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyXCIpfXJldHVybiBuKGUpfTtTYWZlQnVmZmVyLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihlKXtpZih0eXBlb2YgZSE9PVwibnVtYmVyXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyXCIpfXJldHVybiBpLlNsb3dCdWZmZXIoZSl9fSwyODU4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDY5MTEpLkJ1ZmZlcjtmdW5jdGlvbiBIYXNoKGUsdCl7dGhpcy5fYmxvY2s9aS5hbGxvYyhlKTt0aGlzLl9maW5hbFNpemU9dDt0aGlzLl9ibG9ja1NpemU9ZTt0aGlzLl9sZW49MH1IYXNoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe3Q9dHx8XCJ1dGY4XCI7ZT1pLmZyb20oZSx0KX12YXIgcj10aGlzLl9ibG9jazt2YXIgbj10aGlzLl9ibG9ja1NpemU7dmFyIGE9ZS5sZW5ndGg7dmFyIHM9dGhpcy5fbGVuO2Zvcih2YXIgbz0wO288YTspe3ZhciBoPXMlbjt2YXIgdT1NYXRoLm1pbihhLW8sbi1oKTtmb3IodmFyIGQ9MDtkPHU7ZCsrKXtyW2grZF09ZVtvK2RdfXMrPXU7bys9dTtpZihzJW49PT0wKXt0aGlzLl91cGRhdGUocil9fXRoaXMuX2xlbis9YTtyZXR1cm4gdGhpc307SGFzaC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbdF09MTI4O3RoaXMuX2Jsb2NrLmZpbGwoMCx0KzEpO2lmKHQ+PXRoaXMuX2ZpbmFsU2l6ZSl7dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt0aGlzLl9ibG9jay5maWxsKDApfXZhciByPXRoaXMuX2xlbio4O2lmKHI8PTQyOTQ5NjcyOTUpe3RoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUocix0aGlzLl9ibG9ja1NpemUtNCl9ZWxzZXt2YXIgaT0ociY0Mjk0OTY3Mjk1KT4+PjA7dmFyIG49KHItaSkvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKG4sdGhpcy5fYmxvY2tTaXplLTgpO3RoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoaSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgYT10aGlzLl9oYXNoKCk7cmV0dXJuIGU/YS50b1N0cmluZyhlKTphfTtIYXNoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzXCIpfTtlLmV4cG9ydHM9SGFzaH0sNDM3MTpmdW5jdGlvbihlLHQscil7dmFyIGk9ZS5leHBvcnRzPWZ1bmN0aW9uIFNIQShlKXtlPWUudG9Mb3dlckNhc2UoKTt2YXIgdD1pW2VdO2lmKCF0KXRocm93IG5ldyBFcnJvcihlK1wiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKVwiKTtyZXR1cm4gbmV3IHR9O2kuc2hhPXIoNDAxOCk7aS5zaGExPXIoNDE3OSk7aS5zaGEyMjQ9cig1MzIpO2kuc2hhMjU2PXIoMTg0Myk7aS5zaGEzODQ9cig3NDU1KTtpLnNoYTUxMj1yKDk5MzQpfSw0MDE4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDM3ODIpO3ZhciBuPXIoMjg1OCk7dmFyIGE9cig2OTExKS5CdWZmZXI7dmFyIHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4fDAsMzM5NTQ2OTc4MnwwXTt2YXIgbz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIFNoYSgpe3RoaXMuaW5pdCgpO3RoaXMuX3c9bztuLmNhbGwodGhpcyw2NCw1Nil9aShTaGEsbik7U2hhLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5fYT0xNzMyNTg0MTkzO3RoaXMuX2I9NDAyMzIzMzQxNzt0aGlzLl9jPTI1NjIzODMxMDI7dGhpcy5fZD0yNzE3MzM4Nzg7dGhpcy5fZT0zMjg1Mzc3NTIwO3JldHVybiB0aGlzfTtmdW5jdGlvbiByb3RsNShlKXtyZXR1cm4gZTw8NXxlPj4+Mjd9ZnVuY3Rpb24gcm90bDMwKGUpe3JldHVybiBlPDwzMHxlPj4+Mn1mdW5jdGlvbiBmdChlLHQscixpKXtpZihlPT09MClyZXR1cm4gdCZyfH50Jmk7aWYoZT09PTIpcmV0dXJuIHQmcnx0Jml8ciZpO3JldHVybiB0XnJeaX1TaGEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fdzt2YXIgcj10aGlzLl9hfDA7dmFyIGk9dGhpcy5fYnwwO3ZhciBuPXRoaXMuX2N8MDt2YXIgYT10aGlzLl9kfDA7dmFyIG89dGhpcy5fZXwwO2Zvcih2YXIgaD0wO2g8MTY7KytoKXRbaF09ZS5yZWFkSW50MzJCRShoKjQpO2Zvcig7aDw4MDsrK2gpdFtoXT10W2gtM11edFtoLThdXnRbaC0xNF1edFtoLTE2XTtmb3IodmFyIHU9MDt1PDgwOysrdSl7dmFyIGQ9fn4odS8yMCk7dmFyIGM9cm90bDUocikrZnQoZCxpLG4sYSkrbyt0W3VdK3NbZF18MDtvPWE7YT1uO249cm90bDMwKGkpO2k9cjtyPWN9dGhpcy5fYT1yK3RoaXMuX2F8MDt0aGlzLl9iPWkrdGhpcy5fYnwwO3RoaXMuX2M9bit0aGlzLl9jfDA7dGhpcy5fZD1hK3RoaXMuX2R8MDt0aGlzLl9lPW8rdGhpcy5fZXwwfTtTaGEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9YS5hbGxvY1Vuc2FmZSgyMCk7ZS53cml0ZUludDMyQkUodGhpcy5fYXwwLDApO2Uud3JpdGVJbnQzMkJFKHRoaXMuX2J8MCw0KTtlLndyaXRlSW50MzJCRSh0aGlzLl9jfDAsOCk7ZS53cml0ZUludDMyQkUodGhpcy5fZHwwLDEyKTtlLndyaXRlSW50MzJCRSh0aGlzLl9lfDAsMTYpO3JldHVybiBlfTtlLmV4cG9ydHM9U2hhfSw0MTc5OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yKDM3ODIpO3ZhciBuPXIoMjg1OCk7dmFyIGE9cig2OTExKS5CdWZmZXI7dmFyIHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4fDAsMzM5NTQ2OTc4MnwwXTt2YXIgbz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIFNoYTEoKXt0aGlzLmluaXQoKTt0aGlzLl93PW87bi5jYWxsKHRoaXMsNjQsNTYpfWkoU2hhMSxuKTtTaGExLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5fYT0xNzMyNTg0MTkzO3RoaXMuX2I9NDAyMzIzMzQxNzt0aGlzLl9jPTI1NjIzODMxMDI7dGhpcy5fZD0yNzE3MzM4Nzg7dGhpcy5fZT0zMjg1Mzc3NTIwO3JldHVybiB0aGlzfTtmdW5jdGlvbiByb3RsMShlKXtyZXR1cm4gZTw8MXxlPj4+MzF9ZnVuY3Rpb24gcm90bDUoZSl7cmV0dXJuIGU8PDV8ZT4+PjI3fWZ1bmN0aW9uIHJvdGwzMChlKXtyZXR1cm4gZTw8MzB8ZT4+PjJ9ZnVuY3Rpb24gZnQoZSx0LHIsaSl7aWYoZT09PTApcmV0dXJuIHQmcnx+dCZpO2lmKGU9PT0yKXJldHVybiB0JnJ8dCZpfHImaTtyZXR1cm4gdF5yXml9U2hhMS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl93O3ZhciByPXRoaXMuX2F8MDt2YXIgaT10aGlzLl9ifDA7dmFyIG49dGhpcy5fY3wwO3ZhciBhPXRoaXMuX2R8MDt2YXIgbz10aGlzLl9lfDA7Zm9yKHZhciBoPTA7aDwxNjsrK2gpdFtoXT1lLnJlYWRJbnQzMkJFKGgqNCk7Zm9yKDtoPDgwOysraCl0W2hdPXJvdGwxKHRbaC0zXV50W2gtOF1edFtoLTE0XV50W2gtMTZdKTtmb3IodmFyIHU9MDt1PDgwOysrdSl7dmFyIGQ9fn4odS8yMCk7dmFyIGM9cm90bDUocikrZnQoZCxpLG4sYSkrbyt0W3VdK3NbZF18MDtvPWE7YT1uO249cm90bDMwKGkpO2k9cjtyPWN9dGhpcy5fYT1yK3RoaXMuX2F8MDt0aGlzLl9iPWkrdGhpcy5fYnwwO3RoaXMuX2M9bit0aGlzLl9jfDA7dGhpcy5fZD1hK3RoaXMuX2R8MDt0aGlzLl9lPW8rdGhpcy5fZXwwfTtTaGExLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPWEuYWxsb2NVbnNhZmUoMjApO2Uud3JpdGVJbnQzMkJFKHRoaXMuX2F8MCwwKTtlLndyaXRlSW50MzJCRSh0aGlzLl9ifDAsNCk7ZS53cml0ZUludDMyQkUodGhpcy5fY3wwLDgpO2Uud3JpdGVJbnQzMkJFKHRoaXMuX2R8MCwxMik7ZS53cml0ZUludDMyQkUodGhpcy5fZXwwLDE2KTtyZXR1cm4gZX07ZS5leHBvcnRzPVNoYTF9LDUzMjpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDE4NDMpO3ZhciBhPXIoMjg1OCk7dmFyIHM9cig2OTExKS5CdWZmZXI7dmFyIG89bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBTaGEyMjQoKXt0aGlzLmluaXQoKTt0aGlzLl93PW87YS5jYWxsKHRoaXMsNjQsNTYpfWkoU2hhMjI0LG4pO1NoYTIyNC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuX2E9MzIzODM3MTAzMjt0aGlzLl9iPTkxNDE1MDY2Mzt0aGlzLl9jPTgxMjcwMjk5OTt0aGlzLl9kPTQxNDQ5MTI2OTc7dGhpcy5fZT00MjkwNzc1ODU3O3RoaXMuX2Y9MTc1MDYwMzAyNTt0aGlzLl9nPTE2OTQwNzY4Mzk7dGhpcy5faD0zMjA0MDc1NDI4O3JldHVybiB0aGlzfTtTaGEyMjQucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9cy5hbGxvY1Vuc2FmZSgyOCk7ZS53cml0ZUludDMyQkUodGhpcy5fYSwwKTtlLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpO2Uud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCk7ZS53cml0ZUludDMyQkUodGhpcy5fZCwxMik7ZS53cml0ZUludDMyQkUodGhpcy5fZSwxNik7ZS53cml0ZUludDMyQkUodGhpcy5fZiwyMCk7ZS53cml0ZUludDMyQkUodGhpcy5fZywyNCk7cmV0dXJuIGV9O2UuZXhwb3J0cz1TaGEyMjR9LDE4NDM6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXIoMzc4Mik7dmFyIG49cigyODU4KTt2YXIgYT1yKDY5MTEpLkJ1ZmZlcjt2YXIgcz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTt2YXIgbz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIFNoYTI1Nigpe3RoaXMuaW5pdCgpO3RoaXMuX3c9bztuLmNhbGwodGhpcyw2NCw1Nil9aShTaGEyNTYsbik7U2hhMjU2LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5fYT0xNzc5MDMzNzAzO3RoaXMuX2I9MzE0NDEzNDI3Nzt0aGlzLl9jPTEwMTM5MDQyNDI7dGhpcy5fZD0yNzczNDgwNzYyO3RoaXMuX2U9MTM1OTg5MzExOTt0aGlzLl9mPTI2MDA4MjI5MjQ7dGhpcy5fZz01Mjg3MzQ2MzU7dGhpcy5faD0xNTQxNDU5MjI1O3JldHVybiB0aGlzfTtmdW5jdGlvbiBjaChlLHQscil7cmV0dXJuIHJeZSYodF5yKX1mdW5jdGlvbiBtYWooZSx0LHIpe3JldHVybiBlJnR8ciYoZXx0KX1mdW5jdGlvbiBzaWdtYTAoZSl7cmV0dXJuKGU+Pj4yfGU8PDMwKV4oZT4+PjEzfGU8PDE5KV4oZT4+PjIyfGU8PDEwKX1mdW5jdGlvbiBzaWdtYTEoZSl7cmV0dXJuKGU+Pj42fGU8PDI2KV4oZT4+PjExfGU8PDIxKV4oZT4+PjI1fGU8PDcpfWZ1bmN0aW9uIGdhbW1hMChlKXtyZXR1cm4oZT4+Pjd8ZTw8MjUpXihlPj4+MTh8ZTw8MTQpXmU+Pj4zfWZ1bmN0aW9uIGdhbW1hMShlKXtyZXR1cm4oZT4+PjE3fGU8PDE1KV4oZT4+PjE5fGU8PDEzKV5lPj4+MTB9U2hhMjU2LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3c7dmFyIHI9dGhpcy5fYXwwO3ZhciBpPXRoaXMuX2J8MDt2YXIgbj10aGlzLl9jfDA7dmFyIGE9dGhpcy5fZHwwO3ZhciBvPXRoaXMuX2V8MDt2YXIgaD10aGlzLl9mfDA7dmFyIHU9dGhpcy5fZ3wwO3ZhciBkPXRoaXMuX2h8MDtmb3IodmFyIGM9MDtjPDE2OysrYyl0W2NdPWUucmVhZEludDMyQkUoYyo0KTtmb3IoO2M8NjQ7KytjKXRbY109Z2FtbWExKHRbYy0yXSkrdFtjLTddK2dhbW1hMCh0W2MtMTVdKSt0W2MtMTZdfDA7Zm9yKHZhciBsPTA7bDw2NDsrK2wpe3ZhciBwPWQrc2lnbWExKG8pK2NoKG8saCx1KStzW2xdK3RbbF18MDt2YXIgdj1zaWdtYTAocikrbWFqKHIsaSxuKXwwO2Q9dTt1PWg7aD1vO289YStwfDA7YT1uO249aTtpPXI7cj1wK3Z8MH10aGlzLl9hPXIrdGhpcy5fYXwwO3RoaXMuX2I9aSt0aGlzLl9ifDA7dGhpcy5fYz1uK3RoaXMuX2N8MDt0aGlzLl9kPWErdGhpcy5fZHwwO3RoaXMuX2U9byt0aGlzLl9lfDA7dGhpcy5fZj1oK3RoaXMuX2Z8MDt0aGlzLl9nPXUrdGhpcy5fZ3wwO3RoaXMuX2g9ZCt0aGlzLl9ofDB9O1NoYTI1Ni5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgZT1hLmFsbG9jVW5zYWZlKDMyKTtlLndyaXRlSW50MzJCRSh0aGlzLl9hLDApO2Uud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCk7ZS53cml0ZUludDMyQkUodGhpcy5fYyw4KTtlLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKTtlLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KTtlLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKTtlLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KTtlLndyaXRlSW50MzJCRSh0aGlzLl9oLDI4KTtyZXR1cm4gZX07ZS5leHBvcnRzPVNoYTI1Nn0sNzQ1NTpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDk5MzQpO3ZhciBhPXIoMjg1OCk7dmFyIHM9cig2OTExKS5CdWZmZXI7dmFyIG89bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gU2hhMzg0KCl7dGhpcy5pbml0KCk7dGhpcy5fdz1vO2EuY2FsbCh0aGlzLDEyOCwxMTIpfWkoU2hhMzg0LG4pO1NoYTM4NC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuX2FoPTM0MTgwNzAzNjU7dGhpcy5fYmg9MTY1NDI3MDI1MDt0aGlzLl9jaD0yNDM4NTI5MzcwO3RoaXMuX2RoPTM1NTQ2MjM2MDt0aGlzLl9laD0xNzMxNDA1NDE1O3RoaXMuX2ZoPTIzOTQxODAyMzE7dGhpcy5fZ2g9MzY3NTAwODUyNTt0aGlzLl9oaD0xMjAzMDYyODEzO3RoaXMuX2FsPTMyMzgzNzEwMzI7dGhpcy5fYmw9OTE0MTUwNjYzO3RoaXMuX2NsPTgxMjcwMjk5OTt0aGlzLl9kbD00MTQ0OTEyNjk3O3RoaXMuX2VsPTQyOTA3NzU4NTc7dGhpcy5fZmw9MTc1MDYwMzAyNTt0aGlzLl9nbD0xNjk0MDc2ODM5O3RoaXMuX2hsPTMyMDQwNzU0Mjg7cmV0dXJuIHRoaXN9O1NoYTM4NC5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgZT1zLmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiB3cml0ZUludDY0QkUodCxyLGkpe2Uud3JpdGVJbnQzMkJFKHQsaSk7ZS53cml0ZUludDMyQkUocixpKzQpfXdyaXRlSW50NjRCRSh0aGlzLl9haCx0aGlzLl9hbCwwKTt3cml0ZUludDY0QkUodGhpcy5fYmgsdGhpcy5fYmwsOCk7d3JpdGVJbnQ2NEJFKHRoaXMuX2NoLHRoaXMuX2NsLDE2KTt3cml0ZUludDY0QkUodGhpcy5fZGgsdGhpcy5fZGwsMjQpO3dyaXRlSW50NjRCRSh0aGlzLl9laCx0aGlzLl9lbCwzMik7d3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKTtyZXR1cm4gZX07ZS5leHBvcnRzPVNoYTM4NH0sOTkzNDpmdW5jdGlvbihlLHQscil7dmFyIGk9cigzNzgyKTt2YXIgbj1yKDI4NTgpO3ZhciBhPXIoNjkxMSkuQnVmZmVyO3ZhciBzPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV07dmFyIG89bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gU2hhNTEyKCl7dGhpcy5pbml0KCk7dGhpcy5fdz1vO24uY2FsbCh0aGlzLDEyOCwxMTIpfWkoU2hhNTEyLG4pO1NoYTUxMi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuX2FoPTE3NzkwMzM3MDM7dGhpcy5fYmg9MzE0NDEzNDI3Nzt0aGlzLl9jaD0xMDEzOTA0MjQyO3RoaXMuX2RoPTI3NzM0ODA3NjI7dGhpcy5fZWg9MTM1OTg5MzExOTt0aGlzLl9maD0yNjAwODIyOTI0O3RoaXMuX2doPTUyODczNDYzNTt0aGlzLl9oaD0xNTQxNDU5MjI1O3RoaXMuX2FsPTQwODkyMzU3MjA7dGhpcy5fYmw9MjIyNzg3MzU5NTt0aGlzLl9jbD00MjcxMTc1NzIzO3RoaXMuX2RsPTE1OTU3NTAxMjk7dGhpcy5fZWw9MjkxNzU2NTEzNzt0aGlzLl9mbD03MjU1MTExOTk7dGhpcy5fZ2w9NDIxNTM4OTU0Nzt0aGlzLl9obD0zMjcwMzMyMDk7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIENoKGUsdCxyKXtyZXR1cm4gcl5lJih0XnIpfWZ1bmN0aW9uIG1haihlLHQscil7cmV0dXJuIGUmdHxyJihlfHQpfWZ1bmN0aW9uIHNpZ21hMChlLHQpe3JldHVybihlPj4+Mjh8dDw8NCleKHQ+Pj4yfGU8PDMwKV4odD4+Pjd8ZTw8MjUpfWZ1bmN0aW9uIHNpZ21hMShlLHQpe3JldHVybihlPj4+MTR8dDw8MTgpXihlPj4+MTh8dDw8MTQpXih0Pj4+OXxlPDwyMyl9ZnVuY3Rpb24gR2FtbWEwKGUsdCl7cmV0dXJuKGU+Pj4xfHQ8PDMxKV4oZT4+Pjh8dDw8MjQpXmU+Pj43fWZ1bmN0aW9uIEdhbW1hMGwoZSx0KXtyZXR1cm4oZT4+PjF8dDw8MzEpXihlPj4+OHx0PDwyNCleKGU+Pj43fHQ8PDI1KX1mdW5jdGlvbiBHYW1tYTEoZSx0KXtyZXR1cm4oZT4+PjE5fHQ8PDEzKV4odD4+PjI5fGU8PDMpXmU+Pj42fWZ1bmN0aW9uIEdhbW1hMWwoZSx0KXtyZXR1cm4oZT4+PjE5fHQ8PDEzKV4odD4+PjI5fGU8PDMpXihlPj4+Nnx0PDwyNil9ZnVuY3Rpb24gZ2V0Q2FycnkoZSx0KXtyZXR1cm4gZT4+PjA8dD4+PjA/MTowfVNoYTUxMi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl93O3ZhciByPXRoaXMuX2FofDA7dmFyIGk9dGhpcy5fYmh8MDt2YXIgbj10aGlzLl9jaHwwO3ZhciBhPXRoaXMuX2RofDA7dmFyIG89dGhpcy5fZWh8MDt2YXIgaD10aGlzLl9maHwwO3ZhciB1PXRoaXMuX2dofDA7dmFyIGQ9dGhpcy5faGh8MDt2YXIgYz10aGlzLl9hbHwwO3ZhciBsPXRoaXMuX2JsfDA7dmFyIHA9dGhpcy5fY2x8MDt2YXIgdj10aGlzLl9kbHwwO3ZhciBiPXRoaXMuX2VsfDA7dmFyIG09dGhpcy5fZmx8MDt2YXIgeT10aGlzLl9nbHwwO3ZhciBnPXRoaXMuX2hsfDA7Zm9yKHZhciBfPTA7XzwzMjtfKz0yKXt0W19dPWUucmVhZEludDMyQkUoXyo0KTt0W18rMV09ZS5yZWFkSW50MzJCRShfKjQrNCl9Zm9yKDtfPDE2MDtfKz0yKXt2YXIgdz10W18tMTUqMl07dmFyIE09dFtfLTE1KjIrMV07dmFyIEI9R2FtbWEwKHcsTSk7dmFyIEU9R2FtbWEwbChNLHcpO3c9dFtfLTIqMl07TT10W18tMioyKzFdO3ZhciBrPUdhbW1hMSh3LE0pO3ZhciBBPUdhbW1hMWwoTSx3KTt2YXIgTj10W18tNyoyXTt2YXIgUD10W18tNyoyKzFdO3ZhciB4PXRbXy0xNioyXTt2YXIgST10W18tMTYqMisxXTt2YXIgQz1FK1B8MDt2YXIgRD1CK04rZ2V0Q2FycnkoQyxFKXwwO0M9QytBfDA7RD1EK2srZ2V0Q2FycnkoQyxBKXwwO0M9QytJfDA7RD1EK3grZ2V0Q2FycnkoQyxJKXwwO3RbX109RDt0W18rMV09Q31mb3IodmFyIFQ9MDtUPDE2MDtUKz0yKXtEPXRbVF07Qz10W1QrMV07dmFyIGo9bWFqKHIsaSxuKTt2YXIgcT1tYWooYyxsLHApO3ZhciBPPXNpZ21hMChyLGMpO3ZhciBIPXNpZ21hMChjLHIpO3ZhciBMPXNpZ21hMShvLGIpO3ZhciB6PXNpZ21hMShiLG8pO3ZhciBGPXNbVF07dmFyIFU9c1tUKzFdO3ZhciBXPUNoKG8saCx1KTt2YXIgVj1DaChiLG0seSk7dmFyIEc9Zyt6fDA7dmFyIEo9ZCtMK2dldENhcnJ5KEcsZyl8MDtHPUcrVnwwO0o9SitXK2dldENhcnJ5KEcsVil8MDtHPUcrVXwwO0o9SitGK2dldENhcnJ5KEcsVSl8MDtHPUcrQ3wwO0o9SitEK2dldENhcnJ5KEcsQyl8MDt2YXIgWj1IK3F8MDt2YXIgWD1PK2orZ2V0Q2FycnkoWixIKXwwO2Q9dTtnPXk7dT1oO3k9bTtoPW87bT1iO2I9ditHfDA7bz1hK0orZ2V0Q2FycnkoYix2KXwwO2E9bjt2PXA7bj1pO3A9bDtpPXI7bD1jO2M9RytafDA7cj1KK1grZ2V0Q2FycnkoYyxHKXwwfXRoaXMuX2FsPXRoaXMuX2FsK2N8MDt0aGlzLl9ibD10aGlzLl9ibCtsfDA7dGhpcy5fY2w9dGhpcy5fY2wrcHwwO3RoaXMuX2RsPXRoaXMuX2RsK3Z8MDt0aGlzLl9lbD10aGlzLl9lbCtifDA7dGhpcy5fZmw9dGhpcy5fZmwrbXwwO3RoaXMuX2dsPXRoaXMuX2dsK3l8MDt0aGlzLl9obD10aGlzLl9obCtnfDA7dGhpcy5fYWg9dGhpcy5fYWgrcitnZXRDYXJyeSh0aGlzLl9hbCxjKXwwO3RoaXMuX2JoPXRoaXMuX2JoK2krZ2V0Q2FycnkodGhpcy5fYmwsbCl8MDt0aGlzLl9jaD10aGlzLl9jaCtuK2dldENhcnJ5KHRoaXMuX2NsLHApfDA7dGhpcy5fZGg9dGhpcy5fZGgrYStnZXRDYXJyeSh0aGlzLl9kbCx2KXwwO3RoaXMuX2VoPXRoaXMuX2VoK28rZ2V0Q2FycnkodGhpcy5fZWwsYil8MDt0aGlzLl9maD10aGlzLl9maCtoK2dldENhcnJ5KHRoaXMuX2ZsLG0pfDA7dGhpcy5fZ2g9dGhpcy5fZ2grdStnZXRDYXJyeSh0aGlzLl9nbCx5KXwwO3RoaXMuX2hoPXRoaXMuX2hoK2QrZ2V0Q2FycnkodGhpcy5faGwsZyl8MH07U2hhNTEyLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPWEuYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIHdyaXRlSW50NjRCRSh0LHIsaSl7ZS53cml0ZUludDMyQkUodCxpKTtlLndyaXRlSW50MzJCRShyLGkrNCl9d3JpdGVJbnQ2NEJFKHRoaXMuX2FoLHRoaXMuX2FsLDApO3dyaXRlSW50NjRCRSh0aGlzLl9iaCx0aGlzLl9ibCw4KTt3cml0ZUludDY0QkUodGhpcy5fY2gsdGhpcy5fY2wsMTYpO3dyaXRlSW50NjRCRSh0aGlzLl9kaCx0aGlzLl9kbCwyNCk7d3JpdGVJbnQ2NEJFKHRoaXMuX2VoLHRoaXMuX2VsLDMyKTt3cml0ZUludDY0QkUodGhpcy5fZmgsdGhpcy5fZmwsNDApO3dyaXRlSW50NjRCRSh0aGlzLl9naCx0aGlzLl9nbCw0OCk7d3JpdGVJbnQ2NEJFKHRoaXMuX2hoLHRoaXMuX2hsLDU2KTtyZXR1cm4gZX07ZS5leHBvcnRzPVNoYTUxMn0sMzcwNDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9cig1MDU1KS5CdWZmZXI7dmFyIG49aS5pc0VuY29kaW5nfHxmdW5jdGlvbihlKXtlPVwiXCIrZTtzd2l0Y2goZSYmZS50b0xvd2VyQ2FzZSgpKXtjYXNlXCJoZXhcIjpjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpjYXNlXCJhc2NpaVwiOmNhc2VcImJpbmFyeVwiOmNhc2VcImJhc2U2NFwiOmNhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOmNhc2VcInJhd1wiOnJldHVybiB0cnVlO2RlZmF1bHQ6cmV0dXJuIGZhbHNlfX07ZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKGUpe2lmKCFlKXJldHVyblwidXRmOFwiO3ZhciB0O3doaWxlKHRydWUpe3N3aXRjaChlKXtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpyZXR1cm5cInV0ZjhcIjtjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm5cInV0ZjE2bGVcIjtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm5cImxhdGluMVwiO2Nhc2VcImJhc2U2NFwiOmNhc2VcImFzY2lpXCI6Y2FzZVwiaGV4XCI6cmV0dXJuIGU7ZGVmYXVsdDppZih0KXJldHVybjtlPShcIlwiK2UpLnRvTG93ZXJDYXNlKCk7dD10cnVlfX19ZnVuY3Rpb24gbm9ybWFsaXplRW5jb2RpbmcoZSl7dmFyIHQ9X25vcm1hbGl6ZUVuY29kaW5nKGUpO2lmKHR5cGVvZiB0IT09XCJzdHJpbmdcIiYmKGkuaXNFbmNvZGluZz09PW58fCFuKGUpKSl0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIitlKTtyZXR1cm4gdHx8ZX10LnM9U3RyaW5nRGVjb2RlcjtmdW5jdGlvbiBTdHJpbmdEZWNvZGVyKGUpe3RoaXMuZW5jb2Rpbmc9bm9ybWFsaXplRW5jb2RpbmcoZSk7dmFyIHQ7c3dpdGNoKHRoaXMuZW5jb2Rpbmcpe2Nhc2VcInV0ZjE2bGVcIjp0aGlzLnRleHQ9dXRmMTZUZXh0O3RoaXMuZW5kPXV0ZjE2RW5kO3Q9NDticmVhaztjYXNlXCJ1dGY4XCI6dGhpcy5maWxsTGFzdD11dGY4RmlsbExhc3Q7dD00O2JyZWFrO2Nhc2VcImJhc2U2NFwiOnRoaXMudGV4dD1iYXNlNjRUZXh0O3RoaXMuZW5kPWJhc2U2NEVuZDt0PTM7YnJlYWs7ZGVmYXVsdDp0aGlzLndyaXRlPXNpbXBsZVdyaXRlO3RoaXMuZW5kPXNpbXBsZUVuZDtyZXR1cm59dGhpcy5sYXN0TmVlZD0wO3RoaXMubGFzdFRvdGFsPTA7dGhpcy5sYXN0Q2hhcj1pLmFsbG9jVW5zYWZlKHQpfVN0cmluZ0RlY29kZXIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm5cIlwiO3ZhciB0O3ZhciByO2lmKHRoaXMubGFzdE5lZWQpe3Q9dGhpcy5maWxsTGFzdChlKTtpZih0PT09dW5kZWZpbmVkKXJldHVyblwiXCI7cj10aGlzLmxhc3ROZWVkO3RoaXMubGFzdE5lZWQ9MH1lbHNle3I9MH1pZihyPGUubGVuZ3RoKXJldHVybiB0P3QrdGhpcy50ZXh0KGUscik6dGhpcy50ZXh0KGUscik7cmV0dXJuIHR8fFwiXCJ9O1N0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZD11dGY4RW5kO1N0cmluZ0RlY29kZXIucHJvdG90eXBlLnRleHQ9dXRmOFRleHQ7U3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24oZSl7aWYodGhpcy5sYXN0TmVlZDw9ZS5sZW5ndGgpe2UuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKTtyZXR1cm4gdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpfWUuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCxlLmxlbmd0aCk7dGhpcy5sYXN0TmVlZC09ZS5sZW5ndGh9O2Z1bmN0aW9uIHV0ZjhDaGVja0J5dGUoZSl7aWYoZTw9MTI3KXJldHVybiAwO2Vsc2UgaWYoZT4+NT09PTYpcmV0dXJuIDI7ZWxzZSBpZihlPj40PT09MTQpcmV0dXJuIDM7ZWxzZSBpZihlPj4zPT09MzApcmV0dXJuIDQ7cmV0dXJuIGU+PjY9PT0yPy0xOi0yfWZ1bmN0aW9uIHV0ZjhDaGVja0luY29tcGxldGUoZSx0LHIpe3ZhciBpPXQubGVuZ3RoLTE7aWYoaTxyKXJldHVybiAwO3ZhciBuPXV0ZjhDaGVja0J5dGUodFtpXSk7aWYobj49MCl7aWYobj4wKWUubGFzdE5lZWQ9bi0xO3JldHVybiBufWlmKC0taTxyfHxuPT09LTIpcmV0dXJuIDA7bj11dGY4Q2hlY2tCeXRlKHRbaV0pO2lmKG4+PTApe2lmKG4+MCllLmxhc3ROZWVkPW4tMjtyZXR1cm4gbn1pZigtLWk8cnx8bj09PS0yKXJldHVybiAwO249dXRmOENoZWNrQnl0ZSh0W2ldKTtpZihuPj0wKXtpZihuPjApe2lmKG49PT0yKW49MDtlbHNlIGUubGFzdE5lZWQ9bi0zfXJldHVybiBufXJldHVybiAwfWZ1bmN0aW9uIHV0ZjhDaGVja0V4dHJhQnl0ZXMoZSx0LHIpe2lmKCh0WzBdJjE5MikhPT0xMjgpe2UubGFzdE5lZWQ9MDtyZXR1cm5cIu+/vVwifWlmKGUubGFzdE5lZWQ+MSYmdC5sZW5ndGg+MSl7aWYoKHRbMV0mMTkyKSE9PTEyOCl7ZS5sYXN0TmVlZD0xO3JldHVyblwi77+9XCJ9aWYoZS5sYXN0TmVlZD4yJiZ0Lmxlbmd0aD4yKXtpZigodFsyXSYxOTIpIT09MTI4KXtlLmxhc3ROZWVkPTI7cmV0dXJuXCLvv71cIn19fX1mdW5jdGlvbiB1dGY4RmlsbExhc3QoZSl7dmFyIHQ9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZDt2YXIgcj11dGY4Q2hlY2tFeHRyYUJ5dGVzKHRoaXMsZSx0KTtpZihyIT09dW5kZWZpbmVkKXJldHVybiByO2lmKHRoaXMubGFzdE5lZWQ8PWUubGVuZ3RoKXtlLmNvcHkodGhpcy5sYXN0Q2hhcix0LDAsdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKX1lLmNvcHkodGhpcy5sYXN0Q2hhcix0LDAsZS5sZW5ndGgpO3RoaXMubGFzdE5lZWQtPWUubGVuZ3RofWZ1bmN0aW9uIHV0ZjhUZXh0KGUsdCl7dmFyIHI9dXRmOENoZWNrSW5jb21wbGV0ZSh0aGlzLGUsdCk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIGUudG9TdHJpbmcoXCJ1dGY4XCIsdCk7dGhpcy5sYXN0VG90YWw9cjt2YXIgaT1lLmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTtlLmNvcHkodGhpcy5sYXN0Q2hhciwwLGkpO3JldHVybiBlLnRvU3RyaW5nKFwidXRmOFwiLHQsaSl9ZnVuY3Rpb24gdXRmOEVuZChlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOlwiXCI7aWYodGhpcy5sYXN0TmVlZClyZXR1cm4gdCtcIu+/vVwiO3JldHVybiB0fWZ1bmN0aW9uIHV0ZjE2VGV4dChlLHQpe2lmKChlLmxlbmd0aC10KSUyPT09MCl7dmFyIHI9ZS50b1N0cmluZyhcInV0ZjE2bGVcIix0KTtpZihyKXt2YXIgaT1yLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk7aWYoaT49NTUyOTYmJmk8PTU2MzE5KXt0aGlzLmxhc3ROZWVkPTI7dGhpcy5sYXN0VG90YWw9NDt0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMl07dGhpcy5sYXN0Q2hhclsxXT1lW2UubGVuZ3RoLTFdO3JldHVybiByLnNsaWNlKDAsLTEpfX1yZXR1cm4gcn10aGlzLmxhc3ROZWVkPTE7dGhpcy5sYXN0VG90YWw9Mjt0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMV07cmV0dXJuIGUudG9TdHJpbmcoXCJ1dGYxNmxlXCIsdCxlLmxlbmd0aC0xKX1mdW5jdGlvbiB1dGYxNkVuZChlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOlwiXCI7aWYodGhpcy5sYXN0TmVlZCl7dmFyIHI9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZDtyZXR1cm4gdCt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKFwidXRmMTZsZVwiLDAscil9cmV0dXJuIHR9ZnVuY3Rpb24gYmFzZTY0VGV4dChlLHQpe3ZhciByPShlLmxlbmd0aC10KSUzO2lmKHI9PT0wKXJldHVybiBlLnRvU3RyaW5nKFwiYmFzZTY0XCIsdCk7dGhpcy5sYXN0TmVlZD0zLXI7dGhpcy5sYXN0VG90YWw9MztpZihyPT09MSl7dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdfWVsc2V7dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTJdO3RoaXMubGFzdENoYXJbMV09ZVtlLmxlbmd0aC0xXX1yZXR1cm4gZS50b1N0cmluZyhcImJhc2U2NFwiLHQsZS5sZW5ndGgtcil9ZnVuY3Rpb24gYmFzZTY0RW5kKGUpe3ZhciB0PWUmJmUubGVuZ3RoP3RoaXMud3JpdGUoZSk6XCJcIjtpZih0aGlzLmxhc3ROZWVkKXJldHVybiB0K3RoaXMubGFzdENoYXIudG9TdHJpbmcoXCJiYXNlNjRcIiwwLDMtdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHR9ZnVuY3Rpb24gc2ltcGxlV3JpdGUoZSl7cmV0dXJuIGUudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gc2ltcGxlRW5kKGUpe3JldHVybiBlJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOlwiXCJ9fSw2NzY5OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1kZXByZWNhdGU7ZnVuY3Rpb24gZGVwcmVjYXRlKGUsdCl7aWYoY29uZmlnKFwibm9EZXByZWNhdGlvblwiKSl7cmV0dXJuIGV9dmFyIHI9ZmFsc2U7ZnVuY3Rpb24gZGVwcmVjYXRlZCgpe2lmKCFyKXtpZihjb25maWcoXCJ0aHJvd0RlcHJlY2F0aW9uXCIpKXt0aHJvdyBuZXcgRXJyb3IodCl9ZWxzZSBpZihjb25maWcoXCJ0cmFjZURlcHJlY2F0aW9uXCIpKXtjb25zb2xlLnRyYWNlKHQpfWVsc2V7Y29uc29sZS53YXJuKHQpfXI9dHJ1ZX1yZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGRlcHJlY2F0ZWR9ZnVuY3Rpb24gY29uZmlnKGUpe3RyeXtpZighZ2xvYmFsLmxvY2FsU3RvcmFnZSlyZXR1cm4gZmFsc2V9Y2F0Y2goZSl7cmV0dXJuIGZhbHNlfXZhciB0PWdsb2JhbC5sb2NhbFN0b3JhZ2VbZV07aWYobnVsbD09dClyZXR1cm4gZmFsc2U7cmV0dXJuIFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpPT09XCJ0cnVlXCJ9fSw0MzAwOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwiYnVmZmVyXCIpfSw2MTEzOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwiY3J5cHRvXCIpfSwyMzYxOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwiZXZlbnRzXCIpfSwyNzgxOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwic3RyZWFtXCIpfSwxNTc2OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwic3RyaW5nX2RlY29kZXJcIil9LDM4Mzc6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXJlcXVpcmUoXCJ1dGlsXCIpfSw2MTQ0OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwidm1cIil9LDU4NjY6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImFlcy0xMjgtZWNiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MCxcIm1vZGVcIjpcIkVDQlwiLFwidHlwZVwiOlwiYmxvY2tcIn0sXCJhZXMtMTkyLWVjYlwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxOTIsXCJpdlwiOjAsXCJtb2RlXCI6XCJFQ0JcIixcInR5cGVcIjpcImJsb2NrXCJ9LFwiYWVzLTI1Ni1lY2JcIjp7XCJjaXBoZXJcIjpcIkFFU1wiLFwia2V5XCI6MjU2LFwiaXZcIjowLFwibW9kZVwiOlwiRUNCXCIsXCJ0eXBlXCI6XCJibG9ja1wifSxcImFlcy0xMjgtY2JjXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MTYsXCJtb2RlXCI6XCJDQkNcIixcInR5cGVcIjpcImJsb2NrXCJ9LFwiYWVzLTE5Mi1jYmNcIjp7XCJjaXBoZXJcIjpcIkFFU1wiLFwia2V5XCI6MTkyLFwiaXZcIjoxNixcIm1vZGVcIjpcIkNCQ1wiLFwidHlwZVwiOlwiYmxvY2tcIn0sXCJhZXMtMjU2LWNiY1wiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoyNTYsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0JDXCIsXCJ0eXBlXCI6XCJibG9ja1wifSxcImFlczEyOFwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxMjgsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0JDXCIsXCJ0eXBlXCI6XCJibG9ja1wifSxcImFlczE5MlwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxOTIsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0JDXCIsXCJ0eXBlXCI6XCJibG9ja1wifSxcImFlczI1NlwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoyNTYsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0JDXCIsXCJ0eXBlXCI6XCJibG9ja1wifSxcImFlcy0xMjgtY2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MTYsXCJtb2RlXCI6XCJDRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xOTItY2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjE5MixcIml2XCI6MTYsXCJtb2RlXCI6XCJDRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0yNTYtY2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjI1NixcIml2XCI6MTYsXCJtb2RlXCI6XCJDRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xMjgtY2ZiOFwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxMjgsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0ZCOFwiLFwidHlwZVwiOlwic3RyZWFtXCJ9LFwiYWVzLTE5Mi1jZmI4XCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjE5MixcIml2XCI6MTYsXCJtb2RlXCI6XCJDRkI4XCIsXCJ0eXBlXCI6XCJzdHJlYW1cIn0sXCJhZXMtMjU2LWNmYjhcIjp7XCJjaXBoZXJcIjpcIkFFU1wiLFwia2V5XCI6MjU2LFwiaXZcIjoxNixcIm1vZGVcIjpcIkNGQjhcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xMjgtY2ZiMVwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxMjgsXCJpdlwiOjE2LFwibW9kZVwiOlwiQ0ZCMVwiLFwidHlwZVwiOlwic3RyZWFtXCJ9LFwiYWVzLTE5Mi1jZmIxXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjE5MixcIml2XCI6MTYsXCJtb2RlXCI6XCJDRkIxXCIsXCJ0eXBlXCI6XCJzdHJlYW1cIn0sXCJhZXMtMjU2LWNmYjFcIjp7XCJjaXBoZXJcIjpcIkFFU1wiLFwia2V5XCI6MjU2LFwiaXZcIjoxNixcIm1vZGVcIjpcIkNGQjFcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xMjgtb2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MTYsXCJtb2RlXCI6XCJPRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xOTItb2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjE5MixcIml2XCI6MTYsXCJtb2RlXCI6XCJPRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0yNTYtb2ZiXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjI1NixcIml2XCI6MTYsXCJtb2RlXCI6XCJPRkJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xMjgtY3RyXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MTYsXCJtb2RlXCI6XCJDVFJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xOTItY3RyXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjE5MixcIml2XCI6MTYsXCJtb2RlXCI6XCJDVFJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0yNTYtY3RyXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjI1NixcIml2XCI6MTYsXCJtb2RlXCI6XCJDVFJcIixcInR5cGVcIjpcInN0cmVhbVwifSxcImFlcy0xMjgtZ2NtXCI6e1wiY2lwaGVyXCI6XCJBRVNcIixcImtleVwiOjEyOCxcIml2XCI6MTIsXCJtb2RlXCI6XCJHQ01cIixcInR5cGVcIjpcImF1dGhcIn0sXCJhZXMtMTkyLWdjbVwiOntcImNpcGhlclwiOlwiQUVTXCIsXCJrZXlcIjoxOTIsXCJpdlwiOjEyLFwibW9kZVwiOlwiR0NNXCIsXCJ0eXBlXCI6XCJhdXRoXCJ9LFwiYWVzLTI1Ni1nY21cIjp7XCJjaXBoZXJcIjpcIkFFU1wiLFwia2V5XCI6MjU2LFwiaXZcIjoxMixcIm1vZGVcIjpcIkdDTVwiLFwidHlwZVwiOlwiYXV0aFwifX0nKX0sMjkwODpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wic2hhMjI0V2l0aFJTQUVuY3J5cHRpb25cIjp7XCJzaWduXCI6XCJyc2FcIixcImhhc2hcIjpcInNoYTIyNFwiLFwiaWRcIjpcIjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjXCJ9LFwiUlNBLVNIQTIyNFwiOntcInNpZ25cIjpcImVjZHNhL3JzYVwiLFwiaGFzaFwiOlwic2hhMjI0XCIsXCJpZFwiOlwiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWNcIn0sXCJzaGEyNTZXaXRoUlNBRW5jcnlwdGlvblwiOntcInNpZ25cIjpcInJzYVwiLFwiaGFzaFwiOlwic2hhMjU2XCIsXCJpZFwiOlwiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjBcIn0sXCJSU0EtU0hBMjU2XCI6e1wic2lnblwiOlwiZWNkc2EvcnNhXCIsXCJoYXNoXCI6XCJzaGEyNTZcIixcImlkXCI6XCIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMFwifSxcInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uXCI6e1wic2lnblwiOlwicnNhXCIsXCJoYXNoXCI6XCJzaGEzODRcIixcImlkXCI6XCIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMFwifSxcIlJTQS1TSEEzODRcIjp7XCJzaWduXCI6XCJlY2RzYS9yc2FcIixcImhhc2hcIjpcInNoYTM4NFwiLFwiaWRcIjpcIjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwXCJ9LFwic2hhNTEyV2l0aFJTQUVuY3J5cHRpb25cIjp7XCJzaWduXCI6XCJyc2FcIixcImhhc2hcIjpcInNoYTUxMlwiLFwiaWRcIjpcIjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1MDAwNDQwXCJ9LFwiUlNBLVNIQTUxMlwiOntcInNpZ25cIjpcImVjZHNhL3JzYVwiLFwiaGFzaFwiOlwic2hhNTEyXCIsXCJpZFwiOlwiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDBcIn0sXCJSU0EtU0hBMVwiOntcInNpZ25cIjpcInJzYVwiLFwiaGFzaFwiOlwic2hhMVwiLFwiaWRcIjpcIjMwMjEzMDA5MDYwNTJiMGUwMzAyMWEwNTAwMDQxNFwifSxcImVjZHNhLXdpdGgtU0hBMVwiOntcInNpZ25cIjpcImVjZHNhXCIsXCJoYXNoXCI6XCJzaGExXCIsXCJpZFwiOlwiXCJ9LFwic2hhMjU2XCI6e1wic2lnblwiOlwiZWNkc2FcIixcImhhc2hcIjpcInNoYTI1NlwiLFwiaWRcIjpcIlwifSxcInNoYTIyNFwiOntcInNpZ25cIjpcImVjZHNhXCIsXCJoYXNoXCI6XCJzaGEyMjRcIixcImlkXCI6XCJcIn0sXCJzaGEzODRcIjp7XCJzaWduXCI6XCJlY2RzYVwiLFwiaGFzaFwiOlwic2hhMzg0XCIsXCJpZFwiOlwiXCJ9LFwic2hhNTEyXCI6e1wic2lnblwiOlwiZWNkc2FcIixcImhhc2hcIjpcInNoYTUxMlwiLFwiaWRcIjpcIlwifSxcIkRTQS1TSEFcIjp7XCJzaWduXCI6XCJkc2FcIixcImhhc2hcIjpcInNoYTFcIixcImlkXCI6XCJcIn0sXCJEU0EtU0hBMVwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhMVwiLFwiaWRcIjpcIlwifSxcIkRTQVwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhMVwiLFwiaWRcIjpcIlwifSxcIkRTQS1XSVRILVNIQTIyNFwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhMjI0XCIsXCJpZFwiOlwiXCJ9LFwiRFNBLVNIQTIyNFwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhMjI0XCIsXCJpZFwiOlwiXCJ9LFwiRFNBLVdJVEgtU0hBMjU2XCI6e1wic2lnblwiOlwiZHNhXCIsXCJoYXNoXCI6XCJzaGEyNTZcIixcImlkXCI6XCJcIn0sXCJEU0EtU0hBMjU2XCI6e1wic2lnblwiOlwiZHNhXCIsXCJoYXNoXCI6XCJzaGEyNTZcIixcImlkXCI6XCJcIn0sXCJEU0EtV0lUSC1TSEEzODRcIjp7XCJzaWduXCI6XCJkc2FcIixcImhhc2hcIjpcInNoYTM4NFwiLFwiaWRcIjpcIlwifSxcIkRTQS1TSEEzODRcIjp7XCJzaWduXCI6XCJkc2FcIixcImhhc2hcIjpcInNoYTM4NFwiLFwiaWRcIjpcIlwifSxcIkRTQS1XSVRILVNIQTUxMlwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhNTEyXCIsXCJpZFwiOlwiXCJ9LFwiRFNBLVNIQTUxMlwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwic2hhNTEyXCIsXCJpZFwiOlwiXCJ9LFwiRFNBLVJJUEVNRDE2MFwiOntcInNpZ25cIjpcImRzYVwiLFwiaGFzaFwiOlwicm1kMTYwXCIsXCJpZFwiOlwiXCJ9LFwicmlwZW1kMTYwV2l0aFJTQVwiOntcInNpZ25cIjpcInJzYVwiLFwiaGFzaFwiOlwicm1kMTYwXCIsXCJpZFwiOlwiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0XCJ9LFwiUlNBLVJJUEVNRDE2MFwiOntcInNpZ25cIjpcInJzYVwiLFwiaGFzaFwiOlwicm1kMTYwXCIsXCJpZFwiOlwiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0XCJ9LFwibWQ1V2l0aFJTQUVuY3J5cHRpb25cIjp7XCJzaWduXCI6XCJyc2FcIixcImhhc2hcIjpcIm1kNVwiLFwiaWRcIjpcIjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMFwifSxcIlJTQS1NRDVcIjp7XCJzaWduXCI6XCJyc2FcIixcImhhc2hcIjpcIm1kNVwiLFwiaWRcIjpcIjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMFwifX0nKX0sOTI2NzpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiMS4zLjEzMi4wLjEwXCI6XCJzZWNwMjU2azFcIixcIjEuMy4xMzIuMC4zM1wiOlwicDIyNFwiLFwiMS4yLjg0MC4xMDA0NS4zLjEuMVwiOlwicDE5MlwiLFwiMS4yLjg0MC4xMDA0NS4zLjEuN1wiOlwicDI1NlwiLFwiMS4zLjEzMi4wLjM0XCI6XCJwMzg0XCIsXCIxLjMuMTMyLjAuMzVcIjpcInA1MjFcIn0nKX0sNzk5MjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wibW9kcDFcIjp7XCJnZW5cIjpcIjAyXCIsXCJwcmltZVwiOlwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmXCJ9LFwibW9kcDJcIjp7XCJnZW5cIjpcIjAyXCIsXCJwcmltZVwiOlwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTY1MzgxZmZmZmZmZmZmZmZmZmZmZlwifSxcIm1vZHA1XCI6e1wiZ2VuXCI6XCIwMlwiLFwicHJpbWVcIjpcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZlwifSxcIm1vZHAxNFwiOntcImdlblwiOlwiMDJcIixcInByaW1lXCI6XCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZlwifSxcIm1vZHAxNVwiOntcImdlblwiOlwiMDJcIixcInByaW1lXCI6XCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTNhZDJjYWZmZmZmZmZmZmZmZmZmZmZcIn0sXCJtb2RwMTZcIjp7XCJnZW5cIjpcIjAyXCIsXCJwcmltZVwiOlwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZlwifSxcIm1vZHAxN1wiOntcImdlblwiOlwiMDJcIixcInByaW1lXCI6XCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZmZmZmZmZmZmZcIn0sXCJtb2RwMThcIjp7XCJnZW5cIjpcIjAyXCIsXCJwcmltZVwiOlwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRiZTExNTk3NGEzOTI2ZjEyZmVlNWU0Mzg3NzdjYjZhOTMyZGY4Y2Q4YmVjNGQwNzNiOTMxYmEzYmM4MzJiNjhkOWRkMzAwNzQxZmE3YmY4YWZjNDdlZDI1NzZmNjkzNmJhNDI0NjYzYWFiNjM5YzVhZTRmNTY4MzQyM2I0NzQyYmYxYzk3ODIzOGYxNmNiZTM5ZDY1MmRlM2ZkYjhiZWZjODQ4YWQ5MjIyMjJlMDRhNDAzN2MwNzEzZWI1N2E4MWEyM2YwYzczNDczZmM2NDZjZWEzMDZiNGJjYmM4ODYyZjgzODVkZGZhOWQ0YjdmYTJjMDg3ZTg3OTY4MzMwM2VkNWJkZDNhMDYyYjNjZjViM2EyNzhhNjZkMmExM2Y4M2Y0NGY4MmRkZjMxMGVlMDc0YWI2YTM2NDU5N2U4OTlhMDI1NWRjMTY0ZjMxY2M1MDg0Njg1MWRmOWFiNDgxOTVkZWQ3ZWExYjFkNTEwYmQ3ZWU3NGQ3M2ZhZjM2YmMzMWVjZmEyNjgzNTkwNDZmNGViODc5ZjkyNDAwOTQzOGI0ODFjNmNkNzg4OWEwMDJlZDVlZTM4MmJjOTE5MGRhNmZjMDI2ZTQ3OTU1OGU0NDc1Njc3ZTlhYTllMzA1MGUyNzY1Njk0ZGZjODFmNTZlODgwYjk2ZTcxNjBjOTgwZGQ5OGVkZDNkZmZmZmZmZmZmZmZmZmZmZmZcIn19Jyl9LDI1MzE6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXtpODpcIjYuNS4zXCJ9fSwyNTEwOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xXCI6XCJhZXMtMTI4LWVjYlwiLFwiMi4xNi44NDAuMS4xMDEuMy40LjEuMlwiOlwiYWVzLTEyOC1jYmNcIixcIjIuMTYuODQwLjEuMTAxLjMuNC4xLjNcIjpcImFlcy0xMjgtb2ZiXCIsXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40XCI6XCJhZXMtMTI4LWNmYlwiLFwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjFcIjpcImFlcy0xOTItZWNiXCIsXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMlwiOlwiYWVzLTE5Mi1jYmNcIixcIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIzXCI6XCJhZXMtMTkyLW9mYlwiLFwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjRcIjpcImFlcy0xOTItY2ZiXCIsXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MVwiOlwiYWVzLTI1Ni1lY2JcIixcIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyXCI6XCJhZXMtMjU2LWNiY1wiLFwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDNcIjpcImFlcy0yNTYtb2ZiXCIsXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NFwiOlwiYWVzLTI1Ni1jZmJcIn0nKX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18ocil7dmFyIGk9dFtyXTtpZihpIT09dW5kZWZpbmVkKXtyZXR1cm4gaS5leHBvcnRzfXZhciBuPXRbcl09e2lkOnIsbG9hZGVkOmZhbHNlLGV4cG9ydHM6e319O3ZhciBhPXRydWU7dHJ5e2Vbcl0uY2FsbChuLmV4cG9ydHMsbixuLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7YT1mYWxzZX1maW5hbGx5e2lmKGEpZGVsZXRlIHRbcl19bi5sb2FkZWQ9dHJ1ZTtyZXR1cm4gbi5leHBvcnRzfSFmdW5jdGlvbigpe19fbmNjd3Bja19yZXF1aXJlX18ubm1kPWZ1bmN0aW9uKGUpe2UucGF0aHM9W107aWYoIWUuY2hpbGRyZW4pZS5jaGlsZHJlbj1bXTtyZXR1cm4gZX19KCk7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPXt9OyFmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciBlPXI7ZS5yYW5kb21CeXRlcz1lLnJuZz1lLnBzZXVkb1JhbmRvbUJ5dGVzPWUucHJuZz1fX25jY3dwY2tfcmVxdWlyZV9fKDcyMjMpO2UuY3JlYXRlSGFzaD1lLkhhc2g9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzM5KTtlLmNyZWF0ZUhtYWM9ZS5IbWFjPV9fbmNjd3Bja19yZXF1aXJlX18oNDg3Myk7dmFyIHQ9X19uY2N3cGNrX3JlcXVpcmVfXyg5Mjc2KTt2YXIgaT1PYmplY3Qua2V5cyh0KTt2YXIgbj1bXCJzaGExXCIsXCJzaGEyMjRcIixcInNoYTI1NlwiLFwic2hhMzg0XCIsXCJzaGE1MTJcIixcIm1kNVwiLFwicm1kMTYwXCJdLmNvbmNhdChpKTtlLmdldEhhc2hlcz1mdW5jdGlvbigpe3JldHVybiBufTt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDQ5NzgpO2UucGJrZGYyPWEucGJrZGYyO2UucGJrZGYyU3luYz1hLnBia2RmMlN5bmM7dmFyIHM9X19uY2N3cGNrX3JlcXVpcmVfXyg4OTk2KTtlLkNpcGhlcj1zLkNpcGhlcjtlLmNyZWF0ZUNpcGhlcj1zLmNyZWF0ZUNpcGhlcjtlLkNpcGhlcml2PXMuQ2lwaGVyaXY7ZS5jcmVhdGVDaXBoZXJpdj1zLmNyZWF0ZUNpcGhlcml2O2UuRGVjaXBoZXI9cy5EZWNpcGhlcjtlLmNyZWF0ZURlY2lwaGVyPXMuY3JlYXRlRGVjaXBoZXI7ZS5EZWNpcGhlcml2PXMuRGVjaXBoZXJpdjtlLmNyZWF0ZURlY2lwaGVyaXY9cy5jcmVhdGVEZWNpcGhlcml2O2UuZ2V0Q2lwaGVycz1zLmdldENpcGhlcnM7ZS5saXN0Q2lwaGVycz1zLmxpc3RDaXBoZXJzO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oNjU4Nyk7ZS5EaWZmaWVIZWxsbWFuR3JvdXA9by5EaWZmaWVIZWxsbWFuR3JvdXA7ZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9by5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA7ZS5nZXREaWZmaWVIZWxsbWFuPW8uZ2V0RGlmZmllSGVsbG1hbjtlLmNyZWF0ZURpZmZpZUhlbGxtYW49by5jcmVhdGVEaWZmaWVIZWxsbWFuO2UuRGlmZmllSGVsbG1hbj1vLkRpZmZpZUhlbGxtYW47dmFyIGg9X19uY2N3cGNrX3JlcXVpcmVfXyg0MDc4KTtlLmNyZWF0ZVNpZ249aC5jcmVhdGVTaWduO2UuU2lnbj1oLlNpZ247ZS5jcmVhdGVWZXJpZnk9aC5jcmVhdGVWZXJpZnk7ZS5WZXJpZnk9aC5WZXJpZnk7ZS5jcmVhdGVFQ0RIPV9fbmNjd3Bja19yZXF1aXJlX18oOTk0Mik7dmFyIHU9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzgzKTtlLnB1YmxpY0VuY3J5cHQ9dS5wdWJsaWNFbmNyeXB0O2UucHJpdmF0ZUVuY3J5cHQ9dS5wcml2YXRlRW5jcnlwdDtlLnB1YmxpY0RlY3J5cHQ9dS5wdWJsaWNEZWNyeXB0O2UucHJpdmF0ZURlY3J5cHQ9dS5wcml2YXRlRGVjcnlwdDt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDY0NDUpO2UucmFuZG9tRmlsbD1kLnJhbmRvbUZpbGw7ZS5yYW5kb21GaWxsU3luYz1kLnJhbmRvbUZpbGxTeW5jO2UuY3JlYXRlQ3JlZGVudGlhbHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoW1wic29ycnksIGNyZWF0ZUNyZWRlbnRpYWxzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXRcIixcIndlIGFjY2VwdCBwdWxsIHJlcXVlc3RzXCIsXCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnlcIl0uam9pbihcIlxcblwiKSl9O2UuY29uc3RhbnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BLQ1MxX1BBRERJTkc6MSxSU0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQ6NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0oKTttb2R1bGUuZXhwb3J0cz1yfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/crypto-browserify/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/events/events.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/compiled/events/events.js ***! \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){\"use strict\";var e={864:function(e){var t=typeof Reflect===\"object\"?Reflect:null;var n=t&&typeof t.apply===\"function\"?t.apply:function ReflectApply(e,t,n){return Function.prototype.apply.call(e,t,n)};var r;if(t&&typeof t.ownKeys===\"function\"){r=t.ownKeys}else if(Object.getOwnPropertySymbols){r=function ReflectOwnKeys(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}}else{r=function ReflectOwnKeys(e){return Object.getOwnPropertyNames(e)}}function ProcessEmitWarning(e){if(console&&console.warn)console.warn(e)}var i=Number.isNaN||function NumberIsNaN(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}e.exports=EventEmitter;e.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=undefined;var s=10;function checkListener(e){if(typeof e!==\"function\"){throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}}Object.defineProperty(EventEmitter,\"defaultMaxListeners\",{enumerable:true,get:function(){return s},set:function(e){if(typeof e!==\"number\"||e<0||i(e)){throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\")}s=e}});EventEmitter.init=function(){if(this._events===undefined||this._events===Object.getPrototypeOf(this)._events){this._events=Object.create(null);this._eventsCount=0}this._maxListeners=this._maxListeners||undefined};EventEmitter.prototype.setMaxListeners=function setMaxListeners(e){if(typeof e!==\"number\"||e<0||i(e)){throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\")}this._maxListeners=e;return this};function _getMaxListeners(e){if(e._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return e._maxListeners}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function emit(e){var t=[];for(var r=1;r<arguments.length;r++)t.push(arguments[r]);var i=e===\"error\";var s=this._events;if(s!==undefined)i=i&&s.error===undefined;else if(!i)return false;if(i){var o;if(t.length>0)o=t[0];if(o instanceof Error){throw o}var f=new Error(\"Unhandled error.\"+(o?\" (\"+o.message+\")\":\"\"));f.context=o;throw f}var u=s[e];if(u===undefined)return false;if(typeof u===\"function\"){n(u,this,t)}else{var a=u.length;var c=arrayClone(u,a);for(var r=0;r<a;++r)n(c[r],this,t)}return true};function _addListener(e,t,n,r){var i;var s;var o;checkListener(n);s=e._events;if(s===undefined){s=e._events=Object.create(null);e._eventsCount=0}else{if(s.newListener!==undefined){e.emit(\"newListener\",t,n.listener?n.listener:n);s=e._events}o=s[t]}if(o===undefined){o=s[t]=n;++e._eventsCount}else{if(typeof o===\"function\"){o=s[t]=r?[n,o]:[o,n]}else if(r){o.unshift(n)}else{o.push(n)}i=_getMaxListeners(e);if(i>0&&o.length>i&&!o.warned){o.warned=true;var f=new Error(\"Possible EventEmitter memory leak detected. \"+o.length+\" \"+String(t)+\" listeners \"+\"added. Use emitter.setMaxListeners() to \"+\"increase limit\");f.name=\"MaxListenersExceededWarning\";f.emitter=e;f.type=t;f.count=o.length;ProcessEmitWarning(f)}}return e}EventEmitter.prototype.addListener=function addListener(e,t){return _addListener(this,e,t,false)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(e,t){return _addListener(this,e,t,true)};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;if(arguments.length===0)return this.listener.call(this.target);return this.listener.apply(this.target,arguments)}}function _onceWrap(e,t,n){var r={fired:false,wrapFn:undefined,target:e,type:t,listener:n};var i=onceWrapper.bind(r);i.listener=n;r.wrapFn=i;return i}EventEmitter.prototype.once=function once(e,t){checkListener(t);this.on(e,_onceWrap(this,e,t));return this};EventEmitter.prototype.prependOnceListener=function prependOnceListener(e,t){checkListener(t);this.prependListener(e,_onceWrap(this,e,t));return this};EventEmitter.prototype.removeListener=function removeListener(e,t){var n,r,i,s,o;checkListener(t);r=this._events;if(r===undefined)return this;n=r[e];if(n===undefined)return this;if(n===t||n.listener===t){if(--this._eventsCount===0)this._events=Object.create(null);else{delete r[e];if(r.removeListener)this.emit(\"removeListener\",e,n.listener||t)}}else if(typeof n!==\"function\"){i=-1;for(s=n.length-1;s>=0;s--){if(n[s]===t||n[s].listener===t){o=n[s].listener;i=s;break}}if(i<0)return this;if(i===0)n.shift();else{spliceOne(n,i)}if(n.length===1)r[e]=n[0];if(r.removeListener!==undefined)this.emit(\"removeListener\",e,o||t)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function removeAllListeners(e){var t,n,r;n=this._events;if(n===undefined)return this;if(n.removeListener===undefined){if(arguments.length===0){this._events=Object.create(null);this._eventsCount=0}else if(n[e]!==undefined){if(--this._eventsCount===0)this._events=Object.create(null);else delete n[e]}return this}if(arguments.length===0){var i=Object.keys(n);var s;for(r=0;r<i.length;++r){s=i[r];if(s===\"removeListener\")continue;this.removeAllListeners(s)}this.removeAllListeners(\"removeListener\");this._events=Object.create(null);this._eventsCount=0;return this}t=n[e];if(typeof t===\"function\"){this.removeListener(e,t)}else if(t!==undefined){for(r=t.length-1;r>=0;r--){this.removeListener(e,t[r])}}return this};function _listeners(e,t,n){var r=e._events;if(r===undefined)return[];var i=r[t];if(i===undefined)return[];if(typeof i===\"function\")return n?[i.listener||i]:[i];return n?unwrapListeners(i):arrayClone(i,i.length)}EventEmitter.prototype.listeners=function listeners(e){return _listeners(this,e,true)};EventEmitter.prototype.rawListeners=function rawListeners(e){return _listeners(this,e,false)};EventEmitter.listenerCount=function(e,t){if(typeof e.listenerCount===\"function\"){return e.listenerCount(t)}else{return listenerCount.call(e,t)}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(e){var t=this._events;if(t!==undefined){var n=t[e];if(typeof n===\"function\"){return 1}else if(n!==undefined){return n.length}}return 0}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?r(this._events):[]};function arrayClone(e,t){var n=new Array(t);for(var r=0;r<t;++r)n[r]=e[r];return n}function spliceOne(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function unwrapListeners(e){var t=new Array(e.length);for(var n=0;n<t.length;++n){t[n]=e[n].listener||e[n]}return t}function once(e,t){return new Promise((function(n,r){function errorListener(n){e.removeListener(t,resolver);r(n)}function resolver(){if(typeof e.removeListener===\"function\"){e.removeListener(\"error\",errorListener)}n([].slice.call(arguments))}eventTargetAgnosticAddListener(e,t,resolver,{once:true});if(t!==\"error\"){addErrorHandlerIfEventEmitter(e,errorListener,{once:true})}}))}function addErrorHandlerIfEventEmitter(e,t,n){if(typeof e.on===\"function\"){eventTargetAgnosticAddListener(e,\"error\",t,n)}}function eventTargetAgnosticAddListener(e,t,n,r){if(typeof e.on===\"function\"){if(r.once){e.once(t,n)}else{e.on(t,n)}}else if(typeof e.addEventListener===\"function\"){e.addEventListener(t,(function wrapListener(i){if(r.once){e.removeEventListener(t,wrapListener)}n(i)}))}else{throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type '+typeof e)}}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var s=true;try{e[n](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete t[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(864);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvZXZlbnRzL2V2ZW50cy5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsWUFBWSxhQUFhLE9BQU8sZ0JBQWdCLDZDQUE2QywwRUFBMEUsNkNBQTZDLE1BQU0scUNBQXFDLFlBQVksc0NBQXNDLDZCQUE2Qiw4RUFBOEUsS0FBSyw2QkFBNkIsc0NBQXNDLCtCQUErQix5Q0FBeUMsNENBQTRDLGNBQWMsd0JBQXdCLDZCQUE2Qix1QkFBdUIsb0JBQW9CLHVDQUF1Qyx5Q0FBeUMsc0NBQXNDLCtDQUErQyxTQUFTLDBCQUEwQiwwQkFBMEIsa0dBQWtHLDBEQUEwRCwrQkFBK0IsU0FBUyxpQkFBaUIsbUNBQW1DLDhIQUE4SCxLQUFLLEVBQUUsNkJBQTZCLGlGQUFpRixpQ0FBaUMsb0JBQW9CLGtEQUFrRCxtRUFBbUUsbUNBQW1DLDRHQUE0RyxxQkFBcUIsYUFBYSw2QkFBNkIsdUVBQXVFLHVCQUF1QixrRUFBa0UsK0JBQStCLDZDQUE2QyxTQUFTLFlBQVksbUJBQW1CLHlCQUF5QixrQkFBa0IsbUJBQW1CLDBDQUEwQyx3QkFBd0IsTUFBTSxNQUFNLHFCQUFxQix1QkFBdUIsUUFBUSw4REFBOEQsWUFBWSxRQUFRLFdBQVcsOEJBQThCLDBCQUEwQixZQUFZLEtBQUssZUFBZSxzQkFBc0IsWUFBWSxJQUFJLG1CQUFtQixhQUFhLCtCQUErQixNQUFNLE1BQU0sTUFBTSxpQkFBaUIsWUFBWSxrQkFBa0IsZ0NBQWdDLGlCQUFpQixLQUFLLDhCQUE4QixnREFBZ0QsWUFBWSxPQUFPLGtCQUFrQixTQUFTLGlCQUFpQixLQUFLLDBCQUEwQixxQkFBcUIsV0FBVyxhQUFhLEtBQUssVUFBVSxzQkFBc0IsK0JBQStCLGNBQWMsaUtBQWlLLHFDQUFxQyxZQUFZLFNBQVMsaUJBQWlCLHVCQUF1QixTQUFTLDZEQUE2RCxxQ0FBcUMsNkRBQTZELHFFQUFxRSxvQ0FBb0MsdUJBQXVCLGdCQUFnQixrREFBa0QsZ0JBQWdCLCtEQUErRCxtREFBbUQsMEJBQTBCLE9BQU8seURBQXlELDBCQUEwQixhQUFhLFdBQVcsU0FBUywrQ0FBK0MsaUJBQWlCLCtCQUErQixhQUFhLDZFQUE2RSxpQkFBaUIsNENBQTRDLGFBQWEsbUVBQW1FLGNBQWMsaUJBQWlCLGVBQWUsNkJBQTZCLE9BQU8sNkJBQTZCLDBCQUEwQiw0REFBNEQsS0FBSyxZQUFZLGlFQUFpRSwrQkFBK0IsS0FBSyxpQkFBaUIsS0FBSyxLQUFLLGdDQUFnQyxnQkFBZ0IsSUFBSSxPQUFPLG1CQUFtQixtQkFBbUIsS0FBSyxlQUFlLDBCQUEwQixtRUFBbUUsYUFBYSxpRUFBaUUseUVBQXlFLFVBQVUsZUFBZSw2QkFBNkIsaUNBQWlDLHlCQUF5QixpQ0FBaUMsb0JBQW9CLDBCQUEwQiw0REFBNEQsaUJBQWlCLFlBQVkseUJBQXlCLHFCQUFxQixNQUFNLFFBQVEsV0FBVyxLQUFLLE9BQU8saUNBQWlDLDJCQUEyQiwwQ0FBMEMsaUNBQWlDLG9CQUFvQixZQUFZLE9BQU8sMEJBQTBCLHlCQUF5Qix1QkFBdUIsaUJBQWlCLEtBQUssS0FBSyw2QkFBNkIsYUFBYSwyQkFBMkIsZ0JBQWdCLDBCQUEwQixXQUFXLDBCQUEwQixzREFBc0QsbURBQW1ELHVEQUF1RCxnQ0FBZ0MsNkRBQTZELGlDQUFpQyx5Q0FBeUMsd0NBQXdDLDBCQUEwQixLQUFLLGlDQUFpQyxtREFBbUQsMEJBQTBCLG1CQUFtQixrQkFBa0IsV0FBVywwQkFBMEIsU0FBUyx1QkFBdUIsaUJBQWlCLFNBQVMsd0RBQXdELCtDQUErQyx5QkFBeUIsbUJBQW1CLFlBQVksSUFBSSxjQUFjLFNBQVMsd0JBQXdCLEtBQUssYUFBYSxnQkFBZ0IsUUFBUSw0QkFBNEIsMEJBQTBCLFlBQVksV0FBVyxLQUFLLHlCQUF5QixTQUFTLG1CQUFtQixrQ0FBa0MsMEJBQTBCLDZCQUE2QixLQUFLLG9CQUFvQix5Q0FBeUMsd0NBQXdDLDRCQUE0Qiw2Q0FBNkMsVUFBVSxFQUFFLGdCQUFnQiwrQ0FBK0MsVUFBVSxHQUFHLEdBQUcsOENBQThDLDZCQUE2QiwrQ0FBK0MsaURBQWlELDZCQUE2QixXQUFXLFlBQVksS0FBSyxXQUFXLGdEQUFnRCwrQ0FBK0MsV0FBVyxzQ0FBc0MsS0FBSyxHQUFHLEtBQUssd0dBQXdHLFNBQVMsZ0NBQWdDLFdBQVcsa0JBQWtCLGlCQUFpQixZQUFZLFlBQVksV0FBVyxJQUFJLHNDQUFzQyxRQUFRLFFBQVEsaUJBQWlCLGlCQUFpQixtRUFBbUUsU0FBUyxLQUFLLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9ldmVudHMvZXZlbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciBlPXs4NjQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dHlwZW9mIFJlZmxlY3Q9PT1cIm9iamVjdFwiP1JlZmxlY3Q6bnVsbDt2YXIgbj10JiZ0eXBlb2YgdC5hcHBseT09PVwiZnVuY3Rpb25cIj90LmFwcGx5OmZ1bmN0aW9uIFJlZmxlY3RBcHBseShlLHQsbil7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGUsdCxuKX07dmFyIHI7aWYodCYmdHlwZW9mIHQub3duS2V5cz09PVwiZnVuY3Rpb25cIil7cj10Lm93bktleXN9ZWxzZSBpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXtyPWZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKSl9fWVsc2V7cj1mdW5jdGlvbiBSZWZsZWN0T3duS2V5cyhlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSl9fWZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyhlKXtpZihjb25zb2xlJiZjb25zb2xlLndhcm4pY29uc29sZS53YXJuKGUpfXZhciBpPU51bWJlci5pc05hTnx8ZnVuY3Rpb24gTnVtYmVySXNOYU4oZSl7cmV0dXJuIGUhPT1lfTtmdW5jdGlvbiBFdmVudEVtaXR0ZXIoKXtFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpfWUuZXhwb3J0cz1FdmVudEVtaXR0ZXI7ZS5leHBvcnRzLm9uY2U9b25jZTtFdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyPUV2ZW50RW1pdHRlcjtFdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHM9dW5kZWZpbmVkO0V2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50PTA7RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXVuZGVmaW5lZDt2YXIgcz0xMDtmdW5jdGlvbiBjaGVja0xpc3RlbmVyKGUpe2lmKHR5cGVvZiBlIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBlKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlcixcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzfSxzZXQ6ZnVuY3Rpb24oZSl7aWYodHlwZW9mIGUhPT1cIm51bWJlclwifHxlPDB8fGkoZSkpe3Rocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytlK1wiLlwiKX1zPWV9fSk7RXZlbnRFbWl0dGVyLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ldmVudHM9PT11bmRlZmluZWR8fHRoaXMuX2V2ZW50cz09PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKXt0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLl9ldmVudHNDb3VudD0wfXRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHVuZGVmaW5lZH07RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKGUpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcInx8ZTwwfHxpKGUpKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrZStcIi5cIil9dGhpcy5fbWF4TGlzdGVuZXJzPWU7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnMoZSl7aWYoZS5fbWF4TGlzdGVuZXJzPT09dW5kZWZpbmVkKXJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztyZXR1cm4gZS5fbWF4TGlzdGVuZXJzfUV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpe3JldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpfTtFdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24gZW1pdChlKXt2YXIgdD1bXTtmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXQucHVzaChhcmd1bWVudHNbcl0pO3ZhciBpPWU9PT1cImVycm9yXCI7dmFyIHM9dGhpcy5fZXZlbnRzO2lmKHMhPT11bmRlZmluZWQpaT1pJiZzLmVycm9yPT09dW5kZWZpbmVkO2Vsc2UgaWYoIWkpcmV0dXJuIGZhbHNlO2lmKGkpe3ZhciBvO2lmKHQubGVuZ3RoPjApbz10WzBdO2lmKG8gaW5zdGFuY2VvZiBFcnJvcil7dGhyb3cgb312YXIgZj1uZXcgRXJyb3IoXCJVbmhhbmRsZWQgZXJyb3IuXCIrKG8/XCIgKFwiK28ubWVzc2FnZStcIilcIjpcIlwiKSk7Zi5jb250ZXh0PW87dGhyb3cgZn12YXIgdT1zW2VdO2lmKHU9PT11bmRlZmluZWQpcmV0dXJuIGZhbHNlO2lmKHR5cGVvZiB1PT09XCJmdW5jdGlvblwiKXtuKHUsdGhpcyx0KX1lbHNle3ZhciBhPXUubGVuZ3RoO3ZhciBjPWFycmF5Q2xvbmUodSxhKTtmb3IodmFyIHI9MDtyPGE7KytyKW4oY1tyXSx0aGlzLHQpfXJldHVybiB0cnVlfTtmdW5jdGlvbiBfYWRkTGlzdGVuZXIoZSx0LG4scil7dmFyIGk7dmFyIHM7dmFyIG87Y2hlY2tMaXN0ZW5lcihuKTtzPWUuX2V2ZW50cztpZihzPT09dW5kZWZpbmVkKXtzPWUuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpO2UuX2V2ZW50c0NvdW50PTB9ZWxzZXtpZihzLm5ld0xpc3RlbmVyIT09dW5kZWZpbmVkKXtlLmVtaXQoXCJuZXdMaXN0ZW5lclwiLHQsbi5saXN0ZW5lcj9uLmxpc3RlbmVyOm4pO3M9ZS5fZXZlbnRzfW89c1t0XX1pZihvPT09dW5kZWZpbmVkKXtvPXNbdF09bjsrK2UuX2V2ZW50c0NvdW50fWVsc2V7aWYodHlwZW9mIG89PT1cImZ1bmN0aW9uXCIpe289c1t0XT1yP1tuLG9dOltvLG5dfWVsc2UgaWYocil7by51bnNoaWZ0KG4pfWVsc2V7by5wdXNoKG4pfWk9X2dldE1heExpc3RlbmVycyhlKTtpZihpPjAmJm8ubGVuZ3RoPmkmJiFvLndhcm5lZCl7by53YXJuZWQ9dHJ1ZTt2YXIgZj1uZXcgRXJyb3IoXCJQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuIFwiK28ubGVuZ3RoK1wiIFwiK1N0cmluZyh0KStcIiBsaXN0ZW5lcnMgXCIrXCJhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gXCIrXCJpbmNyZWFzZSBsaW1pdFwiKTtmLm5hbWU9XCJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmdcIjtmLmVtaXR0ZXI9ZTtmLnR5cGU9dDtmLmNvdW50PW8ubGVuZ3RoO1Byb2Nlc3NFbWl0V2FybmluZyhmKX19cmV0dXJuIGV9RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbiBhZGRMaXN0ZW5lcihlLHQpe3JldHVybiBfYWRkTGlzdGVuZXIodGhpcyxlLHQsZmFsc2UpfTtFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uPUV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXI9ZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKGUsdCl7cmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLGUsdCx0cnVlKX07ZnVuY3Rpb24gb25jZVdyYXBwZXIoKXtpZighdGhpcy5maXJlZCl7dGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKTt0aGlzLmZpcmVkPXRydWU7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7cmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsYXJndW1lbnRzKX19ZnVuY3Rpb24gX29uY2VXcmFwKGUsdCxuKXt2YXIgcj17ZmlyZWQ6ZmFsc2Usd3JhcEZuOnVuZGVmaW5lZCx0YXJnZXQ6ZSx0eXBlOnQsbGlzdGVuZXI6bn07dmFyIGk9b25jZVdyYXBwZXIuYmluZChyKTtpLmxpc3RlbmVyPW47ci53cmFwRm49aTtyZXR1cm4gaX1FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24gb25jZShlLHQpe2NoZWNrTGlzdGVuZXIodCk7dGhpcy5vbihlLF9vbmNlV3JhcCh0aGlzLGUsdCkpO3JldHVybiB0aGlzfTtFdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXI9ZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcihlLHQpe2NoZWNrTGlzdGVuZXIodCk7dGhpcy5wcmVwZW5kTGlzdGVuZXIoZSxfb25jZVdyYXAodGhpcyxlLHQpKTtyZXR1cm4gdGhpc307RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihlLHQpe3ZhciBuLHIsaSxzLG87Y2hlY2tMaXN0ZW5lcih0KTtyPXRoaXMuX2V2ZW50cztpZihyPT09dW5kZWZpbmVkKXJldHVybiB0aGlzO249cltlXTtpZihuPT09dW5kZWZpbmVkKXJldHVybiB0aGlzO2lmKG49PT10fHxuLmxpc3RlbmVyPT09dCl7aWYoLS10aGlzLl9ldmVudHNDb3VudD09PTApdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk7ZWxzZXtkZWxldGUgcltlXTtpZihyLnJlbW92ZUxpc3RlbmVyKXRoaXMuZW1pdChcInJlbW92ZUxpc3RlbmVyXCIsZSxuLmxpc3RlbmVyfHx0KX19ZWxzZSBpZih0eXBlb2YgbiE9PVwiZnVuY3Rpb25cIil7aT0tMTtmb3Iocz1uLmxlbmd0aC0xO3M+PTA7cy0tKXtpZihuW3NdPT09dHx8bltzXS5saXN0ZW5lcj09PXQpe289bltzXS5saXN0ZW5lcjtpPXM7YnJlYWt9fWlmKGk8MClyZXR1cm4gdGhpcztpZihpPT09MCluLnNoaWZ0KCk7ZWxzZXtzcGxpY2VPbmUobixpKX1pZihuLmxlbmd0aD09PTEpcltlXT1uWzBdO2lmKHIucmVtb3ZlTGlzdGVuZXIhPT11bmRlZmluZWQpdGhpcy5lbWl0KFwicmVtb3ZlTGlzdGVuZXJcIixlLG98fHQpfXJldHVybiB0aGlzfTtFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZj1FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO0V2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyhlKXt2YXIgdCxuLHI7bj10aGlzLl9ldmVudHM7aWYobj09PXVuZGVmaW5lZClyZXR1cm4gdGhpcztpZihuLnJlbW92ZUxpc3RlbmVyPT09dW5kZWZpbmVkKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MCl7dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5fZXZlbnRzQ291bnQ9MH1lbHNlIGlmKG5bZV0hPT11bmRlZmluZWQpe2lmKC0tdGhpcy5fZXZlbnRzQ291bnQ9PT0wKXRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpO2Vsc2UgZGVsZXRlIG5bZV19cmV0dXJuIHRoaXN9aWYoYXJndW1lbnRzLmxlbmd0aD09PTApe3ZhciBpPU9iamVjdC5rZXlzKG4pO3ZhciBzO2ZvcihyPTA7cjxpLmxlbmd0aDsrK3Ipe3M9aVtyXTtpZihzPT09XCJyZW1vdmVMaXN0ZW5lclwiKWNvbnRpbnVlO3RoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKHMpfXRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFwicmVtb3ZlTGlzdGVuZXJcIik7dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5fZXZlbnRzQ291bnQ9MDtyZXR1cm4gdGhpc310PW5bZV07aWYodHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCIpe3RoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KX1lbHNlIGlmKHQhPT11bmRlZmluZWQpe2ZvcihyPXQubGVuZ3RoLTE7cj49MDtyLS0pe3RoaXMucmVtb3ZlTGlzdGVuZXIoZSx0W3JdKX19cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIF9saXN0ZW5lcnMoZSx0LG4pe3ZhciByPWUuX2V2ZW50cztpZihyPT09dW5kZWZpbmVkKXJldHVybltdO3ZhciBpPXJbdF07aWYoaT09PXVuZGVmaW5lZClyZXR1cm5bXTtpZih0eXBlb2YgaT09PVwiZnVuY3Rpb25cIilyZXR1cm4gbj9baS5saXN0ZW5lcnx8aV06W2ldO3JldHVybiBuP3Vud3JhcExpc3RlbmVycyhpKTphcnJheUNsb25lKGksaS5sZW5ndGgpfUV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uIGxpc3RlbmVycyhlKXtyZXR1cm4gX2xpc3RlbmVycyh0aGlzLGUsdHJ1ZSl9O0V2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uIHJhd0xpc3RlbmVycyhlKXtyZXR1cm4gX2xpc3RlbmVycyh0aGlzLGUsZmFsc2UpfTtFdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlLmxpc3RlbmVyQ291bnQ9PT1cImZ1bmN0aW9uXCIpe3JldHVybiBlLmxpc3RlbmVyQ291bnQodCl9ZWxzZXtyZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGUsdCl9fTtFdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9bGlzdGVuZXJDb3VudDtmdW5jdGlvbiBsaXN0ZW5lckNvdW50KGUpe3ZhciB0PXRoaXMuX2V2ZW50cztpZih0IT09dW5kZWZpbmVkKXt2YXIgbj10W2VdO2lmKHR5cGVvZiBuPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gMX1lbHNlIGlmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmxlbmd0aH19cmV0dXJuIDB9RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzPWZ1bmN0aW9uIGV2ZW50TmFtZXMoKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9yKHRoaXMuX2V2ZW50cyk6W119O2Z1bmN0aW9uIGFycmF5Q2xvbmUoZSx0KXt2YXIgbj1uZXcgQXJyYXkodCk7Zm9yKHZhciByPTA7cjx0OysrciluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gc3BsaWNlT25lKGUsdCl7Zm9yKDt0KzE8ZS5sZW5ndGg7dCsrKWVbdF09ZVt0KzFdO2UucG9wKCl9ZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGUpe3ZhciB0PW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDsrK24pe3Rbbl09ZVtuXS5saXN0ZW5lcnx8ZVtuXX1yZXR1cm4gdH1mdW5jdGlvbiBvbmNlKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIGVycm9yTGlzdGVuZXIobil7ZS5yZW1vdmVMaXN0ZW5lcih0LHJlc29sdmVyKTtyKG4pfWZ1bmN0aW9uIHJlc29sdmVyKCl7aWYodHlwZW9mIGUucmVtb3ZlTGlzdGVuZXI9PT1cImZ1bmN0aW9uXCIpe2UucmVtb3ZlTGlzdGVuZXIoXCJlcnJvclwiLGVycm9yTGlzdGVuZXIpfW4oW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX1ldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZSx0LHJlc29sdmVyLHtvbmNlOnRydWV9KTtpZih0IT09XCJlcnJvclwiKXthZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlLGVycm9yTGlzdGVuZXIse29uY2U6dHJ1ZX0pfX0pKX1mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlLHQsbil7aWYodHlwZW9mIGUub249PT1cImZ1bmN0aW9uXCIpe2V2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlLFwiZXJyb3JcIix0LG4pfX1mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZSx0LG4scil7aWYodHlwZW9mIGUub249PT1cImZ1bmN0aW9uXCIpe2lmKHIub25jZSl7ZS5vbmNlKHQsbil9ZWxzZXtlLm9uKHQsbil9fWVsc2UgaWYodHlwZW9mIGUuYWRkRXZlbnRMaXN0ZW5lcj09PVwiZnVuY3Rpb25cIil7ZS5hZGRFdmVudExpc3RlbmVyKHQsKGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihpKXtpZihyLm9uY2Upe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHdyYXBMaXN0ZW5lcil9bihpKX0pKX1lbHNle3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGUpfX19fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG4pe3ZhciByPXRbbl07aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHIuZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgcz10cnVlO3RyeXtlW25dKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3M9ZmFsc2V9ZmluYWxseXtpZihzKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oODY0KTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/events/events.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js": /*!****************************************************************************************!*\ !*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n },\n specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n Error(\"react-stack-top-frame\"),\n createTask(getTaskName(type))\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLCtDQUErQyw2QkFBNkI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsZ0RBQWdEO0FBQ2hFLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQSxnQ0FBZ0Msa0NBQWtDLE9BQU87QUFDekU7QUFDQSxnR0FBZ0csU0FBUyxVQUFVLHNGQUFzRixhQUFhLFVBQVUsVUFBVTtBQUMxTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBTyxDQUFDLHNHQUEwQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB0eXBlLnRhZyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgIHR5cGUuJCR0eXBlb2YpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLlByb3ZpZGVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgdmFyIGlubmVyVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB0eXBlIHx8XG4gICAgICAgICAgICAgICgodHlwZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBcIlwiICE9PSB0eXBlID8gXCJGb3J3YXJkUmVmKFwiICsgdHlwZSArIFwiKVwiIDogXCJGb3J3YXJkUmVmXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGlubmVyVHlwZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgID8gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIk1lbW9cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIGlubmVyVHlwZSA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZShpbm5lclR5cGUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBcIlwiICsgdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITA7XG4gICAgICB9XG4gICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGNvbnNvbGU7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQuZXJyb3I7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPVxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTeW1ib2wgJiZcbiAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZyAmJlxuICAgICAgICAgICAgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgICB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8XG4gICAgICAgICAgXCJPYmplY3RcIjtcbiAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LmNhbGwoXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LFxuICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS5cIixcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhc2tOYW1lKHR5cGUpIHtcbiAgICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSByZXR1cm4gXCI8PlwiO1xuICAgICAgaWYgKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRVxuICAgICAgKVxuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHJldHVybiBuYW1lID8gXCI8XCIgKyBuYW1lICsgXCI+XCIgOiBcIjwuLi4+XCI7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE93bmVyKCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGRpc3BhdGNoZXIgPyBudWxsIDogZGlzcGF0Y2hlci5nZXRPd25lcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCBcImtleVwiKS5nZXQ7XG4gICAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gfHxcbiAgICAgICAgICAoKHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gITApLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9zcGVjaWFsLXByb3BzKVwiLFxuICAgICAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9ICEwO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCBcImtleVwiLCB7XG4gICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpO1xuICAgICAgZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAoKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICAgICAgKSk7XG4gICAgICBjb21wb25lbnROYW1lID0gdGhpcy5wcm9wcy5yZWY7XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RWxlbWVudChcbiAgICAgIHR5cGUsXG4gICAgICBrZXksXG4gICAgICBzZWxmLFxuICAgICAgc291cmNlLFxuICAgICAgb3duZXIsXG4gICAgICBwcm9wcyxcbiAgICAgIGRlYnVnU3RhY2ssXG4gICAgICBkZWJ1Z1Rhc2tcbiAgICApIHtcbiAgICAgIHNlbGYgPSBwcm9wcy5yZWY7XG4gICAgICB0eXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBfb3duZXI6IG93bmVyXG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gc2VsZiA/IHNlbGYgOiBudWxsKVxuICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgIGdldDogZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmdcbiAgICAgICAgICB9KVxuICAgICAgICA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7IGVudW1lcmFibGU6ICExLCB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHR5cGUuX3N0b3JlID0ge307XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IDBcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z1N0YWNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnU3RhY2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnVGFza1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBkZWJ1Z1Rhc2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmZyZWV6ZSAmJiAoT2JqZWN0LmZyZWV6ZSh0eXBlLnByb3BzKSwgT2JqZWN0LmZyZWV6ZSh0eXBlKSk7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24ganN4REVWSW1wbChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmLFxuICAgICAgZGVidWdTdGFjayxcbiAgICAgIGRlYnVnVGFza1xuICAgICkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gY29uZmlnLmNoaWxkcmVuO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gY2hpbGRyZW4pXG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPSAwO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuIDwgY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuKytcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baXNTdGF0aWNDaGlsZHJlbl0pO1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QuanN4OiBTdGF0aWMgY2hpbGRyZW4gc2hvdWxkIGFsd2F5cyBiZSBhbiBhcnJheS4gWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiBVc2UgdGhlIEJhYmVsIHRyYW5zZm9ybSBpbnN0ZWFkLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICBlbHNlIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuKTtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgY2hpbGRyZW4gPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICByZXR1cm4gXCJrZXlcIiAhPT0gaztcbiAgICAgICAgfSk7XG4gICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPVxuICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBcIntrZXk6IHNvbWVLZXksIFwiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCJcbiAgICAgICAgICAgIDogXCJ7a2V5OiBzb21lS2V5fVwiO1xuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSB8fFxuICAgICAgICAgICgoa2V5cyA9XG4gICAgICAgICAgICAwIDwga2V5cy5sZW5ndGggPyBcIntcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiIDogXCJ7fVwiKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0EgcHJvcHMgb2JqZWN0IGNvbnRhaW5pbmcgYSBcImtleVwiIHByb3AgaXMgYmVpbmcgc3ByZWFkIGludG8gSlNYOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMgey4uLnByb3BzfSAvPlxcblJlYWN0IGtleXMgbXVzdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gSlNYIHdpdGhvdXQgdXNpbmcgc3ByZWFkOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JyxcbiAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dID0gITApKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZvaWQgMCAhPT0gbWF5YmVLZXkgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgbWF5YmVLZXkpKTtcbiAgICAgIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBjb25maWcua2V5KSk7XG4gICAgICBpZiAoXCJrZXlcIiBpbiBjb25maWcpIHtcbiAgICAgICAgbWF5YmVLZXkgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gY29uZmlnKVxuICAgICAgICAgIFwia2V5XCIgIT09IHByb3BOYW1lICYmIChtYXliZUtleVtwcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgICAgIH0gZWxzZSBtYXliZUtleSA9IGNvbmZpZztcbiAgICAgIGNoaWxkcmVuICYmXG4gICAgICAgIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKFxuICAgICAgICAgIG1heWJlS2V5LFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICAgICAgID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgIDogdHlwZVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIFJlYWN0RWxlbWVudChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHNlbGYsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgZ2V0T3duZXIoKSxcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgIGRlYnVnU3RhY2ssXG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSkge1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5vZGUgJiZcbiAgICAgICAgbnVsbCAhPT0gbm9kZSAmJlxuICAgICAgICBub2RlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgbm9kZS5fc3RvcmUgJiZcbiAgICAgICAgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpO1xuICAgIH1cbiAgICB2YXIgUmVhY3QgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0XCIpLFxuICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTtcbiAgICB2YXIgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxcbiAgICAgIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLFxuICAgICAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxcbiAgICAgIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLFxuICAgICAgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxcbiAgICAgIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheSxcbiAgICAgIGNyZWF0ZVRhc2sgPSBjb25zb2xlLmNyZWF0ZVRhc2tcbiAgICAgICAgPyBjb25zb2xlLmNyZWF0ZVRhc2tcbiAgICAgICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG4gICAgdmFyIGRpZFdhcm5BYm91dEVsZW1lbnRSZWYgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0S2V5U3ByZWFkID0ge307XG4gICAgZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5qc3hERVYgPSBmdW5jdGlvbiAoXG4gICAgICB0eXBlLFxuICAgICAgY29uZmlnLFxuICAgICAgbWF5YmVLZXksXG4gICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgc291cmNlLFxuICAgICAgc2VsZlxuICAgICkge1xuICAgICAgcmV0dXJuIGpzeERFVkltcGwoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc2VsZixcbiAgICAgICAgRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIiksXG4gICAgICAgIGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpXG4gICAgICApO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/stream-browserify/index.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/compiled/stream-browserify/index.js ***! \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n(function(){var e={782:function(e){if(typeof Object.create===\"function\"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},646:function(e){\"use strict\";const t={};function createErrorType(e,r,n){if(!n){n=Error}function getMessage(e,t,n){if(typeof r===\"string\"){return r}else{return r(e,t,n)}}class NodeError extends n{constructor(e,t,r){super(getMessage(e,t,r))}}NodeError.prototype.name=n.name;NodeError.prototype.code=e;t[e]=NodeError}function oneOf(e,t){if(Array.isArray(e)){const r=e.length;e=e.map((e=>String(e)));if(r>2){return`one of ${t} ${e.slice(0,r-1).join(\", \")}, or `+e[r-1]}else if(r===2){return`one of ${t} ${e[0]} or ${e[1]}`}else{return`of ${t} ${e[0]}`}}else{return`of ${t} ${String(e)}`}}function startsWith(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function endsWith(e,t,r){if(r===undefined||r>e.length){r=e.length}return e.substring(r-t.length,r)===t}function includes(e,t,r){if(typeof r!==\"number\"){r=0}if(r+t.length>e.length){return false}else{return e.indexOf(t,r)!==-1}}createErrorType(\"ERR_INVALID_OPT_VALUE\",(function(e,t){return'The value \"'+t+'\" is invalid for option \"'+e+'\"'}),TypeError);createErrorType(\"ERR_INVALID_ARG_TYPE\",(function(e,t,r){let n;if(typeof t===\"string\"&&startsWith(t,\"not \")){n=\"must not be\";t=t.replace(/^not /,\"\")}else{n=\"must be\"}let i;if(endsWith(e,\" argument\")){i=`The ${e} ${n} ${oneOf(t,\"type\")}`}else{const r=includes(e,\".\")?\"property\":\"argument\";i=`The \"${e}\" ${r} ${n} ${oneOf(t,\"type\")}`}i+=`. Received type ${typeof r}`;return i}),TypeError);createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\");createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(e){return\"The \"+e+\" method is not implemented\"}));createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\");createErrorType(\"ERR_STREAM_DESTROYED\",(function(e){return\"Cannot call \"+e+\" after a stream was destroyed\"}));createErrorType(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\");createErrorType(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\");createErrorType(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\");createErrorType(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);createErrorType(\"ERR_UNKNOWN_ENCODING\",(function(e){return\"Unknown encoding: \"+e}),TypeError);createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\");e.exports.q=t},403:function(e,t,r){\"use strict\";var n=Object.keys||function(e){var t=[];for(var r in e){t.push(r)}return t};e.exports=Duplex;var i=r(709);var a=r(337);r(782)(Duplex,i);{var o=n(a.prototype);for(var s=0;s<o.length;s++){var f=o[s];if(!Duplex.prototype[f])Duplex.prototype[f]=a.prototype[f]}}function Duplex(e){if(!(this instanceof Duplex))return new Duplex(e);i.call(this,e);a.call(this,e);this.allowHalfOpen=true;if(e){if(e.readable===false)this.readable=false;if(e.writable===false)this.writable=false;if(e.allowHalfOpen===false){this.allowHalfOpen=false;this.once(\"end\",onend)}}}Object.defineProperty(Duplex.prototype,\"writableHighWaterMark\",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});Object.defineProperty(Duplex.prototype,\"writableBuffer\",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(Duplex.prototype,\"writableLength\",{enumerable:false,get:function get(){return this._writableState.length}});function onend(){if(this._writableState.ended)return;process.nextTick(onEndNT,this)}function onEndNT(e){e.end()}Object.defineProperty(Duplex.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._readableState===undefined||this._writableState===undefined){return false}return this._readableState.destroyed&&this._writableState.destroyed},set:function set(e){if(this._readableState===undefined||this._writableState===undefined){return}this._readableState.destroyed=e;this._writableState.destroyed=e}})},889:function(e,t,r){\"use strict\";e.exports=PassThrough;var n=r(170);r(782)(PassThrough,n);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);n.call(this,e)}PassThrough.prototype._transform=function(e,t,r){r(null,e)}},709:function(e,t,r){\"use strict\";e.exports=Readable;var n;Readable.ReadableState=ReadableState;var i=r(361).EventEmitter;var a=function EElistenerCount(e,t){return e.listeners(t).length};var o=r(678);var s=r(300).Buffer;var f=__webpack_require__.g.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return s.from(e)}function _isUint8Array(e){return s.isBuffer(e)||e instanceof f}var l=r(837);var u;if(l&&l.debuglog){u=l.debuglog(\"stream\")}else{u=function debug(){}}var d=r(379);var c=r(25);var h=r(776),p=h.getHighWaterMark;var b=r(646).q,g=b.ERR_INVALID_ARG_TYPE,y=b.ERR_STREAM_PUSH_AFTER_EOF,_=b.ERR_METHOD_NOT_IMPLEMENTED,v=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;var w;var m;var S;r(782)(Readable,o);var R=c.errorOrDestroy;var E=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function prependListener(e,t,r){if(typeof e.prependListener===\"function\")return e.prependListener(t,r);if(!e._events||!e._events[t])e.on(t,r);else if(Array.isArray(e._events[t]))e._events[t].unshift(r);else e._events[t]=[r,e._events[t]]}function ReadableState(e,t,i){n=n||r(403);e=e||{};if(typeof i!==\"boolean\")i=t instanceof n;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.readableObjectMode;this.highWaterMark=p(this,e,\"readableHighWaterMark\",i);this.buffer=new d;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;this.emitClose=e.emitClose!==false;this.autoDestroy=!!e.autoDestroy;this.destroyed=false;this.defaultEncoding=e.defaultEncoding||\"utf8\";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(e.encoding){if(!w)w=r(704).s;this.decoder=new w(e.encoding);this.encoding=e.encoding}}function Readable(e){n=n||r(403);if(!(this instanceof Readable))return new Readable(e);var t=this instanceof n;this._readableState=new ReadableState(e,this,t);this.readable=true;if(e){if(typeof e.read===\"function\")this._read=e.read;if(typeof e.destroy===\"function\")this._destroy=e.destroy}o.call(this)}Object.defineProperty(Readable.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function set(e){if(!this._readableState){return}this._readableState.destroyed=e}});Readable.prototype.destroy=c.destroy;Readable.prototype._undestroy=c.undestroy;Readable.prototype._destroy=function(e,t){t(e)};Readable.prototype.push=function(e,t){var r=this._readableState;var n;if(!r.objectMode){if(typeof e===\"string\"){t=t||r.defaultEncoding;if(t!==r.encoding){e=s.from(e,t);t=\"\"}n=true}}else{n=true}return readableAddChunk(this,e,t,false,n)};Readable.prototype.unshift=function(e){return readableAddChunk(this,e,null,true,false)};function readableAddChunk(e,t,r,n,i){u(\"readableAddChunk\",t);var a=e._readableState;if(t===null){a.reading=false;onEofChunk(e,a)}else{var o;if(!i)o=chunkInvalid(a,t);if(o){R(e,o)}else if(a.objectMode||t&&t.length>0){if(typeof t!==\"string\"&&!a.objectMode&&Object.getPrototypeOf(t)!==s.prototype){t=_uint8ArrayToBuffer(t)}if(n){if(a.endEmitted)R(e,new v);else addChunk(e,a,t,true)}else if(a.ended){R(e,new y)}else if(a.destroyed){return false}else{a.reading=false;if(a.decoder&&!r){t=a.decoder.write(t);if(a.objectMode||t.length!==0)addChunk(e,a,t,false);else maybeReadMore(e,a)}else{addChunk(e,a,t,false)}}}else if(!n){a.reading=false;maybeReadMore(e,a)}}return!a.ended&&(a.length<a.highWaterMark||a.length===0)}function addChunk(e,t,r,n){if(t.flowing&&t.length===0&&!t.sync){t.awaitDrain=0;e.emit(\"data\",r)}else{t.length+=t.objectMode?1:r.length;if(n)t.buffer.unshift(r);else t.buffer.push(r);if(t.needReadable)emitReadable(e)}maybeReadMore(e,t)}function chunkInvalid(e,t){var r;if(!_isUint8Array(t)&&typeof t!==\"string\"&&t!==undefined&&!e.objectMode){r=new g(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],t)}return r}Readable.prototype.isPaused=function(){return this._readableState.flowing===false};Readable.prototype.setEncoding=function(e){if(!w)w=r(704).s;var t=new w(e);this._readableState.decoder=t;this._readableState.encoding=this._readableState.decoder.encoding;var n=this._readableState.buffer.head;var i=\"\";while(n!==null){i+=t.write(n.data);n=n.next}this._readableState.buffer.clear();if(i!==\"\")this._readableState.buffer.push(i);this._readableState.length=i.length;return this};var T=1073741824;function computeNewHighWaterMark(e){if(e>=T){e=T}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,t){if(e<=0||t.length===0&&t.ended)return 0;if(t.objectMode)return 1;if(e!==e){if(t.flowing&&t.length)return t.buffer.head.data.length;else return t.length}if(e>t.highWaterMark)t.highWaterMark=computeNewHighWaterMark(e);if(e<=t.length)return e;if(!t.ended){t.needReadable=true;return 0}return t.length}Readable.prototype.read=function(e){u(\"read\",e);e=parseInt(e,10);var t=this._readableState;var r=e;if(e!==0)t.emittedReadable=false;if(e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended)){u(\"read: emitReadable\",t.length,t.ended);if(t.length===0&&t.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,t);if(e===0&&t.ended){if(t.length===0)endReadable(this);return null}var n=t.needReadable;u(\"need readable\",n);if(t.length===0||t.length-e<t.highWaterMark){n=true;u(\"length less than watermark\",n)}if(t.ended||t.reading){n=false;u(\"reading or ended\",n)}else if(n){u(\"do read\");t.reading=true;t.sync=true;if(t.length===0)t.needReadable=true;this._read(t.highWaterMark);t.sync=false;if(!t.reading)e=howMuchToRead(r,t)}var i;if(e>0)i=fromList(e,t);else i=null;if(i===null){t.needReadable=t.length<=t.highWaterMark;e=0}else{t.length-=e;t.awaitDrain=0}if(t.length===0){if(!t.ended)t.needReadable=true;if(r!==e&&t.ended)endReadable(this)}if(i!==null)this.emit(\"data\",i);return i};function onEofChunk(e,t){u(\"onEofChunk\");if(t.ended)return;if(t.decoder){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;if(t.sync){emitReadable(e)}else{t.needReadable=false;if(!t.emittedReadable){t.emittedReadable=true;emitReadable_(e)}}}function emitReadable(e){var t=e._readableState;u(\"emitReadable\",t.needReadable,t.emittedReadable);t.needReadable=false;if(!t.emittedReadable){u(\"emitReadable\",t.flowing);t.emittedReadable=true;process.nextTick(emitReadable_,e)}}function emitReadable_(e){var t=e._readableState;u(\"emitReadable_\",t.destroyed,t.length,t.ended);if(!t.destroyed&&(t.length||t.ended)){e.emit(\"readable\");t.emittedReadable=false}t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark;flow(e)}function maybeReadMore(e,t){if(!t.readingMore){t.readingMore=true;process.nextTick(maybeReadMore_,e,t)}}function maybeReadMore_(e,t){while(!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&t.length===0)){var r=t.length;u(\"maybeReadMore read 0\");e.read(0);if(r===t.length)break}t.readingMore=false}Readable.prototype._read=function(e){R(this,new _(\"_read()\"))};Readable.prototype.pipe=function(e,t){var r=this;var n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1;u(\"pipe count=%d opts=%j\",n.pipesCount,t);var i=(!t||t.end!==false)&&e!==process.stdout&&e!==process.stderr;var o=i?onend:unpipe;if(n.endEmitted)process.nextTick(o);else r.once(\"end\",o);e.on(\"unpipe\",onunpipe);function onunpipe(e,t){u(\"onunpipe\");if(e===r){if(t&&t.hasUnpiped===false){t.hasUnpiped=true;cleanup()}}}function onend(){u(\"onend\");e.end()}var s=pipeOnDrain(r);e.on(\"drain\",s);var f=false;function cleanup(){u(\"cleanup\");e.removeListener(\"close\",onclose);e.removeListener(\"finish\",onfinish);e.removeListener(\"drain\",s);e.removeListener(\"error\",onerror);e.removeListener(\"unpipe\",onunpipe);r.removeListener(\"end\",onend);r.removeListener(\"end\",unpipe);r.removeListener(\"data\",ondata);f=true;if(n.awaitDrain&&(!e._writableState||e._writableState.needDrain))s()}r.on(\"data\",ondata);function ondata(t){u(\"ondata\");var i=e.write(t);u(\"dest.write\",i);if(i===false){if((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&indexOf(n.pipes,e)!==-1)&&!f){u(\"false write response, pause\",n.awaitDrain);n.awaitDrain++}r.pause()}}function onerror(t){u(\"onerror\",t);unpipe();e.removeListener(\"error\",onerror);if(a(e,\"error\")===0)R(e,t)}prependListener(e,\"error\",onerror);function onclose(){e.removeListener(\"finish\",onfinish);unpipe()}e.once(\"close\",onclose);function onfinish(){u(\"onfinish\");e.removeListener(\"close\",onclose);unpipe()}e.once(\"finish\",onfinish);function unpipe(){u(\"unpipe\");r.unpipe(e)}e.emit(\"pipe\",r);if(!n.flowing){u(\"pipe resume\");r.resume()}return e};function pipeOnDrain(e){return function pipeOnDrainFunctionResult(){var t=e._readableState;u(\"pipeOnDrain\",t.awaitDrain);if(t.awaitDrain)t.awaitDrain--;if(t.awaitDrain===0&&a(e,\"data\")){t.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var t=this._readableState;var r={hasUnpiped:false};if(t.pipesCount===0)return this;if(t.pipesCount===1){if(e&&e!==t.pipes)return this;if(!e)e=t.pipes;t.pipes=null;t.pipesCount=0;t.flowing=false;if(e)e.emit(\"unpipe\",this,r);return this}if(!e){var n=t.pipes;var i=t.pipesCount;t.pipes=null;t.pipesCount=0;t.flowing=false;for(var a=0;a<i;a++){n[a].emit(\"unpipe\",this,{hasUnpiped:false})}return this}var o=indexOf(t.pipes,e);if(o===-1)return this;t.pipes.splice(o,1);t.pipesCount-=1;if(t.pipesCount===1)t.pipes=t.pipes[0];e.emit(\"unpipe\",this,r);return this};Readable.prototype.on=function(e,t){var r=o.prototype.on.call(this,e,t);var n=this._readableState;if(e===\"data\"){n.readableListening=this.listenerCount(\"readable\")>0;if(n.flowing!==false)this.resume()}else if(e===\"readable\"){if(!n.endEmitted&&!n.readableListening){n.readableListening=n.needReadable=true;n.flowing=false;n.emittedReadable=false;u(\"on readable\",n.length,n.reading);if(n.length){emitReadable(this)}else if(!n.reading){process.nextTick(nReadingNextTick,this)}}}return r};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);if(e===\"readable\"){process.nextTick(updateReadableListening,this)}return r};Readable.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);if(e===\"readable\"||e===undefined){process.nextTick(updateReadableListening,this)}return t};function updateReadableListening(e){var t=e._readableState;t.readableListening=e.listenerCount(\"readable\")>0;if(t.resumeScheduled&&!t.paused){t.flowing=true}else if(e.listenerCount(\"data\")>0){e.resume()}}function nReadingNextTick(e){u(\"readable nexttick read 0\");e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;if(!e.flowing){u(\"resume\");e.flowing=!e.readableListening;resume(this,e)}e.paused=false;return this};function resume(e,t){if(!t.resumeScheduled){t.resumeScheduled=true;process.nextTick(resume_,e,t)}}function resume_(e,t){u(\"resume\",t.reading);if(!t.reading){e.read(0)}t.resumeScheduled=false;e.emit(\"resume\");flow(e);if(t.flowing&&!t.reading)e.read(0)}Readable.prototype.pause=function(){u(\"call pause flowing=%j\",this._readableState.flowing);if(this._readableState.flowing!==false){u(\"pause\");this._readableState.flowing=false;this.emit(\"pause\")}this._readableState.paused=true;return this};function flow(e){var t=e._readableState;u(\"flow\",t.flowing);while(t.flowing&&e.read()!==null){}}Readable.prototype.wrap=function(e){var t=this;var r=this._readableState;var n=false;e.on(\"end\",(function(){u(\"wrapped end\");if(r.decoder&&!r.ended){var e=r.decoder.end();if(e&&e.length)t.push(e)}t.push(null)}));e.on(\"data\",(function(i){u(\"wrapped data\");if(r.decoder)i=r.decoder.write(i);if(r.objectMode&&(i===null||i===undefined))return;else if(!r.objectMode&&(!i||!i.length))return;var a=t.push(i);if(!a){n=true;e.pause()}}));for(var i in e){if(this[i]===undefined&&typeof e[i]===\"function\"){this[i]=function methodWrap(t){return function methodWrapReturnFunction(){return e[t].apply(e,arguments)}}(i)}}for(var a=0;a<E.length;a++){e.on(E[a],this.emit.bind(this,E[a]))}this._read=function(t){u(\"wrapped _read\",t);if(n){n=false;e.resume()}};return this};if(typeof Symbol===\"function\"){Readable.prototype[Symbol.asyncIterator]=function(){if(m===undefined){m=r(871)}return m(this)}}Object.defineProperty(Readable.prototype,\"readableHighWaterMark\",{enumerable:false,get:function get(){return this._readableState.highWaterMark}});Object.defineProperty(Readable.prototype,\"readableBuffer\",{enumerable:false,get:function get(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Readable.prototype,\"readableFlowing\",{enumerable:false,get:function get(){return this._readableState.flowing},set:function set(e){if(this._readableState){this._readableState.flowing=e}}});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,\"readableLength\",{enumerable:false,get:function get(){return this._readableState.length}});function fromList(e,t){if(t.length===0)return null;var r;if(t.objectMode)r=t.buffer.shift();else if(!e||e>=t.length){if(t.decoder)r=t.buffer.join(\"\");else if(t.buffer.length===1)r=t.buffer.first();else r=t.buffer.concat(t.length);t.buffer.clear()}else{r=t.buffer.consume(e,t.decoder)}return r}function endReadable(e){var t=e._readableState;u(\"endReadable\",t.endEmitted);if(!t.endEmitted){t.ended=true;process.nextTick(endReadableNT,t,e)}}function endReadableNT(e,t){u(\"endReadableNT\",e.endEmitted,e.length);if(!e.endEmitted&&e.length===0){e.endEmitted=true;t.readable=false;t.emit(\"end\");if(e.autoDestroy){var r=t._writableState;if(!r||r.autoDestroy&&r.finished){t.destroy()}}}}if(typeof Symbol===\"function\"){Readable.from=function(e,t){if(S===undefined){S=r(727)}return S(Readable,e,t)}}function indexOf(e,t){for(var r=0,n=e.length;r<n;r++){if(e[r]===t)return r}return-1}},170:function(e,t,r){\"use strict\";e.exports=Transform;var n=r(646).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0;var f=r(403);r(782)(Transform,f);function afterTransform(e,t){var r=this._transformState;r.transforming=false;var n=r.writecb;if(n===null){return this.emit(\"error\",new a)}r.writechunk=null;r.writecb=null;if(t!=null)this.push(t);n(e);var i=this._readableState;i.reading=false;if(i.needReadable||i.length<i.highWaterMark){this._read(i.highWaterMark)}}function Transform(e){if(!(this instanceof Transform))return new Transform(e);f.call(this,e);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};this._readableState.needReadable=true;this._readableState.sync=false;if(e){if(typeof e.transform===\"function\")this._transform=e.transform;if(typeof e.flush===\"function\")this._flush=e.flush}this.on(\"prefinish\",prefinish)}function prefinish(){var e=this;if(typeof this._flush===\"function\"&&!this._readableState.destroyed){this._flush((function(t,r){done(e,t,r)}))}else{done(this,null,null)}}Transform.prototype.push=function(e,t){this._transformState.needTransform=false;return f.prototype.push.call(this,e,t)};Transform.prototype._transform=function(e,t,r){r(new i(\"_transform()\"))};Transform.prototype._write=function(e,t,r){var n=this._transformState;n.writecb=r;n.writechunk=e;n.writeencoding=t;if(!n.transforming){var i=this._readableState;if(n.needTransform||i.needReadable||i.length<i.highWaterMark)this._read(i.highWaterMark)}};Transform.prototype._read=function(e){var t=this._transformState;if(t.writechunk!==null&&!t.transforming){t.transforming=true;this._transform(t.writechunk,t.writeencoding,t.afterTransform)}else{t.needTransform=true}};Transform.prototype._destroy=function(e,t){f.prototype._destroy.call(this,e,(function(e){t(e)}))};function done(e,t,r){if(t)return e.emit(\"error\",t);if(r!=null)e.push(r);if(e._writableState.length)throw new s;if(e._transformState.transforming)throw new o;return e.push(null)}},337:function(e,t,r){\"use strict\";e.exports=Writable;function WriteReq(e,t,r){this.chunk=e;this.encoding=t;this.callback=r;this.next=null}function CorkedRequest(e){var t=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(t,e)}}var n;Writable.WritableState=WritableState;var i={deprecate:r(769)};var a=r(678);var o=r(300).Buffer;var s=__webpack_require__.g.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return o.from(e)}function _isUint8Array(e){return o.isBuffer(e)||e instanceof s}var f=r(25);var l=r(776),u=l.getHighWaterMark;var d=r(646).q,c=d.ERR_INVALID_ARG_TYPE,h=d.ERR_METHOD_NOT_IMPLEMENTED,p=d.ERR_MULTIPLE_CALLBACK,b=d.ERR_STREAM_CANNOT_PIPE,g=d.ERR_STREAM_DESTROYED,y=d.ERR_STREAM_NULL_VALUES,_=d.ERR_STREAM_WRITE_AFTER_END,v=d.ERR_UNKNOWN_ENCODING;var w=f.errorOrDestroy;r(782)(Writable,a);function nop(){}function WritableState(e,t,i){n=n||r(403);e=e||{};if(typeof i!==\"boolean\")i=t instanceof n;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.writableObjectMode;this.highWaterMark=u(this,e,\"writableHighWaterMark\",i);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var a=e.decodeStrings===false;this.decodeStrings=!a;this.defaultEncoding=e.defaultEncoding||\"utf8\";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(t,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.emitClose=e.emitClose!==false;this.autoDestroy=!!e.autoDestroy;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var t=[];while(e){t.push(e);e=e.next}return t};(function(){try{Object.defineProperty(WritableState.prototype,\"buffer\",{get:i.deprecate((function writableStateBufferGetter(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer \"+\"instead.\",\"DEP0003\")})}catch(e){}})();var m;if(typeof Symbol===\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]===\"function\"){m=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(e){if(m.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{m=function realHasInstance(e){return e instanceof this}}function Writable(e){n=n||r(403);var t=this instanceof n;if(!t&&!m.call(Writable,this))return new Writable(e);this._writableState=new WritableState(e,this,t);this.writable=true;if(e){if(typeof e.write===\"function\")this._write=e.write;if(typeof e.writev===\"function\")this._writev=e.writev;if(typeof e.destroy===\"function\")this._destroy=e.destroy;if(typeof e.final===\"function\")this._final=e.final}a.call(this)}Writable.prototype.pipe=function(){w(this,new b)};function writeAfterEnd(e,t){var r=new _;w(e,r);process.nextTick(t,r)}function validChunk(e,t,r,n){var i;if(r===null){i=new y}else if(typeof r!==\"string\"&&!t.objectMode){i=new c(\"chunk\",[\"string\",\"Buffer\"],r)}if(i){w(e,i);process.nextTick(n,i);return false}return true}Writable.prototype.write=function(e,t,r){var n=this._writableState;var i=false;var a=!n.objectMode&&_isUint8Array(e);if(a&&!o.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof t===\"function\"){r=t;t=null}if(a)t=\"buffer\";else if(!t)t=n.defaultEncoding;if(typeof r!==\"function\")r=nop;if(n.ending)writeAfterEnd(this,r);else if(a||validChunk(this,n,e,r)){n.pendingcb++;i=writeOrBuffer(this,n,a,e,t,r)}return i};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e===\"string\")e=e.toLowerCase();if(!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new v(e);this._writableState.defaultEncoding=e;return this};Object.defineProperty(Writable.prototype,\"writableBuffer\",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(e,t,r){if(!e.objectMode&&e.decodeStrings!==false&&typeof t===\"string\"){t=o.from(t,r)}return t}Object.defineProperty(Writable.prototype,\"writableHighWaterMark\",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(e,t,r,n,i,a){if(!r){var o=decodeChunk(t,n,i);if(n!==o){r=true;i=\"buffer\";n=o}}var s=t.objectMode?1:n.length;t.length+=s;var f=t.length<t.highWaterMark;if(!f)t.needDrain=true;if(t.writing||t.corked){var l=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:a,next:null};if(l){l.next=t.lastBufferedRequest}else{t.bufferedRequest=t.lastBufferedRequest}t.bufferedRequestCount+=1}else{doWrite(e,t,false,s,n,i,a)}return f}function doWrite(e,t,r,n,i,a,o){t.writelen=n;t.writecb=o;t.writing=true;t.sync=true;if(t.destroyed)t.onwrite(new g(\"write\"));else if(r)e._writev(i,t.onwrite);else e._write(i,a,t.onwrite);t.sync=false}function onwriteError(e,t,r,n,i){--t.pendingcb;if(r){process.nextTick(i,n);process.nextTick(finishMaybe,e,t);e._writableState.errorEmitted=true;w(e,n)}else{i(n);e._writableState.errorEmitted=true;w(e,n);finishMaybe(e,t)}}function onwriteStateUpdate(e){e.writing=false;e.writecb=null;e.length-=e.writelen;e.writelen=0}function onwrite(e,t){var r=e._writableState;var n=r.sync;var i=r.writecb;if(typeof i!==\"function\")throw new p;onwriteStateUpdate(r);if(t)onwriteError(e,r,n,t,i);else{var a=needFinish(r)||e.destroyed;if(!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest){clearBuffer(e,r)}if(n){process.nextTick(afterWrite,e,r,a,i)}else{afterWrite(e,r,a,i)}}}function afterWrite(e,t,r,n){if(!r)onwriteDrain(e,t);t.pendingcb--;n();finishMaybe(e,t)}function onwriteDrain(e,t){if(t.length===0&&t.needDrain){t.needDrain=false;e.emit(\"drain\")}}function clearBuffer(e,t){t.bufferProcessing=true;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount;var i=new Array(n);var a=t.corkedRequestsFree;a.entry=r;var o=0;var s=true;while(r){i[o]=r;if(!r.isBuf)s=false;r=r.next;o+=1}i.allBuffers=s;doWrite(e,t,true,t.length,i,\"\",a.finish);t.pendingcb++;t.lastBufferedRequest=null;if(a.next){t.corkedRequestsFree=a.next;a.next=null}else{t.corkedRequestsFree=new CorkedRequest(t)}t.bufferedRequestCount=0}else{while(r){var f=r.chunk;var l=r.encoding;var u=r.callback;var d=t.objectMode?1:f.length;doWrite(e,t,false,d,f,l,u);r=r.next;t.bufferedRequestCount--;if(t.writing){break}}if(r===null)t.lastBufferedRequest=null}t.bufferedRequest=r;t.bufferProcessing=false}Writable.prototype._write=function(e,t,r){r(new h(\"_write()\"))};Writable.prototype._writev=null;Writable.prototype.end=function(e,t,r){var n=this._writableState;if(typeof e===\"function\"){r=e;e=null;t=null}else if(typeof t===\"function\"){r=t;t=null}if(e!==null&&e!==undefined)this.write(e,t);if(n.corked){n.corked=1;this.uncork()}if(!n.ending)endWritable(this,n,r);return this};Object.defineProperty(Writable.prototype,\"writableLength\",{enumerable:false,get:function get(){return this._writableState.length}});function needFinish(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function callFinal(e,t){e._final((function(r){t.pendingcb--;if(r){w(e,r)}t.prefinished=true;e.emit(\"prefinish\");finishMaybe(e,t)}))}function prefinish(e,t){if(!t.prefinished&&!t.finalCalled){if(typeof e._final===\"function\"&&!t.destroyed){t.pendingcb++;t.finalCalled=true;process.nextTick(callFinal,e,t)}else{t.prefinished=true;e.emit(\"prefinish\")}}}function finishMaybe(e,t){var r=needFinish(t);if(r){prefinish(e,t);if(t.pendingcb===0){t.finished=true;e.emit(\"finish\");if(t.autoDestroy){var n=e._readableState;if(!n||n.autoDestroy&&n.endEmitted){e.destroy()}}}}return r}function endWritable(e,t,r){t.ending=true;finishMaybe(e,t);if(r){if(t.finished)process.nextTick(r);else e.once(\"finish\",r)}t.ended=true;e.writable=false}function onCorkedFinish(e,t,r){var n=e.entry;e.entry=null;while(n){var i=n.callback;t.pendingcb--;i(r);n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(Writable.prototype,\"destroyed\",{enumerable:false,get:function get(){if(this._writableState===undefined){return false}return this._writableState.destroyed},set:function set(e){if(!this._writableState){return}this._writableState.destroyed=e}});Writable.prototype.destroy=f.destroy;Writable.prototype._undestroy=f.undestroy;Writable.prototype._destroy=function(e,t){t(e)}},871:function(e,t,r){\"use strict\";var n;function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var i=r(698);var a=Symbol(\"lastResolve\");var o=Symbol(\"lastReject\");var s=Symbol(\"error\");var f=Symbol(\"ended\");var l=Symbol(\"lastPromise\");var u=Symbol(\"handlePromise\");var d=Symbol(\"stream\");function createIterResult(e,t){return{value:e,done:t}}function readAndResolve(e){var t=e[a];if(t!==null){var r=e[d].read();if(r!==null){e[l]=null;e[a]=null;e[o]=null;t(createIterResult(r,false))}}}function onReadable(e){process.nextTick(readAndResolve,e)}function wrapForNext(e,t){return function(r,n){e.then((function(){if(t[f]){r(createIterResult(undefined,true));return}t[u](r,n)}),n)}}var c=Object.getPrototypeOf((function(){}));var h=Object.setPrototypeOf((n={get stream(){return this[d]},next:function next(){var e=this;var t=this[s];if(t!==null){return Promise.reject(t)}if(this[f]){return Promise.resolve(createIterResult(undefined,true))}if(this[d].destroyed){return new Promise((function(t,r){process.nextTick((function(){if(e[s]){r(e[s])}else{t(createIterResult(undefined,true))}}))}))}var r=this[l];var n;if(r){n=new Promise(wrapForNext(r,this))}else{var i=this[d].read();if(i!==null){return Promise.resolve(createIterResult(i,false))}n=new Promise(this[u])}this[l]=n;return n}},_defineProperty(n,Symbol.asyncIterator,(function(){return this})),_defineProperty(n,\"return\",(function _return(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){if(e){r(e);return}t(createIterResult(undefined,true))}))}))})),n),c);var p=function createReadableStreamAsyncIterator(e){var t;var r=Object.create(h,(t={},_defineProperty(t,d,{value:e,writable:true}),_defineProperty(t,a,{value:null,writable:true}),_defineProperty(t,o,{value:null,writable:true}),_defineProperty(t,s,{value:null,writable:true}),_defineProperty(t,f,{value:e._readableState.endEmitted,writable:true}),_defineProperty(t,u,{value:function value(e,t){var n=r[d].read();if(n){r[l]=null;r[a]=null;r[o]=null;e(createIterResult(n,false))}else{r[a]=e;r[o]=t}},writable:true}),t));r[l]=null;i(e,(function(e){if(e&&e.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var t=r[o];if(t!==null){r[l]=null;r[a]=null;r[o]=null;t(e)}r[s]=e;return}var n=r[a];if(n!==null){r[l]=null;r[a]=null;r[o]=null;n(createIterResult(undefined,true))}r[f]=true}));e.on(\"readable\",onReadable.bind(null,r));return r};e.exports=p},379:function(e,t,r){\"use strict\";function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t)n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}));r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};if(t%2){ownKeys(Object(r),true).forEach((function(t){_defineProperty(e,t,r[t])}))}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(r))}else{ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}}return e}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){if(t)_defineProperties(e.prototype,t);if(r)_defineProperties(e,r);return e}var n=r(300),i=n.Buffer;var a=r(837),o=a.inspect;var s=o&&o.custom||\"inspect\";function copyBuffer(e,t,r){i.prototype.copy.call(e,t,r)}e.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}_createClass(BufferList,[{key:\"push\",value:function push(e){var t={data:e,next:null};if(this.length>0)this.tail.next=t;else this.head=t;this.tail=t;++this.length}},{key:\"unshift\",value:function unshift(e){var t={data:e,next:this.head};if(this.length===0)this.tail=t;this.head=t;++this.length}},{key:\"shift\",value:function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e}},{key:\"clear\",value:function clear(){this.head=this.tail=null;this.length=0}},{key:\"join\",value:function join(e){if(this.length===0)return\"\";var t=this.head;var r=\"\"+t.data;while(t=t.next){r+=e+t.data}return r}},{key:\"concat\",value:function concat(e){if(this.length===0)return i.alloc(0);var t=i.allocUnsafe(e>>>0);var r=this.head;var n=0;while(r){copyBuffer(r.data,t,n);n+=r.data.length;r=r.next}return t}},{key:\"consume\",value:function consume(e,t){var r;if(e<this.head.data.length){r=this.head.data.slice(0,e);this.head.data=this.head.data.slice(e)}else if(e===this.head.data.length){r=this.shift()}else{r=t?this._getString(e):this._getBuffer(e)}return r}},{key:\"first\",value:function first(){return this.head.data}},{key:\"_getString\",value:function _getString(e){var t=this.head;var r=1;var n=t.data;e-=n.length;while(t=t.next){var i=t.data;var a=e>i.length?i.length:e;if(a===i.length)n+=i;else n+=i.slice(0,e);e-=a;if(e===0){if(a===i.length){++r;if(t.next)this.head=t.next;else this.head=this.tail=null}else{this.head=t;t.data=i.slice(a)}break}++r}this.length-=r;return n}},{key:\"_getBuffer\",value:function _getBuffer(e){var t=i.allocUnsafe(e);var r=this.head;var n=1;r.data.copy(t);e-=r.data.length;while(r=r.next){var a=r.data;var o=e>a.length?a.length:e;a.copy(t,t.length-e,0,o);e-=o;if(e===0){if(o===a.length){++n;if(r.next)this.head=r.next;else this.head=this.tail=null}else{this.head=r;r.data=a.slice(o)}break}++n}this.length-=n;return t}},{key:s,value:function value(e,t){return o(this,_objectSpread({},t,{depth:0,customInspect:false}))}}]);return BufferList}()},25:function(e){\"use strict\";function destroy(e,t){var r=this;var n=this._readableState&&this._readableState.destroyed;var i=this._writableState&&this._writableState.destroyed;if(n||i){if(t){t(e)}else if(e){if(!this._writableState){process.nextTick(emitErrorNT,this,e)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,e)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(e||null,(function(e){if(!t&&e){if(!r._writableState){process.nextTick(emitErrorAndCloseNT,r,e)}else if(!r._writableState.errorEmitted){r._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,r,e)}else{process.nextTick(emitCloseNT,r)}}else if(t){process.nextTick(emitCloseNT,r);t(e)}else{process.nextTick(emitCloseNT,r)}}));return this}function emitErrorAndCloseNT(e,t){emitErrorNT(e,t);emitCloseNT(e)}function emitCloseNT(e){if(e._writableState&&!e._writableState.emitClose)return;if(e._readableState&&!e._readableState.emitClose)return;e.emit(\"close\")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(e,t){e.emit(\"error\",t)}function errorOrDestroy(e,t){var r=e._readableState;var n=e._writableState;if(r&&r.autoDestroy||n&&n.autoDestroy)e.destroy(t);else e.emit(\"error\",t)}e.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}},698:function(e,t,r){\"use strict\";var n=r(646).q.ERR_STREAM_PREMATURE_CLOSE;function once(e){var t=false;return function(){if(t)return;t=true;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++){n[i]=arguments[i]}e.apply(this,n)}}function noop(){}function isRequest(e){return e.setHeader&&typeof e.abort===\"function\"}function eos(e,t,r){if(typeof t===\"function\")return eos(e,null,t);if(!t)t={};r=once(r||noop);var i=t.readable||t.readable!==false&&e.readable;var a=t.writable||t.writable!==false&&e.writable;var o=function onlegacyfinish(){if(!e.writable)f()};var s=e._writableState&&e._writableState.finished;var f=function onfinish(){a=false;s=true;if(!i)r.call(e)};var l=e._readableState&&e._readableState.endEmitted;var u=function onend(){i=false;l=true;if(!a)r.call(e)};var d=function onerror(t){r.call(e,t)};var c=function onclose(){var t;if(i&&!l){if(!e._readableState||!e._readableState.ended)t=new n;return r.call(e,t)}if(a&&!s){if(!e._writableState||!e._writableState.ended)t=new n;return r.call(e,t)}};var h=function onrequest(){e.req.on(\"finish\",f)};if(isRequest(e)){e.on(\"complete\",f);e.on(\"abort\",c);if(e.req)h();else e.on(\"request\",h)}else if(a&&!e._writableState){e.on(\"end\",o);e.on(\"close\",o)}e.on(\"end\",u);e.on(\"finish\",f);if(t.error!==false)e.on(\"error\",d);e.on(\"close\",c);return function(){e.removeListener(\"complete\",f);e.removeListener(\"abort\",c);e.removeListener(\"request\",h);if(e.req)e.req.removeListener(\"finish\",f);e.removeListener(\"end\",o);e.removeListener(\"close\",o);e.removeListener(\"finish\",f);e.removeListener(\"end\",u);e.removeListener(\"error\",d);e.removeListener(\"close\",c)}}e.exports=eos},727:function(e,t,r){\"use strict\";function asyncGeneratorStep(e,t,r,n,i,a,o){try{var s=e[a](o);var f=s.value}catch(e){r(e);return}if(s.done){t(f)}else{Promise.resolve(f).then(n,i)}}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function _next(e){asyncGeneratorStep(a,n,i,_next,_throw,\"next\",e)}function _throw(e){asyncGeneratorStep(a,n,i,_next,_throw,\"throw\",e)}_next(undefined)}))}}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t)n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}));r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};if(t%2){ownKeys(Object(r),true).forEach((function(t){_defineProperty(e,t,r[t])}))}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(r))}else{ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}}return e}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var n=r(646).q.ERR_INVALID_ARG_TYPE;function from(e,t,r){var i;if(t&&typeof t.next===\"function\"){i=t}else if(t&&t[Symbol.asyncIterator])i=t[Symbol.asyncIterator]();else if(t&&t[Symbol.iterator])i=t[Symbol.iterator]();else throw new n(\"iterable\",[\"Iterable\"],t);var a=new e(_objectSpread({objectMode:true},r));var o=false;a._read=function(){if(!o){o=true;next()}};function next(){return _next2.apply(this,arguments)}function _next2(){_next2=_asyncToGenerator((function*(){try{var e=yield i.next(),t=e.value,r=e.done;if(r){a.push(null)}else if(a.push(yield t)){next()}else{o=false}}catch(e){a.destroy(e)}}));return _next2.apply(this,arguments)}return a}e.exports=from},442:function(e,t,r){\"use strict\";var n;function once(e){var t=false;return function(){if(t)return;t=true;e.apply(void 0,arguments)}}var i=r(646).q,a=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function noop(e){if(e)throw e}function isRequest(e){return e.setHeader&&typeof e.abort===\"function\"}function destroyer(e,t,i,a){a=once(a);var s=false;e.on(\"close\",(function(){s=true}));if(n===undefined)n=r(698);n(e,{readable:t,writable:i},(function(e){if(e)return a(e);s=true;a()}));var f=false;return function(t){if(s)return;if(f)return;f=true;if(isRequest(e))return e.abort();if(typeof e.destroy===\"function\")return e.destroy();a(t||new o(\"pipe\"))}}function call(e){e()}function pipe(e,t){return e.pipe(t)}function popCallback(e){if(!e.length)return noop;if(typeof e[e.length-1]!==\"function\")return noop;return e.pop()}function pipeline(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n=popCallback(t);if(Array.isArray(t[0]))t=t[0];if(t.length<2){throw new a(\"streams\")}var i;var o=t.map((function(e,r){var a=r<t.length-1;var s=r>0;return destroyer(e,a,s,(function(e){if(!i)i=e;if(e)o.forEach(call);if(a)return;o.forEach(call);n(i)}))}));return t.reduce(pipe)}e.exports=pipeline},776:function(e,t,r){\"use strict\";var n=r(646).q.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function getHighWaterMark(e,t,r,i){var a=highWaterMarkFrom(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=i?r:\"highWaterMark\";throw new n(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}e.exports={getHighWaterMark:getHighWaterMark}},678:function(e,t,r){e.exports=r(781)},55:function(e,t,r){var n=r(300);var i=n.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow){e.exports=n}else{copyProps(n,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return i(e,t,r)}SafeBuffer.prototype=Object.create(i.prototype);copyProps(i,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e===\"number\"){throw new TypeError(\"Argument must not be a number\")}return i(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}var n=i(e);if(t!==undefined){if(typeof r===\"string\"){n.fill(t,r)}else{n.fill(t)}}else{n.fill(0)}return n};SafeBuffer.allocUnsafe=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return i(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!==\"number\"){throw new TypeError(\"Argument must be a number\")}return n.SlowBuffer(e)}},173:function(e,t,r){e.exports=Stream;var n=r(361).EventEmitter;var i=r(782);i(Stream,n);Stream.Readable=r(709);Stream.Writable=r(337);Stream.Duplex=r(403);Stream.Transform=r(170);Stream.PassThrough=r(889);Stream.finished=r(698);Stream.pipeline=r(442);Stream.Stream=Stream;function Stream(){n.call(this)}Stream.prototype.pipe=function(e,t){var r=this;function ondata(t){if(e.writable){if(false===e.write(t)&&r.pause){r.pause()}}}r.on(\"data\",ondata);function ondrain(){if(r.readable&&r.resume){r.resume()}}e.on(\"drain\",ondrain);if(!e._isStdio&&(!t||t.end!==false)){r.on(\"end\",onend);r.on(\"close\",onclose)}var i=false;function onend(){if(i)return;i=true;e.end()}function onclose(){if(i)return;i=true;if(typeof e.destroy===\"function\")e.destroy()}function onerror(e){cleanup();if(n.listenerCount(this,\"error\")===0){throw e}}r.on(\"error\",onerror);e.on(\"error\",onerror);function cleanup(){r.removeListener(\"data\",ondata);e.removeListener(\"drain\",ondrain);r.removeListener(\"end\",onend);r.removeListener(\"close\",onclose);r.removeListener(\"error\",onerror);e.removeListener(\"error\",onerror);r.removeListener(\"end\",cleanup);r.removeListener(\"close\",cleanup);e.removeListener(\"close\",cleanup)}r.on(\"end\",cleanup);r.on(\"close\",cleanup);e.on(\"close\",cleanup);e.emit(\"pipe\",r);return e}},704:function(e,t,r){\"use strict\";var n=r(55).Buffer;var i=n.isEncoding||function(e){e=\"\"+e;switch(e&&e.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return true;default:return false}};function _normalizeEncoding(e){if(!e)return\"utf8\";var t;while(true){switch(e){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return e;default:if(t)return;e=(\"\"+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!==\"string\"&&(n.isEncoding===i||!i(e)))throw new Error(\"Unknown encoding: \"+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case\"utf16le\":this.text=utf16Text;this.end=utf16End;t=4;break;case\"utf8\":this.fillLast=utf8FillLast;t=4;break;case\"base64\":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=n.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return\"\";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return\"\";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r<e.length)return t?t+this.text(e,r):this.text(e,r);return t||\"\"};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(e){if(this.lastNeed<=e.length){e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length);this.lastNeed-=e.length};function utf8CheckByte(e){if(e<=127)return 0;else if(e>>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var n=t.length-1;if(n<r)return 0;var i=utf8CheckByte(t[n]);if(i>=0){if(i>0)e.lastNeed=i-1;return i}if(--n<r||i===-2)return 0;i=utf8CheckByte(t[n]);if(i>=0){if(i>0)e.lastNeed=i-2;return i}if(--n<r||i===-2)return 0;i=utf8CheckByte(t[n]);if(i>=0){if(i>0){if(i===2)i=0;else e.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return\"�\"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return\"�\"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return\"�\"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString(\"utf8\",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,n);return e.toString(\"utf8\",t,n)}function utf8End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed)return t+\"�\";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString(\"utf16le\",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString(\"utf16le\",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString(\"utf16le\",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString(\"base64\",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString(\"base64\",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed)return t+this.lastChar.toString(\"base64\",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):\"\"}},769:function(e){e.exports=deprecate;function deprecate(e,t){if(config(\"noDeprecation\")){return e}var r=false;function deprecated(){if(!r){if(config(\"throwDeprecation\")){throw new Error(t)}else if(config(\"traceDeprecation\")){console.trace(t)}else{console.warn(t)}r=true}return e.apply(this,arguments)}return deprecated}function config(e){try{if(!__webpack_require__.g.localStorage)return false}catch(e){return false}var t=__webpack_require__.g.localStorage[e];if(null==t)return false;return String(t).toLowerCase()===\"true\"}},300:function(e){\"use strict\";e.exports=__webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")},361:function(e){\"use strict\";e.exports=__webpack_require__(/*! events */ \"(app-pages-browser)/./node_modules/next/dist/compiled/events/events.js\")},781:function(e){\"use strict\";e.exports=(__webpack_require__(/*! events */ \"(app-pages-browser)/./node_modules/next/dist/compiled/events/events.js\").EventEmitter)},837:function(e){\"use strict\";e.exports=__webpack_require__(/*! util */ \"(app-pages-browser)/./node_modules/next/dist/compiled/util/util.js\")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var a=true;try{e[r](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete t[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r=__nccwpck_require__(173);module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyZWFtLWJyb3dzZXJpZnkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQSxZQUFZLE9BQU8sZ0JBQWdCLHNDQUFzQyxpQ0FBaUMsTUFBTSxXQUFXLHVDQUF1QyxhQUFhLDBEQUEwRCxJQUFJLEtBQUssaUNBQWlDLE1BQU0sV0FBVywwQkFBMEIsK0JBQStCLHlCQUF5Qiw2QkFBNkIsaUJBQWlCLGFBQWEsV0FBVyxnQ0FBZ0MsT0FBTyxRQUFRLDJCQUEyQix3QkFBd0IsU0FBUyxLQUFLLGlCQUFpQiwwQkFBMEIsbUJBQW1CLDBCQUEwQixnQ0FBZ0MsMkJBQTJCLGVBQWUsb0JBQW9CLHFCQUFxQixpQkFBaUIsd0JBQXdCLFFBQVEsZ0JBQWdCLEdBQUcsRUFBRSwwQkFBMEIsY0FBYyxlQUFlLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxLQUFLLEtBQUssRUFBRSxLQUFLLFlBQVksR0FBRyxFQUFFLEtBQUssR0FBRyxLQUFLLFlBQVksR0FBRyxFQUFFLFVBQVUsR0FBRywyQkFBMkIsMkNBQTJDLHlCQUF5Qiw4QkFBOEIsV0FBVyxxQ0FBcUMseUJBQXlCLHdCQUF3QixJQUFJLHdCQUF3QixhQUFhLEtBQUssNEJBQTRCLHVEQUF1RCx3REFBd0QsYUFBYSx3REFBd0QsTUFBTSw4Q0FBOEMsZ0JBQWdCLHdCQUF3QixLQUFLLFlBQVksTUFBTSw0QkFBNEIsU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLEtBQUssOENBQThDLFVBQVUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLFNBQVMsRUFBRSxTQUFTLGFBQWEsdUVBQXVFLDBEQUEwRCw0Q0FBNEMsR0FBRyxnRUFBZ0Usb0RBQW9ELHVEQUF1RCxHQUFHLDBFQUEwRSxzRUFBc0UsZ0VBQWdFLDBGQUEwRixvREFBb0QsNkJBQTZCLGFBQWEseUZBQXlGLGNBQWMscUJB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SSxxQkFBTSwyQkFBMkIsU0FBUyxhQUFhLE1BQU0scUJBQU0saUJBQWlCLHdCQUF3Qix5Q0FBeUMsaUJBQWlCLGFBQWEsVUFBVSxtQkFBTyxDQUFDLHFGQUFRLEVBQUUsaUJBQWlCLGFBQWEsVUFBVSxtQkFBTyxDQUFDLHNGQUFRLEVBQUUsaUJBQWlCLGFBQWEsVUFBVSwwSEFBOEIsQ0FBQyxpQkFBaUIsYUFBYSxVQUFVLG1CQUFPLENBQUMsZ0ZBQU0sSUFBSSxTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsbUVBQW1FLFNBQVMsS0FBSywrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyZWFtLWJyb3dzZXJpZnkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7dmFyIGU9ezc4MjpmdW5jdGlvbihlKXtpZih0eXBlb2YgT2JqZWN0LmNyZWF0ZT09PVwiZnVuY3Rpb25cIil7ZS5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKGUsdCl7aWYodCl7ZS5zdXBlcl89dDtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9fSl9fX1lbHNle2UuZXhwb3J0cz1mdW5jdGlvbiBpbmhlcml0cyhlLHQpe2lmKHQpe2Uuc3VwZXJfPXQ7dmFyIFRlbXBDdG9yPWZ1bmN0aW9uKCl7fTtUZW1wQ3Rvci5wcm90b3R5cGU9dC5wcm90b3R5cGU7ZS5wcm90b3R5cGU9bmV3IFRlbXBDdG9yO2UucHJvdG90eXBlLmNvbnN0cnVjdG9yPWV9fX19LDY0NjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtjb25zdCB0PXt9O2Z1bmN0aW9uIGNyZWF0ZUVycm9yVHlwZShlLHIsbil7aWYoIW4pe249RXJyb3J9ZnVuY3Rpb24gZ2V0TWVzc2FnZShlLHQsbil7aWYodHlwZW9mIHI9PT1cInN0cmluZ1wiKXtyZXR1cm4gcn1lbHNle3JldHVybiByKGUsdCxuKX19Y2xhc3MgTm9kZUVycm9yIGV4dGVuZHMgbntjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZ2V0TWVzc2FnZShlLHQscikpfX1Ob2RlRXJyb3IucHJvdG90eXBlLm5hbWU9bi5uYW1lO05vZGVFcnJvci5wcm90b3R5cGUuY29kZT1lO3RbZV09Tm9kZUVycm9yfWZ1bmN0aW9uIG9uZU9mKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgcj1lLmxlbmd0aDtlPWUubWFwKChlPT5TdHJpbmcoZSkpKTtpZihyPjIpe3JldHVybmBvbmUgb2YgJHt0fSAke2Uuc2xpY2UoMCxyLTEpLmpvaW4oXCIsIFwiKX0sIG9yIGArZVtyLTFdfWVsc2UgaWYocj09PTIpe3JldHVybmBvbmUgb2YgJHt0fSAke2VbMF19IG9yICR7ZVsxXX1gfWVsc2V7cmV0dXJuYG9mICR7dH0gJHtlWzBdfWB9fWVsc2V7cmV0dXJuYG9mICR7dH0gJHtTdHJpbmcoZSl9YH19ZnVuY3Rpb24gc3RhcnRzV2l0aChlLHQscil7cmV0dXJuIGUuc3Vic3RyKCFyfHxyPDA/MDorcix0Lmxlbmd0aCk9PT10fWZ1bmN0aW9uIGVuZHNXaXRoKGUsdCxyKXtpZihyPT09dW5kZWZpbmVkfHxyPmUubGVuZ3RoKXtyPWUubGVuZ3RofXJldHVybiBlLnN1YnN0cmluZyhyLXQubGVuZ3RoLHIpPT09dH1mdW5jdGlvbiBpbmNsdWRlcyhlLHQscil7aWYodHlwZW9mIHIhPT1cIm51bWJlclwiKXtyPTB9aWYocit0Lmxlbmd0aD5lLmxlbmd0aCl7cmV0dXJuIGZhbHNlfWVsc2V7cmV0dXJuIGUuaW5kZXhPZih0LHIpIT09LTF9fWNyZWF0ZUVycm9yVHlwZShcIkVSUl9JTlZBTElEX09QVF9WQUxVRVwiLChmdW5jdGlvbihlLHQpe3JldHVybidUaGUgdmFsdWUgXCInK3QrJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcIicrZSsnXCInfSksVHlwZUVycm9yKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfSU5WQUxJRF9BUkdfVFlQRVwiLChmdW5jdGlvbihlLHQscil7bGV0IG47aWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiJiZzdGFydHNXaXRoKHQsXCJub3QgXCIpKXtuPVwibXVzdCBub3QgYmVcIjt0PXQucmVwbGFjZSgvXm5vdCAvLFwiXCIpfWVsc2V7bj1cIm11c3QgYmVcIn1sZXQgaTtpZihlbmRzV2l0aChlLFwiIGFyZ3VtZW50XCIpKXtpPWBUaGUgJHtlfSAke259ICR7b25lT2YodCxcInR5cGVcIil9YH1lbHNle2NvbnN0IHI9aW5jbHVkZXMoZSxcIi5cIik/XCJwcm9wZXJ0eVwiOlwiYXJndW1lbnRcIjtpPWBUaGUgXCIke2V9XCIgJHtyfSAke259ICR7b25lT2YodCxcInR5cGVcIil9YH1pKz1gLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIHJ9YDtyZXR1cm4gaX0pLFR5cGVFcnJvcik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRlwiLFwic3RyZWFtLnB1c2goKSBhZnRlciBFT0ZcIik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URURcIiwoZnVuY3Rpb24oZSl7cmV0dXJuXCJUaGUgXCIrZStcIiBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkXCJ9KSk7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0VcIixcIlByZW1hdHVyZSBjbG9zZVwiKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX0RFU1RST1lFRFwiLChmdW5jdGlvbihlKXtyZXR1cm5cIkNhbm5vdCBjYWxsIFwiK2UrXCIgYWZ0ZXIgYSBzdHJlYW0gd2FzIGRlc3Ryb3llZFwifSkpO2NyZWF0ZUVycm9yVHlwZShcIkVSUl9NVUxUSVBMRV9DQUxMQkFDS1wiLFwiQ2FsbGJhY2sgY2FsbGVkIG11bHRpcGxlIHRpbWVzXCIpO2NyZWF0ZUVycm9yVHlwZShcIkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEVcIixcIkNhbm5vdCBwaXBlLCBub3QgcmVhZGFibGVcIik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkRcIixcIndyaXRlIGFmdGVyIGVuZFwiKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX05VTExfVkFMVUVTXCIsXCJNYXkgbm90IHdyaXRlIG51bGwgdmFsdWVzIHRvIHN0cmVhbVwiLFR5cGVFcnJvcik7Y3JlYXRlRXJyb3JUeXBlKFwiRVJSX1VOS05PV05fRU5DT0RJTkdcIiwoZnVuY3Rpb24oZSl7cmV0dXJuXCJVbmtub3duIGVuY29kaW5nOiBcIitlfSksVHlwZUVycm9yKTtjcmVhdGVFcnJvclR5cGUoXCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UXCIsXCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudFwiKTtlLmV4cG9ydHMucT10fSw0MDM6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSl7dC5wdXNoKHIpfXJldHVybiB0fTtlLmV4cG9ydHM9RHVwbGV4O3ZhciBpPXIoNzA5KTt2YXIgYT1yKDMzNyk7cig3ODIpKER1cGxleCxpKTt7dmFyIG89bihhLnByb3RvdHlwZSk7Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBmPW9bc107aWYoIUR1cGxleC5wcm90b3R5cGVbZl0pRHVwbGV4LnByb3RvdHlwZVtmXT1hLnByb3RvdHlwZVtmXX19ZnVuY3Rpb24gRHVwbGV4KGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpcmV0dXJuIG5ldyBEdXBsZXgoZSk7aS5jYWxsKHRoaXMsZSk7YS5jYWxsKHRoaXMsZSk7dGhpcy5hbGxvd0hhbGZPcGVuPXRydWU7aWYoZSl7aWYoZS5yZWFkYWJsZT09PWZhbHNlKXRoaXMucmVhZGFibGU9ZmFsc2U7aWYoZS53cml0YWJsZT09PWZhbHNlKXRoaXMud3JpdGFibGU9ZmFsc2U7aWYoZS5hbGxvd0hhbGZPcGVuPT09ZmFsc2Upe3RoaXMuYWxsb3dIYWxmT3Blbj1mYWxzZTt0aGlzLm9uY2UoXCJlbmRcIixvbmVuZCl9fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSxcIndyaXRhYmxlSGlnaFdhdGVyTWFya1wiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLFwid3JpdGFibGVCdWZmZXJcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsXCJ3cml0YWJsZUxlbmd0aFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSk7ZnVuY3Rpb24gb25lbmQoKXtpZih0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkKXJldHVybjtwcm9jZXNzLm5leHRUaWNrKG9uRW5kTlQsdGhpcyl9ZnVuY3Rpb24gb25FbmROVChlKXtlLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLFwiZGVzdHJveWVkXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe2lmKHRoaXMuX3JlYWRhYmxlU3RhdGU9PT11bmRlZmluZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGU9PT11bmRlZmluZWQpe3JldHVybiBmYWxzZX1yZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KGUpe2lmKHRoaXMuX3JlYWRhYmxlU3RhdGU9PT11bmRlZmluZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGU9PT11bmRlZmluZWQpe3JldHVybn10aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1lO3RoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPWV9fSl9LDg4OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPVBhc3NUaHJvdWdoO3ZhciBuPXIoMTcwKTtyKDc4MikoUGFzc1Rocm91Z2gsbik7ZnVuY3Rpb24gUGFzc1Rocm91Z2goZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgUGFzc1Rocm91Z2gpKXJldHVybiBuZXcgUGFzc1Rocm91Z2goZSk7bi5jYWxsKHRoaXMsZSl9UGFzc1Rocm91Z2gucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LHIpe3IobnVsbCxlKX19LDcwOTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPVJlYWRhYmxlO3ZhciBuO1JlYWRhYmxlLlJlYWRhYmxlU3RhdGU9UmVhZGFibGVTdGF0ZTt2YXIgaT1yKDM2MSkuRXZlbnRFbWl0dGVyO3ZhciBhPWZ1bmN0aW9uIEVFbGlzdGVuZXJDb3VudChlLHQpe3JldHVybiBlLmxpc3RlbmVycyh0KS5sZW5ndGh9O3ZhciBvPXIoNjc4KTt2YXIgcz1yKDMwMCkuQnVmZmVyO3ZhciBmPWdsb2JhbC5VaW50OEFycmF5fHxmdW5jdGlvbigpe307ZnVuY3Rpb24gX3VpbnQ4QXJyYXlUb0J1ZmZlcihlKXtyZXR1cm4gcy5mcm9tKGUpfWZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkoZSl7cmV0dXJuIHMuaXNCdWZmZXIoZSl8fGUgaW5zdGFuY2VvZiBmfXZhciBsPXIoODM3KTt2YXIgdTtpZihsJiZsLmRlYnVnbG9nKXt1PWwuZGVidWdsb2coXCJzdHJlYW1cIil9ZWxzZXt1PWZ1bmN0aW9uIGRlYnVnKCl7fX12YXIgZD1yKDM3OSk7dmFyIGM9cigyNSk7dmFyIGg9cig3NzYpLHA9aC5nZXRIaWdoV2F0ZXJNYXJrO3ZhciBiPXIoNjQ2KS5xLGc9Yi5FUlJfSU5WQUxJRF9BUkdfVFlQRSx5PWIuRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRixfPWIuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsdj1iLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7dmFyIHc7dmFyIG07dmFyIFM7cig3ODIpKFJlYWRhYmxlLG8pO3ZhciBSPWMuZXJyb3JPckRlc3Ryb3k7dmFyIEU9W1wiZXJyb3JcIixcImNsb3NlXCIsXCJkZXN0cm95XCIsXCJwYXVzZVwiLFwicmVzdW1lXCJdO2Z1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihlLHQscil7aWYodHlwZW9mIGUucHJlcGVuZExpc3RlbmVyPT09XCJmdW5jdGlvblwiKXJldHVybiBlLnByZXBlbmRMaXN0ZW5lcih0LHIpO2lmKCFlLl9ldmVudHN8fCFlLl9ldmVudHNbdF0pZS5vbih0LHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLl9ldmVudHNbdF0pKWUuX2V2ZW50c1t0XS51bnNoaWZ0KHIpO2Vsc2UgZS5fZXZlbnRzW3RdPVtyLGUuX2V2ZW50c1t0XV19ZnVuY3Rpb24gUmVhZGFibGVTdGF0ZShlLHQsaSl7bj1ufHxyKDQwMyk7ZT1lfHx7fTtpZih0eXBlb2YgaSE9PVwiYm9vbGVhblwiKWk9dCBpbnN0YW5jZW9mIG47dGhpcy5vYmplY3RNb2RlPSEhZS5vYmplY3RNb2RlO2lmKGkpdGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLnJlYWRhYmxlT2JqZWN0TW9kZTt0aGlzLmhpZ2hXYXRlck1hcms9cCh0aGlzLGUsXCJyZWFkYWJsZUhpZ2hXYXRlck1hcmtcIixpKTt0aGlzLmJ1ZmZlcj1uZXcgZDt0aGlzLmxlbmd0aD0wO3RoaXMucGlwZXM9bnVsbDt0aGlzLnBpcGVzQ291bnQ9MDt0aGlzLmZsb3dpbmc9bnVsbDt0aGlzLmVuZGVkPWZhbHNlO3RoaXMuZW5kRW1pdHRlZD1mYWxzZTt0aGlzLnJlYWRpbmc9ZmFsc2U7dGhpcy5zeW5jPXRydWU7dGhpcy5uZWVkUmVhZGFibGU9ZmFsc2U7dGhpcy5lbWl0dGVkUmVhZGFibGU9ZmFsc2U7dGhpcy5yZWFkYWJsZUxpc3RlbmluZz1mYWxzZTt0aGlzLnJlc3VtZVNjaGVkdWxlZD1mYWxzZTt0aGlzLnBhdXNlZD10cnVlO3RoaXMuZW1pdENsb3NlPWUuZW1pdENsb3NlIT09ZmFsc2U7dGhpcy5hdXRvRGVzdHJveT0hIWUuYXV0b0Rlc3Ryb3k7dGhpcy5kZXN0cm95ZWQ9ZmFsc2U7dGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fFwidXRmOFwiO3RoaXMuYXdhaXREcmFpbj0wO3RoaXMucmVhZGluZ01vcmU9ZmFsc2U7dGhpcy5kZWNvZGVyPW51bGw7dGhpcy5lbmNvZGluZz1udWxsO2lmKGUuZW5jb2Rpbmcpe2lmKCF3KXc9cig3MDQpLnM7dGhpcy5kZWNvZGVyPW5ldyB3KGUuZW5jb2RpbmcpO3RoaXMuZW5jb2Rpbmc9ZS5lbmNvZGluZ319ZnVuY3Rpb24gUmVhZGFibGUoZSl7bj1ufHxyKDQwMyk7aWYoISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKXJldHVybiBuZXcgUmVhZGFibGUoZSk7dmFyIHQ9dGhpcyBpbnN0YW5jZW9mIG47dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgUmVhZGFibGVTdGF0ZShlLHRoaXMsdCk7dGhpcy5yZWFkYWJsZT10cnVlO2lmKGUpe2lmKHR5cGVvZiBlLnJlYWQ9PT1cImZ1bmN0aW9uXCIpdGhpcy5fcmVhZD1lLnJlYWQ7aWYodHlwZW9mIGUuZGVzdHJveT09PVwiZnVuY3Rpb25cIil0aGlzLl9kZXN0cm95PWUuZGVzdHJveX1vLmNhbGwodGhpcyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSxcImRlc3Ryb3llZFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtpZih0aGlzLl9yZWFkYWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KGUpe2lmKCF0aGlzLl9yZWFkYWJsZVN0YXRlKXtyZXR1cm59dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZX19KTtSZWFkYWJsZS5wcm90b3R5cGUuZGVzdHJveT1jLmRlc3Ryb3k7UmVhZGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3k9Yy51bmRlc3Ryb3k7UmVhZGFibGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGUsdCl7dChlKX07UmVhZGFibGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9yZWFkYWJsZVN0YXRlO3ZhciBuO2lmKCFyLm9iamVjdE1vZGUpe2lmKHR5cGVvZiBlPT09XCJzdHJpbmdcIil7dD10fHxyLmRlZmF1bHRFbmNvZGluZztpZih0IT09ci5lbmNvZGluZyl7ZT1zLmZyb20oZSx0KTt0PVwiXCJ9bj10cnVlfX1lbHNle249dHJ1ZX1yZXR1cm4gcmVhZGFibGVBZGRDaHVuayh0aGlzLGUsdCxmYWxzZSxuKX07UmVhZGFibGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcyxlLG51bGwsdHJ1ZSxmYWxzZSl9O2Z1bmN0aW9uIHJlYWRhYmxlQWRkQ2h1bmsoZSx0LHIsbixpKXt1KFwicmVhZGFibGVBZGRDaHVua1wiLHQpO3ZhciBhPWUuX3JlYWRhYmxlU3RhdGU7aWYodD09PW51bGwpe2EucmVhZGluZz1mYWxzZTtvbkVvZkNodW5rKGUsYSl9ZWxzZXt2YXIgbztpZighaSlvPWNodW5rSW52YWxpZChhLHQpO2lmKG8pe1IoZSxvKX1lbHNlIGlmKGEub2JqZWN0TW9kZXx8dCYmdC5sZW5ndGg+MCl7aWYodHlwZW9mIHQhPT1cInN0cmluZ1wiJiYhYS5vYmplY3RNb2RlJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkhPT1zLnByb3RvdHlwZSl7dD1fdWludDhBcnJheVRvQnVmZmVyKHQpfWlmKG4pe2lmKGEuZW5kRW1pdHRlZClSKGUsbmV3IHYpO2Vsc2UgYWRkQ2h1bmsoZSxhLHQsdHJ1ZSl9ZWxzZSBpZihhLmVuZGVkKXtSKGUsbmV3IHkpfWVsc2UgaWYoYS5kZXN0cm95ZWQpe3JldHVybiBmYWxzZX1lbHNle2EucmVhZGluZz1mYWxzZTtpZihhLmRlY29kZXImJiFyKXt0PWEuZGVjb2Rlci53cml0ZSh0KTtpZihhLm9iamVjdE1vZGV8fHQubGVuZ3RoIT09MClhZGRDaHVuayhlLGEsdCxmYWxzZSk7ZWxzZSBtYXliZVJlYWRNb3JlKGUsYSl9ZWxzZXthZGRDaHVuayhlLGEsdCxmYWxzZSl9fX1lbHNlIGlmKCFuKXthLnJlYWRpbmc9ZmFsc2U7bWF5YmVSZWFkTW9yZShlLGEpfX1yZXR1cm4hYS5lbmRlZCYmKGEubGVuZ3RoPGEuaGlnaFdhdGVyTWFya3x8YS5sZW5ndGg9PT0wKX1mdW5jdGlvbiBhZGRDaHVuayhlLHQscixuKXtpZih0LmZsb3dpbmcmJnQubGVuZ3RoPT09MCYmIXQuc3luYyl7dC5hd2FpdERyYWluPTA7ZS5lbWl0KFwiZGF0YVwiLHIpfWVsc2V7dC5sZW5ndGgrPXQub2JqZWN0TW9kZT8xOnIubGVuZ3RoO2lmKG4pdC5idWZmZXIudW5zaGlmdChyKTtlbHNlIHQuYnVmZmVyLnB1c2gocik7aWYodC5uZWVkUmVhZGFibGUpZW1pdFJlYWRhYmxlKGUpfW1heWJlUmVhZE1vcmUoZSx0KX1mdW5jdGlvbiBjaHVua0ludmFsaWQoZSx0KXt2YXIgcjtpZighX2lzVWludDhBcnJheSh0KSYmdHlwZW9mIHQhPT1cInN0cmluZ1wiJiZ0IT09dW5kZWZpbmVkJiYhZS5vYmplY3RNb2RlKXtyPW5ldyBnKFwiY2h1bmtcIixbXCJzdHJpbmdcIixcIkJ1ZmZlclwiLFwiVWludDhBcnJheVwiXSx0KX1yZXR1cm4gcn1SZWFkYWJsZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPT09ZmFsc2V9O1JlYWRhYmxlLnByb3RvdHlwZS5zZXRFbmNvZGluZz1mdW5jdGlvbihlKXtpZighdyl3PXIoNzA0KS5zO3ZhciB0PW5ldyB3KGUpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj10O3RoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO3ZhciBuPXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmhlYWQ7dmFyIGk9XCJcIjt3aGlsZShuIT09bnVsbCl7aSs9dC53cml0ZShuLmRhdGEpO249bi5uZXh0fXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmNsZWFyKCk7aWYoaSE9PVwiXCIpdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIucHVzaChpKTt0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aD1pLmxlbmd0aDtyZXR1cm4gdGhpc307dmFyIFQ9MTA3Mzc0MTgyNDtmdW5jdGlvbiBjb21wdXRlTmV3SGlnaFdhdGVyTWFyayhlKXtpZihlPj1UKXtlPVR9ZWxzZXtlLS07ZXw9ZT4+PjE7ZXw9ZT4+PjI7ZXw9ZT4+PjQ7ZXw9ZT4+Pjg7ZXw9ZT4+PjE2O2UrK31yZXR1cm4gZX1mdW5jdGlvbiBob3dNdWNoVG9SZWFkKGUsdCl7aWYoZTw9MHx8dC5sZW5ndGg9PT0wJiZ0LmVuZGVkKXJldHVybiAwO2lmKHQub2JqZWN0TW9kZSlyZXR1cm4gMTtpZihlIT09ZSl7aWYodC5mbG93aW5nJiZ0Lmxlbmd0aClyZXR1cm4gdC5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDtlbHNlIHJldHVybiB0Lmxlbmd0aH1pZihlPnQuaGlnaFdhdGVyTWFyayl0LmhpZ2hXYXRlck1hcms9Y29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsoZSk7aWYoZTw9dC5sZW5ndGgpcmV0dXJuIGU7aWYoIXQuZW5kZWQpe3QubmVlZFJlYWRhYmxlPXRydWU7cmV0dXJuIDB9cmV0dXJuIHQubGVuZ3RofVJlYWRhYmxlLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKGUpe3UoXCJyZWFkXCIsZSk7ZT1wYXJzZUludChlLDEwKTt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3ZhciByPWU7aWYoZSE9PTApdC5lbWl0dGVkUmVhZGFibGU9ZmFsc2U7aWYoZT09PTAmJnQubmVlZFJlYWRhYmxlJiYoKHQuaGlnaFdhdGVyTWFyayE9PTA/dC5sZW5ndGg+PXQuaGlnaFdhdGVyTWFyazp0Lmxlbmd0aD4wKXx8dC5lbmRlZCkpe3UoXCJyZWFkOiBlbWl0UmVhZGFibGVcIix0Lmxlbmd0aCx0LmVuZGVkKTtpZih0Lmxlbmd0aD09PTAmJnQuZW5kZWQpZW5kUmVhZGFibGUodGhpcyk7ZWxzZSBlbWl0UmVhZGFibGUodGhpcyk7cmV0dXJuIG51bGx9ZT1ob3dNdWNoVG9SZWFkKGUsdCk7aWYoZT09PTAmJnQuZW5kZWQpe2lmKHQubGVuZ3RoPT09MCllbmRSZWFkYWJsZSh0aGlzKTtyZXR1cm4gbnVsbH12YXIgbj10Lm5lZWRSZWFkYWJsZTt1KFwibmVlZCByZWFkYWJsZVwiLG4pO2lmKHQubGVuZ3RoPT09MHx8dC5sZW5ndGgtZTx0LmhpZ2hXYXRlck1hcmspe249dHJ1ZTt1KFwibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmtcIixuKX1pZih0LmVuZGVkfHx0LnJlYWRpbmcpe249ZmFsc2U7dShcInJlYWRpbmcgb3IgZW5kZWRcIixuKX1lbHNlIGlmKG4pe3UoXCJkbyByZWFkXCIpO3QucmVhZGluZz10cnVlO3Quc3luYz10cnVlO2lmKHQubGVuZ3RoPT09MCl0Lm5lZWRSZWFkYWJsZT10cnVlO3RoaXMuX3JlYWQodC5oaWdoV2F0ZXJNYXJrKTt0LnN5bmM9ZmFsc2U7aWYoIXQucmVhZGluZyllPWhvd011Y2hUb1JlYWQocix0KX12YXIgaTtpZihlPjApaT1mcm9tTGlzdChlLHQpO2Vsc2UgaT1udWxsO2lmKGk9PT1udWxsKXt0Lm5lZWRSZWFkYWJsZT10Lmxlbmd0aDw9dC5oaWdoV2F0ZXJNYXJrO2U9MH1lbHNle3QubGVuZ3RoLT1lO3QuYXdhaXREcmFpbj0wfWlmKHQubGVuZ3RoPT09MCl7aWYoIXQuZW5kZWQpdC5uZWVkUmVhZGFibGU9dHJ1ZTtpZihyIT09ZSYmdC5lbmRlZCllbmRSZWFkYWJsZSh0aGlzKX1pZihpIT09bnVsbCl0aGlzLmVtaXQoXCJkYXRhXCIsaSk7cmV0dXJuIGl9O2Z1bmN0aW9uIG9uRW9mQ2h1bmsoZSx0KXt1KFwib25Fb2ZDaHVua1wiKTtpZih0LmVuZGVkKXJldHVybjtpZih0LmRlY29kZXIpe3ZhciByPXQuZGVjb2Rlci5lbmQoKTtpZihyJiZyLmxlbmd0aCl7dC5idWZmZXIucHVzaChyKTt0Lmxlbmd0aCs9dC5vYmplY3RNb2RlPzE6ci5sZW5ndGh9fXQuZW5kZWQ9dHJ1ZTtpZih0LnN5bmMpe2VtaXRSZWFkYWJsZShlKX1lbHNle3QubmVlZFJlYWRhYmxlPWZhbHNlO2lmKCF0LmVtaXR0ZWRSZWFkYWJsZSl7dC5lbWl0dGVkUmVhZGFibGU9dHJ1ZTtlbWl0UmVhZGFibGVfKGUpfX19ZnVuY3Rpb24gZW1pdFJlYWRhYmxlKGUpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7dShcImVtaXRSZWFkYWJsZVwiLHQubmVlZFJlYWRhYmxlLHQuZW1pdHRlZFJlYWRhYmxlKTt0Lm5lZWRSZWFkYWJsZT1mYWxzZTtpZighdC5lbWl0dGVkUmVhZGFibGUpe3UoXCJlbWl0UmVhZGFibGVcIix0LmZsb3dpbmcpO3QuZW1pdHRlZFJlYWRhYmxlPXRydWU7cHJvY2Vzcy5uZXh0VGljayhlbWl0UmVhZGFibGVfLGUpfX1mdW5jdGlvbiBlbWl0UmVhZGFibGVfKGUpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7dShcImVtaXRSZWFkYWJsZV9cIix0LmRlc3Ryb3llZCx0Lmxlbmd0aCx0LmVuZGVkKTtpZighdC5kZXN0cm95ZWQmJih0Lmxlbmd0aHx8dC5lbmRlZCkpe2UuZW1pdChcInJlYWRhYmxlXCIpO3QuZW1pdHRlZFJlYWRhYmxlPWZhbHNlfXQubmVlZFJlYWRhYmxlPSF0LmZsb3dpbmcmJiF0LmVuZGVkJiZ0Lmxlbmd0aDw9dC5oaWdoV2F0ZXJNYXJrO2Zsb3coZSl9ZnVuY3Rpb24gbWF5YmVSZWFkTW9yZShlLHQpe2lmKCF0LnJlYWRpbmdNb3JlKXt0LnJlYWRpbmdNb3JlPXRydWU7cHJvY2Vzcy5uZXh0VGljayhtYXliZVJlYWRNb3JlXyxlLHQpfX1mdW5jdGlvbiBtYXliZVJlYWRNb3JlXyhlLHQpe3doaWxlKCF0LnJlYWRpbmcmJiF0LmVuZGVkJiYodC5sZW5ndGg8dC5oaWdoV2F0ZXJNYXJrfHx0LmZsb3dpbmcmJnQubGVuZ3RoPT09MCkpe3ZhciByPXQubGVuZ3RoO3UoXCJtYXliZVJlYWRNb3JlIHJlYWQgMFwiKTtlLnJlYWQoMCk7aWYocj09PXQubGVuZ3RoKWJyZWFrfXQucmVhZGluZ01vcmU9ZmFsc2V9UmVhZGFibGUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGUpe1IodGhpcyxuZXcgXyhcIl9yZWFkKClcIikpfTtSZWFkYWJsZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7dmFyIG49dGhpcy5fcmVhZGFibGVTdGF0ZTtzd2l0Y2gobi5waXBlc0NvdW50KXtjYXNlIDA6bi5waXBlcz1lO2JyZWFrO2Nhc2UgMTpuLnBpcGVzPVtuLnBpcGVzLGVdO2JyZWFrO2RlZmF1bHQ6bi5waXBlcy5wdXNoKGUpO2JyZWFrfW4ucGlwZXNDb3VudCs9MTt1KFwicGlwZSBjb3VudD0lZCBvcHRzPSVqXCIsbi5waXBlc0NvdW50LHQpO3ZhciBpPSghdHx8dC5lbmQhPT1mYWxzZSkmJmUhPT1wcm9jZXNzLnN0ZG91dCYmZSE9PXByb2Nlc3Muc3RkZXJyO3ZhciBvPWk/b25lbmQ6dW5waXBlO2lmKG4uZW5kRW1pdHRlZClwcm9jZXNzLm5leHRUaWNrKG8pO2Vsc2Ugci5vbmNlKFwiZW5kXCIsbyk7ZS5vbihcInVucGlwZVwiLG9udW5waXBlKTtmdW5jdGlvbiBvbnVucGlwZShlLHQpe3UoXCJvbnVucGlwZVwiKTtpZihlPT09cil7aWYodCYmdC5oYXNVbnBpcGVkPT09ZmFsc2Upe3QuaGFzVW5waXBlZD10cnVlO2NsZWFudXAoKX19fWZ1bmN0aW9uIG9uZW5kKCl7dShcIm9uZW5kXCIpO2UuZW5kKCl9dmFyIHM9cGlwZU9uRHJhaW4ocik7ZS5vbihcImRyYWluXCIscyk7dmFyIGY9ZmFsc2U7ZnVuY3Rpb24gY2xlYW51cCgpe3UoXCJjbGVhbnVwXCIpO2UucmVtb3ZlTGlzdGVuZXIoXCJjbG9zZVwiLG9uY2xvc2UpO2UucmVtb3ZlTGlzdGVuZXIoXCJmaW5pc2hcIixvbmZpbmlzaCk7ZS5yZW1vdmVMaXN0ZW5lcihcImRyYWluXCIscyk7ZS5yZW1vdmVMaXN0ZW5lcihcImVycm9yXCIsb25lcnJvcik7ZS5yZW1vdmVMaXN0ZW5lcihcInVucGlwZVwiLG9udW5waXBlKTtyLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIsb25lbmQpO3IucmVtb3ZlTGlzdGVuZXIoXCJlbmRcIix1bnBpcGUpO3IucmVtb3ZlTGlzdGVuZXIoXCJkYXRhXCIsb25kYXRhKTtmPXRydWU7aWYobi5hd2FpdERyYWluJiYoIWUuX3dyaXRhYmxlU3RhdGV8fGUuX3dyaXRhYmxlU3RhdGUubmVlZERyYWluKSlzKCl9ci5vbihcImRhdGFcIixvbmRhdGEpO2Z1bmN0aW9uIG9uZGF0YSh0KXt1KFwib25kYXRhXCIpO3ZhciBpPWUud3JpdGUodCk7dShcImRlc3Qud3JpdGVcIixpKTtpZihpPT09ZmFsc2Upe2lmKChuLnBpcGVzQ291bnQ9PT0xJiZuLnBpcGVzPT09ZXx8bi5waXBlc0NvdW50PjEmJmluZGV4T2Yobi5waXBlcyxlKSE9PS0xKSYmIWYpe3UoXCJmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2VcIixuLmF3YWl0RHJhaW4pO24uYXdhaXREcmFpbisrfXIucGF1c2UoKX19ZnVuY3Rpb24gb25lcnJvcih0KXt1KFwib25lcnJvclwiLHQpO3VucGlwZSgpO2UucmVtb3ZlTGlzdGVuZXIoXCJlcnJvclwiLG9uZXJyb3IpO2lmKGEoZSxcImVycm9yXCIpPT09MClSKGUsdCl9cHJlcGVuZExpc3RlbmVyKGUsXCJlcnJvclwiLG9uZXJyb3IpO2Z1bmN0aW9uIG9uY2xvc2UoKXtlLnJlbW92ZUxpc3RlbmVyKFwiZmluaXNoXCIsb25maW5pc2gpO3VucGlwZSgpfWUub25jZShcImNsb3NlXCIsb25jbG9zZSk7ZnVuY3Rpb24gb25maW5pc2goKXt1KFwib25maW5pc2hcIik7ZS5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIsb25jbG9zZSk7dW5waXBlKCl9ZS5vbmNlKFwiZmluaXNoXCIsb25maW5pc2gpO2Z1bmN0aW9uIHVucGlwZSgpe3UoXCJ1bnBpcGVcIik7ci51bnBpcGUoZSl9ZS5lbWl0KFwicGlwZVwiLHIpO2lmKCFuLmZsb3dpbmcpe3UoXCJwaXBlIHJlc3VtZVwiKTtyLnJlc3VtZSgpfXJldHVybiBlfTtmdW5jdGlvbiBwaXBlT25EcmFpbihlKXtyZXR1cm4gZnVuY3Rpb24gcGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCgpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7dShcInBpcGVPbkRyYWluXCIsdC5hd2FpdERyYWluKTtpZih0LmF3YWl0RHJhaW4pdC5hd2FpdERyYWluLS07aWYodC5hd2FpdERyYWluPT09MCYmYShlLFwiZGF0YVwiKSl7dC5mbG93aW5nPXRydWU7ZmxvdyhlKX19fVJlYWRhYmxlLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcmVhZGFibGVTdGF0ZTt2YXIgcj17aGFzVW5waXBlZDpmYWxzZX07aWYodC5waXBlc0NvdW50PT09MClyZXR1cm4gdGhpcztpZih0LnBpcGVzQ291bnQ9PT0xKXtpZihlJiZlIT09dC5waXBlcylyZXR1cm4gdGhpcztpZighZSllPXQucGlwZXM7dC5waXBlcz1udWxsO3QucGlwZXNDb3VudD0wO3QuZmxvd2luZz1mYWxzZTtpZihlKWUuZW1pdChcInVucGlwZVwiLHRoaXMscik7cmV0dXJuIHRoaXN9aWYoIWUpe3ZhciBuPXQucGlwZXM7dmFyIGk9dC5waXBlc0NvdW50O3QucGlwZXM9bnVsbDt0LnBpcGVzQ291bnQ9MDt0LmZsb3dpbmc9ZmFsc2U7Zm9yKHZhciBhPTA7YTxpO2ErKyl7blthXS5lbWl0KFwidW5waXBlXCIsdGhpcyx7aGFzVW5waXBlZDpmYWxzZX0pfXJldHVybiB0aGlzfXZhciBvPWluZGV4T2YodC5waXBlcyxlKTtpZihvPT09LTEpcmV0dXJuIHRoaXM7dC5waXBlcy5zcGxpY2UobywxKTt0LnBpcGVzQ291bnQtPTE7aWYodC5waXBlc0NvdW50PT09MSl0LnBpcGVzPXQucGlwZXNbMF07ZS5lbWl0KFwidW5waXBlXCIsdGhpcyxyKTtyZXR1cm4gdGhpc307UmVhZGFibGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7dmFyIHI9by5wcm90b3R5cGUub24uY2FsbCh0aGlzLGUsdCk7dmFyIG49dGhpcy5fcmVhZGFibGVTdGF0ZTtpZihlPT09XCJkYXRhXCIpe24ucmVhZGFibGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KFwicmVhZGFibGVcIik+MDtpZihuLmZsb3dpbmchPT1mYWxzZSl0aGlzLnJlc3VtZSgpfWVsc2UgaWYoZT09PVwicmVhZGFibGVcIil7aWYoIW4uZW5kRW1pdHRlZCYmIW4ucmVhZGFibGVMaXN0ZW5pbmcpe24ucmVhZGFibGVMaXN0ZW5pbmc9bi5uZWVkUmVhZGFibGU9dHJ1ZTtuLmZsb3dpbmc9ZmFsc2U7bi5lbWl0dGVkUmVhZGFibGU9ZmFsc2U7dShcIm9uIHJlYWRhYmxlXCIsbi5sZW5ndGgsbi5yZWFkaW5nKTtpZihuLmxlbmd0aCl7ZW1pdFJlYWRhYmxlKHRoaXMpfWVsc2UgaWYoIW4ucmVhZGluZyl7cHJvY2Vzcy5uZXh0VGljayhuUmVhZGluZ05leHRUaWNrLHRoaXMpfX19cmV0dXJuIHJ9O1JlYWRhYmxlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1SZWFkYWJsZS5wcm90b3R5cGUub247UmVhZGFibGUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9by5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLGUsdCk7aWYoZT09PVwicmVhZGFibGVcIil7cHJvY2Vzcy5uZXh0VGljayh1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyx0aGlzKX1yZXR1cm4gcn07UmVhZGFibGUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdD1vLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGU9PT1cInJlYWRhYmxlXCJ8fGU9PT11bmRlZmluZWQpe3Byb2Nlc3MubmV4dFRpY2sodXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcsdGhpcyl9cmV0dXJuIHR9O2Z1bmN0aW9uIHVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nKGUpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7dC5yZWFkYWJsZUxpc3RlbmluZz1lLmxpc3RlbmVyQ291bnQoXCJyZWFkYWJsZVwiKT4wO2lmKHQucmVzdW1lU2NoZWR1bGVkJiYhdC5wYXVzZWQpe3QuZmxvd2luZz10cnVlfWVsc2UgaWYoZS5saXN0ZW5lckNvdW50KFwiZGF0YVwiKT4wKXtlLnJlc3VtZSgpfX1mdW5jdGlvbiBuUmVhZGluZ05leHRUaWNrKGUpe3UoXCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDBcIik7ZS5yZWFkKDApfVJlYWRhYmxlLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9yZWFkYWJsZVN0YXRlO2lmKCFlLmZsb3dpbmcpe3UoXCJyZXN1bWVcIik7ZS5mbG93aW5nPSFlLnJlYWRhYmxlTGlzdGVuaW5nO3Jlc3VtZSh0aGlzLGUpfWUucGF1c2VkPWZhbHNlO3JldHVybiB0aGlzfTtmdW5jdGlvbiByZXN1bWUoZSx0KXtpZighdC5yZXN1bWVTY2hlZHVsZWQpe3QucmVzdW1lU2NoZWR1bGVkPXRydWU7cHJvY2Vzcy5uZXh0VGljayhyZXN1bWVfLGUsdCl9fWZ1bmN0aW9uIHJlc3VtZV8oZSx0KXt1KFwicmVzdW1lXCIsdC5yZWFkaW5nKTtpZighdC5yZWFkaW5nKXtlLnJlYWQoMCl9dC5yZXN1bWVTY2hlZHVsZWQ9ZmFsc2U7ZS5lbWl0KFwicmVzdW1lXCIpO2Zsb3coZSk7aWYodC5mbG93aW5nJiYhdC5yZWFkaW5nKWUucmVhZCgwKX1SZWFkYWJsZS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXt1KFwiY2FsbCBwYXVzZSBmbG93aW5nPSVqXCIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKTtpZih0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmchPT1mYWxzZSl7dShcInBhdXNlXCIpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz1mYWxzZTt0aGlzLmVtaXQoXCJwYXVzZVwiKX10aGlzLl9yZWFkYWJsZVN0YXRlLnBhdXNlZD10cnVlO3JldHVybiB0aGlzfTtmdW5jdGlvbiBmbG93KGUpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7dShcImZsb3dcIix0LmZsb3dpbmcpO3doaWxlKHQuZmxvd2luZyYmZS5yZWFkKCkhPT1udWxsKXt9fVJlYWRhYmxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dmFyIHI9dGhpcy5fcmVhZGFibGVTdGF0ZTt2YXIgbj1mYWxzZTtlLm9uKFwiZW5kXCIsKGZ1bmN0aW9uKCl7dShcIndyYXBwZWQgZW5kXCIpO2lmKHIuZGVjb2RlciYmIXIuZW5kZWQpe3ZhciBlPXIuZGVjb2Rlci5lbmQoKTtpZihlJiZlLmxlbmd0aCl0LnB1c2goZSl9dC5wdXNoKG51bGwpfSkpO2Uub24oXCJkYXRhXCIsKGZ1bmN0aW9uKGkpe3UoXCJ3cmFwcGVkIGRhdGFcIik7aWYoci5kZWNvZGVyKWk9ci5kZWNvZGVyLndyaXRlKGkpO2lmKHIub2JqZWN0TW9kZSYmKGk9PT1udWxsfHxpPT09dW5kZWZpbmVkKSlyZXR1cm47ZWxzZSBpZighci5vYmplY3RNb2RlJiYoIWl8fCFpLmxlbmd0aCkpcmV0dXJuO3ZhciBhPXQucHVzaChpKTtpZighYSl7bj10cnVlO2UucGF1c2UoKX19KSk7Zm9yKHZhciBpIGluIGUpe2lmKHRoaXNbaV09PT11bmRlZmluZWQmJnR5cGVvZiBlW2ldPT09XCJmdW5jdGlvblwiKXt0aGlzW2ldPWZ1bmN0aW9uIG1ldGhvZFdyYXAodCl7cmV0dXJuIGZ1bmN0aW9uIG1ldGhvZFdyYXBSZXR1cm5GdW5jdGlvbigpe3JldHVybiBlW3RdLmFwcGx5KGUsYXJndW1lbnRzKX19KGkpfX1mb3IodmFyIGE9MDthPEUubGVuZ3RoO2ErKyl7ZS5vbihFW2FdLHRoaXMuZW1pdC5iaW5kKHRoaXMsRVthXSkpfXRoaXMuX3JlYWQ9ZnVuY3Rpb24odCl7dShcIndyYXBwZWQgX3JlYWRcIix0KTtpZihuKXtuPWZhbHNlO2UucmVzdW1lKCl9fTtyZXR1cm4gdGhpc307aWYodHlwZW9mIFN5bWJvbD09PVwiZnVuY3Rpb25cIil7UmVhZGFibGUucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe2lmKG09PT11bmRlZmluZWQpe209cig4NzEpfXJldHVybiBtKHRoaXMpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLFwicmVhZGFibGVIaWdoV2F0ZXJNYXJrXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSxcInJlYWRhYmxlQnVmZmVyXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLFwicmVhZGFibGVGbG93aW5nXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LHNldDpmdW5jdGlvbiBzZXQoZSl7aWYodGhpcy5fcmVhZGFibGVTdGF0ZSl7dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPWV9fX0pO1JlYWRhYmxlLl9mcm9tTGlzdD1mcm9tTGlzdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLFwicmVhZGFibGVMZW5ndGhcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RofX0pO2Z1bmN0aW9uIGZyb21MaXN0KGUsdCl7aWYodC5sZW5ndGg9PT0wKXJldHVybiBudWxsO3ZhciByO2lmKHQub2JqZWN0TW9kZSlyPXQuYnVmZmVyLnNoaWZ0KCk7ZWxzZSBpZighZXx8ZT49dC5sZW5ndGgpe2lmKHQuZGVjb2RlcilyPXQuYnVmZmVyLmpvaW4oXCJcIik7ZWxzZSBpZih0LmJ1ZmZlci5sZW5ndGg9PT0xKXI9dC5idWZmZXIuZmlyc3QoKTtlbHNlIHI9dC5idWZmZXIuY29uY2F0KHQubGVuZ3RoKTt0LmJ1ZmZlci5jbGVhcigpfWVsc2V7cj10LmJ1ZmZlci5jb25zdW1lKGUsdC5kZWNvZGVyKX1yZXR1cm4gcn1mdW5jdGlvbiBlbmRSZWFkYWJsZShlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO3UoXCJlbmRSZWFkYWJsZVwiLHQuZW5kRW1pdHRlZCk7aWYoIXQuZW5kRW1pdHRlZCl7dC5lbmRlZD10cnVlO3Byb2Nlc3MubmV4dFRpY2soZW5kUmVhZGFibGVOVCx0LGUpfX1mdW5jdGlvbiBlbmRSZWFkYWJsZU5UKGUsdCl7dShcImVuZFJlYWRhYmxlTlRcIixlLmVuZEVtaXR0ZWQsZS5sZW5ndGgpO2lmKCFlLmVuZEVtaXR0ZWQmJmUubGVuZ3RoPT09MCl7ZS5lbmRFbWl0dGVkPXRydWU7dC5yZWFkYWJsZT1mYWxzZTt0LmVtaXQoXCJlbmRcIik7aWYoZS5hdXRvRGVzdHJveSl7dmFyIHI9dC5fd3JpdGFibGVTdGF0ZTtpZighcnx8ci5hdXRvRGVzdHJveSYmci5maW5pc2hlZCl7dC5kZXN0cm95KCl9fX19aWYodHlwZW9mIFN5bWJvbD09PVwiZnVuY3Rpb25cIil7UmVhZGFibGUuZnJvbT1mdW5jdGlvbihlLHQpe2lmKFM9PT11bmRlZmluZWQpe1M9cig3MjcpfXJldHVybiBTKFJlYWRhYmxlLGUsdCl9fWZ1bmN0aW9uIGluZGV4T2YoZSx0KXtmb3IodmFyIHI9MCxuPWUubGVuZ3RoO3I8bjtyKyspe2lmKGVbcl09PT10KXJldHVybiByfXJldHVybi0xfX0sMTcwOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9VHJhbnNmb3JtO3ZhciBuPXIoNjQ2KS5xLGk9bi5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxhPW4uRVJSX01VTFRJUExFX0NBTExCQUNLLG89bi5FUlJfVFJBTlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HLHM9bi5FUlJfVFJBTlNGT1JNX1dJVEhfTEVOR1RIXzA7dmFyIGY9cig0MDMpO3IoNzgyKShUcmFuc2Zvcm0sZik7ZnVuY3Rpb24gYWZ0ZXJUcmFuc2Zvcm0oZSx0KXt2YXIgcj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtyLnRyYW5zZm9ybWluZz1mYWxzZTt2YXIgbj1yLndyaXRlY2I7aWYobj09PW51bGwpe3JldHVybiB0aGlzLmVtaXQoXCJlcnJvclwiLG5ldyBhKX1yLndyaXRlY2h1bms9bnVsbDtyLndyaXRlY2I9bnVsbDtpZih0IT1udWxsKXRoaXMucHVzaCh0KTtuKGUpO3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7aS5yZWFkaW5nPWZhbHNlO2lmKGkubmVlZFJlYWRhYmxlfHxpLmxlbmd0aDxpLmhpZ2hXYXRlck1hcmspe3RoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX19ZnVuY3Rpb24gVHJhbnNmb3JtKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFRyYW5zZm9ybSkpcmV0dXJuIG5ldyBUcmFuc2Zvcm0oZSk7Zi5jYWxsKHRoaXMsZSk7dGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOmFmdGVyVHJhbnNmb3JtLmJpbmQodGhpcyksbmVlZFRyYW5zZm9ybTpmYWxzZSx0cmFuc2Zvcm1pbmc6ZmFsc2Usd3JpdGVjYjpudWxsLHdyaXRlY2h1bms6bnVsbCx3cml0ZWVuY29kaW5nOm51bGx9O3RoaXMuX3JlYWRhYmxlU3RhdGUubmVlZFJlYWRhYmxlPXRydWU7dGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPWZhbHNlO2lmKGUpe2lmKHR5cGVvZiBlLnRyYW5zZm9ybT09PVwiZnVuY3Rpb25cIil0aGlzLl90cmFuc2Zvcm09ZS50cmFuc2Zvcm07aWYodHlwZW9mIGUuZmx1c2g9PT1cImZ1bmN0aW9uXCIpdGhpcy5fZmx1c2g9ZS5mbHVzaH10aGlzLm9uKFwicHJlZmluaXNoXCIscHJlZmluaXNoKX1mdW5jdGlvbiBwcmVmaW5pc2goKXt2YXIgZT10aGlzO2lmKHR5cGVvZiB0aGlzLl9mbHVzaD09PVwiZnVuY3Rpb25cIiYmIXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkKXt0aGlzLl9mbHVzaCgoZnVuY3Rpb24odCxyKXtkb25lKGUsdCxyKX0pKX1lbHNle2RvbmUodGhpcyxudWxsLG51bGwpfX1UcmFuc2Zvcm0ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXt0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPWZhbHNlO3JldHVybiBmLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxlLHQpfTtUcmFuc2Zvcm0ucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LHIpe3IobmV3IGkoXCJfdHJhbnNmb3JtKClcIikpfTtUcmFuc2Zvcm0ucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIG49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bi53cml0ZWNiPXI7bi53cml0ZWNodW5rPWU7bi53cml0ZWVuY29kaW5nPXQ7aWYoIW4udHJhbnNmb3JtaW5nKXt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlO2lmKG4ubmVlZFRyYW5zZm9ybXx8aS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyayl0aGlzLl9yZWFkKGkuaGlnaFdhdGVyTWFyayl9fTtUcmFuc2Zvcm0ucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKHQud3JpdGVjaHVuayE9PW51bGwmJiF0LnRyYW5zZm9ybWluZyl7dC50cmFuc2Zvcm1pbmc9dHJ1ZTt0aGlzLl90cmFuc2Zvcm0odC53cml0ZWNodW5rLHQud3JpdGVlbmNvZGluZyx0LmFmdGVyVHJhbnNmb3JtKX1lbHNle3QubmVlZFRyYW5zZm9ybT10cnVlfX07VHJhbnNmb3JtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihlLHQpe2YucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxlLChmdW5jdGlvbihlKXt0KGUpfSkpfTtmdW5jdGlvbiBkb25lKGUsdCxyKXtpZih0KXJldHVybiBlLmVtaXQoXCJlcnJvclwiLHQpO2lmKHIhPW51bGwpZS5wdXNoKHIpO2lmKGUuX3dyaXRhYmxlU3RhdGUubGVuZ3RoKXRocm93IG5ldyBzO2lmKGUuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgbztyZXR1cm4gZS5wdXNoKG51bGwpfX0sMzM3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9V3JpdGFibGU7ZnVuY3Rpb24gV3JpdGVSZXEoZSx0LHIpe3RoaXMuY2h1bms9ZTt0aGlzLmVuY29kaW5nPXQ7dGhpcy5jYWxsYmFjaz1yO3RoaXMubmV4dD1udWxsfWZ1bmN0aW9uIENvcmtlZFJlcXVlc3QoZSl7dmFyIHQ9dGhpczt0aGlzLm5leHQ9bnVsbDt0aGlzLmVudHJ5PW51bGw7dGhpcy5maW5pc2g9ZnVuY3Rpb24oKXtvbkNvcmtlZEZpbmlzaCh0LGUpfX12YXIgbjtXcml0YWJsZS5Xcml0YWJsZVN0YXRlPVdyaXRhYmxlU3RhdGU7dmFyIGk9e2RlcHJlY2F0ZTpyKDc2OSl9O3ZhciBhPXIoNjc4KTt2YXIgbz1yKDMwMCkuQnVmZmVyO3ZhciBzPWdsb2JhbC5VaW50OEFycmF5fHxmdW5jdGlvbigpe307ZnVuY3Rpb24gX3VpbnQ4QXJyYXlUb0J1ZmZlcihlKXtyZXR1cm4gby5mcm9tKGUpfWZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkoZSl7cmV0dXJuIG8uaXNCdWZmZXIoZSl8fGUgaW5zdGFuY2VvZiBzfXZhciBmPXIoMjUpO3ZhciBsPXIoNzc2KSx1PWwuZ2V0SGlnaFdhdGVyTWFyazt2YXIgZD1yKDY0NikucSxjPWQuRVJSX0lOVkFMSURfQVJHX1RZUEUsaD1kLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELHA9ZC5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssYj1kLkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUsZz1kLkVSUl9TVFJFQU1fREVTVFJPWUVELHk9ZC5FUlJfU1RSRUFNX05VTExfVkFMVUVTLF89ZC5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCx2PWQuRVJSX1VOS05PV05fRU5DT0RJTkc7dmFyIHc9Zi5lcnJvck9yRGVzdHJveTtyKDc4MikoV3JpdGFibGUsYSk7ZnVuY3Rpb24gbm9wKCl7fWZ1bmN0aW9uIFdyaXRhYmxlU3RhdGUoZSx0LGkpe249bnx8cig0MDMpO2U9ZXx8e307aWYodHlwZW9mIGkhPT1cImJvb2xlYW5cIilpPXQgaW5zdGFuY2VvZiBuO3RoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZTtpZihpKXRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhZS53cml0YWJsZU9iamVjdE1vZGU7dGhpcy5oaWdoV2F0ZXJNYXJrPXUodGhpcyxlLFwid3JpdGFibGVIaWdoV2F0ZXJNYXJrXCIsaSk7dGhpcy5maW5hbENhbGxlZD1mYWxzZTt0aGlzLm5lZWREcmFpbj1mYWxzZTt0aGlzLmVuZGluZz1mYWxzZTt0aGlzLmVuZGVkPWZhbHNlO3RoaXMuZmluaXNoZWQ9ZmFsc2U7dGhpcy5kZXN0cm95ZWQ9ZmFsc2U7dmFyIGE9ZS5kZWNvZGVTdHJpbmdzPT09ZmFsc2U7dGhpcy5kZWNvZGVTdHJpbmdzPSFhO3RoaXMuZGVmYXVsdEVuY29kaW5nPWUuZGVmYXVsdEVuY29kaW5nfHxcInV0ZjhcIjt0aGlzLmxlbmd0aD0wO3RoaXMud3JpdGluZz1mYWxzZTt0aGlzLmNvcmtlZD0wO3RoaXMuc3luYz10cnVlO3RoaXMuYnVmZmVyUHJvY2Vzc2luZz1mYWxzZTt0aGlzLm9ud3JpdGU9ZnVuY3Rpb24oZSl7b253cml0ZSh0LGUpfTt0aGlzLndyaXRlY2I9bnVsbDt0aGlzLndyaXRlbGVuPTA7dGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbDt0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbDt0aGlzLnBlbmRpbmdjYj0wO3RoaXMucHJlZmluaXNoZWQ9ZmFsc2U7dGhpcy5lcnJvckVtaXR0ZWQ9ZmFsc2U7dGhpcy5lbWl0Q2xvc2U9ZS5lbWl0Q2xvc2UhPT1mYWxzZTt0aGlzLmF1dG9EZXN0cm95PSEhZS5hdXRvRGVzdHJveTt0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTA7dGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IENvcmtlZFJlcXVlc3QodGhpcyl9V3JpdGFibGVTdGF0ZS5wcm90b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uIGdldEJ1ZmZlcigpe3ZhciBlPXRoaXMuYnVmZmVyZWRSZXF1ZXN0O3ZhciB0PVtdO3doaWxlKGUpe3QucHVzaChlKTtlPWUubmV4dH1yZXR1cm4gdH07KGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZVN0YXRlLnByb3RvdHlwZSxcImJ1ZmZlclwiLHtnZXQ6aS5kZXByZWNhdGUoKGZ1bmN0aW9uIHdyaXRhYmxlU3RhdGVCdWZmZXJHZXR0ZXIoKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0pLFwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgXCIrXCJpbnN0ZWFkLlwiLFwiREVQMDAwM1wiKX0pfWNhdGNoKGUpe319KSgpO3ZhciBtO2lmKHR5cGVvZiBTeW1ib2w9PT1cImZ1bmN0aW9uXCImJlN5bWJvbC5oYXNJbnN0YW5jZSYmdHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPT09XCJmdW5jdGlvblwiKXttPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZSxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uIHZhbHVlKGUpe2lmKG0uY2FsbCh0aGlzLGUpKXJldHVybiB0cnVlO2lmKHRoaXMhPT1Xcml0YWJsZSlyZXR1cm4gZmFsc2U7cmV0dXJuIGUmJmUuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0YXRlfX0pfWVsc2V7bT1mdW5jdGlvbiByZWFsSGFzSW5zdGFuY2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzfX1mdW5jdGlvbiBXcml0YWJsZShlKXtuPW58fHIoNDAzKTt2YXIgdD10aGlzIGluc3RhbmNlb2YgbjtpZighdCYmIW0uY2FsbChXcml0YWJsZSx0aGlzKSlyZXR1cm4gbmV3IFdyaXRhYmxlKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IFdyaXRhYmxlU3RhdGUoZSx0aGlzLHQpO3RoaXMud3JpdGFibGU9dHJ1ZTtpZihlKXtpZih0eXBlb2YgZS53cml0ZT09PVwiZnVuY3Rpb25cIil0aGlzLl93cml0ZT1lLndyaXRlO2lmKHR5cGVvZiBlLndyaXRldj09PVwiZnVuY3Rpb25cIil0aGlzLl93cml0ZXY9ZS53cml0ZXY7aWYodHlwZW9mIGUuZGVzdHJveT09PVwiZnVuY3Rpb25cIil0aGlzLl9kZXN0cm95PWUuZGVzdHJveTtpZih0eXBlb2YgZS5maW5hbD09PVwiZnVuY3Rpb25cIil0aGlzLl9maW5hbD1lLmZpbmFsfWEuY2FsbCh0aGlzKX1Xcml0YWJsZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3codGhpcyxuZXcgYil9O2Z1bmN0aW9uIHdyaXRlQWZ0ZXJFbmQoZSx0KXt2YXIgcj1uZXcgXzt3KGUscik7cHJvY2Vzcy5uZXh0VGljayh0LHIpfWZ1bmN0aW9uIHZhbGlkQ2h1bmsoZSx0LHIsbil7dmFyIGk7aWYocj09PW51bGwpe2k9bmV3IHl9ZWxzZSBpZih0eXBlb2YgciE9PVwic3RyaW5nXCImJiF0Lm9iamVjdE1vZGUpe2k9bmV3IGMoXCJjaHVua1wiLFtcInN0cmluZ1wiLFwiQnVmZmVyXCJdLHIpfWlmKGkpe3coZSxpKTtwcm9jZXNzLm5leHRUaWNrKG4saSk7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVdyaXRhYmxlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIG49dGhpcy5fd3JpdGFibGVTdGF0ZTt2YXIgaT1mYWxzZTt2YXIgYT0hbi5vYmplY3RNb2RlJiZfaXNVaW50OEFycmF5KGUpO2lmKGEmJiFvLmlzQnVmZmVyKGUpKXtlPV91aW50OEFycmF5VG9CdWZmZXIoZSl9aWYodHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCIpe3I9dDt0PW51bGx9aWYoYSl0PVwiYnVmZmVyXCI7ZWxzZSBpZighdCl0PW4uZGVmYXVsdEVuY29kaW5nO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXI9bm9wO2lmKG4uZW5kaW5nKXdyaXRlQWZ0ZXJFbmQodGhpcyxyKTtlbHNlIGlmKGF8fHZhbGlkQ2h1bmsodGhpcyxuLGUscikpe24ucGVuZGluZ2NiKys7aT13cml0ZU9yQnVmZmVyKHRoaXMsbixhLGUsdCxyKX1yZXR1cm4gaX07V3JpdGFibGUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfTtXcml0YWJsZS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fd3JpdGFibGVTdGF0ZTtpZihlLmNvcmtlZCl7ZS5jb3JrZWQtLTtpZighZS53cml0aW5nJiYhZS5jb3JrZWQmJiFlLmJ1ZmZlclByb2Nlc3NpbmcmJmUuYnVmZmVyZWRSZXF1ZXN0KWNsZWFyQnVmZmVyKHRoaXMsZSl9fTtXcml0YWJsZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uIHNldERlZmF1bHRFbmNvZGluZyhlKXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpZT1lLnRvTG93ZXJDYXNlKCk7aWYoIShbXCJoZXhcIixcInV0ZjhcIixcInV0Zi04XCIsXCJhc2NpaVwiLFwiYmluYXJ5XCIsXCJiYXNlNjRcIixcInVjczJcIixcInVjcy0yXCIsXCJ1dGYxNmxlXCIsXCJ1dGYtMTZsZVwiLFwicmF3XCJdLmluZGV4T2YoKGUrXCJcIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyB2KGUpO3RoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWU7cmV0dXJuIHRoaXN9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsXCJ3cml0YWJsZUJ1ZmZlclwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KTtmdW5jdGlvbiBkZWNvZGVDaHVuayhlLHQscil7aWYoIWUub2JqZWN0TW9kZSYmZS5kZWNvZGVTdHJpbmdzIT09ZmFsc2UmJnR5cGVvZiB0PT09XCJzdHJpbmdcIil7dD1vLmZyb20odCxyKX1yZXR1cm4gdH1PYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLFwid3JpdGFibGVIaWdoV2F0ZXJNYXJrXCIse2VudW1lcmFibGU6ZmFsc2UsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSk7ZnVuY3Rpb24gd3JpdGVPckJ1ZmZlcihlLHQscixuLGksYSl7aWYoIXIpe3ZhciBvPWRlY29kZUNodW5rKHQsbixpKTtpZihuIT09byl7cj10cnVlO2k9XCJidWZmZXJcIjtuPW99fXZhciBzPXQub2JqZWN0TW9kZT8xOm4ubGVuZ3RoO3QubGVuZ3RoKz1zO3ZhciBmPXQubGVuZ3RoPHQuaGlnaFdhdGVyTWFyaztpZighZil0Lm5lZWREcmFpbj10cnVlO2lmKHQud3JpdGluZ3x8dC5jb3JrZWQpe3ZhciBsPXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDt0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOm4sZW5jb2Rpbmc6aSxpc0J1ZjpyLGNhbGxiYWNrOmEsbmV4dDpudWxsfTtpZihsKXtsLm5leHQ9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0fWVsc2V7dC5idWZmZXJlZFJlcXVlc3Q9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0fXQuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZXtkb1dyaXRlKGUsdCxmYWxzZSxzLG4saSxhKX1yZXR1cm4gZn1mdW5jdGlvbiBkb1dyaXRlKGUsdCxyLG4saSxhLG8pe3Qud3JpdGVsZW49bjt0LndyaXRlY2I9bzt0LndyaXRpbmc9dHJ1ZTt0LnN5bmM9dHJ1ZTtpZih0LmRlc3Ryb3llZCl0Lm9ud3JpdGUobmV3IGcoXCJ3cml0ZVwiKSk7ZWxzZSBpZihyKWUuX3dyaXRldihpLHQub253cml0ZSk7ZWxzZSBlLl93cml0ZShpLGEsdC5vbndyaXRlKTt0LnN5bmM9ZmFsc2V9ZnVuY3Rpb24gb253cml0ZUVycm9yKGUsdCxyLG4saSl7LS10LnBlbmRpbmdjYjtpZihyKXtwcm9jZXNzLm5leHRUaWNrKGksbik7cHJvY2Vzcy5uZXh0VGljayhmaW5pc2hNYXliZSxlLHQpO2UuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPXRydWU7dyhlLG4pfWVsc2V7aShuKTtlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD10cnVlO3coZSxuKTtmaW5pc2hNYXliZShlLHQpfX1mdW5jdGlvbiBvbndyaXRlU3RhdGVVcGRhdGUoZSl7ZS53cml0aW5nPWZhbHNlO2Uud3JpdGVjYj1udWxsO2UubGVuZ3RoLT1lLndyaXRlbGVuO2Uud3JpdGVsZW49MH1mdW5jdGlvbiBvbndyaXRlKGUsdCl7dmFyIHI9ZS5fd3JpdGFibGVTdGF0ZTt2YXIgbj1yLnN5bmM7dmFyIGk9ci53cml0ZWNiO2lmKHR5cGVvZiBpIT09XCJmdW5jdGlvblwiKXRocm93IG5ldyBwO29ud3JpdGVTdGF0ZVVwZGF0ZShyKTtpZih0KW9ud3JpdGVFcnJvcihlLHIsbix0LGkpO2Vsc2V7dmFyIGE9bmVlZEZpbmlzaChyKXx8ZS5kZXN0cm95ZWQ7aWYoIWEmJiFyLmNvcmtlZCYmIXIuYnVmZmVyUHJvY2Vzc2luZyYmci5idWZmZXJlZFJlcXVlc3Qpe2NsZWFyQnVmZmVyKGUscil9aWYobil7cHJvY2Vzcy5uZXh0VGljayhhZnRlcldyaXRlLGUscixhLGkpfWVsc2V7YWZ0ZXJXcml0ZShlLHIsYSxpKX19fWZ1bmN0aW9uIGFmdGVyV3JpdGUoZSx0LHIsbil7aWYoIXIpb253cml0ZURyYWluKGUsdCk7dC5wZW5kaW5nY2ItLTtuKCk7ZmluaXNoTWF5YmUoZSx0KX1mdW5jdGlvbiBvbndyaXRlRHJhaW4oZSx0KXtpZih0Lmxlbmd0aD09PTAmJnQubmVlZERyYWluKXt0Lm5lZWREcmFpbj1mYWxzZTtlLmVtaXQoXCJkcmFpblwiKX19ZnVuY3Rpb24gY2xlYXJCdWZmZXIoZSx0KXt0LmJ1ZmZlclByb2Nlc3Npbmc9dHJ1ZTt2YXIgcj10LmJ1ZmZlcmVkUmVxdWVzdDtpZihlLl93cml0ZXYmJnImJnIubmV4dCl7dmFyIG49dC5idWZmZXJlZFJlcXVlc3RDb3VudDt2YXIgaT1uZXcgQXJyYXkobik7dmFyIGE9dC5jb3JrZWRSZXF1ZXN0c0ZyZWU7YS5lbnRyeT1yO3ZhciBvPTA7dmFyIHM9dHJ1ZTt3aGlsZShyKXtpW29dPXI7aWYoIXIuaXNCdWYpcz1mYWxzZTtyPXIubmV4dDtvKz0xfWkuYWxsQnVmZmVycz1zO2RvV3JpdGUoZSx0LHRydWUsdC5sZW5ndGgsaSxcIlwiLGEuZmluaXNoKTt0LnBlbmRpbmdjYisrO3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsO2lmKGEubmV4dCl7dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9YS5uZXh0O2EubmV4dD1udWxsfWVsc2V7dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IENvcmtlZFJlcXVlc3QodCl9dC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7d2hpbGUocil7dmFyIGY9ci5jaHVuazt2YXIgbD1yLmVuY29kaW5nO3ZhciB1PXIuY2FsbGJhY2s7dmFyIGQ9dC5vYmplY3RNb2RlPzE6Zi5sZW5ndGg7ZG9Xcml0ZShlLHQsZmFsc2UsZCxmLGwsdSk7cj1yLm5leHQ7dC5idWZmZXJlZFJlcXVlc3RDb3VudC0tO2lmKHQud3JpdGluZyl7YnJlYWt9fWlmKHI9PT1udWxsKXQubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsfXQuYnVmZmVyZWRSZXF1ZXN0PXI7dC5idWZmZXJQcm9jZXNzaW5nPWZhbHNlfVdyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZSx0LHIpe3IobmV3IGgoXCJfd3JpdGUoKVwiKSl9O1dyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGV2PW51bGw7V3JpdGFibGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihlLHQscil7dmFyIG49dGhpcy5fd3JpdGFibGVTdGF0ZTtpZih0eXBlb2YgZT09PVwiZnVuY3Rpb25cIil7cj1lO2U9bnVsbDt0PW51bGx9ZWxzZSBpZih0eXBlb2YgdD09PVwiZnVuY3Rpb25cIil7cj10O3Q9bnVsbH1pZihlIT09bnVsbCYmZSE9PXVuZGVmaW5lZCl0aGlzLndyaXRlKGUsdCk7aWYobi5jb3JrZWQpe24uY29ya2VkPTE7dGhpcy51bmNvcmsoKX1pZighbi5lbmRpbmcpZW5kV3JpdGFibGUodGhpcyxuLHIpO3JldHVybiB0aGlzfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLFwid3JpdGFibGVMZW5ndGhcIix7ZW51bWVyYWJsZTpmYWxzZSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pO2Z1bmN0aW9uIG5lZWRGaW5pc2goZSl7cmV0dXJuIGUuZW5kaW5nJiZlLmxlbmd0aD09PTAmJmUuYnVmZmVyZWRSZXF1ZXN0PT09bnVsbCYmIWUuZmluaXNoZWQmJiFlLndyaXRpbmd9ZnVuY3Rpb24gY2FsbEZpbmFsKGUsdCl7ZS5fZmluYWwoKGZ1bmN0aW9uKHIpe3QucGVuZGluZ2NiLS07aWYocil7dyhlLHIpfXQucHJlZmluaXNoZWQ9dHJ1ZTtlLmVtaXQoXCJwcmVmaW5pc2hcIik7ZmluaXNoTWF5YmUoZSx0KX0pKX1mdW5jdGlvbiBwcmVmaW5pc2goZSx0KXtpZighdC5wcmVmaW5pc2hlZCYmIXQuZmluYWxDYWxsZWQpe2lmKHR5cGVvZiBlLl9maW5hbD09PVwiZnVuY3Rpb25cIiYmIXQuZGVzdHJveWVkKXt0LnBlbmRpbmdjYisrO3QuZmluYWxDYWxsZWQ9dHJ1ZTtwcm9jZXNzLm5leHRUaWNrKGNhbGxGaW5hbCxlLHQpfWVsc2V7dC5wcmVmaW5pc2hlZD10cnVlO2UuZW1pdChcInByZWZpbmlzaFwiKX19fWZ1bmN0aW9uIGZpbmlzaE1heWJlKGUsdCl7dmFyIHI9bmVlZEZpbmlzaCh0KTtpZihyKXtwcmVmaW5pc2goZSx0KTtpZih0LnBlbmRpbmdjYj09PTApe3QuZmluaXNoZWQ9dHJ1ZTtlLmVtaXQoXCJmaW5pc2hcIik7aWYodC5hdXRvRGVzdHJveSl7dmFyIG49ZS5fcmVhZGFibGVTdGF0ZTtpZighbnx8bi5hdXRvRGVzdHJveSYmbi5lbmRFbWl0dGVkKXtlLmRlc3Ryb3koKX19fX1yZXR1cm4gcn1mdW5jdGlvbiBlbmRXcml0YWJsZShlLHQscil7dC5lbmRpbmc9dHJ1ZTtmaW5pc2hNYXliZShlLHQpO2lmKHIpe2lmKHQuZmluaXNoZWQpcHJvY2Vzcy5uZXh0VGljayhyKTtlbHNlIGUub25jZShcImZpbmlzaFwiLHIpfXQuZW5kZWQ9dHJ1ZTtlLndyaXRhYmxlPWZhbHNlfWZ1bmN0aW9uIG9uQ29ya2VkRmluaXNoKGUsdCxyKXt2YXIgbj1lLmVudHJ5O2UuZW50cnk9bnVsbDt3aGlsZShuKXt2YXIgaT1uLmNhbGxiYWNrO3QucGVuZGluZ2NiLS07aShyKTtuPW4ubmV4dH10LmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PWV9T2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSxcImRlc3Ryb3llZFwiLHtlbnVtZXJhYmxlOmZhbHNlLGdldDpmdW5jdGlvbiBnZXQoKXtpZih0aGlzLl93cml0YWJsZVN0YXRlPT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KGUpe2lmKCF0aGlzLl93cml0YWJsZVN0YXRlKXtyZXR1cm59dGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZX19KTtXcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveT1mLmRlc3Ryb3k7V3JpdGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3k9Zi51bmRlc3Ryb3k7V3JpdGFibGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGUsdCl7dChlKX19LDg3MTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG47ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KGUsdCxyKXtpZih0IGluIGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlLHdyaXRhYmxlOnRydWV9KX1lbHNle2VbdF09cn1yZXR1cm4gZX12YXIgaT1yKDY5OCk7dmFyIGE9U3ltYm9sKFwibGFzdFJlc29sdmVcIik7dmFyIG89U3ltYm9sKFwibGFzdFJlamVjdFwiKTt2YXIgcz1TeW1ib2woXCJlcnJvclwiKTt2YXIgZj1TeW1ib2woXCJlbmRlZFwiKTt2YXIgbD1TeW1ib2woXCJsYXN0UHJvbWlzZVwiKTt2YXIgdT1TeW1ib2woXCJoYW5kbGVQcm9taXNlXCIpO3ZhciBkPVN5bWJvbChcInN0cmVhbVwiKTtmdW5jdGlvbiBjcmVhdGVJdGVyUmVzdWx0KGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX1mdW5jdGlvbiByZWFkQW5kUmVzb2x2ZShlKXt2YXIgdD1lW2FdO2lmKHQhPT1udWxsKXt2YXIgcj1lW2RdLnJlYWQoKTtpZihyIT09bnVsbCl7ZVtsXT1udWxsO2VbYV09bnVsbDtlW29dPW51bGw7dChjcmVhdGVJdGVyUmVzdWx0KHIsZmFsc2UpKX19fWZ1bmN0aW9uIG9uUmVhZGFibGUoZSl7cHJvY2Vzcy5uZXh0VGljayhyZWFkQW5kUmVzb2x2ZSxlKX1mdW5jdGlvbiB3cmFwRm9yTmV4dChlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe2UudGhlbigoZnVuY3Rpb24oKXtpZih0W2ZdKXtyKGNyZWF0ZUl0ZXJSZXN1bHQodW5kZWZpbmVkLHRydWUpKTtyZXR1cm59dFt1XShyLG4pfSksbil9fXZhciBjPU9iamVjdC5nZXRQcm90b3R5cGVPZigoZnVuY3Rpb24oKXt9KSk7dmFyIGg9T2JqZWN0LnNldFByb3RvdHlwZU9mKChuPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbZF19LG5leHQ6ZnVuY3Rpb24gbmV4dCgpe3ZhciBlPXRoaXM7dmFyIHQ9dGhpc1tzXTtpZih0IT09bnVsbCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHQpfWlmKHRoaXNbZl0pe3JldHVybiBQcm9taXNlLnJlc29sdmUoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsdHJ1ZSkpfWlmKHRoaXNbZF0uZGVzdHJveWVkKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQscil7cHJvY2Vzcy5uZXh0VGljaygoZnVuY3Rpb24oKXtpZihlW3NdKXtyKGVbc10pfWVsc2V7dChjcmVhdGVJdGVyUmVzdWx0KHVuZGVmaW5lZCx0cnVlKSl9fSkpfSkpfXZhciByPXRoaXNbbF07dmFyIG47aWYocil7bj1uZXcgUHJvbWlzZSh3cmFwRm9yTmV4dChyLHRoaXMpKX1lbHNle3ZhciBpPXRoaXNbZF0ucmVhZCgpO2lmKGkhPT1udWxsKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWF0ZUl0ZXJSZXN1bHQoaSxmYWxzZSkpfW49bmV3IFByb21pc2UodGhpc1t1XSl9dGhpc1tsXT1uO3JldHVybiBufX0sX2RlZmluZVByb3BlcnR5KG4sU3ltYm9sLmFzeW5jSXRlcmF0b3IsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksX2RlZmluZVByb3BlcnR5KG4sXCJyZXR1cm5cIiwoZnVuY3Rpb24gX3JldHVybigpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LHIpe2VbZF0uZGVzdHJveShudWxsLChmdW5jdGlvbihlKXtpZihlKXtyKGUpO3JldHVybn10KGNyZWF0ZUl0ZXJSZXN1bHQodW5kZWZpbmVkLHRydWUpKX0pKX0pKX0pKSxuKSxjKTt2YXIgcD1mdW5jdGlvbiBjcmVhdGVSZWFkYWJsZVN0cmVhbUFzeW5jSXRlcmF0b3IoZSl7dmFyIHQ7dmFyIHI9T2JqZWN0LmNyZWF0ZShoLCh0PXt9LF9kZWZpbmVQcm9wZXJ0eSh0LGQse3ZhbHVlOmUsd3JpdGFibGU6dHJ1ZX0pLF9kZWZpbmVQcm9wZXJ0eSh0LGEse3ZhbHVlOm51bGwsd3JpdGFibGU6dHJ1ZX0pLF9kZWZpbmVQcm9wZXJ0eSh0LG8se3ZhbHVlOm51bGwsd3JpdGFibGU6dHJ1ZX0pLF9kZWZpbmVQcm9wZXJ0eSh0LHMse3ZhbHVlOm51bGwsd3JpdGFibGU6dHJ1ZX0pLF9kZWZpbmVQcm9wZXJ0eSh0LGYse3ZhbHVlOmUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTp0cnVlfSksX2RlZmluZVByb3BlcnR5KHQsdSx7dmFsdWU6ZnVuY3Rpb24gdmFsdWUoZSx0KXt2YXIgbj1yW2RdLnJlYWQoKTtpZihuKXtyW2xdPW51bGw7clthXT1udWxsO3Jbb109bnVsbDtlKGNyZWF0ZUl0ZXJSZXN1bHQobixmYWxzZSkpfWVsc2V7clthXT1lO3Jbb109dH19LHdyaXRhYmxlOnRydWV9KSx0KSk7cltsXT1udWxsO2koZSwoZnVuY3Rpb24oZSl7aWYoZSYmZS5jb2RlIT09XCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRVwiKXt2YXIgdD1yW29dO2lmKHQhPT1udWxsKXtyW2xdPW51bGw7clthXT1udWxsO3Jbb109bnVsbDt0KGUpfXJbc109ZTtyZXR1cm59dmFyIG49clthXTtpZihuIT09bnVsbCl7cltsXT1udWxsO3JbYV09bnVsbDtyW29dPW51bGw7bihjcmVhdGVJdGVyUmVzdWx0KHVuZGVmaW5lZCx0cnVlKSl9cltmXT10cnVlfSkpO2Uub24oXCJyZWFkYWJsZVwiLG9uUmVhZGFibGUuYmluZChudWxsLHIpKTtyZXR1cm4gcn07ZS5leHBvcnRzPXB9LDM3OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gb3duS2V5cyhlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aWYodCluPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSk7ci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF0hPW51bGw/YXJndW1lbnRzW3RdOnt9O2lmKHQlMil7b3duS2V5cyhPYmplY3QociksdHJ1ZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7X2RlZmluZVByb3BlcnR5KGUsdCxyW3RdKX0pKX1lbHNlIGlmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKXtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKX1lbHNle293bktleXMoT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9fXJldHVybiBlfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHQscil7aWYodCBpbiBlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlfSl9ZWxzZXtlW3RdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9fWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ZmFsc2U7bi5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBuKW4ud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLmtleSxuKX19ZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKGUsdCxyKXtpZih0KV9kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpO2lmKHIpX2RlZmluZVByb3BlcnRpZXMoZSxyKTtyZXR1cm4gZX12YXIgbj1yKDMwMCksaT1uLkJ1ZmZlcjt2YXIgYT1yKDgzNyksbz1hLmluc3BlY3Q7dmFyIHM9byYmby5jdXN0b218fFwiaW5zcGVjdFwiO2Z1bmN0aW9uIGNvcHlCdWZmZXIoZSx0LHIpe2kucHJvdG90eXBlLmNvcHkuY2FsbChlLHQscil9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQnVmZmVyTGlzdCgpe19jbGFzc0NhbGxDaGVjayh0aGlzLEJ1ZmZlckxpc3QpO3RoaXMuaGVhZD1udWxsO3RoaXMudGFpbD1udWxsO3RoaXMubGVuZ3RoPTB9X2NyZWF0ZUNsYXNzKEJ1ZmZlckxpc3QsW3trZXk6XCJwdXNoXCIsdmFsdWU6ZnVuY3Rpb24gcHVzaChlKXt2YXIgdD17ZGF0YTplLG5leHQ6bnVsbH07aWYodGhpcy5sZW5ndGg+MCl0aGlzLnRhaWwubmV4dD10O2Vsc2UgdGhpcy5oZWFkPXQ7dGhpcy50YWlsPXQ7Kyt0aGlzLmxlbmd0aH19LHtrZXk6XCJ1bnNoaWZ0XCIsdmFsdWU6ZnVuY3Rpb24gdW5zaGlmdChlKXt2YXIgdD17ZGF0YTplLG5leHQ6dGhpcy5oZWFkfTtpZih0aGlzLmxlbmd0aD09PTApdGhpcy50YWlsPXQ7dGhpcy5oZWFkPXQ7Kyt0aGlzLmxlbmd0aH19LHtrZXk6XCJzaGlmdFwiLHZhbHVlOmZ1bmN0aW9uIHNoaWZ0KCl7aWYodGhpcy5sZW5ndGg9PT0wKXJldHVybjt2YXIgZT10aGlzLmhlYWQuZGF0YTtpZih0aGlzLmxlbmd0aD09PTEpdGhpcy5oZWFkPXRoaXMudGFpbD1udWxsO2Vsc2UgdGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0Oy0tdGhpcy5sZW5ndGg7cmV0dXJuIGV9fSx7a2V5OlwiY2xlYXJcIix2YWx1ZTpmdW5jdGlvbiBjbGVhcigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDt0aGlzLmxlbmd0aD0wfX0se2tleTpcImpvaW5cIix2YWx1ZTpmdW5jdGlvbiBqb2luKGUpe2lmKHRoaXMubGVuZ3RoPT09MClyZXR1cm5cIlwiO3ZhciB0PXRoaXMuaGVhZDt2YXIgcj1cIlwiK3QuZGF0YTt3aGlsZSh0PXQubmV4dCl7cis9ZSt0LmRhdGF9cmV0dXJuIHJ9fSx7a2V5OlwiY29uY2F0XCIsdmFsdWU6ZnVuY3Rpb24gY29uY2F0KGUpe2lmKHRoaXMubGVuZ3RoPT09MClyZXR1cm4gaS5hbGxvYygwKTt2YXIgdD1pLmFsbG9jVW5zYWZlKGU+Pj4wKTt2YXIgcj10aGlzLmhlYWQ7dmFyIG49MDt3aGlsZShyKXtjb3B5QnVmZmVyKHIuZGF0YSx0LG4pO24rPXIuZGF0YS5sZW5ndGg7cj1yLm5leHR9cmV0dXJuIHR9fSx7a2V5OlwiY29uc3VtZVwiLHZhbHVlOmZ1bmN0aW9uIGNvbnN1bWUoZSx0KXt2YXIgcjtpZihlPHRoaXMuaGVhZC5kYXRhLmxlbmd0aCl7cj10aGlzLmhlYWQuZGF0YS5zbGljZSgwLGUpO3RoaXMuaGVhZC5kYXRhPXRoaXMuaGVhZC5kYXRhLnNsaWNlKGUpfWVsc2UgaWYoZT09PXRoaXMuaGVhZC5kYXRhLmxlbmd0aCl7cj10aGlzLnNoaWZ0KCl9ZWxzZXtyPXQ/dGhpcy5fZ2V0U3RyaW5nKGUpOnRoaXMuX2dldEJ1ZmZlcihlKX1yZXR1cm4gcn19LHtrZXk6XCJmaXJzdFwiLHZhbHVlOmZ1bmN0aW9uIGZpcnN0KCl7cmV0dXJuIHRoaXMuaGVhZC5kYXRhfX0se2tleTpcIl9nZXRTdHJpbmdcIix2YWx1ZTpmdW5jdGlvbiBfZ2V0U3RyaW5nKGUpe3ZhciB0PXRoaXMuaGVhZDt2YXIgcj0xO3ZhciBuPXQuZGF0YTtlLT1uLmxlbmd0aDt3aGlsZSh0PXQubmV4dCl7dmFyIGk9dC5kYXRhO3ZhciBhPWU+aS5sZW5ndGg/aS5sZW5ndGg6ZTtpZihhPT09aS5sZW5ndGgpbis9aTtlbHNlIG4rPWkuc2xpY2UoMCxlKTtlLT1hO2lmKGU9PT0wKXtpZihhPT09aS5sZW5ndGgpeysrcjtpZih0Lm5leHQpdGhpcy5oZWFkPXQubmV4dDtlbHNlIHRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbH1lbHNle3RoaXMuaGVhZD10O3QuZGF0YT1pLnNsaWNlKGEpfWJyZWFrfSsrcn10aGlzLmxlbmd0aC09cjtyZXR1cm4gbn19LHtrZXk6XCJfZ2V0QnVmZmVyXCIsdmFsdWU6ZnVuY3Rpb24gX2dldEJ1ZmZlcihlKXt2YXIgdD1pLmFsbG9jVW5zYWZlKGUpO3ZhciByPXRoaXMuaGVhZDt2YXIgbj0xO3IuZGF0YS5jb3B5KHQpO2UtPXIuZGF0YS5sZW5ndGg7d2hpbGUocj1yLm5leHQpe3ZhciBhPXIuZGF0YTt2YXIgbz1lPmEubGVuZ3RoP2EubGVuZ3RoOmU7YS5jb3B5KHQsdC5sZW5ndGgtZSwwLG8pO2UtPW87aWYoZT09PTApe2lmKG89PT1hLmxlbmd0aCl7KytuO2lmKHIubmV4dCl0aGlzLmhlYWQ9ci5uZXh0O2Vsc2UgdGhpcy5oZWFkPXRoaXMudGFpbD1udWxsfWVsc2V7dGhpcy5oZWFkPXI7ci5kYXRhPWEuc2xpY2Uobyl9YnJlYWt9KytufXRoaXMubGVuZ3RoLT1uO3JldHVybiB0fX0se2tleTpzLHZhbHVlOmZ1bmN0aW9uIHZhbHVlKGUsdCl7cmV0dXJuIG8odGhpcyxfb2JqZWN0U3ByZWFkKHt9LHQse2RlcHRoOjAsY3VzdG9tSW5zcGVjdDpmYWxzZX0pKX19XSk7cmV0dXJuIEJ1ZmZlckxpc3R9KCl9LDI1OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGRlc3Ryb3koZSx0KXt2YXIgcj10aGlzO3ZhciBuPXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkO3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkO2lmKG58fGkpe2lmKHQpe3QoZSl9ZWxzZSBpZihlKXtpZighdGhpcy5fd3JpdGFibGVTdGF0ZSl7cHJvY2Vzcy5uZXh0VGljayhlbWl0RXJyb3JOVCx0aGlzLGUpfWVsc2UgaWYoIXRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkKXt0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD10cnVlO3Byb2Nlc3MubmV4dFRpY2soZW1pdEVycm9yTlQsdGhpcyxlKX19cmV0dXJuIHRoaXN9aWYodGhpcy5fcmVhZGFibGVTdGF0ZSl7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9dHJ1ZX1pZih0aGlzLl93cml0YWJsZVN0YXRlKXt0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD10cnVlfXRoaXMuX2Rlc3Ryb3koZXx8bnVsbCwoZnVuY3Rpb24oZSl7aWYoIXQmJmUpe2lmKCFyLl93cml0YWJsZVN0YXRlKXtwcm9jZXNzLm5leHRUaWNrKGVtaXRFcnJvckFuZENsb3NlTlQscixlKX1lbHNlIGlmKCFyLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCl7ci5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9dHJ1ZTtwcm9jZXNzLm5leHRUaWNrKGVtaXRFcnJvckFuZENsb3NlTlQscixlKX1lbHNle3Byb2Nlc3MubmV4dFRpY2soZW1pdENsb3NlTlQscil9fWVsc2UgaWYodCl7cHJvY2Vzcy5uZXh0VGljayhlbWl0Q2xvc2VOVCxyKTt0KGUpfWVsc2V7cHJvY2Vzcy5uZXh0VGljayhlbWl0Q2xvc2VOVCxyKX19KSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gZW1pdEVycm9yQW5kQ2xvc2VOVChlLHQpe2VtaXRFcnJvck5UKGUsdCk7ZW1pdENsb3NlTlQoZSl9ZnVuY3Rpb24gZW1pdENsb3NlTlQoZSl7aWYoZS5fd3JpdGFibGVTdGF0ZSYmIWUuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlKXJldHVybjtpZihlLl9yZWFkYWJsZVN0YXRlJiYhZS5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2UpcmV0dXJuO2UuZW1pdChcImNsb3NlXCIpfWZ1bmN0aW9uIHVuZGVzdHJveSgpe2lmKHRoaXMuX3JlYWRhYmxlU3RhdGUpe3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPWZhbHNlO3RoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz1mYWxzZTt0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPWZhbHNlO3RoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD1mYWxzZX1pZih0aGlzLl93cml0YWJsZVN0YXRlKXt0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1mYWxzZTt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPWZhbHNlO3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPWZhbHNlO3RoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ZmFsc2U7dGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD1mYWxzZTt0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPWZhbHNlO3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPWZhbHNlfX1mdW5jdGlvbiBlbWl0RXJyb3JOVChlLHQpe2UuZW1pdChcImVycm9yXCIsdCl9ZnVuY3Rpb24gZXJyb3JPckRlc3Ryb3koZSx0KXt2YXIgcj1lLl9yZWFkYWJsZVN0YXRlO3ZhciBuPWUuX3dyaXRhYmxlU3RhdGU7aWYociYmci5hdXRvRGVzdHJveXx8biYmbi5hdXRvRGVzdHJveSllLmRlc3Ryb3kodCk7ZWxzZSBlLmVtaXQoXCJlcnJvclwiLHQpfWUuZXhwb3J0cz17ZGVzdHJveTpkZXN0cm95LHVuZGVzdHJveTp1bmRlc3Ryb3ksZXJyb3JPckRlc3Ryb3k6ZXJyb3JPckRlc3Ryb3l9fSw2OTg6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXIoNjQ2KS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIG9uY2UoZSl7dmFyIHQ9ZmFsc2U7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodClyZXR1cm47dD10cnVlO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKXtuW2ldPWFyZ3VtZW50c1tpXX1lLmFwcGx5KHRoaXMsbil9fWZ1bmN0aW9uIG5vb3AoKXt9ZnVuY3Rpb24gaXNSZXF1ZXN0KGUpe3JldHVybiBlLnNldEhlYWRlciYmdHlwZW9mIGUuYWJvcnQ9PT1cImZ1bmN0aW9uXCJ9ZnVuY3Rpb24gZW9zKGUsdCxyKXtpZih0eXBlb2YgdD09PVwiZnVuY3Rpb25cIilyZXR1cm4gZW9zKGUsbnVsbCx0KTtpZighdCl0PXt9O3I9b25jZShyfHxub29wKTt2YXIgaT10LnJlYWRhYmxlfHx0LnJlYWRhYmxlIT09ZmFsc2UmJmUucmVhZGFibGU7dmFyIGE9dC53cml0YWJsZXx8dC53cml0YWJsZSE9PWZhbHNlJiZlLndyaXRhYmxlO3ZhciBvPWZ1bmN0aW9uIG9ubGVnYWN5ZmluaXNoKCl7aWYoIWUud3JpdGFibGUpZigpfTt2YXIgcz1lLl93cml0YWJsZVN0YXRlJiZlLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkO3ZhciBmPWZ1bmN0aW9uIG9uZmluaXNoKCl7YT1mYWxzZTtzPXRydWU7aWYoIWkpci5jYWxsKGUpfTt2YXIgbD1lLl9yZWFkYWJsZVN0YXRlJiZlLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ7dmFyIHU9ZnVuY3Rpb24gb25lbmQoKXtpPWZhbHNlO2w9dHJ1ZTtpZighYSlyLmNhbGwoZSl9O3ZhciBkPWZ1bmN0aW9uIG9uZXJyb3IodCl7ci5jYWxsKGUsdCl9O3ZhciBjPWZ1bmN0aW9uIG9uY2xvc2UoKXt2YXIgdDtpZihpJiYhbCl7aWYoIWUuX3JlYWRhYmxlU3RhdGV8fCFlLl9yZWFkYWJsZVN0YXRlLmVuZGVkKXQ9bmV3IG47cmV0dXJuIHIuY2FsbChlLHQpfWlmKGEmJiFzKXtpZighZS5fd3JpdGFibGVTdGF0ZXx8IWUuX3dyaXRhYmxlU3RhdGUuZW5kZWQpdD1uZXcgbjtyZXR1cm4gci5jYWxsKGUsdCl9fTt2YXIgaD1mdW5jdGlvbiBvbnJlcXVlc3QoKXtlLnJlcS5vbihcImZpbmlzaFwiLGYpfTtpZihpc1JlcXVlc3QoZSkpe2Uub24oXCJjb21wbGV0ZVwiLGYpO2Uub24oXCJhYm9ydFwiLGMpO2lmKGUucmVxKWgoKTtlbHNlIGUub24oXCJyZXF1ZXN0XCIsaCl9ZWxzZSBpZihhJiYhZS5fd3JpdGFibGVTdGF0ZSl7ZS5vbihcImVuZFwiLG8pO2Uub24oXCJjbG9zZVwiLG8pfWUub24oXCJlbmRcIix1KTtlLm9uKFwiZmluaXNoXCIsZik7aWYodC5lcnJvciE9PWZhbHNlKWUub24oXCJlcnJvclwiLGQpO2Uub24oXCJjbG9zZVwiLGMpO3JldHVybiBmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIoXCJjb21wbGV0ZVwiLGYpO2UucmVtb3ZlTGlzdGVuZXIoXCJhYm9ydFwiLGMpO2UucmVtb3ZlTGlzdGVuZXIoXCJyZXF1ZXN0XCIsaCk7aWYoZS5yZXEpZS5yZXEucmVtb3ZlTGlzdGVuZXIoXCJmaW5pc2hcIixmKTtlLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIsbyk7ZS5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIsbyk7ZS5yZW1vdmVMaXN0ZW5lcihcImZpbmlzaFwiLGYpO2UucmVtb3ZlTGlzdGVuZXIoXCJlbmRcIix1KTtlLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIixkKTtlLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIixjKX19ZS5leHBvcnRzPWVvc30sNzI3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZSx0LHIsbixpLGEsbyl7dHJ5e3ZhciBzPWVbYV0obyk7dmFyIGY9cy52YWx1ZX1jYXRjaChlKXtyKGUpO3JldHVybn1pZihzLmRvbmUpe3QoZil9ZWxzZXtQcm9taXNlLnJlc29sdmUoZikudGhlbihuLGkpfX1mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixpKXt2YXIgYT1lLmFwcGx5KHQscik7ZnVuY3Rpb24gX25leHQoZSl7YXN5bmNHZW5lcmF0b3JTdGVwKGEsbixpLF9uZXh0LF90aHJvdyxcIm5leHRcIixlKX1mdW5jdGlvbiBfdGhyb3coZSl7YXN5bmNHZW5lcmF0b3JTdGVwKGEsbixpLF9uZXh0LF90aHJvdyxcInRocm93XCIsZSl9X25leHQodW5kZWZpbmVkKX0pKX19ZnVuY3Rpb24gb3duS2V5cyhlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aWYodCluPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSk7ci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF0hPW51bGw/YXJndW1lbnRzW3RdOnt9O2lmKHQlMil7b3duS2V5cyhPYmplY3QociksdHJ1ZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7X2RlZmluZVByb3BlcnR5KGUsdCxyW3RdKX0pKX1lbHNlIGlmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKXtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKX1lbHNle293bktleXMoT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9fXJldHVybiBlfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHQscil7aWYodCBpbiBlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlfSl9ZWxzZXtlW3RdPXJ9cmV0dXJuIGV9dmFyIG49cig2NDYpLnEuRVJSX0lOVkFMSURfQVJHX1RZUEU7ZnVuY3Rpb24gZnJvbShlLHQscil7dmFyIGk7aWYodCYmdHlwZW9mIHQubmV4dD09PVwiZnVuY3Rpb25cIil7aT10fWVsc2UgaWYodCYmdFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0paT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO2Vsc2UgaWYodCYmdFtTeW1ib2wuaXRlcmF0b3JdKWk9dFtTeW1ib2wuaXRlcmF0b3JdKCk7ZWxzZSB0aHJvdyBuZXcgbihcIml0ZXJhYmxlXCIsW1wiSXRlcmFibGVcIl0sdCk7dmFyIGE9bmV3IGUoX29iamVjdFNwcmVhZCh7b2JqZWN0TW9kZTp0cnVlfSxyKSk7dmFyIG89ZmFsc2U7YS5fcmVhZD1mdW5jdGlvbigpe2lmKCFvKXtvPXRydWU7bmV4dCgpfX07ZnVuY3Rpb24gbmV4dCgpe3JldHVybiBfbmV4dDIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF9uZXh0Migpe19uZXh0Mj1fYXN5bmNUb0dlbmVyYXRvcigoZnVuY3Rpb24qKCl7dHJ5e3ZhciBlPXlpZWxkIGkubmV4dCgpLHQ9ZS52YWx1ZSxyPWUuZG9uZTtpZihyKXthLnB1c2gobnVsbCl9ZWxzZSBpZihhLnB1c2goeWllbGQgdCkpe25leHQoKX1lbHNle289ZmFsc2V9fWNhdGNoKGUpe2EuZGVzdHJveShlKX19KSk7cmV0dXJuIF9uZXh0Mi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGF9ZS5leHBvcnRzPWZyb219LDQ0MjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG47ZnVuY3Rpb24gb25jZShlKXt2YXIgdD1mYWxzZTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0KXJldHVybjt0PXRydWU7ZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19dmFyIGk9cig2NDYpLnEsYT1pLkVSUl9NSVNTSU5HX0FSR1Msbz1pLkVSUl9TVFJFQU1fREVTVFJPWUVEO2Z1bmN0aW9uIG5vb3AoZSl7aWYoZSl0aHJvdyBlfWZ1bmN0aW9uIGlzUmVxdWVzdChlKXtyZXR1cm4gZS5zZXRIZWFkZXImJnR5cGVvZiBlLmFib3J0PT09XCJmdW5jdGlvblwifWZ1bmN0aW9uIGRlc3Ryb3llcihlLHQsaSxhKXthPW9uY2UoYSk7dmFyIHM9ZmFsc2U7ZS5vbihcImNsb3NlXCIsKGZ1bmN0aW9uKCl7cz10cnVlfSkpO2lmKG49PT11bmRlZmluZWQpbj1yKDY5OCk7bihlLHtyZWFkYWJsZTp0LHdyaXRhYmxlOml9LChmdW5jdGlvbihlKXtpZihlKXJldHVybiBhKGUpO3M9dHJ1ZTthKCl9KSk7dmFyIGY9ZmFsc2U7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHMpcmV0dXJuO2lmKGYpcmV0dXJuO2Y9dHJ1ZTtpZihpc1JlcXVlc3QoZSkpcmV0dXJuIGUuYWJvcnQoKTtpZih0eXBlb2YgZS5kZXN0cm95PT09XCJmdW5jdGlvblwiKXJldHVybiBlLmRlc3Ryb3koKTthKHR8fG5ldyBvKFwicGlwZVwiKSl9fWZ1bmN0aW9uIGNhbGwoZSl7ZSgpfWZ1bmN0aW9uIHBpcGUoZSx0KXtyZXR1cm4gZS5waXBlKHQpfWZ1bmN0aW9uIHBvcENhbGxiYWNrKGUpe2lmKCFlLmxlbmd0aClyZXR1cm4gbm9vcDtpZih0eXBlb2YgZVtlLmxlbmd0aC0xXSE9PVwiZnVuY3Rpb25cIilyZXR1cm4gbm9vcDtyZXR1cm4gZS5wb3AoKX1mdW5jdGlvbiBwaXBlbGluZSgpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXt0W3JdPWFyZ3VtZW50c1tyXX12YXIgbj1wb3BDYWxsYmFjayh0KTtpZihBcnJheS5pc0FycmF5KHRbMF0pKXQ9dFswXTtpZih0Lmxlbmd0aDwyKXt0aHJvdyBuZXcgYShcInN0cmVhbXNcIil9dmFyIGk7dmFyIG89dC5tYXAoKGZ1bmN0aW9uKGUscil7dmFyIGE9cjx0Lmxlbmd0aC0xO3ZhciBzPXI+MDtyZXR1cm4gZGVzdHJveWVyKGUsYSxzLChmdW5jdGlvbihlKXtpZighaSlpPWU7aWYoZSlvLmZvckVhY2goY2FsbCk7aWYoYSlyZXR1cm47by5mb3JFYWNoKGNhbGwpO24oaSl9KSl9KSk7cmV0dXJuIHQucmVkdWNlKHBpcGUpfWUuZXhwb3J0cz1waXBlbGluZX0sNzc2OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDY0NikucS5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7ZnVuY3Rpb24gaGlnaFdhdGVyTWFya0Zyb20oZSx0LHIpe3JldHVybiBlLmhpZ2hXYXRlck1hcmshPW51bGw/ZS5oaWdoV2F0ZXJNYXJrOnQ/ZVtyXTpudWxsfWZ1bmN0aW9uIGdldEhpZ2hXYXRlck1hcmsoZSx0LHIsaSl7dmFyIGE9aGlnaFdhdGVyTWFya0Zyb20odCxpLHIpO2lmKGEhPW51bGwpe2lmKCEoaXNGaW5pdGUoYSkmJk1hdGguZmxvb3IoYSk9PT1hKXx8YTwwKXt2YXIgbz1pP3I6XCJoaWdoV2F0ZXJNYXJrXCI7dGhyb3cgbmV3IG4obyxhKX1yZXR1cm4gTWF0aC5mbG9vcihhKX1yZXR1cm4gZS5vYmplY3RNb2RlPzE2OjE2KjEwMjR9ZS5leHBvcnRzPXtnZXRIaWdoV2F0ZXJNYXJrOmdldEhpZ2hXYXRlck1hcmt9fSw2Nzg6ZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDc4MSl9LDU1OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDMwMCk7dmFyIGk9bi5CdWZmZXI7ZnVuY3Rpb24gY29weVByb3BzKGUsdCl7Zm9yKHZhciByIGluIGUpe3Rbcl09ZVtyXX19aWYoaS5mcm9tJiZpLmFsbG9jJiZpLmFsbG9jVW5zYWZlJiZpLmFsbG9jVW5zYWZlU2xvdyl7ZS5leHBvcnRzPW59ZWxzZXtjb3B5UHJvcHMobix0KTt0LkJ1ZmZlcj1TYWZlQnVmZmVyfWZ1bmN0aW9uIFNhZmVCdWZmZXIoZSx0LHIpe3JldHVybiBpKGUsdCxyKX1TYWZlQnVmZmVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKTtjb3B5UHJvcHMoaSxTYWZlQnVmZmVyKTtTYWZlQnVmZmVyLmZyb209ZnVuY3Rpb24oZSx0LHIpe2lmKHR5cGVvZiBlPT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyXCIpfXJldHVybiBpKGUsdCxyKX07U2FmZUJ1ZmZlci5hbGxvYz1mdW5jdGlvbihlLHQscil7aWYodHlwZW9mIGUhPT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlclwiKX12YXIgbj1pKGUpO2lmKHQhPT11bmRlZmluZWQpe2lmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7bi5maWxsKHQscil9ZWxzZXtuLmZpbGwodCl9fWVsc2V7bi5maWxsKDApfXJldHVybiBufTtTYWZlQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIGkoZSl9O1NhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIG4uU2xvd0J1ZmZlcihlKX19LDE3MzpmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPVN0cmVhbTt2YXIgbj1yKDM2MSkuRXZlbnRFbWl0dGVyO3ZhciBpPXIoNzgyKTtpKFN0cmVhbSxuKTtTdHJlYW0uUmVhZGFibGU9cig3MDkpO1N0cmVhbS5Xcml0YWJsZT1yKDMzNyk7U3RyZWFtLkR1cGxleD1yKDQwMyk7U3RyZWFtLlRyYW5zZm9ybT1yKDE3MCk7U3RyZWFtLlBhc3NUaHJvdWdoPXIoODg5KTtTdHJlYW0uZmluaXNoZWQ9cig2OTgpO1N0cmVhbS5waXBlbGluZT1yKDQ0Mik7U3RyZWFtLlN0cmVhbT1TdHJlYW07ZnVuY3Rpb24gU3RyZWFtKCl7bi5jYWxsKHRoaXMpfVN0cmVhbS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7ZnVuY3Rpb24gb25kYXRhKHQpe2lmKGUud3JpdGFibGUpe2lmKGZhbHNlPT09ZS53cml0ZSh0KSYmci5wYXVzZSl7ci5wYXVzZSgpfX19ci5vbihcImRhdGFcIixvbmRhdGEpO2Z1bmN0aW9uIG9uZHJhaW4oKXtpZihyLnJlYWRhYmxlJiZyLnJlc3VtZSl7ci5yZXN1bWUoKX19ZS5vbihcImRyYWluXCIsb25kcmFpbik7aWYoIWUuX2lzU3RkaW8mJighdHx8dC5lbmQhPT1mYWxzZSkpe3Iub24oXCJlbmRcIixvbmVuZCk7ci5vbihcImNsb3NlXCIsb25jbG9zZSl9dmFyIGk9ZmFsc2U7ZnVuY3Rpb24gb25lbmQoKXtpZihpKXJldHVybjtpPXRydWU7ZS5lbmQoKX1mdW5jdGlvbiBvbmNsb3NlKCl7aWYoaSlyZXR1cm47aT10cnVlO2lmKHR5cGVvZiBlLmRlc3Ryb3k9PT1cImZ1bmN0aW9uXCIpZS5kZXN0cm95KCl9ZnVuY3Rpb24gb25lcnJvcihlKXtjbGVhbnVwKCk7aWYobi5saXN0ZW5lckNvdW50KHRoaXMsXCJlcnJvclwiKT09PTApe3Rocm93IGV9fXIub24oXCJlcnJvclwiLG9uZXJyb3IpO2Uub24oXCJlcnJvclwiLG9uZXJyb3IpO2Z1bmN0aW9uIGNsZWFudXAoKXtyLnJlbW92ZUxpc3RlbmVyKFwiZGF0YVwiLG9uZGF0YSk7ZS5yZW1vdmVMaXN0ZW5lcihcImRyYWluXCIsb25kcmFpbik7ci5yZW1vdmVMaXN0ZW5lcihcImVuZFwiLG9uZW5kKTtyLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIixvbmNsb3NlKTtyLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIixvbmVycm9yKTtlLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIixvbmVycm9yKTtyLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIsY2xlYW51cCk7ci5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIsY2xlYW51cCk7ZS5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIsY2xlYW51cCl9ci5vbihcImVuZFwiLGNsZWFudXApO3Iub24oXCJjbG9zZVwiLGNsZWFudXApO2Uub24oXCJjbG9zZVwiLGNsZWFudXApO2UuZW1pdChcInBpcGVcIixyKTtyZXR1cm4gZX19LDcwNDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig1NSkuQnVmZmVyO3ZhciBpPW4uaXNFbmNvZGluZ3x8ZnVuY3Rpb24oZSl7ZT1cIlwiK2U7c3dpdGNoKGUmJmUudG9Mb3dlckNhc2UoKSl7Y2FzZVwiaGV4XCI6Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6Y2FzZVwiYXNjaWlcIjpjYXNlXCJiaW5hcnlcIjpjYXNlXCJiYXNlNjRcIjpjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpjYXNlXCJyYXdcIjpyZXR1cm4gdHJ1ZTtkZWZhdWx0OnJldHVybiBmYWxzZX19O2Z1bmN0aW9uIF9ub3JtYWxpemVFbmNvZGluZyhlKXtpZighZSlyZXR1cm5cInV0ZjhcIjt2YXIgdDt3aGlsZSh0cnVlKXtzd2l0Y2goZSl7Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6cmV0dXJuXCJ1dGY4XCI7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuXCJ1dGYxNmxlXCI7Y2FzZVwibGF0aW4xXCI6Y2FzZVwiYmluYXJ5XCI6cmV0dXJuXCJsYXRpbjFcIjtjYXNlXCJiYXNlNjRcIjpjYXNlXCJhc2NpaVwiOmNhc2VcImhleFwiOnJldHVybiBlO2RlZmF1bHQ6aWYodClyZXR1cm47ZT0oXCJcIitlKS50b0xvd2VyQ2FzZSgpO3Q9dHJ1ZX19fWZ1bmN0aW9uIG5vcm1hbGl6ZUVuY29kaW5nKGUpe3ZhciB0PV9ub3JtYWxpemVFbmNvZGluZyhlKTtpZih0eXBlb2YgdCE9PVwic3RyaW5nXCImJihuLmlzRW5jb2Rpbmc9PT1pfHwhaShlKSkpdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBlbmNvZGluZzogXCIrZSk7cmV0dXJuIHR8fGV9dC5zPVN0cmluZ0RlY29kZXI7ZnVuY3Rpb24gU3RyaW5nRGVjb2RlcihlKXt0aGlzLmVuY29kaW5nPW5vcm1hbGl6ZUVuY29kaW5nKGUpO3ZhciB0O3N3aXRjaCh0aGlzLmVuY29kaW5nKXtjYXNlXCJ1dGYxNmxlXCI6dGhpcy50ZXh0PXV0ZjE2VGV4dDt0aGlzLmVuZD11dGYxNkVuZDt0PTQ7YnJlYWs7Y2FzZVwidXRmOFwiOnRoaXMuZmlsbExhc3Q9dXRmOEZpbGxMYXN0O3Q9NDticmVhaztjYXNlXCJiYXNlNjRcIjp0aGlzLnRleHQ9YmFzZTY0VGV4dDt0aGlzLmVuZD1iYXNlNjRFbmQ7dD0zO2JyZWFrO2RlZmF1bHQ6dGhpcy53cml0ZT1zaW1wbGVXcml0ZTt0aGlzLmVuZD1zaW1wbGVFbmQ7cmV0dXJufXRoaXMubGFzdE5lZWQ9MDt0aGlzLmxhc3RUb3RhbD0wO3RoaXMubGFzdENoYXI9bi5hbGxvY1Vuc2FmZSh0KX1TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlKXtpZihlLmxlbmd0aD09PTApcmV0dXJuXCJcIjt2YXIgdDt2YXIgcjtpZih0aGlzLmxhc3ROZWVkKXt0PXRoaXMuZmlsbExhc3QoZSk7aWYodD09PXVuZGVmaW5lZClyZXR1cm5cIlwiO3I9dGhpcy5sYXN0TmVlZDt0aGlzLmxhc3ROZWVkPTB9ZWxzZXtyPTB9aWYocjxlLmxlbmd0aClyZXR1cm4gdD90K3RoaXMudGV4dChlLHIpOnRoaXMudGV4dChlLHIpO3JldHVybiB0fHxcIlwifTtTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQ9dXRmOEVuZDtTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS50ZXh0PXV0ZjhUZXh0O1N0cmluZ0RlY29kZXIucHJvdG90eXBlLmZpbGxMYXN0PWZ1bmN0aW9uKGUpe2lmKHRoaXMubGFzdE5lZWQ8PWUubGVuZ3RoKXtlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKX1lLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsZS5sZW5ndGgpO3RoaXMubGFzdE5lZWQtPWUubGVuZ3RofTtmdW5jdGlvbiB1dGY4Q2hlY2tCeXRlKGUpe2lmKGU8PTEyNylyZXR1cm4gMDtlbHNlIGlmKGU+PjU9PT02KXJldHVybiAyO2Vsc2UgaWYoZT4+ND09PTE0KXJldHVybiAzO2Vsc2UgaWYoZT4+Mz09PTMwKXJldHVybiA0O3JldHVybiBlPj42PT09Mj8tMTotMn1mdW5jdGlvbiB1dGY4Q2hlY2tJbmNvbXBsZXRlKGUsdCxyKXt2YXIgbj10Lmxlbmd0aC0xO2lmKG48cilyZXR1cm4gMDt2YXIgaT11dGY4Q2hlY2tCeXRlKHRbbl0pO2lmKGk+PTApe2lmKGk+MCllLmxhc3ROZWVkPWktMTtyZXR1cm4gaX1pZigtLW48cnx8aT09PS0yKXJldHVybiAwO2k9dXRmOENoZWNrQnl0ZSh0W25dKTtpZihpPj0wKXtpZihpPjApZS5sYXN0TmVlZD1pLTI7cmV0dXJuIGl9aWYoLS1uPHJ8fGk9PT0tMilyZXR1cm4gMDtpPXV0ZjhDaGVja0J5dGUodFtuXSk7aWYoaT49MCl7aWYoaT4wKXtpZihpPT09MilpPTA7ZWxzZSBlLmxhc3ROZWVkPWktM31yZXR1cm4gaX1yZXR1cm4gMH1mdW5jdGlvbiB1dGY4Q2hlY2tFeHRyYUJ5dGVzKGUsdCxyKXtpZigodFswXSYxOTIpIT09MTI4KXtlLmxhc3ROZWVkPTA7cmV0dXJuXCLvv71cIn1pZihlLmxhc3ROZWVkPjEmJnQubGVuZ3RoPjEpe2lmKCh0WzFdJjE5MikhPT0xMjgpe2UubGFzdE5lZWQ9MTtyZXR1cm5cIu+/vVwifWlmKGUubGFzdE5lZWQ+MiYmdC5sZW5ndGg+Mil7aWYoKHRbMl0mMTkyKSE9PTEyOCl7ZS5sYXN0TmVlZD0yO3JldHVyblwi77+9XCJ9fX19ZnVuY3Rpb24gdXRmOEZpbGxMYXN0KGUpe3ZhciB0PXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7dmFyIHI9dXRmOENoZWNrRXh0cmFCeXRlcyh0aGlzLGUsdCk7aWYociE9PXVuZGVmaW5lZClyZXR1cm4gcjtpZih0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aCl7ZS5jb3B5KHRoaXMubGFzdENoYXIsdCwwLHRoaXMubGFzdE5lZWQpO3JldHVybiB0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCl9ZS5jb3B5KHRoaXMubGFzdENoYXIsdCwwLGUubGVuZ3RoKTt0aGlzLmxhc3ROZWVkLT1lLmxlbmd0aH1mdW5jdGlvbiB1dGY4VGV4dChlLHQpe3ZhciByPXV0ZjhDaGVja0luY29tcGxldGUodGhpcyxlLHQpO2lmKCF0aGlzLmxhc3ROZWVkKXJldHVybiBlLnRvU3RyaW5nKFwidXRmOFwiLHQpO3RoaXMubGFzdFRvdGFsPXI7dmFyIG49ZS5sZW5ndGgtKHItdGhpcy5sYXN0TmVlZCk7ZS5jb3B5KHRoaXMubGFzdENoYXIsMCxuKTtyZXR1cm4gZS50b1N0cmluZyhcInV0ZjhcIix0LG4pfWZ1bmN0aW9uIHV0ZjhFbmQoZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKTpcIlwiO2lmKHRoaXMubGFzdE5lZWQpcmV0dXJuIHQrXCLvv71cIjtyZXR1cm4gdH1mdW5jdGlvbiB1dGYxNlRleHQoZSx0KXtpZigoZS5sZW5ndGgtdCklMj09PTApe3ZhciByPWUudG9TdHJpbmcoXCJ1dGYxNmxlXCIsdCk7aWYocil7dmFyIG49ci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpO2lmKG4+PTU1Mjk2JiZuPD01NjMxOSl7dGhpcy5sYXN0TmVlZD0yO3RoaXMubGFzdFRvdGFsPTQ7dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTJdO3RoaXMubGFzdENoYXJbMV09ZVtlLmxlbmd0aC0xXTtyZXR1cm4gci5zbGljZSgwLC0xKX19cmV0dXJuIHJ9dGhpcy5sYXN0TmVlZD0xO3RoaXMubGFzdFRvdGFsPTI7dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdO3JldHVybiBlLnRvU3RyaW5nKFwidXRmMTZsZVwiLHQsZS5sZW5ndGgtMSl9ZnVuY3Rpb24gdXRmMTZFbmQoZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKTpcIlwiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciByPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIHQrdGhpcy5sYXN0Q2hhci50b1N0cmluZyhcInV0ZjE2bGVcIiwwLHIpfXJldHVybiB0fWZ1bmN0aW9uIGJhc2U2NFRleHQoZSx0KXt2YXIgcj0oZS5sZW5ndGgtdCklMztpZihyPT09MClyZXR1cm4gZS50b1N0cmluZyhcImJhc2U2NFwiLHQpO3RoaXMubGFzdE5lZWQ9My1yO3RoaXMubGFzdFRvdGFsPTM7aWYocj09PTEpe3RoaXMubGFzdENoYXJbMF09ZVtlLmxlbmd0aC0xXX1lbHNle3RoaXMubGFzdENoYXJbMF09ZVtlLmxlbmd0aC0yXTt0aGlzLmxhc3RDaGFyWzFdPWVbZS5sZW5ndGgtMV19cmV0dXJuIGUudG9TdHJpbmcoXCJiYXNlNjRcIix0LGUubGVuZ3RoLXIpfWZ1bmN0aW9uIGJhc2U2NEVuZChlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOlwiXCI7aWYodGhpcy5sYXN0TmVlZClyZXR1cm4gdCt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKFwiYmFzZTY0XCIsMCwzLXRoaXMubGFzdE5lZWQpO3JldHVybiB0fWZ1bmN0aW9uIHNpbXBsZVdyaXRlKGUpe3JldHVybiBlLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpfWZ1bmN0aW9uIHNpbXBsZUVuZChlKXtyZXR1cm4gZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKTpcIlwifX0sNzY5OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1kZXByZWNhdGU7ZnVuY3Rpb24gZGVwcmVjYXRlKGUsdCl7aWYoY29uZmlnKFwibm9EZXByZWNhdGlvblwiKSl7cmV0dXJuIGV9dmFyIHI9ZmFsc2U7ZnVuY3Rpb24gZGVwcmVjYXRlZCgpe2lmKCFyKXtpZihjb25maWcoXCJ0aHJvd0RlcHJlY2F0aW9uXCIpKXt0aHJvdyBuZXcgRXJyb3IodCl9ZWxzZSBpZihjb25maWcoXCJ0cmFjZURlcHJlY2F0aW9uXCIpKXtjb25zb2xlLnRyYWNlKHQpfWVsc2V7Y29uc29sZS53YXJuKHQpfXI9dHJ1ZX1yZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGRlcHJlY2F0ZWR9ZnVuY3Rpb24gY29uZmlnKGUpe3RyeXtpZighZ2xvYmFsLmxvY2FsU3RvcmFnZSlyZXR1cm4gZmFsc2V9Y2F0Y2goZSl7cmV0dXJuIGZhbHNlfXZhciB0PWdsb2JhbC5sb2NhbFN0b3JhZ2VbZV07aWYobnVsbD09dClyZXR1cm4gZmFsc2U7cmV0dXJuIFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpPT09XCJ0cnVlXCJ9fSwzMDA6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXJlcXVpcmUoXCJidWZmZXJcIil9LDM2MTpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9cmVxdWlyZShcImV2ZW50c1wiKX0sNzgxOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwiZXZlbnRzXCIpLkV2ZW50RW1pdHRlcn0sODM3OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwidXRpbFwiKX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18ocil7dmFyIG49dFtyXTtpZihuIT09dW5kZWZpbmVkKXtyZXR1cm4gbi5leHBvcnRzfXZhciBpPXRbcl09e2V4cG9ydHM6e319O3ZhciBhPXRydWU7dHJ5e2Vbcl0oaSxpLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7YT1mYWxzZX1maW5hbGx5e2lmKGEpZGVsZXRlIHRbcl19cmV0dXJuIGkuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHI9X19uY2N3cGNrX3JlcXVpcmVfXygxNzMpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/stream-browserify/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/string_decoder/string_decoder.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/compiled/string_decoder/string_decoder.js ***! \**************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var t={55:function(t,e,r){var n=r(300);var i=n.Buffer;function copyProps(t,e){for(var r in t){e[r]=t[r]}}if(i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow){t.exports=n}else{copyProps(n,e);e.Buffer=SafeBuffer}function SafeBuffer(t,e,r){return i(t,e,r)}SafeBuffer.prototype=Object.create(i.prototype);copyProps(i,SafeBuffer);SafeBuffer.from=function(t,e,r){if(typeof t===\"number\"){throw new TypeError(\"Argument must not be a number\")}return i(t,e,r)};SafeBuffer.alloc=function(t,e,r){if(typeof t!==\"number\"){throw new TypeError(\"Argument must be a number\")}var n=i(t);if(e!==undefined){if(typeof r===\"string\"){n.fill(e,r)}else{n.fill(e)}}else{n.fill(0)}return n};SafeBuffer.allocUnsafe=function(t){if(typeof t!==\"number\"){throw new TypeError(\"Argument must be a number\")}return i(t)};SafeBuffer.allocUnsafeSlow=function(t){if(typeof t!==\"number\"){throw new TypeError(\"Argument must be a number\")}return n.SlowBuffer(t)}},300:function(t){\"use strict\";t.exports=__webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")}};var e={};function __nccwpck_require__(r){var n=e[r];if(n!==undefined){return n.exports}var i=e[r]={exports:{}};var s=true;try{t[r](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete e[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};!function(){\"use strict\";var t=r;var e=__nccwpck_require__(55).Buffer;var n=e.isEncoding||function(t){t=\"\"+t;switch(t&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return true;default:return false}};function _normalizeEncoding(t){if(!t)return\"utf8\";var e;while(true){switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase();e=true}}}function normalizeEncoding(t){var r=_normalizeEncoding(t);if(typeof r!==\"string\"&&(e.isEncoding===n||!n(t)))throw new Error(\"Unknown encoding: \"+t);return r||t}t.StringDecoder=StringDecoder;function StringDecoder(t){this.encoding=normalizeEncoding(t);var r;switch(this.encoding){case\"utf16le\":this.text=utf16Text;this.end=utf16End;r=4;break;case\"utf8\":this.fillLast=utf8FillLast;r=4;break;case\"base64\":this.text=base64Text;this.end=base64End;r=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=e.allocUnsafe(r)}StringDecoder.prototype.write=function(t){if(t.length===0)return\"\";var e;var r;if(this.lastNeed){e=this.fillLast(t);if(e===undefined)return\"\";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r<t.length)return e?e+this.text(t,r):this.text(t,r);return e||\"\"};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(t){if(this.lastNeed<=t.length){t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length);this.lastNeed-=t.length};function utf8CheckByte(t){if(t<=127)return 0;else if(t>>5===6)return 2;else if(t>>4===14)return 3;else if(t>>3===30)return 4;return t>>6===2?-1:-2}function utf8CheckIncomplete(t,e,r){var n=e.length-1;if(n<r)return 0;var i=utf8CheckByte(e[n]);if(i>=0){if(i>0)t.lastNeed=i-1;return i}if(--n<r||i===-2)return 0;i=utf8CheckByte(e[n]);if(i>=0){if(i>0)t.lastNeed=i-2;return i}if(--n<r||i===-2)return 0;i=utf8CheckByte(e[n]);if(i>=0){if(i>0){if(i===2)i=0;else t.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(t,e,r){if((e[0]&192)!==128){t.lastNeed=0;return\"�\"}if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128){t.lastNeed=1;return\"�\"}if(t.lastNeed>2&&e.length>2){if((e[2]&192)!==128){t.lastNeed=2;return\"�\"}}}}function utf8FillLast(t){var e=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,t,e);if(r!==undefined)return r;if(this.lastNeed<=t.length){t.copy(this.lastChar,e,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}t.copy(this.lastChar,e,0,t.length);this.lastNeed-=t.length}function utf8Text(t,e){var r=utf8CheckIncomplete(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);t.copy(this.lastChar,0,n);return t.toString(\"utf8\",e,n)}function utf8End(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed)return e+\"�\";return e}function utf16Text(t,e){if((t.length-e)%2===0){var r=t.toString(\"utf16le\",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=t[t.length-2];this.lastChar[1]=t[t.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=t[t.length-1];return t.toString(\"utf16le\",e,t.length-1)}function utf16End(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function base64Text(t,e){var r=(t.length-e)%3;if(r===0)return t.toString(\"base64\",e);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=t[t.length-1]}else{this.lastChar[0]=t[t.length-2];this.lastChar[1]=t[t.length-1]}return t.toString(\"base64\",e,t.length-r)}function base64End(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed)return e+this.lastChar.toString(\"base64\",0,3-this.lastNeed);return e}function simpleWrite(t){return t.toString(this.encoding)}function simpleEnd(t){return t&&t.length?this.write(t):\"\"}}();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaW5nX2RlY29kZXIvc3RyaW5nX2RlY29kZXIuanMiLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVksT0FBTyxtQkFBbUIsYUFBYSxlQUFlLHdCQUF3QixnQkFBZ0IsV0FBVyxzREFBc0QsWUFBWSxLQUFLLGVBQWUsb0JBQW9CLDJCQUEyQixnQkFBZ0IsZ0RBQWdELHdCQUF3QixnQ0FBZ0Msd0JBQXdCLHFEQUFxRCxpQkFBaUIsaUNBQWlDLHdCQUF3QixpREFBaUQsV0FBVyxrQkFBa0Isd0JBQXdCLFlBQVksS0FBSyxXQUFXLEtBQUssVUFBVSxVQUFVLG1DQUFtQyx3QkFBd0IsaURBQWlELGFBQWEsdUNBQXVDLHdCQUF3QixpREFBaUQsd0JBQXdCLGlCQUFpQixhQUFhLFVBQVUsbUJBQU8sQ0FBQyxxRkFBUSxJQUFJLFNBQVMsZ0NBQWdDLFdBQVcsa0JBQWtCLGlCQUFpQixZQUFZLFlBQVksV0FBVyxJQUFJLHNDQUFzQyxRQUFRLFFBQVEsaUJBQWlCLGlCQUFpQixtRUFBbUUsU0FBUyxLQUFLLFNBQVMsWUFBWSxhQUFhLFFBQVEscUNBQXFDLGdDQUFnQyxPQUFPLDJCQUEyQixpSkFBaUosdUJBQXVCLCtCQUErQixtQkFBbUIsTUFBTSxZQUFZLFVBQVUsb0NBQW9DLG9FQUFvRSx5Q0FBeUMsNENBQTRDLG9CQUFvQix1QkFBdUIsU0FBUyw4QkFBOEIsNEJBQTRCLDBGQUEwRixZQUFZLDhCQUE4QiwwQkFBMEIsbUNBQW1DLE1BQU0sc0JBQXNCLGtDQUFrQyxrQkFBa0IsSUFBSSxNQUFNLHNDQUFzQyxJQUFJLE1BQU0sa0NBQWtDLG1CQUFtQixJQUFJLE1BQU0sK0JBQStCLG1CQUFtQixPQUFPLGdCQUFnQixpQkFBaUIsK0JBQStCLDBDQUEwQyx5QkFBeUIsTUFBTSxNQUFNLGtCQUFrQixtQkFBbUIsMEJBQTBCLGdCQUFnQixnQkFBZ0IsS0FBSyxJQUFJLHVEQUF1RCxjQUFjLG9DQUFvQyxzQ0FBc0MsNkNBQTZDLDRCQUE0QixtRUFBbUUsOERBQThELDhEQUE4RCx5QkFBeUIsMEJBQTBCLG1CQUFtQiwwQkFBMEIsMkJBQTJCLDJCQUEyQixzQkFBc0Isb0NBQW9DLGlCQUFpQixnQkFBZ0IsMEJBQTBCLFNBQVMsc0JBQXNCLFNBQVMsMEJBQTBCLHNCQUFzQixTQUFTLHNCQUFzQixTQUFTLDBCQUEwQixzQkFBc0IsU0FBUyxRQUFRLGFBQWEsb0JBQW9CLFNBQVMsU0FBUyxvQ0FBb0MscUJBQXFCLGFBQWEsVUFBVSw2QkFBNkIscUJBQXFCLGFBQWEsVUFBVSw2QkFBNkIscUJBQXFCLGFBQWEsYUFBYSx5QkFBeUIsbUNBQW1DLG9DQUFvQywwQkFBMEIsNEJBQTRCLHdDQUF3Qyw4REFBOEQsbUNBQW1DLHdCQUF3Qix1QkFBdUIsb0NBQW9DLDhDQUE4QyxpQkFBaUIsaUNBQWlDLDBCQUEwQiw4QkFBOEIsb0JBQW9CLG1DQUFtQyw4QkFBOEIsU0FBUyx3QkFBd0IsdUJBQXVCLDhCQUE4QixNQUFNLCtCQUErQix1QkFBdUIsZ0JBQWdCLGlCQUFpQiwrQkFBK0IsK0JBQStCLHNCQUFzQixTQUFTLGdCQUFnQixpQkFBaUIsK0JBQStCLDBDQUEwQyxxQkFBcUIsbUNBQW1DLGtCQUFrQixtQ0FBbUMsK0NBQStDLFNBQVMseUJBQXlCLHFCQUFxQix1Q0FBdUMsa0JBQWtCLGlCQUFpQixVQUFVLCtCQUErQixLQUFLLCtCQUErQiwrQkFBK0IseUNBQXlDLHNCQUFzQixtQ0FBbUMsNkVBQTZFLFNBQVMsd0JBQXdCLGlDQUFpQyxzQkFBc0IscUNBQXFDLEdBQUcsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaW5nX2RlY29kZXIvc3RyaW5nX2RlY29kZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7dmFyIHQ9ezU1OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yKDMwMCk7dmFyIGk9bi5CdWZmZXI7ZnVuY3Rpb24gY29weVByb3BzKHQsZSl7Zm9yKHZhciByIGluIHQpe2Vbcl09dFtyXX19aWYoaS5mcm9tJiZpLmFsbG9jJiZpLmFsbG9jVW5zYWZlJiZpLmFsbG9jVW5zYWZlU2xvdyl7dC5leHBvcnRzPW59ZWxzZXtjb3B5UHJvcHMobixlKTtlLkJ1ZmZlcj1TYWZlQnVmZmVyfWZ1bmN0aW9uIFNhZmVCdWZmZXIodCxlLHIpe3JldHVybiBpKHQsZSxyKX1TYWZlQnVmZmVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKTtjb3B5UHJvcHMoaSxTYWZlQnVmZmVyKTtTYWZlQnVmZmVyLmZyb209ZnVuY3Rpb24odCxlLHIpe2lmKHR5cGVvZiB0PT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyXCIpfXJldHVybiBpKHQsZSxyKX07U2FmZUJ1ZmZlci5hbGxvYz1mdW5jdGlvbih0LGUscil7aWYodHlwZW9mIHQhPT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlclwiKX12YXIgbj1pKHQpO2lmKGUhPT11bmRlZmluZWQpe2lmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7bi5maWxsKGUscil9ZWxzZXtuLmZpbGwoZSl9fWVsc2V7bi5maWxsKDApfXJldHVybiBufTtTYWZlQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIGkodCl9O1NhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIil9cmV0dXJuIG4uU2xvd0J1ZmZlcih0KX19LDMwMDpmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjt0LmV4cG9ydHM9cmVxdWlyZShcImJ1ZmZlclwiKX19O3ZhciBlPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18ocil7dmFyIG49ZVtyXTtpZihuIT09dW5kZWZpbmVkKXtyZXR1cm4gbi5leHBvcnRzfXZhciBpPWVbcl09e2V4cG9ydHM6e319O3ZhciBzPXRydWU7dHJ5e3Rbcl0oaSxpLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7cz1mYWxzZX1maW5hbGx5e2lmKHMpZGVsZXRlIGVbcl19cmV0dXJuIGkuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHI9e307IWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9cjt2YXIgZT1fX25jY3dwY2tfcmVxdWlyZV9fKDU1KS5CdWZmZXI7dmFyIG49ZS5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXt0PVwiXCIrdDtzd2l0Y2godCYmdC50b0xvd2VyQ2FzZSgpKXtjYXNlXCJoZXhcIjpjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpjYXNlXCJhc2NpaVwiOmNhc2VcImJpbmFyeVwiOmNhc2VcImJhc2U2NFwiOmNhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOmNhc2VcInJhd1wiOnJldHVybiB0cnVlO2RlZmF1bHQ6cmV0dXJuIGZhbHNlfX07ZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKHQpe2lmKCF0KXJldHVyblwidXRmOFwiO3ZhciBlO3doaWxlKHRydWUpe3N3aXRjaCh0KXtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpyZXR1cm5cInV0ZjhcIjtjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm5cInV0ZjE2bGVcIjtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm5cImxhdGluMVwiO2Nhc2VcImJhc2U2NFwiOmNhc2VcImFzY2lpXCI6Y2FzZVwiaGV4XCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PShcIlwiK3QpLnRvTG93ZXJDYXNlKCk7ZT10cnVlfX19ZnVuY3Rpb24gbm9ybWFsaXplRW5jb2RpbmcodCl7dmFyIHI9X25vcm1hbGl6ZUVuY29kaW5nKHQpO2lmKHR5cGVvZiByIT09XCJzdHJpbmdcIiYmKGUuaXNFbmNvZGluZz09PW58fCFuKHQpKSl0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIit0KTtyZXR1cm4gcnx8dH10LlN0cmluZ0RlY29kZXI9U3RyaW5nRGVjb2RlcjtmdW5jdGlvbiBTdHJpbmdEZWNvZGVyKHQpe3RoaXMuZW5jb2Rpbmc9bm9ybWFsaXplRW5jb2RpbmcodCk7dmFyIHI7c3dpdGNoKHRoaXMuZW5jb2Rpbmcpe2Nhc2VcInV0ZjE2bGVcIjp0aGlzLnRleHQ9dXRmMTZUZXh0O3RoaXMuZW5kPXV0ZjE2RW5kO3I9NDticmVhaztjYXNlXCJ1dGY4XCI6dGhpcy5maWxsTGFzdD11dGY4RmlsbExhc3Q7cj00O2JyZWFrO2Nhc2VcImJhc2U2NFwiOnRoaXMudGV4dD1iYXNlNjRUZXh0O3RoaXMuZW5kPWJhc2U2NEVuZDtyPTM7YnJlYWs7ZGVmYXVsdDp0aGlzLndyaXRlPXNpbXBsZVdyaXRlO3RoaXMuZW5kPXNpbXBsZUVuZDtyZXR1cm59dGhpcy5sYXN0TmVlZD0wO3RoaXMubGFzdFRvdGFsPTA7dGhpcy5sYXN0Q2hhcj1lLmFsbG9jVW5zYWZlKHIpfVN0cmluZ0RlY29kZXIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm5cIlwiO3ZhciBlO3ZhciByO2lmKHRoaXMubGFzdE5lZWQpe2U9dGhpcy5maWxsTGFzdCh0KTtpZihlPT09dW5kZWZpbmVkKXJldHVyblwiXCI7cj10aGlzLmxhc3ROZWVkO3RoaXMubGFzdE5lZWQ9MH1lbHNle3I9MH1pZihyPHQubGVuZ3RoKXJldHVybiBlP2UrdGhpcy50ZXh0KHQscik6dGhpcy50ZXh0KHQscik7cmV0dXJuIGV8fFwiXCJ9O1N0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZD11dGY4RW5kO1N0cmluZ0RlY29kZXIucHJvdG90eXBlLnRleHQ9dXRmOFRleHQ7U3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpe3QuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKTtyZXR1cm4gdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpfXQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0Lmxlbmd0aCk7dGhpcy5sYXN0TmVlZC09dC5sZW5ndGh9O2Z1bmN0aW9uIHV0ZjhDaGVja0J5dGUodCl7aWYodDw9MTI3KXJldHVybiAwO2Vsc2UgaWYodD4+NT09PTYpcmV0dXJuIDI7ZWxzZSBpZih0Pj40PT09MTQpcmV0dXJuIDM7ZWxzZSBpZih0Pj4zPT09MzApcmV0dXJuIDQ7cmV0dXJuIHQ+PjY9PT0yPy0xOi0yfWZ1bmN0aW9uIHV0ZjhDaGVja0luY29tcGxldGUodCxlLHIpe3ZhciBuPWUubGVuZ3RoLTE7aWYobjxyKXJldHVybiAwO3ZhciBpPXV0ZjhDaGVja0J5dGUoZVtuXSk7aWYoaT49MCl7aWYoaT4wKXQubGFzdE5lZWQ9aS0xO3JldHVybiBpfWlmKC0tbjxyfHxpPT09LTIpcmV0dXJuIDA7aT11dGY4Q2hlY2tCeXRlKGVbbl0pO2lmKGk+PTApe2lmKGk+MCl0Lmxhc3ROZWVkPWktMjtyZXR1cm4gaX1pZigtLW48cnx8aT09PS0yKXJldHVybiAwO2k9dXRmOENoZWNrQnl0ZShlW25dKTtpZihpPj0wKXtpZihpPjApe2lmKGk9PT0yKWk9MDtlbHNlIHQubGFzdE5lZWQ9aS0zfXJldHVybiBpfXJldHVybiAwfWZ1bmN0aW9uIHV0ZjhDaGVja0V4dHJhQnl0ZXModCxlLHIpe2lmKChlWzBdJjE5MikhPT0xMjgpe3QubGFzdE5lZWQ9MDtyZXR1cm5cIu+/vVwifWlmKHQubGFzdE5lZWQ+MSYmZS5sZW5ndGg+MSl7aWYoKGVbMV0mMTkyKSE9PTEyOCl7dC5sYXN0TmVlZD0xO3JldHVyblwi77+9XCJ9aWYodC5sYXN0TmVlZD4yJiZlLmxlbmd0aD4yKXtpZigoZVsyXSYxOTIpIT09MTI4KXt0Lmxhc3ROZWVkPTI7cmV0dXJuXCLvv71cIn19fX1mdW5jdGlvbiB1dGY4RmlsbExhc3QodCl7dmFyIGU9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZDt2YXIgcj11dGY4Q2hlY2tFeHRyYUJ5dGVzKHRoaXMsdCxlKTtpZihyIT09dW5kZWZpbmVkKXJldHVybiByO2lmKHRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoKXt0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKX10LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdC5sZW5ndGgpO3RoaXMubGFzdE5lZWQtPXQubGVuZ3RofWZ1bmN0aW9uIHV0ZjhUZXh0KHQsZSl7dmFyIHI9dXRmOENoZWNrSW5jb21wbGV0ZSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoXCJ1dGY4XCIsZSk7dGhpcy5sYXN0VG90YWw9cjt2YXIgbj10Lmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTt0LmNvcHkodGhpcy5sYXN0Q2hhciwwLG4pO3JldHVybiB0LnRvU3RyaW5nKFwidXRmOFwiLGUsbil9ZnVuY3Rpb24gdXRmOEVuZCh0KXt2YXIgZT10JiZ0Lmxlbmd0aD90aGlzLndyaXRlKHQpOlwiXCI7aWYodGhpcy5sYXN0TmVlZClyZXR1cm4gZStcIu+/vVwiO3JldHVybiBlfWZ1bmN0aW9uIHV0ZjE2VGV4dCh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT09MCl7dmFyIHI9dC50b1N0cmluZyhcInV0ZjE2bGVcIixlKTtpZihyKXt2YXIgbj1yLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk7aWYobj49NTUyOTYmJm48PTU2MzE5KXt0aGlzLmxhc3ROZWVkPTI7dGhpcy5sYXN0VG90YWw9NDt0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl07dGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdO3JldHVybiByLnNsaWNlKDAsLTEpfX1yZXR1cm4gcn10aGlzLmxhc3ROZWVkPTE7dGhpcy5sYXN0VG90YWw9Mjt0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMV07cmV0dXJuIHQudG9TdHJpbmcoXCJ1dGYxNmxlXCIsZSx0Lmxlbmd0aC0xKX1mdW5jdGlvbiB1dGYxNkVuZCh0KXt2YXIgZT10JiZ0Lmxlbmd0aD90aGlzLndyaXRlKHQpOlwiXCI7aWYodGhpcy5sYXN0TmVlZCl7dmFyIHI9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZDtyZXR1cm4gZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKFwidXRmMTZsZVwiLDAscil9cmV0dXJuIGV9ZnVuY3Rpb24gYmFzZTY0VGV4dCh0LGUpe3ZhciByPSh0Lmxlbmd0aC1lKSUzO2lmKHI9PT0wKXJldHVybiB0LnRvU3RyaW5nKFwiYmFzZTY0XCIsZSk7dGhpcy5sYXN0TmVlZD0zLXI7dGhpcy5sYXN0VG90YWw9MztpZihyPT09MSl7dGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTFdfWVsc2V7dGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdO3RoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXX1yZXR1cm4gdC50b1N0cmluZyhcImJhc2U2NFwiLGUsdC5sZW5ndGgtcil9ZnVuY3Rpb24gYmFzZTY0RW5kKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6XCJcIjtpZih0aGlzLmxhc3ROZWVkKXJldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoXCJiYXNlNjRcIiwwLDMtdGhpcy5sYXN0TmVlZCk7cmV0dXJuIGV9ZnVuY3Rpb24gc2ltcGxlV3JpdGUodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gc2ltcGxlRW5kKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD90aGlzLndyaXRlKHQpOlwiXCJ9fSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/string_decoder/string_decoder.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/util/util.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/compiled/util/util.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")[\"Buffer\"];\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n(function(){var r={992:function(r){r.exports=function(r,t,n){if(r.filter)return r.filter(t,n);if(void 0===r||null===r)throw new TypeError;if(\"function\"!=typeof t)throw new TypeError;var o=[];for(var i=0;i<r.length;i++){if(!e.call(r,i))continue;var a=r[i];if(t.call(n,a,i,r))o.push(a)}return o};var e=Object.prototype.hasOwnProperty},256:function(r,e,t){\"use strict\";var n=t(192);var o=t(139);var i=o(n(\"String.prototype.indexOf\"));r.exports=function callBoundIntrinsic(r,e){var t=n(r,!!e);if(typeof t===\"function\"&&i(r,\".prototype.\")>-1){return o(t)}return t}},139:function(r,e,t){\"use strict\";var n=t(212);var o=t(192);var i=o(\"%Function.prototype.apply%\");var a=o(\"%Function.prototype.call%\");var f=o(\"%Reflect.apply%\",true)||n.call(a,i);var u=o(\"%Object.getOwnPropertyDescriptor%\",true);var s=o(\"%Object.defineProperty%\",true);var c=o(\"%Math.max%\");if(s){try{s({},\"a\",{value:1})}catch(r){s=null}}r.exports=function callBind(r){var e=f(n,a,arguments);if(u&&s){var t=u(e,\"length\");if(t.configurable){s(e,\"length\",{value:1+c(0,r.length-(arguments.length-1))})}}return e};var y=function applyBind(){return f(n,i,arguments)};if(s){s(r.exports,\"apply\",{value:y})}else{r.exports.apply=y}},181:function(r){\"use strict\";r.exports=EvalError},545:function(r){\"use strict\";r.exports=Error},22:function(r){\"use strict\";r.exports=RangeError},803:function(r){\"use strict\";r.exports=ReferenceError},182:function(r){\"use strict\";r.exports=SyntaxError},202:function(r){\"use strict\";r.exports=TypeError},284:function(r){\"use strict\";r.exports=URIError},144:function(r){var e=Object.prototype.hasOwnProperty;var t=Object.prototype.toString;r.exports=function forEach(r,n,o){if(t.call(n)!==\"[object Function]\"){throw new TypeError(\"iterator must be a function\")}var i=r.length;if(i===+i){for(var a=0;a<i;a++){n.call(o,r[a],a,r)}}else{for(var f in r){if(e.call(r,f)){n.call(o,r[f],f,r)}}}}},136:function(r){\"use strict\";var e=\"Function.prototype.bind called on incompatible \";var t=Object.prototype.toString;var n=Math.max;var o=\"[object Function]\";var i=function concatty(r,e){var t=[];for(var n=0;n<r.length;n+=1){t[n]=r[n]}for(var o=0;o<e.length;o+=1){t[o+r.length]=e[o]}return t};var a=function slicy(r,e){var t=[];for(var n=e||0,o=0;n<r.length;n+=1,o+=1){t[o]=r[n]}return t};var joiny=function(r,e){var t=\"\";for(var n=0;n<r.length;n+=1){t+=r[n];if(n+1<r.length){t+=e}}return t};r.exports=function bind(r){var f=this;if(typeof f!==\"function\"||t.apply(f)!==o){throw new TypeError(e+f)}var u=a(arguments,1);var s;var binder=function(){if(this instanceof s){var e=f.apply(this,i(u,arguments));if(Object(e)===e){return e}return this}return f.apply(r,i(u,arguments))};var c=n(0,f.length-u.length);var y=[];for(var p=0;p<c;p++){y[p]=\"$\"+p}s=Function(\"binder\",\"return function (\"+joiny(y,\",\")+\"){ return binder.apply(this,arguments); }\")(binder);if(f.prototype){var l=function Empty(){};l.prototype=f.prototype;s.prototype=new l;l.prototype=null}return s}},212:function(r,e,t){\"use strict\";var n=t(136);r.exports=Function.prototype.bind||n},192:function(r,e,t){\"use strict\";var n;var o=t(545);var i=t(181);var a=t(22);var f=t(803);var u=t(182);var s=t(202);var c=t(284);var y=Function;var getEvalledConstructor=function(r){try{return y('\"use strict\"; return ('+r+\").constructor;\")()}catch(r){}};var p=Object.getOwnPropertyDescriptor;if(p){try{p({},\"\")}catch(r){p=null}}var throwTypeError=function(){throw new s};var l=p?function(){try{arguments.callee;return throwTypeError}catch(r){try{return p(arguments,\"callee\").get}catch(r){return throwTypeError}}}():throwTypeError;var g=t(115)();var v=t(14)();var b=Object.getPrototypeOf||(v?function(r){return r.__proto__}:null);var d={};var m=typeof Uint8Array===\"undefined\"||!b?n:b(Uint8Array);var S={__proto__:null,\"%AggregateError%\":typeof AggregateError===\"undefined\"?n:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":typeof ArrayBuffer===\"undefined\"?n:ArrayBuffer,\"%ArrayIteratorPrototype%\":g&&b?b([][Symbol.iterator]()):n,\"%AsyncFromSyncIteratorPrototype%\":n,\"%AsyncFunction%\":d,\"%AsyncGenerator%\":d,\"%AsyncGeneratorFunction%\":d,\"%AsyncIteratorPrototype%\":d,\"%Atomics%\":typeof Atomics===\"undefined\"?n:Atomics,\"%BigInt%\":typeof BigInt===\"undefined\"?n:BigInt,\"%BigInt64Array%\":typeof BigInt64Array===\"undefined\"?n:BigInt64Array,\"%BigUint64Array%\":typeof BigUint64Array===\"undefined\"?n:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":typeof DataView===\"undefined\"?n:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":o,\"%eval%\":eval,\"%EvalError%\":i,\"%Float32Array%\":typeof Float32Array===\"undefined\"?n:Float32Array,\"%Float64Array%\":typeof Float64Array===\"undefined\"?n:Float64Array,\"%FinalizationRegistry%\":typeof FinalizationRegistry===\"undefined\"?n:FinalizationRegistry,\"%Function%\":y,\"%GeneratorFunction%\":d,\"%Int8Array%\":typeof Int8Array===\"undefined\"?n:Int8Array,\"%Int16Array%\":typeof Int16Array===\"undefined\"?n:Int16Array,\"%Int32Array%\":typeof Int32Array===\"undefined\"?n:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":g&&b?b(b([][Symbol.iterator]())):n,\"%JSON%\":typeof JSON===\"object\"?JSON:n,\"%Map%\":typeof Map===\"undefined\"?n:Map,\"%MapIteratorPrototype%\":typeof Map===\"undefined\"||!g||!b?n:b((new Map)[Symbol.iterator]()),\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":Object,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":typeof Promise===\"undefined\"?n:Promise,\"%Proxy%\":typeof Proxy===\"undefined\"?n:Proxy,\"%RangeError%\":a,\"%ReferenceError%\":f,\"%Reflect%\":typeof Reflect===\"undefined\"?n:Reflect,\"%RegExp%\":RegExp,\"%Set%\":typeof Set===\"undefined\"?n:Set,\"%SetIteratorPrototype%\":typeof Set===\"undefined\"||!g||!b?n:b((new Set)[Symbol.iterator]()),\"%SharedArrayBuffer%\":typeof SharedArrayBuffer===\"undefined\"?n:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":g&&b?b(\"\"[Symbol.iterator]()):n,\"%Symbol%\":g?Symbol:n,\"%SyntaxError%\":u,\"%ThrowTypeError%\":l,\"%TypedArray%\":m,\"%TypeError%\":s,\"%Uint8Array%\":typeof Uint8Array===\"undefined\"?n:Uint8Array,\"%Uint8ClampedArray%\":typeof Uint8ClampedArray===\"undefined\"?n:Uint8ClampedArray,\"%Uint16Array%\":typeof Uint16Array===\"undefined\"?n:Uint16Array,\"%Uint32Array%\":typeof Uint32Array===\"undefined\"?n:Uint32Array,\"%URIError%\":c,\"%WeakMap%\":typeof WeakMap===\"undefined\"?n:WeakMap,\"%WeakRef%\":typeof WeakRef===\"undefined\"?n:WeakRef,\"%WeakSet%\":typeof WeakSet===\"undefined\"?n:WeakSet};if(b){try{null.error}catch(r){var A=b(b(r));S[\"%Error.prototype%\"]=A}}var h=function doEval(r){var e;if(r===\"%AsyncFunction%\"){e=getEvalledConstructor(\"async function () {}\")}else if(r===\"%GeneratorFunction%\"){e=getEvalledConstructor(\"function* () {}\")}else if(r===\"%AsyncGeneratorFunction%\"){e=getEvalledConstructor(\"async function* () {}\")}else if(r===\"%AsyncGenerator%\"){var t=doEval(\"%AsyncGeneratorFunction%\");if(t){e=t.prototype}}else if(r===\"%AsyncIteratorPrototype%\"){var n=doEval(\"%AsyncGenerator%\");if(n&&b){e=b(n.prototype)}}S[r]=e;return e};var O={__proto__:null,\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]};var j=t(212);var w=t(270);var P=j.call(Function.call,Array.prototype.concat);var B=j.call(Function.apply,Array.prototype.splice);var E=j.call(Function.call,String.prototype.replace);var x=j.call(Function.call,String.prototype.slice);var T=j.call(Function.call,RegExp.prototype.exec);var I=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;var k=/\\\\(\\\\)?/g;var F=function stringToPath(r){var e=x(r,0,1);var t=x(r,-1);if(e===\"%\"&&t!==\"%\"){throw new u(\"invalid intrinsic syntax, expected closing `%`\")}else if(t===\"%\"&&e!==\"%\"){throw new u(\"invalid intrinsic syntax, expected opening `%`\")}var n=[];E(r,I,(function(r,e,t,o){n[n.length]=t?E(o,k,\"$1\"):e||r}));return n};var U=function getBaseIntrinsic(r,e){var t=r;var n;if(w(O,t)){n=O[t];t=\"%\"+n[0]+\"%\"}if(w(S,t)){var o=S[t];if(o===d){o=h(t)}if(typeof o===\"undefined\"&&!e){throw new s(\"intrinsic \"+r+\" exists, but is not available. Please file an issue!\")}return{alias:n,name:t,value:o}}throw new u(\"intrinsic \"+r+\" does not exist!\")};r.exports=function GetIntrinsic(r,e){if(typeof r!==\"string\"||r.length===0){throw new s(\"intrinsic name must be a non-empty string\")}if(arguments.length>1&&typeof e!==\"boolean\"){throw new s('\"allowMissing\" argument must be a boolean')}if(T(/^%?[^%]*%?$/,r)===null){throw new u(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\")}var t=F(r);var o=t.length>0?t[0]:\"\";var i=U(\"%\"+o+\"%\",e);var a=i.name;var f=i.value;var c=false;var y=i.alias;if(y){o=y[0];B(t,P([0,1],y))}for(var l=1,g=true;l<t.length;l+=1){var v=t[l];var b=x(v,0,1);var d=x(v,-1);if((b==='\"'||b===\"'\"||b===\"`\"||(d==='\"'||d===\"'\"||d===\"`\"))&&b!==d){throw new u(\"property names with quotes must have matching quotes\")}if(v===\"constructor\"||!g){c=true}o+=\".\"+v;a=\"%\"+o+\"%\";if(w(S,a)){f=S[a]}else if(f!=null){if(!(v in f)){if(!e){throw new s(\"base intrinsic for \"+r+\" exists, but the property is not available.\")}return void n}if(p&&l+1>=t.length){var m=p(f,v);g=!!m;if(g&&\"get\"in m&&!(\"originalValue\"in m.get)){f=m.get}else{f=f[v]}}else{g=w(f,v);f=f[v]}if(g&&!c){S[a]=f}}}return f}},14:function(r){\"use strict\";var e={__proto__:null,foo:{}};var t=Object;r.exports=function hasProto(){return{__proto__:e}.foo===e.foo&&!(e instanceof t)}},942:function(r,e,t){\"use strict\";var n=typeof Symbol!==\"undefined\"&&Symbol;var o=t(773);r.exports=function hasNativeSymbols(){if(typeof n!==\"function\"){return false}if(typeof Symbol!==\"function\"){return false}if(typeof n(\"foo\")!==\"symbol\"){return false}if(typeof Symbol(\"bar\")!==\"symbol\"){return false}return o()}},773:function(r){\"use strict\";r.exports=function hasSymbols(){if(typeof Symbol!==\"function\"||typeof Object.getOwnPropertySymbols!==\"function\"){return false}if(typeof Symbol.iterator===\"symbol\"){return true}var r={};var e=Symbol(\"test\");var t=Object(e);if(typeof e===\"string\"){return false}if(Object.prototype.toString.call(e)!==\"[object Symbol]\"){return false}if(Object.prototype.toString.call(t)!==\"[object Symbol]\"){return false}var n=42;r[e]=n;for(e in r){return false}if(typeof Object.keys===\"function\"&&Object.keys(r).length!==0){return false}if(typeof Object.getOwnPropertyNames===\"function\"&&Object.getOwnPropertyNames(r).length!==0){return false}var o=Object.getOwnPropertySymbols(r);if(o.length!==1||o[0]!==e){return false}if(!Object.prototype.propertyIsEnumerable.call(r,e)){return false}if(typeof Object.getOwnPropertyDescriptor===\"function\"){var i=Object.getOwnPropertyDescriptor(r,e);if(i.value!==n||i.enumerable!==true){return false}}return true}},115:function(r,e,t){\"use strict\";var n=typeof Symbol!==\"undefined\"&&Symbol;var o=t(832);r.exports=function hasNativeSymbols(){if(typeof n!==\"function\"){return false}if(typeof Symbol!==\"function\"){return false}if(typeof n(\"foo\")!==\"symbol\"){return false}if(typeof Symbol(\"bar\")!==\"symbol\"){return false}return o()}},832:function(r){\"use strict\";r.exports=function hasSymbols(){if(typeof Symbol!==\"function\"||typeof Object.getOwnPropertySymbols!==\"function\"){return false}if(typeof Symbol.iterator===\"symbol\"){return true}var r={};var e=Symbol(\"test\");var t=Object(e);if(typeof e===\"string\"){return false}if(Object.prototype.toString.call(e)!==\"[object Symbol]\"){return false}if(Object.prototype.toString.call(t)!==\"[object Symbol]\"){return false}var n=42;r[e]=n;for(e in r){return false}if(typeof Object.keys===\"function\"&&Object.keys(r).length!==0){return false}if(typeof Object.getOwnPropertyNames===\"function\"&&Object.getOwnPropertyNames(r).length!==0){return false}var o=Object.getOwnPropertySymbols(r);if(o.length!==1||o[0]!==e){return false}if(!Object.prototype.propertyIsEnumerable.call(r,e)){return false}if(typeof Object.getOwnPropertyDescriptor===\"function\"){var i=Object.getOwnPropertyDescriptor(r,e);if(i.value!==n||i.enumerable!==true){return false}}return true}},270:function(r,e,t){\"use strict\";var n=Function.prototype.call;var o=Object.prototype.hasOwnProperty;var i=t(212);r.exports=i.call(n,o)},782:function(r){if(typeof Object.create===\"function\"){r.exports=function inherits(r,e){if(e){r.super_=e;r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}})}}}else{r.exports=function inherits(r,e){if(e){r.super_=e;var TempCtor=function(){};TempCtor.prototype=e.prototype;r.prototype=new TempCtor;r.prototype.constructor=r}}}},157:function(r){\"use strict\";var e=typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\";var t=Object.prototype.toString;var n=function isArguments(r){if(e&&r&&typeof r===\"object\"&&Symbol.toStringTag in r){return false}return t.call(r)===\"[object Arguments]\"};var o=function isArguments(r){if(n(r)){return true}return r!==null&&typeof r===\"object\"&&typeof r.length===\"number\"&&r.length>=0&&t.call(r)!==\"[object Array]\"&&t.call(r.callee)===\"[object Function]\"};var i=function(){return n(arguments)}();n.isLegacyArguments=o;r.exports=i?n:o},391:function(r){\"use strict\";var e=Object.prototype.toString;var t=Function.prototype.toString;var n=/^\\s*(?:function)?\\*/;var o=typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\";var i=Object.getPrototypeOf;var getGeneratorFunc=function(){if(!o){return false}try{return Function(\"return function*() {}\")()}catch(r){}};var a=getGeneratorFunc();var f=a?i(a):{};r.exports=function isGeneratorFunction(r){if(typeof r!==\"function\"){return false}if(n.test(t.call(r))){return true}if(!o){var a=e.call(r);return a===\"[object GeneratorFunction]\"}return i(r)===f}},994:function(r,e,t){\"use strict\";var n=t(144);var o=t(349);var i=t(256);var a=i(\"Object.prototype.toString\");var f=t(942)();var u=f&&typeof Symbol.toStringTag===\"symbol\";var s=o();var c=i(\"Array.prototype.indexOf\",true)||function indexOf(r,e){for(var t=0;t<r.length;t+=1){if(r[t]===e){return t}}return-1};var y=i(\"String.prototype.slice\");var p={};var l=t(24);var g=Object.getPrototypeOf;if(u&&l&&g){n(s,(function(r){var e=new __webpack_require__.g[r];if(!(Symbol.toStringTag in e)){throw new EvalError(\"this engine has support for Symbol.toStringTag, but \"+r+\" does not have the property! Please report this.\")}var t=g(e);var n=l(t,Symbol.toStringTag);if(!n){var o=g(t);n=l(o,Symbol.toStringTag)}p[r]=n.get}))}var v=function tryAllTypedArrays(r){var e=false;n(p,(function(t,n){if(!e){try{e=t.call(r)===n}catch(r){}}}));return e};r.exports=function isTypedArray(r){if(!r||typeof r!==\"object\"){return false}if(!u){var e=y(a(r),8,-1);return c(s,e)>-1}if(!l){return false}return v(r)}},369:function(r){r.exports=function isBuffer(r){return r instanceof Buffer}},584:function(r,e,t){\"use strict\";var n=t(157);var o=t(391);var i=t(490);var a=t(994);function uncurryThis(r){return r.call.bind(r)}var f=typeof BigInt!==\"undefined\";var u=typeof Symbol!==\"undefined\";var s=uncurryThis(Object.prototype.toString);var c=uncurryThis(Number.prototype.valueOf);var y=uncurryThis(String.prototype.valueOf);var p=uncurryThis(Boolean.prototype.valueOf);if(f){var l=uncurryThis(BigInt.prototype.valueOf)}if(u){var g=uncurryThis(Symbol.prototype.valueOf)}function checkBoxedPrimitive(r,e){if(typeof r!==\"object\"){return false}try{e(r);return true}catch(r){return false}}e.isArgumentsObject=n;e.isGeneratorFunction=o;e.isTypedArray=a;function isPromise(r){return typeof Promise!==\"undefined\"&&r instanceof Promise||r!==null&&typeof r===\"object\"&&typeof r.then===\"function\"&&typeof r.catch===\"function\"}e.isPromise=isPromise;function isArrayBufferView(r){if(typeof ArrayBuffer!==\"undefined\"&&ArrayBuffer.isView){return ArrayBuffer.isView(r)}return a(r)||isDataView(r)}e.isArrayBufferView=isArrayBufferView;function isUint8Array(r){return i(r)===\"Uint8Array\"}e.isUint8Array=isUint8Array;function isUint8ClampedArray(r){return i(r)===\"Uint8ClampedArray\"}e.isUint8ClampedArray=isUint8ClampedArray;function isUint16Array(r){return i(r)===\"Uint16Array\"}e.isUint16Array=isUint16Array;function isUint32Array(r){return i(r)===\"Uint32Array\"}e.isUint32Array=isUint32Array;function isInt8Array(r){return i(r)===\"Int8Array\"}e.isInt8Array=isInt8Array;function isInt16Array(r){return i(r)===\"Int16Array\"}e.isInt16Array=isInt16Array;function isInt32Array(r){return i(r)===\"Int32Array\"}e.isInt32Array=isInt32Array;function isFloat32Array(r){return i(r)===\"Float32Array\"}e.isFloat32Array=isFloat32Array;function isFloat64Array(r){return i(r)===\"Float64Array\"}e.isFloat64Array=isFloat64Array;function isBigInt64Array(r){return i(r)===\"BigInt64Array\"}e.isBigInt64Array=isBigInt64Array;function isBigUint64Array(r){return i(r)===\"BigUint64Array\"}e.isBigUint64Array=isBigUint64Array;function isMapToString(r){return s(r)===\"[object Map]\"}isMapToString.working=typeof Map!==\"undefined\"&&isMapToString(new Map);function isMap(r){if(typeof Map===\"undefined\"){return false}return isMapToString.working?isMapToString(r):r instanceof Map}e.isMap=isMap;function isSetToString(r){return s(r)===\"[object Set]\"}isSetToString.working=typeof Set!==\"undefined\"&&isSetToString(new Set);function isSet(r){if(typeof Set===\"undefined\"){return false}return isSetToString.working?isSetToString(r):r instanceof Set}e.isSet=isSet;function isWeakMapToString(r){return s(r)===\"[object WeakMap]\"}isWeakMapToString.working=typeof WeakMap!==\"undefined\"&&isWeakMapToString(new WeakMap);function isWeakMap(r){if(typeof WeakMap===\"undefined\"){return false}return isWeakMapToString.working?isWeakMapToString(r):r instanceof WeakMap}e.isWeakMap=isWeakMap;function isWeakSetToString(r){return s(r)===\"[object WeakSet]\"}isWeakSetToString.working=typeof WeakSet!==\"undefined\"&&isWeakSetToString(new WeakSet);function isWeakSet(r){return isWeakSetToString(r)}e.isWeakSet=isWeakSet;function isArrayBufferToString(r){return s(r)===\"[object ArrayBuffer]\"}isArrayBufferToString.working=typeof ArrayBuffer!==\"undefined\"&&isArrayBufferToString(new ArrayBuffer);function isArrayBuffer(r){if(typeof ArrayBuffer===\"undefined\"){return false}return isArrayBufferToString.working?isArrayBufferToString(r):r instanceof ArrayBuffer}e.isArrayBuffer=isArrayBuffer;function isDataViewToString(r){return s(r)===\"[object DataView]\"}isDataViewToString.working=typeof ArrayBuffer!==\"undefined\"&&typeof DataView!==\"undefined\"&&isDataViewToString(new DataView(new ArrayBuffer(1),0,1));function isDataView(r){if(typeof DataView===\"undefined\"){return false}return isDataViewToString.working?isDataViewToString(r):r instanceof DataView}e.isDataView=isDataView;var v=typeof SharedArrayBuffer!==\"undefined\"?SharedArrayBuffer:undefined;function isSharedArrayBufferToString(r){return s(r)===\"[object SharedArrayBuffer]\"}function isSharedArrayBuffer(r){if(typeof v===\"undefined\"){return false}if(typeof isSharedArrayBufferToString.working===\"undefined\"){isSharedArrayBufferToString.working=isSharedArrayBufferToString(new v)}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(r):r instanceof v}e.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(r){return s(r)===\"[object AsyncFunction]\"}e.isAsyncFunction=isAsyncFunction;function isMapIterator(r){return s(r)===\"[object Map Iterator]\"}e.isMapIterator=isMapIterator;function isSetIterator(r){return s(r)===\"[object Set Iterator]\"}e.isSetIterator=isSetIterator;function isGeneratorObject(r){return s(r)===\"[object Generator]\"}e.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(r){return s(r)===\"[object WebAssembly.Module]\"}e.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(r){return checkBoxedPrimitive(r,c)}e.isNumberObject=isNumberObject;function isStringObject(r){return checkBoxedPrimitive(r,y)}e.isStringObject=isStringObject;function isBooleanObject(r){return checkBoxedPrimitive(r,p)}e.isBooleanObject=isBooleanObject;function isBigIntObject(r){return f&&checkBoxedPrimitive(r,l)}e.isBigIntObject=isBigIntObject;function isSymbolObject(r){return u&&checkBoxedPrimitive(r,g)}e.isSymbolObject=isSymbolObject;function isBoxedPrimitive(r){return isNumberObject(r)||isStringObject(r)||isBooleanObject(r)||isBigIntObject(r)||isSymbolObject(r)}e.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(r){return typeof Uint8Array!==\"undefined\"&&(isArrayBuffer(r)||isSharedArrayBuffer(r))}e.isAnyArrayBuffer=isAnyArrayBuffer;[\"isProxy\",\"isExternal\",\"isModuleNamespaceObject\"].forEach((function(r){Object.defineProperty(e,r,{enumerable:false,value:function(){throw new Error(r+\" is not supported in userland\")}})}))},177:function(r,e,t){var n=Object.getOwnPropertyDescriptors||function getOwnPropertyDescriptors(r){var e=Object.keys(r);var t={};for(var n=0;n<e.length;n++){t[e[n]]=Object.getOwnPropertyDescriptor(r,e[n])}return t};var o=/%[sdj%]/g;e.format=function(r){if(!isString(r)){var e=[];for(var t=0;t<arguments.length;t++){e.push(inspect(arguments[t]))}return e.join(\" \")}var t=1;var n=arguments;var i=n.length;var a=String(r).replace(o,(function(r){if(r===\"%%\")return\"%\";if(t>=i)return r;switch(r){case\"%s\":return String(n[t++]);case\"%d\":return Number(n[t++]);case\"%j\":try{return JSON.stringify(n[t++])}catch(r){return\"[Circular]\"}default:return r}}));for(var f=n[t];t<i;f=n[++t]){if(isNull(f)||!isObject(f)){a+=\" \"+f}else{a+=\" \"+inspect(f)}}return a};e.deprecate=function(r,t){if(typeof process!==\"undefined\"&&process.noDeprecation===true){return r}if(typeof process===\"undefined\"){return function(){return e.deprecate(r,t).apply(this,arguments)}}var n=false;function deprecated(){if(!n){if(process.throwDeprecation){throw new Error(t)}else if(process.traceDeprecation){console.trace(t)}else{console.error(t)}n=true}return r.apply(this,arguments)}return deprecated};var i={};var a=/^$/;if(process.env.NODE_DEBUG){var f=process.env.NODE_DEBUG;f=f.replace(/[|\\\\{}()[\\]^$+?.]/g,\"\\\\$&\").replace(/\\*/g,\".*\").replace(/,/g,\"$|^\").toUpperCase();a=new RegExp(\"^\"+f+\"$\",\"i\")}e.debuglog=function(r){r=r.toUpperCase();if(!i[r]){if(a.test(r)){var t=process.pid;i[r]=function(){var n=e.format.apply(e,arguments);console.error(\"%s %d: %s\",r,t,n)}}else{i[r]=function(){}}}return i[r]};function inspect(r,t){var n={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)n.depth=arguments[2];if(arguments.length>=4)n.colors=arguments[3];if(isBoolean(t)){n.showHidden=t}else if(t){e._extend(n,t)}if(isUndefined(n.showHidden))n.showHidden=false;if(isUndefined(n.depth))n.depth=2;if(isUndefined(n.colors))n.colors=false;if(isUndefined(n.customInspect))n.customInspect=true;if(n.colors)n.stylize=stylizeWithColor;return formatValue(n,r,n.depth)}e.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"};function stylizeWithColor(r,e){var t=inspect.styles[e];if(t){return\"\u001b[\"+inspect.colors[t][0]+\"m\"+r+\"\u001b[\"+inspect.colors[t][1]+\"m\"}else{return r}}function stylizeNoColor(r,e){return r}function arrayToHash(r){var e={};r.forEach((function(r,t){e[r]=true}));return e}function formatValue(r,t,n){if(r.customInspect&&t&&isFunction(t.inspect)&&t.inspect!==e.inspect&&!(t.constructor&&t.constructor.prototype===t)){var o=t.inspect(n,r);if(!isString(o)){o=formatValue(r,o,n)}return o}var i=formatPrimitive(r,t);if(i){return i}var a=Object.keys(t);var f=arrayToHash(a);if(r.showHidden){a=Object.getOwnPropertyNames(t)}if(isError(t)&&(a.indexOf(\"message\")>=0||a.indexOf(\"description\")>=0)){return formatError(t)}if(a.length===0){if(isFunction(t)){var u=t.name?\": \"+t.name:\"\";return r.stylize(\"[Function\"+u+\"]\",\"special\")}if(isRegExp(t)){return r.stylize(RegExp.prototype.toString.call(t),\"regexp\")}if(isDate(t)){return r.stylize(Date.prototype.toString.call(t),\"date\")}if(isError(t)){return formatError(t)}}var s=\"\",c=false,y=[\"{\",\"}\"];if(isArray(t)){c=true;y=[\"[\",\"]\"]}if(isFunction(t)){var p=t.name?\": \"+t.name:\"\";s=\" [Function\"+p+\"]\"}if(isRegExp(t)){s=\" \"+RegExp.prototype.toString.call(t)}if(isDate(t)){s=\" \"+Date.prototype.toUTCString.call(t)}if(isError(t)){s=\" \"+formatError(t)}if(a.length===0&&(!c||t.length==0)){return y[0]+s+y[1]}if(n<0){if(isRegExp(t)){return r.stylize(RegExp.prototype.toString.call(t),\"regexp\")}else{return r.stylize(\"[Object]\",\"special\")}}r.seen.push(t);var l;if(c){l=formatArray(r,t,n,f,a)}else{l=a.map((function(e){return formatProperty(r,t,n,f,e,c)}))}r.seen.pop();return reduceToSingleString(l,s,y)}function formatPrimitive(r,e){if(isUndefined(e))return r.stylize(\"undefined\",\"undefined\");if(isString(e)){var t=\"'\"+JSON.stringify(e).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return r.stylize(t,\"string\")}if(isNumber(e))return r.stylize(\"\"+e,\"number\");if(isBoolean(e))return r.stylize(\"\"+e,\"boolean\");if(isNull(e))return r.stylize(\"null\",\"null\")}function formatError(r){return\"[\"+Error.prototype.toString.call(r)+\"]\"}function formatArray(r,e,t,n,o){var i=[];for(var a=0,f=e.length;a<f;++a){if(hasOwnProperty(e,String(a))){i.push(formatProperty(r,e,t,n,String(a),true))}else{i.push(\"\")}}o.forEach((function(o){if(!o.match(/^\\d+$/)){i.push(formatProperty(r,e,t,n,o,true))}}));return i}function formatProperty(r,e,t,n,o,i){var a,f,u;u=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]};if(u.get){if(u.set){f=r.stylize(\"[Getter/Setter]\",\"special\")}else{f=r.stylize(\"[Getter]\",\"special\")}}else{if(u.set){f=r.stylize(\"[Setter]\",\"special\")}}if(!hasOwnProperty(n,o)){a=\"[\"+o+\"]\"}if(!f){if(r.seen.indexOf(u.value)<0){if(isNull(t)){f=formatValue(r,u.value,null)}else{f=formatValue(r,u.value,t-1)}if(f.indexOf(\"\\n\")>-1){if(i){f=f.split(\"\\n\").map((function(r){return\" \"+r})).join(\"\\n\").substr(2)}else{f=\"\\n\"+f.split(\"\\n\").map((function(r){return\" \"+r})).join(\"\\n\")}}}else{f=r.stylize(\"[Circular]\",\"special\")}}if(isUndefined(a)){if(i&&o.match(/^\\d+$/)){return f}a=JSON.stringify(\"\"+o);if(a.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)){a=a.substr(1,a.length-2);a=r.stylize(a,\"name\")}else{a=a.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\");a=r.stylize(a,\"string\")}}return a+\": \"+f}function reduceToSingleString(r,e,t){var n=0;var o=r.reduce((function(r,e){n++;if(e.indexOf(\"\\n\")>=0)n++;return r+e.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0);if(o>60){return t[0]+(e===\"\"?\"\":e+\"\\n \")+\" \"+r.join(\",\\n \")+\" \"+t[1]}return t[0]+e+\" \"+r.join(\", \")+\" \"+t[1]}e.types=t(584);function isArray(r){return Array.isArray(r)}e.isArray=isArray;function isBoolean(r){return typeof r===\"boolean\"}e.isBoolean=isBoolean;function isNull(r){return r===null}e.isNull=isNull;function isNullOrUndefined(r){return r==null}e.isNullOrUndefined=isNullOrUndefined;function isNumber(r){return typeof r===\"number\"}e.isNumber=isNumber;function isString(r){return typeof r===\"string\"}e.isString=isString;function isSymbol(r){return typeof r===\"symbol\"}e.isSymbol=isSymbol;function isUndefined(r){return r===void 0}e.isUndefined=isUndefined;function isRegExp(r){return isObject(r)&&objectToString(r)===\"[object RegExp]\"}e.isRegExp=isRegExp;e.types.isRegExp=isRegExp;function isObject(r){return typeof r===\"object\"&&r!==null}e.isObject=isObject;function isDate(r){return isObject(r)&&objectToString(r)===\"[object Date]\"}e.isDate=isDate;e.types.isDate=isDate;function isError(r){return isObject(r)&&(objectToString(r)===\"[object Error]\"||r instanceof Error)}e.isError=isError;e.types.isNativeError=isError;function isFunction(r){return typeof r===\"function\"}e.isFunction=isFunction;function isPrimitive(r){return r===null||typeof r===\"boolean\"||typeof r===\"number\"||typeof r===\"string\"||typeof r===\"symbol\"||typeof r===\"undefined\"}e.isPrimitive=isPrimitive;e.isBuffer=t(369);function objectToString(r){return Object.prototype.toString.call(r)}function pad(r){return r<10?\"0\"+r.toString(10):r.toString(10)}var u=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function timestamp(){var r=new Date;var e=[pad(r.getHours()),pad(r.getMinutes()),pad(r.getSeconds())].join(\":\");return[r.getDate(),u[r.getMonth()],e].join(\" \")}e.log=function(){console.log(\"%s - %s\",timestamp(),e.format.apply(e,arguments))};e.inherits=t(782);e._extend=function(r,e){if(!e||!isObject(e))return r;var t=Object.keys(e);var n=t.length;while(n--){r[t[n]]=e[t[n]]}return r};function hasOwnProperty(r,e){return Object.prototype.hasOwnProperty.call(r,e)}var s=typeof Symbol!==\"undefined\"?Symbol(\"util.promisify.custom\"):undefined;e.promisify=function promisify(r){if(typeof r!==\"function\")throw new TypeError('The \"original\" argument must be of type Function');if(s&&r[s]){var e=r[s];if(typeof e!==\"function\"){throw new TypeError('The \"util.promisify.custom\" argument must be of type Function')}Object.defineProperty(e,s,{value:e,enumerable:false,writable:false,configurable:true});return e}function e(){var e,t;var n=new Promise((function(r,n){e=r;t=n}));var o=[];for(var i=0;i<arguments.length;i++){o.push(arguments[i])}o.push((function(r,n){if(r){t(r)}else{e(n)}}));try{r.apply(this,o)}catch(r){t(r)}return n}Object.setPrototypeOf(e,Object.getPrototypeOf(r));if(s)Object.defineProperty(e,s,{value:e,enumerable:false,writable:false,configurable:true});return Object.defineProperties(e,n(r))};e.promisify.custom=s;function callbackifyOnRejected(r,e){if(!r){var t=new Error(\"Promise was rejected with a falsy value\");t.reason=r;r=t}return e(r)}function callbackify(r){if(typeof r!==\"function\"){throw new TypeError('The \"original\" argument must be of type Function')}function callbackified(){var e=[];for(var t=0;t<arguments.length;t++){e.push(arguments[t])}var n=e.pop();if(typeof n!==\"function\"){throw new TypeError(\"The last argument must be of type Function\")}var o=this;var cb=function(){return n.apply(o,arguments)};r.apply(this,e).then((function(r){process.nextTick(cb.bind(null,null,r))}),(function(r){process.nextTick(callbackifyOnRejected.bind(null,r,cb))}))}Object.setPrototypeOf(callbackified,Object.getPrototypeOf(r));Object.defineProperties(callbackified,n(r));return callbackified}e.callbackify=callbackify},490:function(r,e,t){\"use strict\";var n=t(144);var o=t(349);var i=t(256);var a=i(\"Object.prototype.toString\");var f=t(942)();var u=f&&typeof Symbol.toStringTag===\"symbol\";var s=o();var c=i(\"String.prototype.slice\");var y={};var p=t(24);var l=Object.getPrototypeOf;if(u&&p&&l){n(s,(function(r){if(typeof __webpack_require__.g[r]===\"function\"){var e=new __webpack_require__.g[r];if(!(Symbol.toStringTag in e)){throw new EvalError(\"this engine has support for Symbol.toStringTag, but \"+r+\" does not have the property! Please report this.\")}var t=l(e);var n=p(t,Symbol.toStringTag);if(!n){var o=l(t);n=p(o,Symbol.toStringTag)}y[r]=n.get}}))}var g=function tryAllTypedArrays(r){var e=false;n(y,(function(t,n){if(!e){try{var o=t.call(r);if(o===n){e=o}}catch(r){}}}));return e};var v=t(994);r.exports=function whichTypedArray(r){if(!v(r)){return false}if(!u){return c(a(r),8,-1)}return g(r)}},349:function(r,e,t){\"use strict\";var n=t(992);r.exports=function availableTypedArrays(){return n([\"BigInt64Array\",\"BigUint64Array\",\"Float32Array\",\"Float64Array\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\"],(function(r){return typeof __webpack_require__.g[r]===\"function\"}))}},24:function(r,e,t){\"use strict\";var n=t(192);var o=n(\"%Object.getOwnPropertyDescriptor%\",true);if(o){try{o([],\"length\")}catch(r){o=null}}r.exports=o}};var e={};function __nccwpck_require__(t){var n=e[t];if(n!==undefined){return n.exports}var o=e[t]={exports:{}};var i=true;try{r[t](o,o.exports,__nccwpck_require__);i=false}finally{if(i)delete e[t]}return o.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(177);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvdXRpbC91dGlsLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBLFlBQVksT0FBTyxnQkFBZ0IsMEJBQTBCLGlDQUFpQyw0Q0FBNEMsNENBQTRDLFNBQVMsWUFBWSxXQUFXLEtBQUsseUJBQXlCLFdBQVcsNkJBQTZCLFVBQVUsc0NBQXNDLHFCQUFxQixhQUFhLGFBQWEsYUFBYSx1Q0FBdUMsMkNBQTJDLGVBQWUsaURBQWlELFlBQVksVUFBVSxxQkFBcUIsYUFBYSxhQUFhLGFBQWEsc0NBQXNDLHFDQUFxQyw2Q0FBNkMsa0RBQWtELHdDQUF3QyxzQkFBc0IsTUFBTSxJQUFJLElBQUksTUFBTSxRQUFRLEVBQUUsU0FBUyxRQUFRLCtCQUErQix1QkFBdUIsU0FBUyxvQkFBb0IsbUJBQW1CLGNBQWMsMkNBQTJDLEdBQUcsVUFBVSwyQkFBMkIseUJBQXlCLE1BQU0scUJBQXFCLFFBQVEsRUFBRSxLQUFLLG1CQUFtQixpQkFBaUIsYUFBYSxvQkFBb0IsaUJBQWlCLGFBQWEsZ0JBQWdCLGdCQUFnQixhQUFhLHFCQUFxQixpQkFBaUIsYUFBYSx5QkFBeUIsaUJBQWlCLGFBQWEsc0JBQXNCLGlCQUFpQixhQUFhLG9CQUFvQixpQkFBaUIsYUFBYSxtQkFBbUIsaUJBQWlCLHNDQUFzQyxnQ0FBZ0Msa0NBQWtDLG9DQUFvQyxtREFBbUQsZUFBZSxXQUFXLFlBQVksSUFBSSxLQUFLLG9CQUFvQixLQUFLLGdCQUFnQixnQkFBZ0IsdUJBQXVCLGlCQUFpQixhQUFhLHdEQUF3RCxnQ0FBZ0MsZUFBZSwwQkFBMEIsNkJBQTZCLFNBQVMsWUFBWSxXQUFXLE1BQU0sVUFBVSxZQUFZLFdBQVcsTUFBTSxtQkFBbUIsVUFBVSwwQkFBMEIsU0FBUyxtQkFBbUIsV0FBVyxXQUFXLFVBQVUsVUFBVSx3QkFBd0IsU0FBUyxZQUFZLFdBQVcsTUFBTSxRQUFRLGlCQUFpQixNQUFNLFVBQVUsMkJBQTJCLFdBQVcs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bUIsT0FBTyxJQUFJLGdCQUFnQixVQUFVLEtBQUssWUFBWSxHQUFHLFVBQVUsYUFBYSxzQ0FBc0MsVUFBVSxhQUFhLE9BQU8sb0JBQW9CLGFBQWEscUJBQXFCLGFBQWEsYUFBYSwwQ0FBMEMsMExBQTBMLGNBQWMscUJBQU0saUJBQWlCLElBQUksb0JBQW9CLGFBQWEsYUFBYSxrREFBa0QsTUFBTSxJQUFJLGVBQWUsU0FBUyxRQUFRLGNBQWMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3V0aWwvdXRpbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXt2YXIgcj17OTkyOmZ1bmN0aW9uKHIpe3IuZXhwb3J0cz1mdW5jdGlvbihyLHQsbil7aWYoci5maWx0ZXIpcmV0dXJuIHIuZmlsdGVyKHQsbik7aWYodm9pZCAwPT09cnx8bnVsbD09PXIpdGhyb3cgbmV3IFR5cGVFcnJvcjtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3I7dmFyIG89W107Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe2lmKCFlLmNhbGwocixpKSljb250aW51ZTt2YXIgYT1yW2ldO2lmKHQuY2FsbChuLGEsaSxyKSlvLnB1c2goYSl9cmV0dXJuIG99O3ZhciBlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHl9LDI1NjpmdW5jdGlvbihyLGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dCgxOTIpO3ZhciBvPXQoMTM5KTt2YXIgaT1vKG4oXCJTdHJpbmcucHJvdG90eXBlLmluZGV4T2ZcIikpO3IuZXhwb3J0cz1mdW5jdGlvbiBjYWxsQm91bmRJbnRyaW5zaWMocixlKXt2YXIgdD1uKHIsISFlKTtpZih0eXBlb2YgdD09PVwiZnVuY3Rpb25cIiYmaShyLFwiLnByb3RvdHlwZS5cIik+LTEpe3JldHVybiBvKHQpfXJldHVybiB0fX0sMTM5OmZ1bmN0aW9uKHIsZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbj10KDIxMik7dmFyIG89dCgxOTIpO3ZhciBpPW8oXCIlRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5JVwiKTt2YXIgYT1vKFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJVwiKTt2YXIgZj1vKFwiJVJlZmxlY3QuYXBwbHklXCIsdHJ1ZSl8fG4uY2FsbChhLGkpO3ZhciB1PW8oXCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciVcIix0cnVlKTt2YXIgcz1vKFwiJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSVcIix0cnVlKTt2YXIgYz1vKFwiJU1hdGgubWF4JVwiKTtpZihzKXt0cnl7cyh7fSxcImFcIix7dmFsdWU6MX0pfWNhdGNoKHIpe3M9bnVsbH19ci5leHBvcnRzPWZ1bmN0aW9uIGNhbGxCaW5kKHIpe3ZhciBlPWYobixhLGFyZ3VtZW50cyk7aWYodSYmcyl7dmFyIHQ9dShlLFwibGVuZ3RoXCIpO2lmKHQuY29uZmlndXJhYmxlKXtzKGUsXCJsZW5ndGhcIix7dmFsdWU6MStjKDAsci5sZW5ndGgtKGFyZ3VtZW50cy5sZW5ndGgtMSkpfSl9fXJldHVybiBlfTt2YXIgeT1mdW5jdGlvbiBhcHBseUJpbmQoKXtyZXR1cm4gZihuLGksYXJndW1lbnRzKX07aWYocyl7cyhyLmV4cG9ydHMsXCJhcHBseVwiLHt2YWx1ZTp5fSl9ZWxzZXtyLmV4cG9ydHMuYXBwbHk9eX19LDE4MTpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjtyLmV4cG9ydHM9RXZhbEVycm9yfSw1NDU6ZnVuY3Rpb24ocil7XCJ1c2Ugc3RyaWN0XCI7ci5leHBvcnRzPUVycm9yfSwyMjpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjtyLmV4cG9ydHM9UmFuZ2VFcnJvcn0sODAzOmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3IuZXhwb3J0cz1SZWZlcmVuY2VFcnJvcn0sMTgyOmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3IuZXhwb3J0cz1TeW50YXhFcnJvcn0sMjAyOmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3IuZXhwb3J0cz1UeXBlRXJyb3J9LDI4NDpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjtyLmV4cG9ydHM9VVJJRXJyb3J9LDE0NDpmdW5jdGlvbihyKXt2YXIgZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ci5leHBvcnRzPWZ1bmN0aW9uIGZvckVhY2gocixuLG8pe2lmKHQuY2FsbChuKSE9PVwiW29iamVjdCBGdW5jdGlvbl1cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIG11c3QgYmUgYSBmdW5jdGlvblwiKX12YXIgaT1yLmxlbmd0aDtpZihpPT09K2kpe2Zvcih2YXIgYT0wO2E8aTthKyspe24uY2FsbChvLHJbYV0sYSxyKX19ZWxzZXtmb3IodmFyIGYgaW4gcil7aWYoZS5jYWxsKHIsZikpe24uY2FsbChvLHJbZl0sZixyKX19fX19LDEzNjpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjt2YXIgZT1cIkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgXCI7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgbj1NYXRoLm1heDt2YXIgbz1cIltvYmplY3QgRnVuY3Rpb25dXCI7dmFyIGk9ZnVuY3Rpb24gY29uY2F0dHkocixlKXt2YXIgdD1bXTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rPTEpe3Rbbl09cltuXX1mb3IodmFyIG89MDtvPGUubGVuZ3RoO28rPTEpe3RbbytyLmxlbmd0aF09ZVtvXX1yZXR1cm4gdH07dmFyIGE9ZnVuY3Rpb24gc2xpY3kocixlKXt2YXIgdD1bXTtmb3IodmFyIG49ZXx8MCxvPTA7bjxyLmxlbmd0aDtuKz0xLG8rPTEpe3Rbb109cltuXX1yZXR1cm4gdH07dmFyIGpvaW55PWZ1bmN0aW9uKHIsZSl7dmFyIHQ9XCJcIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rPTEpe3QrPXJbbl07aWYobisxPHIubGVuZ3RoKXt0Kz1lfX1yZXR1cm4gdH07ci5leHBvcnRzPWZ1bmN0aW9uIGJpbmQocil7dmFyIGY9dGhpcztpZih0eXBlb2YgZiE9PVwiZnVuY3Rpb25cInx8dC5hcHBseShmKSE9PW8pe3Rocm93IG5ldyBUeXBlRXJyb3IoZStmKX12YXIgdT1hKGFyZ3VtZW50cywxKTt2YXIgczt2YXIgYmluZGVyPWZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIHMpe3ZhciBlPWYuYXBwbHkodGhpcyxpKHUsYXJndW1lbnRzKSk7aWYoT2JqZWN0KGUpPT09ZSl7cmV0dXJuIGV9cmV0dXJuIHRoaXN9cmV0dXJuIGYuYXBwbHkocixpKHUsYXJndW1lbnRzKSl9O3ZhciBjPW4oMCxmLmxlbmd0aC11Lmxlbmd0aCk7dmFyIHk9W107Zm9yKHZhciBwPTA7cDxjO3ArKyl7eVtwXT1cIiRcIitwfXM9RnVuY3Rpb24oXCJiaW5kZXJcIixcInJldHVybiBmdW5jdGlvbiAoXCIram9pbnkoeSxcIixcIikrXCIpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfVwiKShiaW5kZXIpO2lmKGYucHJvdG90eXBlKXt2YXIgbD1mdW5jdGlvbiBFbXB0eSgpe307bC5wcm90b3R5cGU9Zi5wcm90b3R5cGU7cy5wcm90b3R5cGU9bmV3IGw7bC5wcm90b3R5cGU9bnVsbH1yZXR1cm4gc319LDIxMjpmdW5jdGlvbihyLGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dCgxMzYpO3IuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8bn0sMTkyOmZ1bmN0aW9uKHIsZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbjt2YXIgbz10KDU0NSk7dmFyIGk9dCgxODEpO3ZhciBhPXQoMjIpO3ZhciBmPXQoODAzKTt2YXIgdT10KDE4Mik7dmFyIHM9dCgyMDIpO3ZhciBjPXQoMjg0KTt2YXIgeT1GdW5jdGlvbjt2YXIgZ2V0RXZhbGxlZENvbnN0cnVjdG9yPWZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4geSgnXCJ1c2Ugc3RyaWN0XCI7IHJldHVybiAoJytyK1wiKS5jb25zdHJ1Y3RvcjtcIikoKX1jYXRjaChyKXt9fTt2YXIgcD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2lmKHApe3RyeXtwKHt9LFwiXCIpfWNhdGNoKHIpe3A9bnVsbH19dmFyIHRocm93VHlwZUVycm9yPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IHN9O3ZhciBsPXA/ZnVuY3Rpb24oKXt0cnl7YXJndW1lbnRzLmNhbGxlZTtyZXR1cm4gdGhyb3dUeXBlRXJyb3J9Y2F0Y2gocil7dHJ5e3JldHVybiBwKGFyZ3VtZW50cyxcImNhbGxlZVwiKS5nZXR9Y2F0Y2gocil7cmV0dXJuIHRocm93VHlwZUVycm9yfX19KCk6dGhyb3dUeXBlRXJyb3I7dmFyIGc9dCgxMTUpKCk7dmFyIHY9dCgxNCkoKTt2YXIgYj1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fCh2P2Z1bmN0aW9uKHIpe3JldHVybiByLl9fcHJvdG9fX306bnVsbCk7dmFyIGQ9e307dmFyIG09dHlwZW9mIFVpbnQ4QXJyYXk9PT1cInVuZGVmaW5lZFwifHwhYj9uOmIoVWludDhBcnJheSk7dmFyIFM9e19fcHJvdG9fXzpudWxsLFwiJUFnZ3JlZ2F0ZUVycm9yJVwiOnR5cGVvZiBBZ2dyZWdhdGVFcnJvcj09PVwidW5kZWZpbmVkXCI/bjpBZ2dyZWdhdGVFcnJvcixcIiVBcnJheSVcIjpBcnJheSxcIiVBcnJheUJ1ZmZlciVcIjp0eXBlb2YgQXJyYXlCdWZmZXI9PT1cInVuZGVmaW5lZFwiP246QXJyYXlCdWZmZXIsXCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSVcIjpnJiZiP2IoW11bU3ltYm9sLml0ZXJhdG9yXSgpKTpuLFwiJUFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZSVcIjpuLFwiJUFzeW5jRnVuY3Rpb24lXCI6ZCxcIiVBc3luY0dlbmVyYXRvciVcIjpkLFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI6ZCxcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiOmQsXCIlQXRvbWljcyVcIjp0eXBlb2YgQXRvbWljcz09PVwidW5kZWZpbmVkXCI/bjpBdG9taWNzLFwiJUJpZ0ludCVcIjp0eXBlb2YgQmlnSW50PT09XCJ1bmRlZmluZWRcIj9uOkJpZ0ludCxcIiVCaWdJbnQ2NEFycmF5JVwiOnR5cGVvZiBCaWdJbnQ2NEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOkJpZ0ludDY0QXJyYXksXCIlQmlnVWludDY0QXJyYXklXCI6dHlwZW9mIEJpZ1VpbnQ2NEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOkJpZ1VpbnQ2NEFycmF5LFwiJUJvb2xlYW4lXCI6Qm9vbGVhbixcIiVEYXRhVmlldyVcIjp0eXBlb2YgRGF0YVZpZXc9PT1cInVuZGVmaW5lZFwiP246RGF0YVZpZXcsXCIlRGF0ZSVcIjpEYXRlLFwiJWRlY29kZVVSSSVcIjpkZWNvZGVVUkksXCIlZGVjb2RlVVJJQ29tcG9uZW50JVwiOmRlY29kZVVSSUNvbXBvbmVudCxcIiVlbmNvZGVVUkklXCI6ZW5jb2RlVVJJLFwiJWVuY29kZVVSSUNvbXBvbmVudCVcIjplbmNvZGVVUklDb21wb25lbnQsXCIlRXJyb3IlXCI6byxcIiVldmFsJVwiOmV2YWwsXCIlRXZhbEVycm9yJVwiOmksXCIlRmxvYXQzMkFycmF5JVwiOnR5cGVvZiBGbG9hdDMyQXJyYXk9PT1cInVuZGVmaW5lZFwiP246RmxvYXQzMkFycmF5LFwiJUZsb2F0NjRBcnJheSVcIjp0eXBlb2YgRmxvYXQ2NEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOkZsb2F0NjRBcnJheSxcIiVGaW5hbGl6YXRpb25SZWdpc3RyeSVcIjp0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnk9PT1cInVuZGVmaW5lZFwiP246RmluYWxpemF0aW9uUmVnaXN0cnksXCIlRnVuY3Rpb24lXCI6eSxcIiVHZW5lcmF0b3JGdW5jdGlvbiVcIjpkLFwiJUludDhBcnJheSVcIjp0eXBlb2YgSW50OEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOkludDhBcnJheSxcIiVJbnQxNkFycmF5JVwiOnR5cGVvZiBJbnQxNkFycmF5PT09XCJ1bmRlZmluZWRcIj9uOkludDE2QXJyYXksXCIlSW50MzJBcnJheSVcIjp0eXBlb2YgSW50MzJBcnJheT09PVwidW5kZWZpbmVkXCI/bjpJbnQzMkFycmF5LFwiJWlzRmluaXRlJVwiOmlzRmluaXRlLFwiJWlzTmFOJVwiOmlzTmFOLFwiJUl0ZXJhdG9yUHJvdG90eXBlJVwiOmcmJmI/YihiKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpOm4sXCIlSlNPTiVcIjp0eXBlb2YgSlNPTj09PVwib2JqZWN0XCI/SlNPTjpuLFwiJU1hcCVcIjp0eXBlb2YgTWFwPT09XCJ1bmRlZmluZWRcIj9uOk1hcCxcIiVNYXBJdGVyYXRvclByb3RvdHlwZSVcIjp0eXBlb2YgTWFwPT09XCJ1bmRlZmluZWRcInx8IWd8fCFiP246YigobmV3IE1hcClbU3ltYm9sLml0ZXJhdG9yXSgpKSxcIiVNYXRoJVwiOk1hdGgsXCIlTnVtYmVyJVwiOk51bWJlcixcIiVPYmplY3QlXCI6T2JqZWN0LFwiJXBhcnNlRmxvYXQlXCI6cGFyc2VGbG9hdCxcIiVwYXJzZUludCVcIjpwYXJzZUludCxcIiVQcm9taXNlJVwiOnR5cGVvZiBQcm9taXNlPT09XCJ1bmRlZmluZWRcIj9uOlByb21pc2UsXCIlUHJveHklXCI6dHlwZW9mIFByb3h5PT09XCJ1bmRlZmluZWRcIj9uOlByb3h5LFwiJVJhbmdlRXJyb3IlXCI6YSxcIiVSZWZlcmVuY2VFcnJvciVcIjpmLFwiJVJlZmxlY3QlXCI6dHlwZW9mIFJlZmxlY3Q9PT1cInVuZGVmaW5lZFwiP246UmVmbGVjdCxcIiVSZWdFeHAlXCI6UmVnRXhwLFwiJVNldCVcIjp0eXBlb2YgU2V0PT09XCJ1bmRlZmluZWRcIj9uOlNldCxcIiVTZXRJdGVyYXRvclByb3RvdHlwZSVcIjp0eXBlb2YgU2V0PT09XCJ1bmRlZmluZWRcInx8IWd8fCFiP246YigobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKSxcIiVTaGFyZWRBcnJheUJ1ZmZlciVcIjp0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI9PT1cInVuZGVmaW5lZFwiP246U2hhcmVkQXJyYXlCdWZmZXIsXCIlU3RyaW5nJVwiOlN0cmluZyxcIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSVcIjpnJiZiP2IoXCJcIltTeW1ib2wuaXRlcmF0b3JdKCkpOm4sXCIlU3ltYm9sJVwiOmc/U3ltYm9sOm4sXCIlU3ludGF4RXJyb3IlXCI6dSxcIiVUaHJvd1R5cGVFcnJvciVcIjpsLFwiJVR5cGVkQXJyYXklXCI6bSxcIiVUeXBlRXJyb3IlXCI6cyxcIiVVaW50OEFycmF5JVwiOnR5cGVvZiBVaW50OEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOlVpbnQ4QXJyYXksXCIlVWludDhDbGFtcGVkQXJyYXklXCI6dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5PT09XCJ1bmRlZmluZWRcIj9uOlVpbnQ4Q2xhbXBlZEFycmF5LFwiJVVpbnQxNkFycmF5JVwiOnR5cGVvZiBVaW50MTZBcnJheT09PVwidW5kZWZpbmVkXCI/bjpVaW50MTZBcnJheSxcIiVVaW50MzJBcnJheSVcIjp0eXBlb2YgVWludDMyQXJyYXk9PT1cInVuZGVmaW5lZFwiP246VWludDMyQXJyYXksXCIlVVJJRXJyb3IlXCI6YyxcIiVXZWFrTWFwJVwiOnR5cGVvZiBXZWFrTWFwPT09XCJ1bmRlZmluZWRcIj9uOldlYWtNYXAsXCIlV2Vha1JlZiVcIjp0eXBlb2YgV2Vha1JlZj09PVwidW5kZWZpbmVkXCI/bjpXZWFrUmVmLFwiJVdlYWtTZXQlXCI6dHlwZW9mIFdlYWtTZXQ9PT1cInVuZGVmaW5lZFwiP246V2Vha1NldH07aWYoYil7dHJ5e251bGwuZXJyb3J9Y2F0Y2gocil7dmFyIEE9YihiKHIpKTtTW1wiJUVycm9yLnByb3RvdHlwZSVcIl09QX19dmFyIGg9ZnVuY3Rpb24gZG9FdmFsKHIpe3ZhciBlO2lmKHI9PT1cIiVBc3luY0Z1bmN0aW9uJVwiKXtlPWdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uICgpIHt9XCIpfWVsc2UgaWYocj09PVwiJUdlbmVyYXRvckZ1bmN0aW9uJVwiKXtlPWdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImZ1bmN0aW9uKiAoKSB7fVwiKX1lbHNlIGlmKHI9PT1cIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKXtlPWdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uKiAoKSB7fVwiKX1lbHNlIGlmKHI9PT1cIiVBc3luY0dlbmVyYXRvciVcIil7dmFyIHQ9ZG9FdmFsKFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCIpO2lmKHQpe2U9dC5wcm90b3R5cGV9fWVsc2UgaWYocj09PVwiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlXCIpe3ZhciBuPWRvRXZhbChcIiVBc3luY0dlbmVyYXRvciVcIik7aWYobiYmYil7ZT1iKG4ucHJvdG90eXBlKX19U1tyXT1lO3JldHVybiBlfTt2YXIgTz17X19wcm90b19fOm51bGwsXCIlQXJyYXlCdWZmZXJQcm90b3R5cGUlXCI6W1wiQXJyYXlCdWZmZXJcIixcInByb3RvdHlwZVwiXSxcIiVBcnJheVByb3RvdHlwZSVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUFycmF5UHJvdG9fZW50cmllcyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJlbnRyaWVzXCJdLFwiJUFycmF5UHJvdG9fZm9yRWFjaCVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJmb3JFYWNoXCJdLFwiJUFycmF5UHJvdG9fa2V5cyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJrZXlzXCJdLFwiJUFycmF5UHJvdG9fdmFsdWVzJVwiOltcIkFycmF5XCIsXCJwcm90b3R5cGVcIixcInZhbHVlc1wiXSxcIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJVwiOltcIkFzeW5jRnVuY3Rpb25cIixcInByb3RvdHlwZVwiXSxcIiVBc3luY0dlbmVyYXRvciVcIjpbXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlXCI6W1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLFwicHJvdG90eXBlXCIsXCJwcm90b3R5cGVcIl0sXCIlQm9vbGVhblByb3RvdHlwZSVcIjpbXCJCb29sZWFuXCIsXCJwcm90b3R5cGVcIl0sXCIlRGF0YVZpZXdQcm90b3R5cGUlXCI6W1wiRGF0YVZpZXdcIixcInByb3RvdHlwZVwiXSxcIiVEYXRlUHJvdG90eXBlJVwiOltcIkRhdGVcIixcInByb3RvdHlwZVwiXSxcIiVFcnJvclByb3RvdHlwZSVcIjpbXCJFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJUV2YWxFcnJvclByb3RvdHlwZSVcIjpbXCJFdmFsRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlXCI6W1wiRmxvYXQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJVwiOltcIkZsb2F0NjRBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUZ1bmN0aW9uUHJvdG90eXBlJVwiOltcIkZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yUHJvdG90eXBlJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIixcInByb3RvdHlwZVwiXSxcIiVJbnQ4QXJyYXlQcm90b3R5cGUlXCI6W1wiSW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQxNkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MzJBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSlNPTlBhcnNlJVwiOltcIkpTT05cIixcInBhcnNlXCJdLFwiJUpTT05TdHJpbmdpZnklXCI6W1wiSlNPTlwiLFwic3RyaW5naWZ5XCJdLFwiJU1hcFByb3RvdHlwZSVcIjpbXCJNYXBcIixcInByb3RvdHlwZVwiXSxcIiVOdW1iZXJQcm90b3R5cGUlXCI6W1wiTnVtYmVyXCIsXCJwcm90b3R5cGVcIl0sXCIlT2JqZWN0UHJvdG90eXBlJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCJdLFwiJU9ialByb3RvX3RvU3RyaW5nJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ0b1N0cmluZ1wiXSxcIiVPYmpQcm90b192YWx1ZU9mJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ2YWx1ZU9mXCJdLFwiJVByb21pc2VQcm90b3R5cGUlXCI6W1wiUHJvbWlzZVwiLFwicHJvdG90eXBlXCJdLFwiJVByb21pc2VQcm90b190aGVuJVwiOltcIlByb21pc2VcIixcInByb3RvdHlwZVwiLFwidGhlblwiXSxcIiVQcm9taXNlX2FsbCVcIjpbXCJQcm9taXNlXCIsXCJhbGxcIl0sXCIlUHJvbWlzZV9yZWplY3QlXCI6W1wiUHJvbWlzZVwiLFwicmVqZWN0XCJdLFwiJVByb21pc2VfcmVzb2x2ZSVcIjpbXCJQcm9taXNlXCIsXCJyZXNvbHZlXCJdLFwiJVJhbmdlRXJyb3JQcm90b3R5cGUlXCI6W1wiUmFuZ2VFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJVwiOltcIlJlZmVyZW5jZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlUmVnRXhwUHJvdG90eXBlJVwiOltcIlJlZ0V4cFwiLFwicHJvdG90eXBlXCJdLFwiJVNldFByb3RvdHlwZSVcIjpbXCJTZXRcIixcInByb3RvdHlwZVwiXSxcIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjpbXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFwicHJvdG90eXBlXCJdLFwiJVN0cmluZ1Byb3RvdHlwZSVcIjpbXCJTdHJpbmdcIixcInByb3RvdHlwZVwiXSxcIiVTeW1ib2xQcm90b3R5cGUlXCI6W1wiU3ltYm9sXCIsXCJwcm90b3R5cGVcIl0sXCIlU3ludGF4RXJyb3JQcm90b3R5cGUlXCI6W1wiU3ludGF4RXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlZEFycmF5UHJvdG90eXBlJVwiOltcIlR5cGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlRXJyb3JQcm90b3R5cGUlXCI6W1wiVHlwZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlXCI6W1wiVWludDhDbGFtcGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVVaW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50MTZBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJVVpbnQzMkFycmF5UHJvdG90eXBlJVwiOltcIlVpbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVVJJRXJyb3JQcm90b3R5cGUlXCI6W1wiVVJJRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrTWFwUHJvdG90eXBlJVwiOltcIldlYWtNYXBcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrU2V0UHJvdG90eXBlJVwiOltcIldlYWtTZXRcIixcInByb3RvdHlwZVwiXX07dmFyIGo9dCgyMTIpO3ZhciB3PXQoMjcwKTt2YXIgUD1qLmNhbGwoRnVuY3Rpb24uY2FsbCxBcnJheS5wcm90b3R5cGUuY29uY2F0KTt2YXIgQj1qLmNhbGwoRnVuY3Rpb24uYXBwbHksQXJyYXkucHJvdG90eXBlLnNwbGljZSk7dmFyIEU9ai5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTt2YXIgeD1qLmNhbGwoRnVuY3Rpb24uY2FsbCxTdHJpbmcucHJvdG90eXBlLnNsaWNlKTt2YXIgVD1qLmNhbGwoRnVuY3Rpb24uY2FsbCxSZWdFeHAucHJvdG90eXBlLmV4ZWMpO3ZhciBJPS9bXiUuW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JSQpKS9nO3ZhciBrPS9cXFxcKFxcXFwpPy9nO3ZhciBGPWZ1bmN0aW9uIHN0cmluZ1RvUGF0aChyKXt2YXIgZT14KHIsMCwxKTt2YXIgdD14KHIsLTEpO2lmKGU9PT1cIiVcIiYmdCE9PVwiJVwiKXt0aHJvdyBuZXcgdShcImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWBcIil9ZWxzZSBpZih0PT09XCIlXCImJmUhPT1cIiVcIil7dGhyb3cgbmV3IHUoXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIG9wZW5pbmcgYCVgXCIpfXZhciBuPVtdO0UocixJLChmdW5jdGlvbihyLGUsdCxvKXtuW24ubGVuZ3RoXT10P0UobyxrLFwiJDFcIik6ZXx8cn0pKTtyZXR1cm4gbn07dmFyIFU9ZnVuY3Rpb24gZ2V0QmFzZUludHJpbnNpYyhyLGUpe3ZhciB0PXI7dmFyIG47aWYodyhPLHQpKXtuPU9bdF07dD1cIiVcIituWzBdK1wiJVwifWlmKHcoUyx0KSl7dmFyIG89U1t0XTtpZihvPT09ZCl7bz1oKHQpfWlmKHR5cGVvZiBvPT09XCJ1bmRlZmluZWRcIiYmIWUpe3Rocm93IG5ldyBzKFwiaW50cmluc2ljIFwiK3IrXCIgZXhpc3RzLCBidXQgaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIGZpbGUgYW4gaXNzdWUhXCIpfXJldHVybnthbGlhczpuLG5hbWU6dCx2YWx1ZTpvfX10aHJvdyBuZXcgdShcImludHJpbnNpYyBcIityK1wiIGRvZXMgbm90IGV4aXN0IVwiKX07ci5leHBvcnRzPWZ1bmN0aW9uIEdldEludHJpbnNpYyhyLGUpe2lmKHR5cGVvZiByIT09XCJzdHJpbmdcInx8ci5sZW5ndGg9PT0wKXt0aHJvdyBuZXcgcyhcImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpfWlmKGFyZ3VtZW50cy5sZW5ndGg+MSYmdHlwZW9mIGUhPT1cImJvb2xlYW5cIil7dGhyb3cgbmV3IHMoJ1wiYWxsb3dNaXNzaW5nXCIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKX1pZihUKC9eJT9bXiVdKiU/JC8scik9PT1udWxsKXt0aHJvdyBuZXcgdShcImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWVcIil9dmFyIHQ9RihyKTt2YXIgbz10Lmxlbmd0aD4wP3RbMF06XCJcIjt2YXIgaT1VKFwiJVwiK28rXCIlXCIsZSk7dmFyIGE9aS5uYW1lO3ZhciBmPWkudmFsdWU7dmFyIGM9ZmFsc2U7dmFyIHk9aS5hbGlhcztpZih5KXtvPXlbMF07Qih0LFAoWzAsMV0seSkpfWZvcih2YXIgbD0xLGc9dHJ1ZTtsPHQubGVuZ3RoO2wrPTEpe3ZhciB2PXRbbF07dmFyIGI9eCh2LDAsMSk7dmFyIGQ9eCh2LC0xKTtpZigoYj09PSdcIid8fGI9PT1cIidcInx8Yj09PVwiYFwifHwoZD09PSdcIid8fGQ9PT1cIidcInx8ZD09PVwiYFwiKSkmJmIhPT1kKXt0aHJvdyBuZXcgdShcInByb3BlcnR5IG5hbWVzIHdpdGggcXVvdGVzIG11c3QgaGF2ZSBtYXRjaGluZyBxdW90ZXNcIil9aWYodj09PVwiY29uc3RydWN0b3JcInx8IWcpe2M9dHJ1ZX1vKz1cIi5cIit2O2E9XCIlXCIrbytcIiVcIjtpZih3KFMsYSkpe2Y9U1thXX1lbHNlIGlmKGYhPW51bGwpe2lmKCEodiBpbiBmKSl7aWYoIWUpe3Rocm93IG5ldyBzKFwiYmFzZSBpbnRyaW5zaWMgZm9yIFwiK3IrXCIgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuXCIpfXJldHVybiB2b2lkIG59aWYocCYmbCsxPj10Lmxlbmd0aCl7dmFyIG09cChmLHYpO2c9ISFtO2lmKGcmJlwiZ2V0XCJpbiBtJiYhKFwib3JpZ2luYWxWYWx1ZVwiaW4gbS5nZXQpKXtmPW0uZ2V0fWVsc2V7Zj1mW3ZdfX1lbHNle2c9dyhmLHYpO2Y9Zlt2XX1pZihnJiYhYyl7U1thXT1mfX19cmV0dXJuIGZ9fSwxNDpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17X19wcm90b19fOm51bGwsZm9vOnt9fTt2YXIgdD1PYmplY3Q7ci5leHBvcnRzPWZ1bmN0aW9uIGhhc1Byb3RvKCl7cmV0dXJue19fcHJvdG9fXzplfS5mb289PT1lLmZvbyYmIShlIGluc3RhbmNlb2YgdCl9fSw5NDI6ZnVuY3Rpb24ocixlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPXR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiJiZTeW1ib2w7dmFyIG89dCg3NzMpO3IuZXhwb3J0cz1mdW5jdGlvbiBoYXNOYXRpdmVTeW1ib2xzKCl7aWYodHlwZW9mIG4hPT1cImZ1bmN0aW9uXCIpe3JldHVybiBmYWxzZX1pZih0eXBlb2YgU3ltYm9sIT09XCJmdW5jdGlvblwiKXtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIG4oXCJmb29cIikhPT1cInN5bWJvbFwiKXtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIFN5bWJvbChcImJhclwiKSE9PVwic3ltYm9sXCIpe3JldHVybiBmYWxzZX1yZXR1cm4gbygpfX0sNzczOmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3IuZXhwb3J0cz1mdW5jdGlvbiBoYXNTeW1ib2xzKCl7aWYodHlwZW9mIFN5bWJvbCE9PVwiZnVuY3Rpb25cInx8dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMhPT1cImZ1bmN0aW9uXCIpe3JldHVybiBmYWxzZX1pZih0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT09XCJzeW1ib2xcIil7cmV0dXJuIHRydWV9dmFyIHI9e307dmFyIGU9U3ltYm9sKFwidGVzdFwiKTt2YXIgdD1PYmplY3QoZSk7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtyZXR1cm4gZmFsc2V9aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIT09XCJbb2JqZWN0IFN5bWJvbF1cIil7cmV0dXJuIGZhbHNlfWlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSE9PVwiW29iamVjdCBTeW1ib2xdXCIpe3JldHVybiBmYWxzZX12YXIgbj00MjtyW2VdPW47Zm9yKGUgaW4gcil7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3Qua2V5cz09PVwiZnVuY3Rpb25cIiYmT2JqZWN0LmtleXMocikubGVuZ3RoIT09MCl7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz09PVwiZnVuY3Rpb25cIiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocikubGVuZ3RoIT09MCl7cmV0dXJuIGZhbHNlfXZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocik7aWYoby5sZW5ndGghPT0xfHxvWzBdIT09ZSl7cmV0dXJuIGZhbHNlfWlmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocixlKSl7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPT09XCJmdW5jdGlvblwiKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSk7aWYoaS52YWx1ZSE9PW58fGkuZW51bWVyYWJsZSE9PXRydWUpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9fSwxMTU6ZnVuY3Rpb24ocixlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPXR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiJiZTeW1ib2w7dmFyIG89dCg4MzIpO3IuZXhwb3J0cz1mdW5jdGlvbiBoYXNOYXRpdmVTeW1ib2xzKCl7aWYodHlwZW9mIG4hPT1cImZ1bmN0aW9uXCIpe3JldHVybiBmYWxzZX1pZih0eXBlb2YgU3ltYm9sIT09XCJmdW5jdGlvblwiKXtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIG4oXCJmb29cIikhPT1cInN5bWJvbFwiKXtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIFN5bWJvbChcImJhclwiKSE9PVwic3ltYm9sXCIpe3JldHVybiBmYWxzZX1yZXR1cm4gbygpfX0sODMyOmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3IuZXhwb3J0cz1mdW5jdGlvbiBoYXNTeW1ib2xzKCl7aWYodHlwZW9mIFN5bWJvbCE9PVwiZnVuY3Rpb25cInx8dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMhPT1cImZ1bmN0aW9uXCIpe3JldHVybiBmYWxzZX1pZih0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT09XCJzeW1ib2xcIil7cmV0dXJuIHRydWV9dmFyIHI9e307dmFyIGU9U3ltYm9sKFwidGVzdFwiKTt2YXIgdD1PYmplY3QoZSk7aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtyZXR1cm4gZmFsc2V9aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIT09XCJbb2JqZWN0IFN5bWJvbF1cIil7cmV0dXJuIGZhbHNlfWlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSE9PVwiW29iamVjdCBTeW1ib2xdXCIpe3JldHVybiBmYWxzZX12YXIgbj00MjtyW2VdPW47Zm9yKGUgaW4gcil7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3Qua2V5cz09PVwiZnVuY3Rpb25cIiYmT2JqZWN0LmtleXMocikubGVuZ3RoIT09MCl7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz09PVwiZnVuY3Rpb25cIiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocikubGVuZ3RoIT09MCl7cmV0dXJuIGZhbHNlfXZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocik7aWYoby5sZW5ndGghPT0xfHxvWzBdIT09ZSl7cmV0dXJuIGZhbHNlfWlmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocixlKSl7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPT09XCJmdW5jdGlvblwiKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSk7aWYoaS52YWx1ZSE9PW58fGkuZW51bWVyYWJsZSE9PXRydWUpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9fSwyNzA6ZnVuY3Rpb24ocixlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO3ZhciBvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGk9dCgyMTIpO3IuZXhwb3J0cz1pLmNhbGwobixvKX0sNzgyOmZ1bmN0aW9uKHIpe2lmKHR5cGVvZiBPYmplY3QuY3JlYXRlPT09XCJmdW5jdGlvblwiKXtyLmV4cG9ydHM9ZnVuY3Rpb24gaW5oZXJpdHMocixlKXtpZihlKXtyLnN1cGVyXz1lO3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpyLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX19KX19fWVsc2V7ci5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKHIsZSl7aWYoZSl7ci5zdXBlcl89ZTt2YXIgVGVtcEN0b3I9ZnVuY3Rpb24oKXt9O1RlbXBDdG9yLnByb3RvdHlwZT1lLnByb3RvdHlwZTtyLnByb3RvdHlwZT1uZXcgVGVtcEN0b3I7ci5wcm90b3R5cGUuY29uc3RydWN0b3I9cn19fX0sMTU3OmZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO3ZhciBlPXR5cGVvZiBTeW1ib2w9PT1cImZ1bmN0aW9uXCImJnR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc9PT1cInN5bWJvbFwiO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIG49ZnVuY3Rpb24gaXNBcmd1bWVudHMocil7aWYoZSYmciYmdHlwZW9mIHI9PT1cIm9iamVjdFwiJiZTeW1ib2wudG9TdHJpbmdUYWcgaW4gcil7cmV0dXJuIGZhbHNlfXJldHVybiB0LmNhbGwocik9PT1cIltvYmplY3QgQXJndW1lbnRzXVwifTt2YXIgbz1mdW5jdGlvbiBpc0FyZ3VtZW50cyhyKXtpZihuKHIpKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gciE9PW51bGwmJnR5cGVvZiByPT09XCJvYmplY3RcIiYmdHlwZW9mIHIubGVuZ3RoPT09XCJudW1iZXJcIiYmci5sZW5ndGg+PTAmJnQuY2FsbChyKSE9PVwiW29iamVjdCBBcnJheV1cIiYmdC5jYWxsKHIuY2FsbGVlKT09PVwiW29iamVjdCBGdW5jdGlvbl1cIn07dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gbihhcmd1bWVudHMpfSgpO24uaXNMZWdhY3lBcmd1bWVudHM9bztyLmV4cG9ydHM9aT9uOm99LDM5MTpmdW5jdGlvbihyKXtcInVzZSBzdHJpY3RcIjt2YXIgZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciB0PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgbj0vXlxccyooPzpmdW5jdGlvbik/XFwqLzt2YXIgbz10eXBlb2YgU3ltYm9sPT09XCJmdW5jdGlvblwiJiZ0eXBlb2YgU3ltYm9sLnRvU3RyaW5nVGFnPT09XCJzeW1ib2xcIjt2YXIgaT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7dmFyIGdldEdlbmVyYXRvckZ1bmM9ZnVuY3Rpb24oKXtpZighbyl7cmV0dXJuIGZhbHNlfXRyeXtyZXR1cm4gRnVuY3Rpb24oXCJyZXR1cm4gZnVuY3Rpb24qKCkge31cIikoKX1jYXRjaChyKXt9fTt2YXIgYT1nZXRHZW5lcmF0b3JGdW5jKCk7dmFyIGY9YT9pKGEpOnt9O3IuZXhwb3J0cz1mdW5jdGlvbiBpc0dlbmVyYXRvckZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyZXR1cm4gZmFsc2V9aWYobi50ZXN0KHQuY2FsbChyKSkpe3JldHVybiB0cnVlfWlmKCFvKXt2YXIgYT1lLmNhbGwocik7cmV0dXJuIGE9PT1cIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dXCJ9cmV0dXJuIGkocik9PT1mfX0sOTk0OmZ1bmN0aW9uKHIsZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbj10KDE0NCk7dmFyIG89dCgzNDkpO3ZhciBpPXQoMjU2KTt2YXIgYT1pKFwiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1wiKTt2YXIgZj10KDk0MikoKTt2YXIgdT1mJiZ0eXBlb2YgU3ltYm9sLnRvU3RyaW5nVGFnPT09XCJzeW1ib2xcIjt2YXIgcz1vKCk7dmFyIGM9aShcIkFycmF5LnByb3RvdHlwZS5pbmRleE9mXCIsdHJ1ZSl8fGZ1bmN0aW9uIGluZGV4T2YocixlKXtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoO3QrPTEpe2lmKHJbdF09PT1lKXtyZXR1cm4gdH19cmV0dXJuLTF9O3ZhciB5PWkoXCJTdHJpbmcucHJvdG90eXBlLnNsaWNlXCIpO3ZhciBwPXt9O3ZhciBsPXQoMjQpO3ZhciBnPU9iamVjdC5nZXRQcm90b3R5cGVPZjtpZih1JiZsJiZnKXtuKHMsKGZ1bmN0aW9uKHIpe3ZhciBlPW5ldyBnbG9iYWxbcl07aWYoIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gZSkpe3Rocm93IG5ldyBFdmFsRXJyb3IoXCJ0aGlzIGVuZ2luZSBoYXMgc3VwcG9ydCBmb3IgU3ltYm9sLnRvU3RyaW5nVGFnLCBidXQgXCIrcitcIiBkb2VzIG5vdCBoYXZlIHRoZSBwcm9wZXJ0eSEgUGxlYXNlIHJlcG9ydCB0aGlzLlwiKX12YXIgdD1nKGUpO3ZhciBuPWwodCxTeW1ib2wudG9TdHJpbmdUYWcpO2lmKCFuKXt2YXIgbz1nKHQpO249bChvLFN5bWJvbC50b1N0cmluZ1RhZyl9cFtyXT1uLmdldH0pKX12YXIgdj1mdW5jdGlvbiB0cnlBbGxUeXBlZEFycmF5cyhyKXt2YXIgZT1mYWxzZTtuKHAsKGZ1bmN0aW9uKHQsbil7aWYoIWUpe3RyeXtlPXQuY2FsbChyKT09PW59Y2F0Y2gocil7fX19KSk7cmV0dXJuIGV9O3IuZXhwb3J0cz1mdW5jdGlvbiBpc1R5cGVkQXJyYXkocil7aWYoIXJ8fHR5cGVvZiByIT09XCJvYmplY3RcIil7cmV0dXJuIGZhbHNlfWlmKCF1KXt2YXIgZT15KGEociksOCwtMSk7cmV0dXJuIGMocyxlKT4tMX1pZighbCl7cmV0dXJuIGZhbHNlfXJldHVybiB2KHIpfX0sMzY5OmZ1bmN0aW9uKHIpe3IuZXhwb3J0cz1mdW5jdGlvbiBpc0J1ZmZlcihyKXtyZXR1cm4gciBpbnN0YW5jZW9mIEJ1ZmZlcn19LDU4NDpmdW5jdGlvbihyLGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dCgxNTcpO3ZhciBvPXQoMzkxKTt2YXIgaT10KDQ5MCk7dmFyIGE9dCg5OTQpO2Z1bmN0aW9uIHVuY3VycnlUaGlzKHIpe3JldHVybiByLmNhbGwuYmluZChyKX12YXIgZj10eXBlb2YgQmlnSW50IT09XCJ1bmRlZmluZWRcIjt2YXIgdT10eXBlb2YgU3ltYm9sIT09XCJ1bmRlZmluZWRcIjt2YXIgcz11bmN1cnJ5VGhpcyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKTt2YXIgYz11bmN1cnJ5VGhpcyhOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YpO3ZhciB5PXVuY3VycnlUaGlzKFN0cmluZy5wcm90b3R5cGUudmFsdWVPZik7dmFyIHA9dW5jdXJyeVRoaXMoQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZik7aWYoZil7dmFyIGw9dW5jdXJyeVRoaXMoQmlnSW50LnByb3RvdHlwZS52YWx1ZU9mKX1pZih1KXt2YXIgZz11bmN1cnJ5VGhpcyhTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YpfWZ1bmN0aW9uIGNoZWNrQm94ZWRQcmltaXRpdmUocixlKXtpZih0eXBlb2YgciE9PVwib2JqZWN0XCIpe3JldHVybiBmYWxzZX10cnl7ZShyKTtyZXR1cm4gdHJ1ZX1jYXRjaChyKXtyZXR1cm4gZmFsc2V9fWUuaXNBcmd1bWVudHNPYmplY3Q9bjtlLmlzR2VuZXJhdG9yRnVuY3Rpb249bztlLmlzVHlwZWRBcnJheT1hO2Z1bmN0aW9uIGlzUHJvbWlzZShyKXtyZXR1cm4gdHlwZW9mIFByb21pc2UhPT1cInVuZGVmaW5lZFwiJiZyIGluc3RhbmNlb2YgUHJvbWlzZXx8ciE9PW51bGwmJnR5cGVvZiByPT09XCJvYmplY3RcIiYmdHlwZW9mIHIudGhlbj09PVwiZnVuY3Rpb25cIiYmdHlwZW9mIHIuY2F0Y2g9PT1cImZ1bmN0aW9uXCJ9ZS5pc1Byb21pc2U9aXNQcm9taXNlO2Z1bmN0aW9uIGlzQXJyYXlCdWZmZXJWaWV3KHIpe2lmKHR5cGVvZiBBcnJheUJ1ZmZlciE9PVwidW5kZWZpbmVkXCImJkFycmF5QnVmZmVyLmlzVmlldyl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhyKX1yZXR1cm4gYShyKXx8aXNEYXRhVmlldyhyKX1lLmlzQXJyYXlCdWZmZXJWaWV3PWlzQXJyYXlCdWZmZXJWaWV3O2Z1bmN0aW9uIGlzVWludDhBcnJheShyKXtyZXR1cm4gaShyKT09PVwiVWludDhBcnJheVwifWUuaXNVaW50OEFycmF5PWlzVWludDhBcnJheTtmdW5jdGlvbiBpc1VpbnQ4Q2xhbXBlZEFycmF5KHIpe3JldHVybiBpKHIpPT09XCJVaW50OENsYW1wZWRBcnJheVwifWUuaXNVaW50OENsYW1wZWRBcnJheT1pc1VpbnQ4Q2xhbXBlZEFycmF5O2Z1bmN0aW9uIGlzVWludDE2QXJyYXkocil7cmV0dXJuIGkocik9PT1cIlVpbnQxNkFycmF5XCJ9ZS5pc1VpbnQxNkFycmF5PWlzVWludDE2QXJyYXk7ZnVuY3Rpb24gaXNVaW50MzJBcnJheShyKXtyZXR1cm4gaShyKT09PVwiVWludDMyQXJyYXlcIn1lLmlzVWludDMyQXJyYXk9aXNVaW50MzJBcnJheTtmdW5jdGlvbiBpc0ludDhBcnJheShyKXtyZXR1cm4gaShyKT09PVwiSW50OEFycmF5XCJ9ZS5pc0ludDhBcnJheT1pc0ludDhBcnJheTtmdW5jdGlvbiBpc0ludDE2QXJyYXkocil7cmV0dXJuIGkocik9PT1cIkludDE2QXJyYXlcIn1lLmlzSW50MTZBcnJheT1pc0ludDE2QXJyYXk7ZnVuY3Rpb24gaXNJbnQzMkFycmF5KHIpe3JldHVybiBpKHIpPT09XCJJbnQzMkFycmF5XCJ9ZS5pc0ludDMyQXJyYXk9aXNJbnQzMkFycmF5O2Z1bmN0aW9uIGlzRmxvYXQzMkFycmF5KHIpe3JldHVybiBpKHIpPT09XCJGbG9hdDMyQXJyYXlcIn1lLmlzRmxvYXQzMkFycmF5PWlzRmxvYXQzMkFycmF5O2Z1bmN0aW9uIGlzRmxvYXQ2NEFycmF5KHIpe3JldHVybiBpKHIpPT09XCJGbG9hdDY0QXJyYXlcIn1lLmlzRmxvYXQ2NEFycmF5PWlzRmxvYXQ2NEFycmF5O2Z1bmN0aW9uIGlzQmlnSW50NjRBcnJheShyKXtyZXR1cm4gaShyKT09PVwiQmlnSW50NjRBcnJheVwifWUuaXNCaWdJbnQ2NEFycmF5PWlzQmlnSW50NjRBcnJheTtmdW5jdGlvbiBpc0JpZ1VpbnQ2NEFycmF5KHIpe3JldHVybiBpKHIpPT09XCJCaWdVaW50NjRBcnJheVwifWUuaXNCaWdVaW50NjRBcnJheT1pc0JpZ1VpbnQ2NEFycmF5O2Z1bmN0aW9uIGlzTWFwVG9TdHJpbmcocil7cmV0dXJuIHMocik9PT1cIltvYmplY3QgTWFwXVwifWlzTWFwVG9TdHJpbmcud29ya2luZz10eXBlb2YgTWFwIT09XCJ1bmRlZmluZWRcIiYmaXNNYXBUb1N0cmluZyhuZXcgTWFwKTtmdW5jdGlvbiBpc01hcChyKXtpZih0eXBlb2YgTWFwPT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIGZhbHNlfXJldHVybiBpc01hcFRvU3RyaW5nLndvcmtpbmc/aXNNYXBUb1N0cmluZyhyKTpyIGluc3RhbmNlb2YgTWFwfWUuaXNNYXA9aXNNYXA7ZnVuY3Rpb24gaXNTZXRUb1N0cmluZyhyKXtyZXR1cm4gcyhyKT09PVwiW29iamVjdCBTZXRdXCJ9aXNTZXRUb1N0cmluZy53b3JraW5nPXR5cGVvZiBTZXQhPT1cInVuZGVmaW5lZFwiJiZpc1NldFRvU3RyaW5nKG5ldyBTZXQpO2Z1bmN0aW9uIGlzU2V0KHIpe2lmKHR5cGVvZiBTZXQ9PT1cInVuZGVmaW5lZFwiKXtyZXR1cm4gZmFsc2V9cmV0dXJuIGlzU2V0VG9TdHJpbmcud29ya2luZz9pc1NldFRvU3RyaW5nKHIpOnIgaW5zdGFuY2VvZiBTZXR9ZS5pc1NldD1pc1NldDtmdW5jdGlvbiBpc1dlYWtNYXBUb1N0cmluZyhyKXtyZXR1cm4gcyhyKT09PVwiW29iamVjdCBXZWFrTWFwXVwifWlzV2Vha01hcFRvU3RyaW5nLndvcmtpbmc9dHlwZW9mIFdlYWtNYXAhPT1cInVuZGVmaW5lZFwiJiZpc1dlYWtNYXBUb1N0cmluZyhuZXcgV2Vha01hcCk7ZnVuY3Rpb24gaXNXZWFrTWFwKHIpe2lmKHR5cGVvZiBXZWFrTWFwPT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIGZhbHNlfXJldHVybiBpc1dlYWtNYXBUb1N0cmluZy53b3JraW5nP2lzV2Vha01hcFRvU3RyaW5nKHIpOnIgaW5zdGFuY2VvZiBXZWFrTWFwfWUuaXNXZWFrTWFwPWlzV2Vha01hcDtmdW5jdGlvbiBpc1dlYWtTZXRUb1N0cmluZyhyKXtyZXR1cm4gcyhyKT09PVwiW29iamVjdCBXZWFrU2V0XVwifWlzV2Vha1NldFRvU3RyaW5nLndvcmtpbmc9dHlwZW9mIFdlYWtTZXQhPT1cInVuZGVmaW5lZFwiJiZpc1dlYWtTZXRUb1N0cmluZyhuZXcgV2Vha1NldCk7ZnVuY3Rpb24gaXNXZWFrU2V0KHIpe3JldHVybiBpc1dlYWtTZXRUb1N0cmluZyhyKX1lLmlzV2Vha1NldD1pc1dlYWtTZXQ7ZnVuY3Rpb24gaXNBcnJheUJ1ZmZlclRvU3RyaW5nKHIpe3JldHVybiBzKHIpPT09XCJbb2JqZWN0IEFycmF5QnVmZmVyXVwifWlzQXJyYXlCdWZmZXJUb1N0cmluZy53b3JraW5nPXR5cGVvZiBBcnJheUJ1ZmZlciE9PVwidW5kZWZpbmVkXCImJmlzQXJyYXlCdWZmZXJUb1N0cmluZyhuZXcgQXJyYXlCdWZmZXIpO2Z1bmN0aW9uIGlzQXJyYXlCdWZmZXIocil7aWYodHlwZW9mIEFycmF5QnVmZmVyPT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIGZhbHNlfXJldHVybiBpc0FycmF5QnVmZmVyVG9TdHJpbmcud29ya2luZz9pc0FycmF5QnVmZmVyVG9TdHJpbmcocik6ciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfWUuaXNBcnJheUJ1ZmZlcj1pc0FycmF5QnVmZmVyO2Z1bmN0aW9uIGlzRGF0YVZpZXdUb1N0cmluZyhyKXtyZXR1cm4gcyhyKT09PVwiW29iamVjdCBEYXRhVmlld11cIn1pc0RhdGFWaWV3VG9TdHJpbmcud29ya2luZz10eXBlb2YgQXJyYXlCdWZmZXIhPT1cInVuZGVmaW5lZFwiJiZ0eXBlb2YgRGF0YVZpZXchPT1cInVuZGVmaW5lZFwiJiZpc0RhdGFWaWV3VG9TdHJpbmcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSwwLDEpKTtmdW5jdGlvbiBpc0RhdGFWaWV3KHIpe2lmKHR5cGVvZiBEYXRhVmlldz09PVwidW5kZWZpbmVkXCIpe3JldHVybiBmYWxzZX1yZXR1cm4gaXNEYXRhVmlld1RvU3RyaW5nLndvcmtpbmc/aXNEYXRhVmlld1RvU3RyaW5nKHIpOnIgaW5zdGFuY2VvZiBEYXRhVmlld31lLmlzRGF0YVZpZXc9aXNEYXRhVmlldzt2YXIgdj10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXIhPT1cInVuZGVmaW5lZFwiP1NoYXJlZEFycmF5QnVmZmVyOnVuZGVmaW5lZDtmdW5jdGlvbiBpc1NoYXJlZEFycmF5QnVmZmVyVG9TdHJpbmcocil7cmV0dXJuIHMocik9PT1cIltvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdXCJ9ZnVuY3Rpb24gaXNTaGFyZWRBcnJheUJ1ZmZlcihyKXtpZih0eXBlb2Ygdj09PVwidW5kZWZpbmVkXCIpe3JldHVybiBmYWxzZX1pZih0eXBlb2YgaXNTaGFyZWRBcnJheUJ1ZmZlclRvU3RyaW5nLndvcmtpbmc9PT1cInVuZGVmaW5lZFwiKXtpc1NoYXJlZEFycmF5QnVmZmVyVG9TdHJpbmcud29ya2luZz1pc1NoYXJlZEFycmF5QnVmZmVyVG9TdHJpbmcobmV3IHYpfXJldHVybiBpc1NoYXJlZEFycmF5QnVmZmVyVG9TdHJpbmcud29ya2luZz9pc1NoYXJlZEFycmF5QnVmZmVyVG9TdHJpbmcocik6ciBpbnN0YW5jZW9mIHZ9ZS5pc1NoYXJlZEFycmF5QnVmZmVyPWlzU2hhcmVkQXJyYXlCdWZmZXI7ZnVuY3Rpb24gaXNBc3luY0Z1bmN0aW9uKHIpe3JldHVybiBzKHIpPT09XCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dXCJ9ZS5pc0FzeW5jRnVuY3Rpb249aXNBc3luY0Z1bmN0aW9uO2Z1bmN0aW9uIGlzTWFwSXRlcmF0b3Iocil7cmV0dXJuIHMocik9PT1cIltvYmplY3QgTWFwIEl0ZXJhdG9yXVwifWUuaXNNYXBJdGVyYXRvcj1pc01hcEl0ZXJhdG9yO2Z1bmN0aW9uIGlzU2V0SXRlcmF0b3Iocil7cmV0dXJuIHMocik9PT1cIltvYmplY3QgU2V0IEl0ZXJhdG9yXVwifWUuaXNTZXRJdGVyYXRvcj1pc1NldEl0ZXJhdG9yO2Z1bmN0aW9uIGlzR2VuZXJhdG9yT2JqZWN0KHIpe3JldHVybiBzKHIpPT09XCJbb2JqZWN0IEdlbmVyYXRvcl1cIn1lLmlzR2VuZXJhdG9yT2JqZWN0PWlzR2VuZXJhdG9yT2JqZWN0O2Z1bmN0aW9uIGlzV2ViQXNzZW1ibHlDb21waWxlZE1vZHVsZShyKXtyZXR1cm4gcyhyKT09PVwiW29iamVjdCBXZWJBc3NlbWJseS5Nb2R1bGVdXCJ9ZS5pc1dlYkFzc2VtYmx5Q29tcGlsZWRNb2R1bGU9aXNXZWJBc3NlbWJseUNvbXBpbGVkTW9kdWxlO2Z1bmN0aW9uIGlzTnVtYmVyT2JqZWN0KHIpe3JldHVybiBjaGVja0JveGVkUHJpbWl0aXZlKHIsYyl9ZS5pc051bWJlck9iamVjdD1pc051bWJlck9iamVjdDtmdW5jdGlvbiBpc1N0cmluZ09iamVjdChyKXtyZXR1cm4gY2hlY2tCb3hlZFByaW1pdGl2ZShyLHkpfWUuaXNTdHJpbmdPYmplY3Q9aXNTdHJpbmdPYmplY3Q7ZnVuY3Rpb24gaXNCb29sZWFuT2JqZWN0KHIpe3JldHVybiBjaGVja0JveGVkUHJpbWl0aXZlKHIscCl9ZS5pc0Jvb2xlYW5PYmplY3Q9aXNCb29sZWFuT2JqZWN0O2Z1bmN0aW9uIGlzQmlnSW50T2JqZWN0KHIpe3JldHVybiBmJiZjaGVja0JveGVkUHJpbWl0aXZlKHIsbCl9ZS5pc0JpZ0ludE9iamVjdD1pc0JpZ0ludE9iamVjdDtmdW5jdGlvbiBpc1N5bWJvbE9iamVjdChyKXtyZXR1cm4gdSYmY2hlY2tCb3hlZFByaW1pdGl2ZShyLGcpfWUuaXNTeW1ib2xPYmplY3Q9aXNTeW1ib2xPYmplY3Q7ZnVuY3Rpb24gaXNCb3hlZFByaW1pdGl2ZShyKXtyZXR1cm4gaXNOdW1iZXJPYmplY3Qocil8fGlzU3RyaW5nT2JqZWN0KHIpfHxpc0Jvb2xlYW5PYmplY3Qocil8fGlzQmlnSW50T2JqZWN0KHIpfHxpc1N5bWJvbE9iamVjdChyKX1lLmlzQm94ZWRQcmltaXRpdmU9aXNCb3hlZFByaW1pdGl2ZTtmdW5jdGlvbiBpc0FueUFycmF5QnVmZmVyKHIpe3JldHVybiB0eXBlb2YgVWludDhBcnJheSE9PVwidW5kZWZpbmVkXCImJihpc0FycmF5QnVmZmVyKHIpfHxpc1NoYXJlZEFycmF5QnVmZmVyKHIpKX1lLmlzQW55QXJyYXlCdWZmZXI9aXNBbnlBcnJheUJ1ZmZlcjtbXCJpc1Byb3h5XCIsXCJpc0V4dGVybmFsXCIsXCJpc01vZHVsZU5hbWVzcGFjZU9iamVjdFwiXS5mb3JFYWNoKChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOmZhbHNlLHZhbHVlOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKHIrXCIgaXMgbm90IHN1cHBvcnRlZCBpbiB1c2VybGFuZFwiKX19KX0pKX0sMTc3OmZ1bmN0aW9uKHIsZSx0KXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yc3x8ZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKXt2YXIgZT1PYmplY3Qua2V5cyhyKTt2YXIgdD17fTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dFtlW25dXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZVtuXSl9cmV0dXJuIHR9O3ZhciBvPS8lW3NkaiVdL2c7ZS5mb3JtYXQ9ZnVuY3Rpb24ocil7aWYoIWlzU3RyaW5nKHIpKXt2YXIgZT1bXTtmb3IodmFyIHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXtlLnB1c2goaW5zcGVjdChhcmd1bWVudHNbdF0pKX1yZXR1cm4gZS5qb2luKFwiIFwiKX12YXIgdD0xO3ZhciBuPWFyZ3VtZW50czt2YXIgaT1uLmxlbmd0aDt2YXIgYT1TdHJpbmcocikucmVwbGFjZShvLChmdW5jdGlvbihyKXtpZihyPT09XCIlJVwiKXJldHVyblwiJVwiO2lmKHQ+PWkpcmV0dXJuIHI7c3dpdGNoKHIpe2Nhc2VcIiVzXCI6cmV0dXJuIFN0cmluZyhuW3QrK10pO2Nhc2VcIiVkXCI6cmV0dXJuIE51bWJlcihuW3QrK10pO2Nhc2VcIiVqXCI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuW3QrK10pfWNhdGNoKHIpe3JldHVyblwiW0NpcmN1bGFyXVwifWRlZmF1bHQ6cmV0dXJuIHJ9fSkpO2Zvcih2YXIgZj1uW3RdO3Q8aTtmPW5bKyt0XSl7aWYoaXNOdWxsKGYpfHwhaXNPYmplY3QoZikpe2ErPVwiIFwiK2Z9ZWxzZXthKz1cIiBcIitpbnNwZWN0KGYpfX1yZXR1cm4gYX07ZS5kZXByZWNhdGU9ZnVuY3Rpb24ocix0KXtpZih0eXBlb2YgcHJvY2VzcyE9PVwidW5kZWZpbmVkXCImJnByb2Nlc3Mubm9EZXByZWNhdGlvbj09PXRydWUpe3JldHVybiByfWlmKHR5cGVvZiBwcm9jZXNzPT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuZGVwcmVjYXRlKHIsdCkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX12YXIgbj1mYWxzZTtmdW5jdGlvbiBkZXByZWNhdGVkKCl7aWYoIW4pe2lmKHByb2Nlc3MudGhyb3dEZXByZWNhdGlvbil7dGhyb3cgbmV3IEVycm9yKHQpfWVsc2UgaWYocHJvY2Vzcy50cmFjZURlcHJlY2F0aW9uKXtjb25zb2xlLnRyYWNlKHQpfWVsc2V7Y29uc29sZS5lcnJvcih0KX1uPXRydWV9cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBkZXByZWNhdGVkfTt2YXIgaT17fTt2YXIgYT0vXiQvO2lmKHByb2Nlc3MuZW52Lk5PREVfREVCVUcpe3ZhciBmPXByb2Nlc3MuZW52Lk5PREVfREVCVUc7Zj1mLnJlcGxhY2UoL1t8XFxcXHt9KClbXFxdXiQrPy5dL2csXCJcXFxcJCZcIikucmVwbGFjZSgvXFwqL2csXCIuKlwiKS5yZXBsYWNlKC8sL2csXCIkfF5cIikudG9VcHBlckNhc2UoKTthPW5ldyBSZWdFeHAoXCJeXCIrZitcIiRcIixcImlcIil9ZS5kZWJ1Z2xvZz1mdW5jdGlvbihyKXtyPXIudG9VcHBlckNhc2UoKTtpZighaVtyXSl7aWYoYS50ZXN0KHIpKXt2YXIgdD1wcm9jZXNzLnBpZDtpW3JdPWZ1bmN0aW9uKCl7dmFyIG49ZS5mb3JtYXQuYXBwbHkoZSxhcmd1bWVudHMpO2NvbnNvbGUuZXJyb3IoXCIlcyAlZDogJXNcIixyLHQsbil9fWVsc2V7aVtyXT1mdW5jdGlvbigpe319fXJldHVybiBpW3JdfTtmdW5jdGlvbiBpbnNwZWN0KHIsdCl7dmFyIG49e3NlZW46W10sc3R5bGl6ZTpzdHlsaXplTm9Db2xvcn07aWYoYXJndW1lbnRzLmxlbmd0aD49MyluLmRlcHRoPWFyZ3VtZW50c1syXTtpZihhcmd1bWVudHMubGVuZ3RoPj00KW4uY29sb3JzPWFyZ3VtZW50c1szXTtpZihpc0Jvb2xlYW4odCkpe24uc2hvd0hpZGRlbj10fWVsc2UgaWYodCl7ZS5fZXh0ZW5kKG4sdCl9aWYoaXNVbmRlZmluZWQobi5zaG93SGlkZGVuKSluLnNob3dIaWRkZW49ZmFsc2U7aWYoaXNVbmRlZmluZWQobi5kZXB0aCkpbi5kZXB0aD0yO2lmKGlzVW5kZWZpbmVkKG4uY29sb3JzKSluLmNvbG9ycz1mYWxzZTtpZihpc1VuZGVmaW5lZChuLmN1c3RvbUluc3BlY3QpKW4uY3VzdG9tSW5zcGVjdD10cnVlO2lmKG4uY29sb3JzKW4uc3R5bGl6ZT1zdHlsaXplV2l0aENvbG9yO3JldHVybiBmb3JtYXRWYWx1ZShuLHIsbi5kZXB0aCl9ZS5pbnNwZWN0PWluc3BlY3Q7aW5zcGVjdC5jb2xvcnM9e2JvbGQ6WzEsMjJdLGl0YWxpYzpbMywyM10sdW5kZXJsaW5lOls0LDI0XSxpbnZlcnNlOls3LDI3XSx3aGl0ZTpbMzcsMzldLGdyZXk6WzkwLDM5XSxibGFjazpbMzAsMzldLGJsdWU6WzM0LDM5XSxjeWFuOlszNiwzOV0sZ3JlZW46WzMyLDM5XSxtYWdlbnRhOlszNSwzOV0scmVkOlszMSwzOV0seWVsbG93OlszMywzOV19O2luc3BlY3Quc3R5bGVzPXtzcGVjaWFsOlwiY3lhblwiLG51bWJlcjpcInllbGxvd1wiLGJvb2xlYW46XCJ5ZWxsb3dcIix1bmRlZmluZWQ6XCJncmV5XCIsbnVsbDpcImJvbGRcIixzdHJpbmc6XCJncmVlblwiLGRhdGU6XCJtYWdlbnRhXCIscmVnZXhwOlwicmVkXCJ9O2Z1bmN0aW9uIHN0eWxpemVXaXRoQ29sb3IocixlKXt2YXIgdD1pbnNwZWN0LnN0eWxlc1tlXTtpZih0KXtyZXR1cm5cIlx1MDAxYltcIitpbnNwZWN0LmNvbG9yc1t0XVswXStcIm1cIityK1wiXHUwMDFiW1wiK2luc3BlY3QuY29sb3JzW3RdWzFdK1wibVwifWVsc2V7cmV0dXJuIHJ9fWZ1bmN0aW9uIHN0eWxpemVOb0NvbG9yKHIsZSl7cmV0dXJuIHJ9ZnVuY3Rpb24gYXJyYXlUb0hhc2gocil7dmFyIGU9e307ci5mb3JFYWNoKChmdW5jdGlvbihyLHQpe2Vbcl09dHJ1ZX0pKTtyZXR1cm4gZX1mdW5jdGlvbiBmb3JtYXRWYWx1ZShyLHQsbil7aWYoci5jdXN0b21JbnNwZWN0JiZ0JiZpc0Z1bmN0aW9uKHQuaW5zcGVjdCkmJnQuaW5zcGVjdCE9PWUuaW5zcGVjdCYmISh0LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLnByb3RvdHlwZT09PXQpKXt2YXIgbz10Lmluc3BlY3QobixyKTtpZighaXNTdHJpbmcobykpe289Zm9ybWF0VmFsdWUocixvLG4pfXJldHVybiBvfXZhciBpPWZvcm1hdFByaW1pdGl2ZShyLHQpO2lmKGkpe3JldHVybiBpfXZhciBhPU9iamVjdC5rZXlzKHQpO3ZhciBmPWFycmF5VG9IYXNoKGEpO2lmKHIuc2hvd0hpZGRlbil7YT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KX1pZihpc0Vycm9yKHQpJiYoYS5pbmRleE9mKFwibWVzc2FnZVwiKT49MHx8YS5pbmRleE9mKFwiZGVzY3JpcHRpb25cIik+PTApKXtyZXR1cm4gZm9ybWF0RXJyb3IodCl9aWYoYS5sZW5ndGg9PT0wKXtpZihpc0Z1bmN0aW9uKHQpKXt2YXIgdT10Lm5hbWU/XCI6IFwiK3QubmFtZTpcIlwiO3JldHVybiByLnN0eWxpemUoXCJbRnVuY3Rpb25cIit1K1wiXVwiLFwic3BlY2lhbFwiKX1pZihpc1JlZ0V4cCh0KSl7cmV0dXJuIHIuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksXCJyZWdleHBcIil9aWYoaXNEYXRlKHQpKXtyZXR1cm4gci5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksXCJkYXRlXCIpfWlmKGlzRXJyb3IodCkpe3JldHVybiBmb3JtYXRFcnJvcih0KX19dmFyIHM9XCJcIixjPWZhbHNlLHk9W1wie1wiLFwifVwiXTtpZihpc0FycmF5KHQpKXtjPXRydWU7eT1bXCJbXCIsXCJdXCJdfWlmKGlzRnVuY3Rpb24odCkpe3ZhciBwPXQubmFtZT9cIjogXCIrdC5uYW1lOlwiXCI7cz1cIiBbRnVuY3Rpb25cIitwK1wiXVwifWlmKGlzUmVnRXhwKHQpKXtzPVwiIFwiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1pZihpc0RhdGUodCkpe3M9XCIgXCIrRGF0ZS5wcm90b3R5cGUudG9VVENTdHJpbmcuY2FsbCh0KX1pZihpc0Vycm9yKHQpKXtzPVwiIFwiK2Zvcm1hdEVycm9yKHQpfWlmKGEubGVuZ3RoPT09MCYmKCFjfHx0Lmxlbmd0aD09MCkpe3JldHVybiB5WzBdK3MreVsxXX1pZihuPDApe2lmKGlzUmVnRXhwKHQpKXtyZXR1cm4gci5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSxcInJlZ2V4cFwiKX1lbHNle3JldHVybiByLnN0eWxpemUoXCJbT2JqZWN0XVwiLFwic3BlY2lhbFwiKX19ci5zZWVuLnB1c2godCk7dmFyIGw7aWYoYyl7bD1mb3JtYXRBcnJheShyLHQsbixmLGEpfWVsc2V7bD1hLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGZvcm1hdFByb3BlcnR5KHIsdCxuLGYsZSxjKX0pKX1yLnNlZW4ucG9wKCk7cmV0dXJuIHJlZHVjZVRvU2luZ2xlU3RyaW5nKGwscyx5KX1mdW5jdGlvbiBmb3JtYXRQcmltaXRpdmUocixlKXtpZihpc1VuZGVmaW5lZChlKSlyZXR1cm4gci5zdHlsaXplKFwidW5kZWZpbmVkXCIsXCJ1bmRlZmluZWRcIik7aWYoaXNTdHJpbmcoZSkpe3ZhciB0PVwiJ1wiK0pTT04uc3RyaW5naWZ5KGUpLnJlcGxhY2UoL15cInxcIiQvZyxcIlwiKS5yZXBsYWNlKC8nL2csXCJcXFxcJ1wiKS5yZXBsYWNlKC9cXFxcXCIvZywnXCInKStcIidcIjtyZXR1cm4gci5zdHlsaXplKHQsXCJzdHJpbmdcIil9aWYoaXNOdW1iZXIoZSkpcmV0dXJuIHIuc3R5bGl6ZShcIlwiK2UsXCJudW1iZXJcIik7aWYoaXNCb29sZWFuKGUpKXJldHVybiByLnN0eWxpemUoXCJcIitlLFwiYm9vbGVhblwiKTtpZihpc051bGwoZSkpcmV0dXJuIHIuc3R5bGl6ZShcIm51bGxcIixcIm51bGxcIil9ZnVuY3Rpb24gZm9ybWF0RXJyb3Iocil7cmV0dXJuXCJbXCIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikrXCJdXCJ9ZnVuY3Rpb24gZm9ybWF0QXJyYXkocixlLHQsbixvKXt2YXIgaT1bXTtmb3IodmFyIGE9MCxmPWUubGVuZ3RoO2E8ZjsrK2Epe2lmKGhhc093blByb3BlcnR5KGUsU3RyaW5nKGEpKSl7aS5wdXNoKGZvcm1hdFByb3BlcnR5KHIsZSx0LG4sU3RyaW5nKGEpLHRydWUpKX1lbHNle2kucHVzaChcIlwiKX19by5mb3JFYWNoKChmdW5jdGlvbihvKXtpZighby5tYXRjaCgvXlxcZCskLykpe2kucHVzaChmb3JtYXRQcm9wZXJ0eShyLGUsdCxuLG8sdHJ1ZSkpfX0pKTtyZXR1cm4gaX1mdW5jdGlvbiBmb3JtYXRQcm9wZXJ0eShyLGUsdCxuLG8saSl7dmFyIGEsZix1O3U9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG8pfHx7dmFsdWU6ZVtvXX07aWYodS5nZXQpe2lmKHUuc2V0KXtmPXIuc3R5bGl6ZShcIltHZXR0ZXIvU2V0dGVyXVwiLFwic3BlY2lhbFwiKX1lbHNle2Y9ci5zdHlsaXplKFwiW0dldHRlcl1cIixcInNwZWNpYWxcIil9fWVsc2V7aWYodS5zZXQpe2Y9ci5zdHlsaXplKFwiW1NldHRlcl1cIixcInNwZWNpYWxcIil9fWlmKCFoYXNPd25Qcm9wZXJ0eShuLG8pKXthPVwiW1wiK28rXCJdXCJ9aWYoIWYpe2lmKHIuc2Vlbi5pbmRleE9mKHUudmFsdWUpPDApe2lmKGlzTnVsbCh0KSl7Zj1mb3JtYXRWYWx1ZShyLHUudmFsdWUsbnVsbCl9ZWxzZXtmPWZvcm1hdFZhbHVlKHIsdS52YWx1ZSx0LTEpfWlmKGYuaW5kZXhPZihcIlxcblwiKT4tMSl7aWYoaSl7Zj1mLnNwbGl0KFwiXFxuXCIpLm1hcCgoZnVuY3Rpb24ocil7cmV0dXJuXCIgIFwiK3J9KSkuam9pbihcIlxcblwiKS5zdWJzdHIoMil9ZWxzZXtmPVwiXFxuXCIrZi5zcGxpdChcIlxcblwiKS5tYXAoKGZ1bmN0aW9uKHIpe3JldHVyblwiICAgXCIrcn0pKS5qb2luKFwiXFxuXCIpfX19ZWxzZXtmPXIuc3R5bGl6ZShcIltDaXJjdWxhcl1cIixcInNwZWNpYWxcIil9fWlmKGlzVW5kZWZpbmVkKGEpKXtpZihpJiZvLm1hdGNoKC9eXFxkKyQvKSl7cmV0dXJuIGZ9YT1KU09OLnN0cmluZ2lmeShcIlwiK28pO2lmKGEubWF0Y2goL15cIihbYS16QS1aX11bYS16QS1aXzAtOV0qKVwiJC8pKXthPWEuc3Vic3RyKDEsYS5sZW5ndGgtMik7YT1yLnN0eWxpemUoYSxcIm5hbWVcIil9ZWxzZXthPWEucmVwbGFjZSgvJy9nLFwiXFxcXCdcIikucmVwbGFjZSgvXFxcXFwiL2csJ1wiJykucmVwbGFjZSgvKF5cInxcIiQpL2csXCInXCIpO2E9ci5zdHlsaXplKGEsXCJzdHJpbmdcIil9fXJldHVybiBhK1wiOiBcIitmfWZ1bmN0aW9uIHJlZHVjZVRvU2luZ2xlU3RyaW5nKHIsZSx0KXt2YXIgbj0wO3ZhciBvPXIucmVkdWNlKChmdW5jdGlvbihyLGUpe24rKztpZihlLmluZGV4T2YoXCJcXG5cIik+PTApbisrO3JldHVybiByK2UucmVwbGFjZSgvXFx1MDAxYlxcW1xcZFxcZD9tL2csXCJcIikubGVuZ3RoKzF9KSwwKTtpZihvPjYwKXtyZXR1cm4gdFswXSsoZT09PVwiXCI/XCJcIjplK1wiXFxuIFwiKStcIiBcIityLmpvaW4oXCIsXFxuICBcIikrXCIgXCIrdFsxXX1yZXR1cm4gdFswXStlK1wiIFwiK3Iuam9pbihcIiwgXCIpK1wiIFwiK3RbMV19ZS50eXBlcz10KDU4NCk7ZnVuY3Rpb24gaXNBcnJheShyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKX1lLmlzQXJyYXk9aXNBcnJheTtmdW5jdGlvbiBpc0Jvb2xlYW4ocil7cmV0dXJuIHR5cGVvZiByPT09XCJib29sZWFuXCJ9ZS5pc0Jvb2xlYW49aXNCb29sZWFuO2Z1bmN0aW9uIGlzTnVsbChyKXtyZXR1cm4gcj09PW51bGx9ZS5pc051bGw9aXNOdWxsO2Z1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKHIpe3JldHVybiByPT1udWxsfWUuaXNOdWxsT3JVbmRlZmluZWQ9aXNOdWxsT3JVbmRlZmluZWQ7ZnVuY3Rpb24gaXNOdW1iZXIocil7cmV0dXJuIHR5cGVvZiByPT09XCJudW1iZXJcIn1lLmlzTnVtYmVyPWlzTnVtYmVyO2Z1bmN0aW9uIGlzU3RyaW5nKHIpe3JldHVybiB0eXBlb2Ygcj09PVwic3RyaW5nXCJ9ZS5pc1N0cmluZz1pc1N0cmluZztmdW5jdGlvbiBpc1N5bWJvbChyKXtyZXR1cm4gdHlwZW9mIHI9PT1cInN5bWJvbFwifWUuaXNTeW1ib2w9aXNTeW1ib2w7ZnVuY3Rpb24gaXNVbmRlZmluZWQocil7cmV0dXJuIHI9PT12b2lkIDB9ZS5pc1VuZGVmaW5lZD1pc1VuZGVmaW5lZDtmdW5jdGlvbiBpc1JlZ0V4cChyKXtyZXR1cm4gaXNPYmplY3QocikmJm9iamVjdFRvU3RyaW5nKHIpPT09XCJbb2JqZWN0IFJlZ0V4cF1cIn1lLmlzUmVnRXhwPWlzUmVnRXhwO2UudHlwZXMuaXNSZWdFeHA9aXNSZWdFeHA7ZnVuY3Rpb24gaXNPYmplY3Qocil7cmV0dXJuIHR5cGVvZiByPT09XCJvYmplY3RcIiYmciE9PW51bGx9ZS5pc09iamVjdD1pc09iamVjdDtmdW5jdGlvbiBpc0RhdGUocil7cmV0dXJuIGlzT2JqZWN0KHIpJiZvYmplY3RUb1N0cmluZyhyKT09PVwiW29iamVjdCBEYXRlXVwifWUuaXNEYXRlPWlzRGF0ZTtlLnR5cGVzLmlzRGF0ZT1pc0RhdGU7ZnVuY3Rpb24gaXNFcnJvcihyKXtyZXR1cm4gaXNPYmplY3QocikmJihvYmplY3RUb1N0cmluZyhyKT09PVwiW29iamVjdCBFcnJvcl1cInx8ciBpbnN0YW5jZW9mIEVycm9yKX1lLmlzRXJyb3I9aXNFcnJvcjtlLnR5cGVzLmlzTmF0aXZlRXJyb3I9aXNFcnJvcjtmdW5jdGlvbiBpc0Z1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09PVwiZnVuY3Rpb25cIn1lLmlzRnVuY3Rpb249aXNGdW5jdGlvbjtmdW5jdGlvbiBpc1ByaW1pdGl2ZShyKXtyZXR1cm4gcj09PW51bGx8fHR5cGVvZiByPT09XCJib29sZWFuXCJ8fHR5cGVvZiByPT09XCJudW1iZXJcInx8dHlwZW9mIHI9PT1cInN0cmluZ1wifHx0eXBlb2Ygcj09PVwic3ltYm9sXCJ8fHR5cGVvZiByPT09XCJ1bmRlZmluZWRcIn1lLmlzUHJpbWl0aXZlPWlzUHJpbWl0aXZlO2UuaXNCdWZmZXI9dCgzNjkpO2Z1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocil9ZnVuY3Rpb24gcGFkKHIpe3JldHVybiByPDEwP1wiMFwiK3IudG9TdHJpbmcoMTApOnIudG9TdHJpbmcoMTApfXZhciB1PVtcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl07ZnVuY3Rpb24gdGltZXN0YW1wKCl7dmFyIHI9bmV3IERhdGU7dmFyIGU9W3BhZChyLmdldEhvdXJzKCkpLHBhZChyLmdldE1pbnV0ZXMoKSkscGFkKHIuZ2V0U2Vjb25kcygpKV0uam9pbihcIjpcIik7cmV0dXJuW3IuZ2V0RGF0ZSgpLHVbci5nZXRNb250aCgpXSxlXS5qb2luKFwiIFwiKX1lLmxvZz1mdW5jdGlvbigpe2NvbnNvbGUubG9nKFwiJXMgLSAlc1wiLHRpbWVzdGFtcCgpLGUuZm9ybWF0LmFwcGx5KGUsYXJndW1lbnRzKSl9O2UuaW5oZXJpdHM9dCg3ODIpO2UuX2V4dGVuZD1mdW5jdGlvbihyLGUpe2lmKCFlfHwhaXNPYmplY3QoZSkpcmV0dXJuIHI7dmFyIHQ9T2JqZWN0LmtleXMoZSk7dmFyIG49dC5sZW5ndGg7d2hpbGUobi0tKXtyW3Rbbl1dPWVbdFtuXV19cmV0dXJuIHJ9O2Z1bmN0aW9uIGhhc093blByb3BlcnR5KHIsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGUpfXZhciBzPXR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiP1N5bWJvbChcInV0aWwucHJvbWlzaWZ5LmN1c3RvbVwiKTp1bmRlZmluZWQ7ZS5wcm9taXNpZnk9ZnVuY3Rpb24gcHJvbWlzaWZ5KHIpe2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9yaWdpbmFsXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyk7aWYocyYmcltzXSl7dmFyIGU9cltzXTtpZih0eXBlb2YgZSE9PVwiZnVuY3Rpb25cIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwidXRpbC5wcm9taXNpZnkuY3VzdG9tXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscyx7dmFsdWU6ZSxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOmZhbHNlLGNvbmZpZ3VyYWJsZTp0cnVlfSk7cmV0dXJuIGV9ZnVuY3Rpb24gZSgpe3ZhciBlLHQ7dmFyIG49bmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7ZT1yO3Q9bn0pKTt2YXIgbz1bXTtmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXtvLnB1c2goYXJndW1lbnRzW2ldKX1vLnB1c2goKGZ1bmN0aW9uKHIsbil7aWYocil7dChyKX1lbHNle2Uobil9fSkpO3RyeXtyLmFwcGx5KHRoaXMsbyl9Y2F0Y2gocil7dChyKX1yZXR1cm4gbn1PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxPYmplY3QuZ2V0UHJvdG90eXBlT2YocikpO2lmKHMpT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscyx7dmFsdWU6ZSxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOmZhbHNlLGNvbmZpZ3VyYWJsZTp0cnVlfSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsbihyKSl9O2UucHJvbWlzaWZ5LmN1c3RvbT1zO2Z1bmN0aW9uIGNhbGxiYWNraWZ5T25SZWplY3RlZChyLGUpe2lmKCFyKXt2YXIgdD1uZXcgRXJyb3IoXCJQcm9taXNlIHdhcyByZWplY3RlZCB3aXRoIGEgZmFsc3kgdmFsdWVcIik7dC5yZWFzb249cjtyPXR9cmV0dXJuIGUocil9ZnVuY3Rpb24gY2FsbGJhY2tpZnkocil7aWYodHlwZW9mIHIhPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9yaWdpbmFsXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyl9ZnVuY3Rpb24gY2FsbGJhY2tpZmllZCgpe3ZhciBlPVtdO2Zvcih2YXIgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe2UucHVzaChhcmd1bWVudHNbdF0pfXZhciBuPWUucG9wKCk7aWYodHlwZW9mIG4hPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgbGFzdCBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb25cIil9dmFyIG89dGhpczt2YXIgY2I9ZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseShvLGFyZ3VtZW50cyl9O3IuYXBwbHkodGhpcyxlKS50aGVuKChmdW5jdGlvbihyKXtwcm9jZXNzLm5leHRUaWNrKGNiLmJpbmQobnVsbCxudWxsLHIpKX0pLChmdW5jdGlvbihyKXtwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNraWZ5T25SZWplY3RlZC5iaW5kKG51bGwscixjYikpfSkpfU9iamVjdC5zZXRQcm90b3R5cGVPZihjYWxsYmFja2lmaWVkLE9iamVjdC5nZXRQcm90b3R5cGVPZihyKSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY2FsbGJhY2tpZmllZCxuKHIpKTtyZXR1cm4gY2FsbGJhY2tpZmllZH1lLmNhbGxiYWNraWZ5PWNhbGxiYWNraWZ5fSw0OTA6ZnVuY3Rpb24ocixlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPXQoMTQ0KTt2YXIgbz10KDM0OSk7dmFyIGk9dCgyNTYpO3ZhciBhPWkoXCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXCIpO3ZhciBmPXQoOTQyKSgpO3ZhciB1PWYmJnR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc9PT1cInN5bWJvbFwiO3ZhciBzPW8oKTt2YXIgYz1pKFwiU3RyaW5nLnByb3RvdHlwZS5zbGljZVwiKTt2YXIgeT17fTt2YXIgcD10KDI0KTt2YXIgbD1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7aWYodSYmcCYmbCl7bihzLChmdW5jdGlvbihyKXtpZih0eXBlb2YgZ2xvYmFsW3JdPT09XCJmdW5jdGlvblwiKXt2YXIgZT1uZXcgZ2xvYmFsW3JdO2lmKCEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIGUpKXt0aHJvdyBuZXcgRXZhbEVycm9yKFwidGhpcyBlbmdpbmUgaGFzIHN1cHBvcnQgZm9yIFN5bWJvbC50b1N0cmluZ1RhZywgYnV0IFwiK3IrXCIgZG9lcyBub3QgaGF2ZSB0aGUgcHJvcGVydHkhIFBsZWFzZSByZXBvcnQgdGhpcy5cIil9dmFyIHQ9bChlKTt2YXIgbj1wKHQsU3ltYm9sLnRvU3RyaW5nVGFnKTtpZighbil7dmFyIG89bCh0KTtuPXAobyxTeW1ib2wudG9TdHJpbmdUYWcpfXlbcl09bi5nZXR9fSkpfXZhciBnPWZ1bmN0aW9uIHRyeUFsbFR5cGVkQXJyYXlzKHIpe3ZhciBlPWZhbHNlO24oeSwoZnVuY3Rpb24odCxuKXtpZighZSl7dHJ5e3ZhciBvPXQuY2FsbChyKTtpZihvPT09bil7ZT1vfX1jYXRjaChyKXt9fX0pKTtyZXR1cm4gZX07dmFyIHY9dCg5OTQpO3IuZXhwb3J0cz1mdW5jdGlvbiB3aGljaFR5cGVkQXJyYXkocil7aWYoIXYocikpe3JldHVybiBmYWxzZX1pZighdSl7cmV0dXJuIGMoYShyKSw4LC0xKX1yZXR1cm4gZyhyKX19LDM0OTpmdW5jdGlvbihyLGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dCg5OTIpO3IuZXhwb3J0cz1mdW5jdGlvbiBhdmFpbGFibGVUeXBlZEFycmF5cygpe3JldHVybiBuKFtcIkJpZ0ludDY0QXJyYXlcIixcIkJpZ1VpbnQ2NEFycmF5XCIsXCJGbG9hdDMyQXJyYXlcIixcIkZsb2F0NjRBcnJheVwiLFwiSW50MTZBcnJheVwiLFwiSW50MzJBcnJheVwiLFwiSW50OEFycmF5XCIsXCJVaW50MTZBcnJheVwiLFwiVWludDMyQXJyYXlcIixcIlVpbnQ4QXJyYXlcIixcIlVpbnQ4Q2xhbXBlZEFycmF5XCJdLChmdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFtyXT09PVwiZnVuY3Rpb25cIn0pKX19LDI0OmZ1bmN0aW9uKHIsZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbj10KDE5Mik7dmFyIG89bihcIiVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJVwiLHRydWUpO2lmKG8pe3RyeXtvKFtdLFwibGVuZ3RoXCIpfWNhdGNoKHIpe289bnVsbH19ci5leHBvcnRzPW99fTt2YXIgZT17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciBuPWVbdF07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgbz1lW3RdPXtleHBvcnRzOnt9fTt2YXIgaT10cnVlO3RyeXtyW3RdKG8sby5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2k9ZmFsc2V9ZmluYWxseXtpZihpKWRlbGV0ZSBlW3RdfXJldHVybiBvLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMTc3KTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/util/util.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/vm-browserify/index.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/compiled/vm-browserify/index.js ***! \****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var __webpack_modules__={950:function(__unused_webpack_module,exports){var indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);else for(var r=0;r<e.length;r++){if(e[r]===t)return r}return-1};var Object_keys=function(e){if(Object.keys)return Object.keys(e);else{var t=[];for(var r in e)t.push(r);return t}};var forEach=function(e,t){if(e.forEach)return e.forEach(t);else for(var r=0;r<e.length;r++){t(e[r],r,e)}};var defineProp=function(){try{Object.defineProperty({},\"_\",{});return function(e,t,r){Object.defineProperty(e,t,{writable:true,enumerable:false,configurable:true,value:r})}}catch(e){return function(e,t,r){e[t]=r}}}();var globals=[\"Array\",\"Boolean\",\"Date\",\"Error\",\"EvalError\",\"Function\",\"Infinity\",\"JSON\",\"Math\",\"NaN\",\"Number\",\"Object\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"String\",\"SyntaxError\",\"TypeError\",\"URIError\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"undefined\",\"unescape\"];function Context(){}Context.prototype={};var Script=exports.Script=function NodeScript(e){if(!(this instanceof Script))return new Script(e);this.code=e};Script.prototype.runInContext=function(e){if(!(e instanceof Context)){throw new TypeError(\"needs a 'context' argument.\")}var t=document.createElement(\"iframe\");if(!t.style)t.style={};t.style.display=\"none\";document.body.appendChild(t);var r=t.contentWindow;var n=r.eval,o=r.execScript;if(!n&&o){o.call(r,\"null\");n=r.eval}forEach(Object_keys(e),(function(t){r[t]=e[t]}));forEach(globals,(function(t){if(e[t]){r[t]=e[t]}}));var c=Object_keys(r);var i=n.call(r,this.code);forEach(Object_keys(r),(function(t){if(t in e||indexOf(c,t)===-1){e[t]=r[t]}}));forEach(globals,(function(t){if(!(t in e)){defineProp(e,t,r[t])}}));document.body.removeChild(t);return i};Script.prototype.runInThisContext=function(){return eval(this.code)};Script.prototype.runInNewContext=function(e){var t=Script.createContext(e);var r=this.runInContext(t);if(e){forEach(Object_keys(t),(function(r){e[r]=t[r]}))}return r};forEach(Object_keys(Script.prototype),(function(e){exports[e]=Script[e]=function(t){var r=Script(t);return r[e].apply(r,[].slice.call(arguments,1))}}));exports.isContext=function(e){return e instanceof Context};exports.createScript=function(e){return exports.Script(e)};exports.createContext=Script.createContext=function(e){var t=new Context;if(typeof e===\"object\"){forEach(Object_keys(e),(function(r){t[r]=e[r]}))}return t}}};if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var __nested_webpack_exports__={};__webpack_modules__[950](0,__nested_webpack_exports__);module.exports=__nested_webpack_exports__})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvdm0tYnJvd3NlcmlmeS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsWUFBWSx5QkFBeUIsOENBQThDLDBCQUEwQixpQ0FBaUMsaUJBQWlCLFdBQVcsS0FBSyxxQkFBcUIsVUFBVSw0QkFBNEIscUNBQXFDLEtBQUssU0FBUyx5QkFBeUIsV0FBVywwQkFBMEIsaUNBQWlDLGlCQUFpQixXQUFXLEtBQUssY0FBYywwQkFBMEIsSUFBSSx3QkFBd0IsT0FBTyxFQUFFLHVCQUF1QiwyQkFBMkIseURBQXlELEdBQUcsU0FBUyx1QkFBdUIsU0FBUyxHQUFHLGdXQUFnVyxvQkFBb0IscUJBQXFCLGlEQUFpRCxrREFBa0QsYUFBYSwwQ0FBMEMsNEJBQTRCLG1EQUFtRCx1Q0FBdUMsdUJBQXVCLHVCQUF1Qiw2QkFBNkIsc0JBQXNCLDRCQUE0QixVQUFVLGlCQUFpQixTQUFTLG9DQUFvQyxVQUFVLEdBQUcsNkJBQTZCLFNBQVMsV0FBVyxHQUFHLHFCQUFxQiwwQkFBMEIsb0NBQW9DLDhCQUE4QixXQUFXLEdBQUcsNkJBQTZCLGNBQWMsc0JBQXNCLEdBQUcsNkJBQTZCLFVBQVUsNkNBQTZDLHdCQUF3Qiw2Q0FBNkMsOEJBQThCLDJCQUEyQixNQUFNLG9DQUFvQyxVQUFVLEdBQUcsVUFBVSxtREFBbUQsaUNBQWlDLGdCQUFnQixpREFBaUQsR0FBRyw4QkFBOEIsNkJBQTZCLGlDQUFpQywwQkFBMEIsdURBQXVELGtCQUFrQix3QkFBd0Isb0NBQW9DLFVBQVUsR0FBRyxZQUFZLG1FQUFtRSxTQUFTLEtBQUssSUFBSSwwQkFBbUIsSUFBSSwyQkFBMkIsMEJBQW1CLEVBQUUsZUFBZSwwQkFBbUIsQ0FBQyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3ZtLWJyb3dzZXJpZnkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7dmFyIF9fd2VicGFja19tb2R1bGVzX189ezk1MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXt2YXIgaW5kZXhPZj1mdW5jdGlvbihlLHQpe2lmKGUuaW5kZXhPZilyZXR1cm4gZS5pbmRleE9mKHQpO2Vsc2UgZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe2lmKGVbcl09PT10KXJldHVybiByfXJldHVybi0xfTt2YXIgT2JqZWN0X2tleXM9ZnVuY3Rpb24oZSl7aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKGUpO2Vsc2V7dmFyIHQ9W107Zm9yKHZhciByIGluIGUpdC5wdXNoKHIpO3JldHVybiB0fX07dmFyIGZvckVhY2g9ZnVuY3Rpb24oZSx0KXtpZihlLmZvckVhY2gpcmV0dXJuIGUuZm9yRWFjaCh0KTtlbHNlIGZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt0KGVbcl0scixlKX19O3ZhciBkZWZpbmVQcm9wPWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSxcIl9cIix7fSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt3cml0YWJsZTp0cnVlLGVudW1lcmFibGU6ZmFsc2UsY29uZmlndXJhYmxlOnRydWUsdmFsdWU6cn0pfX1jYXRjaChlKXtyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe2VbdF09cn19fSgpO3ZhciBnbG9iYWxzPVtcIkFycmF5XCIsXCJCb29sZWFuXCIsXCJEYXRlXCIsXCJFcnJvclwiLFwiRXZhbEVycm9yXCIsXCJGdW5jdGlvblwiLFwiSW5maW5pdHlcIixcIkpTT05cIixcIk1hdGhcIixcIk5hTlwiLFwiTnVtYmVyXCIsXCJPYmplY3RcIixcIlJhbmdlRXJyb3JcIixcIlJlZmVyZW5jZUVycm9yXCIsXCJSZWdFeHBcIixcIlN0cmluZ1wiLFwiU3ludGF4RXJyb3JcIixcIlR5cGVFcnJvclwiLFwiVVJJRXJyb3JcIixcImRlY29kZVVSSVwiLFwiZGVjb2RlVVJJQ29tcG9uZW50XCIsXCJlbmNvZGVVUklcIixcImVuY29kZVVSSUNvbXBvbmVudFwiLFwiZXNjYXBlXCIsXCJldmFsXCIsXCJpc0Zpbml0ZVwiLFwiaXNOYU5cIixcInBhcnNlRmxvYXRcIixcInBhcnNlSW50XCIsXCJ1bmRlZmluZWRcIixcInVuZXNjYXBlXCJdO2Z1bmN0aW9uIENvbnRleHQoKXt9Q29udGV4dC5wcm90b3R5cGU9e307dmFyIFNjcmlwdD1leHBvcnRzLlNjcmlwdD1mdW5jdGlvbiBOb2RlU2NyaXB0KGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFNjcmlwdCkpcmV0dXJuIG5ldyBTY3JpcHQoZSk7dGhpcy5jb2RlPWV9O1NjcmlwdC5wcm90b3R5cGUucnVuSW5Db250ZXh0PWZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIENvbnRleHQpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwibmVlZHMgYSAnY29udGV4dCcgYXJndW1lbnQuXCIpfXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7aWYoIXQuc3R5bGUpdC5zdHlsZT17fTt0LnN0eWxlLmRpc3BsYXk9XCJub25lXCI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt2YXIgcj10LmNvbnRlbnRXaW5kb3c7dmFyIG49ci5ldmFsLG89ci5leGVjU2NyaXB0O2lmKCFuJiZvKXtvLmNhbGwocixcIm51bGxcIik7bj1yLmV2YWx9Zm9yRWFjaChPYmplY3Rfa2V5cyhlKSwoZnVuY3Rpb24odCl7clt0XT1lW3RdfSkpO2ZvckVhY2goZ2xvYmFscywoZnVuY3Rpb24odCl7aWYoZVt0XSl7clt0XT1lW3RdfX0pKTt2YXIgYz1PYmplY3Rfa2V5cyhyKTt2YXIgaT1uLmNhbGwocix0aGlzLmNvZGUpO2ZvckVhY2goT2JqZWN0X2tleXMociksKGZ1bmN0aW9uKHQpe2lmKHQgaW4gZXx8aW5kZXhPZihjLHQpPT09LTEpe2VbdF09clt0XX19KSk7Zm9yRWFjaChnbG9iYWxzLChmdW5jdGlvbih0KXtpZighKHQgaW4gZSkpe2RlZmluZVByb3AoZSx0LHJbdF0pfX0pKTtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpO3JldHVybiBpfTtTY3JpcHQucHJvdG90eXBlLnJ1bkluVGhpc0NvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZXZhbCh0aGlzLmNvZGUpfTtTY3JpcHQucHJvdG90eXBlLnJ1bkluTmV3Q29udGV4dD1mdW5jdGlvbihlKXt2YXIgdD1TY3JpcHQuY3JlYXRlQ29udGV4dChlKTt2YXIgcj10aGlzLnJ1bkluQ29udGV4dCh0KTtpZihlKXtmb3JFYWNoKE9iamVjdF9rZXlzKHQpLChmdW5jdGlvbihyKXtlW3JdPXRbcl19KSl9cmV0dXJuIHJ9O2ZvckVhY2goT2JqZWN0X2tleXMoU2NyaXB0LnByb3RvdHlwZSksKGZ1bmN0aW9uKGUpe2V4cG9ydHNbZV09U2NyaXB0W2VdPWZ1bmN0aW9uKHQpe3ZhciByPVNjcmlwdCh0KTtyZXR1cm4gcltlXS5hcHBseShyLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX19KSk7ZXhwb3J0cy5pc0NvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBDb250ZXh0fTtleHBvcnRzLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbihlKXtyZXR1cm4gZXhwb3J0cy5TY3JpcHQoZSl9O2V4cG9ydHMuY3JlYXRlQ29udGV4dD1TY3JpcHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgQ29udGV4dDtpZih0eXBlb2YgZT09PVwib2JqZWN0XCIpe2ZvckVhY2goT2JqZWN0X2tleXMoZSksKGZ1bmN0aW9uKHIpe3Rbcl09ZVtyXX0pKX1yZXR1cm4gdH19fTtpZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF9fd2VicGFja19leHBvcnRzX189e307X193ZWJwYWNrX21vZHVsZXNfX1s5NTBdKDAsX193ZWJwYWNrX2V4cG9ydHNfXyk7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX2V4cG9ydHNfX30pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/vm-browserify/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/outvariant/lib/index.mjs": /*!***********************************************!*\ !*** ./node_modules/outvariant/lib/index.mjs ***! \***********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InvariantError: () => (/* binding */ InvariantError),\n/* harmony export */ format: () => (/* binding */ format),\n/* harmony export */ invariant: () => (/* binding */ invariant)\n/* harmony export */ });\n// src/format.ts\nvar POSITIONALS_EXP = /(%?)(%([sdijo]))/g;\nfunction serializePositional(positional, flag) {\n switch (flag) {\n case \"s\":\n return positional;\n case \"d\":\n case \"i\":\n return Number(positional);\n case \"j\":\n return JSON.stringify(positional);\n case \"o\": {\n if (typeof positional === \"string\") {\n return positional;\n }\n const json = JSON.stringify(positional);\n if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n return positional;\n }\n return json;\n }\n }\n}\nfunction format(message, ...positionals) {\n if (positionals.length === 0) {\n return message;\n }\n let positionalIndex = 0;\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex];\n const value = serializePositional(positional, flag);\n if (!isEscaped) {\n positionalIndex++;\n return value;\n }\n return match;\n }\n );\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n }\n formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n return formattedMessage;\n}\n\n// src/invariant.ts\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error) {\n if (!error.stack) {\n return;\n }\n const nextStack = error.stack.split(\"\\n\");\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n error.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n constructor(message, ...positionals) {\n super(message);\n this.message = message;\n this.name = \"Invariant Violation\";\n this.message = format(message, ...positionals);\n cleanErrorStack(this);\n }\n};\nvar invariant = (predicate, message, ...positionals) => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals);\n }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage = positionals.length === 0 ? message : format(message, ...positionals);\n let error;\n try {\n error = Reflect.construct(ErrorConstructor, [\n formatMessage\n ]);\n } catch (err) {\n error = ErrorConstructor(formatMessage);\n }\n throw error;\n }\n};\n\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9vdXR2YXJpYW50L2xpYi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDZDQUE2QztBQUN6RTtBQUNBLGlEQUFpRCxJQUFJO0FBQ3JEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvb3V0dmFyaWFudC9saWIvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9mb3JtYXQudHNcbnZhciBQT1NJVElPTkFMU19FWFAgPSAvKCU/KSglKFtzZGlqb10pKS9nO1xuZnVuY3Rpb24gc2VyaWFsaXplUG9zaXRpb25hbChwb3NpdGlvbmFsLCBmbGFnKSB7XG4gIHN3aXRjaCAoZmxhZykge1xuICAgIGNhc2UgXCJzXCI6XG4gICAgICByZXR1cm4gcG9zaXRpb25hbDtcbiAgICBjYXNlIFwiZFwiOlxuICAgIGNhc2UgXCJpXCI6XG4gICAgICByZXR1cm4gTnVtYmVyKHBvc2l0aW9uYWwpO1xuICAgIGNhc2UgXCJqXCI6XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocG9zaXRpb25hbCk7XG4gICAgY2FzZSBcIm9cIjoge1xuICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBwb3NpdGlvbmFsO1xuICAgICAgfVxuICAgICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHBvc2l0aW9uYWwpO1xuICAgICAgaWYgKGpzb24gPT09IFwie31cIiB8fCBqc29uID09PSBcIltdXCIgfHwgL15cXFtvYmplY3QgLis/XFxdJC8udGVzdChqc29uKSkge1xuICAgICAgICByZXR1cm4gcG9zaXRpb25hbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZm9ybWF0KG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKSB7XG4gIGlmIChwb3NpdGlvbmFscy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuICBsZXQgcG9zaXRpb25hbEluZGV4ID0gMDtcbiAgbGV0IGZvcm1hdHRlZE1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgUE9TSVRJT05BTFNfRVhQLFxuICAgIChtYXRjaCwgaXNFc2NhcGVkLCBfLCBmbGFnKSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbmFsID0gcG9zaXRpb25hbHNbcG9zaXRpb25hbEluZGV4XTtcbiAgICAgIGNvbnN0IHZhbHVlID0gc2VyaWFsaXplUG9zaXRpb25hbChwb3NpdGlvbmFsLCBmbGFnKTtcbiAgICAgIGlmICghaXNFc2NhcGVkKSB7XG4gICAgICAgIHBvc2l0aW9uYWxJbmRleCsrO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICApO1xuICBpZiAocG9zaXRpb25hbEluZGV4IDwgcG9zaXRpb25hbHMubGVuZ3RoKSB7XG4gICAgZm9ybWF0dGVkTWVzc2FnZSArPSBgICR7cG9zaXRpb25hbHMuc2xpY2UocG9zaXRpb25hbEluZGV4KS5qb2luKFwiIFwiKX1gO1xuICB9XG4gIGZvcm1hdHRlZE1lc3NhZ2UgPSBmb3JtYXR0ZWRNZXNzYWdlLnJlcGxhY2UoLyV7MiwyfS9nLCBcIiVcIik7XG4gIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlO1xufVxuXG4vLyBzcmMvaW52YXJpYW50LnRzXG52YXIgU1RBQ0tfRlJBTUVTX1RPX0lHTk9SRSA9IDI7XG5mdW5jdGlvbiBjbGVhbkVycm9yU3RhY2soZXJyb3IpIHtcbiAgaWYgKCFlcnJvci5zdGFjaykge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBuZXh0U3RhY2sgPSBlcnJvci5zdGFjay5zcGxpdChcIlxcblwiKTtcbiAgbmV4dFN0YWNrLnNwbGljZSgxLCBTVEFDS19GUkFNRVNfVE9fSUdOT1JFKTtcbiAgZXJyb3Iuc3RhY2sgPSBuZXh0U3RhY2suam9pbihcIlxcblwiKTtcbn1cbnZhciBJbnZhcmlhbnRFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCAuLi5wb3NpdGlvbmFscykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5uYW1lID0gXCJJbnZhcmlhbnQgVmlvbGF0aW9uXCI7XG4gICAgdGhpcy5tZXNzYWdlID0gZm9ybWF0KG1lc3NhZ2UsIC4uLnBvc2l0aW9uYWxzKTtcbiAgICBjbGVhbkVycm9yU3RhY2sodGhpcyk7XG4gIH1cbn07XG52YXIgaW52YXJpYW50ID0gKHByZWRpY2F0ZSwgbWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpID0+IHtcbiAgaWYgKCFwcmVkaWNhdGUpIHtcbiAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IobWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpO1xuICB9XG59O1xuaW52YXJpYW50LmFzID0gKEVycm9yQ29uc3RydWN0b3IsIHByZWRpY2F0ZSwgbWVzc2FnZSwgLi4ucG9zaXRpb25hbHMpID0+IHtcbiAgaWYgKCFwcmVkaWNhdGUpIHtcbiAgICBjb25zdCBmb3JtYXRNZXNzYWdlID0gcG9zaXRpb25hbHMubGVuZ3RoID09PSAwID8gbWVzc2FnZSA6IGZvcm1hdChtZXNzYWdlLCAuLi5wb3NpdGlvbmFscyk7XG4gICAgbGV0IGVycm9yO1xuICAgIHRyeSB7XG4gICAgICBlcnJvciA9IFJlZmxlY3QuY29uc3RydWN0KEVycm9yQ29uc3RydWN0b3IsIFtcbiAgICAgICAgZm9ybWF0TWVzc2FnZVxuICAgICAgXSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBlcnJvciA9IEVycm9yQ29uc3RydWN0b3IoZm9ybWF0TWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuZXhwb3J0IHtcbiAgSW52YXJpYW50RXJyb3IsXG4gIGZvcm1hdCxcbiAgaW52YXJpYW50XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/outvariant/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/path-to-regexp/dist.es2015/index.js": /*!**********************************************************!*\ !*** ./node_modules/path-to-regexp/dist.es2015/index.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compile: () => (/* binding */ compile),\n/* harmony export */ match: () => (/* binding */ match),\n/* harmony export */ parse: () => (/* binding */ parse),\n/* harmony export */ pathToRegexp: () => (/* binding */ pathToRegexp),\n/* harmony export */ regexpToFunction: () => (/* binding */ regexpToFunction),\n/* harmony export */ tokensToFunction: () => (/* binding */ tokensToFunction),\n/* harmony export */ tokensToRegexp: () => (/* binding */ tokensToRegexp)\n/* harmony export */ });\n/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a, _b = options.delimiter, delimiter = _b === void 0 ? \"/#?\" : _b;\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n var isSafe = function (value) {\n for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {\n var char = delimiter_1[_i];\n if (value.indexOf(char) > -1)\n return true;\n }\n return false;\n };\n var safePattern = function (prefix) {\n var prev = result[result.length - 1];\n var prevText = prefix || (prev && typeof prev === \"string\" ? prev : \"\");\n if (prev && !prevText) {\n throw new TypeError(\"Must have text between two parameters, missing text after \\\"\".concat(prev.name, \"\\\"\"));\n }\n if (!prevText || isSafe(prevText))\n return \"[^\".concat(escapeString(delimiter), \"]+?\");\n return \"(?:(?!\".concat(escapeString(prevText), \")[^\").concat(escapeString(delimiter), \"])+?\");\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || safePattern(prefix),\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nfunction tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n throw new TypeError(\"Can not repeat \\\"\".concat(token.name, \"\\\" without a prefix and suffix\"));\n }\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nfunction pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wYXRoLXRvLXJlZ2V4cC9kaXN0LmVzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDZDQUE2QztBQUN2RTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsbURBQW1EO0FBQzdFO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkIsMEJBQTBCLHlDQUF5QztBQUNuRTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLDBCQUEwQiwwQ0FBMEM7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixxQ0FBcUM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsMkNBQTJDO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQix5Q0FBeUM7QUFDL0Q7QUFDQSxrQkFBa0Isa0NBQWtDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHlCQUF5QjtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsOEJBQThCO0FBQzlCO0FBQ0EscUVBQXFFLFlBQVk7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esd0JBQXdCLG1CQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGtCQUFrQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCw4QkFBOEI7QUFDOUIscUVBQXFFLFlBQVk7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLGtEQUFrRDtBQUM5RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCw4QkFBOEI7QUFDOUIseU9BQXlPLFlBQVk7QUFDclA7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0Msc0JBQXNCO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0REFBNEQ7QUFDM0U7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9wYXRoLXRvLXJlZ2V4cC9kaXN0LmVzMjAxNS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRva2VuaXplIGlucHV0IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbGV4ZXIoc3RyKSB7XG4gICAgdmFyIHRva2VucyA9IFtdO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGNoYXIgPSBzdHJbaV07XG4gICAgICAgIGlmIChjaGFyID09PSBcIipcIiB8fCBjaGFyID09PSBcIitcIiB8fCBjaGFyID09PSBcIj9cIikge1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIk1PRElGSUVSXCIsIGluZGV4OiBpLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJFU0NBUEVEX0NIQVJcIiwgaW5kZXg6IGkrKywgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwie1wiKSB7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiT1BFTlwiLCBpbmRleDogaSwgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwifVwiKSB7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiQ0xPU0VcIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIjpcIikge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgdmFyIGogPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChqIDwgc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaik7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIC8vIGAwLTlgXG4gICAgICAgICAgICAgICAgKGNvZGUgPj0gNDggJiYgY29kZSA8PSA1NykgfHxcbiAgICAgICAgICAgICAgICAgICAgLy8gYEEtWmBcbiAgICAgICAgICAgICAgICAgICAgKGNvZGUgPj0gNjUgJiYgY29kZSA8PSA5MCkgfHxcbiAgICAgICAgICAgICAgICAgICAgLy8gYGEtemBcbiAgICAgICAgICAgICAgICAgICAgKGNvZGUgPj0gOTcgJiYgY29kZSA8PSAxMjIpIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIGBfYFxuICAgICAgICAgICAgICAgICAgICBjb2RlID09PSA5NSkge1xuICAgICAgICAgICAgICAgICAgICBuYW1lICs9IHN0cltqKytdO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW5hbWUpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgXCIuY29uY2F0KGkpKTtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJOQU1FXCIsIGluZGV4OiBpLCB2YWx1ZTogbmFtZSB9KTtcbiAgICAgICAgICAgIGkgPSBqO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwiKFwiKSB7XG4gICAgICAgICAgICB2YXIgY291bnQgPSAxO1xuICAgICAgICAgICAgdmFyIHBhdHRlcm4gPSBcIlwiO1xuICAgICAgICAgICAgdmFyIGogPSBpICsgMTtcbiAgICAgICAgICAgIGlmIChzdHJbal0gPT09IFwiP1wiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhdHRlcm4gY2Fubm90IHN0YXJ0IHdpdGggXFxcIj9cXFwiIGF0IFwiLmNvbmNhdChqKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoaiA8IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RyW2pdID09PSBcIlxcXFxcIikge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IHN0cltqKytdICsgc3RyW2orK107XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RyW2pdID09PSBcIilcIikge1xuICAgICAgICAgICAgICAgICAgICBjb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGorKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0cltqXSA9PT0gXCIoXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cltqICsgMV0gIT09IFwiP1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2FwdHVyaW5nIGdyb3VwcyBhcmUgbm90IGFsbG93ZWQgYXQgXCIuY29uY2F0KGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IHN0cltqKytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvdW50KVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmJhbGFuY2VkIHBhdHRlcm4gYXQgXCIuY29uY2F0KGkpKTtcbiAgICAgICAgICAgIGlmICghcGF0dGVybilcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTWlzc2luZyBwYXR0ZXJuIGF0IFwiLmNvbmNhdChpKSk7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiUEFUVEVSTlwiLCBpbmRleDogaSwgdmFsdWU6IHBhdHRlcm4gfSk7XG4gICAgICAgICAgICBpID0gajtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJDSEFSXCIsIGluZGV4OiBpLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgfVxuICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJFTkRcIiwgaW5kZXg6IGksIHZhbHVlOiBcIlwiIH0pO1xuICAgIHJldHVybiB0b2tlbnM7XG59XG4vKipcbiAqIFBhcnNlIGEgc3RyaW5nIGZvciB0aGUgcmF3IHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIHRva2VucyA9IGxleGVyKHN0cik7XG4gICAgdmFyIF9hID0gb3B0aW9ucy5wcmVmaXhlcywgcHJlZml4ZXMgPSBfYSA9PT0gdm9pZCAwID8gXCIuL1wiIDogX2EsIF9iID0gb3B0aW9ucy5kZWxpbWl0ZXIsIGRlbGltaXRlciA9IF9iID09PSB2b2lkIDAgPyBcIi8jP1wiIDogX2I7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBrZXkgPSAwO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgcGF0aCA9IFwiXCI7XG4gICAgdmFyIHRyeUNvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICBpZiAoaSA8IHRva2Vucy5sZW5ndGggJiYgdG9rZW5zW2ldLnR5cGUgPT09IHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zW2krK10udmFsdWU7XG4gICAgfTtcbiAgICB2YXIgbXVzdENvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0cnlDb25zdW1lKHR5cGUpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgdmFyIF9hID0gdG9rZW5zW2ldLCBuZXh0VHlwZSA9IF9hLnR5cGUsIGluZGV4ID0gX2EuaW5kZXg7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIFwiLmNvbmNhdChuZXh0VHlwZSwgXCIgYXQgXCIpLmNvbmNhdChpbmRleCwgXCIsIGV4cGVjdGVkIFwiKS5jb25jYXQodHlwZSkpO1xuICAgIH07XG4gICAgdmFyIGNvbnN1bWVUZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgdmFyIHZhbHVlO1xuICAgICAgICB3aGlsZSAoKHZhbHVlID0gdHJ5Q29uc3VtZShcIkNIQVJcIikgfHwgdHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKSkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdmFyIGlzU2FmZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBmb3IgKHZhciBfaSA9IDAsIGRlbGltaXRlcl8xID0gZGVsaW1pdGVyOyBfaSA8IGRlbGltaXRlcl8xLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgdmFyIGNoYXIgPSBkZWxpbWl0ZXJfMVtfaV07XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5kZXhPZihjaGFyKSA+IC0xKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIHZhciBzYWZlUGF0dGVybiA9IGZ1bmN0aW9uIChwcmVmaXgpIHtcbiAgICAgICAgdmFyIHByZXYgPSByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdO1xuICAgICAgICB2YXIgcHJldlRleHQgPSBwcmVmaXggfHwgKHByZXYgJiYgdHlwZW9mIHByZXYgPT09IFwic3RyaW5nXCIgPyBwcmV2IDogXCJcIik7XG4gICAgICAgIGlmIChwcmV2ICYmICFwcmV2VGV4dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk11c3QgaGF2ZSB0ZXh0IGJldHdlZW4gdHdvIHBhcmFtZXRlcnMsIG1pc3NpbmcgdGV4dCBhZnRlciBcXFwiXCIuY29uY2F0KHByZXYubmFtZSwgXCJcXFwiXCIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXByZXZUZXh0IHx8IGlzU2FmZShwcmV2VGV4dCkpXG4gICAgICAgICAgICByZXR1cm4gXCJbXlwiLmNvbmNhdChlc2NhcGVTdHJpbmcoZGVsaW1pdGVyKSwgXCJdKz9cIik7XG4gICAgICAgIHJldHVybiBcIig/Oig/IVwiLmNvbmNhdChlc2NhcGVTdHJpbmcocHJldlRleHQpLCBcIilbXlwiKS5jb25jYXQoZXNjYXBlU3RyaW5nKGRlbGltaXRlciksIFwiXSkrP1wiKTtcbiAgICB9O1xuICAgIHdoaWxlIChpIDwgdG9rZW5zLmxlbmd0aCkge1xuICAgICAgICB2YXIgY2hhciA9IHRyeUNvbnN1bWUoXCJDSEFSXCIpO1xuICAgICAgICB2YXIgbmFtZSA9IHRyeUNvbnN1bWUoXCJOQU1FXCIpO1xuICAgICAgICB2YXIgcGF0dGVybiA9IHRyeUNvbnN1bWUoXCJQQVRURVJOXCIpO1xuICAgICAgICBpZiAobmFtZSB8fCBwYXR0ZXJuKSB7XG4gICAgICAgICAgICB2YXIgcHJlZml4ID0gY2hhciB8fCBcIlwiO1xuICAgICAgICAgICAgaWYgKHByZWZpeGVzLmluZGV4T2YocHJlZml4KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBwYXRoICs9IHByZWZpeDtcbiAgICAgICAgICAgICAgICBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChwYXRoKTtcbiAgICAgICAgICAgICAgICBwYXRoID0gXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lIHx8IGtleSsrLFxuICAgICAgICAgICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICAgICAgICAgIHN1ZmZpeDogXCJcIixcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiBwYXR0ZXJuIHx8IHNhZmVQYXR0ZXJuKHByZWZpeCksXG4gICAgICAgICAgICAgICAgbW9kaWZpZXI6IHRyeUNvbnN1bWUoXCJNT0RJRklFUlwiKSB8fCBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdmFsdWUgPSBjaGFyIHx8IHRyeUNvbnN1bWUoXCJFU0NBUEVEX0NIQVJcIik7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcGF0aCArPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChwYXRoKTtcbiAgICAgICAgICAgIHBhdGggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvcGVuID0gdHJ5Q29uc3VtZShcIk9QRU5cIik7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICB2YXIgcHJlZml4ID0gY29uc3VtZVRleHQoKTtcbiAgICAgICAgICAgIHZhciBuYW1lXzEgPSB0cnlDb25zdW1lKFwiTkFNRVwiKSB8fCBcIlwiO1xuICAgICAgICAgICAgdmFyIHBhdHRlcm5fMSA9IHRyeUNvbnN1bWUoXCJQQVRURVJOXCIpIHx8IFwiXCI7XG4gICAgICAgICAgICB2YXIgc3VmZml4ID0gY29uc3VtZVRleHQoKTtcbiAgICAgICAgICAgIG11c3RDb25zdW1lKFwiQ0xPU0VcIik7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZV8xIHx8IChwYXR0ZXJuXzEgPyBrZXkrKyA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46IG5hbWVfMSAmJiAhcGF0dGVybl8xID8gc2FmZVBhdHRlcm4ocHJlZml4KSA6IHBhdHRlcm5fMSxcbiAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgICAgICAgICBzdWZmaXg6IHN1ZmZpeCxcbiAgICAgICAgICAgICAgICBtb2RpZmllcjogdHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpIHx8IFwiXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIG11c3RDb25zdW1lKFwiRU5EXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb21waWxlIGEgc3RyaW5nIHRvIGEgdGVtcGxhdGUgZnVuY3Rpb24gZm9yIHRoZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShzdHIsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdG9rZW5zVG9GdW5jdGlvbihwYXJzZShzdHIsIG9wdGlvbnMpLCBvcHRpb25zKTtcbn1cbi8qKlxuICogRXhwb3NlIGEgbWV0aG9kIGZvciB0cmFuc2Zvcm1pbmcgdG9rZW5zIGludG8gdGhlIHBhdGggZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbnNUb0Z1bmN0aW9uKHRva2Vucywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIHJlRmxhZ3MgPSBmbGFncyhvcHRpb25zKTtcbiAgICB2YXIgX2EgPSBvcHRpb25zLmVuY29kZSwgZW5jb2RlID0gX2EgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2EsIF9iID0gb3B0aW9ucy52YWxpZGF0ZSwgdmFsaWRhdGUgPSBfYiA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9iO1xuICAgIC8vIENvbXBpbGUgYWxsIHRoZSB0b2tlbnMgaW50byByZWdleHBzLlxuICAgIHZhciBtYXRjaGVzID0gdG9rZW5zLm1hcChmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIuY29uY2F0KHRva2VuLnBhdHRlcm4sIFwiKSRcIiksIHJlRmxhZ3MpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIHZhciBwYXRoID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBwYXRoICs9IHRva2VuO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YSA/IGRhdGFbdG9rZW4ubmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgb3B0aW9uYWwgPSB0b2tlbi5tb2RpZmllciA9PT0gXCI/XCIgfHwgdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiO1xuICAgICAgICAgICAgdmFyIHJlcGVhdCA9IHRva2VuLm1vZGlmaWVyID09PSBcIipcIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIrXCI7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcGVhdCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgXFxcIlwiLmNvbmNhdCh0b2tlbi5uYW1lLCBcIlxcXCIgdG8gbm90IHJlcGVhdCwgYnV0IGdvdCBhbiBhcnJheVwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIuY29uY2F0KHRva2VuLm5hbWUsIFwiXFxcIiB0byBub3QgYmUgZW1wdHlcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWdtZW50ID0gZW5jb2RlKHZhbHVlW2pdLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZSAmJiAhbWF0Y2hlc1tpXS50ZXN0KHNlZ21lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYWxsIFxcXCJcIi5jb25jYXQodG9rZW4ubmFtZSwgXCJcXFwiIHRvIG1hdGNoIFxcXCJcIikuY29uY2F0KHRva2VuLnBhdHRlcm4sIFwiXFxcIiwgYnV0IGdvdCBcXFwiXCIpLmNvbmNhdChzZWdtZW50LCBcIlxcXCJcIikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudCArIHRva2VuLnN1ZmZpeDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHZhciBzZWdtZW50ID0gZW5jb2RlKFN0cmluZyh2YWx1ZSksIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUgJiYgIW1hdGNoZXNbaV0udGVzdChzZWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgXFxcIlwiLmNvbmNhdCh0b2tlbi5uYW1lLCBcIlxcXCIgdG8gbWF0Y2ggXFxcIlwiKS5jb25jYXQodG9rZW4ucGF0dGVybiwgXCJcXFwiLCBidXQgZ290IFxcXCJcIikuY29uY2F0KHNlZ21lbnQsIFwiXFxcIlwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudCArIHRva2VuLnN1ZmZpeDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25hbClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIHZhciB0eXBlT2ZNZXNzYWdlID0gcmVwZWF0ID8gXCJhbiBhcnJheVwiIDogXCJhIHN0cmluZ1wiO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIi5jb25jYXQodG9rZW4ubmFtZSwgXCJcXFwiIHRvIGJlIFwiKS5jb25jYXQodHlwZU9mTWVzc2FnZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH07XG59XG4vKipcbiAqIENyZWF0ZSBwYXRoIG1hdGNoIGZ1bmN0aW9uIGZyb20gYHBhdGgtdG8tcmVnZXhwYCBzcGVjLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goc3RyLCBvcHRpb25zKSB7XG4gICAgdmFyIGtleXMgPSBbXTtcbiAgICB2YXIgcmUgPSBwYXRoVG9SZWdleHAoc3RyLCBrZXlzLCBvcHRpb25zKTtcbiAgICByZXR1cm4gcmVnZXhwVG9GdW5jdGlvbihyZSwga2V5cywgb3B0aW9ucyk7XG59XG4vKipcbiAqIENyZWF0ZSBhIHBhdGggbWF0Y2ggZnVuY3Rpb24gZnJvbSBgcGF0aC10by1yZWdleHBgIG91dHB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4cFRvRnVuY3Rpb24ocmUsIGtleXMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciBfYSA9IG9wdGlvbnMuZGVjb2RlLCBkZWNvZGUgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHg7IH0gOiBfYTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHBhdGhuYW1lKSB7XG4gICAgICAgIHZhciBtID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghbSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgdmFyIHBhdGggPSBtWzBdLCBpbmRleCA9IG0uaW5kZXg7XG4gICAgICAgIHZhciBwYXJhbXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICBpZiAobVtpXSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBcImNvbnRpbnVlXCI7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpIC0gMV07XG4gICAgICAgICAgICBpZiAoa2V5Lm1vZGlmaWVyID09PSBcIipcIiB8fCBrZXkubW9kaWZpZXIgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleS5uYW1lXSA9IG1baV0uc3BsaXQoa2V5LnByZWZpeCArIGtleS5zdWZmaXgpLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZSh2YWx1ZSwga2V5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFtc1trZXkubmFtZV0gPSBkZWNvZGUobVtpXSwga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBfbG9vcF8xKGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhdGg6IHBhdGgsIGluZGV4OiBpbmRleCwgcGFyYW1zOiBwYXJhbXMgfTtcbiAgICB9O1xufVxuLyoqXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmcoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oWy4rKj89XiE6JHt9KClbXFxdfC9cXFxcXSkvZywgXCJcXFxcJDFcIik7XG59XG4vKipcbiAqIEdldCB0aGUgZmxhZ3MgZm9yIGEgcmVnZXhwIGZyb20gdGhlIG9wdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIGZsYWdzKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLnNlbnNpdGl2ZSA/IFwiXCIgOiBcImlcIjtcbn1cbi8qKlxuICogUHVsbCBvdXQga2V5cyBmcm9tIGEgcmVnZXhwLlxuICovXG5mdW5jdGlvbiByZWdleHBUb1JlZ2V4cChwYXRoLCBrZXlzKSB7XG4gICAgaWYgKCFrZXlzKVxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB2YXIgZ3JvdXBzUmVnZXggPSAvXFwoKD86XFw/PCguKj8pPik/KD8hXFw/KS9nO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGV4ZWNSZXN1bHQgPSBncm91cHNSZWdleC5leGVjKHBhdGguc291cmNlKTtcbiAgICB3aGlsZSAoZXhlY1Jlc3VsdCkge1xuICAgICAgICBrZXlzLnB1c2goe1xuICAgICAgICAgICAgLy8gVXNlIHBhcmVudGhlc2l6ZWQgc3Vic3RyaW5nIG1hdGNoIGlmIGF2YWlsYWJsZSwgaW5kZXggb3RoZXJ3aXNlXG4gICAgICAgICAgICBuYW1lOiBleGVjUmVzdWx0WzFdIHx8IGluZGV4KyssXG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgICAgICBzdWZmaXg6IFwiXCIsXG4gICAgICAgICAgICBtb2RpZmllcjogXCJcIixcbiAgICAgICAgICAgIHBhdHRlcm46IFwiXCIsXG4gICAgICAgIH0pO1xuICAgICAgICBleGVjUmVzdWx0ID0gZ3JvdXBzUmVnZXguZXhlYyhwYXRoLnNvdXJjZSk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gYXJyYXkgaW50byBhIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlUb1JlZ2V4cChwYXRocywga2V5cywgb3B0aW9ucykge1xuICAgIHZhciBwYXJ0cyA9IHBhdGhzLm1hcChmdW5jdGlvbiAocGF0aCkgeyByZXR1cm4gcGF0aFRvUmVnZXhwKHBhdGgsIGtleXMsIG9wdGlvbnMpLnNvdXJjZTsgfSk7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoXCIoPzpcIi5jb25jYXQocGFydHMuam9pbihcInxcIiksIFwiKVwiKSwgZmxhZ3Mob3B0aW9ucykpO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBwYXRoIHJlZ2V4cCBmcm9tIHN0cmluZyBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gc3RyaW5nVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIHJldHVybiB0b2tlbnNUb1JlZ2V4cChwYXJzZShwYXRoLCBvcHRpb25zKSwga2V5cywgb3B0aW9ucyk7XG59XG4vKipcbiAqIEV4cG9zZSBhIGZ1bmN0aW9uIGZvciB0YWtpbmcgdG9rZW5zIGFuZCByZXR1cm5pbmcgYSBSZWdFeHAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbnNUb1JlZ2V4cCh0b2tlbnMsIGtleXMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciBfYSA9IG9wdGlvbnMuc3RyaWN0LCBzdHJpY3QgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgX2IgPSBvcHRpb25zLnN0YXJ0LCBzdGFydCA9IF9iID09PSB2b2lkIDAgPyB0cnVlIDogX2IsIF9jID0gb3B0aW9ucy5lbmQsIGVuZCA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gb3B0aW9ucy5lbmNvZGUsIGVuY29kZSA9IF9kID09PSB2b2lkIDAgPyBmdW5jdGlvbiAoeCkgeyByZXR1cm4geDsgfSA6IF9kLCBfZSA9IG9wdGlvbnMuZGVsaW1pdGVyLCBkZWxpbWl0ZXIgPSBfZSA9PT0gdm9pZCAwID8gXCIvIz9cIiA6IF9lLCBfZiA9IG9wdGlvbnMuZW5kc1dpdGgsIGVuZHNXaXRoID0gX2YgPT09IHZvaWQgMCA/IFwiXCIgOiBfZjtcbiAgICB2YXIgZW5kc1dpdGhSZSA9IFwiW1wiLmNvbmNhdChlc2NhcGVTdHJpbmcoZW5kc1dpdGgpLCBcIl18JFwiKTtcbiAgICB2YXIgZGVsaW1pdGVyUmUgPSBcIltcIi5jb25jYXQoZXNjYXBlU3RyaW5nKGRlbGltaXRlciksIFwiXVwiKTtcbiAgICB2YXIgcm91dGUgPSBzdGFydCA/IFwiXlwiIDogXCJcIjtcbiAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHRva2VucyBhbmQgY3JlYXRlIG91ciByZWdleHAgc3RyaW5nLlxuICAgIGZvciAodmFyIF9pID0gMCwgdG9rZW5zXzEgPSB0b2tlbnM7IF9pIDwgdG9rZW5zXzEubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IHRva2Vuc18xW19pXTtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcm91dGUgKz0gZXNjYXBlU3RyaW5nKGVuY29kZSh0b2tlbikpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4ucHJlZml4KSk7XG4gICAgICAgICAgICB2YXIgc3VmZml4ID0gZXNjYXBlU3RyaW5nKGVuY29kZSh0b2tlbi5zdWZmaXgpKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5wYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleXMpXG4gICAgICAgICAgICAgICAgICAgIGtleXMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHByZWZpeCB8fCBzdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLm1vZGlmaWVyID09PSBcIitcIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2QgPSB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIgPyBcIj9cIiA6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiLmNvbmNhdChwcmVmaXgsIFwiKCg/OlwiKS5jb25jYXQodG9rZW4ucGF0dGVybiwgXCIpKD86XCIpLmNvbmNhdChzdWZmaXgpLmNvbmNhdChwcmVmaXgsIFwiKD86XCIpLmNvbmNhdCh0b2tlbi5wYXR0ZXJuLCBcIikpKilcIikuY29uY2F0KHN1ZmZpeCwgXCIpXCIpLmNvbmNhdChtb2QpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIi5jb25jYXQocHJlZml4LCBcIihcIikuY29uY2F0KHRva2VuLnBhdHRlcm4sIFwiKVwiKS5jb25jYXQoc3VmZml4LCBcIilcIikuY29uY2F0KHRva2VuLm1vZGlmaWVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLm1vZGlmaWVyID09PSBcIitcIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW4gbm90IHJlcGVhdCBcXFwiXCIuY29uY2F0KHRva2VuLm5hbWUsIFwiXFxcIiB3aXRob3V0IGEgcHJlZml4IGFuZCBzdWZmaXhcIikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlICs9IFwiKFwiLmNvbmNhdCh0b2tlbi5wYXR0ZXJuLCBcIilcIikuY29uY2F0KHRva2VuLm1vZGlmaWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiLmNvbmNhdChwcmVmaXgpLmNvbmNhdChzdWZmaXgsIFwiKVwiKS5jb25jYXQodG9rZW4ubW9kaWZpZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChlbmQpIHtcbiAgICAgICAgaWYgKCFzdHJpY3QpXG4gICAgICAgICAgICByb3V0ZSArPSBcIlwiLmNvbmNhdChkZWxpbWl0ZXJSZSwgXCI/XCIpO1xuICAgICAgICByb3V0ZSArPSAhb3B0aW9ucy5lbmRzV2l0aCA/IFwiJFwiIDogXCIoPz1cIi5jb25jYXQoZW5kc1dpdGhSZSwgXCIpXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIGVuZFRva2VuID0gdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXTtcbiAgICAgICAgdmFyIGlzRW5kRGVsaW1pdGVkID0gdHlwZW9mIGVuZFRva2VuID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGRlbGltaXRlclJlLmluZGV4T2YoZW5kVG9rZW5bZW5kVG9rZW4ubGVuZ3RoIC0gMV0pID4gLTFcbiAgICAgICAgICAgIDogZW5kVG9rZW4gPT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgICAgICAgIHJvdXRlICs9IFwiKD86XCIuY29uY2F0KGRlbGltaXRlclJlLCBcIig/PVwiKS5jb25jYXQoZW5kc1dpdGhSZSwgXCIpKT9cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VuZERlbGltaXRlZCkge1xuICAgICAgICAgICAgcm91dGUgKz0gXCIoPz1cIi5jb25jYXQoZGVsaW1pdGVyUmUsIFwifFwiKS5jb25jYXQoZW5kc1dpdGhSZSwgXCIpXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVnRXhwKHJvdXRlLCBmbGFncyhvcHRpb25zKSk7XG59XG4vKipcbiAqIE5vcm1hbGl6ZSB0aGUgZ2l2ZW4gcGF0aCBzdHJpbmcsIHJldHVybmluZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBBbiBlbXB0eSBhcnJheSBjYW4gYmUgcGFzc2VkIGluIGZvciB0aGUga2V5cywgd2hpY2ggd2lsbCBob2xkIHRoZVxuICogcGxhY2Vob2xkZXIga2V5IGRlc2NyaXB0aW9ucy4gRm9yIGV4YW1wbGUsIHVzaW5nIGAvdXNlci86aWRgLCBga2V5c2Agd2lsbFxuICogY29udGFpbiBgW3sgbmFtZTogJ2lkJywgZGVsaW1pdGVyOiAnLycsIG9wdGlvbmFsOiBmYWxzZSwgcmVwZWF0OiBmYWxzZSB9XWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIGlmIChwYXRoIGluc3RhbmNlb2YgUmVnRXhwKVxuICAgICAgICByZXR1cm4gcmVnZXhwVG9SZWdleHAocGF0aCwga2V5cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpXG4gICAgICAgIHJldHVybiBhcnJheVRvUmVnZXhwKHBhdGgsIGtleXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBzdHJpbmdUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/path-to-regexp/dist.es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/prop-types/checkPropTypes.js": /*!***************************************************!*\ !*** ./node_modules/prop-types/checkPropTypes.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"(app-pages-browser)/./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = __webpack_require__(/*! ./lib/has */ \"(app-pages-browser)/./node_modules/prop-types/lib/has.js\");\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2NoZWNrUHJvcFR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYjs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDLDZCQUE2QixtQkFBTyxDQUFDLDZHQUE0QjtBQUNqRTtBQUNBLFlBQVksbUJBQU8sQ0FBQywyRUFBVzs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFlBQVk7QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFdBQVc7QUFDdEI7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkdBQTZHO0FBQzdHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG4gIHZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbiAgdmFyIGhhcyA9IHJlcXVpcmUoJy4vbGliL2hhcycpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7IC8qKi8gfVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArXG4gICAgICAgICAgICAgICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVycm9yID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IgPSBleDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgJiYgIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAgIChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICcgK1xuICAgICAgICAgICAgbG9jYXRpb24gKyAnIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICtcbiAgICAgICAgICAgICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAnICsgdHlwZW9mIGVycm9yICsgJy4gJyArXG4gICAgICAgICAgICAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICtcbiAgICAgICAgICAgICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvci5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvci5tZXNzYWdlXSA9IHRydWU7XG5cbiAgICAgICAgICB2YXIgc3RhY2sgPSBnZXRTdGFjayA/IGdldFN0YWNrKCkgOiAnJztcblxuICAgICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAgICdGYWlsZWQgJyArIGxvY2F0aW9uICsgJyB0eXBlOiAnICsgZXJyb3IubWVzc2FnZSArIChzdGFjayAhPSBudWxsID8gc3RhY2sgOiAnJylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVzZXRzIHdhcm5pbmcgY2FjaGUgd2hlbiB0ZXN0aW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNoZWNrUHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gZnVuY3Rpb24oKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjaGVja1Byb3BUeXBlcztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/prop-types/checkPropTypes.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/prop-types/factoryWithTypeCheckers.js": /*!************************************************************!*\ !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! \************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"(app-pages-browser)/./node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"(app-pages-browser)/./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar has = __webpack_require__(/*! ./lib/has */ \"(app-pages-browser)/./node_modules/prop-types/lib/has.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"(app-pages-browser)/./node_modules/prop-types/checkPropTypes.js\");\n\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixjQUFjLG1CQUFPLENBQUMsc0VBQVU7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLG9HQUFlOztBQUVwQywyQkFBMkIsbUJBQU8sQ0FBQyw2R0FBNEI7QUFDL0QsVUFBVSxtQkFBTyxDQUFDLDJFQUFXO0FBQzdCLHFCQUFxQixtQkFBTyxDQUFDLHlGQUFrQjs7QUFFL0M7O0FBRUEsSUFBSSxJQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVM7QUFDdEIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDViw4QkFBOEI7QUFDOUIsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLEtBQUs7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw0QkFBNEI7QUFDNUIsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxTQUFTLEtBQXFDO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0JBQXNCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQiwyQkFBMkI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDLDRGQUE0RixDQUFNO0FBQzdJO0FBQ0E7O0FBRUEsb0JBQW9CLGdDQUFnQztBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlIQUFpSDtBQUNqSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9saWIvaGFzJyk7XG52YXIgY2hlY2tQcm9wVHlwZXMgPSByZXF1aXJlKCcuL2NoZWNrUHJvcFR5cGVzJyk7XG5cbnZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBwcmludFdhcm5pbmcgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIHRleHQ7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcbn1cblxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXNWYWxpZEVsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpIHtcbiAgLyogZ2xvYmFsIFN5bWJvbCAqL1xuICB2YXIgSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG4gIHZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJzsgLy8gQmVmb3JlIFN5bWJvbCBzcGVjLlxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpdGVyYXRvciBtZXRob2QgZnVuY3Rpb24gY29udGFpbmVkIG9uIHRoZSBpdGVyYWJsZSBvYmplY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBpdGVyYWJsZSBhcyBjb250ZXh0OlxuICAgKlxuICAgKiAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG15SXRlcmFibGUpO1xuICAgKiAgICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICogICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG15SXRlcmFibGUpO1xuICAgKiAgICAgICAuLi5cbiAgICogICAgIH1cbiAgICpcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBtYXliZUl0ZXJhYmxlXG4gICAqIEByZXR1cm4gez9mdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gbWF5YmVJdGVyYWJsZSAmJiAoSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXSk7XG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaXRlcmF0b3JGbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdGlvbiBvZiBtZXRob2RzIHRoYXQgYWxsb3cgZGVjbGFyYXRpb24gYW5kIHZhbGlkYXRpb24gb2YgcHJvcHMgdGhhdCBhcmVcbiAgICogc3VwcGxpZWQgdG8gUmVhY3QgY29tcG9uZW50cy4gRXhhbXBsZSB1c2FnZTpcbiAgICpcbiAgICogICB2YXIgUHJvcHMgPSByZXF1aXJlKCdSZWFjdFByb3BUeXBlcycpO1xuICAgKiAgIHZhciBNeUFydGljbGUgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIHByb3AgbmFtZWQgXCJkZXNjcmlwdGlvblwiLlxuICAgKiAgICAgICBkZXNjcmlwdGlvbjogUHJvcHMuc3RyaW5nLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHJlcXVpcmVkIGVudW0gcHJvcCBuYW1lZCBcImNhdGVnb3J5XCIuXG4gICAqICAgICAgIGNhdGVnb3J5OiBQcm9wcy5vbmVPZihbJ05ld3MnLCdQaG90b3MnXSkuaXNSZXF1aXJlZCxcbiAgICpcbiAgICogICAgICAgLy8gQSBwcm9wIG5hbWVkIFwiZGlhbG9nXCIgdGhhdCByZXF1aXJlcyBhbiBpbnN0YW5jZSBvZiBEaWFsb2cuXG4gICAqICAgICAgIGRpYWxvZzogUHJvcHMuaW5zdGFuY2VPZihEaWFsb2cpLmlzUmVxdWlyZWRcbiAgICogICAgIH0sXG4gICAqICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeyAuLi4gfVxuICAgKiAgIH0pO1xuICAgKlxuICAgKiBBIG1vcmUgZm9ybWFsIHNwZWNpZmljYXRpb24gb2YgaG93IHRoZXNlIG1ldGhvZHMgYXJlIHVzZWQ6XG4gICAqXG4gICAqICAgdHlwZSA6PSBhcnJheXxib29sfGZ1bmN8b2JqZWN0fG51bWJlcnxzdHJpbmd8b25lT2YoWy4uLl0pfGluc3RhbmNlT2YoLi4uKVxuICAgKiAgIGRlY2wgOj0gUmVhY3RQcm9wVHlwZXMue3R5cGV9KC5pc1JlcXVpcmVkKT9cbiAgICpcbiAgICogRWFjaCBhbmQgZXZlcnkgZGVjbGFyYXRpb24gcHJvZHVjZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZS4gVGhpc1xuICAgKiBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGN1c3RvbSB2YWxpZGF0aW9uIGZ1bmN0aW9ucy4gRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqICB2YXIgTXlMaW5rID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgb3IgVVJJIHByb3AgbmFtZWQgXCJocmVmXCIuXG4gICAqICAgICAgaHJlZjogZnVuY3Rpb24ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gICAqICAgICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgKiAgICAgICAgaWYgKHByb3BWYWx1ZSAhPSBudWxsICYmIHR5cGVvZiBwcm9wVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAqICAgICAgICAgICAgIShwcm9wVmFsdWUgaW5zdGFuY2VvZiBVUkkpKSB7XG4gICAqICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoXG4gICAqICAgICAgICAgICAgJ0V4cGVjdGVkIGEgc3RyaW5nIG9yIGFuIFVSSSBmb3IgJyArIHByb3BOYW1lICsgJyBpbiAnICtcbiAgICogICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAqICAgICAgICAgICk7XG4gICAqICAgICAgICB9XG4gICAqICAgICAgfVxuICAgKiAgICB9LFxuICAgKiAgICByZW5kZXI6IGZ1bmN0aW9uKCkgey4uLn1cbiAgICogIH0pO1xuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cbiAgdmFyIEFOT05ZTU9VUyA9ICc8PGFub255bW91cz4+JztcblxuICAvLyBJbXBvcnRhbnQhXG4gIC8vIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBwcm9kdWN0aW9uIHZlcnNpb24gaW4gYC4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYXJyYXknKSxcbiAgICBiaWdpbnQ6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdiaWdpbnQnKSxcbiAgICBib29sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYm9vbGVhbicpLFxuICAgIGZ1bmM6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdmdW5jdGlvbicpLFxuICAgIG51bWJlcjogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ251bWJlcicpLFxuICAgIG9iamVjdDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ29iamVjdCcpLFxuICAgIHN0cmluZzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N0cmluZycpLFxuICAgIHN5bWJvbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N5bWJvbCcpLFxuXG4gICAgYW55OiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpLFxuICAgIGFycmF5T2Y6IGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcixcbiAgICBlbGVtZW50OiBjcmVhdGVFbGVtZW50VHlwZUNoZWNrZXIoKSxcbiAgICBlbGVtZW50VHlwZTogY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpLFxuICAgIGluc3RhbmNlT2Y6IGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIsXG4gICAgbm9kZTogY3JlYXRlTm9kZUNoZWNrZXIoKSxcbiAgICBvYmplY3RPZjogY3JlYXRlT2JqZWN0T2ZUeXBlQ2hlY2tlcixcbiAgICBvbmVPZjogY3JlYXRlRW51bVR5cGVDaGVja2VyLFxuICAgIG9uZU9mVHlwZTogY3JlYXRlVW5pb25UeXBlQ2hlY2tlcixcbiAgICBzaGFwZTogY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcixcbiAgICBleGFjdDogY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcixcbiAgfTtcblxuICAvKipcbiAgICogaW5saW5lZCBPYmplY3QuaXMgcG9seWZpbGwgdG8gYXZvaWQgcmVxdWlyaW5nIGNvbnN1bWVycyBzaGlwIHRoZWlyIG93blxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAgICovXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlKi9cbiAgZnVuY3Rpb24gaXMoeCwgeSkge1xuICAgIC8vIFNhbWVWYWx1ZSBhbGdvcml0aG1cbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgICAvLyBTdGVwcyA2LmItNi5lOiArMCAhPSAtMFxuICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTdGVwIDYuYTogTmFOID09IE5hTlxuICAgICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgICB9XG4gIH1cbiAgLyplc2xpbnQtZW5hYmxlIG5vLXNlbGYtY29tcGFyZSovXG5cbiAgLyoqXG4gICAqIFdlIHVzZSBhbiBFcnJvci1saWtlIG9iamVjdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBhcyBwZW9wbGUgbWF5IGNhbGxcbiAgICogUHJvcFR5cGVzIGRpcmVjdGx5IGFuZCBpbnNwZWN0IHRoZWlyIG91dHB1dC4gSG93ZXZlciwgd2UgZG9uJ3QgdXNlIHJlYWxcbiAgICogRXJyb3JzIGFueW1vcmUuIFdlIGRvbid0IGluc3BlY3QgdGhlaXIgc3RhY2sgYW55d2F5LCBhbmQgY3JlYXRpbmcgdGhlbVxuICAgKiBpcyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZSBpZiB0aGV5IGFyZSBjcmVhdGVkIHRvbyBvZnRlbiwgc3VjaCBhcyB3aGF0XG4gICAqIGhhcHBlbnMgaW4gb25lT2ZUeXBlKCkgZm9yIGFueSB0eXBlIGJlZm9yZSB0aGUgb25lIHRoYXQgbWF0Y2hlZC5cbiAgICovXG4gIGZ1bmN0aW9uIFByb3BUeXBlRXJyb3IobWVzc2FnZSwgZGF0YSkge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5kYXRhID0gZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgPyBkYXRhOiB7fTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSArICdgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSA9IHRydWU7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCAnICsgKCdpbiBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgbnVsbGAuJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkIGluICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGB1bmRlZmluZWRgLicpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjaGFpbmVkQ2hlY2tUeXBlID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgZmFsc2UpO1xuICAgIGNoYWluZWRDaGVja1R5cGUuaXNSZXF1aXJlZCA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIHRydWUpO1xuXG4gICAgcmV0dXJuIGNoYWluZWRDaGVja1R5cGU7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcihleHBlY3RlZFR5cGUpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09IGV4cGVjdGVkVHlwZSkge1xuICAgICAgICAvLyBgcHJvcFZhbHVlYCBiZWluZyBpbnN0YW5jZSBvZiwgc2F5LCBkYXRlL3JlZ2V4cCwgcGFzcyB0aGUgJ29iamVjdCdcbiAgICAgICAgLy8gY2hlY2ssIGJ1dCB3ZSBjYW4gb2ZmZXIgYSBtb3JlIHByZWNpc2UgZXJyb3IgbWVzc2FnZSBoZXJlIHJhdGhlciB0aGFuXG4gICAgICAgIC8vICdvZiB0eXBlIGBvYmplY3RgJy5cbiAgICAgICAgdmFyIHByZWNpc2VUeXBlID0gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcmVjaXNlVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCAnKSArICgnYCcgKyBleHBlY3RlZFR5cGUgKyAnYC4nKSxcbiAgICAgICAgICB7ZXhwZWN0ZWRUeXBlOiBleHBlY3RlZFR5cGV9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFueVR5cGVDaGVja2VyKCkge1xuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcihlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghUmVhY3RJcy5pc1ZhbGlkRWxlbWVudFR5cGUocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQgdHlwZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIoZXhwZWN0ZWRDbGFzcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCEocHJvcHNbcHJvcE5hbWVdIGluc3RhbmNlb2YgZXhwZWN0ZWRDbGFzcykpIHtcbiAgICAgICAgdmFyIGV4cGVjdGVkQ2xhc3NOYW1lID0gZXhwZWN0ZWRDbGFzcy5uYW1lIHx8IEFOT05ZTU9VUztcbiAgICAgICAgdmFyIGFjdHVhbENsYXNzTmFtZSA9IGdldENsYXNzTmFtZShwcm9wc1twcm9wTmFtZV0pO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBhY3R1YWxDbGFzc05hbWUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2luc3RhbmNlIG9mIGAnICsgZXhwZWN0ZWRDbGFzc05hbWUgKyAnYC4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVudW1UeXBlQ2hlY2tlcihleHBlY3RlZFZhbHVlcykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShleHBlY3RlZFZhbHVlcykpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50cyBzdXBwbGllZCB0byBvbmVPZiwgZXhwZWN0ZWQgYW4gYXJyYXksIGdvdCAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgYXJndW1lbnRzLiAnICtcbiAgICAgICAgICAgICdBIGNvbW1vbiBtaXN0YWtlIGlzIHRvIHdyaXRlIG9uZU9mKHgsIHksIHopIGluc3RlYWQgb2Ygb25lT2YoW3gsIHksIHpdKS4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpcyhwcm9wVmFsdWUsIGV4cGVjdGVkVmFsdWVzW2ldKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciB2YWx1ZXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShleHBlY3RlZFZhbHVlcywgZnVuY3Rpb24gcmVwbGFjZXIoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YXIgdHlwZSA9IGdldFByZWNpc2VUeXBlKHZhbHVlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHZhbHVlIGAnICsgU3RyaW5nKHByb3BWYWx1ZSkgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKGhhcyhwcm9wVmFsdWUsIGtleSkpIHtcbiAgICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIoYXJyYXlPZlR5cGVDaGVja2Vycykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnJheU9mVHlwZUNoZWNrZXJzKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHByaW50V2FybmluZygnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheU9mVHlwZUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICBpZiAodHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mVHlwZS4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgY2hlY2sgZnVuY3Rpb25zLCBidXQgJyArXG4gICAgICAgICAgJ3JlY2VpdmVkICcgKyBnZXRQb3N0Zml4Rm9yVHlwZVdhcm5pbmcoY2hlY2tlcikgKyAnIGF0IGluZGV4ICcgKyBpICsgJy4nXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIHZhciBjaGVja2VyUmVzdWx0ID0gY2hlY2tlcihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGNoZWNrZXJSZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGVja2VyUmVzdWx0LmRhdGEgJiYgaGFzKGNoZWNrZXJSZXN1bHQuZGF0YSwgJ2V4cGVjdGVkVHlwZScpKSB7XG4gICAgICAgICAgZXhwZWN0ZWRUeXBlcy5wdXNoKGNoZWNrZXJSZXN1bHQuZGF0YS5leHBlY3RlZFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgPSAoZXhwZWN0ZWRUeXBlcy5sZW5ndGggPiAwKSA/ICcsIGV4cGVjdGVkIG9uZSBvZiB0eXBlIFsnICsgZXhwZWN0ZWRUeXBlcy5qb2luKCcsICcpICsgJ10nOiAnJztcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agc3VwcGxpZWQgdG8gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AnICsgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGludmFsaWRWYWxpZGF0b3JFcnJvcihjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBrZXksIHR5cGUpIHtcbiAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHByb3BGdWxsTmFtZSArICcuJyArIGtleSArICdgIGlzIGludmFsaWQ7ICcgK1xuICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZSArICdgLidcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHNoYXBlVHlwZXMpIHtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBzaGFwZVR5cGVzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgY2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsaWRhdG9yRXJyb3IoY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwga2V5LCBnZXRQcmVjaXNlVHlwZShjaGVja2VyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBhbGwga2V5cyBpbiBjYXNlIHNvbWUgYXJlIHJlcXVpcmVkIGJ1dCBtaXNzaW5nIGZyb20gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoaGFzKHNoYXBlVHlwZXMsIGtleSkgJiYgdHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbGlkYXRvckVycm9yKGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIGtleSwgZ2V0UHJlY2lzZVR5cGUoY2hlY2tlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tlcikge1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcihcbiAgICAgICAgICAgICdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBrZXkgYCcgKyBrZXkgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYC4nICtcbiAgICAgICAgICAgICdcXG5CYWQgb2JqZWN0OiAnICsgSlNPTi5zdHJpbmdpZnkocHJvcHNbcHJvcE5hbWVdLCBudWxsLCAnICAnKSArXG4gICAgICAgICAgICAnXFxuVmFsaWQga2V5czogJyArIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHNoYXBlVHlwZXMpLCBudWxsLCAnICAnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGZhbHN5IHZhbHVlIGNhbid0IGJlIGEgU3ltYm9sXG4gICAgaWYgKCFwcm9wVmFsdWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddID09PSAnU3ltYm9sJ1xuICAgIGlmIChwcm9wVmFsdWVbJ0BAdG9TdHJpbmdUYWcnXSA9PT0gJ1N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIGZvciBub24tc3BlYyBjb21wbGlhbnQgU3ltYm9scyB3aGljaCBhcmUgcG9seWZpbGxlZC5cbiAgICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBwcm9wVmFsdWUgaW5zdGFuY2VvZiBTeW1ib2wpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEVxdWl2YWxlbnQgb2YgYHR5cGVvZmAgYnV0IHdpdGggc3BlY2lhbCBoYW5kbGluZyBmb3IgYXJyYXkgYW5kIHJlZ2V4cC5cbiAgZnVuY3Rpb24gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKSB7XG4gICAgdmFyIHByb3BUeXBlID0gdHlwZW9mIHByb3BWYWx1ZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ2FycmF5JztcbiAgICB9XG4gICAgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgLy8gT2xkIHdlYmtpdHMgKGF0IGxlYXN0IHVudGlsIEFuZHJvaWQgNC4wKSByZXR1cm4gJ2Z1bmN0aW9uJyByYXRoZXIgdGhhblxuICAgICAgLy8gJ29iamVjdCcgZm9yIHR5cGVvZiBhIFJlZ0V4cC4gV2UnbGwgbm9ybWFsaXplIHRoaXMgaGVyZSBzbyB0aGF0IC9ibGEvXG4gICAgICAvLyBwYXNzZXMgUHJvcFR5cGVzLm9iamVjdC5cbiAgICAgIHJldHVybiAnb2JqZWN0JztcbiAgICB9XG4gICAgaWYgKGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ3N5bWJvbCc7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFRoaXMgaGFuZGxlcyBtb3JlIHR5cGVzIHRoYW4gYGdldFByb3BUeXBlYC4gT25seSB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy5cbiAgLy8gU2VlIGBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcmAuXG4gIGZ1bmN0aW9uIGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSAndW5kZWZpbmVkJyB8fCBwcm9wVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJyArIHByb3BWYWx1ZTtcbiAgICB9XG4gICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICBpZiAocHJvcFR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfSBlbHNlIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuICdyZWdleHAnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvcFR5cGU7XG4gIH1cblxuICAvLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcG9zdGZpeGVkIHRvIGEgd2FybmluZyBhYm91dCBhbiBpbnZhbGlkIHR5cGUuXG4gIC8vIEZvciBleGFtcGxlLCBcInVuZGVmaW5lZFwiIG9yIFwib2YgdHlwZSBhcnJheVwiXG4gIGZ1bmN0aW9uIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyh2YWx1ZSkge1xuICAgIHZhciB0eXBlID0gZ2V0UHJlY2lzZVR5cGUodmFsdWUpO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgcmV0dXJuICdhbiAnICsgdHlwZTtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICBjYXNlICdyZWdleHAnOlxuICAgICAgICByZXR1cm4gJ2EgJyArIHR5cGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm5zIGNsYXNzIG5hbWUgb2YgdGhlIG9iamVjdCwgaWYgYW55LlxuICBmdW5jdGlvbiBnZXRDbGFzc05hbWUocHJvcFZhbHVlKSB7XG4gICAgaWYgKCFwcm9wVmFsdWUuY29uc3RydWN0b3IgfHwgIXByb3BWYWx1ZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgICByZXR1cm4gQU5PTllNT1VTO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBSZWFjdFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyA9IGNoZWNrUHJvcFR5cGVzO1xuICBSZWFjdFByb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGNoZWNrUHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlO1xuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/prop-types/factoryWithTypeCheckers.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/prop-types/index.js": /*!******************************************!*\ !*** ./node_modules/prop-types/index.js ***! \******************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"(app-pages-browser)/./node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"(app-pages-browser)/./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLHNFQUFVOztBQUVsQztBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQywyR0FBMkI7QUFDdEQsRUFBRSxLQUFLLEVBSU4iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/prop-types/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/prop-types/lib/ReactPropTypesSecret.js": /*!*************************************************************!*\ !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! \*************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/prop-types/lib/ReactPropTypesSecret.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/prop-types/lib/has.js": /*!********************************************!*\ !*** ./node_modules/prop-types/lib/has.js ***! \********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9oYXMuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL2hhcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZ1bmN0aW9uLmNhbGwuYmluZChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/prop-types/lib/has.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs": /*!*********************************************************!*\ !*** ./node_modules/react-hook-form/dist/index.esm.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Controller: () => (/* binding */ Controller),\n/* harmony export */ Form: () => (/* binding */ Form),\n/* harmony export */ FormProvider: () => (/* binding */ FormProvider),\n/* harmony export */ appendErrors: () => (/* binding */ appendErrors),\n/* harmony export */ get: () => (/* binding */ get),\n/* harmony export */ set: () => (/* binding */ set),\n/* harmony export */ useController: () => (/* binding */ useController),\n/* harmony export */ useFieldArray: () => (/* binding */ useFieldArray),\n/* harmony export */ useForm: () => (/* binding */ useForm),\n/* harmony export */ useFormContext: () => (/* binding */ useFormContext),\n/* harmony export */ useFormState: () => (/* binding */ useFormState),\n/* harmony export */ useWatch: () => (/* binding */ useWatch)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => react__WEBPACK_IMPORTED_MODULE_0__.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props);\n _props.current = props;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(control._formState);\n const _mounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);\n const _localProxyFormState = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = react__WEBPACK_IMPORTED_MODULE_0__.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = react__WEBPACK_IMPORTED_MODULE_0__.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = react__WEBPACK_IMPORTED_MODULE_0__.useState(control._getWatch(name, defaultValue));\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _registerProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n const fieldState = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const field = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: (event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }),\n onBlur: () => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n }), [\n name,\n control._formValues,\n disabled,\n formState.disabled,\n value,\n control._fields,\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, render({\n submit,\n }))) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = react__WEBPACK_IMPORTED_MODULE_0__.useState(control._getFieldArray(name));\n const ids = react__WEBPACK_IMPORTED_MODULE_0__.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = react__WEBPACK_IMPORTED_MODULE_0__.useRef(fields);\n const _name = react__WEBPACK_IMPORTED_MODULE_0__.useRef(name);\n const _actioned = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n rules &&\n control.register(name, rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(swap, [updateValues, name, control]),\n move: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(move, [updateValues, name, control]),\n prepend: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(prepend, [updateValues, name, control]),\n append: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(append, [updateValues, name, control]),\n remove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(remove, [updateValues, name, control]),\n insert: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(insert$1, [updateValues, name, control]),\n update: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(update, [updateValues, name, control]),\n replace: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(replace, [updateValues, name, control]),\n fields: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n const disabledField = !!(get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (_options.mode === 'onBlur' && isBlurEvent) {\n _updateValid();\n }\n else if (!isBlurEvent) {\n _updateValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n updateTouchAndDirty(name, getFieldValue(field ? field._f : get(fields, name)._f), false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n set(fieldValues, name, undefined);\n }\n }\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!_options.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = react__WEBPACK_IMPORTED_MODULE_0__.useRef(undefined);\n const _values = react__WEBPACK_IMPORTED_MODULE_0__.useRef(undefined);\n const [formState, updateFormState] = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\n\n//# sourceMappingURL=index.esm.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1ob29rLWZvcm0vZGlzdC9pbmRleC5lc20ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEI7O0FBRTFCOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3QkFBd0IsZ0RBQW1CO0FBQzNDO0FBQ0EsaU5BQWlOLG1CQUFtQjtBQUNwTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixZQUFZO0FBQ2xDLHlCQUF5QiwrQkFBK0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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Q0E7O0FBRUE7QUFDQSxZQUFZLHNHQUFzRztBQUNsSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQyxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLCtCQUErQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRkFBc0Y7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUE0RDtBQUN6RTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sYUFBYSxpQkFBaUI7QUFDOUI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsdUJBQXVCLHdDQUF3QztBQUMvRCxVQUFVO0FBQ1Ysd0JBQXdCLFVBQVUsb0JBQW9CLE1BQU0sZUFBZTtBQUMzRTtBQUNBLHdDQUF3QyxlQUFlLG1CQUFtQixFQUFFO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw0RUFBNEU7QUFDeEYsZ0NBQWdDLDJDQUFjO0FBQzlDLGdCQUFnQix5Q0FBWTtBQUM1QixzQkFBc0IseUNBQVk7QUFDbEMsa0JBQWtCLHlDQUFZO0FBQzlCLHNCQUFzQix5Q0FBWTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsK0JBQStCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMLHlCQUF5Qiw4Q0FBaUI7QUFDMUM7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3RkFBd0Y7QUFDeEY7QUFDQSxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHdCQUF3QjtBQUM5QyxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxjQUFjLDhDQUFpQjtBQUMvQixjQUFjLDhDQUFpQjtBQUMvQixpQkFBaUIsOENBQWlCO0FBQ2xDLGdCQUFnQiw4Q0FBaUI7QUFDakMsZ0JBQWdCLDhDQUFpQjtBQUNqQyxnQkFBZ0IsOENBQWlCO0FBQ2pDLGdCQUFnQiw4Q0FBaUI7QUFDakMsaUJBQWlCLDhDQUFpQjtBQUNsQyxnQkFBZ0IsMENBQWE7QUFDN0I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQSxrR0FBa0c7QUFDbEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDLHdDQUF3QztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsdUJBQXVCO0FBQ3ZCLDRCQUE0QjtBQUM1QixxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxVQUFVLElBQUk7QUFDOUU7QUFD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SUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsdUJBQXVCO0FBQ2xFO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFaUo7QUFDakoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LWhvb2stZm9ybS9kaXN0L2luZGV4LmVzbS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxudmFyIGlzQ2hlY2tCb3hJbnB1dCA9IChlbGVtZW50KSA9PiBlbGVtZW50LnR5cGUgPT09ICdjaGVja2JveCc7XG5cbnZhciBpc0RhdGVPYmplY3QgPSAodmFsdWUpID0+IHZhbHVlIGluc3RhbmNlb2YgRGF0ZTtcblxudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlKSA9PiB2YWx1ZSA9PSBudWxsO1xuXG5jb25zdCBpc09iamVjdFR5cGUgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XG52YXIgaXNPYmplY3QgPSAodmFsdWUpID0+ICFpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgJiZcbiAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICBpc09iamVjdFR5cGUodmFsdWUpICYmXG4gICAgIWlzRGF0ZU9iamVjdCh2YWx1ZSk7XG5cbnZhciBnZXRFdmVudFZhbHVlID0gKGV2ZW50KSA9PiBpc09iamVjdChldmVudCkgJiYgZXZlbnQudGFyZ2V0XG4gICAgPyBpc0NoZWNrQm94SW5wdXQoZXZlbnQudGFyZ2V0KVxuICAgICAgICA/IGV2ZW50LnRhcmdldC5jaGVja2VkXG4gICAgICAgIDogZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgOiBldmVudDtcblxudmFyIGdldE5vZGVQYXJlbnROYW1lID0gKG5hbWUpID0+IG5hbWUuc3Vic3RyaW5nKDAsIG5hbWUuc2VhcmNoKC9cXC5cXGQrKFxcLnwkKS8pKSB8fCBuYW1lO1xuXG52YXIgaXNOYW1lSW5GaWVsZEFycmF5ID0gKG5hbWVzLCBuYW1lKSA9PiBuYW1lcy5oYXMoZ2V0Tm9kZVBhcmVudE5hbWUobmFtZSkpO1xuXG52YXIgaXNQbGFpbk9iamVjdCA9ICh0ZW1wT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgcHJvdG90eXBlQ29weSA9IHRlbXBPYmplY3QuY29uc3RydWN0b3IgJiYgdGVtcE9iamVjdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gICAgcmV0dXJuIChpc09iamVjdChwcm90b3R5cGVDb3B5KSAmJiBwcm90b3R5cGVDb3B5Lmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJykpO1xufTtcblxudmFyIGlzV2ViID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2Ygd2luZG93LkhUTUxFbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG5cbmZ1bmN0aW9uIGNsb25lT2JqZWN0KGRhdGEpIHtcbiAgICBsZXQgY29weTtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShkYXRhKTtcbiAgICBjb25zdCBpc0ZpbGVMaXN0SW5zdGFuY2UgPSB0eXBlb2YgRmlsZUxpc3QgIT09ICd1bmRlZmluZWQnID8gZGF0YSBpbnN0YW5jZW9mIEZpbGVMaXN0IDogZmFsc2U7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGNvcHkgPSBuZXcgRGF0ZShkYXRhKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICBjb3B5ID0gbmV3IFNldChkYXRhKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIShpc1dlYiAmJiAoZGF0YSBpbnN0YW5jZW9mIEJsb2IgfHwgaXNGaWxlTGlzdEluc3RhbmNlKSkgJiZcbiAgICAgICAgKGlzQXJyYXkgfHwgaXNPYmplY3QoZGF0YSkpKSB7XG4gICAgICAgIGNvcHkgPSBpc0FycmF5ID8gW10gOiB7fTtcbiAgICAgICAgaWYgKCFpc0FycmF5ICYmICFpc1BsYWluT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgICBjb3B5ID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvcHlba2V5XSA9IGNsb25lT2JqZWN0KGRhdGFba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGNvcHk7XG59XG5cbnZhciBjb21wYWN0ID0gKHZhbHVlKSA9PiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmZpbHRlcihCb29sZWFuKSA6IFtdO1xuXG52YXIgaXNVbmRlZmluZWQgPSAodmFsKSA9PiB2YWwgPT09IHVuZGVmaW5lZDtcblxudmFyIGdldCA9IChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkgPT4ge1xuICAgIGlmICghcGF0aCB8fCAhaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBjb21wYWN0KHBhdGguc3BsaXQoL1ssW1xcXS5dKz8vKSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4gaXNOdWxsT3JVbmRlZmluZWQocmVzdWx0KSA/IHJlc3VsdCA6IHJlc3VsdFtrZXldLCBvYmplY3QpO1xuICAgIHJldHVybiBpc1VuZGVmaW5lZChyZXN1bHQpIHx8IHJlc3VsdCA9PT0gb2JqZWN0XG4gICAgICAgID8gaXNVbmRlZmluZWQob2JqZWN0W3BhdGhdKVxuICAgICAgICAgICAgPyBkZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIDogb2JqZWN0W3BhdGhdXG4gICAgICAgIDogcmVzdWx0O1xufTtcblxudmFyIGlzQm9vbGVhbiA9ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbic7XG5cbnZhciBpc0tleSA9ICh2YWx1ZSkgPT4gL15cXHcqJC8udGVzdCh2YWx1ZSk7XG5cbnZhciBzdHJpbmdUb1BhdGggPSAoaW5wdXQpID0+IGNvbXBhY3QoaW5wdXQucmVwbGFjZSgvW1wifCddfFxcXS9nLCAnJykuc3BsaXQoL1xcLnxcXFsvKSk7XG5cbnZhciBzZXQgPSAob2JqZWN0LCBwYXRoLCB2YWx1ZSkgPT4ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGNvbnN0IHRlbXBQYXRoID0gaXNLZXkocGF0aCkgPyBbcGF0aF0gOiBzdHJpbmdUb1BhdGgocGF0aCk7XG4gICAgY29uc3QgbGVuZ3RoID0gdGVtcFBhdGgubGVuZ3RoO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGVtcFBhdGhbaW5kZXhdO1xuICAgICAgICBsZXQgbmV3VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICBuZXdWYWx1ZSA9XG4gICAgICAgICAgICAgICAgaXNPYmplY3Qob2JqVmFsdWUpIHx8IEFycmF5LmlzQXJyYXkob2JqVmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAhaXNOYU4oK3RlbXBQYXRoW2luZGV4ICsgMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdfX3Byb3RvX18nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJyB8fCBrZXkgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0W2tleV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgb2JqZWN0ID0gb2JqZWN0W2tleV07XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG59O1xuXG5jb25zdCBFVkVOVFMgPSB7XG4gICAgQkxVUjogJ2JsdXInLFxuICAgIEZPQ1VTX09VVDogJ2ZvY3Vzb3V0JyxcbiAgICBDSEFOR0U6ICdjaGFuZ2UnLFxufTtcbmNvbnN0IFZBTElEQVRJT05fTU9ERSA9IHtcbiAgICBvbkJsdXI6ICdvbkJsdXInLFxuICAgIG9uQ2hhbmdlOiAnb25DaGFuZ2UnLFxuICAgIG9uU3VibWl0OiAnb25TdWJtaXQnLFxuICAgIG9uVG91Y2hlZDogJ29uVG91Y2hlZCcsXG4gICAgYWxsOiAnYWxsJyxcbn07XG5jb25zdCBJTlBVVF9WQUxJREFUSU9OX1JVTEVTID0ge1xuICAgIG1heDogJ21heCcsXG4gICAgbWluOiAnbWluJyxcbiAgICBtYXhMZW5ndGg6ICdtYXhMZW5ndGgnLFxuICAgIG1pbkxlbmd0aDogJ21pbkxlbmd0aCcsXG4gICAgcGF0dGVybjogJ3BhdHRlcm4nLFxuICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnLFxuICAgIHZhbGlkYXRlOiAndmFsaWRhdGUnLFxufTtcblxuY29uc3QgSG9va0Zvcm1Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbi8qKlxuICogVGhpcyBjdXN0b20gaG9vayBhbGxvd3MgeW91IHRvIGFjY2VzcyB0aGUgZm9ybSBjb250ZXh0LiB1c2VGb3JtQ29udGV4dCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIGRlZXBseSBuZXN0ZWQgc3RydWN0dXJlcywgd2hlcmUgaXQgd291bGQgYmVjb21lIGluY29udmVuaWVudCB0byBwYXNzIHRoZSBjb250ZXh0IGFzIGEgcHJvcC4gVG8gYmUgdXNlZCB3aXRoIHtAbGluayBGb3JtUHJvdmlkZXJ9LlxuICpcbiAqIEByZW1hcmtzXG4gKiBbQVBJXShodHRwczovL3JlYWN0LWhvb2stZm9ybS5jb20vZG9jcy91c2Vmb3JtY29udGV4dCkg4oCiIFtEZW1vXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVhY3QtaG9vay1mb3JtLXY3LWZvcm0tY29udGV4dC15dHVkaSlcbiAqXG4gKiBAcmV0dXJucyByZXR1cm4gYWxsIHVzZUZvcm0gbWV0aG9kc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIEFwcCgpIHtcbiAqICAgY29uc3QgbWV0aG9kcyA9IHVzZUZvcm0oKTtcbiAqICAgY29uc3Qgb25TdWJtaXQgPSBkYXRhID0+IGNvbnNvbGUubG9nKGRhdGEpO1xuICpcbiAqICAgcmV0dXJuIChcbiAqICAgICA8Rm9ybVByb3ZpZGVyIHsuLi5tZXRob2RzfSA+XG4gKiAgICAgICA8Zm9ybSBvblN1Ym1pdD17bWV0aG9kcy5oYW5kbGVTdWJtaXQob25TdWJtaXQpfT5cbiAqICAgICAgICAgPE5lc3RlZElucHV0IC8+XG4gKiAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgLz5cbiAqICAgICAgIDwvZm9ybT5cbiAqICAgICA8L0Zvcm1Qcm92aWRlcj5cbiAqICAgKTtcbiAqIH1cbiAqXG4gKiAgZnVuY3Rpb24gTmVzdGVkSW5wdXQoKSB7XG4gKiAgIGNvbnN0IHsgcmVnaXN0ZXIgfSA9IHVzZUZvcm1Db250ZXh0KCk7IC8vIHJldHJpZXZlIGFsbCBob29rIG1ldGhvZHNcbiAqICAgcmV0dXJuIDxpbnB1dCB7Li4ucmVnaXN0ZXIoXCJ0ZXN0XCIpfSAvPjtcbiAqIH1cbiAqIGBgYFxuICovXG5jb25zdCB1c2VGb3JtQ29udGV4dCA9ICgpID0+IFJlYWN0LnVzZUNvbnRleHQoSG9va0Zvcm1Db250ZXh0KTtcbi8qKlxuICogQSBwcm92aWRlciBjb21wb25lbnQgdGhhdCBwcm9wYWdhdGVzIHRoZSBgdXNlRm9ybWAgbWV0aG9kcyB0byBhbGwgY2hpbGRyZW4gY29tcG9uZW50cyB2aWEgW1JlYWN0IENvbnRleHRdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9jb250ZXh0Lmh0bWwpIEFQSS4gVG8gYmUgdXNlZCB3aXRoIHtAbGluayB1c2VGb3JtQ29udGV4dH0uXG4gKlxuICogQHJlbWFya3NcbiAqIFtBUEldKGh0dHBzOi8vcmVhY3QtaG9vay1mb3JtLmNvbS9kb2NzL3VzZWZvcm1jb250ZXh0KSDigKIgW0RlbW9dKGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy9yZWFjdC1ob29rLWZvcm0tdjctZm9ybS1jb250ZXh0LXl0dWRpKVxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIGFsbCB1c2VGb3JtIG1ldGhvZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IG1ldGhvZHMgPSB1c2VGb3JtKCk7XG4gKiAgIGNvbnN0IG9uU3VibWl0ID0gZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKTtcbiAqXG4gKiAgIHJldHVybiAoXG4gKiAgICAgPEZvcm1Qcm92aWRlciB7Li4ubWV0aG9kc30gPlxuICogICAgICAgPGZvcm0gb25TdWJtaXQ9e21ldGhvZHMuaGFuZGxlU3VibWl0KG9uU3VibWl0KX0+XG4gKiAgICAgICAgIDxOZXN0ZWRJbnB1dCAvPlxuICogICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIC8+XG4gKiAgICAgICA8L2Zvcm0+XG4gKiAgICAgPC9Gb3JtUHJvdmlkZXI+XG4gKiAgICk7XG4gKiB9XG4gKlxuICogIGZ1bmN0aW9uIE5lc3RlZElucHV0KCkge1xuICogICBjb25zdCB7IHJlZ2lzdGVyIH0gPSB1c2VGb3JtQ29udGV4dCgpOyAvLyByZXRyaWV2ZSBhbGwgaG9vayBtZXRob2RzXG4gKiAgIHJldHVybiA8aW5wdXQgey4uLnJlZ2lzdGVyKFwidGVzdFwiKX0gLz47XG4gKiB9XG4gKiBgYGBcbiAqL1xuY29uc3QgRm9ybVByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uZGF0YSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KEhvb2tGb3JtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogZGF0YSB9LCBjaGlsZHJlbikpO1xufTtcblxudmFyIGdldFByb3h5Rm9ybVN0YXRlID0gKGZvcm1TdGF0ZSwgY29udHJvbCwgbG9jYWxQcm94eUZvcm1TdGF0ZSwgaXNSb290ID0gdHJ1ZSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlczogY29udHJvbC5fZGVmYXVsdFZhbHVlcyxcbiAgICB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1TdGF0ZSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzdWx0LCBrZXksIHtcbiAgICAgICAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IF9rZXkgPSBrZXk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wuX3Byb3h5Rm9ybVN0YXRlW19rZXldICE9PSBWQUxJREFUSU9OX01PREUuYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuX3Byb3h5Rm9ybVN0YXRlW19rZXldID0gIWlzUm9vdCB8fCBWQUxJREFUSU9OX01PREUuYWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2NhbFByb3h5Rm9ybVN0YXRlICYmIChsb2NhbFByb3h5Rm9ybVN0YXRlW19rZXldID0gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1TdGF0ZVtfa2V5XTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxudmFyIGlzRW1wdHlPYmplY3QgPSAodmFsdWUpID0+IGlzT2JqZWN0KHZhbHVlKSAmJiAhT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aDtcblxudmFyIHNob3VsZFJlbmRlckZvcm1TdGF0ZSA9IChmb3JtU3RhdGVEYXRhLCBfcHJveHlGb3JtU3RhdGUsIHVwZGF0ZUZvcm1TdGF0ZSwgaXNSb290KSA9PiB7XG4gICAgdXBkYXRlRm9ybVN0YXRlKGZvcm1TdGF0ZURhdGEpO1xuICAgIGNvbnN0IHsgbmFtZSwgLi4uZm9ybVN0YXRlIH0gPSBmb3JtU3RhdGVEYXRhO1xuICAgIHJldHVybiAoaXNFbXB0eU9iamVjdChmb3JtU3RhdGUpIHx8XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1TdGF0ZSkubGVuZ3RoID49IE9iamVjdC5rZXlzKF9wcm94eUZvcm1TdGF0ZSkubGVuZ3RoIHx8XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1TdGF0ZSkuZmluZCgoa2V5KSA9PiBfcHJveHlGb3JtU3RhdGVba2V5XSA9PT1cbiAgICAgICAgICAgICghaXNSb290IHx8IFZBTElEQVRJT05fTU9ERS5hbGwpKSk7XG59O1xuXG52YXIgY29udmVydFRvQXJyYXlQYXlsb2FkID0gKHZhbHVlKSA9PiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pO1xuXG52YXIgc2hvdWxkU3Vic2NyaWJlQnlOYW1lID0gKG5hbWUsIHNpZ25hbE5hbWUsIGV4YWN0KSA9PiAhbmFtZSB8fFxuICAgICFzaWduYWxOYW1lIHx8XG4gICAgbmFtZSA9PT0gc2lnbmFsTmFtZSB8fFxuICAgIGNvbnZlcnRUb0FycmF5UGF5bG9hZChuYW1lKS5zb21lKChjdXJyZW50TmFtZSkgPT4gY3VycmVudE5hbWUgJiZcbiAgICAgICAgKGV4YWN0XG4gICAgICAgICAgICA/IGN1cnJlbnROYW1lID09PSBzaWduYWxOYW1lXG4gICAgICAgICAgICA6IGN1cnJlbnROYW1lLnN0YXJ0c1dpdGgoc2lnbmFsTmFtZSkgfHxcbiAgICAgICAgICAgICAgICBzaWduYWxOYW1lLnN0YXJ0c1dpdGgoY3VycmVudE5hbWUpKSk7XG5cbmZ1bmN0aW9uIHVzZVN1YnNjcmliZShwcm9wcykge1xuICAgIGNvbnN0IF9wcm9wcyA9IFJlYWN0LnVzZVJlZihwcm9wcyk7XG4gICAgX3Byb3BzLmN1cnJlbnQgPSBwcm9wcztcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSAhcHJvcHMuZGlzYWJsZWQgJiZcbiAgICAgICAgICAgIF9wcm9wcy5jdXJyZW50LnN1YmplY3QgJiZcbiAgICAgICAgICAgIF9wcm9wcy5jdXJyZW50LnN1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBfcHJvcHMuY3VycmVudC5uZXh0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24gJiYgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH07XG4gICAgfSwgW3Byb3BzLmRpc2FibGVkXSk7XG59XG5cbi8qKlxuICogVGhpcyBjdXN0b20gaG9vayBhbGxvd3MgeW91IHRvIHN1YnNjcmliZSB0byBlYWNoIGZvcm0gc3RhdGUsIGFuZCBpc29sYXRlIHRoZSByZS1yZW5kZXIgYXQgdGhlIGN1c3RvbSBob29rIGxldmVsLiBJdCBoYXMgaXRzIHNjb3BlIGluIHRlcm1zIG9mIGZvcm0gc3RhdGUgc3Vic2NyaXB0aW9uLCBzbyBpdCB3b3VsZCBub3QgYWZmZWN0IG90aGVyIHVzZUZvcm1TdGF0ZSBhbmQgdXNlRm9ybS4gVXNpbmcgdGhpcyBob29rIGNhbiByZWR1Y2UgdGhlIHJlLXJlbmRlciBpbXBhY3Qgb24gbGFyZ2UgYW5kIGNvbXBsZXggZm9ybSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcmVtYXJrc1xuICogW0FQSV0oaHR0cHM6Ly9yZWFjdC1ob29rLWZvcm0uY29tL2RvY3MvdXNlZm9ybXN0YXRlKSDigKIgW0RlbW9dKGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy91c2Vmb3Jtc3RhdGUtNzV4bHkpXG4gKlxuICogQHBhcmFtIHByb3BzIC0gaW5jbHVkZSBvcHRpb25zIG9uIHNwZWNpZnkgZmllbGRzIHRvIHN1YnNjcmliZS4ge0BsaW5rIFVzZUZvcm1TdGF0ZVJldHVybn1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IHsgcmVnaXN0ZXIsIGhhbmRsZVN1Ym1pdCwgY29udHJvbCB9ID0gdXNlRm9ybSh7XG4gKiAgICAgZGVmYXVsdFZhbHVlczoge1xuICogICAgIGZpcnN0TmFtZTogXCJmaXJzdE5hbWVcIlxuICogICB9fSk7XG4gKiAgIGNvbnN0IHsgZGlydHlGaWVsZHMgfSA9IHVzZUZvcm1TdGF0ZSh7XG4gKiAgICAgY29udHJvbFxuICogICB9KTtcbiAqICAgY29uc3Qgb25TdWJtaXQgPSAoZGF0YSkgPT4gY29uc29sZS5sb2coZGF0YSk7XG4gKlxuICogICByZXR1cm4gKFxuICogICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXQob25TdWJtaXQpfT5cbiAqICAgICAgIDxpbnB1dCB7Li4ucmVnaXN0ZXIoXCJmaXJzdE5hbWVcIil9IHBsYWNlaG9sZGVyPVwiRmlyc3QgTmFtZVwiIC8+XG4gKiAgICAgICB7ZGlydHlGaWVsZHMuZmlyc3ROYW1lICYmIDxwPkZpZWxkIGlzIGRpcnR5LjwvcD59XG4gKiAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIC8+XG4gKiAgICAgPC9mb3JtPlxuICogICApO1xuICogfVxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHVzZUZvcm1TdGF0ZShwcm9wcykge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB1c2VGb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgY29udHJvbCA9IG1ldGhvZHMuY29udHJvbCwgZGlzYWJsZWQsIG5hbWUsIGV4YWN0IH0gPSBwcm9wcyB8fCB7fTtcbiAgICBjb25zdCBbZm9ybVN0YXRlLCB1cGRhdGVGb3JtU3RhdGVdID0gUmVhY3QudXNlU3RhdGUoY29udHJvbC5fZm9ybVN0YXRlKTtcbiAgICBjb25zdCBfbW91bnRlZCA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgICBjb25zdCBfbG9jYWxQcm94eUZvcm1TdGF0ZSA9IFJlYWN0LnVzZVJlZih7XG4gICAgICAgIGlzRGlydHk6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBkaXJ0eUZpZWxkczogZmFsc2UsXG4gICAgICAgIHRvdWNoZWRGaWVsZHM6IGZhbHNlLFxuICAgICAgICB2YWxpZGF0aW5nRmllbGRzOiBmYWxzZSxcbiAgICAgICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yczogZmFsc2UsXG4gICAgfSk7XG4gICAgY29uc3QgX25hbWUgPSBSZWFjdC51c2VSZWYobmFtZSk7XG4gICAgX25hbWUuY3VycmVudCA9IG5hbWU7XG4gICAgdXNlU3Vic2NyaWJlKHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4gX21vdW50ZWQuY3VycmVudCAmJlxuICAgICAgICAgICAgc2hvdWxkU3Vic2NyaWJlQnlOYW1lKF9uYW1lLmN1cnJlbnQsIHZhbHVlLm5hbWUsIGV4YWN0KSAmJlxuICAgICAgICAgICAgc2hvdWxkUmVuZGVyRm9ybVN0YXRlKHZhbHVlLCBfbG9jYWxQcm94eUZvcm1TdGF0ZS5jdXJyZW50LCBjb250cm9sLl91cGRhdGVGb3JtU3RhdGUpICYmXG4gICAgICAgICAgICB1cGRhdGVGb3JtU3RhdGUoe1xuICAgICAgICAgICAgICAgIC4uLmNvbnRyb2wuX2Zvcm1TdGF0ZSxcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzdWJqZWN0OiBjb250cm9sLl9zdWJqZWN0cy5zdGF0ZSxcbiAgICB9KTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBfbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgX2xvY2FsUHJveHlGb3JtU3RhdGUuY3VycmVudC5pc1ZhbGlkICYmIGNvbnRyb2wuX3VwZGF0ZVZhbGlkKHRydWUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgX21vdW50ZWQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgIH0sIFtjb250cm9sXSk7XG4gICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZ2V0UHJveHlGb3JtU3RhdGUoZm9ybVN0YXRlLCBjb250cm9sLCBfbG9jYWxQcm94eUZvcm1TdGF0ZS5jdXJyZW50LCBmYWxzZSksIFtmb3JtU3RhdGUsIGNvbnRyb2xdKTtcbn1cblxudmFyIGlzU3RyaW5nID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuXG52YXIgZ2VuZXJhdGVXYXRjaE91dHB1dCA9IChuYW1lcywgX25hbWVzLCBmb3JtVmFsdWVzLCBpc0dsb2JhbCwgZGVmYXVsdFZhbHVlKSA9PiB7XG4gICAgaWYgKGlzU3RyaW5nKG5hbWVzKSkge1xuICAgICAgICBpc0dsb2JhbCAmJiBfbmFtZXMud2F0Y2guYWRkKG5hbWVzKTtcbiAgICAgICAgcmV0dXJuIGdldChmb3JtVmFsdWVzLCBuYW1lcywgZGVmYXVsdFZhbHVlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZXMpKSB7XG4gICAgICAgIHJldHVybiBuYW1lcy5tYXAoKGZpZWxkTmFtZSkgPT4gKGlzR2xvYmFsICYmIF9uYW1lcy53YXRjaC5hZGQoZmllbGROYW1lKSwgZ2V0KGZvcm1WYWx1ZXMsIGZpZWxkTmFtZSkpKTtcbiAgICB9XG4gICAgaXNHbG9iYWwgJiYgKF9uYW1lcy53YXRjaEFsbCA9IHRydWUpO1xuICAgIHJldHVybiBmb3JtVmFsdWVzO1xufTtcblxuLyoqXG4gKiBDdXN0b20gaG9vayB0byBzdWJzY3JpYmUgdG8gZmllbGQgY2hhbmdlIGFuZCBpc29sYXRlIHJlLXJlbmRlcmluZyBhdCB0aGUgY29tcG9uZW50IGxldmVsLlxuICpcbiAqIEByZW1hcmtzXG4gKlxuICogW0FQSV0oaHR0cHM6Ly9yZWFjdC1ob29rLWZvcm0uY29tL2RvY3MvdXNld2F0Y2gpIOKAoiBbRGVtb10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3JlYWN0LWhvb2stZm9ybS12Ny10cy11c2V3YXRjaC1oOWk1ZSlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGNvbnRyb2wgfSA9IHVzZUZvcm0oKTtcbiAqIGNvbnN0IHZhbHVlcyA9IHVzZVdhdGNoKHtcbiAqICAgbmFtZTogXCJmaWVsZE5hbWVcIlxuICogICBjb250cm9sLFxuICogfSlcbiAqIGBgYFxuICovXG5mdW5jdGlvbiB1c2VXYXRjaChwcm9wcykge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB1c2VGb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgY29udHJvbCA9IG1ldGhvZHMuY29udHJvbCwgbmFtZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgZXhhY3QsIH0gPSBwcm9wcyB8fCB7fTtcbiAgICBjb25zdCBfbmFtZSA9IFJlYWN0LnVzZVJlZihuYW1lKTtcbiAgICBfbmFtZS5jdXJyZW50ID0gbmFtZTtcbiAgICB1c2VTdWJzY3JpYmUoe1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgc3ViamVjdDogY29udHJvbC5fc3ViamVjdHMudmFsdWVzLFxuICAgICAgICBuZXh0OiAoZm9ybVN0YXRlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3Vic2NyaWJlQnlOYW1lKF9uYW1lLmN1cnJlbnQsIGZvcm1TdGF0ZS5uYW1lLCBleGFjdCkpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWx1ZShjbG9uZU9iamVjdChnZW5lcmF0ZVdhdGNoT3V0cHV0KF9uYW1lLmN1cnJlbnQsIGNvbnRyb2wuX25hbWVzLCBmb3JtU3RhdGUudmFsdWVzIHx8IGNvbnRyb2wuX2Zvcm1WYWx1ZXMsIGZhbHNlLCBkZWZhdWx0VmFsdWUpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgW3ZhbHVlLCB1cGRhdGVWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShjb250cm9sLl9nZXRXYXRjaChuYW1lLCBkZWZhdWx0VmFsdWUpKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4gY29udHJvbC5fcmVtb3ZlVW5tb3VudGVkKCkpO1xuICAgIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBDdXN0b20gaG9vayB0byB3b3JrIHdpdGggY29udHJvbGxlZCBjb21wb25lbnQsIHRoaXMgZnVuY3Rpb24gcHJvdmlkZSB5b3Ugd2l0aCBib3RoIGZvcm0gYW5kIGZpZWxkIGxldmVsIHN0YXRlLiBSZS1yZW5kZXIgaXMgaXNvbGF0ZWQgYXQgdGhlIGhvb2sgbGV2ZWwuXG4gKlxuICogQHJlbWFya3NcbiAqIFtBUEldKGh0dHBzOi8vcmVhY3QtaG9vay1mb3JtLmNvbS9kb2NzL3VzZWNvbnRyb2xsZXIpIOKAoiBbRGVtb10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3VzZWNvbnRyb2xsZXItMG84cHgpXG4gKlxuICogQHBhcmFtIHByb3BzIC0gdGhlIHBhdGggbmFtZSB0byB0aGUgZm9ybSBmaWVsZCB2YWx1ZSwgYW5kIHZhbGlkYXRpb24gcnVsZXMuXG4gKlxuICogQHJldHVybnMgZmllbGQgcHJvcGVydGllcywgZmllbGQgYW5kIGZvcm0gc3RhdGUuIHtAbGluayBVc2VDb250cm9sbGVyUmV0dXJufVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIElucHV0KHByb3BzKSB7XG4gKiAgIGNvbnN0IHsgZmllbGQsIGZpZWxkU3RhdGUsIGZvcm1TdGF0ZSB9ID0gdXNlQ29udHJvbGxlcihwcm9wcyk7XG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxpbnB1dCB7Li4uZmllbGR9IHBsYWNlaG9sZGVyPXtwcm9wcy5uYW1lfSAvPlxuICogICAgICAgPHA+e2ZpZWxkU3RhdGUuaXNUb3VjaGVkICYmIFwiVG91Y2hlZFwifTwvcD5cbiAqICAgICAgIDxwPntmb3JtU3RhdGUuaXNTdWJtaXR0ZWQgPyBcInN1Ym1pdHRlZFwiIDogXCJcIn08L3A+XG4gKiAgICAgPC9kaXY+XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdXNlQ29udHJvbGxlcihwcm9wcykge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB1c2VGb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgbmFtZSwgZGlzYWJsZWQsIGNvbnRyb2wgPSBtZXRob2RzLmNvbnRyb2wsIHNob3VsZFVucmVnaXN0ZXIgfSA9IHByb3BzO1xuICAgIGNvbnN0IGlzQXJyYXlGaWVsZCA9IGlzTmFtZUluRmllbGRBcnJheShjb250cm9sLl9uYW1lcy5hcnJheSwgbmFtZSk7XG4gICAgY29uc3QgdmFsdWUgPSB1c2VXYXRjaCh7XG4gICAgICAgIGNvbnRyb2wsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0KGNvbnRyb2wuX2Zvcm1WYWx1ZXMsIG5hbWUsIGdldChjb250cm9sLl9kZWZhdWx0VmFsdWVzLCBuYW1lLCBwcm9wcy5kZWZhdWx0VmFsdWUpKSxcbiAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgZm9ybVN0YXRlID0gdXNlRm9ybVN0YXRlKHtcbiAgICAgICAgY29udHJvbCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgX3JlZ2lzdGVyUHJvcHMgPSBSZWFjdC51c2VSZWYoY29udHJvbC5yZWdpc3RlcihuYW1lLCB7XG4gICAgICAgIC4uLnByb3BzLnJ1bGVzLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgLi4uKGlzQm9vbGVhbihwcm9wcy5kaXNhYmxlZCkgPyB7IGRpc2FibGVkOiBwcm9wcy5kaXNhYmxlZCB9IDoge30pLFxuICAgIH0pKTtcbiAgICBjb25zdCBmaWVsZFN0YXRlID0gUmVhY3QudXNlTWVtbygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSwge1xuICAgICAgICBpbnZhbGlkOiB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZ2V0OiAoKSA9PiAhIWdldChmb3JtU3RhdGUuZXJyb3JzLCBuYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgaXNEaXJ0eToge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGdldDogKCkgPT4gISFnZXQoZm9ybVN0YXRlLmRpcnR5RmllbGRzLCBuYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgaXNUb3VjaGVkOiB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZ2V0OiAoKSA9PiAhIWdldChmb3JtU3RhdGUudG91Y2hlZEZpZWxkcywgbmFtZSksXG4gICAgICAgIH0sXG4gICAgICAgIGlzVmFsaWRhdGluZzoge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGdldDogKCkgPT4gISFnZXQoZm9ybVN0YXRlLnZhbGlkYXRpbmdGaWVsZHMsIG5hbWUpLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGdldDogKCkgPT4gZ2V0KGZvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpLFxuICAgICAgICB9LFxuICAgIH0pLCBbZm9ybVN0YXRlLCBuYW1lXSk7XG4gICAgY29uc3QgZmllbGQgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICAuLi4oaXNCb29sZWFuKGRpc2FibGVkKSB8fCBmb3JtU3RhdGUuZGlzYWJsZWRcbiAgICAgICAgICAgID8geyBkaXNhYmxlZDogZm9ybVN0YXRlLmRpc2FibGVkIHx8IGRpc2FibGVkIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICBvbkNoYW5nZTogKGV2ZW50KSA9PiBfcmVnaXN0ZXJQcm9wcy5jdXJyZW50Lm9uQ2hhbmdlKHtcbiAgICAgICAgICAgIHRhcmdldDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBnZXRFdmVudFZhbHVlKGV2ZW50KSxcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHR5cGU6IEVWRU5UUy5DSEFOR0UsXG4gICAgICAgIH0pLFxuICAgICAgICBvbkJsdXI6ICgpID0+IF9yZWdpc3RlclByb3BzLmN1cnJlbnQub25CbHVyKHtcbiAgICAgICAgICAgIHRhcmdldDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBnZXQoY29udHJvbC5fZm9ybVZhbHVlcywgbmFtZSksXG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiBFVkVOVFMuQkxVUixcbiAgICAgICAgfSksXG4gICAgICAgIHJlZjogKGVsbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoY29udHJvbC5fZmllbGRzLCBuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBlbG0pIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fZi5yZWYgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzOiAoKSA9PiBlbG0uZm9jdXMoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiAoKSA9PiBlbG0uc2VsZWN0KCksXG4gICAgICAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5OiAobWVzc2FnZSkgPT4gZWxtLnNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2UpLFxuICAgICAgICAgICAgICAgICAgICByZXBvcnRWYWxpZGl0eTogKCkgPT4gZWxtLnJlcG9ydFZhbGlkaXR5KCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KSwgW1xuICAgICAgICBuYW1lLFxuICAgICAgICBjb250cm9sLl9mb3JtVmFsdWVzLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgZm9ybVN0YXRlLmRpc2FibGVkLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29udHJvbC5fZmllbGRzLFxuICAgIF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IF9zaG91bGRVbnJlZ2lzdGVyRmllbGQgPSBjb250cm9sLl9vcHRpb25zLnNob3VsZFVucmVnaXN0ZXIgfHwgc2hvdWxkVW5yZWdpc3RlcjtcbiAgICAgICAgY29uc3QgdXBkYXRlTW91bnRlZCA9IChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoY29udHJvbC5fZmllbGRzLCBuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC5fZikge1xuICAgICAgICAgICAgICAgIGZpZWxkLl9mLm1vdW50ID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHVwZGF0ZU1vdW50ZWQobmFtZSwgdHJ1ZSk7XG4gICAgICAgIGlmIChfc2hvdWxkVW5yZWdpc3RlckZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNsb25lT2JqZWN0KGdldChjb250cm9sLl9vcHRpb25zLmRlZmF1bHRWYWx1ZXMsIG5hbWUpKTtcbiAgICAgICAgICAgIHNldChjb250cm9sLl9kZWZhdWx0VmFsdWVzLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQoZ2V0KGNvbnRyb2wuX2Zvcm1WYWx1ZXMsIG5hbWUpKSkge1xuICAgICAgICAgICAgICAgIHNldChjb250cm9sLl9mb3JtVmFsdWVzLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgIWlzQXJyYXlGaWVsZCAmJiBjb250cm9sLnJlZ2lzdGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgKGlzQXJyYXlGaWVsZFxuICAgICAgICAgICAgICAgID8gX3Nob3VsZFVucmVnaXN0ZXJGaWVsZCAmJiAhY29udHJvbC5fc3RhdGUuYWN0aW9uXG4gICAgICAgICAgICAgICAgOiBfc2hvdWxkVW5yZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgICAgID8gY29udHJvbC51bnJlZ2lzdGVyKG5hbWUpXG4gICAgICAgICAgICAgICAgOiB1cGRhdGVNb3VudGVkKG5hbWUsIGZhbHNlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZSwgY29udHJvbCwgaXNBcnJheUZpZWxkLCBzaG91bGRVbnJlZ2lzdGVyXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29udHJvbC5fdXBkYXRlRGlzYWJsZWRGaWVsZCh7XG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGZpZWxkczogY29udHJvbC5fZmllbGRzLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW2Rpc2FibGVkLCBuYW1lLCBjb250cm9sXSk7XG4gICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgZmllbGQsXG4gICAgICAgIGZvcm1TdGF0ZSxcbiAgICAgICAgZmllbGRTdGF0ZSxcbiAgICB9KSwgW2ZpZWxkLCBmb3JtU3RhdGUsIGZpZWxkU3RhdGVdKTtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgYmFzZWQgb24gYHVzZUNvbnRyb2xsZXJgIGhvb2sgdG8gd29yayB3aXRoIGNvbnRyb2xsZWQgY29tcG9uZW50LlxuICpcbiAqIEByZW1hcmtzXG4gKiBbQVBJXShodHRwczovL3JlYWN0LWhvb2stZm9ybS5jb20vZG9jcy91c2Vjb250cm9sbGVyL2NvbnRyb2xsZXIpIOKAoiBbRGVtb10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3JlYWN0LWhvb2stZm9ybS12Ni1jb250cm9sbGVyLXRzLWp3eXp3KSDigKIgW1ZpZGVvXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PU4yVU5rX1VDVnlBKVxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHRoZSBwYXRoIG5hbWUgdG8gdGhlIGZvcm0gZmllbGQgdmFsdWUsIGFuZCB2YWxpZGF0aW9uIHJ1bGVzLlxuICpcbiAqIEByZXR1cm5zIHByb3ZpZGUgZmllbGQgaGFuZGxlciBmdW5jdGlvbnMsIGZpZWxkIGFuZCBmb3JtIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIEFwcCgpIHtcbiAqICAgY29uc3QgeyBjb250cm9sIH0gPSB1c2VGb3JtPEZvcm1WYWx1ZXM+KHtcbiAqICAgICBkZWZhdWx0VmFsdWVzOiB7XG4gKiAgICAgICB0ZXN0OiBcIlwiXG4gKiAgICAgfVxuICogICB9KTtcbiAqXG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGZvcm0+XG4gKiAgICAgICA8Q29udHJvbGxlclxuICogICAgICAgICBjb250cm9sPXtjb250cm9sfVxuICogICAgICAgICBuYW1lPVwidGVzdFwiXG4gKiAgICAgICAgIHJlbmRlcj17KHsgZmllbGQ6IHsgb25DaGFuZ2UsIG9uQmx1ciwgdmFsdWUsIHJlZiB9LCBmb3JtU3RhdGUsIGZpZWxkU3RhdGUgfSkgPT4gKFxuICogICAgICAgICAgIDw+XG4gKiAgICAgICAgICAgICA8aW5wdXRcbiAqICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfSAvLyBzZW5kIHZhbHVlIHRvIGhvb2sgZm9ybVxuICogICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn0gLy8gbm90aWZ5IHdoZW4gaW5wdXQgaXMgdG91Y2hlZFxuICogICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9IC8vIHJldHVybiB1cGRhdGVkIHZhbHVlXG4gKiAgICAgICAgICAgICAgIHJlZj17cmVmfSAvLyBzZXQgcmVmIGZvciBmb2N1cyBtYW5hZ2VtZW50XG4gKiAgICAgICAgICAgICAvPlxuICogICAgICAgICAgICAgPHA+e2Zvcm1TdGF0ZS5pc1N1Ym1pdHRlZCA/IFwic3VibWl0dGVkXCIgOiBcIlwifTwvcD5cbiAqICAgICAgICAgICAgIDxwPntmaWVsZFN0YXRlLmlzVG91Y2hlZCA/IFwidG91Y2hlZFwiIDogXCJcIn08L3A+XG4gKiAgICAgICAgICAgPC8+XG4gKiAgICAgICAgICl9XG4gKiAgICAgICAvPlxuICogICAgIDwvZm9ybT5cbiAqICAgKTtcbiAqIH1cbiAqIGBgYFxuICovXG5jb25zdCBDb250cm9sbGVyID0gKHByb3BzKSA9PiBwcm9wcy5yZW5kZXIodXNlQ29udHJvbGxlcihwcm9wcykpO1xuXG5jb25zdCBmbGF0dGVuID0gKG9iaikgPT4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICAgICAgaWYgKGlzT2JqZWN0VHlwZShvYmpba2V5XSkgJiYgb2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5lc3RlZCA9IGZsYXR0ZW4ob2JqW2tleV0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBuZXN0ZWRLZXkgb2YgT2JqZWN0LmtleXMobmVzdGVkKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtgJHtrZXl9LiR7bmVzdGVkS2V5fWBdID0gbmVzdGVkW25lc3RlZEtleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvdXRwdXRba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59O1xuXG5jb25zdCBQT1NUX1JFUVVFU1QgPSAncG9zdCc7XG4vKipcbiAqIEZvcm0gY29tcG9uZW50IHRvIG1hbmFnZSBzdWJtaXNzaW9uLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHRvIHNldHVwIHN1Ym1pc3Npb24gZGV0YWlsLiB7QGxpbmsgRm9ybVByb3BzfVxuICpcbiAqIEByZXR1cm5zIGZvcm0gY29tcG9uZW50IG9yIGhlYWRsZXNzIHJlbmRlciBwcm9wLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIEFwcCgpIHtcbiAqICAgY29uc3QgeyBjb250cm9sLCBmb3JtU3RhdGU6IHsgZXJyb3JzIH0gfSA9IHVzZUZvcm0oKTtcbiAqXG4gKiAgIHJldHVybiAoXG4gKiAgICAgPEZvcm0gYWN0aW9uPVwiL2FwaVwiIGNvbnRyb2w9e2NvbnRyb2x9PlxuICogICAgICAgPGlucHV0IHsuLi5yZWdpc3RlcihcIm5hbWVcIil9IC8+XG4gKiAgICAgICA8cD57ZXJyb3JzPy5yb290Py5zZXJ2ZXIgJiYgJ1NlcnZlciBlcnJvcid9PC9wPlxuICogICAgICAgPGJ1dHRvbj5TdWJtaXQ8L2J1dHRvbj5cbiAqICAgICA8L0Zvcm0+XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gRm9ybShwcm9wcykge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB1c2VGb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IFttb3VudGVkLCBzZXRNb3VudGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7IGNvbnRyb2wgPSBtZXRob2RzLmNvbnRyb2wsIG9uU3VibWl0LCBjaGlsZHJlbiwgYWN0aW9uLCBtZXRob2QgPSBQT1NUX1JFUVVFU1QsIGhlYWRlcnMsIGVuY1R5cGUsIG9uRXJyb3IsIHJlbmRlciwgb25TdWNjZXNzLCB2YWxpZGF0ZVN0YXR1cywgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgY29uc3Qgc3VibWl0ID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xuICAgICAgICBsZXQgdHlwZSA9ICcnO1xuICAgICAgICBhd2FpdCBjb250cm9sLmhhbmRsZVN1Ym1pdChhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIGxldCBmb3JtRGF0YUpzb24gPSAnJztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZm9ybURhdGFKc29uID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoX2EpIHsgfVxuICAgICAgICAgICAgY29uc3QgZmxhdHRlbkZvcm1WYWx1ZXMgPSBmbGF0dGVuKGNvbnRyb2wuX2Zvcm1WYWx1ZXMpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmxhdHRlbkZvcm1WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBmbGF0dGVuRm9ybVZhbHVlc1trZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvblN1Ym1pdCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG9uU3VibWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhSnNvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRTdHJpbmdpZnlTdWJtaXNzaW9uRGF0YSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmNUeXBlLFxuICAgICAgICAgICAgICAgICAgICBdLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZSAmJiB2YWx1ZS5pbmNsdWRlcygnanNvbicpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChTdHJpbmcoYWN0aW9uKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGVuY1R5cGUgPyB7ICdDb250ZW50LVR5cGUnOiBlbmNUeXBlIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogc2hvdWxkU3RyaW5naWZ5U3VibWlzc2lvbkRhdGEgPyBmb3JtRGF0YUpzb24gOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkYXRlU3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhdmFsaWRhdGVTdGF0dXMocmVzcG9uc2Uuc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2Uuc3RhdHVzIDwgMjAwIHx8IHJlc3BvbnNlLnN0YXR1cyA+PSAzMDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yICYmIG9uRXJyb3IoeyByZXNwb25zZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBTdHJpbmcocmVzcG9uc2Uuc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2VzcyAmJiBvblN1Y2Nlc3MoeyByZXNwb25zZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yICYmIG9uRXJyb3IoeyBlcnJvciB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKGV2ZW50KTtcbiAgICAgICAgaWYgKGhhc0Vycm9yICYmIHByb3BzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHByb3BzLmNvbnRyb2wuX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgICAgIGlzU3VibWl0U3VjY2Vzc2Z1bDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHByb3BzLmNvbnRyb2wuc2V0RXJyb3IoJ3Jvb3Quc2VydmVyJywge1xuICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0TW91bnRlZCh0cnVlKTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHJlbmRlciA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCByZW5kZXIoe1xuICAgICAgICBzdWJtaXQsXG4gICAgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiLCB7IG5vVmFsaWRhdGU6IG1vdW50ZWQsIGFjdGlvbjogYWN0aW9uLCBtZXRob2Q6IG1ldGhvZCwgZW5jVHlwZTogZW5jVHlwZSwgb25TdWJtaXQ6IHN1Ym1pdCwgLi4ucmVzdCB9LCBjaGlsZHJlbikpO1xufVxuXG52YXIgYXBwZW5kRXJyb3JzID0gKG5hbWUsIHZhbGlkYXRlQWxsRmllbGRDcml0ZXJpYSwgZXJyb3JzLCB0eXBlLCBtZXNzYWdlKSA9PiB2YWxpZGF0ZUFsbEZpZWxkQ3JpdGVyaWFcbiAgICA/IHtcbiAgICAgICAgLi4uZXJyb3JzW25hbWVdLFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgLi4uKGVycm9yc1tuYW1lXSAmJiBlcnJvcnNbbmFtZV0udHlwZXMgPyBlcnJvcnNbbmFtZV0udHlwZXMgOiB7fSksXG4gICAgICAgICAgICBbdHlwZV06IG1lc3NhZ2UgfHwgdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9XG4gICAgOiB7fTtcblxudmFyIGdlbmVyYXRlSWQgPSAoKSA9PiB7XG4gICAgY29uc3QgZCA9IHR5cGVvZiBwZXJmb3JtYW5jZSA9PT0gJ3VuZGVmaW5lZCcgPyBEYXRlLm5vdygpIDogcGVyZm9ybWFuY2Uubm93KCkgKiAxMDAwO1xuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XG4gICAgICAgIGNvbnN0IHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2ICsgZCkgJSAxNiB8IDA7XG4gICAgICAgIHJldHVybiAoYyA9PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XG4gICAgfSk7XG59O1xuXG52YXIgZ2V0Rm9jdXNGaWVsZE5hbWUgPSAobmFtZSwgaW5kZXgsIG9wdGlvbnMgPSB7fSkgPT4gb3B0aW9ucy5zaG91bGRGb2N1cyB8fCBpc1VuZGVmaW5lZChvcHRpb25zLnNob3VsZEZvY3VzKVxuICAgID8gb3B0aW9ucy5mb2N1c05hbWUgfHxcbiAgICAgICAgYCR7bmFtZX0uJHtpc1VuZGVmaW5lZChvcHRpb25zLmZvY3VzSW5kZXgpID8gaW5kZXggOiBvcHRpb25zLmZvY3VzSW5kZXh9LmBcbiAgICA6ICcnO1xuXG52YXIgZ2V0VmFsaWRhdGlvbk1vZGVzID0gKG1vZGUpID0+ICh7XG4gICAgaXNPblN1Ym1pdDogIW1vZGUgfHwgbW9kZSA9PT0gVkFMSURBVElPTl9NT0RFLm9uU3VibWl0LFxuICAgIGlzT25CbHVyOiBtb2RlID09PSBWQUxJREFUSU9OX01PREUub25CbHVyLFxuICAgIGlzT25DaGFuZ2U6IG1vZGUgPT09IFZBTElEQVRJT05fTU9ERS5vbkNoYW5nZSxcbiAgICBpc09uQWxsOiBtb2RlID09PSBWQUxJREFUSU9OX01PREUuYWxsLFxuICAgIGlzT25Ub3VjaDogbW9kZSA9PT0gVkFMSURBVElPTl9NT0RFLm9uVG91Y2hlZCxcbn0pO1xuXG52YXIgaXNXYXRjaGVkID0gKG5hbWUsIF9uYW1lcywgaXNCbHVyRXZlbnQpID0+ICFpc0JsdXJFdmVudCAmJlxuICAgIChfbmFtZXMud2F0Y2hBbGwgfHxcbiAgICAgICAgX25hbWVzLndhdGNoLmhhcyhuYW1lKSB8fFxuICAgICAgICBbLi4uX25hbWVzLndhdGNoXS5zb21lKCh3YXRjaE5hbWUpID0+IG5hbWUuc3RhcnRzV2l0aCh3YXRjaE5hbWUpICYmXG4gICAgICAgICAgICAvXlxcLlxcdysvLnRlc3QobmFtZS5zbGljZSh3YXRjaE5hbWUubGVuZ3RoKSkpKTtcblxuY29uc3QgaXRlcmF0ZUZpZWxkc0J5QWN0aW9uID0gKGZpZWxkcywgYWN0aW9uLCBmaWVsZHNOYW1lcywgYWJvcnRFYXJseSkgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGZpZWxkc05hbWVzIHx8IE9iamVjdC5rZXlzKGZpZWxkcykpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoZmllbGRzLCBrZXkpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgX2YsIC4uLmN1cnJlbnRGaWVsZCB9ID0gZmllbGQ7XG4gICAgICAgICAgICBpZiAoX2YpIHtcbiAgICAgICAgICAgICAgICBpZiAoX2YucmVmcyAmJiBfZi5yZWZzWzBdICYmIGFjdGlvbihfZi5yZWZzWzBdLCBrZXkpICYmICFhYm9ydEVhcmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChfZi5yZWYgJiYgYWN0aW9uKF9mLnJlZiwgX2YubmFtZSkgJiYgIWFib3J0RWFybHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcmF0ZUZpZWxkc0J5QWN0aW9uKGN1cnJlbnRGaWVsZCwgYWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc09iamVjdChjdXJyZW50RmllbGQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZXJhdGVGaWVsZHNCeUFjdGlvbihjdXJyZW50RmllbGQsIGFjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybjtcbn07XG5cbnZhciB1cGRhdGVGaWVsZEFycmF5Um9vdEVycm9yID0gKGVycm9ycywgZXJyb3IsIG5hbWUpID0+IHtcbiAgICBjb25zdCBmaWVsZEFycmF5RXJyb3JzID0gY29udmVydFRvQXJyYXlQYXlsb2FkKGdldChlcnJvcnMsIG5hbWUpKTtcbiAgICBzZXQoZmllbGRBcnJheUVycm9ycywgJ3Jvb3QnLCBlcnJvcltuYW1lXSk7XG4gICAgc2V0KGVycm9ycywgbmFtZSwgZmllbGRBcnJheUVycm9ycyk7XG4gICAgcmV0dXJuIGVycm9ycztcbn07XG5cbnZhciBpc0ZpbGVJbnB1dCA9IChlbGVtZW50KSA9PiBlbGVtZW50LnR5cGUgPT09ICdmaWxlJztcblxudmFyIGlzRnVuY3Rpb24gPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcblxudmFyIGlzSFRNTEVsZW1lbnQgPSAodmFsdWUpID0+IHtcbiAgICBpZiAoIWlzV2ViKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgb3duZXIgPSB2YWx1ZSA/IHZhbHVlLm93bmVyRG9jdW1lbnQgOiAwO1xuICAgIHJldHVybiAodmFsdWUgaW5zdGFuY2VvZlxuICAgICAgICAob3duZXIgJiYgb3duZXIuZGVmYXVsdFZpZXcgPyBvd25lci5kZWZhdWx0Vmlldy5IVE1MRWxlbWVudCA6IEhUTUxFbGVtZW50KSk7XG59O1xuXG52YXIgaXNNZXNzYWdlID0gKHZhbHVlKSA9PiBpc1N0cmluZyh2YWx1ZSk7XG5cbnZhciBpc1JhZGlvSW5wdXQgPSAoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSAncmFkaW8nO1xuXG52YXIgaXNSZWdleCA9ICh2YWx1ZSkgPT4gdmFsdWUgaW5zdGFuY2VvZiBSZWdFeHA7XG5cbmNvbnN0IGRlZmF1bHRSZXN1bHQgPSB7XG4gICAgdmFsdWU6IGZhbHNlLFxuICAgIGlzVmFsaWQ6IGZhbHNlLFxufTtcbmNvbnN0IHZhbGlkUmVzdWx0ID0geyB2YWx1ZTogdHJ1ZSwgaXNWYWxpZDogdHJ1ZSB9O1xudmFyIGdldENoZWNrYm94VmFsdWUgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IG9wdGlvbnNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbiAmJiBvcHRpb24uY2hlY2tlZCAmJiAhb3B0aW9uLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZXMsIGlzVmFsaWQ6ICEhdmFsdWVzLmxlbmd0aCB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcHRpb25zWzBdLmNoZWNrZWQgJiYgIW9wdGlvbnNbMF0uZGlzYWJsZWRcbiAgICAgICAgICAgID8gLy8gQHRzLWV4cGVjdC1lcnJvciBleHBlY3RlZCB0byB3b3JrIGluIHRoZSBicm93c2VyXG4gICAgICAgICAgICAgICAgb3B0aW9uc1swXS5hdHRyaWJ1dGVzICYmICFpc1VuZGVmaW5lZChvcHRpb25zWzBdLmF0dHJpYnV0ZXMudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gaXNVbmRlZmluZWQob3B0aW9uc1swXS52YWx1ZSkgfHwgb3B0aW9uc1swXS52YWx1ZSA9PT0gJydcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsaWRSZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogeyB2YWx1ZTogb3B0aW9uc1swXS52YWx1ZSwgaXNWYWxpZDogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgIDogdmFsaWRSZXN1bHRcbiAgICAgICAgICAgIDogZGVmYXVsdFJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmF1bHRSZXN1bHQ7XG59O1xuXG5jb25zdCBkZWZhdWx0UmV0dXJuID0ge1xuICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgIHZhbHVlOiBudWxsLFxufTtcbnZhciBnZXRSYWRpb1ZhbHVlID0gKG9wdGlvbnMpID0+IEFycmF5LmlzQXJyYXkob3B0aW9ucylcbiAgICA/IG9wdGlvbnMucmVkdWNlKChwcmV2aW91cywgb3B0aW9uKSA9PiBvcHRpb24gJiYgb3B0aW9uLmNoZWNrZWQgJiYgIW9wdGlvbi5kaXNhYmxlZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICB9XG4gICAgICAgIDogcHJldmlvdXMsIGRlZmF1bHRSZXR1cm4pXG4gICAgOiBkZWZhdWx0UmV0dXJuO1xuXG5mdW5jdGlvbiBnZXRWYWxpZGF0ZUVycm9yKHJlc3VsdCwgcmVmLCB0eXBlID0gJ3ZhbGlkYXRlJykge1xuICAgIGlmIChpc01lc3NhZ2UocmVzdWx0KSB8fFxuICAgICAgICAoQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC5ldmVyeShpc01lc3NhZ2UpKSB8fFxuICAgICAgICAoaXNCb29sZWFuKHJlc3VsdCkgJiYgIXJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBpc01lc3NhZ2UocmVzdWx0KSA/IHJlc3VsdCA6ICcnLFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxudmFyIGdldFZhbHVlQW5kTWVzc2FnZSA9ICh2YWxpZGF0aW9uRGF0YSkgPT4gaXNPYmplY3QodmFsaWRhdGlvbkRhdGEpICYmICFpc1JlZ2V4KHZhbGlkYXRpb25EYXRhKVxuICAgID8gdmFsaWRhdGlvbkRhdGFcbiAgICA6IHtcbiAgICAgICAgdmFsdWU6IHZhbGlkYXRpb25EYXRhLFxuICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICB9O1xuXG52YXIgdmFsaWRhdGVGaWVsZCA9IGFzeW5jIChmaWVsZCwgZGlzYWJsZWRGaWVsZE5hbWVzLCBmb3JtVmFsdWVzLCB2YWxpZGF0ZUFsbEZpZWxkQ3JpdGVyaWEsIHNob3VsZFVzZU5hdGl2ZVZhbGlkYXRpb24sIGlzRmllbGRBcnJheSkgPT4ge1xuICAgIGNvbnN0IHsgcmVmLCByZWZzLCByZXF1aXJlZCwgbWF4TGVuZ3RoLCBtaW5MZW5ndGgsIG1pbiwgbWF4LCBwYXR0ZXJuLCB2YWxpZGF0ZSwgbmFtZSwgdmFsdWVBc051bWJlciwgbW91bnQsIH0gPSBmaWVsZC5fZjtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gZ2V0KGZvcm1WYWx1ZXMsIG5hbWUpO1xuICAgIGlmICghbW91bnQgfHwgZGlzYWJsZWRGaWVsZE5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IGlucHV0UmVmID0gcmVmcyA/IHJlZnNbMF0gOiByZWY7XG4gICAgY29uc3Qgc2V0Q3VzdG9tVmFsaWRpdHkgPSAobWVzc2FnZSkgPT4ge1xuICAgICAgICBpZiAoc2hvdWxkVXNlTmF0aXZlVmFsaWRhdGlvbiAmJiBpbnB1dFJlZi5yZXBvcnRWYWxpZGl0eSkge1xuICAgICAgICAgICAgaW5wdXRSZWYuc2V0Q3VzdG9tVmFsaWRpdHkoaXNCb29sZWFuKG1lc3NhZ2UpID8gJycgOiBtZXNzYWdlIHx8ICcnKTtcbiAgICAgICAgICAgIGlucHV0UmVmLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGVycm9yID0ge307XG4gICAgY29uc3QgaXNSYWRpbyA9IGlzUmFkaW9JbnB1dChyZWYpO1xuICAgIGNvbnN0IGlzQ2hlY2tCb3ggPSBpc0NoZWNrQm94SW5wdXQocmVmKTtcbiAgICBjb25zdCBpc1JhZGlvT3JDaGVja2JveCA9IGlzUmFkaW8gfHwgaXNDaGVja0JveDtcbiAgICBjb25zdCBpc0VtcHR5ID0gKCh2YWx1ZUFzTnVtYmVyIHx8IGlzRmlsZUlucHV0KHJlZikpICYmXG4gICAgICAgIGlzVW5kZWZpbmVkKHJlZi52YWx1ZSkgJiZcbiAgICAgICAgaXNVbmRlZmluZWQoaW5wdXRWYWx1ZSkpIHx8XG4gICAgICAgIChpc0hUTUxFbGVtZW50KHJlZikgJiYgcmVmLnZhbHVlID09PSAnJykgfHxcbiAgICAgICAgaW5wdXRWYWx1ZSA9PT0gJycgfHxcbiAgICAgICAgKEFycmF5LmlzQXJyYXkoaW5wdXRWYWx1ZSkgJiYgIWlucHV0VmFsdWUubGVuZ3RoKTtcbiAgICBjb25zdCBhcHBlbmRFcnJvcnNDdXJyeSA9IGFwcGVuZEVycm9ycy5iaW5kKG51bGwsIG5hbWUsIHZhbGlkYXRlQWxsRmllbGRDcml0ZXJpYSwgZXJyb3IpO1xuICAgIGNvbnN0IGdldE1pbk1heE1lc3NhZ2UgPSAoZXhjZWVkTWF4LCBtYXhMZW5ndGhNZXNzYWdlLCBtaW5MZW5ndGhNZXNzYWdlLCBtYXhUeXBlID0gSU5QVVRfVkFMSURBVElPTl9SVUxFUy5tYXhMZW5ndGgsIG1pblR5cGUgPSBJTlBVVF9WQUxJREFUSU9OX1JVTEVTLm1pbkxlbmd0aCkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXhjZWVkTWF4ID8gbWF4TGVuZ3RoTWVzc2FnZSA6IG1pbkxlbmd0aE1lc3NhZ2U7XG4gICAgICAgIGVycm9yW25hbWVdID0ge1xuICAgICAgICAgICAgdHlwZTogZXhjZWVkTWF4ID8gbWF4VHlwZSA6IG1pblR5cGUsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgLi4uYXBwZW5kRXJyb3JzQ3VycnkoZXhjZWVkTWF4ID8gbWF4VHlwZSA6IG1pblR5cGUsIG1lc3NhZ2UpLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgaWYgKGlzRmllbGRBcnJheVxuICAgICAgICA/ICFBcnJheS5pc0FycmF5KGlucHV0VmFsdWUpIHx8ICFpbnB1dFZhbHVlLmxlbmd0aFxuICAgICAgICA6IHJlcXVpcmVkICYmXG4gICAgICAgICAgICAoKCFpc1JhZGlvT3JDaGVja2JveCAmJiAoaXNFbXB0eSB8fCBpc051bGxPclVuZGVmaW5lZChpbnB1dFZhbHVlKSkpIHx8XG4gICAgICAgICAgICAgICAgKGlzQm9vbGVhbihpbnB1dFZhbHVlKSAmJiAhaW5wdXRWYWx1ZSkgfHxcbiAgICAgICAgICAgICAgICAoaXNDaGVja0JveCAmJiAhZ2V0Q2hlY2tib3hWYWx1ZShyZWZzKS5pc1ZhbGlkKSB8fFxuICAgICAgICAgICAgICAgIChpc1JhZGlvICYmICFnZXRSYWRpb1ZhbHVlKHJlZnMpLmlzVmFsaWQpKSkge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCBtZXNzYWdlIH0gPSBpc01lc3NhZ2UocmVxdWlyZWQpXG4gICAgICAgICAgICA/IHsgdmFsdWU6ICEhcmVxdWlyZWQsIG1lc3NhZ2U6IHJlcXVpcmVkIH1cbiAgICAgICAgICAgIDogZ2V0VmFsdWVBbmRNZXNzYWdlKHJlcXVpcmVkKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBlcnJvcltuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBJTlBVVF9WQUxJREFUSU9OX1JVTEVTLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgcmVmOiBpbnB1dFJlZixcbiAgICAgICAgICAgICAgICAuLi5hcHBlbmRFcnJvcnNDdXJyeShJTlBVVF9WQUxJREFUSU9OX1JVTEVTLnJlcXVpcmVkLCBtZXNzYWdlKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXZhbGlkYXRlQWxsRmllbGRDcml0ZXJpYSkge1xuICAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzRW1wdHkgJiYgKCFpc051bGxPclVuZGVmaW5lZChtaW4pIHx8ICFpc051bGxPclVuZGVmaW5lZChtYXgpKSkge1xuICAgICAgICBsZXQgZXhjZWVkTWF4O1xuICAgICAgICBsZXQgZXhjZWVkTWluO1xuICAgICAgICBjb25zdCBtYXhPdXRwdXQgPSBnZXRWYWx1ZUFuZE1lc3NhZ2UobWF4KTtcbiAgICAgICAgY29uc3QgbWluT3V0cHV0ID0gZ2V0VmFsdWVBbmRNZXNzYWdlKG1pbik7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoaW5wdXRWYWx1ZSkgJiYgIWlzTmFOKGlucHV0VmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZU51bWJlciA9IHJlZi52YWx1ZUFzTnVtYmVyIHx8XG4gICAgICAgICAgICAgICAgKGlucHV0VmFsdWUgPyAraW5wdXRWYWx1ZSA6IGlucHV0VmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChtYXhPdXRwdXQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgZXhjZWVkTWF4ID0gdmFsdWVOdW1iZXIgPiBtYXhPdXRwdXQudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1pbk91dHB1dC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBleGNlZWRNaW4gPSB2YWx1ZU51bWJlciA8IG1pbk91dHB1dC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlRGF0ZSA9IHJlZi52YWx1ZUFzRGF0ZSB8fCBuZXcgRGF0ZShpbnB1dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnZlcnRUaW1lVG9EYXRlID0gKHRpbWUpID0+IG5ldyBEYXRlKG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkgKyAnICcgKyB0aW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGlzVGltZSA9IHJlZi50eXBlID09ICd0aW1lJztcbiAgICAgICAgICAgIGNvbnN0IGlzV2VlayA9IHJlZi50eXBlID09ICd3ZWVrJztcbiAgICAgICAgICAgIGlmIChpc1N0cmluZyhtYXhPdXRwdXQudmFsdWUpICYmIGlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBleGNlZWRNYXggPSBpc1RpbWVcbiAgICAgICAgICAgICAgICAgICAgPyBjb252ZXJ0VGltZVRvRGF0ZShpbnB1dFZhbHVlKSA+IGNvbnZlcnRUaW1lVG9EYXRlKG1heE91dHB1dC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgOiBpc1dlZWtcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaW5wdXRWYWx1ZSA+IG1heE91dHB1dC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZURhdGUgPiBuZXcgRGF0ZShtYXhPdXRwdXQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKG1pbk91dHB1dC52YWx1ZSkgJiYgaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGV4Y2VlZE1pbiA9IGlzVGltZVxuICAgICAgICAgICAgICAgICAgICA/IGNvbnZlcnRUaW1lVG9EYXRlKGlucHV0VmFsdWUpIDwgY29udmVydFRpbWVUb0RhdGUobWluT3V0cHV0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IGlzV2Vla1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBpbnB1dFZhbHVlIDwgbWluT3V0cHV0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlRGF0ZSA8IG5ldyBEYXRlKG1pbk91dHB1dC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4Y2VlZE1heCB8fCBleGNlZWRNaW4pIHtcbiAgICAgICAgICAgIGdldE1pbk1heE1lc3NhZ2UoISFleGNlZWRNYXgsIG1heE91dHB1dC5tZXNzYWdlLCBtaW5PdXRwdXQubWVzc2FnZSwgSU5QVVRfVkFMSURBVElPTl9SVUxFUy5tYXgsIElOUFVUX1ZBTElEQVRJT05fUlVMRVMubWluKTtcbiAgICAgICAgICAgIGlmICghdmFsaWRhdGVBbGxGaWVsZENyaXRlcmlhKSB7XG4gICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3JbbmFtZV0ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICgobWF4TGVuZ3RoIHx8IG1pbkxlbmd0aCkgJiZcbiAgICAgICAgIWlzRW1wdHkgJiZcbiAgICAgICAgKGlzU3RyaW5nKGlucHV0VmFsdWUpIHx8IChpc0ZpZWxkQXJyYXkgJiYgQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSkpKSB7XG4gICAgICAgIGNvbnN0IG1heExlbmd0aE91dHB1dCA9IGdldFZhbHVlQW5kTWVzc2FnZShtYXhMZW5ndGgpO1xuICAgICAgICBjb25zdCBtaW5MZW5ndGhPdXRwdXQgPSBnZXRWYWx1ZUFuZE1lc3NhZ2UobWluTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgZXhjZWVkTWF4ID0gIWlzTnVsbE9yVW5kZWZpbmVkKG1heExlbmd0aE91dHB1dC52YWx1ZSkgJiZcbiAgICAgICAgICAgIGlucHV0VmFsdWUubGVuZ3RoID4gK21heExlbmd0aE91dHB1dC52YWx1ZTtcbiAgICAgICAgY29uc3QgZXhjZWVkTWluID0gIWlzTnVsbE9yVW5kZWZpbmVkKG1pbkxlbmd0aE91dHB1dC52YWx1ZSkgJiZcbiAgICAgICAgICAgIGlucHV0VmFsdWUubGVuZ3RoIDwgK21pbkxlbmd0aE91dHB1dC52YWx1ZTtcbiAgICAgICAgaWYgKGV4Y2VlZE1heCB8fCBleGNlZWRNaW4pIHtcbiAgICAgICAgICAgIGdldE1pbk1heE1lc3NhZ2UoZXhjZWVkTWF4LCBtYXhMZW5ndGhPdXRwdXQubWVzc2FnZSwgbWluTGVuZ3RoT3V0cHV0Lm1lc3NhZ2UpO1xuICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZUFsbEZpZWxkQ3JpdGVyaWEpIHtcbiAgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShlcnJvcltuYW1lXS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHBhdHRlcm4gJiYgIWlzRW1wdHkgJiYgaXNTdHJpbmcoaW5wdXRWYWx1ZSkpIHtcbiAgICAgICAgY29uc3QgeyB2YWx1ZTogcGF0dGVyblZhbHVlLCBtZXNzYWdlIH0gPSBnZXRWYWx1ZUFuZE1lc3NhZ2UocGF0dGVybik7XG4gICAgICAgIGlmIChpc1JlZ2V4KHBhdHRlcm5WYWx1ZSkgJiYgIWlucHV0VmFsdWUubWF0Y2gocGF0dGVyblZhbHVlKSkge1xuICAgICAgICAgICAgZXJyb3JbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogSU5QVVRfVkFMSURBVElPTl9SVUxFUy5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgIC4uLmFwcGVuZEVycm9yc0N1cnJ5KElOUFVUX1ZBTElEQVRJT05fUlVMRVMucGF0dGVybiwgbWVzc2FnZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZUFsbEZpZWxkQ3JpdGVyaWEpIHtcbiAgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhbGlkYXRlKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHZhbGlkYXRlKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGUoaW5wdXRWYWx1ZSwgZm9ybVZhbHVlcyk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZUVycm9yID0gZ2V0VmFsaWRhdGVFcnJvcihyZXN1bHQsIGlucHV0UmVmKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnZhbGlkYXRlRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIC4uLmFwcGVuZEVycm9yc0N1cnJ5KElOUFVUX1ZBTElEQVRJT05fUlVMRVMudmFsaWRhdGUsIHZhbGlkYXRlRXJyb3IubWVzc2FnZSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlQWxsRmllbGRDcml0ZXJpYSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eSh2YWxpZGF0ZUVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KHZhbGlkYXRlKSkge1xuICAgICAgICAgICAgbGV0IHZhbGlkYXRpb25SZXN1bHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KHZhbGlkYXRpb25SZXN1bHQpICYmICF2YWxpZGF0ZUFsbEZpZWxkQ3JpdGVyaWEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSBnZXRWYWxpZGF0ZUVycm9yKGF3YWl0IHZhbGlkYXRlW2tleV0oaW5wdXRWYWx1ZSwgZm9ybVZhbHVlcyksIGlucHV0UmVmLCBrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi52YWxpZGF0ZUVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uYXBwZW5kRXJyb3JzQ3Vycnkoa2V5LCB2YWxpZGF0ZUVycm9yLm1lc3NhZ2UpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eSh2YWxpZGF0ZUVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBbGxGaWVsZENyaXRlcmlhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcltuYW1lXSA9IHZhbGlkYXRpb25SZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QodmFsaWRhdGlvblJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICBlcnJvcltuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVmOiBpbnB1dFJlZixcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsaWRhdGlvblJlc3VsdCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGVBbGxGaWVsZENyaXRlcmlhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0Q3VzdG9tVmFsaWRpdHkodHJ1ZSk7XG4gICAgcmV0dXJuIGVycm9yO1xufTtcblxudmFyIGFwcGVuZEF0ID0gKGRhdGEsIHZhbHVlKSA9PiBbXG4gICAgLi4uZGF0YSxcbiAgICAuLi5jb252ZXJ0VG9BcnJheVBheWxvYWQodmFsdWUpLFxuXTtcblxudmFyIGZpbGxFbXB0eUFycmF5ID0gKHZhbHVlKSA9PiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLm1hcCgoKSA9PiB1bmRlZmluZWQpIDogdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpbnNlcnQoZGF0YSwgaW5kZXgsIHZhbHVlKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgLi4uZGF0YS5zbGljZSgwLCBpbmRleCksXG4gICAgICAgIC4uLmNvbnZlcnRUb0FycmF5UGF5bG9hZCh2YWx1ZSksXG4gICAgICAgIC4uLmRhdGEuc2xpY2UoaW5kZXgpLFxuICAgIF07XG59XG5cbnZhciBtb3ZlQXJyYXlBdCA9IChkYXRhLCBmcm9tLCB0bykgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChpc1VuZGVmaW5lZChkYXRhW3RvXSkpIHtcbiAgICAgICAgZGF0YVt0b10gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGRhdGEuc3BsaWNlKHRvLCAwLCBkYXRhLnNwbGljZShmcm9tLCAxKVswXSk7XG4gICAgcmV0dXJuIGRhdGE7XG59O1xuXG52YXIgcHJlcGVuZEF0ID0gKGRhdGEsIHZhbHVlKSA9PiBbXG4gICAgLi4uY29udmVydFRvQXJyYXlQYXlsb2FkKHZhbHVlKSxcbiAgICAuLi5jb252ZXJ0VG9BcnJheVBheWxvYWQoZGF0YSksXG5dO1xuXG5mdW5jdGlvbiByZW1vdmVBdEluZGV4ZXMoZGF0YSwgaW5kZXhlcykge1xuICAgIGxldCBpID0gMDtcbiAgICBjb25zdCB0ZW1wID0gWy4uLmRhdGFdO1xuICAgIGZvciAoY29uc3QgaW5kZXggb2YgaW5kZXhlcykge1xuICAgICAgICB0ZW1wLnNwbGljZShpbmRleCAtIGksIDEpO1xuICAgICAgICBpKys7XG4gICAgfVxuICAgIHJldHVybiBjb21wYWN0KHRlbXApLmxlbmd0aCA/IHRlbXAgOiBbXTtcbn1cbnZhciByZW1vdmVBcnJheUF0ID0gKGRhdGEsIGluZGV4KSA9PiBpc1VuZGVmaW5lZChpbmRleClcbiAgICA/IFtdXG4gICAgOiByZW1vdmVBdEluZGV4ZXMoZGF0YSwgY29udmVydFRvQXJyYXlQYXlsb2FkKGluZGV4KS5zb3J0KChhLCBiKSA9PiBhIC0gYikpO1xuXG52YXIgc3dhcEFycmF5QXQgPSAoZGF0YSwgaW5kZXhBLCBpbmRleEIpID0+IHtcbiAgICBbZGF0YVtpbmRleEFdLCBkYXRhW2luZGV4Ql1dID0gW2RhdGFbaW5kZXhCXSwgZGF0YVtpbmRleEFdXTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCB1cGRhdGVQYXRoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdXBkYXRlUGF0aC5zbGljZSgwLCAtMSkubGVuZ3RoO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIG9iamVjdCA9IGlzVW5kZWZpbmVkKG9iamVjdCkgPyBpbmRleCsrIDogb2JqZWN0W3VwZGF0ZVBhdGhbaW5kZXgrK11dO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xufVxuZnVuY3Rpb24gaXNFbXB0eUFycmF5KG9iaikge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgIWlzVW5kZWZpbmVkKG9ialtrZXldKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gdW5zZXQob2JqZWN0LCBwYXRoKSB7XG4gICAgY29uc3QgcGF0aHMgPSBBcnJheS5pc0FycmF5KHBhdGgpXG4gICAgICAgID8gcGF0aFxuICAgICAgICA6IGlzS2V5KHBhdGgpXG4gICAgICAgICAgICA/IFtwYXRoXVxuICAgICAgICAgICAgOiBzdHJpbmdUb1BhdGgocGF0aCk7XG4gICAgY29uc3QgY2hpbGRPYmplY3QgPSBwYXRocy5sZW5ndGggPT09IDEgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgcGF0aHMpO1xuICAgIGNvbnN0IGluZGV4ID0gcGF0aHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBrZXkgPSBwYXRoc1tpbmRleF07XG4gICAgaWYgKGNoaWxkT2JqZWN0KSB7XG4gICAgICAgIGRlbGV0ZSBjaGlsZE9iamVjdFtrZXldO1xuICAgIH1cbiAgICBpZiAoaW5kZXggIT09IDAgJiZcbiAgICAgICAgKChpc09iamVjdChjaGlsZE9iamVjdCkgJiYgaXNFbXB0eU9iamVjdChjaGlsZE9iamVjdCkpIHx8XG4gICAgICAgICAgICAoQXJyYXkuaXNBcnJheShjaGlsZE9iamVjdCkgJiYgaXNFbXB0eUFycmF5KGNoaWxkT2JqZWN0KSkpKSB7XG4gICAgICAgIHVuc2V0KG9iamVjdCwgcGF0aHMuc2xpY2UoMCwgLTEpKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbn1cblxudmFyIHVwZGF0ZUF0ID0gKGZpZWxkVmFsdWVzLCBpbmRleCwgdmFsdWUpID0+IHtcbiAgICBmaWVsZFZhbHVlc1tpbmRleF0gPSB2YWx1ZTtcbiAgICByZXR1cm4gZmllbGRWYWx1ZXM7XG59O1xuXG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBleHBvc2VzIGNvbnZlbmllbnQgbWV0aG9kcyB0byBwZXJmb3JtIG9wZXJhdGlvbnMgd2l0aCBhIGxpc3Qgb2YgZHluYW1pYyBpbnB1dHMgdGhhdCBuZWVkIHRvIGJlIGFwcGVuZGVkLCB1cGRhdGVkLCByZW1vdmVkIGV0Yy4g4oCiIFtEZW1vXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVhY3QtaG9vay1mb3JtLXVzZWZpZWxkYXJyYXktc3N1Z24pIOKAoiBbVmlkZW9dKGh0dHBzOi8veW91dHUuYmUvNE1yYmZHU0ZZMkEpXG4gKlxuICogQHJlbWFya3NcbiAqIFtBUEldKGh0dHBzOi8vcmVhY3QtaG9vay1mb3JtLmNvbS9kb2NzL3VzZWZpZWxkYXJyYXkpIOKAoiBbRGVtb10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3JlYWN0LWhvb2stZm9ybS11c2VmaWVsZGFycmF5LXNzdWduKVxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHVzZUZpZWxkQXJyYXkgcHJvcHNcbiAqXG4gKiBAcmV0dXJucyBtZXRob2RzIC0gZnVuY3Rpb25zIHRvIG1hbmlwdWxhdGUgd2l0aCB0aGUgRmllbGQgQXJyYXlzIChkeW5hbWljIGlucHV0cykge0BsaW5rIFVzZUZpZWxkQXJyYXlSZXR1cm59XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogZnVuY3Rpb24gQXBwKCkge1xuICogICBjb25zdCB7IHJlZ2lzdGVyLCBjb250cm9sLCBoYW5kbGVTdWJtaXQsIHJlc2V0LCB0cmlnZ2VyLCBzZXRFcnJvciB9ID0gdXNlRm9ybSh7XG4gKiAgICAgZGVmYXVsdFZhbHVlczoge1xuICogICAgICAgdGVzdDogW11cbiAqICAgICB9XG4gKiAgIH0pO1xuICogICBjb25zdCB7IGZpZWxkcywgYXBwZW5kIH0gPSB1c2VGaWVsZEFycmF5KHtcbiAqICAgICBjb250cm9sLFxuICogICAgIG5hbWU6IFwidGVzdFwiXG4gKiAgIH0pO1xuICpcbiAqICAgcmV0dXJuIChcbiAqICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0KGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpfT5cbiAqICAgICAgIHtmaWVsZHMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICogICAgICAgICAgPGlucHV0IGtleT17aXRlbS5pZH0gey4uLnJlZ2lzdGVyKGB0ZXN0LiR7aW5kZXh9LmZpcnN0TmFtZWApfSAgLz5cbiAqICAgICAgICkpfVxuICogICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gYXBwZW5kKHsgZmlyc3ROYW1lOiBcImJpbGxcIiB9KX0+XG4gKiAgICAgICAgIGFwcGVuZFxuICogICAgICAgPC9idXR0b24+XG4gKiAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIC8+XG4gKiAgICAgPC9mb3JtPlxuICogICApO1xuICogfVxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHVzZUZpZWxkQXJyYXkocHJvcHMpIHtcbiAgICBjb25zdCBtZXRob2RzID0gdXNlRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCB7IGNvbnRyb2wgPSBtZXRob2RzLmNvbnRyb2wsIG5hbWUsIGtleU5hbWUgPSAnaWQnLCBzaG91bGRVbnJlZ2lzdGVyLCBydWxlcywgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtmaWVsZHMsIHNldEZpZWxkc10gPSBSZWFjdC51c2VTdGF0ZShjb250cm9sLl9nZXRGaWVsZEFycmF5KG5hbWUpKTtcbiAgICBjb25zdCBpZHMgPSBSZWFjdC51c2VSZWYoY29udHJvbC5fZ2V0RmllbGRBcnJheShuYW1lKS5tYXAoZ2VuZXJhdGVJZCkpO1xuICAgIGNvbnN0IF9maWVsZElkcyA9IFJlYWN0LnVzZVJlZihmaWVsZHMpO1xuICAgIGNvbnN0IF9uYW1lID0gUmVhY3QudXNlUmVmKG5hbWUpO1xuICAgIGNvbnN0IF9hY3Rpb25lZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgX25hbWUuY3VycmVudCA9IG5hbWU7XG4gICAgX2ZpZWxkSWRzLmN1cnJlbnQgPSBmaWVsZHM7XG4gICAgY29udHJvbC5fbmFtZXMuYXJyYXkuYWRkKG5hbWUpO1xuICAgIHJ1bGVzICYmXG4gICAgICAgIGNvbnRyb2wucmVnaXN0ZXIobmFtZSwgcnVsZXMpO1xuICAgIHVzZVN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh7IHZhbHVlcywgbmFtZTogZmllbGRBcnJheU5hbWUsIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZEFycmF5TmFtZSA9PT0gX25hbWUuY3VycmVudCB8fCAhZmllbGRBcnJheU5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlcyA9IGdldCh2YWx1ZXMsIF9uYW1lLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkVmFsdWVzKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRGaWVsZHMoZmllbGRWYWx1ZXMpO1xuICAgICAgICAgICAgICAgICAgICBpZHMuY3VycmVudCA9IGZpZWxkVmFsdWVzLm1hcChnZW5lcmF0ZUlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHN1YmplY3Q6IGNvbnRyb2wuX3N1YmplY3RzLmFycmF5LFxuICAgIH0pO1xuICAgIGNvbnN0IHVwZGF0ZVZhbHVlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKCh1cGRhdGVkRmllbGRBcnJheVZhbHVlcykgPT4ge1xuICAgICAgICBfYWN0aW9uZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGNvbnRyb2wuX3VwZGF0ZUZpZWxkQXJyYXkobmFtZSwgdXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgIH0sIFtjb250cm9sLCBuYW1lXSk7XG4gICAgY29uc3QgYXBwZW5kID0gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwcGVuZFZhbHVlID0gY29udmVydFRvQXJyYXlQYXlsb2FkKGNsb25lT2JqZWN0KHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzID0gYXBwZW5kQXQoY29udHJvbC5fZ2V0RmllbGRBcnJheShuYW1lKSwgYXBwZW5kVmFsdWUpO1xuICAgICAgICBjb250cm9sLl9uYW1lcy5mb2N1cyA9IGdldEZvY3VzRmllbGROYW1lKG5hbWUsIHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLmxlbmd0aCAtIDEsIG9wdGlvbnMpO1xuICAgICAgICBpZHMuY3VycmVudCA9IGFwcGVuZEF0KGlkcy5jdXJyZW50LCBhcHBlbmRWYWx1ZS5tYXAoZ2VuZXJhdGVJZCkpO1xuICAgICAgICB1cGRhdGVWYWx1ZXModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBzZXRGaWVsZHModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBjb250cm9sLl91cGRhdGVGaWVsZEFycmF5KG5hbWUsIHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLCBhcHBlbmRBdCwge1xuICAgICAgICAgICAgYXJnQTogZmlsbEVtcHR5QXJyYXkodmFsdWUpLFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IHByZXBlbmQgPSAodmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgcHJlcGVuZFZhbHVlID0gY29udmVydFRvQXJyYXlQYXlsb2FkKGNsb25lT2JqZWN0KHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzID0gcHJlcGVuZEF0KGNvbnRyb2wuX2dldEZpZWxkQXJyYXkobmFtZSksIHByZXBlbmRWYWx1ZSk7XG4gICAgICAgIGNvbnRyb2wuX25hbWVzLmZvY3VzID0gZ2V0Rm9jdXNGaWVsZE5hbWUobmFtZSwgMCwgb3B0aW9ucyk7XG4gICAgICAgIGlkcy5jdXJyZW50ID0gcHJlcGVuZEF0KGlkcy5jdXJyZW50LCBwcmVwZW5kVmFsdWUubWFwKGdlbmVyYXRlSWQpKTtcbiAgICAgICAgdXBkYXRlVmFsdWVzKHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzKTtcbiAgICAgICAgc2V0RmllbGRzKHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzKTtcbiAgICAgICAgY29udHJvbC5fdXBkYXRlRmllbGRBcnJheShuYW1lLCB1cGRhdGVkRmllbGRBcnJheVZhbHVlcywgcHJlcGVuZEF0LCB7XG4gICAgICAgICAgICBhcmdBOiBmaWxsRW1wdHlBcnJheSh2YWx1ZSksXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgcmVtb3ZlID0gKGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzID0gcmVtb3ZlQXJyYXlBdChjb250cm9sLl9nZXRGaWVsZEFycmF5KG5hbWUpLCBpbmRleCk7XG4gICAgICAgIGlkcy5jdXJyZW50ID0gcmVtb3ZlQXJyYXlBdChpZHMuY3VycmVudCwgaW5kZXgpO1xuICAgICAgICB1cGRhdGVWYWx1ZXModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBzZXRGaWVsZHModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICAhQXJyYXkuaXNBcnJheShnZXQoY29udHJvbC5fZmllbGRzLCBuYW1lKSkgJiZcbiAgICAgICAgICAgIHNldChjb250cm9sLl9maWVsZHMsIG5hbWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnRyb2wuX3VwZGF0ZUZpZWxkQXJyYXkobmFtZSwgdXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMsIHJlbW92ZUFycmF5QXQsIHtcbiAgICAgICAgICAgIGFyZ0E6IGluZGV4LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGluc2VydCQxID0gKGluZGV4LCB2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBpbnNlcnRWYWx1ZSA9IGNvbnZlcnRUb0FycmF5UGF5bG9hZChjbG9uZU9iamVjdCh2YWx1ZSkpO1xuICAgICAgICBjb25zdCB1cGRhdGVkRmllbGRBcnJheVZhbHVlcyA9IGluc2VydChjb250cm9sLl9nZXRGaWVsZEFycmF5KG5hbWUpLCBpbmRleCwgaW5zZXJ0VmFsdWUpO1xuICAgICAgICBjb250cm9sLl9uYW1lcy5mb2N1cyA9IGdldEZvY3VzRmllbGROYW1lKG5hbWUsIGluZGV4LCBvcHRpb25zKTtcbiAgICAgICAgaWRzLmN1cnJlbnQgPSBpbnNlcnQoaWRzLmN1cnJlbnQsIGluZGV4LCBpbnNlcnRWYWx1ZS5tYXAoZ2VuZXJhdGVJZCkpO1xuICAgICAgICB1cGRhdGVWYWx1ZXModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBzZXRGaWVsZHModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBjb250cm9sLl91cGRhdGVGaWVsZEFycmF5KG5hbWUsIHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLCBpbnNlcnQsIHtcbiAgICAgICAgICAgIGFyZ0E6IGluZGV4LFxuICAgICAgICAgICAgYXJnQjogZmlsbEVtcHR5QXJyYXkodmFsdWUpLFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IHN3YXAgPSAoaW5kZXhBLCBpbmRleEIpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMgPSBjb250cm9sLl9nZXRGaWVsZEFycmF5KG5hbWUpO1xuICAgICAgICBzd2FwQXJyYXlBdCh1cGRhdGVkRmllbGRBcnJheVZhbHVlcywgaW5kZXhBLCBpbmRleEIpO1xuICAgICAgICBzd2FwQXJyYXlBdChpZHMuY3VycmVudCwgaW5kZXhBLCBpbmRleEIpO1xuICAgICAgICB1cGRhdGVWYWx1ZXModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBzZXRGaWVsZHModXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMpO1xuICAgICAgICBjb250cm9sLl91cGRhdGVGaWVsZEFycmF5KG5hbWUsIHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLCBzd2FwQXJyYXlBdCwge1xuICAgICAgICAgICAgYXJnQTogaW5kZXhBLFxuICAgICAgICAgICAgYXJnQjogaW5kZXhCLFxuICAgICAgICB9LCBmYWxzZSk7XG4gICAgfTtcbiAgICBjb25zdCBtb3ZlID0gKGZyb20sIHRvKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzID0gY29udHJvbC5fZ2V0RmllbGRBcnJheShuYW1lKTtcbiAgICAgICAgbW92ZUFycmF5QXQodXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMsIGZyb20sIHRvKTtcbiAgICAgICAgbW92ZUFycmF5QXQoaWRzLmN1cnJlbnQsIGZyb20sIHRvKTtcbiAgICAgICAgdXBkYXRlVmFsdWVzKHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzKTtcbiAgICAgICAgc2V0RmllbGRzKHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzKTtcbiAgICAgICAgY29udHJvbC5fdXBkYXRlRmllbGRBcnJheShuYW1lLCB1cGRhdGVkRmllbGRBcnJheVZhbHVlcywgbW92ZUFycmF5QXQsIHtcbiAgICAgICAgICAgIGFyZ0E6IGZyb20sXG4gICAgICAgICAgICBhcmdCOiB0byxcbiAgICAgICAgfSwgZmFsc2UpO1xuICAgIH07XG4gICAgY29uc3QgdXBkYXRlID0gKGluZGV4LCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IGNsb25lT2JqZWN0KHZhbHVlKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZpZWxkQXJyYXlWYWx1ZXMgPSB1cGRhdGVBdChjb250cm9sLl9nZXRGaWVsZEFycmF5KG5hbWUpLCBpbmRleCwgdXBkYXRlVmFsdWUpO1xuICAgICAgICBpZHMuY3VycmVudCA9IFsuLi51cGRhdGVkRmllbGRBcnJheVZhbHVlc10ubWFwKChpdGVtLCBpKSA9PiAhaXRlbSB8fCBpID09PSBpbmRleCA/IGdlbmVyYXRlSWQoKSA6IGlkcy5jdXJyZW50W2ldKTtcbiAgICAgICAgdXBkYXRlVmFsdWVzKHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzKTtcbiAgICAgICAgc2V0RmllbGRzKFsuLi51cGRhdGVkRmllbGRBcnJheVZhbHVlc10pO1xuICAgICAgICBjb250cm9sLl91cGRhdGVGaWVsZEFycmF5KG5hbWUsIHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLCB1cGRhdGVBdCwge1xuICAgICAgICAgICAgYXJnQTogaW5kZXgsXG4gICAgICAgICAgICBhcmdCOiB1cGRhdGVWYWx1ZSxcbiAgICAgICAgfSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH07XG4gICAgY29uc3QgcmVwbGFjZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkRmllbGRBcnJheVZhbHVlcyA9IGNvbnZlcnRUb0FycmF5UGF5bG9hZChjbG9uZU9iamVjdCh2YWx1ZSkpO1xuICAgICAgICBpZHMuY3VycmVudCA9IHVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzLm1hcChnZW5lcmF0ZUlkKTtcbiAgICAgICAgdXBkYXRlVmFsdWVzKFsuLi51cGRhdGVkRmllbGRBcnJheVZhbHVlc10pO1xuICAgICAgICBzZXRGaWVsZHMoWy4uLnVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzXSk7XG4gICAgICAgIGNvbnRyb2wuX3VwZGF0ZUZpZWxkQXJyYXkobmFtZSwgWy4uLnVwZGF0ZWRGaWVsZEFycmF5VmFsdWVzXSwgKGRhdGEpID0+IGRhdGEsIHt9LCB0cnVlLCBmYWxzZSk7XG4gICAgfTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb250cm9sLl9zdGF0ZS5hY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgaXNXYXRjaGVkKG5hbWUsIGNvbnRyb2wuX25hbWVzKSAmJlxuICAgICAgICAgICAgY29udHJvbC5fc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgLi4uY29udHJvbC5fZm9ybVN0YXRlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChfYWN0aW9uZWQuY3VycmVudCAmJlxuICAgICAgICAgICAgKCFnZXRWYWxpZGF0aW9uTW9kZXMoY29udHJvbC5fb3B0aW9ucy5tb2RlKS5pc09uU3VibWl0IHx8XG4gICAgICAgICAgICAgICAgY29udHJvbC5fZm9ybVN0YXRlLmlzU3VibWl0dGVkKSkge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wuX29wdGlvbnMucmVzb2x2ZXIpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLl9leGVjdXRlU2NoZW1hKFtuYW1lXSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZ2V0KHJlc3VsdC5lcnJvcnMsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ0Vycm9yID0gZ2V0KGNvbnRyb2wuX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdFcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoIWVycm9yICYmIGV4aXN0aW5nRXJyb3IudHlwZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4aXN0aW5nRXJyb3IudHlwZSAhPT0gZXJyb3IudHlwZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdFcnJvci5tZXNzYWdlICE9PSBlcnJvci5tZXNzYWdlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXJyb3IgJiYgZXJyb3IudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNldChjb250cm9sLl9mb3JtU3RhdGUuZXJyb3JzLCBuYW1lLCBlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuc2V0KGNvbnRyb2wuX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5fc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiBjb250cm9sLl9mb3JtU3RhdGUuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZ2V0KGNvbnRyb2wuX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkICYmXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLl9mICYmXG4gICAgICAgICAgICAgICAgICAgICEoZ2V0VmFsaWRhdGlvbk1vZGVzKGNvbnRyb2wuX29wdGlvbnMucmVWYWxpZGF0ZU1vZGUpLmlzT25TdWJtaXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFZhbGlkYXRpb25Nb2Rlcyhjb250cm9sLl9vcHRpb25zLm1vZGUpLmlzT25TdWJtaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIGNvbnRyb2wuX25hbWVzLmRpc2FibGVkLCBjb250cm9sLl9mb3JtVmFsdWVzLCBjb250cm9sLl9vcHRpb25zLmNyaXRlcmlhTW9kZSA9PT0gVkFMSURBVElPTl9NT0RFLmFsbCwgY29udHJvbC5fb3B0aW9ucy5zaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uLCB0cnVlKS50aGVuKChlcnJvcikgPT4gIWlzRW1wdHlPYmplY3QoZXJyb3IpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLl9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IHVwZGF0ZUZpZWxkQXJyYXlSb290RXJyb3IoY29udHJvbC5fZm9ybVN0YXRlLmVycm9ycywgZXJyb3IsIG5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb250cm9sLl9zdWJqZWN0cy52YWx1ZXMubmV4dCh7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWVzOiB7IC4uLmNvbnRyb2wuX2Zvcm1WYWx1ZXMgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRyb2wuX25hbWVzLmZvY3VzICYmXG4gICAgICAgICAgICBpdGVyYXRlRmllbGRzQnlBY3Rpb24oY29udHJvbC5fZmllbGRzLCAocmVmLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbC5fbmFtZXMuZm9jdXMgJiZcbiAgICAgICAgICAgICAgICAgICAga2V5LnN0YXJ0c1dpdGgoY29udHJvbC5fbmFtZXMuZm9jdXMpICYmXG4gICAgICAgICAgICAgICAgICAgIHJlZi5mb2N1cykge1xuICAgICAgICAgICAgICAgICAgICByZWYuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBjb250cm9sLl9uYW1lcy5mb2N1cyA9ICcnO1xuICAgICAgICBjb250cm9sLl91cGRhdGVWYWxpZCgpO1xuICAgICAgICBfYWN0aW9uZWQuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sIFtmaWVsZHMsIG5hbWUsIGNvbnRyb2xdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAhZ2V0KGNvbnRyb2wuX2Zvcm1WYWx1ZXMsIG5hbWUpICYmIGNvbnRyb2wuX3VwZGF0ZUZpZWxkQXJyYXkobmFtZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAoY29udHJvbC5fb3B0aW9ucy5zaG91bGRVbnJlZ2lzdGVyIHx8IHNob3VsZFVucmVnaXN0ZXIpICYmXG4gICAgICAgICAgICAgICAgY29udHJvbC51bnJlZ2lzdGVyKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCBjb250cm9sLCBrZXlOYW1lLCBzaG91bGRVbnJlZ2lzdGVyXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3dhcDogUmVhY3QudXNlQ2FsbGJhY2soc3dhcCwgW3VwZGF0ZVZhbHVlcywgbmFtZSwgY29udHJvbF0pLFxuICAgICAgICBtb3ZlOiBSZWFjdC51c2VDYWxsYmFjayhtb3ZlLCBbdXBkYXRlVmFsdWVzLCBuYW1lLCBjb250cm9sXSksXG4gICAgICAgIHByZXBlbmQ6IFJlYWN0LnVzZUNhbGxiYWNrKHByZXBlbmQsIFt1cGRhdGVWYWx1ZXMsIG5hbWUsIGNvbnRyb2xdKSxcbiAgICAgICAgYXBwZW5kOiBSZWFjdC51c2VDYWxsYmFjayhhcHBlbmQsIFt1cGRhdGVWYWx1ZXMsIG5hbWUsIGNvbnRyb2xdKSxcbiAgICAgICAgcmVtb3ZlOiBSZWFjdC51c2VDYWxsYmFjayhyZW1vdmUsIFt1cGRhdGVWYWx1ZXMsIG5hbWUsIGNvbnRyb2xdKSxcbiAgICAgICAgaW5zZXJ0OiBSZWFjdC51c2VDYWxsYmFjayhpbnNlcnQkMSwgW3VwZGF0ZVZhbHVlcywgbmFtZSwgY29udHJvbF0pLFxuICAgICAgICB1cGRhdGU6IFJlYWN0LnVzZUNhbGxiYWNrKHVwZGF0ZSwgW3VwZGF0ZVZhbHVlcywgbmFtZSwgY29udHJvbF0pLFxuICAgICAgICByZXBsYWNlOiBSZWFjdC51c2VDYWxsYmFjayhyZXBsYWNlLCBbdXBkYXRlVmFsdWVzLCBuYW1lLCBjb250cm9sXSksXG4gICAgICAgIGZpZWxkczogUmVhY3QudXNlTWVtbygoKSA9PiBmaWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAgIFtrZXlOYW1lXTogaWRzLmN1cnJlbnRbaW5kZXhdIHx8IGdlbmVyYXRlSWQoKSxcbiAgICAgICAgfSkpLCBbZmllbGRzLCBrZXlOYW1lXSksXG4gICAgfTtcbn1cblxudmFyIGNyZWF0ZVN1YmplY3QgPSAoKSA9PiB7XG4gICAgbGV0IF9vYnNlcnZlcnMgPSBbXTtcbiAgICBjb25zdCBuZXh0ID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgb2JzZXJ2ZXIgb2YgX29ic2VydmVycykge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCAmJiBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgc3Vic2NyaWJlID0gKG9ic2VydmVyKSA9PiB7XG4gICAgICAgIF9vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIF9vYnNlcnZlcnMgPSBfb2JzZXJ2ZXJzLmZpbHRlcigobykgPT4gbyAhPT0gb2JzZXJ2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gKCkgPT4ge1xuICAgICAgICBfb2JzZXJ2ZXJzID0gW107XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQgb2JzZXJ2ZXJzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9vYnNlcnZlcnM7XG4gICAgICAgIH0sXG4gICAgICAgIG5leHQsXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgdW5zdWJzY3JpYmUsXG4gICAgfTtcbn07XG5cbnZhciBpc1ByaW1pdGl2ZSA9ICh2YWx1ZSkgPT4gaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpIHx8ICFpc09iamVjdFR5cGUodmFsdWUpO1xuXG5mdW5jdGlvbiBkZWVwRXF1YWwob2JqZWN0MSwgb2JqZWN0Mikge1xuICAgIGlmIChpc1ByaW1pdGl2ZShvYmplY3QxKSB8fCBpc1ByaW1pdGl2ZShvYmplY3QyKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0MSA9PT0gb2JqZWN0MjtcbiAgICB9XG4gICAgaWYgKGlzRGF0ZU9iamVjdChvYmplY3QxKSAmJiBpc0RhdGVPYmplY3Qob2JqZWN0MikpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDEuZ2V0VGltZSgpID09PSBvYmplY3QyLmdldFRpbWUoKTtcbiAgICB9XG4gICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyhvYmplY3QxKTtcbiAgICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKG9iamVjdDIpO1xuICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMxKSB7XG4gICAgICAgIGNvbnN0IHZhbDEgPSBvYmplY3QxW2tleV07XG4gICAgICAgIGlmICgha2V5czIuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgIT09ICdyZWYnKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwyID0gb2JqZWN0MltrZXldO1xuICAgICAgICAgICAgaWYgKChpc0RhdGVPYmplY3QodmFsMSkgJiYgaXNEYXRlT2JqZWN0KHZhbDIpKSB8fFxuICAgICAgICAgICAgICAgIChpc09iamVjdCh2YWwxKSAmJiBpc09iamVjdCh2YWwyKSkgfHxcbiAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWwxKSAmJiBBcnJheS5pc0FycmF5KHZhbDIpKVxuICAgICAgICAgICAgICAgID8gIWRlZXBFcXVhbCh2YWwxLCB2YWwyKVxuICAgICAgICAgICAgICAgIDogdmFsMSAhPT0gdmFsMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxudmFyIGlzTXVsdGlwbGVTZWxlY3QgPSAoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSBgc2VsZWN0LW11bHRpcGxlYDtcblxudmFyIGlzUmFkaW9PckNoZWNrYm94ID0gKHJlZikgPT4gaXNSYWRpb0lucHV0KHJlZikgfHwgaXNDaGVja0JveElucHV0KHJlZik7XG5cbnZhciBsaXZlID0gKHJlZikgPT4gaXNIVE1MRWxlbWVudChyZWYpICYmIHJlZi5pc0Nvbm5lY3RlZDtcblxudmFyIG9iamVjdEhhc0Z1bmN0aW9uID0gKGRhdGEpID0+IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGRhdGFba2V5XSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmZ1bmN0aW9uIG1hcmtGaWVsZHNEaXJ0eShkYXRhLCBmaWVsZHMgPSB7fSkge1xuICAgIGNvbnN0IGlzUGFyZW50Tm9kZUFycmF5ID0gQXJyYXkuaXNBcnJheShkYXRhKTtcbiAgICBpZiAoaXNPYmplY3QoZGF0YSkgfHwgaXNQYXJlbnROb2RlQXJyYXkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtrZXldKSB8fFxuICAgICAgICAgICAgICAgIChpc09iamVjdChkYXRhW2tleV0pICYmICFvYmplY3RIYXNGdW5jdGlvbihkYXRhW2tleV0pKSkge1xuICAgICAgICAgICAgICAgIGZpZWxkc1trZXldID0gQXJyYXkuaXNBcnJheShkYXRhW2tleV0pID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBtYXJrRmllbGRzRGlydHkoZGF0YVtrZXldLCBmaWVsZHNba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZGF0YVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGZpZWxkc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmllbGRzO1xufVxuZnVuY3Rpb24gZ2V0RGlydHlGaWVsZHNGcm9tRGVmYXVsdFZhbHVlcyhkYXRhLCBmb3JtVmFsdWVzLCBkaXJ0eUZpZWxkc0Zyb21WYWx1ZXMpIHtcbiAgICBjb25zdCBpc1BhcmVudE5vZGVBcnJheSA9IEFycmF5LmlzQXJyYXkoZGF0YSk7XG4gICAgaWYgKGlzT2JqZWN0KGRhdGEpIHx8IGlzUGFyZW50Tm9kZUFycmF5KSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFba2V5XSkgfHxcbiAgICAgICAgICAgICAgICAoaXNPYmplY3QoZGF0YVtrZXldKSAmJiAhb2JqZWN0SGFzRnVuY3Rpb24oZGF0YVtrZXldKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQoZm9ybVZhbHVlcykgfHxcbiAgICAgICAgICAgICAgICAgICAgaXNQcmltaXRpdmUoZGlydHlGaWVsZHNGcm9tVmFsdWVzW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpcnR5RmllbGRzRnJvbVZhbHVlc1trZXldID0gQXJyYXkuaXNBcnJheShkYXRhW2tleV0pXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG1hcmtGaWVsZHNEaXJ0eShkYXRhW2tleV0sIFtdKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB7IC4uLm1hcmtGaWVsZHNEaXJ0eShkYXRhW2tleV0pIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBnZXREaXJ0eUZpZWxkc0Zyb21EZWZhdWx0VmFsdWVzKGRhdGFba2V5XSwgaXNOdWxsT3JVbmRlZmluZWQoZm9ybVZhbHVlcykgPyB7fSA6IGZvcm1WYWx1ZXNba2V5XSwgZGlydHlGaWVsZHNGcm9tVmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRpcnR5RmllbGRzRnJvbVZhbHVlc1trZXldID0gIWRlZXBFcXVhbChkYXRhW2tleV0sIGZvcm1WYWx1ZXNba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRpcnR5RmllbGRzRnJvbVZhbHVlcztcbn1cbnZhciBnZXREaXJ0eUZpZWxkcyA9IChkZWZhdWx0VmFsdWVzLCBmb3JtVmFsdWVzKSA9PiBnZXREaXJ0eUZpZWxkc0Zyb21EZWZhdWx0VmFsdWVzKGRlZmF1bHRWYWx1ZXMsIGZvcm1WYWx1ZXMsIG1hcmtGaWVsZHNEaXJ0eShmb3JtVmFsdWVzKSk7XG5cbnZhciBnZXRGaWVsZFZhbHVlQXMgPSAodmFsdWUsIHsgdmFsdWVBc051bWJlciwgdmFsdWVBc0RhdGUsIHNldFZhbHVlQXMgfSkgPT4gaXNVbmRlZmluZWQodmFsdWUpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWVBc051bWJlclxuICAgICAgICA/IHZhbHVlID09PSAnJ1xuICAgICAgICAgICAgPyBOYU5cbiAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgICAgICAgICA/ICt2YWx1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgOiB2YWx1ZUFzRGF0ZSAmJiBpc1N0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgID8gbmV3IERhdGUodmFsdWUpXG4gICAgICAgICAgICA6IHNldFZhbHVlQXNcbiAgICAgICAgICAgICAgICA/IHNldFZhbHVlQXModmFsdWUpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuZnVuY3Rpb24gZ2V0RmllbGRWYWx1ZShfZikge1xuICAgIGNvbnN0IHJlZiA9IF9mLnJlZjtcbiAgICBpZiAoaXNGaWxlSW5wdXQocmVmKSkge1xuICAgICAgICByZXR1cm4gcmVmLmZpbGVzO1xuICAgIH1cbiAgICBpZiAoaXNSYWRpb0lucHV0KHJlZikpIHtcbiAgICAgICAgcmV0dXJuIGdldFJhZGlvVmFsdWUoX2YucmVmcykudmFsdWU7XG4gICAgfVxuICAgIGlmIChpc011bHRpcGxlU2VsZWN0KHJlZikpIHtcbiAgICAgICAgcmV0dXJuIFsuLi5yZWYuc2VsZWN0ZWRPcHRpb25zXS5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoaXNDaGVja0JveElucHV0KHJlZikpIHtcbiAgICAgICAgcmV0dXJuIGdldENoZWNrYm94VmFsdWUoX2YucmVmcykudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBnZXRGaWVsZFZhbHVlQXMoaXNVbmRlZmluZWQocmVmLnZhbHVlKSA/IF9mLnJlZi52YWx1ZSA6IHJlZi52YWx1ZSwgX2YpO1xufVxuXG52YXIgZ2V0UmVzb2x2ZXJPcHRpb25zID0gKGZpZWxkc05hbWVzLCBfZmllbGRzLCBjcml0ZXJpYU1vZGUsIHNob3VsZFVzZU5hdGl2ZVZhbGlkYXRpb24pID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZmllbGRzTmFtZXMpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgIGZpZWxkICYmIHNldChmaWVsZHMsIG5hbWUsIGZpZWxkLl9mKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY3JpdGVyaWFNb2RlLFxuICAgICAgICBuYW1lczogWy4uLmZpZWxkc05hbWVzXSxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBzaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uLFxuICAgIH07XG59O1xuXG52YXIgZ2V0UnVsZVZhbHVlID0gKHJ1bGUpID0+IGlzVW5kZWZpbmVkKHJ1bGUpXG4gICAgPyBydWxlXG4gICAgOiBpc1JlZ2V4KHJ1bGUpXG4gICAgICAgID8gcnVsZS5zb3VyY2VcbiAgICAgICAgOiBpc09iamVjdChydWxlKVxuICAgICAgICAgICAgPyBpc1JlZ2V4KHJ1bGUudmFsdWUpXG4gICAgICAgICAgICAgICAgPyBydWxlLnZhbHVlLnNvdXJjZVxuICAgICAgICAgICAgICAgIDogcnVsZS52YWx1ZVxuICAgICAgICAgICAgOiBydWxlO1xuXG5jb25zdCBBU1lOQ19GVU5DVElPTiA9ICdBc3luY0Z1bmN0aW9uJztcbnZhciBoYXNQcm9taXNlVmFsaWRhdGlvbiA9IChmaWVsZFJlZmVyZW5jZSkgPT4gISFmaWVsZFJlZmVyZW5jZSAmJlxuICAgICEhZmllbGRSZWZlcmVuY2UudmFsaWRhdGUgJiZcbiAgICAhISgoaXNGdW5jdGlvbihmaWVsZFJlZmVyZW5jZS52YWxpZGF0ZSkgJiZcbiAgICAgICAgZmllbGRSZWZlcmVuY2UudmFsaWRhdGUuY29uc3RydWN0b3IubmFtZSA9PT0gQVNZTkNfRlVOQ1RJT04pIHx8XG4gICAgICAgIChpc09iamVjdChmaWVsZFJlZmVyZW5jZS52YWxpZGF0ZSkgJiZcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZmllbGRSZWZlcmVuY2UudmFsaWRhdGUpLmZpbmQoKHZhbGlkYXRlRnVuY3Rpb24pID0+IHZhbGlkYXRlRnVuY3Rpb24uY29uc3RydWN0b3IubmFtZSA9PT0gQVNZTkNfRlVOQ1RJT04pKSk7XG5cbnZhciBoYXNWYWxpZGF0aW9uID0gKG9wdGlvbnMpID0+IG9wdGlvbnMubW91bnQgJiZcbiAgICAob3B0aW9ucy5yZXF1aXJlZCB8fFxuICAgICAgICBvcHRpb25zLm1pbiB8fFxuICAgICAgICBvcHRpb25zLm1heCB8fFxuICAgICAgICBvcHRpb25zLm1heExlbmd0aCB8fFxuICAgICAgICBvcHRpb25zLm1pbkxlbmd0aCB8fFxuICAgICAgICBvcHRpb25zLnBhdHRlcm4gfHxcbiAgICAgICAgb3B0aW9ucy52YWxpZGF0ZSk7XG5cbmZ1bmN0aW9uIHNjaGVtYUVycm9yTG9va3VwKGVycm9ycywgX2ZpZWxkcywgbmFtZSkge1xuICAgIGNvbnN0IGVycm9yID0gZ2V0KGVycm9ycywgbmFtZSk7XG4gICAgaWYgKGVycm9yIHx8IGlzS2V5KG5hbWUpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG5hbWVzID0gbmFtZS5zcGxpdCgnLicpO1xuICAgIHdoaWxlIChuYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gbmFtZXMuam9pbignLicpO1xuICAgICAgICBjb25zdCBmaWVsZCA9IGdldChfZmllbGRzLCBmaWVsZE5hbWUpO1xuICAgICAgICBjb25zdCBmb3VuZEVycm9yID0gZ2V0KGVycm9ycywgZmllbGROYW1lKTtcbiAgICAgICAgaWYgKGZpZWxkICYmICFBcnJheS5pc0FycmF5KGZpZWxkKSAmJiBuYW1lICE9PSBmaWVsZE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm91bmRFcnJvciAmJiBmb3VuZEVycm9yLnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogZmllbGROYW1lLFxuICAgICAgICAgICAgICAgIGVycm9yOiBmb3VuZEVycm9yLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBuYW1lcy5wb3AoKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICB9O1xufVxuXG52YXIgc2tpcFZhbGlkYXRpb24gPSAoaXNCbHVyRXZlbnQsIGlzVG91Y2hlZCwgaXNTdWJtaXR0ZWQsIHJlVmFsaWRhdGVNb2RlLCBtb2RlKSA9PiB7XG4gICAgaWYgKG1vZGUuaXNPbkFsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFpc1N1Ym1pdHRlZCAmJiBtb2RlLmlzT25Ub3VjaCkge1xuICAgICAgICByZXR1cm4gIShpc1RvdWNoZWQgfHwgaXNCbHVyRXZlbnQpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N1Ym1pdHRlZCA/IHJlVmFsaWRhdGVNb2RlLmlzT25CbHVyIDogbW9kZS5pc09uQmx1cikge1xuICAgICAgICByZXR1cm4gIWlzQmx1ckV2ZW50O1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N1Ym1pdHRlZCA/IHJlVmFsaWRhdGVNb2RlLmlzT25DaGFuZ2UgOiBtb2RlLmlzT25DaGFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIGlzQmx1ckV2ZW50O1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbnZhciB1bnNldEVtcHR5QXJyYXkgPSAocmVmLCBuYW1lKSA9PiAhY29tcGFjdChnZXQocmVmLCBuYW1lKSkubGVuZ3RoICYmIHVuc2V0KHJlZiwgbmFtZSk7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgIG1vZGU6IFZBTElEQVRJT05fTU9ERS5vblN1Ym1pdCxcbiAgICByZVZhbGlkYXRlTW9kZTogVkFMSURBVElPTl9NT0RFLm9uQ2hhbmdlLFxuICAgIHNob3VsZEZvY3VzRXJyb3I6IHRydWUsXG59O1xuZnVuY3Rpb24gY3JlYXRlRm9ybUNvbnRyb2wocHJvcHMgPSB7fSkge1xuICAgIGxldCBfb3B0aW9ucyA9IHtcbiAgICAgICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgbGV0IF9mb3JtU3RhdGUgPSB7XG4gICAgICAgIHN1Ym1pdENvdW50OiAwLFxuICAgICAgICBpc0RpcnR5OiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBpc0Z1bmN0aW9uKF9vcHRpb25zLmRlZmF1bHRWYWx1ZXMpLFxuICAgICAgICBpc1ZhbGlkYXRpbmc6IGZhbHNlLFxuICAgICAgICBpc1N1Ym1pdHRlZDogZmFsc2UsXG4gICAgICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgICAgIGlzU3VibWl0U3VjY2Vzc2Z1bDogZmFsc2UsXG4gICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICB0b3VjaGVkRmllbGRzOiB7fSxcbiAgICAgICAgZGlydHlGaWVsZHM6IHt9LFxuICAgICAgICB2YWxpZGF0aW5nRmllbGRzOiB7fSxcbiAgICAgICAgZXJyb3JzOiBfb3B0aW9ucy5lcnJvcnMgfHwge30sXG4gICAgICAgIGRpc2FibGVkOiBfb3B0aW9ucy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICB9O1xuICAgIGxldCBfZmllbGRzID0ge307XG4gICAgbGV0IF9kZWZhdWx0VmFsdWVzID0gaXNPYmplY3QoX29wdGlvbnMuZGVmYXVsdFZhbHVlcykgfHwgaXNPYmplY3QoX29wdGlvbnMudmFsdWVzKVxuICAgICAgICA/IGNsb25lT2JqZWN0KF9vcHRpb25zLmRlZmF1bHRWYWx1ZXMgfHwgX29wdGlvbnMudmFsdWVzKSB8fCB7fVxuICAgICAgICA6IHt9O1xuICAgIGxldCBfZm9ybVZhbHVlcyA9IF9vcHRpb25zLnNob3VsZFVucmVnaXN0ZXJcbiAgICAgICAgPyB7fVxuICAgICAgICA6IGNsb25lT2JqZWN0KF9kZWZhdWx0VmFsdWVzKTtcbiAgICBsZXQgX3N0YXRlID0ge1xuICAgICAgICBhY3Rpb246IGZhbHNlLFxuICAgICAgICBtb3VudDogZmFsc2UsXG4gICAgICAgIHdhdGNoOiBmYWxzZSxcbiAgICB9O1xuICAgIGxldCBfbmFtZXMgPSB7XG4gICAgICAgIG1vdW50OiBuZXcgU2V0KCksXG4gICAgICAgIGRpc2FibGVkOiBuZXcgU2V0KCksXG4gICAgICAgIHVuTW91bnQ6IG5ldyBTZXQoKSxcbiAgICAgICAgYXJyYXk6IG5ldyBTZXQoKSxcbiAgICAgICAgd2F0Y2g6IG5ldyBTZXQoKSxcbiAgICB9O1xuICAgIGxldCBkZWxheUVycm9yQ2FsbGJhY2s7XG4gICAgbGV0IHRpbWVyID0gMDtcbiAgICBjb25zdCBfcHJveHlGb3JtU3RhdGUgPSB7XG4gICAgICAgIGlzRGlydHk6IGZhbHNlLFxuICAgICAgICBkaXJ0eUZpZWxkczogZmFsc2UsXG4gICAgICAgIHZhbGlkYXRpbmdGaWVsZHM6IGZhbHNlLFxuICAgICAgICB0b3VjaGVkRmllbGRzOiBmYWxzZSxcbiAgICAgICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yczogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCBfc3ViamVjdHMgPSB7XG4gICAgICAgIHZhbHVlczogY3JlYXRlU3ViamVjdCgpLFxuICAgICAgICBhcnJheTogY3JlYXRlU3ViamVjdCgpLFxuICAgICAgICBzdGF0ZTogY3JlYXRlU3ViamVjdCgpLFxuICAgIH07XG4gICAgY29uc3QgdmFsaWRhdGlvbk1vZGVCZWZvcmVTdWJtaXQgPSBnZXRWYWxpZGF0aW9uTW9kZXMoX29wdGlvbnMubW9kZSk7XG4gICAgY29uc3QgdmFsaWRhdGlvbk1vZGVBZnRlclN1Ym1pdCA9IGdldFZhbGlkYXRpb25Nb2Rlcyhfb3B0aW9ucy5yZVZhbGlkYXRlTW9kZSk7XG4gICAgY29uc3Qgc2hvdWxkRGlzcGxheUFsbEFzc29jaWF0ZWRFcnJvcnMgPSBfb3B0aW9ucy5jcml0ZXJpYU1vZGUgPT09IFZBTElEQVRJT05fTU9ERS5hbGw7XG4gICAgY29uc3QgZGVib3VuY2UgPSAoY2FsbGJhY2spID0+ICh3YWl0KSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgIHRpbWVyID0gc2V0VGltZW91dChjYWxsYmFjaywgd2FpdCk7XG4gICAgfTtcbiAgICBjb25zdCBfdXBkYXRlVmFsaWQgPSBhc3luYyAoc2hvdWxkVXBkYXRlVmFsaWQpID0+IHtcbiAgICAgICAgaWYgKCFfb3B0aW9ucy5kaXNhYmxlZCAmJiAoX3Byb3h5Rm9ybVN0YXRlLmlzVmFsaWQgfHwgc2hvdWxkVXBkYXRlVmFsaWQpKSB7XG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gX29wdGlvbnMucmVzb2x2ZXJcbiAgICAgICAgICAgICAgICA/IGlzRW1wdHlPYmplY3QoKGF3YWl0IF9leGVjdXRlU2NoZW1hKCkpLmVycm9ycylcbiAgICAgICAgICAgICAgICA6IGF3YWl0IGV4ZWN1dGVCdWlsdEluVmFsaWRhdGlvbihfZmllbGRzLCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkICE9PSBfZm9ybVN0YXRlLmlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IF91cGRhdGVJc1ZhbGlkYXRpbmcgPSAobmFtZXMsIGlzVmFsaWRhdGluZykgPT4ge1xuICAgICAgICBpZiAoIV9vcHRpb25zLmRpc2FibGVkICYmXG4gICAgICAgICAgICAoX3Byb3h5Rm9ybVN0YXRlLmlzVmFsaWRhdGluZyB8fCBfcHJveHlGb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcykpIHtcbiAgICAgICAgICAgIChuYW1lcyB8fCBBcnJheS5mcm9tKF9uYW1lcy5tb3VudCkpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkYXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0KF9mb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcywgbmFtZSwgaXNWYWxpZGF0aW5nKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bnNldChfZm9ybVN0YXRlLnZhbGlkYXRpbmdGaWVsZHMsIG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgICAgIHZhbGlkYXRpbmdGaWVsZHM6IF9mb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcyxcbiAgICAgICAgICAgICAgICBpc1ZhbGlkYXRpbmc6ICFpc0VtcHR5T2JqZWN0KF9mb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcyksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgX3VwZGF0ZUZpZWxkQXJyYXkgPSAobmFtZSwgdmFsdWVzID0gW10sIG1ldGhvZCwgYXJncywgc2hvdWxkU2V0VmFsdWVzID0gdHJ1ZSwgc2hvdWxkVXBkYXRlRmllbGRzQW5kU3RhdGUgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChhcmdzICYmIG1ldGhvZCAmJiAhX29wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIF9zdGF0ZS5hY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUZpZWxkc0FuZFN0YXRlICYmIEFycmF5LmlzQXJyYXkoZ2V0KF9maWVsZHMsIG5hbWUpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gbWV0aG9kKGdldChfZmllbGRzLCBuYW1lKSwgYXJncy5hcmdBLCBhcmdzLmFyZ0IpO1xuICAgICAgICAgICAgICAgIHNob3VsZFNldFZhbHVlcyAmJiBzZXQoX2ZpZWxkcywgbmFtZSwgZmllbGRWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUZpZWxkc0FuZFN0YXRlICYmXG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShnZXQoX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IG1ldGhvZChnZXQoX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpLCBhcmdzLmFyZ0EsIGFyZ3MuYXJnQik7XG4gICAgICAgICAgICAgICAgc2hvdWxkU2V0VmFsdWVzICYmIHNldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSwgZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB1bnNldEVtcHR5QXJyYXkoX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF9wcm94eUZvcm1TdGF0ZS50b3VjaGVkRmllbGRzICYmXG4gICAgICAgICAgICAgICAgc2hvdWxkVXBkYXRlRmllbGRzQW5kU3RhdGUgJiZcbiAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KGdldChfZm9ybVN0YXRlLnRvdWNoZWRGaWVsZHMsIG5hbWUpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvdWNoZWRGaWVsZHMgPSBtZXRob2QoZ2V0KF9mb3JtU3RhdGUudG91Y2hlZEZpZWxkcywgbmFtZSksIGFyZ3MuYXJnQSwgYXJncy5hcmdCKTtcbiAgICAgICAgICAgICAgICBzaG91bGRTZXRWYWx1ZXMgJiYgc2V0KF9mb3JtU3RhdGUudG91Y2hlZEZpZWxkcywgbmFtZSwgdG91Y2hlZEZpZWxkcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoX3Byb3h5Rm9ybVN0YXRlLmRpcnR5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcyA9IGdldERpcnR5RmllbGRzKF9kZWZhdWx0VmFsdWVzLCBfZm9ybVZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBpc0RpcnR5OiBfZ2V0RGlydHkobmFtZSwgdmFsdWVzKSxcbiAgICAgICAgICAgICAgICBkaXJ0eUZpZWxkczogX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcyxcbiAgICAgICAgICAgICAgICBlcnJvcnM6IF9mb3JtU3RhdGUuZXJyb3JzLFxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IF9mb3JtU3RhdGUuaXNWYWxpZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0KF9mb3JtVmFsdWVzLCBuYW1lLCB2YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVFcnJvcnMgPSAobmFtZSwgZXJyb3IpID0+IHtcbiAgICAgICAgc2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBuYW1lLCBlcnJvcik7XG4gICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgIGVycm9yczogX2Zvcm1TdGF0ZS5lcnJvcnMsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgX3NldEVycm9ycyA9IChlcnJvcnMpID0+IHtcbiAgICAgICAgX2Zvcm1TdGF0ZS5lcnJvcnMgPSBlcnJvcnM7XG4gICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgIGVycm9yczogX2Zvcm1TdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVWYWxpZEFuZFZhbHVlID0gKG5hbWUsIHNob3VsZFNraXBTZXRWYWx1ZUFzLCB2YWx1ZSwgcmVmKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZ2V0KF9maWVsZHMsIG5hbWUpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGdldChfZm9ybVZhbHVlcywgbmFtZSwgaXNVbmRlZmluZWQodmFsdWUpID8gZ2V0KF9kZWZhdWx0VmFsdWVzLCBuYW1lKSA6IHZhbHVlKTtcbiAgICAgICAgICAgIGlzVW5kZWZpbmVkKGRlZmF1bHRWYWx1ZSkgfHxcbiAgICAgICAgICAgICAgICAocmVmICYmIHJlZi5kZWZhdWx0Q2hlY2tlZCkgfHxcbiAgICAgICAgICAgICAgICBzaG91bGRTa2lwU2V0VmFsdWVBc1xuICAgICAgICAgICAgICAgID8gc2V0KF9mb3JtVmFsdWVzLCBuYW1lLCBzaG91bGRTa2lwU2V0VmFsdWVBcyA/IGRlZmF1bHRWYWx1ZSA6IGdldEZpZWxkVmFsdWUoZmllbGQuX2YpKVxuICAgICAgICAgICAgICAgIDogc2V0RmllbGRWYWx1ZShuYW1lLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgX3N0YXRlLm1vdW50ICYmIF91cGRhdGVWYWxpZCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVUb3VjaEFuZERpcnR5ID0gKG5hbWUsIGZpZWxkVmFsdWUsIGlzQmx1ckV2ZW50LCBzaG91bGREaXJ0eSwgc2hvdWxkUmVuZGVyKSA9PiB7XG4gICAgICAgIGxldCBzaG91bGRVcGRhdGVGaWVsZCA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNQcmV2aW91c0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghX29wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkRmllbGQgPSAhIShnZXQoX2ZpZWxkcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgICBnZXQoX2ZpZWxkcywgbmFtZSkuX2YgJiZcbiAgICAgICAgICAgICAgICBnZXQoX2ZpZWxkcywgbmFtZSkuX2YuZGlzYWJsZWQpO1xuICAgICAgICAgICAgaWYgKCFpc0JsdXJFdmVudCB8fCBzaG91bGREaXJ0eSkge1xuICAgICAgICAgICAgICAgIGlmIChfcHJveHlGb3JtU3RhdGUuaXNEaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICBpc1ByZXZpb3VzRGlydHkgPSBfZm9ybVN0YXRlLmlzRGlydHk7XG4gICAgICAgICAgICAgICAgICAgIF9mb3JtU3RhdGUuaXNEaXJ0eSA9IG91dHB1dC5pc0RpcnR5ID0gX2dldERpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZpZWxkID0gaXNQcmV2aW91c0RpcnR5ICE9PSBvdXRwdXQuaXNEaXJ0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50RmllbGRQcmlzdGluZSA9IGRpc2FibGVkRmllbGQgfHwgZGVlcEVxdWFsKGdldChfZGVmYXVsdFZhbHVlcywgbmFtZSksIGZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgICAgIGlzUHJldmlvdXNEaXJ0eSA9ICEhKCFkaXNhYmxlZEZpZWxkICYmIGdldChfZm9ybVN0YXRlLmRpcnR5RmllbGRzLCBuYW1lKSk7XG4gICAgICAgICAgICAgICAgaXNDdXJyZW50RmllbGRQcmlzdGluZSB8fCBkaXNhYmxlZEZpZWxkXG4gICAgICAgICAgICAgICAgICAgID8gdW5zZXQoX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcywgbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgOiBzZXQoX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcywgbmFtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmRpcnR5RmllbGRzID0gX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcztcbiAgICAgICAgICAgICAgICBzaG91bGRVcGRhdGVGaWVsZCA9XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZpZWxkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoX3Byb3h5Rm9ybVN0YXRlLmRpcnR5RmllbGRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmV2aW91c0RpcnR5ICE9PSAhaXNDdXJyZW50RmllbGRQcmlzdGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNCbHVyRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1ByZXZpb3VzRmllbGRUb3VjaGVkID0gZ2V0KF9mb3JtU3RhdGUudG91Y2hlZEZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ByZXZpb3VzRmllbGRUb3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldChfZm9ybVN0YXRlLnRvdWNoZWRGaWVsZHMsIG5hbWUsIGlzQmx1ckV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnRvdWNoZWRGaWVsZHMgPSBfZm9ybVN0YXRlLnRvdWNoZWRGaWVsZHM7XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZpZWxkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZpZWxkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9wcm94eUZvcm1TdGF0ZS50b3VjaGVkRmllbGRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJldmlvdXNGaWVsZFRvdWNoZWQgIT09IGlzQmx1ckV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaG91bGRVcGRhdGVGaWVsZCAmJiBzaG91bGRSZW5kZXIgJiYgX3N1YmplY3RzLnN0YXRlLm5leHQob3V0cHV0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2hvdWxkVXBkYXRlRmllbGQgPyBvdXRwdXQgOiB7fTtcbiAgICB9O1xuICAgIGNvbnN0IHNob3VsZFJlbmRlckJ5RXJyb3IgPSAobmFtZSwgaXNWYWxpZCwgZXJyb3IsIGZpZWxkU3RhdGUpID0+IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNGaWVsZEVycm9yID0gZ2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBuYW1lKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkVXBkYXRlVmFsaWQgPSBfcHJveHlGb3JtU3RhdGUuaXNWYWxpZCAmJlxuICAgICAgICAgICAgaXNCb29sZWFuKGlzVmFsaWQpICYmXG4gICAgICAgICAgICBfZm9ybVN0YXRlLmlzVmFsaWQgIT09IGlzVmFsaWQ7XG4gICAgICAgIGlmIChfb3B0aW9ucy5kZWxheUVycm9yICYmIGVycm9yKSB7XG4gICAgICAgICAgICBkZWxheUVycm9yQ2FsbGJhY2sgPSBkZWJvdW5jZSgoKSA9PiB1cGRhdGVFcnJvcnMobmFtZSwgZXJyb3IpKTtcbiAgICAgICAgICAgIGRlbGF5RXJyb3JDYWxsYmFjayhfb3B0aW9ucy5kZWxheUVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICBkZWxheUVycm9yQ2FsbGJhY2sgPSBudWxsO1xuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICA/IHNldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSwgZXJyb3IpXG4gICAgICAgICAgICAgICAgOiB1bnNldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChlcnJvciA/ICFkZWVwRXF1YWwocHJldmlvdXNGaWVsZEVycm9yLCBlcnJvcikgOiBwcmV2aW91c0ZpZWxkRXJyb3IpIHx8XG4gICAgICAgICAgICAhaXNFbXB0eU9iamVjdChmaWVsZFN0YXRlKSB8fFxuICAgICAgICAgICAgc2hvdWxkVXBkYXRlVmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRGb3JtU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uZmllbGRTdGF0ZSxcbiAgICAgICAgICAgICAgICAuLi4oc2hvdWxkVXBkYXRlVmFsaWQgJiYgaXNCb29sZWFuKGlzVmFsaWQpID8geyBpc1ZhbGlkIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgZXJyb3JzOiBfZm9ybVN0YXRlLmVycm9ycyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIF9mb3JtU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uX2Zvcm1TdGF0ZSxcbiAgICAgICAgICAgICAgICAuLi51cGRhdGVkRm9ybVN0YXRlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHVwZGF0ZWRGb3JtU3RhdGUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBfZXhlY3V0ZVNjaGVtYSA9IGFzeW5jIChuYW1lKSA9PiB7XG4gICAgICAgIF91cGRhdGVJc1ZhbGlkYXRpbmcobmFtZSwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IF9vcHRpb25zLnJlc29sdmVyKF9mb3JtVmFsdWVzLCBfb3B0aW9ucy5jb250ZXh0LCBnZXRSZXNvbHZlck9wdGlvbnMobmFtZSB8fCBfbmFtZXMubW91bnQsIF9maWVsZHMsIF9vcHRpb25zLmNyaXRlcmlhTW9kZSwgX29wdGlvbnMuc2hvdWxkVXNlTmF0aXZlVmFsaWRhdGlvbikpO1xuICAgICAgICBfdXBkYXRlSXNWYWxpZGF0aW5nKG5hbWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgY29uc3QgZXhlY3V0ZVNjaGVtYUFuZFVwZGF0ZVN0YXRlID0gYXN5bmMgKG5hbWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBhd2FpdCBfZXhlY3V0ZVNjaGVtYShuYW1lcyk7XG4gICAgICAgIGlmIChuYW1lcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBnZXQoZXJyb3JzLCBuYW1lKTtcbiAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgICA/IHNldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSwgZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIDogdW5zZXQoX2Zvcm1TdGF0ZS5lcnJvcnMsIG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX2Zvcm1TdGF0ZS5lcnJvcnMgPSBlcnJvcnM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9O1xuICAgIGNvbnN0IGV4ZWN1dGVCdWlsdEluVmFsaWRhdGlvbiA9IGFzeW5jIChmaWVsZHMsIHNob3VsZE9ubHlDaGVja1ZhbGlkLCBjb250ZXh0ID0ge1xuICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICB9KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBmaWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzW25hbWVdO1xuICAgICAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBfZiwgLi4uZmllbGRWYWx1ZSB9ID0gZmllbGQ7XG4gICAgICAgICAgICAgICAgaWYgKF9mKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRmllbGRBcnJheVJvb3QgPSBfbmFtZXMuYXJyYXkuaGFzKF9mLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1Byb21pc2VGdW5jdGlvbiA9IGZpZWxkLl9mICYmIGhhc1Byb21pc2VWYWxpZGF0aW9uKGZpZWxkLl9mKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvbWlzZUZ1bmN0aW9uICYmIF9wcm94eUZvcm1TdGF0ZS52YWxpZGF0aW5nRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlSXNWYWxpZGF0aW5nKFtuYW1lXSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRFcnJvciA9IGF3YWl0IHZhbGlkYXRlRmllbGQoZmllbGQsIF9uYW1lcy5kaXNhYmxlZCwgX2Zvcm1WYWx1ZXMsIHNob3VsZERpc3BsYXlBbGxBc3NvY2lhdGVkRXJyb3JzLCBfb3B0aW9ucy5zaG91bGRVc2VOYXRpdmVWYWxpZGF0aW9uICYmICFzaG91bGRPbmx5Q2hlY2tWYWxpZCwgaXNGaWVsZEFycmF5Um9vdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb21pc2VGdW5jdGlvbiAmJiBfcHJveHlGb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZUlzVmFsaWRhdGluZyhbbmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZEVycm9yW19mLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkT25seUNoZWNrVmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAhc2hvdWxkT25seUNoZWNrVmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChnZXQoZmllbGRFcnJvciwgX2YubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzRmllbGRBcnJheVJvb3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB1cGRhdGVGaWVsZEFycmF5Um9vdEVycm9yKF9mb3JtU3RhdGUuZXJyb3JzLCBmaWVsZEVycm9yLCBfZi5uYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNldChfZm9ybVN0YXRlLmVycm9ycywgX2YubmFtZSwgZmllbGRFcnJvcltfZi5uYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuc2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBfZi5uYW1lKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICFpc0VtcHR5T2JqZWN0KGZpZWxkVmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgIChhd2FpdCBleGVjdXRlQnVpbHRJblZhbGlkYXRpb24oZmllbGRWYWx1ZSwgc2hvdWxkT25seUNoZWNrVmFsaWQsIGNvbnRleHQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGV4dC52YWxpZDtcbiAgICB9O1xuICAgIGNvbnN0IF9yZW1vdmVVbm1vdW50ZWQgPSAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBfbmFtZXMudW5Nb3VudCkge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICBmaWVsZCAmJlxuICAgICAgICAgICAgICAgIChmaWVsZC5fZi5yZWZzXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGQuX2YucmVmcy5ldmVyeSgocmVmKSA9PiAhbGl2ZShyZWYpKVxuICAgICAgICAgICAgICAgICAgICA6ICFsaXZlKGZpZWxkLl9mLnJlZikpICYmXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlcihuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBfbmFtZXMudW5Nb3VudCA9IG5ldyBTZXQoKTtcbiAgICB9O1xuICAgIGNvbnN0IF9nZXREaXJ0eSA9IChuYW1lLCBkYXRhKSA9PiAhX29wdGlvbnMuZGlzYWJsZWQgJiZcbiAgICAgICAgKG5hbWUgJiYgZGF0YSAmJiBzZXQoX2Zvcm1WYWx1ZXMsIG5hbWUsIGRhdGEpLFxuICAgICAgICAgICAgIWRlZXBFcXVhbChnZXRWYWx1ZXMoKSwgX2RlZmF1bHRWYWx1ZXMpKTtcbiAgICBjb25zdCBfZ2V0V2F0Y2ggPSAobmFtZXMsIGRlZmF1bHRWYWx1ZSwgaXNHbG9iYWwpID0+IGdlbmVyYXRlV2F0Y2hPdXRwdXQobmFtZXMsIF9uYW1lcywge1xuICAgICAgICAuLi4oX3N0YXRlLm1vdW50XG4gICAgICAgICAgICA/IF9mb3JtVmFsdWVzXG4gICAgICAgICAgICA6IGlzVW5kZWZpbmVkKGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICA/IF9kZWZhdWx0VmFsdWVzXG4gICAgICAgICAgICAgICAgOiBpc1N0cmluZyhuYW1lcylcbiAgICAgICAgICAgICAgICAgICAgPyB7IFtuYW1lc106IGRlZmF1bHRWYWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgIDogZGVmYXVsdFZhbHVlKSxcbiAgICB9LCBpc0dsb2JhbCwgZGVmYXVsdFZhbHVlKTtcbiAgICBjb25zdCBfZ2V0RmllbGRBcnJheSA9IChuYW1lKSA9PiBjb21wYWN0KGdldChfc3RhdGUubW91bnQgPyBfZm9ybVZhbHVlcyA6IF9kZWZhdWx0VmFsdWVzLCBuYW1lLCBfb3B0aW9ucy5zaG91bGRVbnJlZ2lzdGVyID8gZ2V0KF9kZWZhdWx0VmFsdWVzLCBuYW1lLCBbXSkgOiBbXSkpO1xuICAgIGNvbnN0IHNldEZpZWxkVmFsdWUgPSAobmFtZSwgdmFsdWUsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGdldChfZmllbGRzLCBuYW1lKTtcbiAgICAgICAgbGV0IGZpZWxkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFJlZmVyZW5jZSA9IGZpZWxkLl9mO1xuICAgICAgICAgICAgaWYgKGZpZWxkUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgIWZpZWxkUmVmZXJlbmNlLmRpc2FibGVkICYmXG4gICAgICAgICAgICAgICAgICAgIHNldChfZm9ybVZhbHVlcywgbmFtZSwgZ2V0RmllbGRWYWx1ZUFzKHZhbHVlLCBmaWVsZFJlZmVyZW5jZSkpO1xuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPVxuICAgICAgICAgICAgICAgICAgICBpc0hUTUxFbGVtZW50KGZpZWxkUmVmZXJlbmNlLnJlZikgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChpc011bHRpcGxlU2VsZWN0KGZpZWxkUmVmZXJlbmNlLnJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgWy4uLmZpZWxkUmVmZXJlbmNlLnJlZi5vcHRpb25zXS5mb3JFYWNoKChvcHRpb25SZWYpID0+IChvcHRpb25SZWYuc2VsZWN0ZWQgPSBmaWVsZFZhbHVlLmluY2x1ZGVzKG9wdGlvblJlZi52YWx1ZSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZmllbGRSZWZlcmVuY2UucmVmcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDaGVja0JveElucHV0KGZpZWxkUmVmZXJlbmNlLnJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUmVmZXJlbmNlLnJlZnMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmllbGRSZWZlcmVuY2UucmVmcy5mb3JFYWNoKChjaGVja2JveFJlZikgPT4gKCFjaGVja2JveFJlZi5kZWZhdWx0Q2hlY2tlZCB8fCAhY2hlY2tib3hSZWYuZGlzYWJsZWQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2JveFJlZi5jaGVja2VkID0gQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhIWZpZWxkVmFsdWUuZmluZCgoZGF0YSkgPT4gZGF0YSA9PT0gY2hlY2tib3hSZWYudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpZWxkVmFsdWUgPT09IGNoZWNrYm94UmVmLnZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpZWxkUmVmZXJlbmNlLnJlZnNbMF0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkUmVmZXJlbmNlLnJlZnNbMF0uY2hlY2tlZCA9ICEhZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFJlZmVyZW5jZS5yZWZzLmZvckVhY2goKHJhZGlvUmVmKSA9PiAocmFkaW9SZWYuY2hlY2tlZCA9IHJhZGlvUmVmLnZhbHVlID09PSBmaWVsZFZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNGaWxlSW5wdXQoZmllbGRSZWZlcmVuY2UucmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZFJlZmVyZW5jZS5yZWYudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkUmVmZXJlbmNlLnJlZi52YWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZmllbGRSZWZlcmVuY2UucmVmLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zdWJqZWN0cy52YWx1ZXMubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHsgLi4uX2Zvcm1WYWx1ZXMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIChvcHRpb25zLnNob3VsZERpcnR5IHx8IG9wdGlvbnMuc2hvdWxkVG91Y2gpICYmXG4gICAgICAgICAgICB1cGRhdGVUb3VjaEFuZERpcnR5KG5hbWUsIGZpZWxkVmFsdWUsIG9wdGlvbnMuc2hvdWxkVG91Y2gsIG9wdGlvbnMuc2hvdWxkRGlydHksIHRydWUpO1xuICAgICAgICBvcHRpb25zLnNob3VsZFZhbGlkYXRlICYmIHRyaWdnZXIobmFtZSk7XG4gICAgfTtcbiAgICBjb25zdCBzZXRWYWx1ZXMgPSAobmFtZSwgdmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZEtleSBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHZhbHVlW2ZpZWxkS2V5XTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGAke25hbWV9LiR7ZmllbGRLZXl9YDtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZ2V0KF9maWVsZHMsIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAoX25hbWVzLmFycmF5LmhhcyhuYW1lKSB8fFxuICAgICAgICAgICAgICAgIGlzT2JqZWN0KGZpZWxkVmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgKGZpZWxkICYmICFmaWVsZC5fZikpICYmXG4gICAgICAgICAgICAgICAgIWlzRGF0ZU9iamVjdChmaWVsZFZhbHVlKVxuICAgICAgICAgICAgICAgID8gc2V0VmFsdWVzKGZpZWxkTmFtZSwgZmllbGRWYWx1ZSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICA6IHNldEZpZWxkVmFsdWUoZmllbGROYW1lLCBmaWVsZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgc2V0VmFsdWUgPSAobmFtZSwgdmFsdWUsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGdldChfZmllbGRzLCBuYW1lKTtcbiAgICAgICAgY29uc3QgaXNGaWVsZEFycmF5ID0gX25hbWVzLmFycmF5LmhhcyhuYW1lKTtcbiAgICAgICAgY29uc3QgY2xvbmVWYWx1ZSA9IGNsb25lT2JqZWN0KHZhbHVlKTtcbiAgICAgICAgc2V0KF9mb3JtVmFsdWVzLCBuYW1lLCBjbG9uZVZhbHVlKTtcbiAgICAgICAgaWYgKGlzRmllbGRBcnJheSkge1xuICAgICAgICAgICAgX3N1YmplY3RzLmFycmF5Lm5leHQoe1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiB7IC4uLl9mb3JtVmFsdWVzIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICgoX3Byb3h5Rm9ybVN0YXRlLmlzRGlydHkgfHwgX3Byb3h5Rm9ybVN0YXRlLmRpcnR5RmllbGRzKSAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnMuc2hvdWxkRGlydHkpIHtcbiAgICAgICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRpcnR5RmllbGRzOiBnZXREaXJ0eUZpZWxkcyhfZGVmYXVsdFZhbHVlcywgX2Zvcm1WYWx1ZXMpLFxuICAgICAgICAgICAgICAgICAgICBpc0RpcnR5OiBfZ2V0RGlydHkobmFtZSwgY2xvbmVWYWx1ZSksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmaWVsZCAmJiAhZmllbGQuX2YgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKGNsb25lVmFsdWUpXG4gICAgICAgICAgICAgICAgPyBzZXRWYWx1ZXMobmFtZSwgY2xvbmVWYWx1ZSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICA6IHNldEZpZWxkVmFsdWUobmFtZSwgY2xvbmVWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaXNXYXRjaGVkKG5hbWUsIF9uYW1lcykgJiYgX3N1YmplY3RzLnN0YXRlLm5leHQoeyAuLi5fZm9ybVN0YXRlIH0pO1xuICAgICAgICBfc3ViamVjdHMudmFsdWVzLm5leHQoe1xuICAgICAgICAgICAgbmFtZTogX3N0YXRlLm1vdW50ID8gbmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHZhbHVlczogeyAuLi5fZm9ybVZhbHVlcyB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIF9zdGF0ZS5tb3VudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgbGV0IG5hbWUgPSB0YXJnZXQubmFtZTtcbiAgICAgICAgbGV0IGlzRmllbGRWYWx1ZVVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBmaWVsZCA9IGdldChfZmllbGRzLCBuYW1lKTtcbiAgICAgICAgY29uc3QgZ2V0Q3VycmVudEZpZWxkVmFsdWUgPSAoKSA9PiB0YXJnZXQudHlwZSA/IGdldEZpZWxkVmFsdWUoZmllbGQuX2YpIDogZ2V0RXZlbnRWYWx1ZShldmVudCk7XG4gICAgICAgIGNvbnN0IF91cGRhdGVJc0ZpZWxkVmFsdWVVcGRhdGVkID0gKGZpZWxkVmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlzRmllbGRWYWx1ZVVwZGF0ZWQgPVxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihmaWVsZFZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAoaXNEYXRlT2JqZWN0KGZpZWxkVmFsdWUpICYmIGlzTmFOKGZpZWxkVmFsdWUuZ2V0VGltZSgpKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgZGVlcEVxdWFsKGZpZWxkVmFsdWUsIGdldChfZm9ybVZhbHVlcywgbmFtZSwgZmllbGRWYWx1ZSkpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgICAgIGxldCBpc1ZhbGlkO1xuICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IGdldEN1cnJlbnRGaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBpc0JsdXJFdmVudCA9IGV2ZW50LnR5cGUgPT09IEVWRU5UUy5CTFVSIHx8IGV2ZW50LnR5cGUgPT09IEVWRU5UUy5GT0NVU19PVVQ7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTa2lwVmFsaWRhdGlvbiA9ICghaGFzVmFsaWRhdGlvbihmaWVsZC5fZikgJiZcbiAgICAgICAgICAgICAgICAhX29wdGlvbnMucmVzb2x2ZXIgJiZcbiAgICAgICAgICAgICAgICAhZ2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBuYW1lKSAmJlxuICAgICAgICAgICAgICAgICFmaWVsZC5fZi5kZXBzKSB8fFxuICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uKGlzQmx1ckV2ZW50LCBnZXQoX2Zvcm1TdGF0ZS50b3VjaGVkRmllbGRzLCBuYW1lKSwgX2Zvcm1TdGF0ZS5pc1N1Ym1pdHRlZCwgdmFsaWRhdGlvbk1vZGVBZnRlclN1Ym1pdCwgdmFsaWRhdGlvbk1vZGVCZWZvcmVTdWJtaXQpO1xuICAgICAgICAgICAgY29uc3Qgd2F0Y2hlZCA9IGlzV2F0Y2hlZChuYW1lLCBfbmFtZXMsIGlzQmx1ckV2ZW50KTtcbiAgICAgICAgICAgIHNldChfZm9ybVZhbHVlcywgbmFtZSwgZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoaXNCbHVyRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fZi5vbkJsdXIgJiYgZmllbGQuX2Yub25CbHVyKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBkZWxheUVycm9yQ2FsbGJhY2sgJiYgZGVsYXlFcnJvckNhbGxiYWNrKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZmllbGQuX2Yub25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fZi5vbkNoYW5nZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWVsZFN0YXRlID0gdXBkYXRlVG91Y2hBbmREaXJ0eShuYW1lLCBmaWVsZFZhbHVlLCBpc0JsdXJFdmVudCwgZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkUmVuZGVyID0gIWlzRW1wdHlPYmplY3QoZmllbGRTdGF0ZSkgfHwgd2F0Y2hlZDtcbiAgICAgICAgICAgICFpc0JsdXJFdmVudCAmJlxuICAgICAgICAgICAgICAgIF9zdWJqZWN0cy52YWx1ZXMubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczogeyAuLi5fZm9ybVZhbHVlcyB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHNob3VsZFNraXBWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9wcm94eUZvcm1TdGF0ZS5pc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5tb2RlID09PSAnb25CbHVyJyAmJiBpc0JsdXJFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZVZhbGlkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzQmx1ckV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdXBkYXRlVmFsaWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHNob3VsZFJlbmRlciAmJlxuICAgICAgICAgICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7IG5hbWUsIC4uLih3YXRjaGVkID8ge30gOiBmaWVsZFN0YXRlKSB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAhaXNCbHVyRXZlbnQgJiYgd2F0Y2hlZCAmJiBfc3ViamVjdHMuc3RhdGUubmV4dCh7IC4uLl9mb3JtU3RhdGUgfSk7XG4gICAgICAgICAgICBpZiAoX29wdGlvbnMucmVzb2x2ZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycyB9ID0gYXdhaXQgX2V4ZWN1dGVTY2hlbWEoW25hbWVdKTtcbiAgICAgICAgICAgICAgICBfdXBkYXRlSXNGaWVsZFZhbHVlVXBkYXRlZChmaWVsZFZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNGaWVsZFZhbHVlVXBkYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0Vycm9yTG9va3VwUmVzdWx0ID0gc2NoZW1hRXJyb3JMb29rdXAoX2Zvcm1TdGF0ZS5lcnJvcnMsIF9maWVsZHMsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckxvb2t1cFJlc3VsdCA9IHNjaGVtYUVycm9yTG9va3VwKGVycm9ycywgX2ZpZWxkcywgcHJldmlvdXNFcnJvckxvb2t1cFJlc3VsdC5uYW1lIHx8IG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGVycm9yTG9va3VwUmVzdWx0LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gZXJyb3JMb29rdXBSZXN1bHQubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IGlzRW1wdHlPYmplY3QoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfdXBkYXRlSXNWYWxpZGF0aW5nKFtuYW1lXSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgZXJyb3IgPSAoYXdhaXQgdmFsaWRhdGVGaWVsZChmaWVsZCwgX25hbWVzLmRpc2FibGVkLCBfZm9ybVZhbHVlcywgc2hvdWxkRGlzcGxheUFsbEFzc29jaWF0ZWRFcnJvcnMsIF9vcHRpb25zLnNob3VsZFVzZU5hdGl2ZVZhbGlkYXRpb24pKVtuYW1lXTtcbiAgICAgICAgICAgICAgICBfdXBkYXRlSXNWYWxpZGF0aW5nKFtuYW1lXSk7XG4gICAgICAgICAgICAgICAgX3VwZGF0ZUlzRmllbGRWYWx1ZVVwZGF0ZWQoZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRmllbGRWYWx1ZVVwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoX3Byb3h5Rm9ybVN0YXRlLmlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBhd2FpdCBleGVjdXRlQnVpbHRJblZhbGlkYXRpb24oX2ZpZWxkcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNGaWVsZFZhbHVlVXBkYXRlZCkge1xuICAgICAgICAgICAgICAgIGZpZWxkLl9mLmRlcHMgJiZcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcihmaWVsZC5fZi5kZXBzKTtcbiAgICAgICAgICAgICAgICBzaG91bGRSZW5kZXJCeUVycm9yKG5hbWUsIGlzVmFsaWQsIGVycm9yLCBmaWVsZFN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgX2ZvY3VzSW5wdXQgPSAocmVmLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGdldChfZm9ybVN0YXRlLmVycm9ycywga2V5KSAmJiByZWYuZm9jdXMpIHtcbiAgICAgICAgICAgIHJlZi5mb2N1cygpO1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG4gICAgY29uc3QgdHJpZ2dlciA9IGFzeW5jIChuYW1lLCBvcHRpb25zID0ge30pID0+IHtcbiAgICAgICAgbGV0IGlzVmFsaWQ7XG4gICAgICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgICAgICBjb25zdCBmaWVsZE5hbWVzID0gY29udmVydFRvQXJyYXlQYXlsb2FkKG5hbWUpO1xuICAgICAgICBpZiAoX29wdGlvbnMucmVzb2x2ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IGF3YWl0IGV4ZWN1dGVTY2hlbWFBbmRVcGRhdGVTdGF0ZShpc1VuZGVmaW5lZChuYW1lKSA/IG5hbWUgOiBmaWVsZE5hbWVzKTtcbiAgICAgICAgICAgIGlzVmFsaWQgPSBpc0VtcHR5T2JqZWN0KGVycm9ycyk7XG4gICAgICAgICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gbmFtZVxuICAgICAgICAgICAgICAgID8gIWZpZWxkTmFtZXMuc29tZSgobmFtZSkgPT4gZ2V0KGVycm9ycywgbmFtZSkpXG4gICAgICAgICAgICAgICAgOiBpc1ZhbGlkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSAoYXdhaXQgUHJvbWlzZS5hbGwoZmllbGROYW1lcy5tYXAoYXN5bmMgKGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZ2V0KF9maWVsZHMsIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGVCdWlsdEluVmFsaWRhdGlvbihmaWVsZCAmJiBmaWVsZC5fZiA/IHsgW2ZpZWxkTmFtZV06IGZpZWxkIH0gOiBmaWVsZCk7XG4gICAgICAgICAgICB9KSkpLmV2ZXJ5KEJvb2xlYW4pO1xuICAgICAgICAgICAgISghdmFsaWRhdGlvblJlc3VsdCAmJiAhX2Zvcm1TdGF0ZS5pc1ZhbGlkKSAmJiBfdXBkYXRlVmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBpc1ZhbGlkID0gYXdhaXQgZXhlY3V0ZUJ1aWx0SW5WYWxpZGF0aW9uKF9maWVsZHMpO1xuICAgICAgICB9XG4gICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgIC4uLighaXNTdHJpbmcobmFtZSkgfHxcbiAgICAgICAgICAgICAgICAoX3Byb3h5Rm9ybVN0YXRlLmlzVmFsaWQgJiYgaXNWYWxpZCAhPT0gX2Zvcm1TdGF0ZS5pc1ZhbGlkKVxuICAgICAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgICAgICA6IHsgbmFtZSB9KSxcbiAgICAgICAgICAgIC4uLihfb3B0aW9ucy5yZXNvbHZlciB8fCAhbmFtZSA/IHsgaXNWYWxpZCB9IDoge30pLFxuICAgICAgICAgICAgZXJyb3JzOiBfZm9ybVN0YXRlLmVycm9ycyxcbiAgICAgICAgfSk7XG4gICAgICAgIG9wdGlvbnMuc2hvdWxkRm9jdXMgJiZcbiAgICAgICAgICAgICF2YWxpZGF0aW9uUmVzdWx0ICYmXG4gICAgICAgICAgICBpdGVyYXRlRmllbGRzQnlBY3Rpb24oX2ZpZWxkcywgX2ZvY3VzSW5wdXQsIG5hbWUgPyBmaWVsZE5hbWVzIDogX25hbWVzLm1vdW50KTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XG4gICAgfTtcbiAgICBjb25zdCBnZXRWYWx1ZXMgPSAoZmllbGROYW1lcykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB7XG4gICAgICAgICAgICAuLi4oX3N0YXRlLm1vdW50ID8gX2Zvcm1WYWx1ZXMgOiBfZGVmYXVsdFZhbHVlcyksXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc1VuZGVmaW5lZChmaWVsZE5hbWVzKVxuICAgICAgICAgICAgPyB2YWx1ZXNcbiAgICAgICAgICAgIDogaXNTdHJpbmcoZmllbGROYW1lcylcbiAgICAgICAgICAgICAgICA/IGdldCh2YWx1ZXMsIGZpZWxkTmFtZXMpXG4gICAgICAgICAgICAgICAgOiBmaWVsZE5hbWVzLm1hcCgobmFtZSkgPT4gZ2V0KHZhbHVlcywgbmFtZSkpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RmllbGRTdGF0ZSA9IChuYW1lLCBmb3JtU3RhdGUpID0+ICh7XG4gICAgICAgIGludmFsaWQ6ICEhZ2V0KChmb3JtU3RhdGUgfHwgX2Zvcm1TdGF0ZSkuZXJyb3JzLCBuYW1lKSxcbiAgICAgICAgaXNEaXJ0eTogISFnZXQoKGZvcm1TdGF0ZSB8fCBfZm9ybVN0YXRlKS5kaXJ0eUZpZWxkcywgbmFtZSksXG4gICAgICAgIGVycm9yOiBnZXQoKGZvcm1TdGF0ZSB8fCBfZm9ybVN0YXRlKS5lcnJvcnMsIG5hbWUpLFxuICAgICAgICBpc1ZhbGlkYXRpbmc6ICEhZ2V0KF9mb3JtU3RhdGUudmFsaWRhdGluZ0ZpZWxkcywgbmFtZSksXG4gICAgICAgIGlzVG91Y2hlZDogISFnZXQoKGZvcm1TdGF0ZSB8fCBfZm9ybVN0YXRlKS50b3VjaGVkRmllbGRzLCBuYW1lKSxcbiAgICB9KTtcbiAgICBjb25zdCBjbGVhckVycm9ycyA9IChuYW1lKSA9PiB7XG4gICAgICAgIG5hbWUgJiZcbiAgICAgICAgICAgIGNvbnZlcnRUb0FycmF5UGF5bG9hZChuYW1lKS5mb3JFYWNoKChpbnB1dE5hbWUpID0+IHVuc2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBpbnB1dE5hbWUpKTtcbiAgICAgICAgX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgZXJyb3JzOiBuYW1lID8gX2Zvcm1TdGF0ZS5lcnJvcnMgOiB7fSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBzZXRFcnJvciA9IChuYW1lLCBlcnJvciwgb3B0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCByZWYgPSAoZ2V0KF9maWVsZHMsIG5hbWUsIHsgX2Y6IHt9IH0pLl9mIHx8IHt9KS5yZWY7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFcnJvciA9IGdldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSkgfHwge307XG4gICAgICAgIC8vIERvbid0IG92ZXJyaWRlIGV4aXN0aW5nIGVycm9yIG1lc3NhZ2VzIGVsc2V3aGVyZSBpbiB0aGUgb2JqZWN0IHRyZWUuXG4gICAgICAgIGNvbnN0IHsgcmVmOiBjdXJyZW50UmVmLCBtZXNzYWdlLCB0eXBlLCAuLi5yZXN0T2ZFcnJvclRyZWUgfSA9IGN1cnJlbnRFcnJvcjtcbiAgICAgICAgc2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBuYW1lLCB7XG4gICAgICAgICAgICAuLi5yZXN0T2ZFcnJvclRyZWUsXG4gICAgICAgICAgICAuLi5lcnJvcixcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgfSk7XG4gICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlcnJvcnM6IF9mb3JtU3RhdGUuZXJyb3JzLFxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuc2hvdWxkRm9jdXMgJiYgcmVmICYmIHJlZi5mb2N1cyAmJiByZWYuZm9jdXMoKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhdGNoID0gKG5hbWUsIGRlZmF1bHRWYWx1ZSkgPT4gaXNGdW5jdGlvbihuYW1lKVxuICAgICAgICA/IF9zdWJqZWN0cy52YWx1ZXMuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChwYXlsb2FkKSA9PiBuYW1lKF9nZXRXYXRjaCh1bmRlZmluZWQsIGRlZmF1bHRWYWx1ZSksIHBheWxvYWQpLFxuICAgICAgICB9KVxuICAgICAgICA6IF9nZXRXYXRjaChuYW1lLCBkZWZhdWx0VmFsdWUsIHRydWUpO1xuICAgIGNvbnN0IHVucmVnaXN0ZXIgPSAobmFtZSwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGROYW1lIG9mIG5hbWUgPyBjb252ZXJ0VG9BcnJheVBheWxvYWQobmFtZSkgOiBfbmFtZXMubW91bnQpIHtcbiAgICAgICAgICAgIF9uYW1lcy5tb3VudC5kZWxldGUoZmllbGROYW1lKTtcbiAgICAgICAgICAgIF9uYW1lcy5hcnJheS5kZWxldGUoZmllbGROYW1lKTtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5rZWVwVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB1bnNldChfZmllbGRzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgICAgIHVuc2V0KF9mb3JtVmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgIW9wdGlvbnMua2VlcEVycm9yICYmIHVuc2V0KF9mb3JtU3RhdGUuZXJyb3JzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgIW9wdGlvbnMua2VlcERpcnR5ICYmIHVuc2V0KF9mb3JtU3RhdGUuZGlydHlGaWVsZHMsIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAhb3B0aW9ucy5rZWVwVG91Y2hlZCAmJiB1bnNldChfZm9ybVN0YXRlLnRvdWNoZWRGaWVsZHMsIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAhb3B0aW9ucy5rZWVwSXNWYWxpZGF0aW5nICYmXG4gICAgICAgICAgICAgICAgdW5zZXQoX2Zvcm1TdGF0ZS52YWxpZGF0aW5nRmllbGRzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgIV9vcHRpb25zLnNob3VsZFVucmVnaXN0ZXIgJiZcbiAgICAgICAgICAgICAgICAhb3B0aW9ucy5rZWVwRGVmYXVsdFZhbHVlICYmXG4gICAgICAgICAgICAgICAgdW5zZXQoX2RlZmF1bHRWYWx1ZXMsIGZpZWxkTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgX3N1YmplY3RzLnZhbHVlcy5uZXh0KHtcbiAgICAgICAgICAgIHZhbHVlczogeyAuLi5fZm9ybVZhbHVlcyB9LFxuICAgICAgICB9KTtcbiAgICAgICAgX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgLi4uX2Zvcm1TdGF0ZSxcbiAgICAgICAgICAgIC4uLighb3B0aW9ucy5rZWVwRGlydHkgPyB7fSA6IHsgaXNEaXJ0eTogX2dldERpcnR5KCkgfSksXG4gICAgICAgIH0pO1xuICAgICAgICAhb3B0aW9ucy5rZWVwSXNWYWxpZCAmJiBfdXBkYXRlVmFsaWQoKTtcbiAgICB9O1xuICAgIGNvbnN0IF91cGRhdGVEaXNhYmxlZEZpZWxkID0gKHsgZGlzYWJsZWQsIG5hbWUsIGZpZWxkLCBmaWVsZHMsIH0pID0+IHtcbiAgICAgICAgaWYgKChpc0Jvb2xlYW4oZGlzYWJsZWQpICYmIF9zdGF0ZS5tb3VudCkgfHxcbiAgICAgICAgICAgICEhZGlzYWJsZWQgfHxcbiAgICAgICAgICAgIF9uYW1lcy5kaXNhYmxlZC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGRpc2FibGVkID8gX25hbWVzLmRpc2FibGVkLmFkZChuYW1lKSA6IF9uYW1lcy5kaXNhYmxlZC5kZWxldGUobmFtZSk7XG4gICAgICAgICAgICB1cGRhdGVUb3VjaEFuZERpcnR5KG5hbWUsIGdldEZpZWxkVmFsdWUoZmllbGQgPyBmaWVsZC5fZiA6IGdldChmaWVsZHMsIG5hbWUpLl9mKSwgZmFsc2UsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVnaXN0ZXIgPSAobmFtZSwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGxldCBmaWVsZCA9IGdldChfZmllbGRzLCBuYW1lKTtcbiAgICAgICAgY29uc3QgZGlzYWJsZWRJc0RlZmluZWQgPSBpc0Jvb2xlYW4ob3B0aW9ucy5kaXNhYmxlZCkgfHwgaXNCb29sZWFuKF9vcHRpb25zLmRpc2FibGVkKTtcbiAgICAgICAgc2V0KF9maWVsZHMsIG5hbWUsIHtcbiAgICAgICAgICAgIC4uLihmaWVsZCB8fCB7fSksXG4gICAgICAgICAgICBfZjoge1xuICAgICAgICAgICAgICAgIC4uLihmaWVsZCAmJiBmaWVsZC5fZiA/IGZpZWxkLl9mIDogeyByZWY6IHsgbmFtZSB9IH0pLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgbW91bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBfbmFtZXMubW91bnQuYWRkKG5hbWUpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIF91cGRhdGVEaXNhYmxlZEZpZWxkKHtcbiAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogaXNCb29sZWFuKG9wdGlvbnMuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgID8gb3B0aW9ucy5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICA6IF9vcHRpb25zLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHVwZGF0ZVZhbGlkQW5kVmFsdWUobmFtZSwgdHJ1ZSwgb3B0aW9ucy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLihkaXNhYmxlZElzRGVmaW5lZFxuICAgICAgICAgICAgICAgID8geyBkaXNhYmxlZDogb3B0aW9ucy5kaXNhYmxlZCB8fCBfb3B0aW9ucy5kaXNhYmxlZCB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAuLi4oX29wdGlvbnMucHJvZ3Jlc3NpdmVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICEhb3B0aW9ucy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgbWluOiBnZXRSdWxlVmFsdWUob3B0aW9ucy5taW4pLFxuICAgICAgICAgICAgICAgICAgICBtYXg6IGdldFJ1bGVWYWx1ZShvcHRpb25zLm1heCksXG4gICAgICAgICAgICAgICAgICAgIG1pbkxlbmd0aDogZ2V0UnVsZVZhbHVlKG9wdGlvbnMubWluTGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiBnZXRSdWxlVmFsdWUob3B0aW9ucy5tYXhMZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBnZXRSdWxlVmFsdWUob3B0aW9ucy5wYXR0ZXJuKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICBvbkJsdXI6IG9uQ2hhbmdlLFxuICAgICAgICAgICAgcmVmOiAocmVmKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlcihuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQgPSBnZXQoX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkUmVmID0gaXNVbmRlZmluZWQocmVmLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZWYucXVlcnlTZWxlY3RvckFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcmVmLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LHNlbGVjdCx0ZXh0YXJlYScpWzBdIHx8IHJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVmXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHJlZjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFkaW9PckNoZWNrYm94ID0gaXNSYWRpb09yQ2hlY2tib3goZmllbGRSZWYpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZzID0gZmllbGQuX2YucmVmcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhZGlvT3JDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZWZzLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uID09PSBmaWVsZFJlZilcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZmllbGRSZWYgPT09IGZpZWxkLl9mLnJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNldChfZmllbGRzLCBuYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpZWxkLl9mLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihyYWRpb09yQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVmcy5maWx0ZXIobGl2ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZ2V0KF9kZWZhdWx0VmFsdWVzLCBuYW1lKSkgPyBbe31dIDogW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogeyB0eXBlOiBmaWVsZFJlZi50eXBlLCBuYW1lIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IHJlZjogZmllbGRSZWYgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsaWRBbmRWYWx1ZShuYW1lLCBmYWxzZSwgdW5kZWZpbmVkLCBmaWVsZFJlZik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZCA9IGdldChfZmllbGRzLCBuYW1lLCB7fSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5fZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuX2YubW91bnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoX29wdGlvbnMuc2hvdWxkVW5yZWdpc3RlciB8fCBvcHRpb25zLnNob3VsZFVucmVnaXN0ZXIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhKGlzTmFtZUluRmllbGRBcnJheShfbmFtZXMuYXJyYXksIG5hbWUpICYmIF9zdGF0ZS5hY3Rpb24pICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBfbmFtZXMudW5Nb3VudC5hZGQobmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IF9mb2N1c0Vycm9yID0gKCkgPT4gX29wdGlvbnMuc2hvdWxkRm9jdXNFcnJvciAmJlxuICAgICAgICBpdGVyYXRlRmllbGRzQnlBY3Rpb24oX2ZpZWxkcywgX2ZvY3VzSW5wdXQsIF9uYW1lcy5tb3VudCk7XG4gICAgY29uc3QgX2Rpc2FibGVGb3JtID0gKGRpc2FibGVkKSA9PiB7XG4gICAgICAgIGlmIChpc0Jvb2xlYW4oZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7IGRpc2FibGVkIH0pO1xuICAgICAgICAgICAgaXRlcmF0ZUZpZWxkc0J5QWN0aW9uKF9maWVsZHMsIChyZWYsIG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RmllbGQgPSBnZXQoX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICByZWYuZGlzYWJsZWQgPSBjdXJyZW50RmllbGQuX2YuZGlzYWJsZWQgfHwgZGlzYWJsZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRGaWVsZC5fZi5yZWZzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpZWxkLl9mLnJlZnMuZm9yRWFjaCgoaW5wdXRSZWYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5kaXNhYmxlZCA9IGN1cnJlbnRGaWVsZC5fZi5kaXNhYmxlZCB8fCBkaXNhYmxlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSAob25WYWxpZCwgb25JbnZhbGlkKSA9PiBhc3luYyAoZSkgPT4ge1xuICAgICAgICBsZXQgb25WYWxpZEVycm9yID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCAmJiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnBlcnNpc3QgJiYgZS5wZXJzaXN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGZpZWxkVmFsdWVzID0gY2xvbmVPYmplY3QoX2Zvcm1WYWx1ZXMpO1xuICAgICAgICBpZiAoX25hbWVzLmRpc2FibGVkLnNpemUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBfbmFtZXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBzZXQoZmllbGRWYWx1ZXMsIG5hbWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKF9vcHRpb25zLnJlc29sdmVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVycm9ycywgdmFsdWVzIH0gPSBhd2FpdCBfZXhlY3V0ZVNjaGVtYSgpO1xuICAgICAgICAgICAgX2Zvcm1TdGF0ZS5lcnJvcnMgPSBlcnJvcnM7XG4gICAgICAgICAgICBmaWVsZFZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWN1dGVCdWlsdEluVmFsaWRhdGlvbihfZmllbGRzKTtcbiAgICAgICAgfVxuICAgICAgICB1bnNldChfZm9ybVN0YXRlLmVycm9ycywgJ3Jvb3QnKTtcbiAgICAgICAgaWYgKGlzRW1wdHlPYmplY3QoX2Zvcm1TdGF0ZS5lcnJvcnMpKSB7XG4gICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBvblZhbGlkKGZpZWxkVmFsdWVzLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIG9uVmFsaWRFcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9uSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG9uSW52YWxpZCh7IC4uLl9mb3JtU3RhdGUuZXJyb3JzIH0sIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2ZvY3VzRXJyb3IoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoX2ZvY3VzRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIF9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtcbiAgICAgICAgICAgIGlzU3VibWl0dGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGlzU3VibWl0U3VjY2Vzc2Z1bDogaXNFbXB0eU9iamVjdChfZm9ybVN0YXRlLmVycm9ycykgJiYgIW9uVmFsaWRFcnJvcixcbiAgICAgICAgICAgIHN1Ym1pdENvdW50OiBfZm9ybVN0YXRlLnN1Ym1pdENvdW50ICsgMSxcbiAgICAgICAgICAgIGVycm9yczogX2Zvcm1TdGF0ZS5lcnJvcnMsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob25WYWxpZEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBvblZhbGlkRXJyb3I7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc2V0RmllbGQgPSAobmFtZSwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGlmIChnZXQoX2ZpZWxkcywgbmFtZSkpIHtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZChvcHRpb25zLmRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShuYW1lLCBjbG9uZU9iamVjdChnZXQoX2RlZmF1bHRWYWx1ZXMsIG5hbWUpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShuYW1lLCBvcHRpb25zLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgc2V0KF9kZWZhdWx0VmFsdWVzLCBuYW1lLCBjbG9uZU9iamVjdChvcHRpb25zLmRlZmF1bHRWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmtlZXBUb3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgdW5zZXQoX2Zvcm1TdGF0ZS50b3VjaGVkRmllbGRzLCBuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5rZWVwRGlydHkpIHtcbiAgICAgICAgICAgICAgICB1bnNldChfZm9ybVN0YXRlLmRpcnR5RmllbGRzLCBuYW1lKTtcbiAgICAgICAgICAgICAgICBfZm9ybVN0YXRlLmlzRGlydHkgPSBvcHRpb25zLmRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IF9nZXREaXJ0eShuYW1lLCBjbG9uZU9iamVjdChnZXQoX2RlZmF1bHRWYWx1ZXMsIG5hbWUpKSlcbiAgICAgICAgICAgICAgICAgICAgOiBfZ2V0RGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5rZWVwRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB1bnNldChfZm9ybVN0YXRlLmVycm9ycywgbmFtZSk7XG4gICAgICAgICAgICAgICAgX3Byb3h5Rm9ybVN0YXRlLmlzVmFsaWQgJiYgX3VwZGF0ZVZhbGlkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7IC4uLl9mb3JtU3RhdGUgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IF9yZXNldCA9IChmb3JtVmFsdWVzLCBrZWVwU3RhdGVPcHRpb25zID0ge30pID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlcyA9IGZvcm1WYWx1ZXMgPyBjbG9uZU9iamVjdChmb3JtVmFsdWVzKSA6IF9kZWZhdWx0VmFsdWVzO1xuICAgICAgICBjb25zdCBjbG9uZVVwZGF0ZWRWYWx1ZXMgPSBjbG9uZU9iamVjdCh1cGRhdGVkVmFsdWVzKTtcbiAgICAgICAgY29uc3QgaXNFbXB0eVJlc2V0VmFsdWVzID0gaXNFbXB0eU9iamVjdChmb3JtVmFsdWVzKTtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gaXNFbXB0eVJlc2V0VmFsdWVzID8gX2RlZmF1bHRWYWx1ZXMgOiBjbG9uZVVwZGF0ZWRWYWx1ZXM7XG4gICAgICAgIGlmICgha2VlcFN0YXRlT3B0aW9ucy5rZWVwRGVmYXVsdFZhbHVlcykge1xuICAgICAgICAgICAgX2RlZmF1bHRWYWx1ZXMgPSB1cGRhdGVkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmICgha2VlcFN0YXRlT3B0aW9ucy5rZWVwVmFsdWVzKSB7XG4gICAgICAgICAgICBpZiAoa2VlcFN0YXRlT3B0aW9ucy5rZWVwRGlydHlWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHNUb0NoZWNrID0gbmV3IFNldChbXG4gICAgICAgICAgICAgICAgICAgIC4uLl9uYW1lcy5tb3VudCxcbiAgICAgICAgICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ2V0RGlydHlGaWVsZHMoX2RlZmF1bHRWYWx1ZXMsIF9mb3JtVmFsdWVzKSksXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZE5hbWUgb2YgQXJyYXkuZnJvbShmaWVsZHNUb0NoZWNrKSkge1xuICAgICAgICAgICAgICAgICAgICBnZXQoX2Zvcm1TdGF0ZS5kaXJ0eUZpZWxkcywgZmllbGROYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXQodmFsdWVzLCBmaWVsZE5hbWUsIGdldChfZm9ybVZhbHVlcywgZmllbGROYW1lKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2V0VmFsdWUoZmllbGROYW1lLCBnZXQodmFsdWVzLCBmaWVsZE5hbWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXZWIgJiYgaXNVbmRlZmluZWQoZm9ybVZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIF9uYW1lcy5tb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBnZXQoX2ZpZWxkcywgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuX2YpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFJlZmVyZW5jZSA9IEFycmF5LmlzQXJyYXkoZmllbGQuX2YucmVmcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmaWVsZC5fZi5yZWZzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmllbGQuX2YucmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0hUTUxFbGVtZW50KGZpZWxkUmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gZmllbGRSZWZlcmVuY2UuY2xvc2VzdCgnZm9ybScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX2ZpZWxkcyA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2Zvcm1WYWx1ZXMgPSBfb3B0aW9ucy5zaG91bGRVbnJlZ2lzdGVyXG4gICAgICAgICAgICAgICAgPyBrZWVwU3RhdGVPcHRpb25zLmtlZXBEZWZhdWx0VmFsdWVzXG4gICAgICAgICAgICAgICAgICAgID8gY2xvbmVPYmplY3QoX2RlZmF1bHRWYWx1ZXMpXG4gICAgICAgICAgICAgICAgICAgIDoge31cbiAgICAgICAgICAgICAgICA6IGNsb25lT2JqZWN0KHZhbHVlcyk7XG4gICAgICAgICAgICBfc3ViamVjdHMuYXJyYXkubmV4dCh7XG4gICAgICAgICAgICAgICAgdmFsdWVzOiB7IC4uLnZhbHVlcyB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfc3ViamVjdHMudmFsdWVzLm5leHQoe1xuICAgICAgICAgICAgICAgIHZhbHVlczogeyAuLi52YWx1ZXMgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIF9uYW1lcyA9IHtcbiAgICAgICAgICAgIG1vdW50OiBrZWVwU3RhdGVPcHRpb25zLmtlZXBEaXJ0eVZhbHVlcyA/IF9uYW1lcy5tb3VudCA6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHVuTW91bnQ6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIGFycmF5OiBuZXcgU2V0KCksXG4gICAgICAgICAgICBkaXNhYmxlZDogbmV3IFNldCgpLFxuICAgICAgICAgICAgd2F0Y2g6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHdhdGNoQWxsOiBmYWxzZSxcbiAgICAgICAgICAgIGZvY3VzOiAnJyxcbiAgICAgICAgfTtcbiAgICAgICAgX3N0YXRlLm1vdW50ID1cbiAgICAgICAgICAgICFfcHJveHlGb3JtU3RhdGUuaXNWYWxpZCB8fFxuICAgICAgICAgICAgICAgICEha2VlcFN0YXRlT3B0aW9ucy5rZWVwSXNWYWxpZCB8fFxuICAgICAgICAgICAgICAgICEha2VlcFN0YXRlT3B0aW9ucy5rZWVwRGlydHlWYWx1ZXM7XG4gICAgICAgIF9zdGF0ZS53YXRjaCA9ICEhX29wdGlvbnMuc2hvdWxkVW5yZWdpc3RlcjtcbiAgICAgICAgX3N1YmplY3RzLnN0YXRlLm5leHQoe1xuICAgICAgICAgICAgc3VibWl0Q291bnQ6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcFN1Ym1pdENvdW50XG4gICAgICAgICAgICAgICAgPyBfZm9ybVN0YXRlLnN1Ym1pdENvdW50XG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgaXNEaXJ0eTogaXNFbXB0eVJlc2V0VmFsdWVzXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDoga2VlcFN0YXRlT3B0aW9ucy5rZWVwRGlydHlcbiAgICAgICAgICAgICAgICAgICAgPyBfZm9ybVN0YXRlLmlzRGlydHlcbiAgICAgICAgICAgICAgICAgICAgOiAhIShrZWVwU3RhdGVPcHRpb25zLmtlZXBEZWZhdWx0VmFsdWVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGVlcEVxdWFsKGZvcm1WYWx1ZXMsIF9kZWZhdWx0VmFsdWVzKSksXG4gICAgICAgICAgICBpc1N1Ym1pdHRlZDoga2VlcFN0YXRlT3B0aW9ucy5rZWVwSXNTdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICA/IF9mb3JtU3RhdGUuaXNTdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgZGlydHlGaWVsZHM6IGlzRW1wdHlSZXNldFZhbHVlc1xuICAgICAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgICAgICA6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcERpcnR5VmFsdWVzXG4gICAgICAgICAgICAgICAgICAgID8ga2VlcFN0YXRlT3B0aW9ucy5rZWVwRGVmYXVsdFZhbHVlcyAmJiBfZm9ybVZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBnZXREaXJ0eUZpZWxkcyhfZGVmYXVsdFZhbHVlcywgX2Zvcm1WYWx1ZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9mb3JtU3RhdGUuZGlydHlGaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgOiBrZWVwU3RhdGVPcHRpb25zLmtlZXBEZWZhdWx0VmFsdWVzICYmIGZvcm1WYWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0RGlydHlGaWVsZHMoX2RlZmF1bHRWYWx1ZXMsIGZvcm1WYWx1ZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcERpcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfZm9ybVN0YXRlLmRpcnR5RmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgIHRvdWNoZWRGaWVsZHM6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcFRvdWNoZWRcbiAgICAgICAgICAgICAgICA/IF9mb3JtU3RhdGUudG91Y2hlZEZpZWxkc1xuICAgICAgICAgICAgICAgIDoge30sXG4gICAgICAgICAgICBlcnJvcnM6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcEVycm9ycyA/IF9mb3JtU3RhdGUuZXJyb3JzIDoge30sXG4gICAgICAgICAgICBpc1N1Ym1pdFN1Y2Nlc3NmdWw6IGtlZXBTdGF0ZU9wdGlvbnMua2VlcElzU3VibWl0U3VjY2Vzc2Z1bFxuICAgICAgICAgICAgICAgID8gX2Zvcm1TdGF0ZS5pc1N1Ym1pdFN1Y2Nlc3NmdWxcbiAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCByZXNldCA9IChmb3JtVmFsdWVzLCBrZWVwU3RhdGVPcHRpb25zKSA9PiBfcmVzZXQoaXNGdW5jdGlvbihmb3JtVmFsdWVzKVxuICAgICAgICA/IGZvcm1WYWx1ZXMoX2Zvcm1WYWx1ZXMpXG4gICAgICAgIDogZm9ybVZhbHVlcywga2VlcFN0YXRlT3B0aW9ucyk7XG4gICAgY29uc3Qgc2V0Rm9jdXMgPSAobmFtZSwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZ2V0KF9maWVsZHMsIG5hbWUpO1xuICAgICAgICBjb25zdCBmaWVsZFJlZmVyZW5jZSA9IGZpZWxkICYmIGZpZWxkLl9mO1xuICAgICAgICBpZiAoZmllbGRSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUmVmID0gZmllbGRSZWZlcmVuY2UucmVmc1xuICAgICAgICAgICAgICAgID8gZmllbGRSZWZlcmVuY2UucmVmc1swXVxuICAgICAgICAgICAgICAgIDogZmllbGRSZWZlcmVuY2UucmVmO1xuICAgICAgICAgICAgaWYgKGZpZWxkUmVmLmZvY3VzKSB7XG4gICAgICAgICAgICAgICAgZmllbGRSZWYuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnNob3VsZFNlbGVjdCAmJlxuICAgICAgICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGZpZWxkUmVmLnNlbGVjdCkgJiZcbiAgICAgICAgICAgICAgICAgICAgZmllbGRSZWYuc2VsZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IF91cGRhdGVGb3JtU3RhdGUgPSAodXBkYXRlZEZvcm1TdGF0ZSkgPT4ge1xuICAgICAgICBfZm9ybVN0YXRlID0ge1xuICAgICAgICAgICAgLi4uX2Zvcm1TdGF0ZSxcbiAgICAgICAgICAgIC4uLnVwZGF0ZWRGb3JtU3RhdGUsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBfcmVzZXREZWZhdWx0VmFsdWVzID0gKCkgPT4gaXNGdW5jdGlvbihfb3B0aW9ucy5kZWZhdWx0VmFsdWVzKSAmJlxuICAgICAgICBfb3B0aW9ucy5kZWZhdWx0VmFsdWVzKCkudGhlbigodmFsdWVzKSA9PiB7XG4gICAgICAgICAgICByZXNldCh2YWx1ZXMsIF9vcHRpb25zLnJlc2V0T3B0aW9ucyk7XG4gICAgICAgICAgICBfc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb250cm9sOiB7XG4gICAgICAgICAgICByZWdpc3RlcixcbiAgICAgICAgICAgIHVucmVnaXN0ZXIsXG4gICAgICAgICAgICBnZXRGaWVsZFN0YXRlLFxuICAgICAgICAgICAgaGFuZGxlU3VibWl0LFxuICAgICAgICAgICAgc2V0RXJyb3IsXG4gICAgICAgICAgICBfZXhlY3V0ZVNjaGVtYSxcbiAgICAgICAgICAgIF9nZXRXYXRjaCxcbiAgICAgICAgICAgIF9nZXREaXJ0eSxcbiAgICAgICAgICAgIF91cGRhdGVWYWxpZCxcbiAgICAgICAgICAgIF9yZW1vdmVVbm1vdW50ZWQsXG4gICAgICAgICAgICBfdXBkYXRlRmllbGRBcnJheSxcbiAgICAgICAgICAgIF91cGRhdGVEaXNhYmxlZEZpZWxkLFxuICAgICAgICAgICAgX2dldEZpZWxkQXJyYXksXG4gICAgICAgICAgICBfcmVzZXQsXG4gICAgICAgICAgICBfcmVzZXREZWZhdWx0VmFsdWVzLFxuICAgICAgICAgICAgX3VwZGF0ZUZvcm1TdGF0ZSxcbiAgICAgICAgICAgIF9kaXNhYmxlRm9ybSxcbiAgICAgICAgICAgIF9zdWJqZWN0cyxcbiAgICAgICAgICAgIF9wcm94eUZvcm1TdGF0ZSxcbiAgICAgICAgICAgIF9zZXRFcnJvcnMsXG4gICAgICAgICAgICBnZXQgX2ZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2ZpZWxkcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgX2Zvcm1WYWx1ZXMoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mb3JtVmFsdWVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBfc3RhdGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9zdGF0ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgX3N0YXRlKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgX3N0YXRlID0gdmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IF9kZWZhdWx0VmFsdWVzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfZGVmYXVsdFZhbHVlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgX25hbWVzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfbmFtZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IF9uYW1lcyh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIF9uYW1lcyA9IHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBfZm9ybVN0YXRlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfZm9ybVN0YXRlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBfZm9ybVN0YXRlKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgX2Zvcm1TdGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBfb3B0aW9ucygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX29wdGlvbnM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IF9vcHRpb25zKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgX29wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLl9vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdHJpZ2dlcixcbiAgICAgICAgcmVnaXN0ZXIsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgd2F0Y2gsXG4gICAgICAgIHNldFZhbHVlLFxuICAgICAgICBnZXRWYWx1ZXMsXG4gICAgICAgIHJlc2V0LFxuICAgICAgICByZXNldEZpZWxkLFxuICAgICAgICBjbGVhckVycm9ycyxcbiAgICAgICAgdW5yZWdpc3RlcixcbiAgICAgICAgc2V0RXJyb3IsXG4gICAgICAgIHNldEZvY3VzLFxuICAgICAgICBnZXRGaWVsZFN0YXRlLFxuICAgIH07XG59XG5cbi8qKlxuICogQ3VzdG9tIGhvb2sgdG8gbWFuYWdlIHRoZSBlbnRpcmUgZm9ybS5cbiAqXG4gKiBAcmVtYXJrc1xuICogW0FQSV0oaHR0cHM6Ly9yZWFjdC1ob29rLWZvcm0uY29tL2RvY3MvdXNlZm9ybSkg4oCiIFtEZW1vXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVhY3QtaG9vay1mb3JtLWdldC1zdGFydGVkLXRzLTVrc21tKSDigKIgW1ZpZGVvXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVJrWHY0QVhYQ180KVxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIGZvcm0gY29uZmlndXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBwYXJhbWV0ZXJzLlxuICpcbiAqIEByZXR1cm5zIG1ldGhvZHMgLSBpbmRpdmlkdWFsIGZ1bmN0aW9ucyB0byBtYW5hZ2UgdGhlIGZvcm0gc3RhdGUuIHtAbGluayBVc2VGb3JtUmV0dXJufVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIEFwcCgpIHtcbiAqICAgY29uc3QgeyByZWdpc3RlciwgaGFuZGxlU3VibWl0LCB3YXRjaCwgZm9ybVN0YXRlOiB7IGVycm9ycyB9IH0gPSB1c2VGb3JtKCk7XG4gKiAgIGNvbnN0IG9uU3VibWl0ID0gZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKTtcbiAqXG4gKiAgIGNvbnNvbGUubG9nKHdhdGNoKFwiZXhhbXBsZVwiKSk7XG4gKlxuICogICByZXR1cm4gKFxuICogICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXQob25TdWJtaXQpfT5cbiAqICAgICAgIDxpbnB1dCBkZWZhdWx0VmFsdWU9XCJ0ZXN0XCIgey4uLnJlZ2lzdGVyKFwiZXhhbXBsZVwiKX0gLz5cbiAqICAgICAgIDxpbnB1dCB7Li4ucmVnaXN0ZXIoXCJleGFtcGxlUmVxdWlyZWRcIiwgeyByZXF1aXJlZDogdHJ1ZSB9KX0gLz5cbiAqICAgICAgIHtlcnJvcnMuZXhhbXBsZVJlcXVpcmVkICYmIDxzcGFuPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQ8L3NwYW4+fVxuICogICAgICAgPGJ1dHRvbj5TdWJtaXQ8L2J1dHRvbj5cbiAqICAgICA8L2Zvcm0+XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdXNlRm9ybShwcm9wcyA9IHt9KSB7XG4gICAgY29uc3QgX2Zvcm1Db250cm9sID0gUmVhY3QudXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgY29uc3QgX3ZhbHVlcyA9IFJlYWN0LnVzZVJlZih1bmRlZmluZWQpO1xuICAgIGNvbnN0IFtmb3JtU3RhdGUsIHVwZGF0ZUZvcm1TdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgICAgIGlzRGlydHk6IGZhbHNlLFxuICAgICAgICBpc1ZhbGlkYXRpbmc6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGlzRnVuY3Rpb24ocHJvcHMuZGVmYXVsdFZhbHVlcyksXG4gICAgICAgIGlzU3VibWl0dGVkOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXRTdWNjZXNzZnVsOiBmYWxzZSxcbiAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIHN1Ym1pdENvdW50OiAwLFxuICAgICAgICBkaXJ0eUZpZWxkczoge30sXG4gICAgICAgIHRvdWNoZWRGaWVsZHM6IHt9LFxuICAgICAgICB2YWxpZGF0aW5nRmllbGRzOiB7fSxcbiAgICAgICAgZXJyb3JzOiBwcm9wcy5lcnJvcnMgfHwge30sXG4gICAgICAgIGRpc2FibGVkOiBwcm9wcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlczogaXNGdW5jdGlvbihwcm9wcy5kZWZhdWx0VmFsdWVzKVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogcHJvcHMuZGVmYXVsdFZhbHVlcyxcbiAgICB9KTtcbiAgICBpZiAoIV9mb3JtQ29udHJvbC5jdXJyZW50KSB7XG4gICAgICAgIF9mb3JtQ29udHJvbC5jdXJyZW50ID0ge1xuICAgICAgICAgICAgLi4uY3JlYXRlRm9ybUNvbnRyb2wocHJvcHMpLFxuICAgICAgICAgICAgZm9ybVN0YXRlLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sID0gX2Zvcm1Db250cm9sLmN1cnJlbnQuY29udHJvbDtcbiAgICBjb250cm9sLl9vcHRpb25zID0gcHJvcHM7XG4gICAgdXNlU3Vic2NyaWJlKHtcbiAgICAgICAgc3ViamVjdDogY29udHJvbC5fc3ViamVjdHMuc3RhdGUsXG4gICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNob3VsZFJlbmRlckZvcm1TdGF0ZSh2YWx1ZSwgY29udHJvbC5fcHJveHlGb3JtU3RhdGUsIGNvbnRyb2wuX3VwZGF0ZUZvcm1TdGF0ZSwgdHJ1ZSkpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVGb3JtU3RhdGUoeyAuLi5jb250cm9sLl9mb3JtU3RhdGUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IGNvbnRyb2wuX2Rpc2FibGVGb3JtKHByb3BzLmRpc2FibGVkKSwgW2NvbnRyb2wsIHByb3BzLmRpc2FibGVkXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wuX3Byb3h5Rm9ybVN0YXRlLmlzRGlydHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzRGlydHkgPSBjb250cm9sLl9nZXREaXJ0eSgpO1xuICAgICAgICAgICAgaWYgKGlzRGlydHkgIT09IGZvcm1TdGF0ZS5pc0RpcnR5KSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5fc3ViamVjdHMuc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIGlzRGlydHksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbY29udHJvbCwgZm9ybVN0YXRlLmlzRGlydHldKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMudmFsdWVzICYmICFkZWVwRXF1YWwocHJvcHMudmFsdWVzLCBfdmFsdWVzLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICBjb250cm9sLl9yZXNldChwcm9wcy52YWx1ZXMsIGNvbnRyb2wuX29wdGlvbnMucmVzZXRPcHRpb25zKTtcbiAgICAgICAgICAgIF92YWx1ZXMuY3VycmVudCA9IHByb3BzLnZhbHVlcztcbiAgICAgICAgICAgIHVwZGF0ZUZvcm1TdGF0ZSgoc3RhdGUpID0+ICh7IC4uLnN0YXRlIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuX3Jlc2V0RGVmYXVsdFZhbHVlcygpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnZhbHVlcywgY29udHJvbF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5lcnJvcnMpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuX3NldEVycm9ycyhwcm9wcy5lcnJvcnMpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmVycm9ycywgY29udHJvbF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghY29udHJvbC5fc3RhdGUubW91bnQpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuX3VwZGF0ZVZhbGlkKCk7XG4gICAgICAgICAgICBjb250cm9sLl9zdGF0ZS5tb3VudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRyb2wuX3N0YXRlLndhdGNoKSB7XG4gICAgICAgICAgICBjb250cm9sLl9zdGF0ZS53YXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgY29udHJvbC5fc3ViamVjdHMuc3RhdGUubmV4dCh7IC4uLmNvbnRyb2wuX2Zvcm1TdGF0ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb250cm9sLl9yZW1vdmVVbm1vdW50ZWQoKTtcbiAgICB9KTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5zaG91bGRVbnJlZ2lzdGVyICYmXG4gICAgICAgICAgICBjb250cm9sLl9zdWJqZWN0cy52YWx1ZXMubmV4dCh7XG4gICAgICAgICAgICAgICAgdmFsdWVzOiBjb250cm9sLl9nZXRXYXRjaCgpLFxuICAgICAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLnNob3VsZFVucmVnaXN0ZXIsIGNvbnRyb2xdKTtcbiAgICBfZm9ybUNvbnRyb2wuY3VycmVudC5mb3JtU3RhdGUgPSBnZXRQcm94eUZvcm1TdGF0ZShmb3JtU3RhdGUsIGNvbnRyb2wpO1xuICAgIHJldHVybiBfZm9ybUNvbnRyb2wuY3VycmVudDtcbn1cblxuZXhwb3J0IHsgQ29udHJvbGxlciwgRm9ybSwgRm9ybVByb3ZpZGVyLCBhcHBlbmRFcnJvcnMsIGdldCwgc2V0LCB1c2VDb250cm9sbGVyLCB1c2VGaWVsZEFycmF5LCB1c2VGb3JtLCB1c2VGb3JtQ29udGV4dCwgdXNlRm9ybVN0YXRlLCB1c2VXYXRjaCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-is/cjs/react-is.development.js": /*!***********************************************************!*\ !*** ./node_modules/react-is/cjs/react-is.development.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7OztBQUliLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7QUFDM0U7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlEOztBQUVqRDtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7O0FBRWxEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQjtBQUNqQixzQkFBc0I7QUFDdEIsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsaUJBQWlCO0FBQ2pCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-is/cjs/react-is.development.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-is/index.js": /*!****************************************!*\ !*** ./node_modules/react-is/index.js ***! \****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"(app-pages-browser)/./node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsb0pBQXlEO0FBQzNEIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-is/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs": /*!*******************************************************!*\ !*** ./node_modules/react-redux/dist/react-redux.mjs ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Provider: () => (/* binding */ Provider_default),\n/* harmony export */ ReactReduxContext: () => (/* binding */ ReactReduxContext),\n/* harmony export */ batch: () => (/* binding */ batch),\n/* harmony export */ connect: () => (/* binding */ connect_default),\n/* harmony export */ createDispatchHook: () => (/* binding */ createDispatchHook),\n/* harmony export */ createSelectorHook: () => (/* binding */ createSelectorHook),\n/* harmony export */ createStoreHook: () => (/* binding */ createStoreHook),\n/* harmony export */ shallowEqual: () => (/* binding */ shallowEqual),\n/* harmony export */ useDispatch: () => (/* binding */ useDispatch),\n/* harmony export */ useSelector: () => (/* binding */ useSelector),\n/* harmony export */ useStore: () => (/* binding */ useStore)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var use_sync_external_store_with_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-sync-external-store/with-selector.js */ \"(app-pages-browser)/./node_modules/use-sync-external-store/with-selector.js\");\n// src/utils/react.ts\n\n\n// src/utils/react-is.ts\nvar IS_REACT_19 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.version.startsWith(\"19\");\nvar REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n IS_REACT_19 ? \"react.transitional.element\" : \"react.element\"\n);\nvar REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\nvar REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.fragment\");\nvar REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for(\"react.strict_mode\");\nvar REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for(\"react.profiler\");\nvar REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for(\"react.consumer\");\nvar REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for(\"react.context\");\nvar REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for(\"react.forward_ref\");\nvar REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense\");\nvar REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n \"react.suspense_list\"\n);\nvar REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for(\"react.memo\");\nvar REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for(\"react.lazy\");\nvar REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for(\"react.offscreen\");\nvar REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n \"react.client.reference\"\n);\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nfunction isValidElementType(type) {\n return typeof type === \"string\" || typeof type === \"function\" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === \"object\" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;\n}\nfunction typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n const { $$typeof } = object;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (object = object.type, object) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (object = object && object.$$typeof, object) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nfunction isContextConsumer(object) {\n return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/connect/verifySubselectors.ts\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === \"mapStateToProps\" || methodName === \"mapDispatchToProps\") {\n if (!Object.prototype.hasOwnProperty.call(selector, \"dependsOnOwnProps\")) {\n warning(\n `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`\n );\n }\n }\n}\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, \"mapStateToProps\");\n verify(mapDispatchToProps, \"mapDispatchToProps\");\n verify(mergeProps, \"mergeProps\");\n}\n\n// src/connect/selectorFactory.ts\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps)\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(\n nextState,\n state,\n nextOwnProps,\n ownProps\n );\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\nfunction finalPropsSelectorFactory(dispatch, {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n ...options\n}) {\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n if (true) {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n// src/utils/bindActionCreators.ts\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n return boundActionCreators;\n}\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null) return false;\n const proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n let baseProto = proto;\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n return proto === baseProto;\n}\n\n// src/utils/verifyPlainObject.ts\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(\n `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`\n );\n }\n}\n\n// src/connect/wrapMapToProps.ts\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, { displayName }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);\n };\n proxy.dependsOnOwnProps = true;\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n if (typeof props === \"function\") {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n if (true)\n verifyPlainObject(props, displayName, methodName);\n return props;\n };\n return proxy;\n };\n}\n\n// src/connect/invalidArgFactory.ts\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(\n `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`\n );\n };\n}\n\n// src/connect/mapDispatchToProps.ts\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === \"object\" ? wrapMapToPropsConstant(\n (dispatch) => (\n // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)\n )\n ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({\n dispatch\n })) : typeof mapDispatchToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, \"mapDispatchToProps\")\n ) : createInvalidArgFactory(mapDispatchToProps, \"mapDispatchToProps\");\n}\n\n// src/connect/mapStateToProps.ts\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, \"mapStateToProps\")\n ) : createInvalidArgFactory(mapStateToProps, \"mapStateToProps\");\n}\n\n// src/connect/mergeProps.ts\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return { ...ownProps, ...stateProps, ...dispatchProps };\n}\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (true)\n verifyPlainObject(mergedProps, displayName, \"mergeProps\");\n }\n return mergedProps;\n };\n };\n}\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === \"function\" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, \"mergeProps\");\n}\n\n// src/utils/batch.ts\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\n// src/utils/Subscription.ts\nfunction createListenerCollection() {\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n notify() {\n defaultNoopBatch(() => {\n let listener = first;\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get() {\n const listeners = [];\n let listener = first;\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n return listeners;\n },\n subscribe(callback) {\n let isSubscribed = true;\n const listener = last = {\n callback,\n next: null,\n prev: last\n };\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\nvar nullListeners = {\n notify() {\n },\n get: () => []\n};\nfunction createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n let subscriptionsAmount = 0;\n let selfSubscribed = false;\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener);\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n function notifyNestedSubs() {\n listeners.notify();\n }\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n function isSubscribed() {\n return selfSubscribed;\n }\n function trySubscribe() {\n subscriptionsAmount++;\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n function tryUnsubscribe() {\n subscriptionsAmount--;\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = void 0;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}\n\n// src/utils/useIsomorphicLayoutEffect.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\n\n// src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\n// src/utils/hoistStatics.ts\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS\n};\nfunction getStatics(component) {\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component[\"$$typeof\"]] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent) {\n if (typeof sourceComponent !== \"string\") {\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent);\n }\n }\n let keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {\n }\n }\n }\n }\n return targetComponent;\n}\n\n// src/components/Context.ts\nvar ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);\nvar gT = typeof globalThis !== \"undefined\" ? globalThis : (\n /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n {}\n);\nfunction getContext() {\n if (!react__WEBPACK_IMPORTED_MODULE_0__.createContext) return {};\n const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map();\n let realContext = contextMap.get(react__WEBPACK_IMPORTED_MODULE_0__.createContext);\n if (!realContext) {\n realContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(\n null\n );\n if (true) {\n realContext.displayName = \"ReactRedux\";\n }\n contextMap.set(react__WEBPACK_IMPORTED_MODULE_0__.createContext, realContext);\n }\n return realContext;\n}\nvar ReactReduxContext = /* @__PURE__ */ getContext();\n\n// src/components/connect.tsx\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\nvar stringifyComponent = (Comp) => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n}\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false;\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {\n if (!shouldHandleStateChanges) return () => {\n };\n let didUnsubscribe = false;\n let lastThrownError = null;\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n return;\n }\n const latestStoreState = store.getState();\n let newChildProps, error;\n try {\n newChildProps = childPropsSelector(\n latestStoreState,\n lastWrapperProps.current\n );\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n if (!error) {\n lastThrownError = null;\n }\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true;\n additionalSubscribeListener();\n }\n };\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n if (lastThrownError) {\n throw lastThrownError;\n }\n };\n return unsubscribeWrapper;\n}\nfunction strictEqual(a, b) {\n return a === b;\n}\nvar hasWarnedAboutDeprecatedPureOption = false;\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (true) {\n if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning(\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component'\n );\n }\n }\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n const wrapWithConnect = (WrappedComponent) => {\n if (true) {\n const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);\n if (!isValid)\n throw new Error(\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n WrappedComponent\n )}`\n );\n }\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;\n return [props.context, reactReduxForwardedRef2, wrapperProps2];\n }, [props]);\n const ContextToUse = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n let ResultContext = Context;\n if (propsContext?.Consumer) {\n if (true) {\n const isValid = /* @__PURE__ */ isContextConsumer(\n // @ts-ignore\n /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(propsContext.Consumer, null)\n );\n if (!isValid) {\n throw new Error(\n \"You must pass a valid React context consumer as `props.context`\"\n );\n }\n ResultContext = propsContext;\n }\n }\n return ResultContext;\n }, [propsContext, Context]);\n const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ContextToUse);\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n if ( true && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\n `Could not find \"store\" in the context of \"${displayName}\". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`\n );\n }\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;\n const subscription2 = createSubscription(\n store,\n didStoreComeFromProps ? void 0 : contextValue.subscription\n );\n const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);\n return [subscription2, notifyNestedSubs2];\n }, [store, didStoreComeFromProps, contextValue]);\n const overriddenContextValue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (didStoreComeFromProps) {\n return contextValue;\n }\n return {\n ...contextValue,\n subscription\n };\n }, [didStoreComeFromProps, contextValue, subscription]);\n const lastChildProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);\n const lastWrapperProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(wrapperProps);\n const childPropsFromStoreUpdate = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);\n const renderIsScheduled = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const isMounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const latestSubscriptionCallbackError = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\n void 0\n );\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n const selector = () => {\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n }\n return childPropsSelector(store.getState(), wrapperProps);\n };\n return selector;\n }, [store, wrapperProps]);\n const subscribeForReact = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n const subscribe = (reactListener) => {\n if (!subscription) {\n return () => {\n };\n }\n return subscribeUpdates(\n shouldHandleStateChanges,\n store,\n subscription,\n // @ts-ignore\n childPropsSelector,\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n isMounted,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n reactListener\n );\n };\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n wrapperProps,\n childPropsFromStoreUpdate,\n notifyNestedSubs\n ]);\n let actualChildProps;\n try {\n actualChildProps = react__WEBPACK_IMPORTED_MODULE_0__.useSyncExternalStore(\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact,\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector,\n getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector\n );\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n`;\n }\n throw err;\n }\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = void 0;\n childPropsFromStoreUpdate.current = void 0;\n lastChildProps.current = actualChildProps;\n });\n const renderedWrappedComponent = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n return (\n // @ts-ignore\n /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\n WrappedComponent,\n {\n ...actualChildProps,\n ref: reactReduxForwardedRef\n }\n )\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);\n const renderedChild = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (shouldHandleStateChanges) {\n return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);\n }\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n const _Connect = react__WEBPACK_IMPORTED_MODULE_0__.memo(ConnectFunction);\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n if (forwardRef) {\n const _forwarded = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\n function forwardConnectRef(props, ref) {\n return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Connect, { ...props, reactReduxForwardedRef: ref });\n }\n );\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);\n }\n return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);\n };\n return wrapWithConnect;\n}\nvar connect_default = connect;\n\n// src/components/Provider.tsx\nfunction Provider(providerProps) {\n const { children, context, serverState, store } = providerProps;\n const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n const subscription = createSubscription(store);\n const baseContextValue = {\n store,\n subscription,\n getServerState: serverState ? () => serverState : void 0\n };\n if (false) {} else {\n const { identityFunctionCheck = \"once\", stabilityCheck = \"once\" } = providerProps;\n return /* @__PURE__ */ Object.assign(baseContextValue, {\n stabilityCheck,\n identityFunctionCheck\n });\n }\n }, [store, serverState]);\n const previousState = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = void 0;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext;\n return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Context.Provider, { value: contextValue }, children);\n}\nvar Provider_default = Provider;\n\n// src/hooks/useReduxContext.ts\nfunction createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext2() {\n const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useContext(context);\n if ( true && !contextValue) {\n throw new Error(\n \"could not find react-redux context value; please ensure the component is wrapped in a <Provider>\"\n );\n }\n return contextValue;\n };\n}\nvar useReduxContext = /* @__PURE__ */ createReduxContextHook();\n\n// src/hooks/useStore.ts\nfunction createStoreHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (\n // @ts-ignore\n createReduxContextHook(context)\n );\n const useStore2 = () => {\n const { store } = useReduxContext2();\n return store;\n };\n Object.assign(useStore2, {\n withTypes: () => useStore2\n });\n return useStore2;\n}\nvar useStore = /* @__PURE__ */ createStoreHook();\n\n// src/hooks/useDispatch.ts\nfunction createDispatchHook(context = ReactReduxContext) {\n const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);\n const useDispatch2 = () => {\n const store = useStore2();\n return store.dispatch;\n };\n Object.assign(useDispatch2, {\n withTypes: () => useDispatch2\n });\n return useDispatch2;\n}\nvar useDispatch = /* @__PURE__ */ createDispatchHook();\n\n// src/hooks/useSelector.ts\n\nvar refEquality = (a, b) => a === b;\nfunction createSelectorHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);\n const useSelector2 = (selector, equalityFnOrOptions = {}) => {\n const { equalityFn = refEquality } = typeof equalityFnOrOptions === \"function\" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;\n if (true) {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n if (typeof selector !== \"function\") {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n if (typeof equalityFn !== \"function\") {\n throw new Error(\n `You must pass a function as an equality function to useSelector`\n );\n }\n }\n const reduxContext = useReduxContext2();\n const { store, subscription, getServerState } = reduxContext;\n const firstRun = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);\n const wrappedSelector = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\n {\n [selector.name](state) {\n const selected = selector(state);\n if (true) {\n const { devModeChecks = {} } = typeof equalityFnOrOptions === \"function\" ? {} : equalityFnOrOptions;\n const { identityFunctionCheck, stabilityCheck } = reduxContext;\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks\n };\n if (finalStabilityCheck === \"always\" || finalStabilityCheck === \"once\" && firstRun.current) {\n const toCompare = selector(state);\n if (!equalityFn(selected, toCompare)) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization\",\n {\n state,\n selected,\n selected2: toCompare,\n stack\n }\n );\n }\n }\n if (finalIdentityFunctionCheck === \"always\" || finalIdentityFunctionCheck === \"once\" && firstRun.current) {\n if (selected === state) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned the root state when called. This can lead to unnecessary rerenders.\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.\",\n { stack }\n );\n }\n }\n if (firstRun.current) firstRun.current = false;\n }\n return selected;\n }\n }[selector.name],\n [selector]\n );\n const selectedState = (0,use_sync_external_store_with_selector_js__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStoreWithSelector)(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn\n );\n react__WEBPACK_IMPORTED_MODULE_0__.useDebugValue(selectedState);\n return selectedState;\n };\n Object.assign(useSelector2, {\n withTypes: () => useSelector2\n });\n return useSelector2;\n}\nvar useSelector = /* @__PURE__ */ createSelectorHook();\n\n// src/exports.ts\nvar batch = defaultNoopBatch;\n\n//# sourceMappingURL=react-redux.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZWR1eC9kaXN0L3JlYWN0LXJlZHV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDK0I7O0FBRS9CO0FBQ0Esa0NBQWtDLDBDQUFhO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsWUFBWTtBQUN4RCxJQUFJO0FBQ0o7QUFDQTtBQUNBLDRCQUE0QixZQUFZO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxnREFBbUI7QUFDMUI7QUFDQSxtQ0FBbUMsZ0RBQW1CO0FBQ3REO0FBQ0Esa0JBQWtCLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0EsbUJBQW1CLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsMEJBQTBCLDBHQUFnQztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdEQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQWFFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2Rpc3QvcmVhY3QtcmVkdXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy91dGlscy9yZWFjdC50c1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8vIHNyYy91dGlscy9yZWFjdC1pcy50c1xudmFyIElTX1JFQUNUXzE5ID0gLyogQF9fUFVSRV9fICovIFJlYWN0LnZlcnNpb24uc3RhcnRzV2l0aChcIjE5XCIpO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFxuICBJU19SRUFDVF8xOSA/IFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiA6IFwicmVhY3QuZWxlbWVudFwiXG4pO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIik7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik7XG52YXIgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIik7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFxuICBcInJlYWN0LnN1c3BlbnNlX2xpc3RcIlxuKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5vZmZzY3JlZW5cIik7XG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFxuICBcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIlxuKTtcbnZhciBGb3J3YXJkUmVmID0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbnZhciBNZW1vID0gUkVBQ1RfTUVNT19UWVBFO1xuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB0eXBlID09PSBcImZ1bmN0aW9uXCIgfHwgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09IFwib2JqZWN0XCIgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgfHwgdHlwZS5nZXRNb2R1bGVJZCAhPT0gdm9pZCAwKSA/IHRydWUgOiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09IFwib2JqZWN0XCIgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgeyAkJHR5cGVvZiB9ID0gb2JqZWN0O1xuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICBzd2l0Y2ggKG9iamVjdCA9IG9iamVjdC50eXBlLCBvYmplY3QpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzd2l0Y2ggKG9iamVjdCA9IG9iamVjdCAmJiBvYmplY3QuJCR0eXBlb2YsIG9iamVjdCkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICByZXR1cm4gJCR0eXBlb2Y7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBpc0NvbnRleHRDb25zdW1lcihvYmplY3QpIHtcbiAgcmV0dXJuIElTX1JFQUNUXzE5ID8gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgOiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNNZW1vKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX01FTU9fVFlQRTtcbn1cblxuLy8gc3JjL3V0aWxzL3dhcm5pbmcudHNcbmZ1bmN0aW9uIHdhcm5pbmcobWVzc2FnZSkge1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgdHJ5IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgfVxufVxuXG4vLyBzcmMvY29ubmVjdC92ZXJpZnlTdWJzZWxlY3RvcnMudHNcbmZ1bmN0aW9uIHZlcmlmeShzZWxlY3RvciwgbWV0aG9kTmFtZSkge1xuICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHZhbHVlIGZvciAke21ldGhvZE5hbWV9IGluIGNvbm5lY3QuYCk7XG4gIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gXCJtYXBTdGF0ZVRvUHJvcHNcIiB8fCBtZXRob2ROYW1lID09PSBcIm1hcERpc3BhdGNoVG9Qcm9wc1wiKSB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2VsZWN0b3IsIFwiZGVwZW5kc09uT3duUHJvcHNcIikpIHtcbiAgICAgIHdhcm5pbmcoXG4gICAgICAgIGBUaGUgc2VsZWN0b3IgZm9yICR7bWV0aG9kTmFtZX0gb2YgY29ubmVjdCBkaWQgbm90IHNwZWNpZnkgYSB2YWx1ZSBmb3IgZGVwZW5kc09uT3duUHJvcHMuYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHZlcmlmeVN1YnNlbGVjdG9ycyhtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcywgbWVyZ2VQcm9wcykge1xuICB2ZXJpZnkobWFwU3RhdGVUb1Byb3BzLCBcIm1hcFN0YXRlVG9Qcm9wc1wiKTtcbiAgdmVyaWZ5KG1hcERpc3BhdGNoVG9Qcm9wcywgXCJtYXBEaXNwYXRjaFRvUHJvcHNcIik7XG4gIHZlcmlmeShtZXJnZVByb3BzLCBcIm1lcmdlUHJvcHNcIik7XG59XG5cbi8vIHNyYy9jb25uZWN0L3NlbGVjdG9yRmFjdG9yeS50c1xuZnVuY3Rpb24gcHVyZUZpbmFsUHJvcHNTZWxlY3RvckZhY3RvcnkobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMsIG1lcmdlUHJvcHMsIGRpc3BhdGNoLCB7XG4gIGFyZVN0YXRlc0VxdWFsLFxuICBhcmVPd25Qcm9wc0VxdWFsLFxuICBhcmVTdGF0ZVByb3BzRXF1YWxcbn0pIHtcbiAgbGV0IGhhc1J1bkF0TGVhc3RPbmNlID0gZmFsc2U7XG4gIGxldCBzdGF0ZTtcbiAgbGV0IG93blByb3BzO1xuICBsZXQgc3RhdGVQcm9wcztcbiAgbGV0IGRpc3BhdGNoUHJvcHM7XG4gIGxldCBtZXJnZWRQcm9wcztcbiAgZnVuY3Rpb24gaGFuZGxlRmlyc3RDYWxsKGZpcnN0U3RhdGUsIGZpcnN0T3duUHJvcHMpIHtcbiAgICBzdGF0ZSA9IGZpcnN0U3RhdGU7XG4gICAgb3duUHJvcHMgPSBmaXJzdE93blByb3BzO1xuICAgIHN0YXRlUHJvcHMgPSBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIG93blByb3BzKTtcbiAgICBkaXNwYXRjaFByb3BzID0gbWFwRGlzcGF0Y2hUb1Byb3BzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG4gICAgbWVyZ2VkUHJvcHMgPSBtZXJnZVByb3BzKHN0YXRlUHJvcHMsIGRpc3BhdGNoUHJvcHMsIG93blByb3BzKTtcbiAgICBoYXNSdW5BdExlYXN0T25jZSA9IHRydWU7XG4gICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZU5ld1Byb3BzQW5kTmV3U3RhdGUoKSB7XG4gICAgc3RhdGVQcm9wcyA9IG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZSwgb3duUHJvcHMpO1xuICAgIGlmIChtYXBEaXNwYXRjaFRvUHJvcHMuZGVwZW5kc09uT3duUHJvcHMpXG4gICAgICBkaXNwYXRjaFByb3BzID0gbWFwRGlzcGF0Y2hUb1Byb3BzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG4gICAgbWVyZ2VkUHJvcHMgPSBtZXJnZVByb3BzKHN0YXRlUHJvcHMsIGRpc3BhdGNoUHJvcHMsIG93blByb3BzKTtcbiAgICByZXR1cm4gbWVyZ2VkUHJvcHM7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlTmV3UHJvcHMoKSB7XG4gICAgaWYgKG1hcFN0YXRlVG9Qcm9wcy5kZXBlbmRzT25Pd25Qcm9wcylcbiAgICAgIHN0YXRlUHJvcHMgPSBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIG93blByb3BzKTtcbiAgICBpZiAobWFwRGlzcGF0Y2hUb1Byb3BzLmRlcGVuZHNPbk93blByb3BzKVxuICAgICAgZGlzcGF0Y2hQcm9wcyA9IG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCwgb3duUHJvcHMpO1xuICAgIG1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcyk7XG4gICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZU5ld1N0YXRlKCkge1xuICAgIGNvbnN0IG5leHRTdGF0ZVByb3BzID0gbWFwU3RhdGVUb1Byb3BzKHN0YXRlLCBvd25Qcm9wcyk7XG4gICAgY29uc3Qgc3RhdGVQcm9wc0NoYW5nZWQgPSAhYXJlU3RhdGVQcm9wc0VxdWFsKG5leHRTdGF0ZVByb3BzLCBzdGF0ZVByb3BzKTtcbiAgICBzdGF0ZVByb3BzID0gbmV4dFN0YXRlUHJvcHM7XG4gICAgaWYgKHN0YXRlUHJvcHNDaGFuZ2VkKVxuICAgICAgbWVyZ2VkUHJvcHMgPSBtZXJnZVByb3BzKHN0YXRlUHJvcHMsIGRpc3BhdGNoUHJvcHMsIG93blByb3BzKTtcbiAgICByZXR1cm4gbWVyZ2VkUHJvcHM7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlU3Vic2VxdWVudENhbGxzKG5leHRTdGF0ZSwgbmV4dE93blByb3BzKSB7XG4gICAgY29uc3QgcHJvcHNDaGFuZ2VkID0gIWFyZU93blByb3BzRXF1YWwobmV4dE93blByb3BzLCBvd25Qcm9wcyk7XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VkID0gIWFyZVN0YXRlc0VxdWFsKFxuICAgICAgbmV4dFN0YXRlLFxuICAgICAgc3RhdGUsXG4gICAgICBuZXh0T3duUHJvcHMsXG4gICAgICBvd25Qcm9wc1xuICAgICk7XG4gICAgc3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgb3duUHJvcHMgPSBuZXh0T3duUHJvcHM7XG4gICAgaWYgKHByb3BzQ2hhbmdlZCAmJiBzdGF0ZUNoYW5nZWQpIHJldHVybiBoYW5kbGVOZXdQcm9wc0FuZE5ld1N0YXRlKCk7XG4gICAgaWYgKHByb3BzQ2hhbmdlZCkgcmV0dXJuIGhhbmRsZU5ld1Byb3BzKCk7XG4gICAgaWYgKHN0YXRlQ2hhbmdlZCkgcmV0dXJuIGhhbmRsZU5ld1N0YXRlKCk7XG4gICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBwdXJlRmluYWxQcm9wc1NlbGVjdG9yKG5leHRTdGF0ZSwgbmV4dE93blByb3BzKSB7XG4gICAgcmV0dXJuIGhhc1J1bkF0TGVhc3RPbmNlID8gaGFuZGxlU3Vic2VxdWVudENhbGxzKG5leHRTdGF0ZSwgbmV4dE93blByb3BzKSA6IGhhbmRsZUZpcnN0Q2FsbChuZXh0U3RhdGUsIG5leHRPd25Qcm9wcyk7XG4gIH07XG59XG5mdW5jdGlvbiBmaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KGRpc3BhdGNoLCB7XG4gIGluaXRNYXBTdGF0ZVRvUHJvcHMsXG4gIGluaXRNYXBEaXNwYXRjaFRvUHJvcHMsXG4gIGluaXRNZXJnZVByb3BzLFxuICAuLi5vcHRpb25zXG59KSB7XG4gIGNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IGluaXRNYXBTdGF0ZVRvUHJvcHMoZGlzcGF0Y2gsIG9wdGlvbnMpO1xuICBjb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSBpbml0TWFwRGlzcGF0Y2hUb1Byb3BzKGRpc3BhdGNoLCBvcHRpb25zKTtcbiAgY29uc3QgbWVyZ2VQcm9wcyA9IGluaXRNZXJnZVByb3BzKGRpc3BhdGNoLCBvcHRpb25zKTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHZlcmlmeVN1YnNlbGVjdG9ycyhtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcywgbWVyZ2VQcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzLCBtZXJnZVByb3BzLCBkaXNwYXRjaCwgb3B0aW9ucyk7XG59XG5cbi8vIHNyYy91dGlscy9iaW5kQWN0aW9uQ3JlYXRvcnMudHNcbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpIHtcbiAgY29uc3QgYm91bmRBY3Rpb25DcmVhdG9ycyA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb25DcmVhdG9ycykge1xuICAgIGNvbnN0IGFjdGlvbkNyZWF0b3IgPSBhY3Rpb25DcmVhdG9yc1trZXldO1xuICAgIGlmICh0eXBlb2YgYWN0aW9uQ3JlYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBib3VuZEFjdGlvbkNyZWF0b3JzW2tleV0gPSAoLi4uYXJncykgPT4gZGlzcGF0Y2goYWN0aW9uQ3JlYXRvciguLi5hcmdzKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBib3VuZEFjdGlvbkNyZWF0b3JzO1xufVxuXG4vLyBzcmMvdXRpbHMvaXNQbGFpbk9iamVjdC50c1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHtcbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaik7XG4gIGlmIChwcm90byA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG4gIGxldCBiYXNlUHJvdG8gPSBwcm90bztcbiAgd2hpbGUgKE9iamVjdC5nZXRQcm90b3R5cGVPZihiYXNlUHJvdG8pICE9PSBudWxsKSB7XG4gICAgYmFzZVByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGJhc2VQcm90byk7XG4gIH1cbiAgcmV0dXJuIHByb3RvID09PSBiYXNlUHJvdG87XG59XG5cbi8vIHNyYy91dGlscy92ZXJpZnlQbGFpbk9iamVjdC50c1xuZnVuY3Rpb24gdmVyaWZ5UGxhaW5PYmplY3QodmFsdWUsIGRpc3BsYXlOYW1lLCBtZXRob2ROYW1lKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB3YXJuaW5nKFxuICAgICAgYCR7bWV0aG9kTmFtZX0oKSBpbiAke2Rpc3BsYXlOYW1lfSBtdXN0IHJldHVybiBhIHBsYWluIG9iamVjdC4gSW5zdGVhZCByZWNlaXZlZCAke3ZhbHVlfS5gXG4gICAgKTtcbiAgfVxufVxuXG4vLyBzcmMvY29ubmVjdC93cmFwTWFwVG9Qcm9wcy50c1xuZnVuY3Rpb24gd3JhcE1hcFRvUHJvcHNDb25zdGFudChnZXRDb25zdGFudCkge1xuICByZXR1cm4gZnVuY3Rpb24gaW5pdENvbnN0YW50U2VsZWN0b3IoZGlzcGF0Y2gpIHtcbiAgICBjb25zdCBjb25zdGFudCA9IGdldENvbnN0YW50KGRpc3BhdGNoKTtcbiAgICBmdW5jdGlvbiBjb25zdGFudFNlbGVjdG9yKCkge1xuICAgICAgcmV0dXJuIGNvbnN0YW50O1xuICAgIH1cbiAgICBjb25zdGFudFNlbGVjdG9yLmRlcGVuZHNPbk93blByb3BzID0gZmFsc2U7XG4gICAgcmV0dXJuIGNvbnN0YW50U2VsZWN0b3I7XG4gIH07XG59XG5mdW5jdGlvbiBnZXREZXBlbmRzT25Pd25Qcm9wcyhtYXBUb1Byb3BzKSB7XG4gIHJldHVybiBtYXBUb1Byb3BzLmRlcGVuZHNPbk93blByb3BzID8gQm9vbGVhbihtYXBUb1Byb3BzLmRlcGVuZHNPbk93blByb3BzKSA6IG1hcFRvUHJvcHMubGVuZ3RoICE9PSAxO1xufVxuZnVuY3Rpb24gd3JhcE1hcFRvUHJvcHNGdW5jKG1hcFRvUHJvcHMsIG1ldGhvZE5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluaXRQcm94eVNlbGVjdG9yKGRpc3BhdGNoLCB7IGRpc3BsYXlOYW1lIH0pIHtcbiAgICBjb25zdCBwcm94eSA9IGZ1bmN0aW9uIG1hcFRvUHJvcHNQcm94eShzdGF0ZU9yRGlzcGF0Y2gsIG93blByb3BzKSB7XG4gICAgICByZXR1cm4gcHJveHkuZGVwZW5kc09uT3duUHJvcHMgPyBwcm94eS5tYXBUb1Byb3BzKHN0YXRlT3JEaXNwYXRjaCwgb3duUHJvcHMpIDogcHJveHkubWFwVG9Qcm9wcyhzdGF0ZU9yRGlzcGF0Y2gsIHZvaWQgMCk7XG4gICAgfTtcbiAgICBwcm94eS5kZXBlbmRzT25Pd25Qcm9wcyA9IHRydWU7XG4gICAgcHJveHkubWFwVG9Qcm9wcyA9IGZ1bmN0aW9uIGRldGVjdEZhY3RvcnlBbmRWZXJpZnkoc3RhdGVPckRpc3BhdGNoLCBvd25Qcm9wcykge1xuICAgICAgcHJveHkubWFwVG9Qcm9wcyA9IG1hcFRvUHJvcHM7XG4gICAgICBwcm94eS5kZXBlbmRzT25Pd25Qcm9wcyA9IGdldERlcGVuZHNPbk93blByb3BzKG1hcFRvUHJvcHMpO1xuICAgICAgbGV0IHByb3BzID0gcHJveHkoc3RhdGVPckRpc3BhdGNoLCBvd25Qcm9wcyk7XG4gICAgICBpZiAodHlwZW9mIHByb3BzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcHJveHkubWFwVG9Qcm9wcyA9IHByb3BzO1xuICAgICAgICBwcm94eS5kZXBlbmRzT25Pd25Qcm9wcyA9IGdldERlcGVuZHNPbk93blByb3BzKHByb3BzKTtcbiAgICAgICAgcHJvcHMgPSBwcm94eShzdGF0ZU9yRGlzcGF0Y2gsIG93blByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpXG4gICAgICAgIHZlcmlmeVBsYWluT2JqZWN0KHByb3BzLCBkaXNwbGF5TmFtZSwgbWV0aG9kTmFtZSk7XG4gICAgICByZXR1cm4gcHJvcHM7XG4gICAgfTtcbiAgICByZXR1cm4gcHJveHk7XG4gIH07XG59XG5cbi8vIHNyYy9jb25uZWN0L2ludmFsaWRBcmdGYWN0b3J5LnRzXG5mdW5jdGlvbiBjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeShhcmcsIG5hbWUpIHtcbiAgcmV0dXJuIChkaXNwYXRjaCwgb3B0aW9ucykgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHZhbHVlIG9mIHR5cGUgJHt0eXBlb2YgYXJnfSBmb3IgJHtuYW1lfSBhcmd1bWVudCB3aGVuIGNvbm5lY3RpbmcgY29tcG9uZW50ICR7b3B0aW9ucy53cmFwcGVkQ29tcG9uZW50TmFtZX0uYFxuICAgICk7XG4gIH07XG59XG5cbi8vIHNyYy9jb25uZWN0L21hcERpc3BhdGNoVG9Qcm9wcy50c1xuZnVuY3Rpb24gbWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeShtYXBEaXNwYXRjaFRvUHJvcHMpIHtcbiAgcmV0dXJuIG1hcERpc3BhdGNoVG9Qcm9wcyAmJiB0eXBlb2YgbWFwRGlzcGF0Y2hUb1Byb3BzID09PSBcIm9iamVjdFwiID8gd3JhcE1hcFRvUHJvcHNDb25zdGFudChcbiAgICAoZGlzcGF0Y2gpID0+IChcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGJpbmRBY3Rpb25DcmVhdG9ycyhtYXBEaXNwYXRjaFRvUHJvcHMsIGRpc3BhdGNoKVxuICAgIClcbiAgKSA6ICFtYXBEaXNwYXRjaFRvUHJvcHMgPyB3cmFwTWFwVG9Qcm9wc0NvbnN0YW50KChkaXNwYXRjaCkgPT4gKHtcbiAgICBkaXNwYXRjaFxuICB9KSkgOiB0eXBlb2YgbWFwRGlzcGF0Y2hUb1Byb3BzID09PSBcImZ1bmN0aW9uXCIgPyAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHdyYXBNYXBUb1Byb3BzRnVuYyhtYXBEaXNwYXRjaFRvUHJvcHMsIFwibWFwRGlzcGF0Y2hUb1Byb3BzXCIpXG4gICkgOiBjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeShtYXBEaXNwYXRjaFRvUHJvcHMsIFwibWFwRGlzcGF0Y2hUb1Byb3BzXCIpO1xufVxuXG4vLyBzcmMvY29ubmVjdC9tYXBTdGF0ZVRvUHJvcHMudHNcbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wc0ZhY3RvcnkobWFwU3RhdGVUb1Byb3BzKSB7XG4gIHJldHVybiAhbWFwU3RhdGVUb1Byb3BzID8gd3JhcE1hcFRvUHJvcHNDb25zdGFudCgoKSA9PiAoe30pKSA6IHR5cGVvZiBtYXBTdGF0ZVRvUHJvcHMgPT09IFwiZnVuY3Rpb25cIiA/IChcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgd3JhcE1hcFRvUHJvcHNGdW5jKG1hcFN0YXRlVG9Qcm9wcywgXCJtYXBTdGF0ZVRvUHJvcHNcIilcbiAgKSA6IGNyZWF0ZUludmFsaWRBcmdGYWN0b3J5KG1hcFN0YXRlVG9Qcm9wcywgXCJtYXBTdGF0ZVRvUHJvcHNcIik7XG59XG5cbi8vIHNyYy9jb25uZWN0L21lcmdlUHJvcHMudHNcbmZ1bmN0aW9uIGRlZmF1bHRNZXJnZVByb3BzKHN0YXRlUHJvcHMsIGRpc3BhdGNoUHJvcHMsIG93blByb3BzKSB7XG4gIHJldHVybiB7IC4uLm93blByb3BzLCAuLi5zdGF0ZVByb3BzLCAuLi5kaXNwYXRjaFByb3BzIH07XG59XG5mdW5jdGlvbiB3cmFwTWVyZ2VQcm9wc0Z1bmMobWVyZ2VQcm9wcykge1xuICByZXR1cm4gZnVuY3Rpb24gaW5pdE1lcmdlUHJvcHNQcm94eShkaXNwYXRjaCwgeyBkaXNwbGF5TmFtZSwgYXJlTWVyZ2VkUHJvcHNFcXVhbCB9KSB7XG4gICAgbGV0IGhhc1J1bk9uY2UgPSBmYWxzZTtcbiAgICBsZXQgbWVyZ2VkUHJvcHM7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lcmdlUHJvcHNQcm94eShzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcykge1xuICAgICAgY29uc3QgbmV4dE1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcyk7XG4gICAgICBpZiAoaGFzUnVuT25jZSkge1xuICAgICAgICBpZiAoIWFyZU1lcmdlZFByb3BzRXF1YWwobmV4dE1lcmdlZFByb3BzLCBtZXJnZWRQcm9wcykpXG4gICAgICAgICAgbWVyZ2VkUHJvcHMgPSBuZXh0TWVyZ2VkUHJvcHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYXNSdW5PbmNlID0gdHJ1ZTtcbiAgICAgICAgbWVyZ2VkUHJvcHMgPSBuZXh0TWVyZ2VkUHJvcHM7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpXG4gICAgICAgICAgdmVyaWZ5UGxhaW5PYmplY3QobWVyZ2VkUHJvcHMsIGRpc3BsYXlOYW1lLCBcIm1lcmdlUHJvcHNcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkUHJvcHM7XG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHNGYWN0b3J5KG1lcmdlUHJvcHMpIHtcbiAgcmV0dXJuICFtZXJnZVByb3BzID8gKCkgPT4gZGVmYXVsdE1lcmdlUHJvcHMgOiB0eXBlb2YgbWVyZ2VQcm9wcyA9PT0gXCJmdW5jdGlvblwiID8gd3JhcE1lcmdlUHJvcHNGdW5jKG1lcmdlUHJvcHMpIDogY3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkobWVyZ2VQcm9wcywgXCJtZXJnZVByb3BzXCIpO1xufVxuXG4vLyBzcmMvdXRpbHMvYmF0Y2gudHNcbmZ1bmN0aW9uIGRlZmF1bHROb29wQmF0Y2goY2FsbGJhY2spIHtcbiAgY2FsbGJhY2soKTtcbn1cblxuLy8gc3JjL3V0aWxzL1N1YnNjcmlwdGlvbi50c1xuZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uKCkge1xuICBsZXQgZmlyc3QgPSBudWxsO1xuICBsZXQgbGFzdCA9IG51bGw7XG4gIHJldHVybiB7XG4gICAgY2xlYXIoKSB7XG4gICAgICBmaXJzdCA9IG51bGw7XG4gICAgICBsYXN0ID0gbnVsbDtcbiAgICB9LFxuICAgIG5vdGlmeSgpIHtcbiAgICAgIGRlZmF1bHROb29wQmF0Y2goKCkgPT4ge1xuICAgICAgICBsZXQgbGlzdGVuZXIgPSBmaXJzdDtcbiAgICAgICAgd2hpbGUgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgbGlzdGVuZXIuY2FsbGJhY2soKTtcbiAgICAgICAgICBsaXN0ZW5lciA9IGxpc3RlbmVyLm5leHQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0KCkge1xuICAgICAgY29uc3QgbGlzdGVuZXJzID0gW107XG4gICAgICBsZXQgbGlzdGVuZXIgPSBmaXJzdDtcbiAgICAgIHdoaWxlIChsaXN0ZW5lcikge1xuICAgICAgICBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIGxpc3RlbmVyID0gbGlzdGVuZXIubmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0ZW5lcnM7XG4gICAgfSxcbiAgICBzdWJzY3JpYmUoY2FsbGJhY2spIHtcbiAgICAgIGxldCBpc1N1YnNjcmliZWQgPSB0cnVlO1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBsYXN0ID0ge1xuICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgcHJldjogbGFzdFxuICAgICAgfTtcbiAgICAgIGlmIChsaXN0ZW5lci5wcmV2KSB7XG4gICAgICAgIGxpc3RlbmVyLnByZXYubmV4dCA9IGxpc3RlbmVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlyc3QgPSBsaXN0ZW5lcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgaWYgKCFpc1N1YnNjcmliZWQgfHwgZmlyc3QgPT09IG51bGwpIHJldHVybjtcbiAgICAgICAgaXNTdWJzY3JpYmVkID0gZmFsc2U7XG4gICAgICAgIGlmIChsaXN0ZW5lci5uZXh0KSB7XG4gICAgICAgICAgbGlzdGVuZXIubmV4dC5wcmV2ID0gbGlzdGVuZXIucHJldjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0ID0gbGlzdGVuZXIucHJldjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdGVuZXIucHJldikge1xuICAgICAgICAgIGxpc3RlbmVyLnByZXYubmV4dCA9IGxpc3RlbmVyLm5leHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlyc3QgPSBsaXN0ZW5lci5uZXh0O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn1cbnZhciBudWxsTGlzdGVuZXJzID0ge1xuICBub3RpZnkoKSB7XG4gIH0sXG4gIGdldDogKCkgPT4gW11cbn07XG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpcHRpb24oc3RvcmUsIHBhcmVudFN1Yikge1xuICBsZXQgdW5zdWJzY3JpYmU7XG4gIGxldCBsaXN0ZW5lcnMgPSBudWxsTGlzdGVuZXJzO1xuICBsZXQgc3Vic2NyaXB0aW9uc0Ftb3VudCA9IDA7XG4gIGxldCBzZWxmU3Vic2NyaWJlZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBhZGROZXN0ZWRTdWIobGlzdGVuZXIpIHtcbiAgICB0cnlTdWJzY3JpYmUoKTtcbiAgICBjb25zdCBjbGVhbnVwTGlzdGVuZXIgPSBsaXN0ZW5lcnMuc3Vic2NyaWJlKGxpc3RlbmVyKTtcbiAgICBsZXQgcmVtb3ZlZCA9IGZhbHNlO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIXJlbW92ZWQpIHtcbiAgICAgICAgcmVtb3ZlZCA9IHRydWU7XG4gICAgICAgIGNsZWFudXBMaXN0ZW5lcigpO1xuICAgICAgICB0cnlVbnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbm90aWZ5TmVzdGVkU3VicygpIHtcbiAgICBsaXN0ZW5lcnMubm90aWZ5KCk7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlV3JhcHBlcigpIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9uLm9uU3RhdGVDaGFuZ2UpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi5vblN0YXRlQ2hhbmdlKCk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGlzU3Vic2NyaWJlZCgpIHtcbiAgICByZXR1cm4gc2VsZlN1YnNjcmliZWQ7XG4gIH1cbiAgZnVuY3Rpb24gdHJ5U3Vic2NyaWJlKCkge1xuICAgIHN1YnNjcmlwdGlvbnNBbW91bnQrKztcbiAgICBpZiAoIXVuc3Vic2NyaWJlKSB7XG4gICAgICB1bnN1YnNjcmliZSA9IHBhcmVudFN1YiA/IHBhcmVudFN1Yi5hZGROZXN0ZWRTdWIoaGFuZGxlQ2hhbmdlV3JhcHBlcikgOiBzdG9yZS5zdWJzY3JpYmUoaGFuZGxlQ2hhbmdlV3JhcHBlcik7XG4gICAgICBsaXN0ZW5lcnMgPSBjcmVhdGVMaXN0ZW5lckNvbGxlY3Rpb24oKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gdHJ5VW5zdWJzY3JpYmUoKSB7XG4gICAgc3Vic2NyaXB0aW9uc0Ftb3VudC0tO1xuICAgIGlmICh1bnN1YnNjcmliZSAmJiBzdWJzY3JpcHRpb25zQW1vdW50ID09PSAwKSB7XG4gICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgdW5zdWJzY3JpYmUgPSB2b2lkIDA7XG4gICAgICBsaXN0ZW5lcnMuY2xlYXIoKTtcbiAgICAgIGxpc3RlbmVycyA9IG51bGxMaXN0ZW5lcnM7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHRyeVN1YnNjcmliZVNlbGYoKSB7XG4gICAgaWYgKCFzZWxmU3Vic2NyaWJlZCkge1xuICAgICAgc2VsZlN1YnNjcmliZWQgPSB0cnVlO1xuICAgICAgdHJ5U3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHRyeVVuc3Vic2NyaWJlU2VsZigpIHtcbiAgICBpZiAoc2VsZlN1YnNjcmliZWQpIHtcbiAgICAgIHNlbGZTdWJzY3JpYmVkID0gZmFsc2U7XG4gICAgICB0cnlVbnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgYWRkTmVzdGVkU3ViLFxuICAgIG5vdGlmeU5lc3RlZFN1YnMsXG4gICAgaGFuZGxlQ2hhbmdlV3JhcHBlcixcbiAgICBpc1N1YnNjcmliZWQsXG4gICAgdHJ5U3Vic2NyaWJlOiB0cnlTdWJzY3JpYmVTZWxmLFxuICAgIHRyeVVuc3Vic2NyaWJlOiB0cnlVbnN1YnNjcmliZVNlbGYsXG4gICAgZ2V0TGlzdGVuZXJzOiAoKSA9PiBsaXN0ZW5lcnNcbiAgfTtcbiAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbn1cblxuLy8gc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QudHNcbnZhciBjYW5Vc2VET00gPSAoKSA9PiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSBcInVuZGVmaW5lZFwiKTtcbnZhciBpc0RPTSA9IC8qIEBfX1BVUkVfXyAqLyBjYW5Vc2VET00oKTtcbnZhciBpc1J1bm5pbmdJblJlYWN0TmF0aXZlID0gKCkgPT4gdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gXCJSZWFjdE5hdGl2ZVwiO1xudmFyIGlzUmVhY3ROYXRpdmUgPSAvKiBAX19QVVJFX18gKi8gaXNSdW5uaW5nSW5SZWFjdE5hdGl2ZSgpO1xudmFyIGdldFVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSAoKSA9PiBpc0RPTSB8fCBpc1JlYWN0TmF0aXZlID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogUmVhY3QudXNlRWZmZWN0O1xudmFyIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSAvKiBAX19QVVJFX18gKi8gZ2V0VXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgpO1xuXG4vLyBzcmMvdXRpbHMvc2hhbGxvd0VxdWFsLnRzXG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgfHwgeSAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgfVxufVxuZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakEsIG9iakIpIHtcbiAgaWYgKGlzKG9iakEsIG9iakIpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiBvYmpBICE9PSBcIm9iamVjdFwiIHx8IG9iakEgPT09IG51bGwgfHwgdHlwZW9mIG9iakIgIT09IFwib2JqZWN0XCIgfHwgb2JqQiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iakIsIGtleXNBW2ldKSB8fCAhaXMob2JqQVtrZXlzQVtpXV0sIG9iakJba2V5c0FbaV1dKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLy8gc3JjL3V0aWxzL2hvaXN0U3RhdGljcy50c1xudmFyIFJFQUNUX1NUQVRJQ1MgPSB7XG4gIGNoaWxkQ29udGV4dFR5cGVzOiB0cnVlLFxuICBjb250ZXh0VHlwZTogdHJ1ZSxcbiAgY29udGV4dFR5cGVzOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBnZXREZWZhdWx0UHJvcHM6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiB0cnVlLFxuICBtaXhpbnM6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBLTk9XTl9TVEFUSUNTID0ge1xuICBuYW1lOiB0cnVlLFxuICBsZW5ndGg6IHRydWUsXG4gIHByb3RvdHlwZTogdHJ1ZSxcbiAgY2FsbGVyOiB0cnVlLFxuICBjYWxsZWU6IHRydWUsXG4gIGFyZ3VtZW50czogdHJ1ZSxcbiAgYXJpdHk6IHRydWVcbn07XG52YXIgRk9SV0FSRF9SRUZfU1RBVElDUyA9IHtcbiAgJCR0eXBlb2Y6IHRydWUsXG4gIHJlbmRlcjogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlXG59O1xudmFyIE1FTU9fU1RBVElDUyA9IHtcbiAgJCR0eXBlb2Y6IHRydWUsXG4gIGNvbXBhcmU6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBUWVBFX1NUQVRJQ1MgPSB7XG4gIFtGb3J3YXJkUmVmXTogRk9SV0FSRF9SRUZfU1RBVElDUyxcbiAgW01lbW9dOiBNRU1PX1NUQVRJQ1Ncbn07XG5mdW5jdGlvbiBnZXRTdGF0aWNzKGNvbXBvbmVudCkge1xuICBpZiAoaXNNZW1vKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gTUVNT19TVEFUSUNTO1xuICB9XG4gIHJldHVybiBUWVBFX1NUQVRJQ1NbY29tcG9uZW50W1wiJCR0eXBlb2ZcIl1dIHx8IFJFQUNUX1NUQVRJQ1M7XG59XG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBvYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQpIHtcbiAgaWYgKHR5cGVvZiBzb3VyY2VDb21wb25lbnQgIT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAob2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICBjb25zdCBpbmhlcml0ZWRDb21wb25lbnQgPSBnZXRQcm90b3R5cGVPZihzb3VyY2VDb21wb25lbnQpO1xuICAgICAgaWYgKGluaGVyaXRlZENvbXBvbmVudCAmJiBpbmhlcml0ZWRDb21wb25lbnQgIT09IG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgICBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIGluaGVyaXRlZENvbXBvbmVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuICAgIGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgIGtleXMgPSBrZXlzLmNvbmNhdChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlQ29tcG9uZW50KSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldFN0YXRpY3MgPSBnZXRTdGF0aWNzKHRhcmdldENvbXBvbmVudCk7XG4gICAgY29uc3Qgc291cmNlU3RhdGljcyA9IGdldFN0YXRpY3Moc291cmNlQ29tcG9uZW50KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoIUtOT1dOX1NUQVRJQ1Nba2V5XSAmJiAhKHNvdXJjZVN0YXRpY3MgJiYgc291cmNlU3RhdGljc1trZXldKSAmJiAhKHRhcmdldFN0YXRpY3MgJiYgdGFyZ2V0U3RhdGljc1trZXldKSkge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZUNvbXBvbmVudCwga2V5KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXRDb21wb25lbnQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdGFyZ2V0Q29tcG9uZW50O1xufVxuXG4vLyBzcmMvY29tcG9uZW50cy9Db250ZXh0LnRzXG52YXIgQ29udGV4dEtleSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKGByZWFjdC1yZWR1eC1jb250ZXh0YCk7XG52YXIgZ1QgPSB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFRoaXMgOiAoXG4gIC8qIGZhbGwgYmFjayB0byBhIHBlci1tb2R1bGUgc2NvcGUgKHByZS04LjEgYmVoYXZpb3VyKSBpZiBgZ2xvYmFsVGhpc2AgaXMgbm90IGF2YWlsYWJsZSAqL1xuICB7fVxuKTtcbmZ1bmN0aW9uIGdldENvbnRleHQoKSB7XG4gIGlmICghUmVhY3QuY3JlYXRlQ29udGV4dCkgcmV0dXJuIHt9O1xuICBjb25zdCBjb250ZXh0TWFwID0gZ1RbQ29udGV4dEtleV0gPz89IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGxldCByZWFsQ29udGV4dCA9IGNvbnRleHRNYXAuZ2V0KFJlYWN0LmNyZWF0ZUNvbnRleHQpO1xuICBpZiAoIXJlYWxDb250ZXh0KSB7XG4gICAgcmVhbENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgcmVhbENvbnRleHQuZGlzcGxheU5hbWUgPSBcIlJlYWN0UmVkdXhcIjtcbiAgICB9XG4gICAgY29udGV4dE1hcC5zZXQoUmVhY3QuY3JlYXRlQ29udGV4dCwgcmVhbENvbnRleHQpO1xuICB9XG4gIHJldHVybiByZWFsQ29udGV4dDtcbn1cbnZhciBSZWFjdFJlZHV4Q29udGV4dCA9IC8qIEBfX1BVUkVfXyAqLyBnZXRDb250ZXh0KCk7XG5cbi8vIHNyYy9jb21wb25lbnRzL2Nvbm5lY3QudHN4XG52YXIgTk9fU1VCU0NSSVBUSU9OX0FSUkFZID0gW251bGwsIG51bGxdO1xudmFyIHN0cmluZ2lmeUNvbXBvbmVudCA9IChDb21wKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KENvbXApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gU3RyaW5nKENvbXApO1xuICB9XG59O1xuZnVuY3Rpb24gdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdFdpdGhBcmdzKGVmZmVjdEZ1bmMsIGVmZmVjdEFyZ3MsIGRlcGVuZGVuY2llcykge1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IGVmZmVjdEZ1bmMoLi4uZWZmZWN0QXJncyksIGRlcGVuZGVuY2llcyk7XG59XG5mdW5jdGlvbiBjYXB0dXJlV3JhcHBlclByb3BzKGxhc3RXcmFwcGVyUHJvcHMsIGxhc3RDaGlsZFByb3BzLCByZW5kZXJJc1NjaGVkdWxlZCwgd3JhcHBlclByb3BzLCBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLCBub3RpZnlOZXN0ZWRTdWJzKSB7XG4gIGxhc3RXcmFwcGVyUHJvcHMuY3VycmVudCA9IHdyYXBwZXJQcm9wcztcbiAgcmVuZGVySXNTY2hlZHVsZWQuY3VycmVudCA9IGZhbHNlO1xuICBpZiAoY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZS5jdXJyZW50KSB7XG4gICAgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZS5jdXJyZW50ID0gbnVsbDtcbiAgICBub3RpZnlOZXN0ZWRTdWJzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHN1YnNjcmliZVVwZGF0ZXMoc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzLCBzdG9yZSwgc3Vic2NyaXB0aW9uLCBjaGlsZFByb3BzU2VsZWN0b3IsIGxhc3RXcmFwcGVyUHJvcHMsIGxhc3RDaGlsZFByb3BzLCByZW5kZXJJc1NjaGVkdWxlZCwgaXNNb3VudGVkLCBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLCBub3RpZnlOZXN0ZWRTdWJzLCBhZGRpdGlvbmFsU3Vic2NyaWJlTGlzdGVuZXIpIHtcbiAgaWYgKCFzaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMpIHJldHVybiAoKSA9PiB7XG4gIH07XG4gIGxldCBkaWRVbnN1YnNjcmliZSA9IGZhbHNlO1xuICBsZXQgbGFzdFRocm93bkVycm9yID0gbnVsbDtcbiAgY29uc3QgY2hlY2tGb3JVcGRhdGVzID0gKCkgPT4ge1xuICAgIGlmIChkaWRVbnN1YnNjcmliZSB8fCAhaXNNb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGF0ZXN0U3RvcmVTdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG4gICAgbGV0IG5ld0NoaWxkUHJvcHMsIGVycm9yO1xuICAgIHRyeSB7XG4gICAgICBuZXdDaGlsZFByb3BzID0gY2hpbGRQcm9wc1NlbGVjdG9yKFxuICAgICAgICBsYXRlc3RTdG9yZVN0YXRlLFxuICAgICAgICBsYXN0V3JhcHBlclByb3BzLmN1cnJlbnRcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyb3IgPSBlO1xuICAgICAgbGFzdFRocm93bkVycm9yID0gZTtcbiAgICB9XG4gICAgaWYgKCFlcnJvcikge1xuICAgICAgbGFzdFRocm93bkVycm9yID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5ld0NoaWxkUHJvcHMgPT09IGxhc3RDaGlsZFByb3BzLmN1cnJlbnQpIHtcbiAgICAgIGlmICghcmVuZGVySXNTY2hlZHVsZWQuY3VycmVudCkge1xuICAgICAgICBub3RpZnlOZXN0ZWRTdWJzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RDaGlsZFByb3BzLmN1cnJlbnQgPSBuZXdDaGlsZFByb3BzO1xuICAgICAgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZS5jdXJyZW50ID0gbmV3Q2hpbGRQcm9wcztcbiAgICAgIHJlbmRlcklzU2NoZWR1bGVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgYWRkaXRpb25hbFN1YnNjcmliZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9O1xuICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSA9IGNoZWNrRm9yVXBkYXRlcztcbiAgc3Vic2NyaXB0aW9uLnRyeVN1YnNjcmliZSgpO1xuICBjaGVja0ZvclVwZGF0ZXMoKTtcbiAgY29uc3QgdW5zdWJzY3JpYmVXcmFwcGVyID0gKCkgPT4ge1xuICAgIGRpZFVuc3Vic2NyaWJlID0gdHJ1ZTtcbiAgICBzdWJzY3JpcHRpb24udHJ5VW5zdWJzY3JpYmUoKTtcbiAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSA9IG51bGw7XG4gICAgaWYgKGxhc3RUaHJvd25FcnJvcikge1xuICAgICAgdGhyb3cgbGFzdFRocm93bkVycm9yO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHVuc3Vic2NyaWJlV3JhcHBlcjtcbn1cbmZ1bmN0aW9uIHN0cmljdEVxdWFsKGEsIGIpIHtcbiAgcmV0dXJuIGEgPT09IGI7XG59XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkUHVyZU9wdGlvbiA9IGZhbHNlO1xuZnVuY3Rpb24gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcywgbWVyZ2VQcm9wcywge1xuICAvLyBUaGUgYHB1cmVgIG9wdGlvbiBoYXMgYmVlbiByZW1vdmVkLCBzbyBUUyBkb2Vzbid0IGxpa2UgdXMgZGVzdHJ1Y3R1cmluZyB0aGlzIHRvIGNoZWNrIGl0cyBleGlzdGVuY2UuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcHVyZSxcbiAgYXJlU3RhdGVzRXF1YWwgPSBzdHJpY3RFcXVhbCxcbiAgYXJlT3duUHJvcHNFcXVhbCA9IHNoYWxsb3dFcXVhbCxcbiAgYXJlU3RhdGVQcm9wc0VxdWFsID0gc2hhbGxvd0VxdWFsLFxuICBhcmVNZXJnZWRQcm9wc0VxdWFsID0gc2hhbGxvd0VxdWFsLFxuICAvLyB1c2UgUmVhY3QncyBmb3J3YXJkUmVmIHRvIGV4cG9zZSBhIHJlZiBvZiB0aGUgd3JhcHBlZCBjb21wb25lbnRcbiAgZm9yd2FyZFJlZiA9IGZhbHNlLFxuICAvLyB0aGUgY29udGV4dCBjb25zdW1lciB0byB1c2VcbiAgY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0XG59ID0ge30pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmIChwdXJlICE9PSB2b2lkIDAgJiYgIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZFB1cmVPcHRpb24pIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZFB1cmVPcHRpb24gPSB0cnVlO1xuICAgICAgd2FybmluZyhcbiAgICAgICAgJ1RoZSBgcHVyZWAgb3B0aW9uIGhhcyBiZWVuIHJlbW92ZWQuIGBjb25uZWN0YCBpcyBub3cgYWx3YXlzIGEgXCJwdXJlL21lbW9pemVkXCIgY29tcG9uZW50J1xuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgQ29udGV4dCA9IGNvbnRleHQ7XG4gIGNvbnN0IGluaXRNYXBTdGF0ZVRvUHJvcHMgPSBtYXBTdGF0ZVRvUHJvcHNGYWN0b3J5KG1hcFN0YXRlVG9Qcm9wcyk7XG4gIGNvbnN0IGluaXRNYXBEaXNwYXRjaFRvUHJvcHMgPSBtYXBEaXNwYXRjaFRvUHJvcHNGYWN0b3J5KG1hcERpc3BhdGNoVG9Qcm9wcyk7XG4gIGNvbnN0IGluaXRNZXJnZVByb3BzID0gbWVyZ2VQcm9wc0ZhY3RvcnkobWVyZ2VQcm9wcyk7XG4gIGNvbnN0IHNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcyA9IEJvb2xlYW4obWFwU3RhdGVUb1Byb3BzKTtcbiAgY29uc3Qgd3JhcFdpdGhDb25uZWN0ID0gKFdyYXBwZWRDb21wb25lbnQpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gLyogQF9fUFVSRV9fICovIGlzVmFsaWRFbGVtZW50VHlwZShXcmFwcGVkQ29tcG9uZW50KTtcbiAgICAgIGlmICghaXNWYWxpZClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBZb3UgbXVzdCBwYXNzIGEgY29tcG9uZW50IHRvIHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBjb25uZWN0LiBJbnN0ZWFkIHJlY2VpdmVkICR7c3RyaW5naWZ5Q29tcG9uZW50KFxuICAgICAgICAgICAgV3JhcHBlZENvbXBvbmVudFxuICAgICAgICAgICl9YFxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCB3cmFwcGVkQ29tcG9uZW50TmFtZSA9IFdyYXBwZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgV3JhcHBlZENvbXBvbmVudC5uYW1lIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSBgQ29ubmVjdCgke3dyYXBwZWRDb21wb25lbnROYW1lfSlgO1xuICAgIGNvbnN0IHNlbGVjdG9yRmFjdG9yeU9wdGlvbnMgPSB7XG4gICAgICBzaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMsXG4gICAgICBkaXNwbGF5TmFtZSxcbiAgICAgIHdyYXBwZWRDb21wb25lbnROYW1lLFxuICAgICAgV3JhcHBlZENvbXBvbmVudCxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGluaXRNYXBTdGF0ZVRvUHJvcHMsXG4gICAgICBpbml0TWFwRGlzcGF0Y2hUb1Byb3BzLFxuICAgICAgaW5pdE1lcmdlUHJvcHMsXG4gICAgICBhcmVTdGF0ZXNFcXVhbCxcbiAgICAgIGFyZVN0YXRlUHJvcHNFcXVhbCxcbiAgICAgIGFyZU93blByb3BzRXF1YWwsXG4gICAgICBhcmVNZXJnZWRQcm9wc0VxdWFsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBDb25uZWN0RnVuY3Rpb24ocHJvcHMpIHtcbiAgICAgIGNvbnN0IFtwcm9wc0NvbnRleHQsIHJlYWN0UmVkdXhGb3J3YXJkZWRSZWYsIHdyYXBwZXJQcm9wc10gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZWFjdFJlZHV4Rm9yd2FyZGVkUmVmOiByZWFjdFJlZHV4Rm9yd2FyZGVkUmVmMiwgLi4ud3JhcHBlclByb3BzMiB9ID0gcHJvcHM7XG4gICAgICAgIHJldHVybiBbcHJvcHMuY29udGV4dCwgcmVhY3RSZWR1eEZvcndhcmRlZFJlZjIsIHdyYXBwZXJQcm9wczJdO1xuICAgICAgfSwgW3Byb3BzXSk7XG4gICAgICBjb25zdCBDb250ZXh0VG9Vc2UgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IFJlc3VsdENvbnRleHQgPSBDb250ZXh0O1xuICAgICAgICBpZiAocHJvcHNDb250ZXh0Py5Db25zdW1lcikge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAvKiBAX19QVVJFX18gKi8gaXNDb250ZXh0Q29uc3VtZXIoXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQocHJvcHNDb250ZXh0LkNvbnN1bWVyLCBudWxsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBwYXNzIGEgdmFsaWQgUmVhY3QgY29udGV4dCBjb25zdW1lciBhcyBgcHJvcHMuY29udGV4dGBcIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUmVzdWx0Q29udGV4dCA9IHByb3BzQ29udGV4dDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlc3VsdENvbnRleHQ7XG4gICAgICB9LCBbcHJvcHNDb250ZXh0LCBDb250ZXh0XSk7XG4gICAgICBjb25zdCBjb250ZXh0VmFsdWUgPSBSZWFjdC51c2VDb250ZXh0KENvbnRleHRUb1VzZSk7XG4gICAgICBjb25zdCBkaWRTdG9yZUNvbWVGcm9tUHJvcHMgPSBCb29sZWFuKHByb3BzLnN0b3JlKSAmJiBCb29sZWFuKHByb3BzLnN0b3JlLmdldFN0YXRlKSAmJiBCb29sZWFuKHByb3BzLnN0b3JlLmRpc3BhdGNoKTtcbiAgICAgIGNvbnN0IGRpZFN0b3JlQ29tZUZyb21Db250ZXh0ID0gQm9vbGVhbihjb250ZXh0VmFsdWUpICYmIEJvb2xlYW4oY29udGV4dFZhbHVlLnN0b3JlKTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiYgIWRpZFN0b3JlQ29tZUZyb21Qcm9wcyAmJiAhZGlkU3RvcmVDb21lRnJvbUNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDb3VsZCBub3QgZmluZCBcInN0b3JlXCIgaW4gdGhlIGNvbnRleHQgb2YgXCIke2Rpc3BsYXlOYW1lfVwiLiBFaXRoZXIgd3JhcCB0aGUgcm9vdCBjb21wb25lbnQgaW4gYSA8UHJvdmlkZXI+LCBvciBwYXNzIGEgY3VzdG9tIFJlYWN0IGNvbnRleHQgcHJvdmlkZXIgdG8gPFByb3ZpZGVyPiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgUmVhY3QgY29udGV4dCBjb25zdW1lciB0byAke2Rpc3BsYXlOYW1lfSBpbiBjb25uZWN0IG9wdGlvbnMuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RvcmUgPSBkaWRTdG9yZUNvbWVGcm9tUHJvcHMgPyBwcm9wcy5zdG9yZSA6IGNvbnRleHRWYWx1ZS5zdG9yZTtcbiAgICAgIGNvbnN0IGdldFNlcnZlclN0YXRlID0gZGlkU3RvcmVDb21lRnJvbUNvbnRleHQgPyBjb250ZXh0VmFsdWUuZ2V0U2VydmVyU3RhdGUgOiBzdG9yZS5nZXRTdGF0ZTtcbiAgICAgIGNvbnN0IGNoaWxkUHJvcHNTZWxlY3RvciA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gZmluYWxQcm9wc1NlbGVjdG9yRmFjdG9yeShzdG9yZS5kaXNwYXRjaCwgc2VsZWN0b3JGYWN0b3J5T3B0aW9ucyk7XG4gICAgICB9LCBbc3RvcmVdKTtcbiAgICAgIGNvbnN0IFtzdWJzY3JpcHRpb24sIG5vdGlmeU5lc3RlZFN1YnNdID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzKSByZXR1cm4gTk9fU1VCU0NSSVBUSU9OX0FSUkFZO1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24yID0gY3JlYXRlU3Vic2NyaXB0aW9uKFxuICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgIGRpZFN0b3JlQ29tZUZyb21Qcm9wcyA/IHZvaWQgMCA6IGNvbnRleHRWYWx1ZS5zdWJzY3JpcHRpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgbm90aWZ5TmVzdGVkU3ViczIgPSBzdWJzY3JpcHRpb24yLm5vdGlmeU5lc3RlZFN1YnMuYmluZChzdWJzY3JpcHRpb24yKTtcbiAgICAgICAgcmV0dXJuIFtzdWJzY3JpcHRpb24yLCBub3RpZnlOZXN0ZWRTdWJzMl07XG4gICAgICB9LCBbc3RvcmUsIGRpZFN0b3JlQ29tZUZyb21Qcm9wcywgY29udGV4dFZhbHVlXSk7XG4gICAgICBjb25zdCBvdmVycmlkZGVuQ29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChkaWRTdG9yZUNvbWVGcm9tUHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29udGV4dFZhbHVlLFxuICAgICAgICAgIHN1YnNjcmlwdGlvblxuICAgICAgICB9O1xuICAgICAgfSwgW2RpZFN0b3JlQ29tZUZyb21Qcm9wcywgY29udGV4dFZhbHVlLCBzdWJzY3JpcHRpb25dKTtcbiAgICAgIGNvbnN0IGxhc3RDaGlsZFByb3BzID0gUmVhY3QudXNlUmVmKHZvaWQgMCk7XG4gICAgICBjb25zdCBsYXN0V3JhcHBlclByb3BzID0gUmVhY3QudXNlUmVmKHdyYXBwZXJQcm9wcyk7XG4gICAgICBjb25zdCBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlID0gUmVhY3QudXNlUmVmKHZvaWQgMCk7XG4gICAgICBjb25zdCByZW5kZXJJc1NjaGVkdWxlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgICBjb25zdCBpc01vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgICAgY29uc3QgbGF0ZXN0U3Vic2NyaXB0aW9uQ2FsbGJhY2tFcnJvciA9IFJlYWN0LnVzZVJlZihcbiAgICAgICAgdm9pZCAwXG4gICAgICApO1xuICAgICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBpc01vdW50ZWQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgfSwgW10pO1xuICAgICAgY29uc3QgYWN0dWFsQ2hpbGRQcm9wc1NlbGVjdG9yID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLmN1cnJlbnQgJiYgd3JhcHBlclByb3BzID09PSBsYXN0V3JhcHBlclByb3BzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLmN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjaGlsZFByb3BzU2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSwgd3JhcHBlclByb3BzKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yO1xuICAgICAgfSwgW3N0b3JlLCB3cmFwcGVyUHJvcHNdKTtcbiAgICAgIGNvbnN0IHN1YnNjcmliZUZvclJlYWN0ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmliZSA9IChyZWFjdExpc3RlbmVyKSA9PiB7XG4gICAgICAgICAgaWYgKCFzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlVXBkYXRlcyhcbiAgICAgICAgICAgIHNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcyxcbiAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY2hpbGRQcm9wc1NlbGVjdG9yLFxuICAgICAgICAgICAgbGFzdFdyYXBwZXJQcm9wcyxcbiAgICAgICAgICAgIGxhc3RDaGlsZFByb3BzLFxuICAgICAgICAgICAgcmVuZGVySXNTY2hlZHVsZWQsXG4gICAgICAgICAgICBpc01vdW50ZWQsXG4gICAgICAgICAgICBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLFxuICAgICAgICAgICAgbm90aWZ5TmVzdGVkU3VicyxcbiAgICAgICAgICAgIHJlYWN0TGlzdGVuZXJcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3Vic2NyaWJlO1xuICAgICAgfSwgW3N1YnNjcmlwdGlvbl0pO1xuICAgICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdFdpdGhBcmdzKGNhcHR1cmVXcmFwcGVyUHJvcHMsIFtcbiAgICAgICAgbGFzdFdyYXBwZXJQcm9wcyxcbiAgICAgICAgbGFzdENoaWxkUHJvcHMsXG4gICAgICAgIHJlbmRlcklzU2NoZWR1bGVkLFxuICAgICAgICB3cmFwcGVyUHJvcHMsXG4gICAgICAgIGNoaWxkUHJvcHNGcm9tU3RvcmVVcGRhdGUsXG4gICAgICAgIG5vdGlmeU5lc3RlZFN1YnNcbiAgICAgIF0pO1xuICAgICAgbGV0IGFjdHVhbENoaWxkUHJvcHM7XG4gICAgICB0cnkge1xuICAgICAgICBhY3R1YWxDaGlsZFByb3BzID0gUmVhY3QudXNlU3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgICAgLy8gVE9ETyBXZSdyZSBwYXNzaW5nIHRocm91Z2ggYSBiaWcgd3JhcHBlciB0aGF0IGRvZXMgYSBidW5jaCBvZiBleHRyYSBzaWRlIGVmZmVjdHMgYmVzaWRlcyBzdWJzY3JpYmluZ1xuICAgICAgICAgIHN1YnNjcmliZUZvclJlYWN0LFxuICAgICAgICAgIC8vIFRPRE8gVGhpcyBpcyBpbmNyZWRpYmx5IGhhY2t5LiBXZSd2ZSBhbHJlYWR5IHByb2Nlc3NlZCB0aGUgc3RvcmUgdXBkYXRlIGFuZCBjYWxjdWxhdGVkIG5ldyBjaGlsZCBwcm9wcyxcbiAgICAgICAgICAvLyBUT0RPIGFuZCB3ZSdyZSBqdXN0IHBhc3NpbmcgdGhhdCB0aHJvdWdoIHNvIGl0IHRyaWdnZXJzIGEgcmUtcmVuZGVyIGZvciB1cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGB1U0VTYC5cbiAgICAgICAgICBhY3R1YWxDaGlsZFByb3BzU2VsZWN0b3IsXG4gICAgICAgICAgZ2V0U2VydmVyU3RhdGUgPyAoKSA9PiBjaGlsZFByb3BzU2VsZWN0b3IoZ2V0U2VydmVyU3RhdGUoKSwgd3JhcHBlclByb3BzKSA6IGFjdHVhbENoaWxkUHJvcHNTZWxlY3RvclxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChsYXRlc3RTdWJzY3JpcHRpb25DYWxsYmFja0Vycm9yLmN1cnJlbnQpIHtcbiAgICAgICAgICA7XG4gICAgICAgICAgZXJyLm1lc3NhZ2UgKz0gYFxuVGhlIGVycm9yIG1heSBiZSBjb3JyZWxhdGVkIHdpdGggdGhpcyBwcmV2aW91cyBlcnJvcjpcbiR7bGF0ZXN0U3Vic2NyaXB0aW9uQ2FsbGJhY2tFcnJvci5jdXJyZW50LnN0YWNrfVxuXG5gO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsYXRlc3RTdWJzY3JpcHRpb25DYWxsYmFja0Vycm9yLmN1cnJlbnQgPSB2b2lkIDA7XG4gICAgICAgIGNoaWxkUHJvcHNGcm9tU3RvcmVVcGRhdGUuY3VycmVudCA9IHZvaWQgMDtcbiAgICAgICAgbGFzdENoaWxkUHJvcHMuY3VycmVudCA9IGFjdHVhbENoaWxkUHJvcHM7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlbmRlcmVkV3JhcHBlZENvbXBvbmVudCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFdyYXBwZWRDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLmFjdHVhbENoaWxkUHJvcHMsXG4gICAgICAgICAgICAgIHJlZjogcmVhY3RSZWR1eEZvcndhcmRlZFJlZlxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0sIFtyZWFjdFJlZHV4Rm9yd2FyZGVkUmVmLCBXcmFwcGVkQ29tcG9uZW50LCBhY3R1YWxDaGlsZFByb3BzXSk7XG4gICAgICBjb25zdCByZW5kZXJlZENoaWxkID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMpIHtcbiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGV4dFRvVXNlLlByb3ZpZGVyLCB7IHZhbHVlOiBvdmVycmlkZGVuQ29udGV4dFZhbHVlIH0sIHJlbmRlcmVkV3JhcHBlZENvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlcmVkV3JhcHBlZENvbXBvbmVudDtcbiAgICAgIH0sIFtDb250ZXh0VG9Vc2UsIHJlbmRlcmVkV3JhcHBlZENvbXBvbmVudCwgb3ZlcnJpZGRlbkNvbnRleHRWYWx1ZV0pO1xuICAgICAgcmV0dXJuIHJlbmRlcmVkQ2hpbGQ7XG4gICAgfVxuICAgIGNvbnN0IF9Db25uZWN0ID0gUmVhY3QubWVtbyhDb25uZWN0RnVuY3Rpb24pO1xuICAgIGNvbnN0IENvbm5lY3QgPSBfQ29ubmVjdDtcbiAgICBDb25uZWN0LldyYXBwZWRDb21wb25lbnQgPSBXcmFwcGVkQ29tcG9uZW50O1xuICAgIENvbm5lY3QuZGlzcGxheU5hbWUgPSBDb25uZWN0RnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZTtcbiAgICBpZiAoZm9yd2FyZFJlZikge1xuICAgICAgY29uc3QgX2ZvcndhcmRlZCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gICAgICAgIGZ1bmN0aW9uIGZvcndhcmRDb25uZWN0UmVmKHByb3BzLCByZWYpIHtcbiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29ubmVjdCwgeyAuLi5wcm9wcywgcmVhY3RSZWR1eEZvcndhcmRlZFJlZjogcmVmIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY29uc3QgZm9yd2FyZGVkID0gX2ZvcndhcmRlZDtcbiAgICAgIGZvcndhcmRlZC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lO1xuICAgICAgZm9yd2FyZGVkLldyYXBwZWRDb21wb25lbnQgPSBXcmFwcGVkQ29tcG9uZW50O1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBob2lzdE5vblJlYWN0U3RhdGljcyhmb3J3YXJkZWQsIFdyYXBwZWRDb21wb25lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKENvbm5lY3QsIFdyYXBwZWRDb21wb25lbnQpO1xuICB9O1xuICByZXR1cm4gd3JhcFdpdGhDb25uZWN0O1xufVxudmFyIGNvbm5lY3RfZGVmYXVsdCA9IGNvbm5lY3Q7XG5cbi8vIHNyYy9jb21wb25lbnRzL1Byb3ZpZGVyLnRzeFxuZnVuY3Rpb24gUHJvdmlkZXIocHJvdmlkZXJQcm9wcykge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjb250ZXh0LCBzZXJ2ZXJTdGF0ZSwgc3RvcmUgfSA9IHByb3ZpZGVyUHJvcHM7XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihzdG9yZSk7XG4gICAgY29uc3QgYmFzZUNvbnRleHRWYWx1ZSA9IHtcbiAgICAgIHN0b3JlLFxuICAgICAgc3Vic2NyaXB0aW9uLFxuICAgICAgZ2V0U2VydmVyU3RhdGU6IHNlcnZlclN0YXRlID8gKCkgPT4gc2VydmVyU3RhdGUgOiB2b2lkIDBcbiAgICB9O1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBiYXNlQ29udGV4dFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IGlkZW50aXR5RnVuY3Rpb25DaGVjayA9IFwib25jZVwiLCBzdGFiaWxpdHlDaGVjayA9IFwib25jZVwiIH0gPSBwcm92aWRlclByb3BzO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuYXNzaWduKGJhc2VDb250ZXh0VmFsdWUsIHtcbiAgICAgICAgc3RhYmlsaXR5Q2hlY2ssXG4gICAgICAgIGlkZW50aXR5RnVuY3Rpb25DaGVja1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc3RvcmUsIHNlcnZlclN0YXRlXSk7XG4gIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN0b3JlLmdldFN0YXRlKCksIFtzdG9yZV0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IHN1YnNjcmlwdGlvbiB9ID0gY29udGV4dFZhbHVlO1xuICAgIHN1YnNjcmlwdGlvbi5vblN0YXRlQ2hhbmdlID0gc3Vic2NyaXB0aW9uLm5vdGlmeU5lc3RlZFN1YnM7XG4gICAgc3Vic2NyaXB0aW9uLnRyeVN1YnNjcmliZSgpO1xuICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSBzdG9yZS5nZXRTdGF0ZSgpKSB7XG4gICAgICBzdWJzY3JpcHRpb24ubm90aWZ5TmVzdGVkU3VicygpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnRyeVVuc3Vic2NyaWJlKCk7XG4gICAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSA9IHZvaWQgMDtcbiAgICB9O1xuICB9LCBbY29udGV4dFZhbHVlLCBwcmV2aW91c1N0YXRlXSk7XG4gIGNvbnN0IENvbnRleHQgPSBjb250ZXh0IHx8IFJlYWN0UmVkdXhDb250ZXh0O1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sIGNoaWxkcmVuKTtcbn1cbnZhciBQcm92aWRlcl9kZWZhdWx0ID0gUHJvdmlkZXI7XG5cbi8vIHNyYy9ob29rcy91c2VSZWR1eENvbnRleHQudHNcbmZ1bmN0aW9uIGNyZWF0ZVJlZHV4Q29udGV4dEhvb2soY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0KSB7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VSZWR1eENvbnRleHQyKCkge1xuICAgIGNvbnN0IGNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZUNvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiAhY29udGV4dFZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiY291bGQgbm90IGZpbmQgcmVhY3QtcmVkdXggY29udGV4dCB2YWx1ZTsgcGxlYXNlIGVuc3VyZSB0aGUgY29tcG9uZW50IGlzIHdyYXBwZWQgaW4gYSA8UHJvdmlkZXI+XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0VmFsdWU7XG4gIH07XG59XG52YXIgdXNlUmVkdXhDb250ZXh0ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlZHV4Q29udGV4dEhvb2soKTtcblxuLy8gc3JjL2hvb2tzL3VzZVN0b3JlLnRzXG5mdW5jdGlvbiBjcmVhdGVTdG9yZUhvb2soY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0KSB7XG4gIGNvbnN0IHVzZVJlZHV4Q29udGV4dDIgPSBjb250ZXh0ID09PSBSZWFjdFJlZHV4Q29udGV4dCA/IHVzZVJlZHV4Q29udGV4dCA6IChcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY3JlYXRlUmVkdXhDb250ZXh0SG9vayhjb250ZXh0KVxuICApO1xuICBjb25zdCB1c2VTdG9yZTIgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBzdG9yZSB9ID0gdXNlUmVkdXhDb250ZXh0MigpO1xuICAgIHJldHVybiBzdG9yZTtcbiAgfTtcbiAgT2JqZWN0LmFzc2lnbih1c2VTdG9yZTIsIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IHVzZVN0b3JlMlxuICB9KTtcbiAgcmV0dXJuIHVzZVN0b3JlMjtcbn1cbnZhciB1c2VTdG9yZSA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVTdG9yZUhvb2soKTtcblxuLy8gc3JjL2hvb2tzL3VzZURpc3BhdGNoLnRzXG5mdW5jdGlvbiBjcmVhdGVEaXNwYXRjaEhvb2soY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0KSB7XG4gIGNvbnN0IHVzZVN0b3JlMiA9IGNvbnRleHQgPT09IFJlYWN0UmVkdXhDb250ZXh0ID8gdXNlU3RvcmUgOiBjcmVhdGVTdG9yZUhvb2soY29udGV4dCk7XG4gIGNvbnN0IHVzZURpc3BhdGNoMiA9ICgpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVN0b3JlMigpO1xuICAgIHJldHVybiBzdG9yZS5kaXNwYXRjaDtcbiAgfTtcbiAgT2JqZWN0LmFzc2lnbih1c2VEaXNwYXRjaDIsIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IHVzZURpc3BhdGNoMlxuICB9KTtcbiAgcmV0dXJuIHVzZURpc3BhdGNoMjtcbn1cbnZhciB1c2VEaXNwYXRjaCA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVEaXNwYXRjaEhvb2soKTtcblxuLy8gc3JjL2hvb2tzL3VzZVNlbGVjdG9yLnRzXG5pbXBvcnQgeyB1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciB9IGZyb20gXCJ1c2Utc3luYy1leHRlcm5hbC1zdG9yZS93aXRoLXNlbGVjdG9yLmpzXCI7XG52YXIgcmVmRXF1YWxpdHkgPSAoYSwgYikgPT4gYSA9PT0gYjtcbmZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9ySG9vayhjb250ZXh0ID0gUmVhY3RSZWR1eENvbnRleHQpIHtcbiAgY29uc3QgdXNlUmVkdXhDb250ZXh0MiA9IGNvbnRleHQgPT09IFJlYWN0UmVkdXhDb250ZXh0ID8gdXNlUmVkdXhDb250ZXh0IDogY3JlYXRlUmVkdXhDb250ZXh0SG9vayhjb250ZXh0KTtcbiAgY29uc3QgdXNlU2VsZWN0b3IyID0gKHNlbGVjdG9yLCBlcXVhbGl0eUZuT3JPcHRpb25zID0ge30pID0+IHtcbiAgICBjb25zdCB7IGVxdWFsaXR5Rm4gPSByZWZFcXVhbGl0eSB9ID0gdHlwZW9mIGVxdWFsaXR5Rm5Pck9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIiA/IHsgZXF1YWxpdHlGbjogZXF1YWxpdHlGbk9yT3B0aW9ucyB9IDogZXF1YWxpdHlGbk9yT3B0aW9ucztcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgWW91IG11c3QgcGFzcyBhIHNlbGVjdG9yIHRvIHVzZVNlbGVjdG9yYCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHNlbGVjdG9yICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbXVzdCBwYXNzIGEgZnVuY3Rpb24gYXMgYSBzZWxlY3RvciB0byB1c2VTZWxlY3RvcmApO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBlcXVhbGl0eUZuICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBZb3UgbXVzdCBwYXNzIGEgZnVuY3Rpb24gYXMgYW4gZXF1YWxpdHkgZnVuY3Rpb24gdG8gdXNlU2VsZWN0b3JgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlZHV4Q29udGV4dCA9IHVzZVJlZHV4Q29udGV4dDIoKTtcbiAgICBjb25zdCB7IHN0b3JlLCBzdWJzY3JpcHRpb24sIGdldFNlcnZlclN0YXRlIH0gPSByZWR1eENvbnRleHQ7XG4gICAgY29uc3QgZmlyc3RSdW4gPSBSZWFjdC51c2VSZWYodHJ1ZSk7XG4gICAgY29uc3Qgd3JhcHBlZFNlbGVjdG9yID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICB7XG4gICAgICAgIFtzZWxlY3Rvci5uYW1lXShzdGF0ZSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0b3Ioc3RhdGUpO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGV2TW9kZUNoZWNrcyA9IHt9IH0gPSB0eXBlb2YgZXF1YWxpdHlGbk9yT3B0aW9ucyA9PT0gXCJmdW5jdGlvblwiID8ge30gOiBlcXVhbGl0eUZuT3JPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgeyBpZGVudGl0eUZ1bmN0aW9uQ2hlY2ssIHN0YWJpbGl0eUNoZWNrIH0gPSByZWR1eENvbnRleHQ7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIGlkZW50aXR5RnVuY3Rpb25DaGVjazogZmluYWxJZGVudGl0eUZ1bmN0aW9uQ2hlY2ssXG4gICAgICAgICAgICAgIHN0YWJpbGl0eUNoZWNrOiBmaW5hbFN0YWJpbGl0eUNoZWNrXG4gICAgICAgICAgICB9ID0ge1xuICAgICAgICAgICAgICBzdGFiaWxpdHlDaGVjayxcbiAgICAgICAgICAgICAgaWRlbnRpdHlGdW5jdGlvbkNoZWNrLFxuICAgICAgICAgICAgICAuLi5kZXZNb2RlQ2hlY2tzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGZpbmFsU3RhYmlsaXR5Q2hlY2sgPT09IFwiYWx3YXlzXCIgfHwgZmluYWxTdGFiaWxpdHlDaGVjayA9PT0gXCJvbmNlXCIgJiYgZmlyc3RSdW4uY3VycmVudCkge1xuICAgICAgICAgICAgICBjb25zdCB0b0NvbXBhcmUgPSBzZWxlY3RvcihzdGF0ZSk7XG4gICAgICAgICAgICAgIGlmICghZXF1YWxpdHlGbihzZWxlY3RlZCwgdG9Db21wYXJlKSkge1xuICAgICAgICAgICAgICAgIGxldCBzdGFjayA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgKHsgc3RhY2sgfSA9IGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBcIlNlbGVjdG9yIFwiICsgKHNlbGVjdG9yLm5hbWUgfHwgXCJ1bmtub3duXCIpICsgXCIgcmV0dXJuZWQgYSBkaWZmZXJlbnQgcmVzdWx0IHdoZW4gY2FsbGVkIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycy4gVGhpcyBjYW4gbGVhZCB0byB1bm5lY2Vzc2FyeSByZXJlbmRlcnMuXFxuU2VsZWN0b3JzIHRoYXQgcmV0dXJuIGEgbmV3IHJlZmVyZW5jZSAoc3VjaCBhcyBhbiBvYmplY3Qgb3IgYW4gYXJyYXkpIHNob3VsZCBiZSBtZW1vaXplZDogaHR0cHM6Ly9yZWR1eC5qcy5vcmcvdXNhZ2UvZGVyaXZpbmctZGF0YS1zZWxlY3RvcnMjb3B0aW1pemluZy1zZWxlY3RvcnMtd2l0aC1tZW1vaXphdGlvblwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkMjogdG9Db21wYXJlLFxuICAgICAgICAgICAgICAgICAgICBzdGFja1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaW5hbElkZW50aXR5RnVuY3Rpb25DaGVjayA9PT0gXCJhbHdheXNcIiB8fCBmaW5hbElkZW50aXR5RnVuY3Rpb25DaGVjayA9PT0gXCJvbmNlXCIgJiYgZmlyc3RSdW4uY3VycmVudCkge1xuICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgbGV0IHN0YWNrID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgICAoeyBzdGFjayB9ID0gZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgIFwiU2VsZWN0b3IgXCIgKyAoc2VsZWN0b3IubmFtZSB8fCBcInVua25vd25cIikgKyBcIiByZXR1cm5lZCB0aGUgcm9vdCBzdGF0ZSB3aGVuIGNhbGxlZC4gVGhpcyBjYW4gbGVhZCB0byB1bm5lY2Vzc2FyeSByZXJlbmRlcnMuXFxuU2VsZWN0b3JzIHRoYXQgcmV0dXJuIHRoZSBlbnRpcmUgc3RhdGUgYXJlIGFsbW9zdCBjZXJ0YWlubHkgYSBtaXN0YWtlLCBhcyB0aGV5IHdpbGwgY2F1c2UgYSByZXJlbmRlciB3aGVuZXZlciAqYW55dGhpbmcqIGluIHN0YXRlIGNoYW5nZXMuXCIsXG4gICAgICAgICAgICAgICAgICB7IHN0YWNrIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlyc3RSdW4uY3VycmVudCkgZmlyc3RSdW4uY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgICAgIH1cbiAgICAgIH1bc2VsZWN0b3IubmFtZV0sXG4gICAgICBbc2VsZWN0b3JdXG4gICAgKTtcbiAgICBjb25zdCBzZWxlY3RlZFN0YXRlID0gdXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3IoXG4gICAgICBzdWJzY3JpcHRpb24uYWRkTmVzdGVkU3ViLFxuICAgICAgc3RvcmUuZ2V0U3RhdGUsXG4gICAgICBnZXRTZXJ2ZXJTdGF0ZSB8fCBzdG9yZS5nZXRTdGF0ZSxcbiAgICAgIHdyYXBwZWRTZWxlY3RvcixcbiAgICAgIGVxdWFsaXR5Rm5cbiAgICApO1xuICAgIFJlYWN0LnVzZURlYnVnVmFsdWUoc2VsZWN0ZWRTdGF0ZSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkU3RhdGU7XG4gIH07XG4gIE9iamVjdC5hc3NpZ24odXNlU2VsZWN0b3IyLCB7XG4gICAgd2l0aFR5cGVzOiAoKSA9PiB1c2VTZWxlY3RvcjJcbiAgfSk7XG4gIHJldHVybiB1c2VTZWxlY3RvcjI7XG59XG52YXIgdXNlU2VsZWN0b3IgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlU2VsZWN0b3JIb29rKCk7XG5cbi8vIHNyYy9leHBvcnRzLnRzXG52YXIgYmF0Y2ggPSBkZWZhdWx0Tm9vcEJhdGNoO1xuZXhwb3J0IHtcbiAgUHJvdmlkZXJfZGVmYXVsdCBhcyBQcm92aWRlcixcbiAgUmVhY3RSZWR1eENvbnRleHQsXG4gIGJhdGNoLFxuICBjb25uZWN0X2RlZmF1bHQgYXMgY29ubmVjdCxcbiAgY3JlYXRlRGlzcGF0Y2hIb29rLFxuICBjcmVhdGVTZWxlY3Rvckhvb2ssXG4gIGNyZWF0ZVN0b3JlSG9vayxcbiAgc2hhbGxvd0VxdWFsLFxuICB1c2VEaXNwYXRjaCxcbiAgdXNlU2VsZWN0b3IsXG4gIHVzZVN0b3JlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtcmVkdXgubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-redux/dist/react-redux.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js": /*!***********************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/component.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollBar: () => (/* binding */ RemoveScrollBar),\n/* harmony export */ lockAttribute: () => (/* binding */ lockAttribute),\n/* harmony export */ useLockAttribute: () => (/* binding */ useLockAttribute)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\nvar Style = (0,react_style_singleton__WEBPACK_IMPORTED_MODULE_1__.styleSingleton)();\nvar lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nvar useLockAttribute = function () {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nvar RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () { return (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getGapWidth)(gapMode); }, [gapMode]);\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb21wb25lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBK0I7QUFDd0I7QUFDNkQ7QUFDOUU7QUFDdEMsWUFBWSxxRUFBYztBQUNuQjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUIsMEJBQTBCLDZEQUFxQixLQUFLLDZDQUE2Qyw4REFBOEQsS0FBSyxzQ0FBc0MsOENBQThDLG1DQUFtQztBQUMzUixtRUFBbUU7QUFDbkU7QUFDQSxvREFBb0Qsc0NBQXNDLDBDQUEwQyxvQkFBb0IsbUJBQW1CLDhEQUE4RDtBQUN6TywwRkFBMEY7QUFDMUY7QUFDQTtBQUNBLHlCQUF5QixtQkFBbUIsMERBQWtCLEtBQUssdURBQXVELEtBQUssbUJBQW1CLDBEQUFrQixLQUFLLDhEQUE4RCxLQUFLLG1CQUFtQiwwREFBa0IsZUFBZSwwREFBa0IsS0FBSyxzQ0FBc0MsS0FBSyxtQkFBbUIsMERBQWtCLGVBQWUsMERBQWtCLEtBQUssNkNBQTZDLEtBQUssMENBQTBDLGdCQUFnQiw4REFBc0Isd0JBQXdCLEtBQUs7QUFDNWtCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLElBQUksNENBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYywwQ0FBYSxlQUFlLE9BQU8sbURBQVcsWUFBWTtBQUN4RSxXQUFXLGdEQUFtQixVQUFVLGdGQUFnRjtBQUN4SCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXIvZGlzdC9lczIwMTUvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAncmVhY3Qtc3R5bGUtc2luZ2xldG9uJztcbmltcG9ydCB7IGZ1bGxXaWR0aENsYXNzTmFtZSwgemVyb1JpZ2h0Q2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xudmFyIFN0eWxlID0gc3R5bGVTaW5nbGV0b24oKTtcbmV4cG9ydCB2YXIgbG9ja0F0dHJpYnV0ZSA9ICdkYXRhLXNjcm9sbC1sb2NrZWQnO1xuLy8gaW1wb3J0YW50IHRpcCAtIG9uY2Ugd2UgbWVhc3VyZSBzY3JvbGxCYXIgd2lkdGggYW5kIHJlbW92ZSB0aGVtXG4vLyB3ZSBjb3VsZCBub3QgcmVwZWF0IHRoaXMgb3BlcmF0aW9uXG4vLyB0aHVzIHdlIGFyZSB1c2luZyBzdHlsZS1zaW5nbGV0b24gLSBvbmx5IHRoZSBmaXJzdCBcInlldCBjb3JyZWN0XCIgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uIChfYSwgYWxsb3dSZWxhdGl2ZSwgZ2FwTW9kZSwgaW1wb3J0YW50KSB7XG4gICAgdmFyIGxlZnQgPSBfYS5sZWZ0LCB0b3AgPSBfYS50b3AsIHJpZ2h0ID0gX2EucmlnaHQsIGdhcCA9IF9hLmdhcDtcbiAgICBpZiAoZ2FwTW9kZSA9PT0gdm9pZCAwKSB7IGdhcE1vZGUgPSAnbWFyZ2luJzsgfVxuICAgIHJldHVybiBcIlxcbiAgLlwiLmNvbmNhdChub1Njcm9sbGJhcnNDbGFzc05hbWUsIFwiIHtcXG4gICBvdmVyZmxvdzogaGlkZGVuIFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICBwYWRkaW5nLXJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XFxuICAgIFwiKS5jb25jYXQoW1xuICAgICAgICBhbGxvd1JlbGF0aXZlICYmIFwicG9zaXRpb246IHJlbGF0aXZlIFwiLmNvbmNhdChpbXBvcnRhbnQsIFwiO1wiKSxcbiAgICAgICAgZ2FwTW9kZSA9PT0gJ21hcmdpbicgJiZcbiAgICAgICAgICAgIFwiXFxuICAgIHBhZGRpbmctbGVmdDogXCIuY29uY2F0KGxlZnQsIFwicHg7XFxuICAgIHBhZGRpbmctdG9wOiBcIikuY29uY2F0KHRvcCwgXCJweDtcXG4gICAgcGFkZGluZy1yaWdodDogXCIpLmNvbmNhdChyaWdodCwgXCJweDtcXG4gICAgbWFyZ2luLWxlZnQ6MDtcXG4gICAgbWFyZ2luLXRvcDowO1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICAgXCIpLFxuICAgICAgICBnYXBNb2RlID09PSAncGFkZGluZycgJiYgXCJwYWRkaW5nLXJpZ2h0OiBcIi5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcIiksXG4gICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcnKSwgXCJcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiB7XFxuICAgIHJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBcXG4gIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiAuXCIpLmNvbmNhdCh6ZXJvUmlnaHRDbGFzc05hbWUsIFwiIHtcXG4gICAgcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICAuXCIpLmNvbmNhdChmdWxsV2lkdGhDbGFzc05hbWUsIFwiIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgXCIpLmNvbmNhdChyZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBcIjogXCIpLmNvbmNhdChnYXAsIFwicHg7XFxuICB9XFxuXCIpO1xufTtcbnZhciBnZXRDdXJyZW50VXNlQ291bnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IHBhcnNlSW50KGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUpIHx8ICcwJywgMTApO1xuICAgIHJldHVybiBpc0Zpbml0ZShjb3VudGVyKSA/IGNvdW50ZXIgOiAwO1xufTtcbmV4cG9ydCB2YXIgdXNlTG9ja0F0dHJpYnV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShsb2NrQXR0cmlidXRlLCAoZ2V0Q3VycmVudFVzZUNvdW50ZXIoKSArIDEpLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG5ld0NvdW50ZXIgPSBnZXRDdXJyZW50VXNlQ291bnRlcigpIC0gMTtcbiAgICAgICAgICAgIGlmIChuZXdDb3VudGVyIDw9IDApIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZShsb2NrQXR0cmlidXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUsIG5ld0NvdW50ZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xufTtcbi8qKlxuICogUmVtb3ZlcyBwYWdlIHNjcm9sbGJhciBhbmQgYmxvY2tzIHBhZ2Ugc2Nyb2xsIHdoZW4gbW91bnRlZFxuICovXG5leHBvcnQgdmFyIFJlbW92ZVNjcm9sbEJhciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBub1JlbGF0aXZlID0gX2Eubm9SZWxhdGl2ZSwgbm9JbXBvcnRhbnQgPSBfYS5ub0ltcG9ydGFudCwgX2IgPSBfYS5nYXBNb2RlLCBnYXBNb2RlID0gX2IgPT09IHZvaWQgMCA/ICdtYXJnaW4nIDogX2I7XG4gICAgdXNlTG9ja0F0dHJpYnV0ZSgpO1xuICAgIC8qXG4gICAgIGdhcCB3aWxsIGJlIG1lYXN1cmVkIG9uIGV2ZXJ5IGNvbXBvbmVudCBtb3VudFxuICAgICBob3dldmVyIGl0IHdpbGwgYmUgdXNlZCBvbmx5IGJ5IHRoZSBcImZpcnN0XCIgaW52b2NhdGlvblxuICAgICBkdWUgdG8gc2luZ2xldG9uIG5hdHVyZSBvZiA8U3R5bGVcbiAgICAgKi9cbiAgICB2YXIgZ2FwID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBnZXRHYXBXaWR0aChnYXBNb2RlKTsgfSwgW2dhcE1vZGVdKTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZSwgeyBzdHlsZXM6IGdldFN0eWxlcyhnYXAsICFub1JlbGF0aXZlLCBnYXBNb2RlLCAhbm9JbXBvcnRhbnQgPyAnIWltcG9ydGFudCcgOiAnJykgfSk7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js": /*!***********************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/constants.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fullWidthClassName: () => (/* binding */ fullWidthClassName),\n/* harmony export */ noScrollbarsClassName: () => (/* binding */ noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* binding */ removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* binding */ zeroRightClassName)\n/* harmony export */ });\nvar zeroRightClassName = 'right-scroll-bar-position';\nvar fullWidthClassName = 'width-before-scroll-bar';\nvar noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nvar removedBarSizeVariable = '--removed-body-scroll-bar-size';\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPO0FBQ0E7QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ08iLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9SaWdodENsYXNzTmFtZSA9ICdyaWdodC1zY3JvbGwtYmFyLXBvc2l0aW9uJztcbmV4cG9ydCB2YXIgZnVsbFdpZHRoQ2xhc3NOYW1lID0gJ3dpZHRoLWJlZm9yZS1zY3JvbGwtYmFyJztcbmV4cG9ydCB2YXIgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lID0gJ3dpdGgtc2Nyb2xsLWJhcnMtaGlkZGVuJztcbi8qKlxuICogTmFtZSBvZiBhIENTUyB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBhbW91bnQgb2YgXCJoaWRkZW5cIiBzY3JvbGxiYXJcbiAqICEgbWlnaHQgYmUgdW5kZWZpbmVkICEgdXNlIHdpbGwgZmFsbGJhY2shXG4gKi9cbmV4cG9ydCB2YXIgcmVtb3ZlZEJhclNpemVWYXJpYWJsZSA9ICctLXJlbW92ZWQtYm9keS1zY3JvbGwtYmFyLXNpemUnO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js": /*!*******************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollBar: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.RemoveScrollBar),\n/* harmony export */ fullWidthClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName),\n/* harmony export */ getGapWidth: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.getGapWidth),\n/* harmony export */ noScrollbarsClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEM7QUFDc0U7QUFDOUU7QUFDMEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92ZVNjcm9sbEJhciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IHplcm9SaWdodENsYXNzTmFtZSwgZnVsbFdpZHRoQ2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyLCB6ZXJvUmlnaHRDbGFzc05hbWUsIGZ1bGxXaWR0aENsYXNzTmFtZSwgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lLCByZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBnZXRHYXBXaWR0aCwgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js": /*!*******************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/utils.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getGapWidth: () => (/* binding */ getGapWidth),\n/* harmony export */ zeroGap: () => (/* binding */ zeroGap)\n/* harmony export */ });\nvar zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nvar getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9HYXAgPSB7XG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgZ2FwOiAwLFxufTtcbnZhciBwYXJzZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiBwYXJzZUludCh4IHx8ICcnLCAxMCkgfHwgMDsgfTtcbnZhciBnZXRPZmZzZXQgPSBmdW5jdGlvbiAoZ2FwTW9kZSkge1xuICAgIHZhciBjcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpO1xuICAgIHZhciBsZWZ0ID0gY3NbZ2FwTW9kZSA9PT0gJ3BhZGRpbmcnID8gJ3BhZGRpbmdMZWZ0JyA6ICdtYXJnaW5MZWZ0J107XG4gICAgdmFyIHRvcCA9IGNzW2dhcE1vZGUgPT09ICdwYWRkaW5nJyA/ICdwYWRkaW5nVG9wJyA6ICdtYXJnaW5Ub3AnXTtcbiAgICB2YXIgcmlnaHQgPSBjc1tnYXBNb2RlID09PSAncGFkZGluZycgPyAncGFkZGluZ1JpZ2h0JyA6ICdtYXJnaW5SaWdodCddO1xuICAgIHJldHVybiBbcGFyc2UobGVmdCksIHBhcnNlKHRvcCksIHBhcnNlKHJpZ2h0KV07XG59O1xuZXhwb3J0IHZhciBnZXRHYXBXaWR0aCA9IGZ1bmN0aW9uIChnYXBNb2RlKSB7XG4gICAgaWYgKGdhcE1vZGUgPT09IHZvaWQgMCkgeyBnYXBNb2RlID0gJ21hcmdpbic7IH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHplcm9HYXA7XG4gICAgfVxuICAgIHZhciBvZmZzZXRzID0gZ2V0T2Zmc2V0KGdhcE1vZGUpO1xuICAgIHZhciBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIHZhciB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IG9mZnNldHNbMF0sXG4gICAgICAgIHRvcDogb2Zmc2V0c1sxXSxcbiAgICAgICAgcmlnaHQ6IG9mZnNldHNbMl0sXG4gICAgICAgIGdhcDogTWF0aC5tYXgoMCwgd2luZG93V2lkdGggLSBkb2N1bWVudFdpZHRoICsgb2Zmc2V0c1syXSAtIG9mZnNldHNbMF0pLFxuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js": /*!*********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/Combination.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _UI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UI */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\");\n/* harmony import */ var _sidecar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidecar */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\");\n\n\n\n\nvar ReactRemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll, (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, props, { ref: ref, sideCar: _sidecar__WEBPACK_IMPORTED_MODULE_1__[\"default\"] }))); });\nReactRemoveScroll.classNames = _UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll.classNames;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactRemoveScroll);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpQztBQUNGO0FBQ0s7QUFDSjtBQUNoQyx3QkFBd0IsNkNBQWdCLHlCQUF5QixRQUFRLGdEQUFtQixDQUFDLDZDQUFZLEVBQUUsK0NBQVEsR0FBRyxXQUFXLG1CQUFtQixnREFBTyxFQUFFLE1BQU07QUFDbkssK0JBQStCLDZDQUFZO0FBQzNDLGlFQUFlLGlCQUFpQixFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICcuL1VJJztcbmltcG9ydCBTaWRlQ2FyIGZyb20gJy4vc2lkZWNhcic7XG52YXIgUmVhY3RSZW1vdmVTY3JvbGwgPSBSZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZW1vdmVTY3JvbGwsIF9fYXNzaWduKHt9LCBwcm9wcywgeyByZWY6IHJlZiwgc2lkZUNhcjogU2lkZUNhciB9KSkpOyB9KTtcblJlYWN0UmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXMgPSBSZW1vdmVTY3JvbGwuY2xhc3NOYW1lcztcbmV4cG9ydCBkZWZhdWx0IFJlYWN0UmVtb3ZlU2Nyb2xsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js": /*!********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/SideEffect.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollSideCar: () => (/* binding */ RemoveScrollSideCar),\n/* harmony export */ getDeltaXY: () => (/* binding */ getDeltaXY),\n/* harmony export */ getTouchXY: () => (/* binding */ getTouchXY)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\");\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./aggresiveCapture */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\");\n/* harmony import */ var _handleScroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handleScroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\");\n\n\n\n\n\n\nvar getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);\n var touchStartRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([0, 0]);\n var activeAxis = react__WEBPACK_IMPORTED_MODULE_0__.useRef();\n var id = react__WEBPACK_IMPORTED_MODULE_0__.useState(idCounter++)[0];\n var Style = react__WEBPACK_IMPORTED_MODULE_0__.useState(react_style_singleton__WEBPACK_IMPORTED_MODULE_2__.styleSingleton)[0];\n var lastProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__spreadArray)([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.handleScroll)(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n inert ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__.RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFzQztBQUNQO0FBQzJCO0FBQ0g7QUFDUDtBQUN1QjtBQUNoRTtBQUNQO0FBQ0E7QUFDTyxvQ0FBb0M7QUFDM0M7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDLG9DQUFvQyxpREFBaUQsc0JBQXNCLDBDQUEwQyxxQkFBcUI7QUFDMUs7QUFDQTtBQUNPO0FBQ1AsNkJBQTZCLHlDQUFZO0FBQ3pDLHdCQUF3Qix5Q0FBWTtBQUNwQyxxQkFBcUIseUNBQVk7QUFDakMsYUFBYSwyQ0FBYztBQUMzQixnQkFBZ0IsMkNBQWMsQ0FBQyxpRUFBYztBQUM3QyxvQkFBb0IseUNBQVk7QUFDaEMsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEIsb0RBQWE7QUFDdkMsNENBQTRDLDZEQUE2RDtBQUN6RztBQUNBO0FBQ0EsZ0RBQWdELGdFQUFnRTtBQUNoSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsNEJBQTRCLDhDQUFpQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDJEQUFZO0FBQzNCLEtBQUs7QUFDTCx3QkFBd0IsOENBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxpSUFBaUk7QUFDNU07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHFDQUFxQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx1QkFBdUIsOENBQWlCO0FBQ3hDLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsMEZBQTBGLHFCQUFxQjtBQUMvRyxTQUFTO0FBQ1QsS0FBSztBQUNMLDJCQUEyQiw4Q0FBaUI7QUFDNUM7QUFDQTtBQUNBLEtBQUs7QUFDTCxzQkFBc0IsOENBQWlCO0FBQ3ZDO0FBQ0EsS0FBSztBQUNMLDBCQUEwQiw4Q0FBaUI7QUFDM0M7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDBEQUEwRCx5REFBVTtBQUNwRSw4REFBOEQseURBQVU7QUFDeEUsa0VBQWtFLHlEQUFVO0FBQzVFO0FBQ0EsMkRBQTJELHdCQUF3QjtBQUNuRixpRUFBaUUseURBQVU7QUFDM0UscUVBQXFFLHlEQUFVO0FBQy9FLHlFQUF5RSx5REFBVTtBQUNuRjtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksZ0RBQW1CLENBQUMsMkNBQWM7QUFDOUMsZ0JBQWdCLGdEQUFtQixVQUFVLDJCQUEyQjtBQUN4RSwwQkFBMEIsZ0RBQW1CLENBQUMsb0VBQWUsSUFBSSx3QkFBd0I7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXInO1xuaW1wb3J0IHsgc3R5bGVTaW5nbGV0b24gfSBmcm9tICdyZWFjdC1zdHlsZS1zaW5nbGV0b24nO1xuaW1wb3J0IHsgbm9uUGFzc2l2ZSB9IGZyb20gJy4vYWdncmVzaXZlQ2FwdHVyZSc7XG5pbXBvcnQgeyBoYW5kbGVTY3JvbGwsIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkIH0gZnJvbSAnLi9oYW5kbGVTY3JvbGwnO1xuZXhwb3J0IHZhciBnZXRUb3VjaFhZID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdjaGFuZ2VkVG91Y2hlcycgaW4gZXZlbnQgPyBbZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WV0gOiBbMCwgMF07XG59O1xuZXhwb3J0IHZhciBnZXREZWx0YVhZID0gZnVuY3Rpb24gKGV2ZW50KSB7IHJldHVybiBbZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVldOyB9O1xudmFyIGV4dHJhY3RSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgcmV0dXJuIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmID8gcmVmLmN1cnJlbnQgOiByZWY7XG59O1xudmFyIGRlbHRhQ29tcGFyZSA9IGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiB4WzBdID09PSB5WzBdICYmIHhbMV0gPT09IHlbMV07IH07XG52YXIgZ2VuZXJhdGVTdHlsZSA9IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gXCJcXG4gIC5ibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCwgXCIge3BvaW50ZXItZXZlbnRzOiBub25lO31cXG4gIC5hbGxvdy1pbnRlcmFjdGl2aXR5LVwiKS5jb25jYXQoaWQsIFwiIHtwb2ludGVyLWV2ZW50czogYWxsO31cXG5cIik7IH07XG52YXIgaWRDb3VudGVyID0gMDtcbnZhciBsb2NrU3RhY2sgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBSZW1vdmVTY3JvbGxTaWRlQ2FyKHByb3BzKSB7XG4gICAgdmFyIHNob3VsZFByZXZlbnRRdWV1ZSA9IFJlYWN0LnVzZVJlZihbXSk7XG4gICAgdmFyIHRvdWNoU3RhcnRSZWYgPSBSZWFjdC51c2VSZWYoWzAsIDBdKTtcbiAgICB2YXIgYWN0aXZlQXhpcyA9IFJlYWN0LnVzZVJlZigpO1xuICAgIHZhciBpZCA9IFJlYWN0LnVzZVN0YXRlKGlkQ291bnRlcisrKVswXTtcbiAgICB2YXIgU3R5bGUgPSBSZWFjdC51c2VTdGF0ZShzdHlsZVNpbmdsZXRvbilbMF07XG4gICAgdmFyIGxhc3RQcm9wcyA9IFJlYWN0LnVzZVJlZihwcm9wcyk7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGFzdFByb3BzLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9LCBbcHJvcHNdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAocHJvcHMuaW5lcnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImJsb2NrLWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7XG4gICAgICAgICAgICB2YXIgYWxsb3dfMSA9IF9fc3ByZWFkQXJyYXkoW3Byb3BzLmxvY2tSZWYuY3VycmVudF0sIChwcm9wcy5zaGFyZHMgfHwgW10pLm1hcChleHRyYWN0UmVmKSwgdHJ1ZSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgYWxsb3dfMS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChcImFsbG93LWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7IH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpO1xuICAgICAgICAgICAgICAgIGFsbG93XzEuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbGxvdy1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH0sIFtwcm9wcy5pbmVydCwgcHJvcHMubG9ja1JlZi5jdXJyZW50LCBwcm9wcy5zaGFyZHNdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsRXZlbnQgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIHBhcmVudCkge1xuICAgICAgICBpZiAoKCd0b3VjaGVzJyBpbiBldmVudCAmJiBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMikgfHwgKGV2ZW50LnR5cGUgPT09ICd3aGVlbCcgJiYgZXZlbnQuY3RybEtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhbGFzdFByb3BzLmN1cnJlbnQuYWxsb3dQaW5jaFpvb207XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvdWNoID0gZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIHZhciB0b3VjaFN0YXJ0ID0gdG91Y2hTdGFydFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgZGVsdGFYID0gJ2RlbHRhWCcgaW4gZXZlbnQgPyBldmVudC5kZWx0YVggOiB0b3VjaFN0YXJ0WzBdIC0gdG91Y2hbMF07XG4gICAgICAgIHZhciBkZWx0YVkgPSAnZGVsdGFZJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWSA6IHRvdWNoU3RhcnRbMV0gLSB0b3VjaFsxXTtcbiAgICAgICAgdmFyIGN1cnJlbnRBeGlzO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICB2YXIgbW92ZURpcmVjdGlvbiA9IE1hdGguYWJzKGRlbHRhWCkgPiBNYXRoLmFicyhkZWx0YVkpID8gJ2gnIDogJ3YnO1xuICAgICAgICAvLyBhbGxvdyBob3Jpem9udGFsIHRvdWNoIG1vdmUgb24gUmFuZ2UgaW5wdXRzLiBUaGV5IHdpbGwgbm90IGNhdXNlIGFueSBzY3JvbGxcbiAgICAgICAgaWYgKCd0b3VjaGVzJyBpbiBldmVudCAmJiBtb3ZlRGlyZWN0aW9uID09PSAnaCcgJiYgdGFyZ2V0LnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgIGlmICghY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbiA9PT0gJ3YnID8gJ2gnIDogJ3YnO1xuICAgICAgICAgICAgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgICAgICAvLyBvdGhlciBheGlzIG1pZ2h0IGJlIG5vdCBzY3JvbGxhYmxlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhY3RpdmVBeGlzLmN1cnJlbnQgJiYgJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCAmJiAoZGVsdGFYIHx8IGRlbHRhWSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUF4aXMuY3VycmVudCA9IGN1cnJlbnRBeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY3VycmVudEF4aXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYW5jZWxpbmdBeGlzID0gYWN0aXZlQXhpcy5jdXJyZW50IHx8IGN1cnJlbnRBeGlzO1xuICAgICAgICByZXR1cm4gaGFuZGxlU2Nyb2xsKGNhbmNlbGluZ0F4aXMsIHBhcmVudCwgZXZlbnQsIGNhbmNlbGluZ0F4aXMgPT09ICdoJyA/IGRlbHRhWCA6IGRlbHRhWSwgdHJ1ZSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzaG91bGRQcmV2ZW50ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9ldmVudCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBfZXZlbnQ7XG4gICAgICAgIGlmICghbG9ja1N0YWNrLmxlbmd0aCB8fCBsb2NrU3RhY2tbbG9ja1N0YWNrLmxlbmd0aCAtIDFdICE9PSBTdHlsZSkge1xuICAgICAgICAgICAgLy8gbm90IHRoZSBsYXN0IGFjdGl2ZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWx0YSA9ICdkZWx0YVknIGluIGV2ZW50ID8gZ2V0RGVsdGFYWShldmVudCkgOiBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgdmFyIHNvdXJjZUV2ZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLm5hbWUgPT09IGV2ZW50LnR5cGUgJiYgKGUudGFyZ2V0ID09PSBldmVudC50YXJnZXQgfHwgZXZlbnQudGFyZ2V0ID09PSBlLnNoYWRvd1BhcmVudCkgJiYgZGVsdGFDb21wYXJlKGUuZGVsdGEsIGRlbHRhKTsgfSlbMF07XG4gICAgICAgIC8vIHNlbGYgZXZlbnQsIGFuZCBzaG91bGQgYmUgY2FuY2VsZWRcbiAgICAgICAgaWYgKHNvdXJjZUV2ZW50ICYmIHNvdXJjZUV2ZW50LnNob3VsZCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIG91dHNpZGUgb3Igc2hhcmQgZXZlbnRcbiAgICAgICAgaWYgKCFzb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgdmFyIHNoYXJkTm9kZXMgPSAobGFzdFByb3BzLmN1cnJlbnQuc2hhcmRzIHx8IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoZXh0cmFjdFJlZilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5jb250YWlucyhldmVudC50YXJnZXQpOyB9KTtcbiAgICAgICAgICAgIHZhciBzaG91bGRTdG9wID0gc2hhcmROb2Rlcy5sZW5ndGggPiAwID8gc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHNoYXJkTm9kZXNbMF0pIDogIWxhc3RQcm9wcy5jdXJyZW50Lm5vSXNvbGF0aW9uO1xuICAgICAgICAgICAgaWYgKHNob3VsZFN0b3ApIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWUsIGRlbHRhLCB0YXJnZXQsIHNob3VsZCkge1xuICAgICAgICB2YXIgZXZlbnQgPSB7IG5hbWU6IG5hbWUsIGRlbHRhOiBkZWx0YSwgdGFyZ2V0OiB0YXJnZXQsIHNob3VsZDogc2hvdWxkLCBzaGFkb3dQYXJlbnQ6IGdldE91dGVybW9zdFNoYWRvd1BhcmVudCh0YXJnZXQpIH07XG4gICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50LnB1c2goZXZlbnQpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlICE9PSBldmVudDsgfSk7XG4gICAgICAgIH0sIDEpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsVG91Y2hTdGFydCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0b3VjaFN0YXJ0UmVmLmN1cnJlbnQgPSBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgYWN0aXZlQXhpcy5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsV2hlZWwgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsKGV2ZW50LnR5cGUsIGdldERlbHRhWFkoZXZlbnQpLCBldmVudC50YXJnZXQsIHNob3VsZENhbmNlbEV2ZW50KGV2ZW50LCBwcm9wcy5sb2NrUmVmLmN1cnJlbnQpKTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHNjcm9sbFRvdWNoTW92ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzaG91bGRDYW5jZWwoZXZlbnQudHlwZSwgZ2V0VG91Y2hYWShldmVudCksIGV2ZW50LnRhcmdldCwgc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHByb3BzLmxvY2tSZWYuY3VycmVudCkpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBsb2NrU3RhY2sucHVzaChTdHlsZSk7XG4gICAgICAgIHByb3BzLnNldENhbGxiYWNrcyh7XG4gICAgICAgICAgICBvblNjcm9sbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25XaGVlbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBzY3JvbGxUb3VjaE1vdmUsXG4gICAgICAgIH0pO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9ja1N0YWNrID0gbG9ja1N0YWNrLmZpbHRlcihmdW5jdGlvbiAoaW5zdCkgeyByZXR1cm4gaW5zdCAhPT0gU3R5bGU7IH0pO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB2YXIgcmVtb3ZlU2Nyb2xsQmFyID0gcHJvcHMucmVtb3ZlU2Nyb2xsQmFyLCBpbmVydCA9IHByb3BzLmluZXJ0O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgaW5lcnQgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlLCB7IHN0eWxlczogZ2VuZXJhdGVTdHlsZShpZCkgfSkgOiBudWxsLFxuICAgICAgICByZW1vdmVTY3JvbGxCYXIgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbW92ZVNjcm9sbEJhciwgeyBnYXBNb2RlOiBwcm9wcy5nYXBNb2RlIH0pIDogbnVsbCkpO1xufVxuZnVuY3Rpb24gZ2V0T3V0ZXJtb3N0U2hhZG93UGFyZW50KG5vZGUpIHtcbiAgICB2YXIgc2hhZG93UGFyZW50ID0gbnVsbDtcbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIHNoYWRvd1BhcmVudCA9IG5vZGUuaG9zdDtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYWRvd1BhcmVudDtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js": /*!************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/UI.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScroll: () => (/* binding */ RemoveScroll)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar/constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var use_callback_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! use-callback-ref */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n\n\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, parentRef) {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n var _a = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = (0,use_callback_ref__WEBPACK_IMPORTED_MODULE_3__.useMergeRefs)([ref, parentRef]);\n var containerProps = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, rest), callbacks);\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n enabled && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(SideCar, { sideCar: _medium__WEBPACK_IMPORTED_MODULE_4__.effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children), (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps), { ref: containerRef }))) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement(Container, (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName,\n zeroRight: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName,\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1VJLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBeUM7QUFDVjtBQUM0RDtBQUMzQztBQUNYO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw2Q0FBZ0I7QUFDbkMsY0FBYyx5Q0FBWTtBQUMxQixhQUFhLDJDQUFjO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5WUFBeVksNkNBQU07QUFDL1k7QUFDQSx1QkFBdUIsOERBQVk7QUFDbkMseUJBQXlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRztBQUM3QyxZQUFZLGdEQUFtQixDQUFDLDJDQUFjO0FBQzlDLG9CQUFvQixnREFBbUIsWUFBWSxTQUFTLDhDQUFTLDBMQUEwTDtBQUMvUCx3QkFBd0IsK0NBQWtCLENBQUMsMkNBQWMsaUJBQWlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRyxxQkFBcUIsbUJBQW1CLE9BQU8sZ0RBQW1CLFlBQVksK0NBQVEsR0FBRyxvQkFBb0IseUNBQXlDO0FBQ3BQLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlGQUFrQjtBQUNqQyxlQUFlLGlGQUFrQjtBQUNqQztBQUN3QiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9VSS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX2Fzc2lnbiwgX19yZXN0IH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmdWxsV2lkdGhDbGFzc05hbWUsIHplcm9SaWdodENsYXNzTmFtZSB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VNZXJnZVJlZnMgfSBmcm9tICd1c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IGVmZmVjdENhciB9IGZyb20gJy4vbWVkaXVtJztcbnZhciBub3RoaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybjtcbn07XG4vKipcbiAqIFJlbW92ZXMgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZ2UgYW5kIGNvbnRhaW4gdGhlIHNjcm9sbCB3aXRoaW4gdGhlIExvY2tcbiAqL1xudmFyIFJlbW92ZVNjcm9sbCA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCBwYXJlbnRSZWYpIHtcbiAgICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgb25TY3JvbGxDYXB0dXJlOiBub3RoaW5nLFxuICAgICAgICBvbldoZWVsQ2FwdHVyZTogbm90aGluZyxcbiAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBub3RoaW5nLFxuICAgIH0pLCBjYWxsYmFja3MgPSBfYVswXSwgc2V0Q2FsbGJhY2tzID0gX2FbMV07XG4gICAgdmFyIGZvcndhcmRQcm9wcyA9IHByb3BzLmZvcndhcmRQcm9wcywgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZW1vdmVTY3JvbGxCYXIgPSBwcm9wcy5yZW1vdmVTY3JvbGxCYXIsIGVuYWJsZWQgPSBwcm9wcy5lbmFibGVkLCBzaGFyZHMgPSBwcm9wcy5zaGFyZHMsIHNpZGVDYXIgPSBwcm9wcy5zaWRlQ2FyLCBub0lzb2xhdGlvbiA9IHByb3BzLm5vSXNvbGF0aW9uLCBpbmVydCA9IHByb3BzLmluZXJ0LCBhbGxvd1BpbmNoWm9vbSA9IHByb3BzLmFsbG93UGluY2hab29tLCBfYiA9IHByb3BzLmFzLCBDb250YWluZXIgPSBfYiA9PT0gdm9pZCAwID8gJ2RpdicgOiBfYiwgZ2FwTW9kZSA9IHByb3BzLmdhcE1vZGUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImZvcndhcmRQcm9wc1wiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwicmVtb3ZlU2Nyb2xsQmFyXCIsIFwiZW5hYmxlZFwiLCBcInNoYXJkc1wiLCBcInNpZGVDYXJcIiwgXCJub0lzb2xhdGlvblwiLCBcImluZXJ0XCIsIFwiYWxsb3dQaW5jaFpvb21cIiwgXCJhc1wiLCBcImdhcE1vZGVcIl0pO1xuICAgIHZhciBTaWRlQ2FyID0gc2lkZUNhcjtcbiAgICB2YXIgY29udGFpbmVyUmVmID0gdXNlTWVyZ2VSZWZzKFtyZWYsIHBhcmVudFJlZl0pO1xuICAgIHZhciBjb250YWluZXJQcm9wcyA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCByZXN0KSwgY2FsbGJhY2tzKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgIGVuYWJsZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZUNhciwgeyBzaWRlQ2FyOiBlZmZlY3RDYXIsIHJlbW92ZVNjcm9sbEJhcjogcmVtb3ZlU2Nyb2xsQmFyLCBzaGFyZHM6IHNoYXJkcywgbm9Jc29sYXRpb246IG5vSXNvbGF0aW9uLCBpbmVydDogaW5lcnQsIHNldENhbGxiYWNrczogc2V0Q2FsbGJhY2tzLCBhbGxvd1BpbmNoWm9vbTogISFhbGxvd1BpbmNoWm9vbSwgbG9ja1JlZjogcmVmLCBnYXBNb2RlOiBnYXBNb2RlIH0pKSxcbiAgICAgICAgZm9yd2FyZFByb3BzID8gKFJlYWN0LmNsb25lRWxlbWVudChSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSwgX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRhaW5lclByb3BzKSwgeyByZWY6IGNvbnRhaW5lclJlZiB9KSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLCBfX2Fzc2lnbih7fSwgY29udGFpbmVyUHJvcHMsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHJlZjogY29udGFpbmVyUmVmIH0pLCBjaGlsZHJlbikpKSk7XG59KTtcblJlbW92ZVNjcm9sbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICByZW1vdmVTY3JvbGxCYXI6IHRydWUsXG4gICAgaW5lcnQ6IGZhbHNlLFxufTtcblJlbW92ZVNjcm9sbC5jbGFzc05hbWVzID0ge1xuICAgIGZ1bGxXaWR0aDogZnVsbFdpZHRoQ2xhc3NOYW1lLFxuICAgIHplcm9SaWdodDogemVyb1JpZ2h0Q2xhc3NOYW1lLFxufTtcbmV4cG9ydCB7IFJlbW92ZVNjcm9sbCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js": /*!**************************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ nonPassive: () => (/* binding */ nonPassive)\n/* harmony export */ });\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nvar nonPassive = passiveSupported ? { passive: false } : false;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2FnZ3Jlc2l2ZUNhcHR1cmUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLHNDQUFzQyxpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvYWdncmVzaXZlQ2FwdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgbm9uUGFzc2l2ZSA9IHBhc3NpdmVTdXBwb3J0ZWQgPyB7IHBhc3NpdmU6IGZhbHNlIH0gOiBmYWxzZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js": /*!**********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/handleScroll.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleScroll: () => (/* binding */ handleScroll),\n/* harmony export */ locationCouldBeScrolled: () => (/* binding */ locationCouldBeScrolled)\n/* harmony export */ });\nvar alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nvar locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nvar handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2hhbmRsZVNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxnREFBZ0Q7QUFDekM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9oYW5kbGVTY3JvbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFsd2F5c0NvbnRhaW5zU2Nyb2xsID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAvLyB0ZXh0YXJlYSB3aWxsIGFsd2F5cyBfY29udGFpbl8gc2Nyb2xsIGluc2lkZSBzZWxmLiBJdCBvbmx5IGNhbiBiZSBoaWRkZW5cbiAgICByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnO1xufTtcbnZhciBlbGVtZW50Q2FuQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlLCBvdmVyZmxvdykge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICByZXR1cm4gKFxuICAgIC8vIG5vdC1ub3Qtc2Nyb2xsYWJsZVxuICAgIHN0eWxlc1tvdmVyZmxvd10gIT09ICdoaWRkZW4nICYmXG4gICAgICAgIC8vIGNvbnRhaW5zIHNjcm9sbCBpbnNpZGUgc2VsZlxuICAgICAgICAhKHN0eWxlcy5vdmVyZmxvd1kgPT09IHN0eWxlcy5vdmVyZmxvd1ggJiYgIWFsd2F5c0NvbnRhaW5zU2Nyb2xsKG5vZGUpICYmIHN0eWxlc1tvdmVyZmxvd10gPT09ICd2aXNpYmxlJykpO1xufTtcbnZhciBlbGVtZW50Q291bGRCZVZTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBlbGVtZW50Q2FuQmVTY3JvbGxlZChub2RlLCAnb3ZlcmZsb3dZJyk7IH07XG52YXIgZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZWxlbWVudENhbkJlU2Nyb2xsZWQobm9kZSwgJ292ZXJmbG93WCcpOyB9O1xuZXhwb3J0IHZhciBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGN1cnJlbnQgPSBub2RlO1xuICAgIGRvIHtcbiAgICAgICAgLy8gU2tpcCBvdmVyIHNoYWRvdyByb290XG4gICAgICAgIGlmICh0eXBlb2YgU2hhZG93Um9vdCAhPT0gJ3VuZGVmaW5lZCcgJiYgY3VycmVudCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzU2Nyb2xsYWJsZSA9IGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgY3VycmVudCk7XG4gICAgICAgIGlmIChpc1Njcm9sbGFibGUpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IGdldFNjcm9sbFZhcmlhYmxlcyhheGlzLCBjdXJyZW50KSwgc2Nyb2xsSGVpZ2h0ID0gX2FbMV0sIGNsaWVudEhlaWdodCA9IF9hWzJdO1xuICAgICAgICAgICAgaWYgKHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XG4gICAgfSB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBvd25lckRvY3VtZW50LmJvZHkpO1xuICAgIHJldHVybiBmYWxzZTtcbn07XG52YXIgZ2V0VlNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxUb3AgPSBfYS5zY3JvbGxUb3AsIHNjcm9sbEhlaWdodCA9IF9hLnNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0ID0gX2EuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiBbXG4gICAgICAgIHNjcm9sbFRvcCxcbiAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgXTtcbn07XG52YXIgZ2V0SFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxMZWZ0ID0gX2Euc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggPSBfYS5zY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggPSBfYS5jbGllbnRXaWR0aDtcbiAgICByZXR1cm4gW1xuICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICBzY3JvbGxXaWR0aCxcbiAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgXTtcbn07XG52YXIgZWxlbWVudENvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGVsZW1lbnRDb3VsZEJlVlNjcm9sbGVkKG5vZGUpIDogZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQobm9kZSk7XG59O1xudmFyIGdldFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGdldFZTY3JvbGxWYXJpYWJsZXMobm9kZSkgOiBnZXRIU2Nyb2xsVmFyaWFibGVzKG5vZGUpO1xufTtcbnZhciBnZXREaXJlY3Rpb25GYWN0b3IgPSBmdW5jdGlvbiAoYXhpcywgZGlyZWN0aW9uKSB7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIGVsZW1lbnQncyBkaXJlY3Rpb24gaXMgcnRsIChyaWdodC10by1sZWZ0KSwgdGhlbiBzY3JvbGxMZWZ0IGlzIDAgd2hlbiB0aGUgc2Nyb2xsYmFyIGlzIGF0IGl0cyByaWdodG1vc3QgcG9zaXRpb24sXG4gICAgICogYW5kIHRoZW4gaW5jcmVhc2luZ2x5IG5lZ2F0aXZlIGFzIHlvdSBzY3JvbGwgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSBjb250ZW50LlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvc2Nyb2xsTGVmdFxuICAgICAqL1xuICAgIHJldHVybiBheGlzID09PSAnaCcgJiYgZGlyZWN0aW9uID09PSAncnRsJyA/IC0xIDogMTtcbn07XG5leHBvcnQgdmFyIGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uIChheGlzLCBlbmRUYXJnZXQsIGV2ZW50LCBzb3VyY2VEZWx0YSwgbm9PdmVyc2Nyb2xsKSB7XG4gICAgdmFyIGRpcmVjdGlvbkZhY3RvciA9IGdldERpcmVjdGlvbkZhY3RvcihheGlzLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbmRUYXJnZXQpLmRpcmVjdGlvbik7XG4gICAgdmFyIGRlbHRhID0gZGlyZWN0aW9uRmFjdG9yICogc291cmNlRGVsdGE7XG4gICAgLy8gZmluZCBzY3JvbGxhYmxlIHRhcmdldFxuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIHRhcmdldEluTG9jayA9IGVuZFRhcmdldC5jb250YWlucyh0YXJnZXQpO1xuICAgIHZhciBzaG91bGRDYW5jZWxTY3JvbGwgPSBmYWxzZTtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGxUb3AgPSAwO1xuICAgIGRvIHtcbiAgICAgICAgdmFyIF9hID0gZ2V0U2Nyb2xsVmFyaWFibGVzKGF4aXMsIHRhcmdldCksIHBvc2l0aW9uID0gX2FbMF0sIHNjcm9sbF8xID0gX2FbMV0sIGNhcGFjaXR5ID0gX2FbMl07XG4gICAgICAgIHZhciBlbGVtZW50U2Nyb2xsID0gc2Nyb2xsXzEgLSBjYXBhY2l0eSAtIGRpcmVjdGlvbkZhY3RvciAqIHBvc2l0aW9uO1xuICAgICAgICBpZiAocG9zaXRpb24gfHwgZWxlbWVudFNjcm9sbCkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgdGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbCArPSBlbGVtZW50U2Nyb2xsO1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbFRvcCArPSBwb3NpdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTtcbiAgICAgICAgfVxuICAgIH0gd2hpbGUgKFxuICAgIC8vIHBvcnRhbGVkIGNvbnRlbnRcbiAgICAoIXRhcmdldEluTG9jayAmJiB0YXJnZXQgIT09IGRvY3VtZW50LmJvZHkpIHx8XG4gICAgICAgIC8vIHNlbGYgY29udGVudFxuICAgICAgICAodGFyZ2V0SW5Mb2NrICYmIChlbmRUYXJnZXQuY29udGFpbnModGFyZ2V0KSB8fCBlbmRUYXJnZXQgPT09IHRhcmdldCkpKTtcbiAgICAvLyBoYW5kbGUgZXBzaWxvbiBhcm91bmQgMCAobm9uIHN0YW5kYXJkIHpvb20gbGV2ZWxzKVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiZcbiAgICAgICAgKChub092ZXJzY3JvbGwgJiYgTWF0aC5hYnMoYXZhaWxhYmxlU2Nyb2xsKSA8IDEpIHx8ICghbm9PdmVyc2Nyb2xsICYmIGRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWlzRGVsdGFQb3NpdGl2ZSAmJlxuICAgICAgICAoKG5vT3ZlcnNjcm9sbCAmJiBNYXRoLmFicyhhdmFpbGFibGVTY3JvbGxUb3ApIDwgMSkgfHwgKCFub092ZXJzY3JvbGwgJiYgLWRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsVG9wKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHNob3VsZENhbmNlbFNjcm9sbDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js": /*!****************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/medium.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ effectCar: () => (/* binding */ effectCar)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\");\n\nvar effectCar = (0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.createSidecarMedium)();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUMzQyxnQkFBZ0IsZ0VBQW1CIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTaWRlY2FyTWVkaXVtIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuZXhwb3J0IHZhciBlZmZlY3RDYXIgPSBjcmVhdGVTaWRlY2FyTWVkaXVtKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js": /*!*****************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/sidecar.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\");\n/* harmony import */ var _SideEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SideEffect */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.exportSidecar)(_medium__WEBPACK_IMPORTED_MODULE_1__.effectCar, _SideEffect__WEBPACK_IMPORTED_MODULE_2__.RemoveScrollSideCar));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L3NpZGVjYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QztBQUNPO0FBQ2Q7QUFDckMsaUVBQWUsMERBQWEsQ0FBQyw4Q0FBUyxFQUFFLDREQUFtQixDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvc2lkZWNhci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBvcnRTaWRlY2FyIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsU2lkZUNhciB9IGZyb20gJy4vU2lkZUVmZmVjdCc7XG5pbXBvcnQgeyBlZmZlY3RDYXIgfSBmcm9tICcuL21lZGl1bSc7XG5leHBvcnQgZGVmYXVsdCBleHBvcnRTaWRlY2FyKGVmZmVjdENhciwgUmVtb3ZlU2Nyb2xsU2lkZUNhcik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js": /*!*********************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/component.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleSingleton: () => (/* binding */ styleSingleton)\n/* harmony export */ });\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nvar styleSingleton = function () {\n var useStyle = (0,_hook__WEBPACK_IMPORTED_MODULE_0__.styleHookSingleton)();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsbUJBQW1CLHlEQUFrQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZUhvb2tTaW5nbGV0b24gfSBmcm9tICcuL2hvb2snO1xuLyoqXG4gKiBjcmVhdGUgYSBDb21wb25lbnQgdG8gYWRkIHN0eWxlcyBvbiBkZW1hbmRcbiAqIC0gc3R5bGVzIGFyZSBhZGRlZCB3aGVuIGZpcnN0IGluc3RhbmNlIGlzIG1vdW50ZWRcbiAqIC0gc3R5bGVzIGFyZSByZW1vdmVkIHdoZW4gdGhlIGxhc3QgaW5zdGFuY2UgaXMgdW5tb3VudGVkXG4gKiAtIGNoYW5naW5nIHN0eWxlcyBpbiBydW50aW1lIGRvZXMgbm90aGluZyB1bmxlc3MgZHluYW1pYyBpcyBzZXQuIEJ1dCB3aXRoIG11bHRpcGxlIGNvbXBvbmVudHMgdGhhdCBjYW4gbGVhZCB0byB0aGUgdW5kZWZpbmVkIGJlaGF2aW9yXG4gKi9cbmV4cG9ydCB2YXIgc3R5bGVTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gICAgdmFyIFNoZWV0ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciBzdHlsZXMgPSBfYS5zdHlsZXMsIGR5bmFtaWMgPSBfYS5keW5hbWljO1xuICAgICAgICB1c2VTdHlsZShzdHlsZXMsIGR5bmFtaWMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBTaGVldDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js": /*!****************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/hook.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleHookSingleton: () => (/* binding */ styleHookSingleton)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n\n\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nvar styleHookSingleton = function () {\n var sheet = (0,_singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)();\n return function (styles, isDynamic) {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaG9vay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStCO0FBQ21CO0FBQ2xEO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDTztBQUNQLGdCQUFnQiwrREFBbUI7QUFDbkM7QUFDQSxRQUFRLDRDQUFlO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9ob29rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlc2hlZXRTaW5nbGV0b24gfSBmcm9tICcuL3NpbmdsZXRvbic7XG4vKipcbiAqIGNyZWF0ZXMgYSBob29rIHRvIGNvbnRyb2wgc3R5bGUgc2luZ2xldG9uXG4gKiBAc2VlIHtAbGluayBzdHlsZVNpbmdsZXRvbn0gZm9yIGEgc2FmZXIgY29tcG9uZW50IHZlcnNpb25cbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gKiAvLy9cbiAqIHVzZVN0eWxlKCdib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbn0nKTtcbiAqL1xuZXhwb3J0IHZhciBzdHlsZUhvb2tTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNoZWV0ID0gc3R5bGVzaGVldFNpbmdsZXRvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoc3R5bGVzLCBpc0R5bmFtaWMpIHtcbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNoZWV0LmFkZChzdHlsZXMpO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzaGVldC5yZW1vdmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtzdHlsZXMgJiYgaXNEeW5hbWljXSk7XG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js": /*!*****************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleHookSingleton: () => (/* reexport safe */ _hook__WEBPACK_IMPORTED_MODULE_2__.styleHookSingleton),\n/* harmony export */ styleSingleton: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.styleSingleton),\n/* harmony export */ stylesheetSingleton: () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZDO0FBQ0s7QUFDTiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAnLi9jb21wb25lbnQnO1xuZXhwb3J0IHsgc3R5bGVzaGVldFNpbmdsZXRvbiB9IGZyb20gJy4vc2luZ2xldG9uJztcbmV4cG9ydCB7IHN0eWxlSG9va1NpbmdsZXRvbiB9IGZyb20gJy4vaG9vayc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js": /*!*********************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/singleton.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stylesheetSingleton: () => (/* binding */ stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var get_nonce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! get-nonce */ \"(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\");\n\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = (0,get_nonce__WEBPACK_IMPORTED_MODULE_0__.getNonce)();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nvar stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvc2luZ2xldG9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9zaW5nbGV0b24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Tm9uY2UgfSBmcm9tICdnZXQtbm9uY2UnO1xuZnVuY3Rpb24gbWFrZVN0eWxlVGFnKCkge1xuICAgIGlmICghZG9jdW1lbnQpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHRhZy50eXBlID0gJ3RleHQvY3NzJztcbiAgICB2YXIgbm9uY2UgPSBnZXROb25jZSgpO1xuICAgIGlmIChub25jZSkge1xuICAgICAgICB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cbmZ1bmN0aW9uIGluamVjdFN0eWxlcyh0YWcsIGNzcykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodGFnLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0YWcuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGluc2VydFN0eWxlVGFnKHRhZykge1xuICAgIHZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbn1cbmV4cG9ydCB2YXIgc3R5bGVzaGVldFNpbmdsZXRvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgdmFyIHN0eWxlc2hlZXQgPSBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFkZDogZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlciA9PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZXNoZWV0ID0gbWFrZVN0eWxlVGFnKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluamVjdFN0eWxlcyhzdHlsZXNoZWV0LCBzdHlsZSk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFN0eWxlVGFnKHN0eWxlc2hlZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXIrKztcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb3VudGVyLS07XG4gICAgICAgICAgICBpZiAoIWNvdW50ZXIgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQucGFyZW50Tm9kZSAmJiBzdHlsZXNoZWV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVzaGVldCk7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/redux-thunk/dist/redux-thunk.mjs": /*!*******************************************************!*\ !*** ./node_modules/redux-thunk/dist/redux-thunk.mjs ***! \*******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ thunk: () => (/* binding */ thunk),\n/* harmony export */ withExtraArgument: () => (/* binding */ withExtraArgument)\n/* harmony export */ });\n// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWR1eC10aHVuay9kaXN0L3JlZHV4LXRodW5rLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQSx3QkFBd0Isb0JBQW9CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWR1eC10aHVuay9kaXN0L3JlZHV4LXRodW5rLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvaW5kZXgudHNcbmZ1bmN0aW9uIGNyZWF0ZVRodW5rTWlkZGxld2FyZShleHRyYUFyZ3VtZW50KSB7XG4gIGNvbnN0IG1pZGRsZXdhcmUgPSAoeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfSkgPT4gKG5leHQpID0+IChhY3Rpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gYWN0aW9uKGRpc3BhdGNoLCBnZXRTdGF0ZSwgZXh0cmFBcmd1bWVudCk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gIH07XG4gIHJldHVybiBtaWRkbGV3YXJlO1xufVxudmFyIHRodW5rID0gY3JlYXRlVGh1bmtNaWRkbGV3YXJlKCk7XG52YXIgd2l0aEV4dHJhQXJndW1lbnQgPSBjcmVhdGVUaHVua01pZGRsZXdhcmU7XG5leHBvcnQge1xuICB0aHVuayxcbiAgd2l0aEV4dHJhQXJndW1lbnRcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/redux-thunk/dist/redux-thunk.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/redux/dist/redux.mjs": /*!*******************************************!*\ !*** ./node_modules/redux/dist/redux.mjs ***! \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __DO_NOT_USE__ActionTypes: () => (/* binding */ actionTypes_default),\n/* harmony export */ applyMiddleware: () => (/* binding */ applyMiddleware),\n/* harmony export */ bindActionCreators: () => (/* binding */ bindActionCreators),\n/* harmony export */ combineReducers: () => (/* binding */ combineReducers),\n/* harmony export */ compose: () => (/* binding */ compose),\n/* harmony export */ createStore: () => (/* binding */ createStore),\n/* harmony export */ isAction: () => (/* binding */ isAction),\n/* harmony export */ isPlainObject: () => (/* binding */ isPlainObject),\n/* harmony export */ legacy_createStore: () => (/* binding */ legacy_createStore)\n/* harmony export */ });\n// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (true) {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error( false ? 0 : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error( false ? 0 : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error( false ? 0 : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error( false ? 0 : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error( false ? 0 : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error( false ? 0 : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error( false ? 0 : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error( false ? 0 : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error( false ? 0 : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error( false ? 0 : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error( false ? 0 : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error( false ? 0 : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error( false ? 0 : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error( false ? 0 : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error( false ? 0 : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (true) {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (true) {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (true) {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error( false ? 0 : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error( false ? 0 : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error( false ? 0 : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\n\n//# sourceMappingURL=redux.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWR1eC9kaXN0L3JlZHV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0Esa0NBQWtDLE9BQU8seUNBQXlDLE1BQU07QUFDeEY7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiwrQkFBK0I7QUFDdEQsNkJBQTZCLCtCQUErQjtBQUM1RCw2REFBNkQsZUFBZTtBQUM1RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFxQyxHQUFHLENBQXlCLHNFQUFzRSxnQkFBZ0I7QUFDM0s7QUFDQTtBQUNBLG9CQUFvQixNQUFxQyxHQUFHLENBQXlCO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXFDLEdBQUcsQ0FBeUIsa0VBQWtFLGlCQUFpQjtBQUMxSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXFDLEdBQUcsQ0FBeUI7QUFDdkY7QUFDQTtBQUNBO0FBQ0E7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LHVCQUF1QjtBQUMvTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXFDLEdBQUcsQ0FBMEI7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFXRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9yZWR1eC9kaXN0L3JlZHV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvdXRpbHMvZm9ybWF0UHJvZEVycm9yTWVzc2FnZS50c1xuZnVuY3Rpb24gZm9ybWF0UHJvZEVycm9yTWVzc2FnZShjb2RlKSB7XG4gIHJldHVybiBgTWluaWZpZWQgUmVkdXggZXJyb3IgIyR7Y29kZX07IHZpc2l0IGh0dHBzOi8vcmVkdXguanMub3JnL0Vycm9ycz9jb2RlPSR7Y29kZX0gZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycy4gYDtcbn1cblxuLy8gc3JjL3V0aWxzL3N5bWJvbC1vYnNlcnZhYmxlLnRzXG52YXIgJCRvYnNlcnZhYmxlID0gLyogQF9fUFVSRV9fICovICgoKSA9PiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgXCJAQG9ic2VydmFibGVcIikoKTtcbnZhciBzeW1ib2xfb2JzZXJ2YWJsZV9kZWZhdWx0ID0gJCRvYnNlcnZhYmxlO1xuXG4vLyBzcmMvdXRpbHMvYWN0aW9uVHlwZXMudHNcbnZhciByYW5kb21TdHJpbmcgPSAoKSA9PiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykuc3BsaXQoXCJcIikuam9pbihcIi5cIik7XG52YXIgQWN0aW9uVHlwZXMgPSB7XG4gIElOSVQ6IGBAQHJlZHV4L0lOSVQkey8qIEBfX1BVUkVfXyAqLyByYW5kb21TdHJpbmcoKX1gLFxuICBSRVBMQUNFOiBgQEByZWR1eC9SRVBMQUNFJHsvKiBAX19QVVJFX18gKi8gcmFuZG9tU3RyaW5nKCl9YCxcbiAgUFJPQkVfVU5LTk9XTl9BQ1RJT046ICgpID0+IGBAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OJHtyYW5kb21TdHJpbmcoKX1gXG59O1xudmFyIGFjdGlvblR5cGVzX2RlZmF1bHQgPSBBY3Rpb25UeXBlcztcblxuLy8gc3JjL3V0aWxzL2lzUGxhaW5PYmplY3QudHNcbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG4gIGxldCBwcm90byA9IG9iajtcbiAgd2hpbGUgKE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90bykgIT09IG51bGwpIHtcbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBwcm90byB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gbnVsbDtcbn1cblxuLy8gc3JjL3V0aWxzL2tpbmRPZi50c1xuZnVuY3Rpb24gbWluaUtpbmRPZih2YWwpIHtcbiAgaWYgKHZhbCA9PT0gdm9pZCAwKVxuICAgIHJldHVybiBcInVuZGVmaW5lZFwiO1xuICBpZiAodmFsID09PSBudWxsKVxuICAgIHJldHVybiBcIm51bGxcIjtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgY2FzZSBcImZ1bmN0aW9uXCI6IHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKVxuICAgIHJldHVybiBcImFycmF5XCI7XG4gIGlmIChpc0RhdGUodmFsKSlcbiAgICByZXR1cm4gXCJkYXRlXCI7XG4gIGlmIChpc0Vycm9yKHZhbCkpXG4gICAgcmV0dXJuIFwiZXJyb3JcIjtcbiAgY29uc3QgY29uc3RydWN0b3JOYW1lID0gY3Rvck5hbWUodmFsKTtcbiAgc3dpdGNoIChjb25zdHJ1Y3Rvck5hbWUpIHtcbiAgICBjYXNlIFwiU3ltYm9sXCI6XG4gICAgY2FzZSBcIlByb21pc2VcIjpcbiAgICBjYXNlIFwiV2Vha01hcFwiOlxuICAgIGNhc2UgXCJXZWFrU2V0XCI6XG4gICAgY2FzZSBcIk1hcFwiOlxuICAgIGNhc2UgXCJTZXRcIjpcbiAgICAgIHJldHVybiBjb25zdHJ1Y3Rvck5hbWU7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGN0b3JOYW1lKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbC5jb25zdHJ1Y3RvciA9PT0gXCJmdW5jdGlvblwiID8gdmFsLmNvbnN0cnVjdG9yLm5hbWUgOiBudWxsO1xufVxuZnVuY3Rpb24gaXNFcnJvcih2YWwpIHtcbiAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIEVycm9yIHx8IHR5cGVvZiB2YWwubWVzc2FnZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWwuY29uc3RydWN0b3IgJiYgdHlwZW9mIHZhbC5jb25zdHJ1Y3Rvci5zdGFja1RyYWNlTGltaXQgPT09IFwibnVtYmVyXCI7XG59XG5mdW5jdGlvbiBpc0RhdGUodmFsKSB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBEYXRlKVxuICAgIHJldHVybiB0cnVlO1xuICByZXR1cm4gdHlwZW9mIHZhbC50b0RhdGVTdHJpbmcgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgdmFsLmdldERhdGUgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgdmFsLnNldERhdGUgPT09IFwiZnVuY3Rpb25cIjtcbn1cbmZ1bmN0aW9uIGtpbmRPZih2YWwpIHtcbiAgbGV0IHR5cGVPZlZhbCA9IHR5cGVvZiB2YWw7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB0eXBlT2ZWYWwgPSBtaW5pS2luZE9mKHZhbCk7XG4gIH1cbiAgcmV0dXJuIHR5cGVPZlZhbDtcbn1cblxuLy8gc3JjL2NyZWF0ZVN0b3JlLnRzXG5mdW5jdGlvbiBjcmVhdGVTdG9yZShyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSwgZW5oYW5jZXIpIHtcbiAgaWYgKHR5cGVvZiByZWR1Y2VyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyKSA6IGBFeHBlY3RlZCB0aGUgcm9vdCByZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHtraW5kT2YocmVkdWNlcil9J2ApO1xuICB9XG4gIGlmICh0eXBlb2YgcHJlbG9hZGVkU3RhdGUgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZW5oYW5jZXIgPT09IFwiZnVuY3Rpb25cIiB8fCB0eXBlb2YgZW5oYW5jZXIgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgYXJndW1lbnRzWzNdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgwKSA6IFwiSXQgbG9va3MgbGlrZSB5b3UgYXJlIHBhc3Npbmcgc2V2ZXJhbCBzdG9yZSBlbmhhbmNlcnMgdG8gY3JlYXRlU3RvcmUoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBjb21wb3NlIHRoZW0gdG9nZXRoZXIgdG8gYSBzaW5nbGUgZnVuY3Rpb24uIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNC1zdG9yZSNjcmVhdGluZy1hLXN0b3JlLXdpdGgtZW5oYW5jZXJzIGZvciBhbiBleGFtcGxlLlwiKTtcbiAgfVxuICBpZiAodHlwZW9mIHByZWxvYWRlZFN0YXRlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIGVuaGFuY2VyID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgZW5oYW5jZXIgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgICBwcmVsb2FkZWRTdGF0ZSA9IHZvaWQgMDtcbiAgfVxuICBpZiAodHlwZW9mIGVuaGFuY2VyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgaWYgKHR5cGVvZiBlbmhhbmNlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxKSA6IGBFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke2tpbmRPZihlbmhhbmNlcil9J2ApO1xuICAgIH1cbiAgICByZXR1cm4gZW5oYW5jZXIoY3JlYXRlU3RvcmUpKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlKTtcbiAgfVxuICBsZXQgY3VycmVudFJlZHVjZXIgPSByZWR1Y2VyO1xuICBsZXQgY3VycmVudFN0YXRlID0gcHJlbG9hZGVkU3RhdGU7XG4gIGxldCBjdXJyZW50TGlzdGVuZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgbGV0IG5leHRMaXN0ZW5lcnMgPSBjdXJyZW50TGlzdGVuZXJzO1xuICBsZXQgbGlzdGVuZXJJZENvdW50ZXIgPSAwO1xuICBsZXQgaXNEaXNwYXRjaGluZyA9IGZhbHNlO1xuICBmdW5jdGlvbiBlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzKCkge1xuICAgIGlmIChuZXh0TGlzdGVuZXJzID09PSBjdXJyZW50TGlzdGVuZXJzKSB7XG4gICAgICBuZXh0TGlzdGVuZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGN1cnJlbnRMaXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIsIGtleSkgPT4ge1xuICAgICAgICBuZXh0TGlzdGVuZXJzLnNldChrZXksIGxpc3RlbmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBnZXRTdGF0ZSgpIHtcbiAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMykgOiBcIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuZ2V0U3RhdGUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIFRoZSByZWR1Y2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIHRoZSBzdGF0ZSBhcyBhbiBhcmd1bWVudC4gUGFzcyBpdCBkb3duIGZyb20gdGhlIHRvcCByZWR1Y2VyIGluc3RlYWQgb2YgcmVhZGluZyBpdCBmcm9tIHRoZSBzdG9yZS5cIik7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH1cbiAgZnVuY3Rpb24gc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg0KSA6IGBFeHBlY3RlZCB0aGUgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke2tpbmRPZihsaXN0ZW5lcil9J2ApO1xuICAgIH1cbiAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNSkgOiBcIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuc3Vic2NyaWJlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBJZiB5b3Ugd291bGQgbGlrZSB0byBiZSBub3RpZmllZCBhZnRlciB0aGUgc3RvcmUgaGFzIGJlZW4gdXBkYXRlZCwgc3Vic2NyaWJlIGZyb20gYSBjb21wb25lbnQgYW5kIGludm9rZSBzdG9yZS5nZXRTdGF0ZSgpIGluIHRoZSBjYWxsYmFjayB0byBhY2Nlc3MgdGhlIGxhdGVzdCBzdGF0ZS4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL2FwaS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgICB9XG4gICAgbGV0IGlzU3Vic2NyaWJlZCA9IHRydWU7XG4gICAgZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO1xuICAgIGNvbnN0IGxpc3RlbmVySWQgPSBsaXN0ZW5lcklkQ291bnRlcisrO1xuICAgIG5leHRMaXN0ZW5lcnMuc2V0KGxpc3RlbmVySWQsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICBpZiAoIWlzU3Vic2NyaWJlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg2KSA6IFwiWW91IG1heSBub3QgdW5zdWJzY3JpYmUgZnJvbSBhIHN0b3JlIGxpc3RlbmVyIHdoaWxlIHRoZSByZWR1Y2VyIGlzIGV4ZWN1dGluZy4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL2FwaS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgICAgIH1cbiAgICAgIGlzU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgICAgZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO1xuICAgICAgbmV4dExpc3RlbmVycy5kZWxldGUobGlzdGVuZXJJZCk7XG4gICAgICBjdXJyZW50TGlzdGVuZXJzID0gbnVsbDtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGRpc3BhdGNoKGFjdGlvbikge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChhY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg3KSA6IGBBY3Rpb25zIG11c3QgYmUgcGxhaW4gb2JqZWN0cy4gSW5zdGVhZCwgdGhlIGFjdHVhbCB0eXBlIHdhczogJyR7a2luZE9mKGFjdGlvbil9Jy4gWW91IG1heSBuZWVkIHRvIGFkZCBtaWRkbGV3YXJlIHRvIHlvdXIgc3RvcmUgc2V0dXAgdG8gaGFuZGxlIGRpc3BhdGNoaW5nIG90aGVyIHZhbHVlcywgc3VjaCBhcyAncmVkdXgtdGh1bmsnIHRvIGhhbmRsZSBkaXNwYXRjaGluZyBmdW5jdGlvbnMuIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNC1zdG9yZSNtaWRkbGV3YXJlIGFuZCBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNi1hc3luYy1sb2dpYyN1c2luZy10aGUtcmVkdXgtdGh1bmstbWlkZGxld2FyZSBmb3IgZXhhbXBsZXMuYCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYWN0aW9uLnR5cGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDgpIDogJ0FjdGlvbnMgbWF5IG5vdCBoYXZlIGFuIHVuZGVmaW5lZCBcInR5cGVcIiBwcm9wZXJ0eS4gWW91IG1heSBoYXZlIG1pc3NwZWxsZWQgYW4gYWN0aW9uIHR5cGUgc3RyaW5nIGNvbnN0YW50LicpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGFjdGlvbi50eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNykgOiBgQWN0aW9uIFwidHlwZVwiIHByb3BlcnR5IG11c3QgYmUgYSBzdHJpbmcuIEluc3RlYWQsIHRoZSBhY3R1YWwgdHlwZSB3YXM6ICcke2tpbmRPZihhY3Rpb24udHlwZSl9Jy4gVmFsdWUgd2FzOiAnJHthY3Rpb24udHlwZX0nIChzdHJpbmdpZmllZClgKTtcbiAgICB9XG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDkpIDogXCJSZWR1Y2VycyBtYXkgbm90IGRpc3BhdGNoIGFjdGlvbnMuXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgaXNEaXNwYXRjaGluZyA9IHRydWU7XG4gICAgICBjdXJyZW50U3RhdGUgPSBjdXJyZW50UmVkdWNlcihjdXJyZW50U3RhdGUsIGFjdGlvbik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlzRGlzcGF0Y2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbGlzdGVuZXJzID0gY3VycmVudExpc3RlbmVycyA9IG5leHRMaXN0ZW5lcnM7XG4gICAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiB7XG4gICAgICBsaXN0ZW5lcigpO1xuICAgIH0pO1xuICAgIHJldHVybiBhY3Rpb247XG4gIH1cbiAgZnVuY3Rpb24gcmVwbGFjZVJlZHVjZXIobmV4dFJlZHVjZXIpIHtcbiAgICBpZiAodHlwZW9mIG5leHRSZWR1Y2VyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEwKSA6IGBFeHBlY3RlZCB0aGUgbmV4dFJlZHVjZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke2tpbmRPZihuZXh0UmVkdWNlcil9YCk7XG4gICAgfVxuICAgIGN1cnJlbnRSZWR1Y2VyID0gbmV4dFJlZHVjZXI7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogYWN0aW9uVHlwZXNfZGVmYXVsdC5SRVBMQUNFXG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gb2JzZXJ2YWJsZSgpIHtcbiAgICBjb25zdCBvdXRlclN1YnNjcmliZSA9IHN1YnNjcmliZTtcbiAgICByZXR1cm4ge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbWluaW1hbCBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbiBtZXRob2QuXG4gICAgICAgKiBAcGFyYW0gb2JzZXJ2ZXIgQW55IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIG9ic2VydmVyLlxuICAgICAgICogVGhlIG9ic2VydmVyIG9iamVjdCBzaG91bGQgaGF2ZSBhIGBuZXh0YCBtZXRob2QuXG4gICAgICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBhbiBgdW5zdWJzY3JpYmVgIG1ldGhvZCB0aGF0IGNhblxuICAgICAgICogYmUgdXNlZCB0byB1bnN1YnNjcmliZSB0aGUgb2JzZXJ2YWJsZSBmcm9tIHRoZSBzdG9yZSwgYW5kIHByZXZlbnQgZnVydGhlclxuICAgICAgICogZW1pc3Npb24gb2YgdmFsdWVzIGZyb20gdGhlIG9ic2VydmFibGUuXG4gICAgICAgKi9cbiAgICAgIHN1YnNjcmliZShvYnNlcnZlcikge1xuICAgICAgICBpZiAodHlwZW9mIG9ic2VydmVyICE9PSBcIm9iamVjdFwiIHx8IG9ic2VydmVyID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTEpIDogYEV4cGVjdGVkIHRoZSBvYnNlcnZlciB0byBiZSBhbiBvYmplY3QuIEluc3RlYWQsIHJlY2VpdmVkOiAnJHtraW5kT2Yob2JzZXJ2ZXIpfSdgKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvYnNlcnZlU3RhdGUoKSB7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJBc09ic2VydmVyID0gb2JzZXJ2ZXI7XG4gICAgICAgICAgaWYgKG9ic2VydmVyQXNPYnNlcnZlci5uZXh0KSB7XG4gICAgICAgICAgICBvYnNlcnZlckFzT2JzZXJ2ZXIubmV4dChnZXRTdGF0ZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gb3V0ZXJTdWJzY3JpYmUob2JzZXJ2ZVN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1bnN1YnNjcmliZVxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIFtzeW1ib2xfb2JzZXJ2YWJsZV9kZWZhdWx0XSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogYWN0aW9uVHlwZXNfZGVmYXVsdC5JTklUXG4gIH0pO1xuICBjb25zdCBzdG9yZSA9IHtcbiAgICBkaXNwYXRjaCxcbiAgICBzdWJzY3JpYmUsXG4gICAgZ2V0U3RhdGUsXG4gICAgcmVwbGFjZVJlZHVjZXIsXG4gICAgW3N5bWJvbF9vYnNlcnZhYmxlX2RlZmF1bHRdOiBvYnNlcnZhYmxlXG4gIH07XG4gIHJldHVybiBzdG9yZTtcbn1cbmZ1bmN0aW9uIGxlZ2FjeV9jcmVhdGVTdG9yZShyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSwgZW5oYW5jZXIpIHtcbiAgcmV0dXJuIGNyZWF0ZVN0b3JlKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlLCBlbmhhbmNlcik7XG59XG5cbi8vIHNyYy91dGlscy93YXJuaW5nLnRzXG5mdW5jdGlvbiB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICB9XG4gIHRyeSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9IGNhdGNoIChlKSB7XG4gIH1cbn1cblxuLy8gc3JjL2NvbWJpbmVSZWR1Y2Vycy50c1xuZnVuY3Rpb24gZ2V0VW5leHBlY3RlZFN0YXRlU2hhcGVXYXJuaW5nTWVzc2FnZShpbnB1dFN0YXRlLCByZWR1Y2VycywgYWN0aW9uLCB1bmV4cGVjdGVkS2V5Q2FjaGUpIHtcbiAgY29uc3QgcmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhyZWR1Y2Vycyk7XG4gIGNvbnN0IGFyZ3VtZW50TmFtZSA9IGFjdGlvbiAmJiBhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXNfZGVmYXVsdC5JTklUID8gXCJwcmVsb2FkZWRTdGF0ZSBhcmd1bWVudCBwYXNzZWQgdG8gY3JlYXRlU3RvcmVcIiA6IFwicHJldmlvdXMgc3RhdGUgcmVjZWl2ZWQgYnkgdGhlIHJlZHVjZXJcIjtcbiAgaWYgKHJlZHVjZXJLZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBcIlN0b3JlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCByZWR1Y2VyLiBNYWtlIHN1cmUgdGhlIGFyZ3VtZW50IHBhc3NlZCB0byBjb21iaW5lUmVkdWNlcnMgaXMgYW4gb2JqZWN0IHdob3NlIHZhbHVlcyBhcmUgcmVkdWNlcnMuXCI7XG4gIH1cbiAgaWYgKCFpc1BsYWluT2JqZWN0KGlucHV0U3RhdGUpKSB7XG4gICAgcmV0dXJuIGBUaGUgJHthcmd1bWVudE5hbWV9IGhhcyB1bmV4cGVjdGVkIHR5cGUgb2YgXCIke2tpbmRPZihpbnB1dFN0YXRlKX1cIi4gRXhwZWN0ZWQgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzOiBcIiR7cmVkdWNlcktleXMuam9pbignXCIsIFwiJyl9XCJgO1xuICB9XG4gIGNvbnN0IHVuZXhwZWN0ZWRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRTdGF0ZSkuZmlsdGVyKChrZXkpID0+ICFyZWR1Y2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICF1bmV4cGVjdGVkS2V5Q2FjaGVba2V5XSk7XG4gIHVuZXhwZWN0ZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIHVuZXhwZWN0ZWRLZXlDYWNoZVtrZXldID0gdHJ1ZTtcbiAgfSk7XG4gIGlmIChhY3Rpb24gJiYgYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzX2RlZmF1bHQuUkVQTEFDRSlcbiAgICByZXR1cm47XG4gIGlmICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGBVbmV4cGVjdGVkICR7dW5leHBlY3RlZEtleXMubGVuZ3RoID4gMSA/IFwia2V5c1wiIDogXCJrZXlcIn0gXCIke3VuZXhwZWN0ZWRLZXlzLmpvaW4oJ1wiLCBcIicpfVwiIGZvdW5kIGluICR7YXJndW1lbnROYW1lfS4gRXhwZWN0ZWQgdG8gZmluZCBvbmUgb2YgdGhlIGtub3duIHJlZHVjZXIga2V5cyBpbnN0ZWFkOiBcIiR7cmVkdWNlcktleXMuam9pbignXCIsIFwiJyl9XCIuIFVuZXhwZWN0ZWQga2V5cyB3aWxsIGJlIGlnbm9yZWQuYDtcbiAgfVxufVxuZnVuY3Rpb24gYXNzZXJ0UmVkdWNlclNoYXBlKHJlZHVjZXJzKSB7XG4gIE9iamVjdC5rZXlzKHJlZHVjZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCByZWR1Y2VyID0gcmVkdWNlcnNba2V5XTtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSByZWR1Y2VyKHZvaWQgMCwge1xuICAgICAgdHlwZTogYWN0aW9uVHlwZXNfZGVmYXVsdC5JTklUXG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEyKSA6IGBUaGUgc2xpY2UgcmVkdWNlciBmb3Iga2V5IFwiJHtrZXl9XCIgcmV0dXJuZWQgdW5kZWZpbmVkIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSWYgdGhlIHN0YXRlIHBhc3NlZCB0byB0aGUgcmVkdWNlciBpcyB1bmRlZmluZWQsIHlvdSBtdXN0IGV4cGxpY2l0bHkgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLiBUaGUgaW5pdGlhbCBzdGF0ZSBtYXkgbm90IGJlIHVuZGVmaW5lZC4gSWYgeW91IGRvbid0IHdhbnQgdG8gc2V0IGEgdmFsdWUgZm9yIHRoaXMgcmVkdWNlciwgeW91IGNhbiB1c2UgbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZC5gKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByZWR1Y2VyKHZvaWQgMCwge1xuICAgICAgdHlwZTogYWN0aW9uVHlwZXNfZGVmYXVsdC5QUk9CRV9VTktOT1dOX0FDVElPTigpXG4gICAgfSkgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEzKSA6IGBUaGUgc2xpY2UgcmVkdWNlciBmb3Iga2V5IFwiJHtrZXl9XCIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gcHJvYmVkIHdpdGggYSByYW5kb20gdHlwZS4gRG9uJ3QgdHJ5IHRvIGhhbmRsZSAnJHthY3Rpb25UeXBlc19kZWZhdWx0LklOSVR9JyBvciBvdGhlciBhY3Rpb25zIGluIFwicmVkdXgvKlwiIG5hbWVzcGFjZS4gVGhleSBhcmUgY29uc2lkZXJlZCBwcml2YXRlLiBJbnN0ZWFkLCB5b3UgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHVubGVzcyBpdCBpcyB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBhY3Rpb24gdHlwZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQsIGJ1dCBjYW4gYmUgbnVsbC5gKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gY29tYmluZVJlZHVjZXJzKHJlZHVjZXJzKSB7XG4gIGNvbnN0IHJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMocmVkdWNlcnMpO1xuICBjb25zdCBmaW5hbFJlZHVjZXJzID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmVkdWNlcktleXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSByZWR1Y2VyS2V5c1tpXTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBpZiAodHlwZW9mIHJlZHVjZXJzW2tleV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgd2FybmluZyhgTm8gcmVkdWNlciBwcm92aWRlZCBmb3Iga2V5IFwiJHtrZXl9XCJgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiByZWR1Y2Vyc1trZXldID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGZpbmFsUmVkdWNlcnNba2V5XSA9IHJlZHVjZXJzW2tleV07XG4gICAgfVxuICB9XG4gIGNvbnN0IGZpbmFsUmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhmaW5hbFJlZHVjZXJzKTtcbiAgbGV0IHVuZXhwZWN0ZWRLZXlDYWNoZTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHVuZXhwZWN0ZWRLZXlDYWNoZSA9IHt9O1xuICB9XG4gIGxldCBzaGFwZUFzc2VydGlvbkVycm9yO1xuICB0cnkge1xuICAgIGFzc2VydFJlZHVjZXJTaGFwZShmaW5hbFJlZHVjZXJzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHNoYXBlQXNzZXJ0aW9uRXJyb3IgPSBlO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBjb21iaW5hdGlvbihzdGF0ZSA9IHt9LCBhY3Rpb24pIHtcbiAgICBpZiAoc2hhcGVBc3NlcnRpb25FcnJvcikge1xuICAgICAgdGhyb3cgc2hhcGVBc3NlcnRpb25FcnJvcjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc3Qgd2FybmluZ01lc3NhZ2UgPSBnZXRVbmV4cGVjdGVkU3RhdGVTaGFwZVdhcm5pbmdNZXNzYWdlKHN0YXRlLCBmaW5hbFJlZHVjZXJzLCBhY3Rpb24sIHVuZXhwZWN0ZWRLZXlDYWNoZSk7XG4gICAgICBpZiAod2FybmluZ01lc3NhZ2UpIHtcbiAgICAgICAgd2FybmluZyh3YXJuaW5nTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBoYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgY29uc3QgbmV4dFN0YXRlID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaW5hbFJlZHVjZXJLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrZXkgPSBmaW5hbFJlZHVjZXJLZXlzW2ldO1xuICAgICAgY29uc3QgcmVkdWNlciA9IGZpbmFsUmVkdWNlcnNba2V5XTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGVGb3JLZXkgPSBzdGF0ZVtrZXldO1xuICAgICAgY29uc3QgbmV4dFN0YXRlRm9yS2V5ID0gcmVkdWNlcihwcmV2aW91c1N0YXRlRm9yS2V5LCBhY3Rpb24pO1xuICAgICAgaWYgKHR5cGVvZiBuZXh0U3RhdGVGb3JLZXkgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uVHlwZSA9IGFjdGlvbiAmJiBhY3Rpb24udHlwZTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTQpIDogYFdoZW4gY2FsbGVkIHdpdGggYW4gYWN0aW9uIG9mIHR5cGUgJHthY3Rpb25UeXBlID8gYFwiJHtTdHJpbmcoYWN0aW9uVHlwZSl9XCJgIDogXCIodW5rbm93biB0eXBlKVwifSwgdGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcIiR7a2V5fVwiIHJldHVybmVkIHVuZGVmaW5lZC4gVG8gaWdub3JlIGFuIGFjdGlvbiwgeW91IG11c3QgZXhwbGljaXRseSByZXR1cm4gdGhlIHByZXZpb3VzIHN0YXRlLiBJZiB5b3Ugd2FudCB0aGlzIHJlZHVjZXIgdG8gaG9sZCBubyB2YWx1ZSwgeW91IGNhbiByZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZC5gKTtcbiAgICAgIH1cbiAgICAgIG5leHRTdGF0ZVtrZXldID0gbmV4dFN0YXRlRm9yS2V5O1xuICAgICAgaGFzQ2hhbmdlZCA9IGhhc0NoYW5nZWQgfHwgbmV4dFN0YXRlRm9yS2V5ICE9PSBwcmV2aW91c1N0YXRlRm9yS2V5O1xuICAgIH1cbiAgICBoYXNDaGFuZ2VkID0gaGFzQ2hhbmdlZCB8fCBmaW5hbFJlZHVjZXJLZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoc3RhdGUpLmxlbmd0aDtcbiAgICByZXR1cm4gaGFzQ2hhbmdlZCA/IG5leHRTdGF0ZSA6IHN0YXRlO1xuICB9O1xufVxuXG4vLyBzcmMvYmluZEFjdGlvbkNyZWF0b3JzLnRzXG5mdW5jdGlvbiBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9yLCBkaXNwYXRjaCkge1xuICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykge1xuICAgIHJldHVybiBkaXNwYXRjaChhY3Rpb25DcmVhdG9yLmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGJpbmRBY3Rpb25DcmVhdG9yKGFjdGlvbkNyZWF0b3JzLCBkaXNwYXRjaCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyAhPT0gXCJvYmplY3RcIiB8fCBhY3Rpb25DcmVhdG9ycyA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE2KSA6IGBiaW5kQWN0aW9uQ3JlYXRvcnMgZXhwZWN0ZWQgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb24sIGJ1dCBpbnN0ZWFkIHJlY2VpdmVkOiAnJHtraW5kT2YoYWN0aW9uQ3JlYXRvcnMpfScuIERpZCB5b3Ugd3JpdGUgXCJpbXBvcnQgQWN0aW9uQ3JlYXRvcnMgZnJvbVwiIGluc3RlYWQgb2YgXCJpbXBvcnQgKiBhcyBBY3Rpb25DcmVhdG9ycyBmcm9tXCI/YCk7XG4gIH1cbiAgY29uc3QgYm91bmRBY3Rpb25DcmVhdG9ycyA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb25DcmVhdG9ycykge1xuICAgIGNvbnN0IGFjdGlvbkNyZWF0b3IgPSBhY3Rpb25DcmVhdG9yc1trZXldO1xuICAgIGlmICh0eXBlb2YgYWN0aW9uQ3JlYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBib3VuZEFjdGlvbkNyZWF0b3JzW2tleV0gPSBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9yLCBkaXNwYXRjaCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBib3VuZEFjdGlvbkNyZWF0b3JzO1xufVxuXG4vLyBzcmMvY29tcG9zZS50c1xuZnVuY3Rpb24gY29tcG9zZSguLi5mdW5jcykge1xuICBpZiAoZnVuY3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChhcmcpID0+IGFyZztcbiAgfVxuICBpZiAoZnVuY3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGZ1bmNzWzBdO1xuICB9XG4gIHJldHVybiBmdW5jcy5yZWR1Y2UoKGEsIGIpID0+ICguLi5hcmdzKSA9PiBhKGIoLi4uYXJncykpKTtcbn1cblxuLy8gc3JjL2FwcGx5TWlkZGxld2FyZS50c1xuZnVuY3Rpb24gYXBwbHlNaWRkbGV3YXJlKC4uLm1pZGRsZXdhcmVzKSB7XG4gIHJldHVybiAoY3JlYXRlU3RvcmUyKSA9PiAocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IGNyZWF0ZVN0b3JlMihyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSk7XG4gICAgbGV0IGRpc3BhdGNoID0gKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTUpIDogXCJEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guXCIpO1xuICAgIH07XG4gICAgY29uc3QgbWlkZGxld2FyZUFQSSA9IHtcbiAgICAgIGdldFN0YXRlOiBzdG9yZS5nZXRTdGF0ZSxcbiAgICAgIGRpc3BhdGNoOiAoYWN0aW9uLCAuLi5hcmdzKSA9PiBkaXNwYXRjaChhY3Rpb24sIC4uLmFyZ3MpXG4gICAgfTtcbiAgICBjb25zdCBjaGFpbiA9IG1pZGRsZXdhcmVzLm1hcCgobWlkZGxld2FyZSkgPT4gbWlkZGxld2FyZShtaWRkbGV3YXJlQVBJKSk7XG4gICAgZGlzcGF0Y2ggPSBjb21wb3NlKC4uLmNoYWluKShzdG9yZS5kaXNwYXRjaCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xufVxuXG4vLyBzcmMvdXRpbHMvaXNBY3Rpb24udHNcbmZ1bmN0aW9uIGlzQWN0aW9uKGFjdGlvbikge1xuICByZXR1cm4gaXNQbGFpbk9iamVjdChhY3Rpb24pICYmIFwidHlwZVwiIGluIGFjdGlvbiAmJiB0eXBlb2YgYWN0aW9uLnR5cGUgPT09IFwic3RyaW5nXCI7XG59XG5leHBvcnQge1xuICBhY3Rpb25UeXBlc19kZWZhdWx0IGFzIF9fRE9fTk9UX1VTRV9fQWN0aW9uVHlwZXMsXG4gIGFwcGx5TWlkZGxld2FyZSxcbiAgYmluZEFjdGlvbkNyZWF0b3JzLFxuICBjb21iaW5lUmVkdWNlcnMsXG4gIGNvbXBvc2UsXG4gIGNyZWF0ZVN0b3JlLFxuICBpc0FjdGlvbixcbiAgaXNQbGFpbk9iamVjdCxcbiAgbGVnYWN5X2NyZWF0ZVN0b3JlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVkdXgubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/redux/dist/redux.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/reselect/dist/reselect.mjs": /*!*************************************************!*\ !*** ./node_modules/reselect/dist/reselect.mjs ***! \*************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSelector: () => (/* binding */ createSelector),\n/* harmony export */ createSelectorCreator: () => (/* binding */ createSelectorCreator),\n/* harmony export */ createStructuredSelector: () => (/* binding */ createStructuredSelector),\n/* harmony export */ lruMemoize: () => (/* binding */ lruMemoize),\n/* harmony export */ referenceEqualityCheck: () => (/* binding */ referenceEqualityCheck),\n/* harmony export */ setGlobalDevModeChecks: () => (/* binding */ setGlobalDevModeChecks),\n/* harmony export */ unstable_autotrackMemoize: () => (/* binding */ autotrackMemoize),\n/* harmony export */ weakMapMemoize: () => (/* binding */ weakMapMemoize)\n/* harmony export */ });\n// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject)\n isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue)\n return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const lastResultValue = lastResult?.deref?.() ?? lastResult;\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? new Ref(result) : result;\n }\n }\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = [],\n devModeChecks = {}\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (true) {\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun)\n firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\n\n//# sourceMappingURL=reselect.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZXNlbGVjdC9kaXN0L3Jlc2VsZWN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVUsMEJBQTBCO0FBQ3BDLFVBQVUsaURBQWlEO0FBQzNELCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsU0FBUyxRQUFRO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3RkFBd0YsWUFBWTtBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLHVGQUF1RixjQUFjO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELHVCQUF1QjtBQUNoRjtBQUNBLDJCQUEyQixhQUFhLEdBQUcsVUFBVTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLFNBQVM7QUFDbkIsa0JBQWtCLFlBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsNkNBQTZDO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxLQUFLO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLFFBQVE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSx3QkFBd0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsZ0JBQWdCO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixZQUFZO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckIsb0JBQW9CLFlBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtHQUFrRztBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0EsVUFBVSxzQkFBc0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckIsZ0NBQWdDLE9BQU87QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9GQUFvRixrQkFBa0I7QUFDdEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsSUFBcUM7QUFDL0MsZ0JBQWdCLDZDQUE2QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsZ0RBQWdEO0FBQzlELGNBQWMsOENBQThDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0hBQStILDRCQUE0QjtBQUMzSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxJQUFJO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILElBQUk7QUFDSjtBQVVFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3Jlc2VsZWN0L2Rpc3QvcmVzZWxlY3QubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9kZXZNb2RlQ2hlY2tzL2lkZW50aXR5RnVuY3Rpb25DaGVjay50c1xudmFyIHJ1bklkZW50aXR5RnVuY3Rpb25DaGVjayA9IChyZXN1bHRGdW5jLCBpbnB1dFNlbGVjdG9yc1Jlc3VsdHMsIG91dHB1dFNlbGVjdG9yUmVzdWx0KSA9PiB7XG4gIGlmIChpbnB1dFNlbGVjdG9yc1Jlc3VsdHMubGVuZ3RoID09PSAxICYmIGlucHV0U2VsZWN0b3JzUmVzdWx0c1swXSA9PT0gb3V0cHV0U2VsZWN0b3JSZXN1bHQpIHtcbiAgICBsZXQgaXNJbnB1dFNhbWVBc091dHB1dCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbXB0eU9iamVjdCA9IHt9O1xuICAgICAgaWYgKHJlc3VsdEZ1bmMoZW1wdHlPYmplY3QpID09PSBlbXB0eU9iamVjdClcbiAgICAgICAgaXNJbnB1dFNhbWVBc091dHB1dCA9IHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICAgIGlmIChpc0lucHV0U2FtZUFzT3V0cHV0KSB7XG4gICAgICBsZXQgc3RhY2sgPSB2b2lkIDA7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgO1xuICAgICAgICAoeyBzdGFjayB9ID0gZSk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIFwiVGhlIHJlc3VsdCBmdW5jdGlvbiByZXR1cm5lZCBpdHMgb3duIGlucHV0cyB3aXRob3V0IG1vZGlmaWNhdGlvbi4gZS5nXFxuYGNyZWF0ZVNlbGVjdG9yKFtzdGF0ZSA9PiBzdGF0ZS50b2Rvc10sIHRvZG9zID0+IHRvZG9zKWBcXG5UaGlzIGNvdWxkIGxlYWQgdG8gaW5lZmZpY2llbnQgbWVtb2l6YXRpb24gYW5kIHVubmVjZXNzYXJ5IHJlLXJlbmRlcnMuXFxuRW5zdXJlIHRyYW5zZm9ybWF0aW9uIGxvZ2ljIGlzIGluIHRoZSByZXN1bHQgZnVuY3Rpb24sIGFuZCBleHRyYWN0aW9uIGxvZ2ljIGlzIGluIHRoZSBpbnB1dCBzZWxlY3RvcnMuXCIsXG4gICAgICAgIHsgc3RhY2sgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn07XG5cbi8vIHNyYy9kZXZNb2RlQ2hlY2tzL2lucHV0U3RhYmlsaXR5Q2hlY2sudHNcbnZhciBydW5JbnB1dFN0YWJpbGl0eUNoZWNrID0gKGlucHV0U2VsZWN0b3JSZXN1bHRzT2JqZWN0LCBvcHRpb25zLCBpbnB1dFNlbGVjdG9yQXJncykgPT4ge1xuICBjb25zdCB7IG1lbW9pemUsIG1lbW9pemVPcHRpb25zIH0gPSBvcHRpb25zO1xuICBjb25zdCB7IGlucHV0U2VsZWN0b3JSZXN1bHRzLCBpbnB1dFNlbGVjdG9yUmVzdWx0c0NvcHkgfSA9IGlucHV0U2VsZWN0b3JSZXN1bHRzT2JqZWN0O1xuICBjb25zdCBjcmVhdGVBbkVtcHR5T2JqZWN0ID0gbWVtb2l6ZSgoKSA9PiAoe30pLCAuLi5tZW1vaXplT3B0aW9ucyk7XG4gIGNvbnN0IGFyZUlucHV0U2VsZWN0b3JSZXN1bHRzRXF1YWwgPSBjcmVhdGVBbkVtcHR5T2JqZWN0LmFwcGx5KG51bGwsIGlucHV0U2VsZWN0b3JSZXN1bHRzKSA9PT0gY3JlYXRlQW5FbXB0eU9iamVjdC5hcHBseShudWxsLCBpbnB1dFNlbGVjdG9yUmVzdWx0c0NvcHkpO1xuICBpZiAoIWFyZUlucHV0U2VsZWN0b3JSZXN1bHRzRXF1YWwpIHtcbiAgICBsZXQgc3RhY2sgPSB2b2lkIDA7XG4gICAgdHJ5IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIDtcbiAgICAgICh7IHN0YWNrIH0gPSBlKTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgXCJBbiBpbnB1dCBzZWxlY3RvciByZXR1cm5lZCBhIGRpZmZlcmVudCByZXN1bHQgd2hlbiBwYXNzZWQgc2FtZSBhcmd1bWVudHMuXFxuVGhpcyBtZWFucyB5b3VyIG91dHB1dCBzZWxlY3RvciB3aWxsIGxpa2VseSBydW4gbW9yZSBmcmVxdWVudGx5IHRoYW4gaW50ZW5kZWQuXFxuQXZvaWQgcmV0dXJuaW5nIGEgbmV3IHJlZmVyZW5jZSBpbnNpZGUgeW91ciBpbnB1dCBzZWxlY3RvciwgZS5nLlxcbmBjcmVhdGVTZWxlY3Rvcihbc3RhdGUgPT4gc3RhdGUudG9kb3MubWFwKHRvZG8gPT4gdG9kby5pZCldLCB0b2RvSWRzID0+IHRvZG9JZHMubGVuZ3RoKWBcIixcbiAgICAgIHtcbiAgICAgICAgYXJndW1lbnRzOiBpbnB1dFNlbGVjdG9yQXJncyxcbiAgICAgICAgZmlyc3RJbnB1dHM6IGlucHV0U2VsZWN0b3JSZXN1bHRzLFxuICAgICAgICBzZWNvbmRJbnB1dHM6IGlucHV0U2VsZWN0b3JSZXN1bHRzQ29weSxcbiAgICAgICAgc3RhY2tcbiAgICAgIH1cbiAgICApO1xuICB9XG59O1xuXG4vLyBzcmMvZGV2TW9kZUNoZWNrcy9zZXRHbG9iYWxEZXZNb2RlQ2hlY2tzLnRzXG52YXIgZ2xvYmFsRGV2TW9kZUNoZWNrcyA9IHtcbiAgaW5wdXRTdGFiaWxpdHlDaGVjazogXCJvbmNlXCIsXG4gIGlkZW50aXR5RnVuY3Rpb25DaGVjazogXCJvbmNlXCJcbn07XG52YXIgc2V0R2xvYmFsRGV2TW9kZUNoZWNrcyA9IChkZXZNb2RlQ2hlY2tzKSA9PiB7XG4gIE9iamVjdC5hc3NpZ24oZ2xvYmFsRGV2TW9kZUNoZWNrcywgZGV2TW9kZUNoZWNrcyk7XG59O1xuXG4vLyBzcmMvdXRpbHMudHNcbnZhciBOT1RfRk9VTkQgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sKFwiTk9UX0ZPVU5EXCIpO1xuZnVuY3Rpb24gYXNzZXJ0SXNGdW5jdGlvbihmdW5jLCBlcnJvck1lc3NhZ2UgPSBgZXhwZWN0ZWQgYSBmdW5jdGlvbiwgaW5zdGVhZCByZWNlaXZlZCAke3R5cGVvZiBmdW5jfWApIHtcbiAgaWYgKHR5cGVvZiBmdW5jICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGFzc2VydElzT2JqZWN0KG9iamVjdCwgZXJyb3JNZXNzYWdlID0gYGV4cGVjdGVkIGFuIG9iamVjdCwgaW5zdGVhZCByZWNlaXZlZCAke3R5cGVvZiBvYmplY3R9YCkge1xuICBpZiAodHlwZW9mIG9iamVjdCAhPT0gXCJvYmplY3RcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuZnVuY3Rpb24gYXNzZXJ0SXNBcnJheU9mRnVuY3Rpb25zKGFycmF5LCBlcnJvck1lc3NhZ2UgPSBgZXhwZWN0ZWQgYWxsIGl0ZW1zIHRvIGJlIGZ1bmN0aW9ucywgaW5zdGVhZCByZWNlaXZlZCB0aGUgZm9sbG93aW5nIHR5cGVzOiBgKSB7XG4gIGlmICghYXJyYXkuZXZlcnkoKGl0ZW0pID0+IHR5cGVvZiBpdGVtID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgY29uc3QgaXRlbVR5cGVzID0gYXJyYXkubWFwKFxuICAgICAgKGl0ZW0pID0+IHR5cGVvZiBpdGVtID09PSBcImZ1bmN0aW9uXCIgPyBgZnVuY3Rpb24gJHtpdGVtLm5hbWUgfHwgXCJ1bm5hbWVkXCJ9KClgIDogdHlwZW9mIGl0ZW1cbiAgICApLmpvaW4oXCIsIFwiKTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke2Vycm9yTWVzc2FnZX1bJHtpdGVtVHlwZXN9XWApO1xuICB9XG59XG52YXIgZW5zdXJlSXNBcnJheSA9IChpdGVtKSA9PiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0pID8gaXRlbSA6IFtpdGVtXTtcbn07XG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMoY3JlYXRlU2VsZWN0b3JBcmdzKSB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IEFycmF5LmlzQXJyYXkoY3JlYXRlU2VsZWN0b3JBcmdzWzBdKSA/IGNyZWF0ZVNlbGVjdG9yQXJnc1swXSA6IGNyZWF0ZVNlbGVjdG9yQXJncztcbiAgYXNzZXJ0SXNBcnJheU9mRnVuY3Rpb25zKFxuICAgIGRlcGVuZGVuY2llcyxcbiAgICBgY3JlYXRlU2VsZWN0b3IgZXhwZWN0cyBhbGwgaW5wdXQtc2VsZWN0b3JzIHRvIGJlIGZ1bmN0aW9ucywgYnV0IHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGBcbiAgKTtcbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cbmZ1bmN0aW9uIGNvbGxlY3RJbnB1dFNlbGVjdG9yUmVzdWx0cyhkZXBlbmRlbmNpZXMsIGlucHV0U2VsZWN0b3JBcmdzKSB7XG4gIGNvbnN0IGlucHV0U2VsZWN0b3JSZXN1bHRzID0gW107XG4gIGNvbnN0IHsgbGVuZ3RoIH0gPSBkZXBlbmRlbmNpZXM7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpbnB1dFNlbGVjdG9yUmVzdWx0cy5wdXNoKGRlcGVuZGVuY2llc1tpXS5hcHBseShudWxsLCBpbnB1dFNlbGVjdG9yQXJncykpO1xuICB9XG4gIHJldHVybiBpbnB1dFNlbGVjdG9yUmVzdWx0cztcbn1cbnZhciBnZXREZXZNb2RlQ2hlY2tzRXhlY3V0aW9uSW5mbyA9IChmaXJzdFJ1biwgZGV2TW9kZUNoZWNrcykgPT4ge1xuICBjb25zdCB7IGlkZW50aXR5RnVuY3Rpb25DaGVjaywgaW5wdXRTdGFiaWxpdHlDaGVjayB9ID0ge1xuICAgIC4uLmdsb2JhbERldk1vZGVDaGVja3MsXG4gICAgLi4uZGV2TW9kZUNoZWNrc1xuICB9O1xuICByZXR1cm4ge1xuICAgIGlkZW50aXR5RnVuY3Rpb25DaGVjazoge1xuICAgICAgc2hvdWxkUnVuOiBpZGVudGl0eUZ1bmN0aW9uQ2hlY2sgPT09IFwiYWx3YXlzXCIgfHwgaWRlbnRpdHlGdW5jdGlvbkNoZWNrID09PSBcIm9uY2VcIiAmJiBmaXJzdFJ1bixcbiAgICAgIHJ1bjogcnVuSWRlbnRpdHlGdW5jdGlvbkNoZWNrXG4gICAgfSxcbiAgICBpbnB1dFN0YWJpbGl0eUNoZWNrOiB7XG4gICAgICBzaG91bGRSdW46IGlucHV0U3RhYmlsaXR5Q2hlY2sgPT09IFwiYWx3YXlzXCIgfHwgaW5wdXRTdGFiaWxpdHlDaGVjayA9PT0gXCJvbmNlXCIgJiYgZmlyc3RSdW4sXG4gICAgICBydW46IHJ1bklucHV0U3RhYmlsaXR5Q2hlY2tcbiAgICB9XG4gIH07XG59O1xuXG4vLyBzcmMvYXV0b3RyYWNrTWVtb2l6ZS9hdXRvdHJhY2tpbmcudHNcbnZhciAkUkVWSVNJT04gPSAwO1xudmFyIENVUlJFTlRfVFJBQ0tFUiA9IG51bGw7XG52YXIgQ2VsbCA9IGNsYXNzIHtcbiAgcmV2aXNpb24gPSAkUkVWSVNJT047XG4gIF92YWx1ZTtcbiAgX2xhc3RWYWx1ZTtcbiAgX2lzRXF1YWwgPSB0cmlwbGVFcTtcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlLCBpc0VxdWFsID0gdHJpcGxlRXEpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2xhc3RWYWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICB0aGlzLl9pc0VxdWFsID0gaXNFcXVhbDtcbiAgfVxuICAvLyBXaGVuZXZlciBhIHN0b3JhZ2UgdmFsdWUgaXMgcmVhZCwgaXQnbGwgYWRkIGl0c2VsZiB0byB0aGUgY3VycmVudCB0cmFja2VyIGlmXG4gIC8vIG9uZSBleGlzdHMsIGVudGFuZ2xpbmcgaXRzIHN0YXRlIHdpdGggdGhhdCBjYWNoZS5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIENVUlJFTlRfVFJBQ0tFUj8uYWRkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICAvLyBXaGVuZXZlciBhIHN0b3JhZ2UgdmFsdWUgaXMgdXBkYXRlZCwgd2UgYnVtcCB0aGUgZ2xvYmFsIHJldmlzaW9uIGNsb2NrLFxuICAvLyBhc3NpZ24gdGhlIHJldmlzaW9uIGZvciB0aGlzIHN0b3JhZ2UgdG8gdGhlIG5ldyB2YWx1ZSwgX2FuZF8gd2Ugc2NoZWR1bGUgYVxuICAvLyByZXJlbmRlci4gVGhpcyBpcyBpbXBvcnRhbnQsIGFuZCBpdCdzIHdoYXQgbWFrZXMgYXV0b3RyYWNraW5nICBfcHVsbF9cbiAgLy8gYmFzZWQuIFdlIGRvbid0IGFjdGl2ZWx5IHRlbGwgdGhlIGNhY2hlcyB3aGljaCBkZXBlbmQgb24gdGhlIHN0b3JhZ2UgdGhhdFxuICAvLyBhbnl0aGluZyBoYXMgaGFwcGVuZWQuIEluc3RlYWQsIHdlIHJlY29tcHV0ZSB0aGUgY2FjaGVzIHdoZW4gbmVlZGVkLlxuICBzZXQgdmFsdWUobmV3VmFsdWUpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gbmV3VmFsdWUpXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLnJldmlzaW9uID0gKyskUkVWSVNJT047XG4gIH1cbn07XG5mdW5jdGlvbiB0cmlwbGVFcShhLCBiKSB7XG4gIHJldHVybiBhID09PSBiO1xufVxudmFyIFRyYWNraW5nQ2FjaGUgPSBjbGFzcyB7XG4gIF9jYWNoZWRWYWx1ZTtcbiAgX2NhY2hlZFJldmlzaW9uID0gLTE7XG4gIF9kZXBzID0gW107XG4gIGhpdHMgPSAwO1xuICBmbjtcbiAgY29uc3RydWN0b3IoZm4pIHtcbiAgICB0aGlzLmZuID0gZm47XG4gIH1cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5fY2FjaGVkVmFsdWUgPSB2b2lkIDA7XG4gICAgdGhpcy5fY2FjaGVkUmV2aXNpb24gPSAtMTtcbiAgICB0aGlzLl9kZXBzID0gW107XG4gICAgdGhpcy5oaXRzID0gMDtcbiAgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgaWYgKHRoaXMucmV2aXNpb24gPiB0aGlzLl9jYWNoZWRSZXZpc2lvbikge1xuICAgICAgY29uc3QgeyBmbiB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGN1cnJlbnRUcmFja2VyID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICAgIGNvbnN0IHByZXZUcmFja2VyID0gQ1VSUkVOVF9UUkFDS0VSO1xuICAgICAgQ1VSUkVOVF9UUkFDS0VSID0gY3VycmVudFRyYWNrZXI7XG4gICAgICB0aGlzLl9jYWNoZWRWYWx1ZSA9IGZuKCk7XG4gICAgICBDVVJSRU5UX1RSQUNLRVIgPSBwcmV2VHJhY2tlcjtcbiAgICAgIHRoaXMuaGl0cysrO1xuICAgICAgdGhpcy5fZGVwcyA9IEFycmF5LmZyb20oY3VycmVudFRyYWNrZXIpO1xuICAgICAgdGhpcy5fY2FjaGVkUmV2aXNpb24gPSB0aGlzLnJldmlzaW9uO1xuICAgIH1cbiAgICBDVVJSRU5UX1RSQUNLRVI/LmFkZCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkVmFsdWU7XG4gIH1cbiAgZ2V0IHJldmlzaW9uKCkge1xuICAgIHJldHVybiBNYXRoLm1heCguLi50aGlzLl9kZXBzLm1hcCgoZCkgPT4gZC5yZXZpc2lvbiksIDApO1xuICB9XG59O1xuZnVuY3Rpb24gZ2V0VmFsdWUoY2VsbCkge1xuICBpZiAoIShjZWxsIGluc3RhbmNlb2YgQ2VsbCkpIHtcbiAgICBjb25zb2xlLndhcm4oXCJOb3QgYSB2YWxpZCBjZWxsISBcIiwgY2VsbCk7XG4gIH1cbiAgcmV0dXJuIGNlbGwudmFsdWU7XG59XG5mdW5jdGlvbiBzZXRWYWx1ZShzdG9yYWdlLCB2YWx1ZSkge1xuICBpZiAoIShzdG9yYWdlIGluc3RhbmNlb2YgQ2VsbCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgXCJzZXRWYWx1ZSBtdXN0IGJlIHBhc3NlZCBhIHRyYWNrZWQgc3RvcmUgY3JlYXRlZCB3aXRoIGBjcmVhdGVTdG9yYWdlYC5cIlxuICAgICk7XG4gIH1cbiAgc3RvcmFnZS52YWx1ZSA9IHN0b3JhZ2UuX2xhc3RWYWx1ZSA9IHZhbHVlO1xufVxuZnVuY3Rpb24gY3JlYXRlQ2VsbChpbml0aWFsVmFsdWUsIGlzRXF1YWwgPSB0cmlwbGVFcSkge1xuICByZXR1cm4gbmV3IENlbGwoaW5pdGlhbFZhbHVlLCBpc0VxdWFsKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKGZuKSB7XG4gIGFzc2VydElzRnVuY3Rpb24oXG4gICAgZm4sXG4gICAgXCJ0aGUgZmlyc3QgcGFyYW1ldGVyIHRvIGBjcmVhdGVDYWNoZWAgbXVzdCBiZSBhIGZ1bmN0aW9uXCJcbiAgKTtcbiAgcmV0dXJuIG5ldyBUcmFja2luZ0NhY2hlKGZuKTtcbn1cblxuLy8gc3JjL2F1dG90cmFja01lbW9pemUvdHJhY2tpbmcudHNcbnZhciBuZXZlckVxID0gKGEsIGIpID0+IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlVGFnKCkge1xuICByZXR1cm4gY3JlYXRlQ2VsbChudWxsLCBuZXZlckVxKTtcbn1cbmZ1bmN0aW9uIGRpcnR5VGFnKHRhZywgdmFsdWUpIHtcbiAgc2V0VmFsdWUodGFnLCB2YWx1ZSk7XG59XG52YXIgY29uc3VtZUNvbGxlY3Rpb24gPSAobm9kZSkgPT4ge1xuICBsZXQgdGFnID0gbm9kZS5jb2xsZWN0aW9uVGFnO1xuICBpZiAodGFnID09PSBudWxsKSB7XG4gICAgdGFnID0gbm9kZS5jb2xsZWN0aW9uVGFnID0gY3JlYXRlVGFnKCk7XG4gIH1cbiAgZ2V0VmFsdWUodGFnKTtcbn07XG52YXIgZGlydHlDb2xsZWN0aW9uID0gKG5vZGUpID0+IHtcbiAgY29uc3QgdGFnID0gbm9kZS5jb2xsZWN0aW9uVGFnO1xuICBpZiAodGFnICE9PSBudWxsKSB7XG4gICAgZGlydHlUYWcodGFnLCBudWxsKTtcbiAgfVxufTtcblxuLy8gc3JjL2F1dG90cmFja01lbW9pemUvcHJveHkudHNcbnZhciBSRURVWF9QUk9YWV9MQUJFTCA9IFN5bWJvbCgpO1xudmFyIG5leHRJZCA9IDA7XG52YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pO1xudmFyIE9iamVjdFRyZWVOb2RlID0gY2xhc3Mge1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy50YWcudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm94eSA9IG5ldyBQcm94eSh0aGlzLCBvYmplY3RQcm94eUhhbmRsZXIpO1xuICB0YWcgPSBjcmVhdGVUYWcoKTtcbiAgdGFncyA9IHt9O1xuICBjaGlsZHJlbiA9IHt9O1xuICBjb2xsZWN0aW9uVGFnID0gbnVsbDtcbiAgaWQgPSBuZXh0SWQrKztcbn07XG52YXIgb2JqZWN0UHJveHlIYW5kbGVyID0ge1xuICBnZXQobm9kZSwga2V5KSB7XG4gICAgZnVuY3Rpb24gY2FsY3VsYXRlUmVzdWx0KCkge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gbm9kZTtcbiAgICAgIGNvbnN0IGNoaWxkVmFsdWUgPSBSZWZsZWN0LmdldCh2YWx1ZSwga2V5KTtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSBcInN5bWJvbFwiKSB7XG4gICAgICAgIHJldHVybiBjaGlsZFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGtleSBpbiBwcm90bykge1xuICAgICAgICByZXR1cm4gY2hpbGRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2hpbGRWYWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBjaGlsZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGxldCBjaGlsZE5vZGUgPSBub2RlLmNoaWxkcmVuW2tleV07XG4gICAgICAgIGlmIChjaGlsZE5vZGUgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGNoaWxkTm9kZSA9IG5vZGUuY2hpbGRyZW5ba2V5XSA9IGNyZWF0ZU5vZGUoY2hpbGRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoaWxkTm9kZS50YWcpIHtcbiAgICAgICAgICBnZXRWYWx1ZShjaGlsZE5vZGUudGFnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGROb2RlLnByb3h5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHRhZyA9IG5vZGUudGFnc1trZXldO1xuICAgICAgICBpZiAodGFnID09PSB2b2lkIDApIHtcbiAgICAgICAgICB0YWcgPSBub2RlLnRhZ3Nba2V5XSA9IGNyZWF0ZVRhZygpO1xuICAgICAgICAgIHRhZy52YWx1ZSA9IGNoaWxkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0VmFsdWUodGFnKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IGNhbGN1bGF0ZVJlc3VsdCgpO1xuICAgIHJldHVybiByZXM7XG4gIH0sXG4gIG93bktleXMobm9kZSkge1xuICAgIGNvbnN1bWVDb2xsZWN0aW9uKG5vZGUpO1xuICAgIHJldHVybiBSZWZsZWN0Lm93bktleXMobm9kZS52YWx1ZSk7XG4gIH0sXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihub2RlLCBwcm9wKSB7XG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUudmFsdWUsIHByb3ApO1xuICB9LFxuICBoYXMobm9kZSwgcHJvcCkge1xuICAgIHJldHVybiBSZWZsZWN0Lmhhcyhub2RlLnZhbHVlLCBwcm9wKTtcbiAgfVxufTtcbnZhciBBcnJheVRyZWVOb2RlID0gY2xhc3Mge1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy50YWcudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm94eSA9IG5ldyBQcm94eShbdGhpc10sIGFycmF5UHJveHlIYW5kbGVyKTtcbiAgdGFnID0gY3JlYXRlVGFnKCk7XG4gIHRhZ3MgPSB7fTtcbiAgY2hpbGRyZW4gPSB7fTtcbiAgY29sbGVjdGlvblRhZyA9IG51bGw7XG4gIGlkID0gbmV4dElkKys7XG59O1xudmFyIGFycmF5UHJveHlIYW5kbGVyID0ge1xuICBnZXQoW25vZGVdLCBrZXkpIHtcbiAgICBpZiAoa2V5ID09PSBcImxlbmd0aFwiKSB7XG4gICAgICBjb25zdW1lQ29sbGVjdGlvbihub2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdFByb3h5SGFuZGxlci5nZXQobm9kZSwga2V5KTtcbiAgfSxcbiAgb3duS2V5cyhbbm9kZV0pIHtcbiAgICByZXR1cm4gb2JqZWN0UHJveHlIYW5kbGVyLm93bktleXMobm9kZSk7XG4gIH0sXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihbbm9kZV0sIHByb3ApIHtcbiAgICByZXR1cm4gb2JqZWN0UHJveHlIYW5kbGVyLmdldE93blByb3BlcnR5RGVzY3JpcHRvcihub2RlLCBwcm9wKTtcbiAgfSxcbiAgaGFzKFtub2RlXSwgcHJvcCkge1xuICAgIHJldHVybiBvYmplY3RQcm94eUhhbmRsZXIuaGFzKG5vZGUsIHByb3ApO1xuICB9XG59O1xuZnVuY3Rpb24gY3JlYXRlTm9kZSh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5VHJlZU5vZGUodmFsdWUpO1xuICB9XG4gIHJldHVybiBuZXcgT2JqZWN0VHJlZU5vZGUodmFsdWUpO1xufVxuZnVuY3Rpb24gdXBkYXRlTm9kZShub2RlLCBuZXdWYWx1ZSkge1xuICBjb25zdCB7IHZhbHVlLCB0YWdzLCBjaGlsZHJlbiB9ID0gbm9kZTtcbiAgbm9kZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgJiYgdmFsdWUubGVuZ3RoICE9PSBuZXdWYWx1ZS5sZW5ndGgpIHtcbiAgICBkaXJ0eUNvbGxlY3Rpb24obm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgbGV0IG9sZEtleXNTaXplID0gMDtcbiAgICAgIGxldCBuZXdLZXlzU2l6ZSA9IDA7XG4gICAgICBsZXQgYW55S2V5c0FkZGVkID0gZmFsc2U7XG4gICAgICBmb3IgKGNvbnN0IF9rZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgb2xkS2V5c1NpemUrKztcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG5ld1ZhbHVlKSB7XG4gICAgICAgIG5ld0tleXNTaXplKys7XG4gICAgICAgIGlmICghKGtleSBpbiB2YWx1ZSkpIHtcbiAgICAgICAgICBhbnlLZXlzQWRkZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBpc0RpZmZlcmVudCA9IGFueUtleXNBZGRlZCB8fCBvbGRLZXlzU2l6ZSAhPT0gbmV3S2V5c1NpemU7XG4gICAgICBpZiAoaXNEaWZmZXJlbnQpIHtcbiAgICAgICAgZGlydHlDb2xsZWN0aW9uKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiB0YWdzKSB7XG4gICAgY29uc3QgY2hpbGRWYWx1ZSA9IHZhbHVlW2tleV07XG4gICAgY29uc3QgbmV3Q2hpbGRWYWx1ZSA9IG5ld1ZhbHVlW2tleV07XG4gICAgaWYgKGNoaWxkVmFsdWUgIT09IG5ld0NoaWxkVmFsdWUpIHtcbiAgICAgIGRpcnR5Q29sbGVjdGlvbihub2RlKTtcbiAgICAgIGRpcnR5VGFnKHRhZ3Nba2V5XSwgbmV3Q2hpbGRWYWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGRWYWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBuZXdDaGlsZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICBkZWxldGUgdGFnc1trZXldO1xuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiBjaGlsZHJlbikge1xuICAgIGNvbnN0IGNoaWxkTm9kZSA9IGNoaWxkcmVuW2tleV07XG4gICAgY29uc3QgbmV3Q2hpbGRWYWx1ZSA9IG5ld1ZhbHVlW2tleV07XG4gICAgY29uc3QgY2hpbGRWYWx1ZSA9IGNoaWxkTm9kZS52YWx1ZTtcbiAgICBpZiAoY2hpbGRWYWx1ZSA9PT0gbmV3Q2hpbGRWYWx1ZSkge1xuICAgICAgY29udGludWU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV3Q2hpbGRWYWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBuZXdDaGlsZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICB1cGRhdGVOb2RlKGNoaWxkTm9kZSwgbmV3Q2hpbGRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZU5vZGUoY2hpbGROb2RlKTtcbiAgICAgIGRlbGV0ZSBjaGlsZHJlbltrZXldO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGVsZXRlTm9kZShub2RlKSB7XG4gIGlmIChub2RlLnRhZykge1xuICAgIGRpcnR5VGFnKG5vZGUudGFnLCBudWxsKTtcbiAgfVxuICBkaXJ0eUNvbGxlY3Rpb24obm9kZSk7XG4gIGZvciAoY29uc3Qga2V5IGluIG5vZGUudGFncykge1xuICAgIGRpcnR5VGFnKG5vZGUudGFnc1trZXldLCBudWxsKTtcbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiBub2RlLmNoaWxkcmVuKSB7XG4gICAgZGVsZXRlTm9kZShub2RlLmNoaWxkcmVuW2tleV0pO1xuICB9XG59XG5cbi8vIHNyYy9scnVNZW1vaXplLnRzXG5mdW5jdGlvbiBjcmVhdGVTaW5nbGV0b25DYWNoZShlcXVhbHMpIHtcbiAgbGV0IGVudHJ5O1xuICByZXR1cm4ge1xuICAgIGdldChrZXkpIHtcbiAgICAgIGlmIChlbnRyeSAmJiBlcXVhbHMoZW50cnkua2V5LCBrZXkpKSB7XG4gICAgICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBOT1RfRk9VTkQ7XG4gICAgfSxcbiAgICBwdXQoa2V5LCB2YWx1ZSkge1xuICAgICAgZW50cnkgPSB7IGtleSwgdmFsdWUgfTtcbiAgICB9LFxuICAgIGdldEVudHJpZXMoKSB7XG4gICAgICByZXR1cm4gZW50cnkgPyBbZW50cnldIDogW107XG4gICAgfSxcbiAgICBjbGVhcigpIHtcbiAgICAgIGVudHJ5ID0gdm9pZCAwO1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUxydUNhY2hlKG1heFNpemUsIGVxdWFscykge1xuICBsZXQgZW50cmllcyA9IFtdO1xuICBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgY29uc3QgY2FjaGVJbmRleCA9IGVudHJpZXMuZmluZEluZGV4KChlbnRyeSkgPT4gZXF1YWxzKGtleSwgZW50cnkua2V5KSk7XG4gICAgaWYgKGNhY2hlSW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzW2NhY2hlSW5kZXhdO1xuICAgICAgaWYgKGNhY2hlSW5kZXggPiAwKSB7XG4gICAgICAgIGVudHJpZXMuc3BsaWNlKGNhY2hlSW5kZXgsIDEpO1xuICAgICAgICBlbnRyaWVzLnVuc2hpZnQoZW50cnkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gTk9UX0ZPVU5EO1xuICB9XG4gIGZ1bmN0aW9uIHB1dChrZXksIHZhbHVlKSB7XG4gICAgaWYgKGdldChrZXkpID09PSBOT1RfRk9VTkQpIHtcbiAgICAgIGVudHJpZXMudW5zaGlmdCh7IGtleSwgdmFsdWUgfSk7XG4gICAgICBpZiAoZW50cmllcy5sZW5ndGggPiBtYXhTaXplKSB7XG4gICAgICAgIGVudHJpZXMucG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cbiAgZnVuY3Rpb24gY2xlYXIoKSB7XG4gICAgZW50cmllcyA9IFtdO1xuICB9XG4gIHJldHVybiB7IGdldCwgcHV0LCBnZXRFbnRyaWVzLCBjbGVhciB9O1xufVxudmFyIHJlZmVyZW5jZUVxdWFsaXR5Q2hlY2sgPSAoYSwgYikgPT4gYSA9PT0gYjtcbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlS2V5Q29tcGFyYXRvcihlcXVhbGl0eUNoZWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiBhcmVBcmd1bWVudHNTaGFsbG93bHlFcXVhbChwcmV2LCBuZXh0KSB7XG4gICAgaWYgKHByZXYgPT09IG51bGwgfHwgbmV4dCA9PT0gbnVsbCB8fCBwcmV2Lmxlbmd0aCAhPT0gbmV4dC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHByZXY7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlcXVhbGl0eUNoZWNrKHByZXZbaV0sIG5leHRbaV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG59XG5mdW5jdGlvbiBscnVNZW1vaXplKGZ1bmMsIGVxdWFsaXR5Q2hlY2tPck9wdGlvbnMpIHtcbiAgY29uc3QgcHJvdmlkZWRPcHRpb25zID0gdHlwZW9mIGVxdWFsaXR5Q2hlY2tPck9wdGlvbnMgPT09IFwib2JqZWN0XCIgPyBlcXVhbGl0eUNoZWNrT3JPcHRpb25zIDogeyBlcXVhbGl0eUNoZWNrOiBlcXVhbGl0eUNoZWNrT3JPcHRpb25zIH07XG4gIGNvbnN0IHtcbiAgICBlcXVhbGl0eUNoZWNrID0gcmVmZXJlbmNlRXF1YWxpdHlDaGVjayxcbiAgICBtYXhTaXplID0gMSxcbiAgICByZXN1bHRFcXVhbGl0eUNoZWNrXG4gIH0gPSBwcm92aWRlZE9wdGlvbnM7XG4gIGNvbnN0IGNvbXBhcmF0b3IgPSBjcmVhdGVDYWNoZUtleUNvbXBhcmF0b3IoZXF1YWxpdHlDaGVjayk7XG4gIGxldCByZXN1bHRzQ291bnQgPSAwO1xuICBjb25zdCBjYWNoZSA9IG1heFNpemUgPD0gMSA/IGNyZWF0ZVNpbmdsZXRvbkNhY2hlKGNvbXBhcmF0b3IpIDogY3JlYXRlTHJ1Q2FjaGUobWF4U2l6ZSwgY29tcGFyYXRvcik7XG4gIGZ1bmN0aW9uIG1lbW9pemVkKCkge1xuICAgIGxldCB2YWx1ZSA9IGNhY2hlLmdldChhcmd1bWVudHMpO1xuICAgIGlmICh2YWx1ZSA9PT0gTk9UX0ZPVU5EKSB7XG4gICAgICB2YWx1ZSA9IGZ1bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgIHJlc3VsdHNDb3VudCsrO1xuICAgICAgaWYgKHJlc3VsdEVxdWFsaXR5Q2hlY2spIHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGNhY2hlLmdldEVudHJpZXMoKTtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdFbnRyeSA9IGVudHJpZXMuZmluZChcbiAgICAgICAgICAoZW50cnkpID0+IHJlc3VsdEVxdWFsaXR5Q2hlY2soZW50cnkudmFsdWUsIHZhbHVlKVxuICAgICAgICApO1xuICAgICAgICBpZiAobWF0Y2hpbmdFbnRyeSkge1xuICAgICAgICAgIHZhbHVlID0gbWF0Y2hpbmdFbnRyeS52YWx1ZTtcbiAgICAgICAgICByZXN1bHRzQ291bnQgIT09IDAgJiYgcmVzdWx0c0NvdW50LS07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhY2hlLnB1dChhcmd1bWVudHMsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIG1lbW9pemVkLmNsZWFyQ2FjaGUgPSAoKSA9PiB7XG4gICAgY2FjaGUuY2xlYXIoKTtcbiAgICBtZW1vaXplZC5yZXNldFJlc3VsdHNDb3VudCgpO1xuICB9O1xuICBtZW1vaXplZC5yZXN1bHRzQ291bnQgPSAoKSA9PiByZXN1bHRzQ291bnQ7XG4gIG1lbW9pemVkLnJlc2V0UmVzdWx0c0NvdW50ID0gKCkgPT4ge1xuICAgIHJlc3VsdHNDb3VudCA9IDA7XG4gIH07XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gc3JjL2F1dG90cmFja01lbW9pemUvYXV0b3RyYWNrTWVtb2l6ZS50c1xuZnVuY3Rpb24gYXV0b3RyYWNrTWVtb2l6ZShmdW5jKSB7XG4gIGNvbnN0IG5vZGUgPSBjcmVhdGVOb2RlKFxuICAgIFtdXG4gICk7XG4gIGxldCBsYXN0QXJncyA9IG51bGw7XG4gIGNvbnN0IHNoYWxsb3dFcXVhbCA9IGNyZWF0ZUNhY2hlS2V5Q29tcGFyYXRvcihyZWZlcmVuY2VFcXVhbGl0eUNoZWNrKTtcbiAgY29uc3QgY2FjaGUgPSBjcmVhdGVDYWNoZSgoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZnVuYy5hcHBseShudWxsLCBub2RlLnByb3h5KTtcbiAgICByZXR1cm4gcmVzO1xuICB9KTtcbiAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgaWYgKCFzaGFsbG93RXF1YWwobGFzdEFyZ3MsIGFyZ3VtZW50cykpIHtcbiAgICAgIHVwZGF0ZU5vZGUobm9kZSwgYXJndW1lbnRzKTtcbiAgICAgIGxhc3RBcmdzID0gYXJndW1lbnRzO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGUudmFsdWU7XG4gIH1cbiAgbWVtb2l6ZWQuY2xlYXJDYWNoZSA9ICgpID0+IHtcbiAgICByZXR1cm4gY2FjaGUuY2xlYXIoKTtcbiAgfTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBzcmMvd2Vha01hcE1lbW9pemUudHNcbnZhciBTdHJvbmdSZWYgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIGRlcmVmKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59O1xudmFyIFJlZiA9IHR5cGVvZiBXZWFrUmVmICE9PSBcInVuZGVmaW5lZFwiID8gV2Vha1JlZiA6IFN0cm9uZ1JlZjtcbnZhciBVTlRFUk1JTkFURUQgPSAwO1xudmFyIFRFUk1JTkFURUQgPSAxO1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGVOb2RlKCkge1xuICByZXR1cm4ge1xuICAgIHM6IFVOVEVSTUlOQVRFRCxcbiAgICB2OiB2b2lkIDAsXG4gICAgbzogbnVsbCxcbiAgICBwOiBudWxsXG4gIH07XG59XG5mdW5jdGlvbiB3ZWFrTWFwTWVtb2l6ZShmdW5jLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGZuTm9kZSA9IGNyZWF0ZUNhY2hlTm9kZSgpO1xuICBjb25zdCB7IHJlc3VsdEVxdWFsaXR5Q2hlY2sgfSA9IG9wdGlvbnM7XG4gIGxldCBsYXN0UmVzdWx0O1xuICBsZXQgcmVzdWx0c0NvdW50ID0gMDtcbiAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgbGV0IGNhY2hlTm9kZSA9IGZuTm9kZTtcbiAgICBjb25zdCB7IGxlbmd0aCB9ID0gYXJndW1lbnRzO1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCBhcmcgPSBhcmd1bWVudHNbaV07XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJmdW5jdGlvblwiIHx8IHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiYgYXJnICE9PSBudWxsKSB7XG4gICAgICAgIGxldCBvYmplY3RDYWNoZSA9IGNhY2hlTm9kZS5vO1xuICAgICAgICBpZiAob2JqZWN0Q2FjaGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjYWNoZU5vZGUubyA9IG9iamVjdENhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2JqZWN0Tm9kZSA9IG9iamVjdENhY2hlLmdldChhcmcpO1xuICAgICAgICBpZiAob2JqZWN0Tm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgY2FjaGVOb2RlID0gY3JlYXRlQ2FjaGVOb2RlKCk7XG4gICAgICAgICAgb2JqZWN0Q2FjaGUuc2V0KGFyZywgY2FjaGVOb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBvYmplY3ROb2RlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpbWl0aXZlQ2FjaGUgPSBjYWNoZU5vZGUucDtcbiAgICAgICAgaWYgKHByaW1pdGl2ZUNhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY2FjaGVOb2RlLnAgPSBwcmltaXRpdmVDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJpbWl0aXZlTm9kZSA9IHByaW1pdGl2ZUNhY2hlLmdldChhcmcpO1xuICAgICAgICBpZiAocHJpbWl0aXZlTm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgY2FjaGVOb2RlID0gY3JlYXRlQ2FjaGVOb2RlKCk7XG4gICAgICAgICAgcHJpbWl0aXZlQ2FjaGUuc2V0KGFyZywgY2FjaGVOb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBwcmltaXRpdmVOb2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRlcm1pbmF0ZWROb2RlID0gY2FjaGVOb2RlO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKGNhY2hlTm9kZS5zID09PSBURVJNSU5BVEVEKSB7XG4gICAgICByZXN1bHQgPSBjYWNoZU5vZGUudjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgcmVzdWx0c0NvdW50Kys7XG4gICAgICBpZiAocmVzdWx0RXF1YWxpdHlDaGVjaykge1xuICAgICAgICBjb25zdCBsYXN0UmVzdWx0VmFsdWUgPSBsYXN0UmVzdWx0Py5kZXJlZj8uKCkgPz8gbGFzdFJlc3VsdDtcbiAgICAgICAgaWYgKGxhc3RSZXN1bHRWYWx1ZSAhPSBudWxsICYmIHJlc3VsdEVxdWFsaXR5Q2hlY2sobGFzdFJlc3VsdFZhbHVlLCByZXN1bHQpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gbGFzdFJlc3VsdFZhbHVlO1xuICAgICAgICAgIHJlc3VsdHNDb3VudCAhPT0gMCAmJiByZXN1bHRzQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZWVkc1dlYWtSZWYgPSB0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiICYmIHJlc3VsdCAhPT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIGxhc3RSZXN1bHQgPSBuZWVkc1dlYWtSZWYgPyBuZXcgUmVmKHJlc3VsdCkgOiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHRlcm1pbmF0ZWROb2RlLnMgPSBURVJNSU5BVEVEO1xuICAgIHRlcm1pbmF0ZWROb2RlLnYgPSByZXN1bHQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBtZW1vaXplZC5jbGVhckNhY2hlID0gKCkgPT4ge1xuICAgIGZuTm9kZSA9IGNyZWF0ZUNhY2hlTm9kZSgpO1xuICAgIG1lbW9pemVkLnJlc2V0UmVzdWx0c0NvdW50KCk7XG4gIH07XG4gIG1lbW9pemVkLnJlc3VsdHNDb3VudCA9ICgpID0+IHJlc3VsdHNDb3VudDtcbiAgbWVtb2l6ZWQucmVzZXRSZXN1bHRzQ291bnQgPSAoKSA9PiB7XG4gICAgcmVzdWx0c0NvdW50ID0gMDtcbiAgfTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBzcmMvY3JlYXRlU2VsZWN0b3JDcmVhdG9yLnRzXG5mdW5jdGlvbiBjcmVhdGVTZWxlY3RvckNyZWF0b3IobWVtb2l6ZU9yT3B0aW9ucywgLi4ubWVtb2l6ZU9wdGlvbnNGcm9tQXJncykge1xuICBjb25zdCBjcmVhdGVTZWxlY3RvckNyZWF0b3JPcHRpb25zID0gdHlwZW9mIG1lbW9pemVPck9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIiA/IHtcbiAgICBtZW1vaXplOiBtZW1vaXplT3JPcHRpb25zLFxuICAgIG1lbW9pemVPcHRpb25zOiBtZW1vaXplT3B0aW9uc0Zyb21BcmdzXG4gIH0gOiBtZW1vaXplT3JPcHRpb25zO1xuICBjb25zdCBjcmVhdGVTZWxlY3RvcjIgPSAoLi4uY3JlYXRlU2VsZWN0b3JBcmdzKSA9PiB7XG4gICAgbGV0IHJlY29tcHV0YXRpb25zID0gMDtcbiAgICBsZXQgZGVwZW5kZW5jeVJlY29tcHV0YXRpb25zID0gMDtcbiAgICBsZXQgbGFzdFJlc3VsdDtcbiAgICBsZXQgZGlyZWN0bHlQYXNzZWRPcHRpb25zID0ge307XG4gICAgbGV0IHJlc3VsdEZ1bmMgPSBjcmVhdGVTZWxlY3RvckFyZ3MucG9wKCk7XG4gICAgaWYgKHR5cGVvZiByZXN1bHRGdW5jID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBkaXJlY3RseVBhc3NlZE9wdGlvbnMgPSByZXN1bHRGdW5jO1xuICAgICAgcmVzdWx0RnVuYyA9IGNyZWF0ZVNlbGVjdG9yQXJncy5wb3AoKTtcbiAgICB9XG4gICAgYXNzZXJ0SXNGdW5jdGlvbihcbiAgICAgIHJlc3VsdEZ1bmMsXG4gICAgICBgY3JlYXRlU2VsZWN0b3IgZXhwZWN0cyBhbiBvdXRwdXQgZnVuY3Rpb24gYWZ0ZXIgdGhlIGlucHV0cywgYnV0IHJlY2VpdmVkOiBbJHt0eXBlb2YgcmVzdWx0RnVuY31dYFxuICAgICk7XG4gICAgY29uc3QgY29tYmluZWRPcHRpb25zID0ge1xuICAgICAgLi4uY3JlYXRlU2VsZWN0b3JDcmVhdG9yT3B0aW9ucyxcbiAgICAgIC4uLmRpcmVjdGx5UGFzc2VkT3B0aW9uc1xuICAgIH07XG4gICAgY29uc3Qge1xuICAgICAgbWVtb2l6ZSxcbiAgICAgIG1lbW9pemVPcHRpb25zID0gW10sXG4gICAgICBhcmdzTWVtb2l6ZSA9IHdlYWtNYXBNZW1vaXplLFxuICAgICAgYXJnc01lbW9pemVPcHRpb25zID0gW10sXG4gICAgICBkZXZNb2RlQ2hlY2tzID0ge31cbiAgICB9ID0gY29tYmluZWRPcHRpb25zO1xuICAgIGNvbnN0IGZpbmFsTWVtb2l6ZU9wdGlvbnMgPSBlbnN1cmVJc0FycmF5KG1lbW9pemVPcHRpb25zKTtcbiAgICBjb25zdCBmaW5hbEFyZ3NNZW1vaXplT3B0aW9ucyA9IGVuc3VyZUlzQXJyYXkoYXJnc01lbW9pemVPcHRpb25zKTtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBnZXREZXBlbmRlbmNpZXMoY3JlYXRlU2VsZWN0b3JBcmdzKTtcbiAgICBjb25zdCBtZW1vaXplZFJlc3VsdEZ1bmMgPSBtZW1vaXplKGZ1bmN0aW9uIHJlY29tcHV0YXRpb25XcmFwcGVyKCkge1xuICAgICAgcmVjb21wdXRhdGlvbnMrKztcbiAgICAgIHJldHVybiByZXN1bHRGdW5jLmFwcGx5KFxuICAgICAgICBudWxsLFxuICAgICAgICBhcmd1bWVudHNcbiAgICAgICk7XG4gICAgfSwgLi4uZmluYWxNZW1vaXplT3B0aW9ucyk7XG4gICAgbGV0IGZpcnN0UnVuID0gdHJ1ZTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGFyZ3NNZW1vaXplKGZ1bmN0aW9uIGRlcGVuZGVuY2llc0NoZWNrZXIoKSB7XG4gICAgICBkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMrKztcbiAgICAgIGNvbnN0IGlucHV0U2VsZWN0b3JSZXN1bHRzID0gY29sbGVjdElucHV0U2VsZWN0b3JSZXN1bHRzKFxuICAgICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICAgIGFyZ3VtZW50c1xuICAgICAgKTtcbiAgICAgIGxhc3RSZXN1bHQgPSBtZW1vaXplZFJlc3VsdEZ1bmMuYXBwbHkobnVsbCwgaW5wdXRTZWxlY3RvclJlc3VsdHMpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zdCB7IGlkZW50aXR5RnVuY3Rpb25DaGVjaywgaW5wdXRTdGFiaWxpdHlDaGVjayB9ID0gZ2V0RGV2TW9kZUNoZWNrc0V4ZWN1dGlvbkluZm8oZmlyc3RSdW4sIGRldk1vZGVDaGVja3MpO1xuICAgICAgICBpZiAoaWRlbnRpdHlGdW5jdGlvbkNoZWNrLnNob3VsZFJ1bikge1xuICAgICAgICAgIGlkZW50aXR5RnVuY3Rpb25DaGVjay5ydW4oXG4gICAgICAgICAgICByZXN1bHRGdW5jLFxuICAgICAgICAgICAgaW5wdXRTZWxlY3RvclJlc3VsdHMsXG4gICAgICAgICAgICBsYXN0UmVzdWx0XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXRTdGFiaWxpdHlDaGVjay5zaG91bGRSdW4pIHtcbiAgICAgICAgICBjb25zdCBpbnB1dFNlbGVjdG9yUmVzdWx0c0NvcHkgPSBjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMoXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICAgICAgICBhcmd1bWVudHNcbiAgICAgICAgICApO1xuICAgICAgICAgIGlucHV0U3RhYmlsaXR5Q2hlY2sucnVuKFxuICAgICAgICAgICAgeyBpbnB1dFNlbGVjdG9yUmVzdWx0cywgaW5wdXRTZWxlY3RvclJlc3VsdHNDb3B5IH0sXG4gICAgICAgICAgICB7IG1lbW9pemUsIG1lbW9pemVPcHRpb25zOiBmaW5hbE1lbW9pemVPcHRpb25zIH0sXG4gICAgICAgICAgICBhcmd1bWVudHNcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXJzdFJ1bilcbiAgICAgICAgICBmaXJzdFJ1biA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhc3RSZXN1bHQ7XG4gICAgfSwgLi4uZmluYWxBcmdzTWVtb2l6ZU9wdGlvbnMpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHNlbGVjdG9yLCB7XG4gICAgICByZXN1bHRGdW5jLFxuICAgICAgbWVtb2l6ZWRSZXN1bHRGdW5jLFxuICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgZGVwZW5kZW5jeVJlY29tcHV0YXRpb25zOiAoKSA9PiBkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMsXG4gICAgICByZXNldERlcGVuZGVuY3lSZWNvbXB1dGF0aW9uczogKCkgPT4ge1xuICAgICAgICBkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMgPSAwO1xuICAgICAgfSxcbiAgICAgIGxhc3RSZXN1bHQ6ICgpID0+IGxhc3RSZXN1bHQsXG4gICAgICByZWNvbXB1dGF0aW9uczogKCkgPT4gcmVjb21wdXRhdGlvbnMsXG4gICAgICByZXNldFJlY29tcHV0YXRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJlY29tcHV0YXRpb25zID0gMDtcbiAgICAgIH0sXG4gICAgICBtZW1vaXplLFxuICAgICAgYXJnc01lbW9pemVcbiAgICB9KTtcbiAgfTtcbiAgT2JqZWN0LmFzc2lnbihjcmVhdGVTZWxlY3RvcjIsIHtcbiAgICB3aXRoVHlwZXM6ICgpID0+IGNyZWF0ZVNlbGVjdG9yMlxuICB9KTtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yMjtcbn1cbnZhciBjcmVhdGVTZWxlY3RvciA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVTZWxlY3RvckNyZWF0b3Iod2Vha01hcE1lbW9pemUpO1xuXG4vLyBzcmMvY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yLnRzXG52YXIgY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yID0gT2JqZWN0LmFzc2lnbihcbiAgKGlucHV0U2VsZWN0b3JzT2JqZWN0LCBzZWxlY3RvckNyZWF0b3IgPSBjcmVhdGVTZWxlY3RvcikgPT4ge1xuICAgIGFzc2VydElzT2JqZWN0KFxuICAgICAgaW5wdXRTZWxlY3RvcnNPYmplY3QsXG4gICAgICBgY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIGV4cGVjdHMgZmlyc3QgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdoZXJlIGVhY2ggcHJvcGVydHkgaXMgYSBzZWxlY3RvciwgaW5zdGVhZCByZWNlaXZlZCBhICR7dHlwZW9mIGlucHV0U2VsZWN0b3JzT2JqZWN0fWBcbiAgICApO1xuICAgIGNvbnN0IGlucHV0U2VsZWN0b3JLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRTZWxlY3RvcnNPYmplY3QpO1xuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IGlucHV0U2VsZWN0b3JLZXlzLm1hcChcbiAgICAgIChrZXkpID0+IGlucHV0U2VsZWN0b3JzT2JqZWN0W2tleV1cbiAgICApO1xuICAgIGNvbnN0IHN0cnVjdHVyZWRTZWxlY3RvciA9IHNlbGVjdG9yQ3JlYXRvcihcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICguLi5pbnB1dFNlbGVjdG9yUmVzdWx0cykgPT4ge1xuICAgICAgICByZXR1cm4gaW5wdXRTZWxlY3RvclJlc3VsdHMucmVkdWNlKChjb21wb3NpdGlvbiwgdmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29tcG9zaXRpb25baW5wdXRTZWxlY3RvcktleXNbaW5kZXhdXSA9IHZhbHVlO1xuICAgICAgICAgIHJldHVybiBjb21wb3NpdGlvbjtcbiAgICAgICAgfSwge30pO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHN0cnVjdHVyZWRTZWxlY3RvcjtcbiAgfSxcbiAgeyB3aXRoVHlwZXM6ICgpID0+IGNyZWF0ZVN0cnVjdHVyZWRTZWxlY3RvciB9XG4pO1xuZXhwb3J0IHtcbiAgY3JlYXRlU2VsZWN0b3IsXG4gIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcixcbiAgY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yLFxuICBscnVNZW1vaXplLFxuICByZWZlcmVuY2VFcXVhbGl0eUNoZWNrLFxuICBzZXRHbG9iYWxEZXZNb2RlQ2hlY2tzLFxuICBhdXRvdHJhY2tNZW1vaXplIGFzIHVuc3RhYmxlX2F1dG90cmFja01lbW9pemUsXG4gIHdlYWtNYXBNZW1vaXplXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzZWxlY3QubWpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/reselect/dist/reselect.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/sonner/dist/index.mjs": /*!********************************************!*\ !*** ./node_modules/sonner/dist/index.mjs ***! \********************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toaster: () => (/* binding */ Be),\n/* harmony export */ toast: () => (/* binding */ te),\n/* harmony export */ useSonner: () => (/* binding */ Ce)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* __next_internal_client_entry_do_not_use__ Toaster,toast,useSonner auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n\n\n\nvar kt = (r)=>{\n switch(r){\n case \"success\":\n return Vt;\n case \"info\":\n return Kt;\n case \"warning\":\n return Ot;\n case \"error\":\n return Jt;\n default:\n return null;\n }\n}, Ut = Array(12).fill(0), Dt = (param)=>{\n let { visible: r, className: o } = param;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: [\n \"sonner-loading-wrapper\",\n o\n ].filter(Boolean).join(\" \"),\n \"data-visible\": r\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, Ut.map((t, s)=>/*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: \"spinner-bar-\".concat(s)\n }))));\n}, Vt = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n})), Ot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n})), Kt = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n})), Jt = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n})), Ht = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nvar At = ()=>{\n _s();\n let [r, o] = react__WEBPACK_IMPORTED_MODULE_0__.useState(document.hidden);\n return react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"At.useEffect\": ()=>{\n let t = {\n \"At.useEffect.t\": ()=>{\n o(document.hidden);\n }\n }[\"At.useEffect.t\"];\n return document.addEventListener(\"visibilitychange\", t), ({\n \"At.useEffect\": ()=>window.removeEventListener(\"visibilitychange\", t)\n })[\"At.useEffect\"];\n }\n }[\"At.useEffect\"], []), r;\n};\n_s(At, \"9ZAJu7b2WeZDrs0ETLxhVSDrYIE=\");\n_c = At;\n\nvar ft = 1, mt = class {\n constructor(){\n this.subscribe = (o)=>(this.subscribers.push(o), ()=>{\n let t = this.subscribers.indexOf(o);\n this.subscribers.splice(t, 1);\n });\n this.publish = (o)=>{\n this.subscribers.forEach((t)=>t(o));\n };\n this.addToast = (o)=>{\n this.publish(o), this.toasts = [\n ...this.toasts,\n o\n ];\n };\n this.create = (o)=>{\n var P;\n let { message: t, ...s } = o, g = typeof (o == null ? void 0 : o.id) == \"number\" || ((P = o.id) == null ? void 0 : P.length) > 0 ? o.id : ft++, l = this.toasts.find((h)=>h.id === g), E = o.dismissible === void 0 ? !0 : o.dismissible;\n return l ? this.toasts = this.toasts.map((h)=>h.id === g ? (this.publish({\n ...h,\n ...o,\n id: g,\n title: t\n }), {\n ...h,\n ...o,\n id: g,\n dismissible: E,\n title: t\n }) : h) : this.addToast({\n title: t,\n ...s,\n dismissible: E,\n id: g\n }), g;\n };\n this.dismiss = (o)=>(o || this.toasts.forEach((t)=>{\n this.subscribers.forEach((s)=>s({\n id: t.id,\n dismiss: !0\n }));\n }), this.subscribers.forEach((t)=>t({\n id: o,\n dismiss: !0\n })), o);\n this.message = (o, t)=>this.create({\n ...t,\n message: o\n });\n this.error = (o, t)=>this.create({\n ...t,\n message: o,\n type: \"error\"\n });\n this.success = (o, t)=>this.create({\n ...t,\n type: \"success\",\n message: o\n });\n this.info = (o, t)=>this.create({\n ...t,\n type: \"info\",\n message: o\n });\n this.warning = (o, t)=>this.create({\n ...t,\n type: \"warning\",\n message: o\n });\n this.loading = (o, t)=>this.create({\n ...t,\n type: \"loading\",\n message: o\n });\n this.promise = (o, t)=>{\n if (!t) return;\n let s;\n t.loading !== void 0 && (s = this.create({\n ...t,\n promise: o,\n type: \"loading\",\n message: t.loading,\n description: typeof t.description != \"function\" ? t.description : void 0\n }));\n let g = o instanceof Promise ? o : o(), l = s !== void 0, E, P = g.then(async (c)=>{\n if (E = [\n \"resolve\",\n c\n ], /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(c)) l = !1, this.create({\n id: s,\n type: \"default\",\n message: c\n });\n else if (Qt(c) && !c.ok) {\n l = !1;\n let k = typeof t.error == \"function\" ? await t.error(\"HTTP error! status: \".concat(c.status)) : t.error, j = typeof t.description == \"function\" ? await t.description(\"HTTP error! status: \".concat(c.status)) : t.description;\n this.create({\n id: s,\n type: \"error\",\n message: k,\n description: j\n });\n } else if (t.success !== void 0) {\n l = !1;\n let k = typeof t.success == \"function\" ? await t.success(c) : t.success, j = typeof t.description == \"function\" ? await t.description(c) : t.description;\n this.create({\n id: s,\n type: \"success\",\n message: k,\n description: j\n });\n }\n }).catch(async (c)=>{\n if (E = [\n \"reject\",\n c\n ], t.error !== void 0) {\n l = !1;\n let y = typeof t.error == \"function\" ? await t.error(c) : t.error, k = typeof t.description == \"function\" ? await t.description(c) : t.description;\n this.create({\n id: s,\n type: \"error\",\n message: y,\n description: k\n });\n }\n }).finally(()=>{\n var c;\n l && (this.dismiss(s), s = void 0), (c = t.finally) == null || c.call(t);\n }), h = ()=>new Promise((c, y)=>P.then(()=>E[0] === \"reject\" ? y(E[1]) : c(E[1])).catch(y));\n return typeof s != \"string\" && typeof s != \"number\" ? {\n unwrap: h\n } : Object.assign(s, {\n unwrap: h\n });\n };\n this.custom = (o, t)=>{\n let s = (t == null ? void 0 : t.id) || ft++;\n return this.create({\n jsx: o(s),\n id: s,\n ...t\n }), s;\n };\n this.subscribers = [], this.toasts = [];\n }\n}, T = new mt, Gt = (r, o)=>{\n let t = (o == null ? void 0 : o.id) || ft++;\n return T.addToast({\n title: r,\n ...o,\n id: t\n }), t;\n}, Qt = (r)=>r && typeof r == \"object\" && \"ok\" in r && typeof r.ok == \"boolean\" && \"status\" in r && typeof r.status == \"number\", qt = Gt, Zt = ()=>T.toasts, te = Object.assign(qt, {\n success: T.success,\n info: T.info,\n warning: T.warning,\n error: T.error,\n custom: T.custom,\n message: T.message,\n promise: T.promise,\n dismiss: T.dismiss,\n loading: T.loading\n}, {\n getHistory: Zt\n});\nfunction pt(r) {\n let { insertAt: o } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!r || typeof document == \"undefined\") return;\n let t = document.head || document.getElementsByTagName(\"head\")[0], s = document.createElement(\"style\");\n s.type = \"text/css\", o === \"top\" && t.firstChild ? t.insertBefore(s, t.firstChild) : t.appendChild(s), s.styleSheet ? s.styleSheet.cssText = r : s.appendChild(document.createTextNode(r));\n}\npt(':where(html[dir=\"ltr\"]),:where([data-sonner-toaster][dir=\"ltr\"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir=\"rtl\"]),:where([data-sonner-toaster][dir=\"rtl\"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted=\"true\"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted=\"true\"]){transform:none}}:where([data-sonner-toaster][data-x-position=\"right\"]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position=\"left\"]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position=\"center\"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=\"top\"]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position=\"bottom\"]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=\"true\"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=\"top\"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=\"bottom\"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=\"true\"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=\"dark\"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=\"true\"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=\"true\"]):before{content:\"\";position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=\"top\"][data-swiping=\"true\"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=\"bottom\"][data-swiping=\"true\"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=\"false\"][data-removed=\"true\"]):before{content:\"\";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:\"\";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=\"true\"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=\"false\"][data-front=\"false\"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=\"false\"][data-front=\"false\"][data-styled=\"true\"])>*{opacity:0}:where([data-sonner-toast][data-visible=\"false\"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=\"true\"][data-expanded=\"true\"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"true\"][data-swipe-out=\"false\"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"][data-swipe-out=\"false\"][data-expanded=\"true\"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"][data-swipe-out=\"false\"][data-expanded=\"false\"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation:swipe-out .2s ease-out forwards}@keyframes swipe-out{0%{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset: 16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\\n');\nfunction V(r) {\n return r.label !== void 0;\n}\n_c1 = V;\nvar ae = 3, ne = \"32px\", Lt = 4e3, se = 356, re = 14, ie = 20, le = 200;\nfunction de() {\n for(var _len = arguments.length, r = new Array(_len), _key = 0; _key < _len; _key++){\n r[_key] = arguments[_key];\n }\n return r.filter(Boolean).join(\" \");\n}\nvar ce = (r)=>{\n _s1();\n var xt, vt, wt, Tt, Rt, St, Et, Nt, Pt, Ct, Bt;\n let { invert: o, toast: t, unstyled: s, interacting: g, setHeights: l, visibleToasts: E, heights: P, index: h, toasts: c, expanded: y, removeToast: k, defaultRichColors: j, closeButton: O, style: st, cancelButtonStyle: i, actionButtonStyle: K, className: J = \"\", descriptionClassName: rt = \"\", duration: _, position: it, gap: lt, loadingIcon: X, expandByDefault: C, classNames: a, icons: N, closeButtonAriaLabel: G = \"Close toast\", pauseWhenPageIsHidden: Q, cn: R } = r, [B, q] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [U, dt] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [M, A] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [Z, L] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [Y, tt] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [d, u] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0), [b, w] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0), D = react__WEBPACK_IMPORTED_MODULE_0__.useRef(t.duration || _ || Lt), f = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null), H = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null), et = h === 0, ot = h + 1 <= E, x = t.type, F = t.dismissible !== !1, jt = t.className || \"\", Yt = t.descriptionClassName || \"\", at = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"ce.useMemo[at]\": ()=>P.findIndex({\n \"ce.useMemo[at]\": (n)=>n.toastId === t.id\n }[\"ce.useMemo[at]\"]) || 0\n }[\"ce.useMemo[at]\"], [\n P,\n t.id\n ]), Ft = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"ce.useMemo[Ft]\": ()=>{\n var n;\n return (n = t.closeButton) != null ? n : O;\n }\n }[\"ce.useMemo[Ft]\"], [\n t.closeButton,\n O\n ]), ue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"ce.useMemo[ue]\": ()=>t.duration || _ || Lt\n }[\"ce.useMemo[ue]\"], [\n t.duration,\n _\n ]), ct = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0), $ = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0), gt = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0), nt = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null), [ht, $t] = it.split(\"-\"), bt = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"ce.useMemo[bt]\": ()=>P.reduce({\n \"ce.useMemo[bt]\": (n, m, p)=>p >= at ? n : n + m.height\n }[\"ce.useMemo[bt]\"], 0)\n }[\"ce.useMemo[bt]\"], [\n P,\n at\n ]), yt = At(), Wt = t.invert || o, ut = x === \"loading\";\n $.current = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"ce.useMemo\": ()=>at * lt + bt\n }[\"ce.useMemo\"], [\n at,\n bt\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ce.useEffect\": ()=>{\n q(!0);\n }\n }[\"ce.useEffect\"], []), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ce.useEffect\": ()=>{\n let n = H.current;\n if (n) {\n let m = n.getBoundingClientRect().height;\n return w(m), l({\n \"ce.useEffect\": (p)=>[\n {\n toastId: t.id,\n height: m,\n position: t.position\n },\n ...p\n ]\n }[\"ce.useEffect\"]), ({\n \"ce.useEffect\": ()=>l({\n \"ce.useEffect\": (p)=>p.filter({\n \"ce.useEffect\": (v)=>v.toastId !== t.id\n }[\"ce.useEffect\"])\n }[\"ce.useEffect\"])\n })[\"ce.useEffect\"];\n }\n }\n }[\"ce.useEffect\"], [\n l,\n t.id\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect({\n \"ce.useLayoutEffect\": ()=>{\n if (!B) return;\n let n = H.current, m = n.style.height;\n n.style.height = \"auto\";\n let p = n.getBoundingClientRect().height;\n n.style.height = m, w(p), l({\n \"ce.useLayoutEffect\": (v)=>v.find({\n \"ce.useLayoutEffect\": (I)=>I.toastId === t.id\n }[\"ce.useLayoutEffect\"]) ? v.map({\n \"ce.useLayoutEffect\": (I)=>I.toastId === t.id ? {\n ...I,\n height: p\n } : I\n }[\"ce.useLayoutEffect\"]) : [\n {\n toastId: t.id,\n height: p,\n position: t.position\n },\n ...v\n ]\n }[\"ce.useLayoutEffect\"]);\n }\n }[\"ce.useLayoutEffect\"], [\n B,\n t.title,\n t.description,\n l,\n t.id\n ]);\n let z = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"ce.useCallback[z]\": ()=>{\n dt(!0), u($.current), l({\n \"ce.useCallback[z]\": (n)=>n.filter({\n \"ce.useCallback[z]\": (m)=>m.toastId !== t.id\n }[\"ce.useCallback[z]\"])\n }[\"ce.useCallback[z]\"]), setTimeout({\n \"ce.useCallback[z]\": ()=>{\n k(t);\n }\n }[\"ce.useCallback[z]\"], le);\n }\n }[\"ce.useCallback[z]\"], [\n t,\n k,\n l,\n $\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ce.useEffect\": ()=>{\n if (t.promise && x === \"loading\" || t.duration === 1 / 0 || t.type === \"loading\") return;\n let n;\n return y || g || Q && yt ? ({\n \"ce.useEffect\": ()=>{\n if (gt.current < ct.current) {\n let v = new Date().getTime() - ct.current;\n D.current = D.current - v;\n }\n gt.current = new Date().getTime();\n }\n })[\"ce.useEffect\"]() : ({\n \"ce.useEffect\": ()=>{\n D.current !== 1 / 0 && (ct.current = new Date().getTime(), n = setTimeout({\n \"ce.useEffect\": ()=>{\n var v;\n (v = t.onAutoClose) == null || v.call(t, t), z();\n }\n }[\"ce.useEffect\"], D.current));\n }\n })[\"ce.useEffect\"](), ({\n \"ce.useEffect\": ()=>clearTimeout(n)\n })[\"ce.useEffect\"];\n }\n }[\"ce.useEffect\"], [\n y,\n g,\n t,\n x,\n Q,\n yt,\n z\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ce.useEffect\": ()=>{\n t.delete && z();\n }\n }[\"ce.useEffect\"], [\n z,\n t.delete\n ]);\n function _t() {\n var n, m, p;\n return N != null && N.loading ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: R(a == null ? void 0 : a.loader, (n = t == null ? void 0 : t.classNames) == null ? void 0 : n.loader, \"sonner-loader\"),\n \"data-visible\": x === \"loading\"\n }, N.loading) : X ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: R(a == null ? void 0 : a.loader, (m = t == null ? void 0 : t.classNames) == null ? void 0 : m.loader, \"sonner-loader\"),\n \"data-visible\": x === \"loading\"\n }, X) : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Dt, {\n className: R(a == null ? void 0 : a.loader, (p = t == null ? void 0 : t.classNames) == null ? void 0 : p.loader),\n visible: x === \"loading\"\n });\n }\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", {\n tabIndex: 0,\n ref: H,\n className: R(J, jt, a == null ? void 0 : a.toast, (xt = t == null ? void 0 : t.classNames) == null ? void 0 : xt.toast, a == null ? void 0 : a.default, a == null ? void 0 : a[x], (vt = t == null ? void 0 : t.classNames) == null ? void 0 : vt[x]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (wt = t.richColors) != null ? wt : j,\n \"data-styled\": !(t.jsx || t.unstyled || s),\n \"data-mounted\": B,\n \"data-promise\": !!t.promise,\n \"data-swiped\": Y,\n \"data-removed\": U,\n \"data-visible\": ot,\n \"data-y-position\": ht,\n \"data-x-position\": $t,\n \"data-index\": h,\n \"data-front\": et,\n \"data-swiping\": M,\n \"data-dismissible\": F,\n \"data-type\": x,\n \"data-invert\": Wt,\n \"data-swipe-out\": Z,\n \"data-expanded\": !!(y || C && B),\n style: {\n \"--index\": h,\n \"--toasts-before\": h,\n \"--z-index\": c.length - h,\n \"--offset\": \"\".concat(U ? d : $.current, \"px\"),\n \"--initial-height\": C ? \"auto\" : \"\".concat(b, \"px\"),\n ...st,\n ...t.style\n },\n onPointerDown: (n)=>{\n ut || !F || (f.current = new Date, u($.current), n.target.setPointerCapture(n.pointerId), n.target.tagName !== \"BUTTON\" && (A(!0), nt.current = {\n x: n.clientX,\n y: n.clientY\n }));\n },\n onPointerUp: ()=>{\n var v, W, I, It;\n if (Z || !F) return;\n nt.current = null;\n let n = Number(((v = H.current) == null ? void 0 : v.style.getPropertyValue(\"--swipe-amount\").replace(\"px\", \"\")) || 0), m = new Date().getTime() - ((W = f.current) == null ? void 0 : W.getTime()), p = Math.abs(n) / m;\n if (Math.abs(n) >= ie || p > .11) {\n u($.current), (I = t.onDismiss) == null || I.call(t, t), z(), L(!0), tt(!1);\n return;\n }\n (It = H.current) == null || It.style.setProperty(\"--swipe-amount\", \"0px\"), A(!1);\n },\n onPointerMove: (n)=>{\n var W, I;\n if (!nt.current || !F) return;\n let m = n.clientY - nt.current.y, p = ((W = window.getSelection()) == null ? void 0 : W.toString().length) > 0, v = ht === \"top\" ? Math.min(0, m) : Math.max(0, m);\n Math.abs(v) > 0 && tt(!0), !p && ((I = H.current) == null || I.style.setProperty(\"--swipe-amount\", \"\".concat(v, \"px\")));\n }\n }, Ft && !t.jsx ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n \"aria-label\": G,\n \"data-disabled\": ut,\n \"data-close-button\": !0,\n onClick: ut || !F ? ()=>{} : ()=>{\n var n;\n z(), (n = t.onDismiss) == null || n.call(t, t);\n },\n className: R(a == null ? void 0 : a.closeButton, (Tt = t == null ? void 0 : t.classNames) == null ? void 0 : Tt.closeButton)\n }, (Rt = N == null ? void 0 : N.close) != null ? Rt : Ht) : null, t.jsx || /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(t.title) ? t.jsx ? t.jsx : typeof t.title == \"function\" ? t.title() : t.title : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, x || t.icon || t.promise ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n \"data-icon\": \"\",\n className: R(a == null ? void 0 : a.icon, (St = t == null ? void 0 : t.classNames) == null ? void 0 : St.icon)\n }, t.promise || t.type === \"loading\" && !t.icon ? t.icon || _t() : null, t.type !== \"loading\" ? t.icon || (N == null ? void 0 : N[x]) || kt(x) : null) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n \"data-content\": \"\",\n className: R(a == null ? void 0 : a.content, (Et = t == null ? void 0 : t.classNames) == null ? void 0 : Et.content)\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n \"data-title\": \"\",\n className: R(a == null ? void 0 : a.title, (Nt = t == null ? void 0 : t.classNames) == null ? void 0 : Nt.title)\n }, typeof t.title == \"function\" ? t.title() : t.title), t.description ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n \"data-description\": \"\",\n className: R(rt, Yt, a == null ? void 0 : a.description, (Pt = t == null ? void 0 : t.classNames) == null ? void 0 : Pt.description)\n }, typeof t.description == \"function\" ? t.description() : t.description) : null), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(t.cancel) ? t.cancel : t.cancel && V(t.cancel) ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n \"data-button\": !0,\n \"data-cancel\": !0,\n style: t.cancelButtonStyle || i,\n onClick: (n)=>{\n var m, p;\n V(t.cancel) && F && ((p = (m = t.cancel).onClick) == null || p.call(m, n), z());\n },\n className: R(a == null ? void 0 : a.cancelButton, (Ct = t == null ? void 0 : t.classNames) == null ? void 0 : Ct.cancelButton)\n }, t.cancel.label) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(t.action) ? t.action : t.action && V(t.action) ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n \"data-button\": !0,\n \"data-action\": !0,\n style: t.actionButtonStyle || K,\n onClick: (n)=>{\n var m, p;\n V(t.action) && ((p = (m = t.action).onClick) == null || p.call(m, n), !n.defaultPrevented && z());\n },\n className: R(a == null ? void 0 : a.actionButton, (Bt = t == null ? void 0 : t.classNames) == null ? void 0 : Bt.actionButton)\n }, t.action.label) : null));\n};\n_s1(ce, \"T4XyotabOku5SfDlKogIf4W/4is=\");\n_c2 = ce;\nfunction zt() {\n if (typeof window == \"undefined\" || typeof document == \"undefined\") return \"ltr\";\n let r = document.documentElement.getAttribute(\"dir\");\n return r === \"auto\" || !r ? window.getComputedStyle(document.documentElement).direction : r;\n}\nfunction Ce() {\n _s2();\n let [r, o] = react__WEBPACK_IMPORTED_MODULE_0__.useState([]);\n return react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Ce.useEffect\": ()=>T.subscribe({\n \"Ce.useEffect\": (t)=>{\n o({\n \"Ce.useEffect\": (s)=>{\n if (\"dismiss\" in t && t.dismiss) return s.filter({\n \"Ce.useEffect\": (l)=>l.id !== t.id\n }[\"Ce.useEffect\"]);\n let g = s.findIndex({\n \"Ce.useEffect.g\": (l)=>l.id === t.id\n }[\"Ce.useEffect.g\"]);\n if (g !== -1) {\n let l = [\n ...s\n ];\n return l[g] = {\n ...l[g],\n ...t\n }, l;\n } else return [\n t,\n ...s\n ];\n }\n }[\"Ce.useEffect\"]);\n }\n }[\"Ce.useEffect\"])\n }[\"Ce.useEffect\"], []), {\n toasts: r\n };\n}\n_s2(Ce, \"1TgUbPQ2XhOWkOILgOPztdFc158=\");\n_c3 = Ce;\nvar Be = /*#__PURE__*/ _s3((0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c4 = _s3(function(o, t) {\n _s3();\n let { invert: s, position: g = \"bottom-right\", hotkey: l = [\n \"altKey\",\n \"KeyT\"\n ], expand: E, closeButton: P, className: h, offset: c, theme: y = \"light\", richColors: k, duration: j, style: O, visibleToasts: st = ae, toastOptions: i, dir: K = zt(), gap: J = re, loadingIcon: rt, icons: _, containerAriaLabel: it = \"Notifications\", pauseWhenPageIsHidden: lt, cn: X = de } = o, [C, a] = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), N = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"Be.useMemo[N]\": ()=>Array.from(new Set([\n g\n ].concat(C.filter({\n \"Be.useMemo[N]\": (d)=>d.position\n }[\"Be.useMemo[N]\"]).map({\n \"Be.useMemo[N]\": (d)=>d.position\n }[\"Be.useMemo[N]\"]))))\n }[\"Be.useMemo[N]\"], [\n C,\n g\n ]), [G, Q] = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), [R, B] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [q, U] = react__WEBPACK_IMPORTED_MODULE_0__.useState(!1), [dt, M] = react__WEBPACK_IMPORTED_MODULE_0__.useState(y !== \"system\" ? y : typeof window != \"undefined\" && window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\"), A = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null), Z = l.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\"), L = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null), Y = react__WEBPACK_IMPORTED_MODULE_0__.useRef(!1), tt = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Be.useCallback[tt]\": (d)=>{\n a({\n \"Be.useCallback[tt]\": (u)=>{\n var b;\n return (b = u.find({\n \"Be.useCallback[tt]\": (w)=>w.id === d.id\n }[\"Be.useCallback[tt]\"])) != null && b.delete || T.dismiss(d.id), u.filter({\n \"Be.useCallback[tt]\": (param)=>{\n let { id: w } = param;\n return w !== d.id;\n }\n }[\"Be.useCallback[tt]\"]);\n }\n }[\"Be.useCallback[tt]\"]);\n }\n }[\"Be.useCallback[tt]\"], []);\n return react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Be.useEffect\": ()=>T.subscribe({\n \"Be.useEffect\": (d)=>{\n if (d.dismiss) {\n a({\n \"Be.useEffect\": (u)=>u.map({\n \"Be.useEffect\": (b)=>b.id === d.id ? {\n ...b,\n delete: !0\n } : b\n }[\"Be.useEffect\"])\n }[\"Be.useEffect\"]);\n return;\n }\n setTimeout({\n \"Be.useEffect\": ()=>{\n react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync({\n \"Be.useEffect\": ()=>{\n a({\n \"Be.useEffect\": (u)=>{\n let b = u.findIndex({\n \"Be.useEffect.b\": (w)=>w.id === d.id\n }[\"Be.useEffect.b\"]);\n return b !== -1 ? [\n ...u.slice(0, b),\n {\n ...u[b],\n ...d\n },\n ...u.slice(b + 1)\n ] : [\n d,\n ...u\n ];\n }\n }[\"Be.useEffect\"]);\n }\n }[\"Be.useEffect\"]);\n }\n }[\"Be.useEffect\"]);\n }\n }[\"Be.useEffect\"])\n }[\"Be.useEffect\"], []), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Be.useEffect\": ()=>{\n if (y !== \"system\") {\n M(y);\n return;\n }\n if (y === \"system\" && (window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? M(\"dark\") : M(\"light\")), typeof window == \"undefined\") return;\n let d = window.matchMedia(\"(prefers-color-scheme: dark)\");\n try {\n d.addEventListener(\"change\", {\n \"Be.useEffect\": (param)=>{\n let { matches: u } = param;\n M(u ? \"dark\" : \"light\");\n }\n }[\"Be.useEffect\"]);\n } catch (u) {\n d.addListener({\n \"Be.useEffect\": (param)=>{\n let { matches: b } = param;\n try {\n M(b ? \"dark\" : \"light\");\n } catch (w) {\n console.error(w);\n }\n }\n }[\"Be.useEffect\"]);\n }\n }\n }[\"Be.useEffect\"], [\n y\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Be.useEffect\": ()=>{\n C.length <= 1 && B(!1);\n }\n }[\"Be.useEffect\"], [\n C\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Be.useEffect\": ()=>{\n let d = {\n \"Be.useEffect.d\": (u)=>{\n var w, D;\n l.every({\n \"Be.useEffect.d\": (f)=>u[f] || u.code === f\n }[\"Be.useEffect.d\"]) && (B(!0), (w = A.current) == null || w.focus()), u.code === \"Escape\" && (document.activeElement === A.current || (D = A.current) != null && D.contains(document.activeElement)) && B(!1);\n }\n }[\"Be.useEffect.d\"];\n return document.addEventListener(\"keydown\", d), ({\n \"Be.useEffect\": ()=>document.removeEventListener(\"keydown\", d)\n })[\"Be.useEffect\"];\n }\n }[\"Be.useEffect\"], [\n l\n ]), react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Be.useEffect\": ()=>{\n if (A.current) return ({\n \"Be.useEffect\": ()=>{\n L.current && (L.current.focus({\n preventScroll: !0\n }), L.current = null, Y.current = !1);\n }\n })[\"Be.useEffect\"];\n }\n }[\"Be.useEffect\"], [\n A.current\n ]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"section\", {\n \"aria-label\": \"\".concat(it, \" \").concat(Z),\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\"\n }, N.map((d, u)=>{\n var D;\n let [b, w] = d.split(\"-\");\n return C.length ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"ol\", {\n key: d,\n dir: K === \"auto\" ? zt() : K,\n tabIndex: -1,\n ref: A,\n className: h,\n \"data-sonner-toaster\": !0,\n \"data-theme\": dt,\n \"data-y-position\": b,\n \"data-lifted\": R && C.length > 1 && !E,\n \"data-x-position\": w,\n style: {\n \"--front-toast-height\": \"\".concat(((D = G[0]) == null ? void 0 : D.height) || 0, \"px\"),\n \"--offset\": typeof c == \"number\" ? \"\".concat(c, \"px\") : c || ne,\n \"--width\": \"\".concat(se, \"px\"),\n \"--gap\": \"\".concat(J, \"px\"),\n ...O\n },\n onBlur: (f)=>{\n Y.current && !f.currentTarget.contains(f.relatedTarget) && (Y.current = !1, L.current && (L.current.focus({\n preventScroll: !0\n }), L.current = null));\n },\n onFocus: (f)=>{\n f.target instanceof HTMLElement && f.target.dataset.dismissible === \"false\" || Y.current || (Y.current = !0, L.current = f.relatedTarget);\n },\n onMouseEnter: ()=>B(!0),\n onMouseMove: ()=>B(!0),\n onMouseLeave: ()=>{\n q || B(!1);\n },\n onPointerDown: (f)=>{\n f.target instanceof HTMLElement && f.target.dataset.dismissible === \"false\" || U(!0);\n },\n onPointerUp: ()=>U(!1)\n }, C.filter((f)=>!f.position && u === 0 || f.position === d).map((f, H)=>{\n var et, ot;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ce, {\n key: f.id,\n icons: _,\n index: H,\n toast: f,\n defaultRichColors: k,\n duration: (et = i == null ? void 0 : i.duration) != null ? et : j,\n className: i == null ? void 0 : i.className,\n descriptionClassName: i == null ? void 0 : i.descriptionClassName,\n invert: s,\n visibleToasts: st,\n closeButton: (ot = i == null ? void 0 : i.closeButton) != null ? ot : P,\n interacting: q,\n position: d,\n style: i == null ? void 0 : i.style,\n unstyled: i == null ? void 0 : i.unstyled,\n classNames: i == null ? void 0 : i.classNames,\n cancelButtonStyle: i == null ? void 0 : i.cancelButtonStyle,\n actionButtonStyle: i == null ? void 0 : i.actionButtonStyle,\n removeToast: tt,\n toasts: C.filter((x)=>x.position == f.position),\n heights: G.filter((x)=>x.position == f.position),\n setHeights: Q,\n expandByDefault: E,\n gap: J,\n loadingIcon: rt,\n expanded: R,\n pauseWhenPageIsHidden: lt,\n cn: X\n });\n })) : null;\n }));\n}, \"j7YKxjaGfyGXneekQac63uiM1+A=\")), \"j7YKxjaGfyGXneekQac63uiM1+A=\");\n_c5 = Be;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"At\");\n$RefreshReg$(_c1, \"V\");\n$RefreshReg$(_c2, \"ce\");\n$RefreshReg$(_c3, \"Ce\");\n$RefreshReg$(_c4, \"Be$ee\");\n$RefreshReg$(_c5, \"Be\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zb25uZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7QUFBcUI7QUNGSDtBQUdYLElBQU1HLE1BQVlDLEdBQXlDO0lBQ2hFLE9BQVFBLEVBQU07UUFDWixLQUFLO1lBQ0gsT0FBT0M7UUFFVCxLQUFLO1lBQ0gsT0FBT0M7UUFFVCxLQUFLO1lBQ0gsT0FBT0M7UUFFVCxLQUFLO1lBQ0gsT0FBT0M7UUFFVDtZQUNFLE9BQU87SUFDWDtBQUNGLEdBRU1DLEtBQU8sTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBRWhCQyxLQUFTO1FBQUMsRUFBRSxTQUFBQyxDQUFBQSxFQUFTLFdBQUFDLENBQVU7eUJBRXhDVCxnREFBQSxDQUFDO1FBQUksV0FBVztZQUFDO1lBQTBCUyxDQUFTO1NBQUEsQ0FBRSxPQUFPLE9BQU8sRUFBRSxLQUFLLEdBQUc7UUFBRyxnQkFBY0Q7SUFBQUEsaUJBQzdGUixnREFBQSxDQUFDO1FBQUksV0FBVTtJQUFBLEdBQ1pNLEdBQUssSUFBSSxDQUFDSSxHQUFHQyxrQkFDWlgsZ0RBQUEsQ0FBQztZQUFJLFdBQVU7WUFBcUIsS0FBSyxlQUFlVyxPQUFBQTtRQUFBQSxDQUFLLENBQzlELENBQ0gsQ0FDRjtHQUlFVCxtQkFDSkYsZ0RBQUEsQ0FBQztJQUFJLE9BQU07SUFBNkIsU0FBUTtJQUFZLE1BQUs7SUFBZSxRQUFPO0lBQUssT0FBTTtBQUFBLGlCQUNoR0EsZ0RBQUEsQ0FBQztJQUNDLFVBQVM7SUFDVCxHQUFFO0lBQ0YsVUFBUztBQUFBLENBQ1gsQ0FDRixHQUdJSSxtQkFDSkosZ0RBQUEsQ0FBQztJQUFJLE9BQU07SUFBNkIsU0FBUTtJQUFZLE1BQUs7SUFBZSxRQUFPO0lBQUssT0FBTTtBQUFBLGlCQUNoR0EsZ0RBQUEsQ0FBQztJQUNDLFVBQVM7SUFDVCxHQUFFO0lBQ0YsVUFBUztBQUFBLENBQ1gsQ0FDRixHQUdJRyxtQkFDSkgsZ0RBQUEsQ0FBQztJQUFJLE9BQU07SUFBNkIsU0FBUTtJQUFZLE1BQUs7SUFBZSxRQUFPO0lBQUssT0FBTTtBQUFBLGlCQUNoR0EsZ0RBQUEsQ0FBQztJQUNDLFVBQVM7SUFDVCxHQUFFO0lBQ0YsVUFBUztBQUFBLENBQ1gsQ0FDRixHQUdJSyxtQkFDSkwsZ0RBQUEsQ0FBQztJQUFJLE9BQU07SUFBNkIsU0FBUTtJQUFZLE1BQUs7SUFBZSxRQUFPO0lBQUssT0FBTTtBQUFBLGlCQUNoR0EsZ0RBQUEsQ0FBQztJQUNDLFVBQVM7SUFDVCxHQUFFO0lBQ0YsVUFBUztBQUFBLENBQ1gsQ0FDRixHQUdXWSxtQkFDWFosZ0RBQUEsQ0FBQztJQUNDLE9BQU07SUFDTixPQUFNO0lBQ04sUUFBTztJQUNQLFNBQVE7SUFDUixNQUFLO0lBQ0wsUUFBTztJQUNQLGFBQVk7SUFDWixlQUFjO0lBQ2QsZ0JBQWU7QUFBQSxpQkFFZkEsZ0RBQUEsQ0FBQztJQUFLLElBQUc7SUFBSyxJQUFHO0lBQUksSUFBRztJQUFJLElBQUc7QUFBQSxDQUFLLGlCQUNwQ0EsZ0RBQUEsQ0FBQztJQUFLLElBQUc7SUFBSSxJQUFHO0lBQUksSUFBRztJQUFLLElBQUc7QUFBQSxDQUFLLENBQ3RDO0FDM0ZnQjtBQUVYLFNBQTRCLElBQU07O0lBQ3ZDLElBQU0sQ0FBQ2MsR0FBa0JDLENBQW1CLElBQUlELDJDQUFNLENBQVMsU0FBUyxNQUFNO0lBRTlFLE9BQUFBLDRDQUFNO3dCQUFVLElBQU07WUFDcEIsSUFBTUU7a0NBQVcsSUFBTTtvQkFDckJELEVBQW9CLFNBQVMsTUFBTTtnQkFDckM7O1lBQ0EsZ0JBQVMsaUJBQWlCLG9CQUFvQkMsQ0FBUTtnQ0FDL0MsSUFBTSxPQUFPLG9CQUFvQixvQkFBb0JBLENBQVE7O1FBQ3RFO3VCQUFHLENBQUMsQ0FBQyxHQUVFRjtBQUNUOztLQVphRDtBQ0FLO0FBRWxCLElBQUlJLEtBQWdCLEdBSWRDLEtBQU4sS0FBZTtJQUliLGFBQWM7UUFNZCxrQkFBYUMsS0FDWCxLQUFLLFlBQVksS0FBS0EsQ0FBVSxHQUV6QixJQUFNO2dCQUNYLElBQU1DLElBQVEsS0FBSyxZQUFZLFFBQVFELENBQVU7Z0JBQ2pELEtBQUssWUFBWSxPQUFPQyxHQUFPLENBQUM7WUFDbEM7UUFHRixnQkFBV0MsR0FBaUI7WUFDMUIsS0FBSyxZQUFZLFNBQVNGLElBQWVBLEVBQVdFLENBQUksQ0FBQztRQUMzRDtRQUVBLGlCQUFZQSxHQUFpQjtZQUMzQixLQUFLLFFBQVFBLENBQUksR0FDakIsS0FBSyxTQUFTLENBQUM7bUJBQUcsS0FBSztnQkFBUUEsQ0FBSTs7UUFDckM7UUFFQSxlQUNFQSxHQU1HO1lBM0NQLElBQUFDO1lBNENJLElBQU0sRUFBRSxTQUFBQyxDQUFBQSxFQUFTLEdBQUdDLENBQUssS0FBSUgsR0FDdkJJLElBQUssUUFBT0osS0FBQSxnQkFBQUEsRUFBTSxPQUFPLGNBQVlDLElBQUFELEVBQUssT0FBTCxnQkFBQUMsRUFBUyxVQUFTLElBQUlELEVBQUssS0FBS0osTUFDckVTLElBQWdCLEtBQUssT0FBTyxNQUFNQyxJQUMvQkEsRUFBTSxPQUFPRixDQUNyQixHQUNLRyxJQUFjUCxFQUFLLGdCQUFnQixTQUFZLEtBQU9BLEVBQUs7WUFFakUsT0FBSUssSUFDRixLQUFLLFNBQVMsS0FBSyxPQUFPLEtBQUtDLElBQ3pCQSxFQUFNLE9BQU9GLEtBQ2YsS0FBSyxRQUFRO29CQUFFLEdBQUdFLENBQUFBO29CQUFPLEdBQUdOLENBQUFBO29CQUFNLElBQUFJO29CQUFJLE9BQU9GO2dCQUFRLENBQUMsR0FDL0M7b0JBQ0wsR0FBR0ksQ0FBQUE7b0JBQ0gsR0FBR04sQ0FBQUE7b0JBQ0gsSUFBQUk7b0JBQ0EsYUFBQUc7b0JBQ0EsT0FBT0w7aUJBQ1QsSUFHS0ksQ0FDUixJQUVELEtBQUssU0FBUztnQkFBRSxPQUFPSjtnQkFBUyxHQUFHQyxDQUFBQTtnQkFBTSxhQUFBSTtnQkFBYSxJQUFBSDtZQUFHLENBQUMsR0FHckRBO1FBQ1Q7UUFFQSxnQkFBV0EsSUFDSkEsTUFDSCxLQUFLLE9BQU8sU0FBU0UsR0FBVTtnQkFDN0IsS0FBSyxZQUFZLFNBQVNSLElBQWVBLEVBQVc7d0JBQUUsSUFBSVEsRUFBTTt3QkFBSSxTQUFTO29CQUFLLENBQUMsQ0FBQztZQUN0RixDQUFDLEdBR0gsS0FBSyxZQUFZLFNBQVNSLElBQWVBLEVBQVc7b0JBQUUsSUFBQU07b0JBQUksU0FBUztnQkFBSyxDQUFDLENBQUMsSUFDbkVBO1FBR1QsZUFBVSxDQUFDRixHQUFtQ0YsSUFDckMsS0FBSyxPQUFPO2dCQUFFLEdBQUdBLENBQUFBO2dCQUFNLFNBQUFFO1lBQVEsQ0FBQztRQUd6QyxhQUFRLENBQUNBLEdBQW1DRixJQUNuQyxLQUFLLE9BQU87Z0JBQUUsR0FBR0EsQ0FBQUE7Z0JBQU0sU0FBQUU7Z0JBQVMsTUFBTTtZQUFRLENBQUM7UUFHeEQsZUFBVSxDQUFDQSxHQUFtQ0YsSUFDckMsS0FBSyxPQUFPO2dCQUFFLEdBQUdBLENBQUFBO2dCQUFNLE1BQU07Z0JBQVcsU0FBQUU7WUFBUSxDQUFDO1FBRzFELFlBQU8sQ0FBQ0EsR0FBbUNGLElBQ2xDLEtBQUssT0FBTztnQkFBRSxHQUFHQSxDQUFBQTtnQkFBTSxNQUFNO2dCQUFRLFNBQUFFO1lBQVEsQ0FBQztRQUd2RCxlQUFVLENBQUNBLEdBQW1DRixJQUNyQyxLQUFLLE9BQU87Z0JBQUUsR0FBR0EsQ0FBQUE7Z0JBQU0sTUFBTTtnQkFBVyxTQUFBRTtZQUFRLENBQUM7UUFHMUQsZUFBVSxDQUFDQSxHQUFtQ0YsSUFDckMsS0FBSyxPQUFPO2dCQUFFLEdBQUdBLENBQUFBO2dCQUFNLE1BQU07Z0JBQVcsU0FBQUU7WUFBUSxDQUFDO1FBRzFELGVBQVUsQ0FBWU0sR0FBOEJSLElBQWtDO1lBQ3BGLElBQUksQ0FBQ0EsR0FFSDtZQUdGLElBQUlJO1lBQ0FKLEVBQUssWUFBWSxXQUNuQkksSUFBSyxLQUFLLE9BQU87Z0JBQ2YsR0FBR0osQ0FBQUE7Z0JBQ0gsU0FBQVE7Z0JBQ0EsTUFBTTtnQkFDTixTQUFTUixFQUFLO2dCQUNkLGFBQWEsT0FBT0EsRUFBSyxlQUFnQixhQUFhQSxFQUFLLGNBQWM7WUFDM0UsRUFBQztZQUdILElBQU1TLElBQUlELGFBQW1CLFVBQVVBLElBQVVBLEVBQVEsR0FFckRFLElBQWdCTixNQUFPLFFBQ3ZCTyxHQUVFQyxJQUFrQkgsRUFDckIsS0FBSyxPQUFPSSxHQUFhO2dCQUd4QixJQUZBRixJQUFTO29CQUFDO29CQUFXRSxDQUFRO2lCQUFBLGdCQUNFZixpREFBTSxDQUFlZSxDQUFRLEdBRTFESCxJQUFnQixJQUNoQixLQUFLLE9BQU87b0JBQUUsSUFBQU47b0JBQUksTUFBTTtvQkFBVyxTQUFTUztnQkFBUyxDQUFDO3FCQUFBLElBQzdDQyxHQUFlRCxDQUFRLEtBQUssQ0FBQ0EsRUFBUyxJQUFJO29CQUNuREgsSUFBZ0I7b0JBQ2hCLElBQU1SLElBQ0osT0FBT0YsRUFBSyxTQUFVLGFBQWEsTUFBTUEsRUFBSyxNQUFNLHVCQUFnQyxDQUFRLE1BQWpCYSxFQUFTLFdBQVliLEVBQUssT0FDakdlLElBQ0osT0FBT2YsRUFBSyxlQUFnQixhQUN4QixNQUFNQSxFQUFLLFlBQVksdUJBQWdDLENBQVEsTUFBakJhLEVBQVMsV0FDdkRiLEVBQUs7b0JBQ1gsS0FBSyxPQUFPO3dCQUFFLElBQUFJO3dCQUFJLE1BQU07d0JBQVMsU0FBQUY7d0JBQVMsYUFBQWE7b0JBQVksQ0FBQztnQkFBQSxXQUM5Q2YsRUFBSyxZQUFZLFFBQVc7b0JBQ3JDVSxJQUFnQjtvQkFDaEIsSUFBTVIsSUFBVSxPQUFPRixFQUFLLFdBQVksYUFBYSxNQUFNQSxFQUFLLFFBQVFhLENBQVEsSUFBSWIsRUFBSyxTQUNuRmUsSUFDSixPQUFPZixFQUFLLGVBQWdCLGFBQWEsTUFBTUEsRUFBSyxZQUFZYSxDQUFRLElBQUliLEVBQUs7b0JBQ25GLEtBQUssT0FBTzt3QkFBRSxJQUFBSTt3QkFBSSxNQUFNO3dCQUFXLFNBQUFGO3dCQUFTLGFBQUFhO29CQUFZLENBQUM7Z0JBQUE7WUFFN0QsQ0FBQyxFQUNBLE1BQU0sT0FBT0MsR0FBVTtnQkFFdEIsSUFEQUwsSUFBUztvQkFBQztvQkFBVUssQ0FBSztpQkFBQSxFQUNyQmhCLEVBQUssVUFBVSxRQUFXO29CQUM1QlUsSUFBZ0I7b0JBQ2hCLElBQU1SLElBQVUsT0FBT0YsRUFBSyxTQUFVLGFBQWEsTUFBTUEsRUFBSyxNQUFNZ0IsQ0FBSyxJQUFJaEIsRUFBSyxPQUM1RWUsSUFBYyxPQUFPZixFQUFLLGVBQWdCLGFBQWEsTUFBTUEsRUFBSyxZQUFZZ0IsQ0FBSyxJQUFJaEIsRUFBSztvQkFDbEcsS0FBSyxPQUFPO3dCQUFFLElBQUFJO3dCQUFJLE1BQU07d0JBQVMsU0FBQUY7d0JBQVMsYUFBQWE7b0JBQVksQ0FBQztnQkFBQTtZQUUzRCxDQUFDLEVBQ0EsUUFBUSxJQUFNO2dCQW5LckIsSUFBQWQ7Z0JBb0tZUyxNQUVGLEtBQUssUUFBUU4sQ0FBRSxHQUNmQSxJQUFLLFVBR1BILElBQUFELEVBQUssWUFBTCxRQUFBQyxFQUFBLEtBQUFEO1lBQ0YsQ0FBQyxHQUVHaUIsSUFBUyxJQUNiLElBQUksUUFBbUIsQ0FBQ0MsR0FBU0MsSUFDL0JQLEVBQWdCLEtBQUssSUFBT0QsQ0FBQUEsQ0FBTyxDQUFDLE1BQU0sV0FBV1EsRUFBT1IsQ0FBQUEsQ0FBTyxDQUFDLENBQUMsSUFBSU8sRUFBUVAsQ0FBQUEsQ0FBTyxDQUFDLENBQUMsQ0FBRSxFQUFFLE1BQU1RLENBQU0sQ0FDNUc7WUFFRixPQUFJLE9BQU9mLEtBQU8sWUFBWSxPQUFPQSxLQUFPLFdBRW5DO2dCQUFFLFFBQUFhO1lBQU8sSUFFVCxPQUFPLE9BQU9iLEdBQUk7Z0JBQUUsUUFBQWE7WUFBTyxDQUFDO1FBRXZDO1FBRUEsY0FBUyxDQUFDRyxHQUFrRHBCLElBQXlCO1lBQ25GLElBQU1JLElBQUFBLENBQUtKLEtBQUEsZ0JBQUFBLEVBQU0sT0FBTUo7WUFDdkIsWUFBSyxPQUFPO2dCQUFFLEtBQUt3QixFQUFJaEIsQ0FBRTtnQkFBRyxJQUFBQTtnQkFBSSxHQUFHSjtZQUFLLENBQUMsR0FDbENJO1FBQ1Q7UUFqTEUsS0FBSyxjQUFjLENBQUMsR0FDcEIsS0FBSyxTQUFTLENBQUM7SUFDakI7QUFnTEYsR0FFYWlCLElBQWEsSUFBSXhCLElBR3hCeUIsS0FBZ0IsQ0FBQ3BCLEdBQWlCRixJQUF5QjtJQUMvRCxJQUFNSSxJQUFBQSxDQUFLSixLQUFBLGdCQUFBQSxFQUFNLE9BQU1KO0lBRXZCLE9BQUF5QixFQUFXLFNBQVM7UUFDbEIsT0FBT25CO1FBQ1AsR0FBR0YsQ0FBQUE7UUFDSCxJQUFBSTtJQUNGLENBQUMsR0FDTUE7QUFDVCxHQUVNVSxNQUFrQmQsSUFFcEJBLEtBQ0EsT0FBT0EsS0FBUyxZQUNoQixRQUFRQSxLQUNSLE9BQU9BLEVBQUssTUFBTyxhQUNuQixZQUFZQSxLQUNaLE9BQU9BLEVBQUssVUFBVyxVQUlyQnVCLEtBQWFELElBRWJFLEtBQWEsSUFBTUgsRUFBVyxRQUd2QmYsS0FBUSxPQUFPLE9BQzFCaUIsSUFDQTtJQUNFLFNBQVNGLEVBQVc7SUFDcEIsTUFBTUEsRUFBVztJQUNqQixTQUFTQSxFQUFXO0lBQ3BCLE9BQU9BLEVBQVc7SUFDbEIsUUFBUUEsRUFBVztJQUNuQixTQUFTQSxFQUFXO0lBQ3BCLFNBQVNBLEVBQVc7SUFDcEIsU0FBU0EsRUFBVztJQUNwQixTQUFTQSxFQUFXO0FBQ3RCLEdBQ0E7SUFBRSxZQUFBRztBQUFXLENBQ2Y7QUM1T3lCLFNBQVJDLEdBQTZCQyxDQUFBQTtVQUFPLFVBQUFDLENBQVMsS0FBWCxpRUFBZSxDQUFDLEVBQUc7SUFDMUQsSUFBSSxDQUFDRCxLQUFPLE9BQU8sWUFBYSxhQUFhO0lBRTdDLElBQU1FLElBQU8sU0FBUyxRQUFRLFNBQVMscUJBQXFCLE1BQU0sRUFBRSxDQUFDLEdBQy9EQyxJQUFRLFNBQVMsY0FBYyxPQUFPO0lBQzVDQSxFQUFNLE9BQU8sWUFFVEYsTUFBYSxTQUNYQyxFQUFLLGFBQ1BBLEVBQUssYUFBYUMsR0FBT0QsRUFBSyxVQUFVLElBSzFDQSxFQUFLLFlBQVlDLENBQUssR0FHcEJBLEVBQU0sYUFDUkEsRUFBTSxXQUFXLFVBQVVILElBRTNCRyxFQUFNLFlBQVksU0FBUyxlQUFlSCxDQUFHLENBQUM7QUFFbEQ7QUN2QjhCRCxHQUFZO0FDa0Y3QyxXQUFrQk0sQ0FBQUEsQ0FBb0Q7SUFDM0UsT0FBUUEsRUFBa0IsVUFBVTtBQUN0QztNQUZnQkQ7QU45RGhCLElBQU1FLEtBQXdCLEdBR3hCQyxLQUFrQixRQUdsQkMsS0FBaUIsS0FHakJDLEtBQWMsS0FHZEMsS0FBTSxJQUdOQyxLQUFrQixJQUdsQkMsS0FBc0I7QUFFNUIsU0FBU0M7SUFBQUEsSUFBQUEsSUFBQUEsT0FBQUEsVUFBQUEsUUFBQUEsSUFBQUEsVUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUE7UUFBT0MsRUFBUEQsUUFBQUEsU0FBQUEsQ0FBQUEsS0FBT0MsQ0FBaUM7O0lBQy9DLE9BQU9BLEVBQVEsT0FBTyxPQUFPLEVBQUUsS0FBSyxHQUFHO0FBQ3pDO0FBRUEsVUFBZUUsR0FBc0I7O0lBNUNyQyxJQUFBekMsSUFBQTBDLElBQUFDLElBQUFDLElBQUFDLElBQUFDLElBQUFDLElBQUFDLElBQUFDLElBQUFDLElBQUFDO0lBNkNFLElBQU0sRUFDSixRQUFRQyxDQUFBQSxFQUNSLE9BQUEvQyxDQUFBQSxFQUNBLFVBQUFnRCxDQUFBQSxFQUNBLGFBQUFDLENBQUFBLEVBQ0EsWUFBQUMsQ0FBQUEsRUFDQSxlQUFBQyxDQUFBQSxFQUNBLFNBQUFDLENBQUFBLEVBQ0EsT0FBQTNELENBQUFBLEVBQ0EsUUFBQTRELENBQUFBLEVBQ0EsVUFBQUMsQ0FBQUEsRUFDQSxhQUFBQyxDQUFBQSxFQUNBLG1CQUFBQyxDQUFBQSxFQUNBLGFBQWFDLENBQUFBLEVBQ2IsT0FBQWxDLEVBQUFBLEVBQ0EsbUJBQUFtQyxDQUFBQSxFQUNBLG1CQUFBQyxDQUFBQSxFQUNBLFdBQUE3RSxJQUFZLElBQ1osc0JBQUE4RSxLQUF1QixJQUN2QixVQUFVQyxDQUFBQSxFQUNWLFVBQUFDLEVBQUFBLEVBQ0EsS0FBQUMsRUFBQUEsRUFDQSxhQUFhQyxDQUFBQSxFQUNiLGlCQUFBQyxDQUFBQSxFQUNBLFlBQUFDLENBQUFBLEVBQ0EsT0FBQUMsQ0FBQUEsRUFDQSxzQkFBQUMsSUFBdUIsZUFDdkIsdUJBQUFDLENBQUFBLEVBQ0EsSUFBQUMsQ0FDRixLQUFJbEMsR0FDRSxDQUFDbUMsR0FBU0MsQ0FBVSxJQUFJVSwyQ0FBTSxDQUFTLEVBQUssR0FDNUMsQ0FBQ1QsR0FBU0MsRUFBVSxJQUFJUSwyQ0FBTSxDQUFTLEVBQUssR0FDNUMsQ0FBQ1AsR0FBU0MsQ0FBVSxJQUFJTSwyQ0FBTSxDQUFTLEVBQUssR0FDNUMsQ0FBQ0wsR0FBVUMsQ0FBVyxJQUFJSSwyQ0FBTSxDQUFTLEVBQUssR0FDOUMsQ0FBQ0gsR0FBVUMsRUFBVyxJQUFJRSwyQ0FBTSxDQUFTLEVBQUssR0FDOUMsQ0FBQ0QsR0FBb0JDLENBQXFCLElBQUlBLDJDQUFNLENBQVMsQ0FBQyxHQUM5RCxDQUFDQyxHQUFlQyxDQUFnQixJQUFJRiwyQ0FBTSxDQUFTLENBQUMsR0FDcERHLElBQWdCSCx5Q0FBTSxDQUFPbEYsRUFBTSxZQUFZNkQsS0FBdUJqQyxFQUFjLEdBQ3BGMEQsSUFBZ0JKLHlDQUFNLENBQW9CLElBQUksR0FDOUNLLElBQVdMLHlDQUFNLENBQXNCLElBQUksR0FDM0NNLEtBQVUvRixNQUFVLEdBQ3BCZ0csS0FBWWhHLElBQVEsS0FBSzBELEdBQ3pCdUMsSUFBWTFGLEVBQU0sTUFDbEJDLElBQWNELEVBQU0sZ0JBQWdCLElBQ3BDMkYsS0FBaUIzRixFQUFNLGFBQWEsSUFDcEM0RixLQUE0QjVGLEVBQU0sd0JBQXdCLElBRTFENkYsS0FBY1gsMENBQU07MEJBQ3hCLElBQU05QixFQUFRO21DQUFXMEMsSUFBV0EsRUFBTyxZQUFZOUYsRUFBTSxFQUFFO29DQUFLO3lCQUNwRTtRQUFDb0Q7UUFBU3BELEVBQU0sRUFBRTtLQUNwQixHQUNNK0YsS0FBY2IsMENBQU07MEJBQ3hCLElBQUc7WUFqR1AsSUFBQXZGO1lBaUdVLFFBQUFBLElBQUFLLEVBQU0sZ0JBQU4sT0FBQUwsSUFBcUI4RDtRQUFBQTt5QkFDM0I7UUFBQ3pELEVBQU07UUFBYXlELENBQXNCO0tBQzVDLEdBQ011QyxLQUFXZCwwQ0FBTTswQkFDckIsSUFBTWxGLEVBQU0sWUFBWTZELEtBQXVCakM7eUJBQy9DO1FBQUM1QixFQUFNO1FBQVU2RCxDQUFtQjtLQUN0QyxHQUNNb0MsS0FBeUJmLHlDQUFNLENBQU8sQ0FBQyxHQUN2Q2dCLElBQVNoQix5Q0FBTSxDQUFPLENBQUMsR0FDdkJpQixLQUE2QmpCLHlDQUFNLENBQU8sQ0FBQyxHQUMzQ2tCLEtBQWtCbEIseUNBQU0sQ0FBd0MsSUFBSSxHQUNwRSxDQUFDbUIsSUFBR0MsRUFBQyxJQUFJeEMsR0FBUyxNQUFNLEdBQUcsR0FDM0J5QyxLQUFxQnJCLDBDQUFNOzBCQUFRLElBQ2hDOUIsRUFBUTtrQ0FBTyxDQUFDb0QsR0FBTUMsR0FBTUMsSUFFN0JBLEtBQWdCYixLQUNYVyxJQUdGQSxJQUFPQyxFQUFLO2lDQUNsQixDQUFDO3lCQUNIO1FBQUNyRDtRQUFTeUMsRUFBVztLQUFDLEdBQ25CMUcsS0FBbUJELEdBQW9CLEdBRXZDeUgsS0FBUzNHLEVBQU0sVUFBVStDLEdBQ3pCNkQsS0FBV2xCLE1BQWM7SUFFL0JRLEVBQU8sVUFBVWhCLDBDQUFNO3NCQUFRLElBQU1XLEtBQWM5QixLQUFNd0M7cUJBQW9CO1FBQUNWO1FBQWFVLEVBQWtCO0tBQUMsR0FFOUdyQiw0Q0FBTTt3QkFBVSxJQUFNO1lBRXBCVixFQUFXLEVBQUk7UUFDakI7dUJBQUcsQ0FBQyxDQUFDLEdBRUxVLDRDQUFNO3dCQUFVLElBQU07WUFDcEIsSUFBTTJCLElBQVl0QixFQUFTO1lBQzNCLElBQUlzQixHQUFXO2dCQUNiLElBQU1mLElBQVNlLEVBQVUsc0JBQXNCLEVBQUU7Z0JBRWpELE9BQUF6QixFQUFpQlUsQ0FBTSxHQUN2QjVDO3FDQUFZNEQsSUFBTTs0QkFBQztnQ0FBRSxTQUFTOUcsRUFBTTtnQ0FBSSxRQUFBOEY7Z0NBQVEsVUFBVTlGLEVBQU07NEJBQVMsRUFBRzsrQkFBRzhHLENBQUM7eUJBQUM7O29DQUMxRSxJQUFNNUQ7NkNBQVk0RCxJQUFNQSxFQUFFO3FEQUFRaEIsSUFBV0EsRUFBTyxZQUFZOUYsRUFBTSxFQUFFOzs7O1lBQUM7UUFFcEY7dUJBQUc7UUFBQ2tEO1FBQVlsRCxFQUFNLEVBQUU7S0FBQyxHQUV6QmtGLGtEQUFNOzhCQUFnQixJQUFNO1lBQzFCLElBQUksQ0FBQ1gsR0FBUztZQUNkLElBQU1zQyxJQUFZdEIsRUFBUyxTQUNyQndCLElBQWlCRixFQUFVLE1BQU07WUFDdkNBLEVBQVUsTUFBTSxTQUFTO1lBQ3pCLElBQU1HLElBQVlILEVBQVUsc0JBQXNCLEVBQUU7WUFDcERBLEVBQVUsTUFBTSxTQUFTRSxHQUV6QjNCLEVBQWlCNEIsQ0FBUyxHQUUxQjlEO3VDQUFZRSxJQUNZQSxFQUFROytDQUFNMEMsSUFBV0EsRUFBTyxZQUFZOUYsRUFBTSxFQUFFOytDQUlqRW9ELEVBQVE7K0NBQUswQyxJQUFZQSxFQUFPLFlBQVk5RixFQUFNLEtBQUs7Z0NBQUUsR0FBRzhGLENBQUFBO2dDQUFRLFFBQVFrQjs0QkFBVSxJQUFJbEIsQ0FBTzsrQ0FGakc7d0JBQUM7NEJBQUUsU0FBUzlGLEVBQU07NEJBQUksUUFBUWdIOzRCQUFXLFVBQVVoSCxFQUFNO3dCQUFTLEVBQUc7MkJBQUdvRCxDQUFPO3FCQUl6Rjs7UUFDSDs2QkFBRztRQUFDbUI7UUFBU3ZFLEVBQU07UUFBT0EsRUFBTTtRQUFha0Q7UUFBWWxELEVBQU0sRUFBRTtLQUFDO0lBRWxFLElBQU1pSCxJQUFjL0IsOENBQU07NkJBQVksSUFBTTtZQUUxQ1IsR0FBVyxFQUFJLEdBQ2ZRLEVBQXNCZ0IsRUFBTyxPQUFPLEdBQ3BDaEQ7c0NBQVk0RCxJQUFNQSxFQUFFOzhDQUFRaEIsSUFBV0EsRUFBTyxZQUFZOUYsRUFBTSxFQUFFOztxQ0FFbEU7cUNBQVcsSUFBTTtvQkFDZnVELEVBQVl2RCxDQUFLO2dCQUNuQjtvQ0FBR2dDLEVBQW1CO1FBQ3hCOzRCQUFHO1FBQUNoQztRQUFPdUQ7UUFBYUw7UUFBWWdELENBQU07S0FBQztJQUUzQ2hCLDRDQUFNO3dCQUFVLElBQU07WUFDcEIsSUFBS2xGLEVBQU0sV0FBVzBGLE1BQWMsYUFBYzFGLEVBQU0sYUFBYSxTQUFZQSxFQUFNLFNBQVMsV0FBVztZQUMzRyxJQUFJa0g7WUE2QkosT0FBSTVELEtBQVlMLEtBQWdCb0IsS0FBeUJsRixLQUFBQTtnQ0ExQnRDLElBQU07b0JBQ3ZCLElBQUlnSCxHQUEyQixVQUFVRixHQUF1QixTQUFTO3dCQUV2RSxJQUFNa0IsSUFBYyxJQUFJLEtBQUssRUFBRSxRQUFRLElBQUlsQixHQUF1Qjt3QkFFbEVaLEVBQWMsVUFBVUEsRUFBYyxVQUFVOEI7b0JBQUFBO29CQUdsRGhCLEdBQTJCLFVBQVUsSUFBSSxLQUFLLEVBQUUsUUFBUTtnQkFDMUQ7bUNBa0JhO2dDQWhCTSxJQUFNO29CQUluQmQsRUFBYyxZQUFZLFNBRTlCWSxJQUF1QixVQUFVLElBQUksS0FBSyxFQUFFLFFBQVEsR0FHcERpQixJQUFZO3dDQUFXLElBQU07NEJBdE1uQyxJQUFBdkg7NkJBdU1RQSxJQUFBSyxFQUFNLGdCQUFOLFFBQUFMLEVBQUEsS0FBQUssR0FBb0JBLElBQ3BCaUgsRUFBWTt3QkFDZDt1Q0FBRzVCLEVBQWMsUUFBTztnQkFDMUI7O2dDQVFPLElBQU0sYUFBYTZCLENBQVM7O1FBQ3JDO3VCQUFHO1FBQUM1RDtRQUFVTDtRQUFhakQ7UUFBTzBGO1FBQVdyQjtRQUF1QmxGO1FBQWtCOEgsQ0FBVztLQUFDLEdBRWxHL0IsNENBQU07d0JBQVUsSUFBTTtZQUNoQmxGLEVBQU0sVUFDUmlILEVBQVk7UUFFaEI7dUJBQUc7UUFBQ0E7UUFBYWpILEVBQU0sTUFBTTtLQUFDO0lBRTlCLFNBQVNvSCxJQUFpQjtRQTNONUIsSUFBQXpILEdBQUEwQyxHQUFBQztRQTROSSxPQUFJNkIsS0FBQSxRQUFBQSxFQUFPLHdCQUVQZSxnREFBQSxDQUFDO1lBQ0MsV0FBV1osRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxhQUFRbEUsS0FBQSxnQkFBQUEsRUFBTyxlQUFQLGdCQUFBTCxFQUFtQixRQUFRLGVBQWU7WUFDNUUsZ0JBQWMrRixNQUFjO1FBQUEsR0FFM0J2QixFQUFNLE9BQ1QsSUFJQUgsa0JBRUFrQixnREFBQSxDQUFDO1lBQ0MsV0FBV1osRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxTQUFRN0IsSUFBQXJDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQXFDLEVBQW1CLFFBQVEsZUFBZTtZQUM1RSxnQkFBY3FELE1BQWM7UUFBQSxHQUUzQjFCLENBQ0gsa0JBR0drQixnREFBQSxDQUFDdEcsSUFBQTtZQUFPLFdBQVcwRixFQUFHSixLQUFBLGdCQUFBQSxFQUFZLFNBQVE1QixJQUFBdEMsS0FBQSxnQkFBQUEsRUFBTyxlQUFQLGdCQUFBc0MsRUFBbUIsTUFBTTtZQUFHLFNBQVNvRCxNQUFjO1FBQUEsQ0FBVztJQUNqSDtJQUVBLHFCQUNFUixnREFBQSxDQUFDO1FBQ0MsVUFBVTtRQUNWLEtBQUtLO1FBQ0wsV0FBV2pCLEVBQ1R4RixHQUNBNkcsSUFDQXpCLEtBQUEsZ0JBQUFBLEVBQVksUUFDWnZFLEtBQUFLLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQUwsR0FBbUIsT0FDbkJ1RSxLQUFBLGdCQUFBQSxFQUFZLFNBQ1pBLEtBQUEsZ0JBQUFBLENBQUFBLENBQWF3QixFQUFBQSxFQUFBQSxDQUNickQsS0FBQXJDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQXFDLEVBQUFBLENBQW9CcUQsRUFDdEI7UUFDQSxxQkFBa0I7UUFDbEIsMEJBQWtCMUYsRUFBTSxlQUFOLE9BQUFzQyxLQUFvQmtCO1FBQ3RDLGVBQWEsRUFBU3hELEVBQU0sT0FBT0EsRUFBTSxhQUFZZ0Q7UUFDckQsZ0JBQWN1QjtRQUNkLGdCQUFjLEVBQVF2RSxFQUFNO1FBQzVCLGVBQWErRTtRQUNiLGdCQUFjTjtRQUNkLGdCQUFjZ0I7UUFDZCxtQkFBaUJZO1FBQ2pCLG1CQUFpQkM7UUFDakIsY0FBWTdHO1FBQ1osY0FBWStGO1FBQ1osZ0JBQWNiO1FBQ2Qsb0JBQWtCMUU7UUFDbEIsYUFBV3lGO1FBQ1gsZUFBYWlCO1FBQ2Isa0JBQWdCOUI7UUFDaEIsaUJBQWUsRUFBUXZCLE1BQWFXLE1BQW1CTTtRQUN2RCxPQUNFO1lBQ0UsV0FBVzlFO1lBQ1gsbUJBQW1CQTtZQUNuQixhQUFhNEQsRUFBTyxTQUFTNUQ7WUFDN0IsWUFBWSxHQUF5QyxPQUF0Q2dGLElBQVVRLElBQXFCaUIsRUFBTztZQUNyRCxvQkFBb0JqQyxJQUFrQixTQUFTLEdBQUdrQixPQUFBQSxHQUFBQTtZQUNsRCxHQUFHNUQsRUFBQUE7WUFDSCxHQUFHdkIsRUFBTTtRQUNYO1FBRUYsZ0JBQWdCcUgsR0FBVTtZQUNwQlQsTUFBWSxDQUFDM0csTUFDakJxRixFQUFjLFVBQVUsSUFBSSxNQUM1QkosRUFBc0JnQixFQUFPLE9BQU8sR0FFbkNtQixFQUFNLE9BQXVCLGtCQUFrQkEsRUFBTSxTQUFTLEdBQzFEQSxFQUFNLE9BQXVCLFlBQVksYUFDOUN6QyxFQUFXLEVBQUksR0FDZndCLEdBQWdCLFVBQVU7Z0JBQUUsR0FBR2lCLEVBQU07Z0JBQVMsR0FBR0EsRUFBTTthQUFRO1FBQ2pFO1FBQ0EsYUFBYSxJQUFNO1lBeFN6QixJQUFBMUgsR0FBQTBDLEdBQUFDLEdBQUFDO1lBeVNRLElBQUlzQyxLQUFZLENBQUM1RSxHQUFhO1lBRTlCbUcsR0FBZ0IsVUFBVTtZQUMxQixJQUFNa0IsSUFBYyxTQUFPM0gsSUFBQTRGLEVBQVMsWUFBVCxnQkFBQTVGLEVBQWtCLE1BQU0saUJBQWlCLGtCQUFrQixRQUFRLE1BQU0sUUFBTyxDQUFDLEdBQ3RHNEgsSUFBWSxJQUFJLEtBQUssRUFBRSxRQUFRLFVBQUlqQyxFQUFjLFlBQWQsZ0JBQUFqRCxFQUF1QixZQUMxRG1GLElBQVcsS0FBSyxJQUFJRixDQUFXLElBQUlDO1lBR3pDLElBQUksS0FBSyxJQUFJRCxDQUFXLEtBQUt2RixNQUFtQnlGLElBQVcsS0FBTTtnQkFDL0R0QyxFQUFzQmdCLEVBQU8sT0FBTyxJQUNwQzVELElBQUF0QyxFQUFNLGNBQU4sUUFBQXNDLEVBQUEsS0FBQXRDLEdBQWtCQSxJQUNsQmlILEVBQVksR0FDWm5DLEVBQVksRUFBSSxHQUNoQkUsR0FBWSxFQUFLO2dCQUNqQjtZQUFBO2FBR0Z6QyxLQUFBZ0QsRUFBUyxZQUFULFFBQUFoRCxHQUFrQixNQUFNLFlBQVksa0JBQWtCLFFBQ3REcUMsRUFBVyxFQUFLO1FBQ2xCO1FBQ0EsZUFBZ0J5QyxHQUFVO1lBN1RoQyxJQUFBMUgsR0FBQTBDO1lBOFRRLElBQUksQ0FBQytELEdBQWdCLFdBQVcsQ0FBQ25HLEdBQWE7WUFFOUMsSUFBTXdILElBQVlKLEVBQU0sVUFBVWpCLEdBQWdCLFFBQVEsR0FDcERzQixJQUFBQSxDQUFBQSxLQUFnQixPQUFPLGNBQWEsS0FBcEIsZ0JBQUEvSCxFQUF1QixXQUFXLFVBQVMsR0FDM0QySCxJQUFjakIsT0FBTSxRQUFRLEtBQUssSUFBSSxHQUFHb0IsQ0FBUyxJQUFJLEtBQUssSUFBSSxHQUFHQSxDQUFTO1lBRTVFLEtBQUssSUFBSUgsQ0FBVyxJQUFJLEtBQzFCdEMsR0FBWSxFQUFJLEdBR2QsQ0FBQTBDLEtBQUFBLENBQUFBLENBRUpyRixJQUFBa0QsRUFBUyxZQUFULFFBQUFsRCxFQUFrQixNQUFNLFlBQVksa0JBQWtCLEdBQUdpRixPQUFBQSxHQUFBQSxNQUFBQTtRQUMzRDtJQUFBLEdBRUN2QixNQUFlLENBQUMvRixFQUFNLG9CQUNyQmtGLGdEQUFBLENBQUM7UUFDQyxjQUFZZDtRQUNaLGlCQUFld0M7UUFDZixxQkFBaUI7UUFDakIsU0FDRUEsTUFBWSxDQUFDM0csSUFDVCxJQUFNLENBQUMsSUFDUCxJQUFNO1lBclZ0QixJQUFBTjtZQXNWa0JzSCxFQUFZLFFBQ1pqSCxFQUFNLGNBQU4sUUFBQUwsRUFBQSxLQUFBSyxHQUFrQkE7UUFDcEI7UUFFTixXQUFXc0UsRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxjQUFhM0IsS0FBQXZDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQXVDLEdBQW1CLFdBQVc7SUFBQSxJQUVwRUMsS0FBQTJCLEtBQUEsZ0JBQUFBLEVBQU8sVUFBUCxPQUFBM0IsS0FBZ0J2RCxFQUNuQixJQUNFLE1BRUhlLEVBQU0scUJBQU9rRixpREFBTSxDQUFlbEYsRUFBTSxLQUFLLElBQzVDQSxFQUFNLE1BQ0pBLEVBQU0sTUFDSixPQUFPQSxFQUFNLFNBQVUsYUFDekJBLEVBQU0sTUFBTSxJQUVaQSxFQUFNLHNCQUdSa0YsZ0RBQUEsQ0FBQUEsMkNBQUEsUUFDR1EsS0FBYTFGLEVBQU0sUUFBUUEsRUFBTSx3QkFDaENrRixnREFBQSxDQUFDO1FBQUksYUFBVTtRQUFHLFdBQVdaLEVBQUdKLEtBQUEsZ0JBQUFBLEVBQVksT0FBTXpCLEtBQUF6QyxLQUFBLGdCQUFBQSxFQUFPLGVBQVAsZ0JBQUF5QyxHQUFtQixJQUFJO0lBQUEsR0FDdEV6QyxFQUFNLFdBQVlBLEVBQU0sU0FBUyxhQUFhLENBQUNBLEVBQU0sT0FBUUEsRUFBTSxRQUFRb0gsR0FBZSxJQUFJLE1BQzlGcEgsRUFBTSxTQUFTLFlBQVlBLEVBQU0sUUFBUW1FLE1BQUEsZ0JBQUFBLENBQUFBLENBQVF1QixFQUFBQSxLQUFjckgsR0FBU3FILENBQVMsSUFBSSxJQUN4RixJQUNFLG9CQUVKUixnREFBQSxDQUFDO1FBQUksZ0JBQWE7UUFBRyxXQUFXWixFQUFHSixLQUFBLGdCQUFBQSxFQUFZLFVBQVN4QixLQUFBMUMsS0FBQSxnQkFBQUEsRUFBTyxlQUFQLGdCQUFBMEMsR0FBbUIsT0FBTztJQUFBLGlCQUNoRndDLGdEQUFBLENBQUM7UUFBSSxjQUFXO1FBQUcsV0FBV1osRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxRQUFPdkIsS0FBQTNDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQTJDLEdBQW1CLEtBQUs7SUFBQSxHQUN6RSxPQUFPM0MsRUFBTSxTQUFVLGFBQWFBLEVBQU0sTUFBTSxJQUFJQSxFQUFNLEtBQzdELEdBQ0NBLEVBQU0sNEJBQ0xrRixnREFBQSxDQUFDO1FBQ0Msb0JBQWlCO1FBQ2pCLFdBQVdaLEVBQ1RWLElBQ0FnQyxJQUNBMUIsS0FBQSxnQkFBQUEsRUFBWSxjQUNadEIsS0FBQTVDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQTRDLEdBQW1CLFdBQ3JCO0lBQUEsR0FFQyxPQUFPNUMsRUFBTSxlQUFnQixhQUFhQSxFQUFNLFlBQVksSUFBSUEsRUFBTSxXQUN6RSxJQUNFLElBQ04saUJBQ0NrRixpREFBTSxDQUFlbEYsRUFBTSxNQUFNLElBQ2hDQSxFQUFNLFNBQ0pBLEVBQU0sVUFBVXdCLEVBQVN4QixFQUFNLE1BQU0sa0JBQ3ZDa0YsZ0RBQUEsQ0FBQztRQUNDLGVBQVc7UUFDWCxlQUFXO1FBQ1gsT0FBT2xGLEVBQU0scUJBQXFCMEQ7UUFDbEMsVUFBVTJELEdBQVU7WUExWWxDLElBQUExSCxHQUFBMEM7WUE0WXFCYixFQUFTeEIsRUFBTSxNQUFNLEtBQ3JCQyxLQUFBQSxDQUFBQSxDQUNMb0MsSUFBQUEsQ0FBQTFDLElBQUFLLEVBQU0sUUFBTyxZQUFiLFFBQUFxQyxFQUFBLEtBQUExQyxHQUF1QjBILElBQ3ZCSixHQUFZO1FBQ2Q7UUFDQSxXQUFXM0MsRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxlQUFjckIsS0FBQTdDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQTZDLEdBQW1CLFlBQVk7SUFBQSxHQUV0RTdDLEVBQU0sT0FBTyxLQUNoQixJQUNFLG9CQUNIa0YsaURBQU0sQ0FBZWxGLEVBQU0sTUFBTSxJQUNoQ0EsRUFBTSxTQUNKQSxFQUFNLFVBQVV3QixFQUFTeEIsRUFBTSxNQUFNLGtCQUN2Q2tGLGdEQUFBLENBQUM7UUFDQyxlQUFXO1FBQ1gsZUFBVztRQUNYLE9BQU9sRixFQUFNLHFCQUFxQjJEO1FBQ2xDLFVBQVUwRCxHQUFVO1lBN1psQyxJQUFBMUgsR0FBQTBDO1lBK1pxQmIsRUFBU3hCLEVBQU0sTUFBTSxPQUMxQnFDLElBQUFBLEtBQUFyQyxFQUFNLFFBQU8sWUFBYixRQUFBcUMsRUFBQSxLQUFBMUMsR0FBdUIwSCxJQUNuQixDQUFBQSxFQUFNLG9CQUNWSixHQUFZO1FBQ2Q7UUFDQSxXQUFXM0MsRUFBR0osS0FBQSxnQkFBQUEsRUFBWSxlQUFjcEIsS0FBQTlDLEtBQUEsZ0JBQUFBLEVBQU8sZUFBUCxnQkFBQThDLEdBQW1CLFlBQVk7SUFBQSxHQUV0RTlDLEVBQU0sT0FBTyxLQUNoQixJQUNFLElBQ04sQ0FFSjtBQUVKOztNQWpZTW1DO0FBbVlOLFNBQVN3RixJQUE0QztJQUVuRCxJQURJLE9BQU8sVUFBVyxlQUNsQixPQUFPLFlBQWEsYUFBYSxPQUFPO0lBRTVDLElBQU1DLElBQWUsU0FBUyxnQkFBZ0IsYUFBYSxLQUFLO0lBRWhFLE9BQUlBLE1BQWlCLFVBQVUsQ0FBQ0EsSUFDdkIsT0FBTyxpQkFBaUIsU0FBUyxlQUFlLEVBQUUsWUFHcERBO0FBQ1Q7QUFFQTs7SUFDRSxJQUFNLENBQUNFLEdBQWNDLENBQWUsSUFBSTdDLDJDQUFNLENBQW1CLENBQUMsQ0FBQztJQUVuRSxPQUFBQSw0Q0FBTTt3QkFBVSxJQUNQbkUsRUFBVztpQ0FBV2YsR0FBVTtvQkFDckMrSDt5Q0FBaUJDLEdBQWtCOzRCQUNqQyxJQUFJLGFBQWFoSSxLQUFTQSxFQUFNLFNBQzlCLE9BQU9nSSxFQUFjO2lEQUFRQyxJQUFNQSxFQUFFLE9BQU9qSSxFQUFNLEVBQUU7OzRCQUd0RCxJQUFNa0ksSUFBcUJGLEVBQWM7bURBQVdDLElBQU1BLEVBQUUsT0FBT2pJLEVBQU0sRUFBRTs7NEJBQzNFLElBQUlrSSxNQUF1QixJQUFJO2dDQUM3QixJQUFNQyxJQUFnQixDQUFDO3VDQUFHSCxDQUFhO2lDQUFBO2dDQUN2QyxPQUFBRyxDQUFBQSxDQUFjRCxDQUFrQixJQUFJO29DQUFFLEdBQUdDLENBQUFBLENBQWNELENBQWtCO29DQUFHLEdBQUdsSSxDQUFNO21DQUM5RW1JOzRCQUFBQSxLQUVQLFNBQU87Z0NBQUNuSSxFQUFPO21DQUFHZ0ksQ0FBYTs7d0JBRW5DLENBQUM7O2dCQUNILENBQUM7O3VCQUNBLENBQUMsQ0FBQyxHQUVFO1FBQ0wsUUFBUUY7SUFDVjtBQUNGOztNQXpCU0Q7QUEyQlQsSUFBTU8sdUJBQVVtQixpREFBQXBMLFdBQXNDLFNBQWlCaUUsQ0FBQUEsRUFBT2lHLENBQUFBLENBQUs7O0lBQ2pGLElBQU0sRUFDSixRQUFBMUIsQ0FBQUEsRUFDQSxVQUFBN0MsSUFBVyxnQkFDWCxRQUFBd0UsSUFBUztRQUFDO1FBQVUsTUFBTTtLQUFBLEVBQzFCLFFBQUFDLENBQUFBLEVBQ0EsYUFBQXhDLENBQUFBLEVBQ0EsV0FBQWpILENBQUFBLEVBQ0EsUUFBQW9ILENBQUFBLEVBQ0EsT0FBQXNDLElBQVEsU0FDUixZQUFBQyxDQUFBQSxFQUNBLFVBQUF6QyxDQUFBQSxFQUNBLE9BQUF6RSxDQUFBQSxFQUNBLGVBQUE0QixLQUFnQnpCLEVBQUFBLEVBQ2hCLGNBQUFnSCxDQUFBQSxFQUNBLEtBQUFDLElBQU1oQixHQUFxQixHQUMzQixLQUFBNUQsSUFBTWpDLEVBQUFBLEVBQ04sYUFBQThHLEVBQUFBLEVBQ0EsT0FBQXpFLENBQUFBLEVBQ0Esb0JBQUEwRSxLQUFxQixpQkFDckIsdUJBQUF4RSxFQUFBQSxFQUNBLElBQUFDLElBQUtyQyxFQUNQLEtBQUlHLEdBQ0UsQ0FBQ2lCLEdBQVF5RixDQUFTLElBQUk1RCwyQ0FBTSxDQUFtQixDQUFDLENBQUMsR0FDakQ2RCxJQUFvQjdELDBDQUFNO3lCQUFRLElBQy9CLE1BQU0sS0FDWCxJQUFJLElBQUk7Z0JBQUNwQixDQUFRO2FBQUEsQ0FBRSxPQUFPVCxFQUFPO2tDQUFRckQsSUFBVUEsRUFBTSxRQUFRO2dDQUFFO2tDQUFLQSxJQUFVQSxFQUFNLFFBQVE7O3dCQUVqRztRQUFDcUQ7UUFBUVMsQ0FBUTtLQUFDLEdBQ2YsQ0FBQ1YsR0FBU0YsQ0FBVSxJQUFJZ0MsMkNBQU0sQ0FBb0IsQ0FBQyxDQUFDLEdBQ3BELENBQUM1QixHQUFVMEYsQ0FBVyxJQUFJOUQsMkNBQU0sQ0FBUyxFQUFLLEdBQzlDLENBQUNqQyxHQUFhZ0csQ0FBYyxJQUFJL0QsMkNBQU0sQ0FBUyxFQUFLLEdBQ3BELENBQUNnRSxJQUFhQyxDQUFjLElBQUlqRSwyQ0FBTSxDQUMxQ3NELE1BQVUsV0FDTkEsSUFDQSxPQUFPLFVBQVcsZUFDbEIsT0FBTyxjQUFjLE9BQU8sV0FBVyw4QkFBOEIsRUFBRSxVQUNyRSxTQUVGLE9BQ04sR0FFTVksSUFBVWxFLHlDQUFNLENBQXlCLElBQUksR0FDN0NtRSxJQUFjZixFQUFPLEtBQUssR0FBRyxFQUFFLFFBQVEsUUFBUSxFQUFFLEVBQUUsUUFBUSxVQUFVLEVBQUUsR0FDdkVnQixJQUF3QnBFLHlDQUFNLENBQW9CLElBQUksR0FDdERxRSxJQUFtQnJFLHlDQUFNLENBQU8sRUFBSyxHQUVyQzNCLEtBQWMyQiw4Q0FBTTsrQkFBYXNFLEdBQTBCO1lBQy9EVjt1Q0FBV3pGLEdBQVc7b0JBdmdCMUIsSUFBQTFEO29CQXdnQk0sUUFBS0EsSUFBQTBELEVBQU87OENBQU1yRCxLQUFVQSxFQUFNLE9BQU93SixFQUFjOzRDQUFFLEtBQXBELFFBQUE3SixFQUF1RCxVQUMxRG9CLEVBQVcsUUFBUXlJLEVBQWMsRUFBRSxHQUc5Qm5HLEVBQU87OENBQU87Z0NBQUMsRUFBRSxJQUFBdkQsQ0FBRzttQ0FBTUEsTUFBTzBKLEVBQWMsRUFBRTs7O2dCQUMxRCxDQUFDOztRQUNIOzZCQUFHLENBQUMsQ0FBQztJQUVMLE9BQUF0RSw0Q0FBTTt3QkFBVSxJQUNQbkUsRUFBVztnQ0FBV2YsR0FBVTtvQkFDckMsSUFBS0EsRUFBeUIsU0FBUzt3QkFDckM4STs2Q0FBV3pGLElBQVdBLEVBQU87cURBQUs0RSxJQUFPQSxFQUFFLE9BQU9qSSxFQUFNLEtBQUs7NENBQUUsR0FBR2lJLENBQUFBOzRDQUFHLFFBQVE7d0NBQUssSUFBSUEsQ0FBRTs7O3dCQUN4RjtvQkFBQTtvQkFJRjt3Q0FBVyxJQUFNOzRCQUNmLGdEQUFTO2dEQUFVLElBQU07b0NBQ3ZCYTt3REFBV3pGLEdBQVc7NENBQ3BCLElBQU1vRyxJQUF1QnBHLEVBQU87bUVBQVc0RSxJQUFNQSxFQUFFLE9BQU9qSSxFQUFNLEVBQUU7OzRDQUd0RSxPQUFJeUosTUFBeUIsS0FDcEIsQ0FDTDttREFBR3BHLEVBQU8sTUFBTSxHQUFHb0csQ0FBb0I7Z0RBQ3ZDO29EQUFFLEdBQUdwRyxDQUFBQSxDQUFPb0csQ0FBb0I7b0RBQUcsR0FBR3pKO2dEQUFNLEVBQzVDO21EQUFHcUQsRUFBTyxNQUFNb0csSUFBdUIsQ0FBQyxDQUMxQzs2Q0FBQSxHQUdLO2dEQUFDekosRUFBTzttREFBR3FELENBQU07O3dDQUMxQixDQUFDOztnQ0FDSCxDQUFDOzt3QkFDSCxDQUFDOztnQkFDSCxDQUFDOzt1QkFDQSxDQUFDLENBQUMsR0FFTDZCLDRDQUFNO3dCQUFVLElBQU07WUFDcEIsSUFBSXNELE1BQVUsVUFBVTtnQkFDdEJXLEVBQWVYLENBQUs7Z0JBQ3BCO1lBQUE7WUFjRixJQVhJQSxNQUFVLGFBRVIsT0FBTyxjQUFjLE9BQU8sV0FBVyw4QkFBOEIsRUFBRSxVQUV6RVcsRUFBZSxNQUFNLElBR3JCQSxFQUFlLFFBQU8sR0FJdEIsT0FBTyxVQUFXLGFBQWE7WUFDbkMsSUFBTU8sSUFBaUIsT0FBTyxXQUFXLDhCQUE4QjtZQUV2RSxJQUFJO2dCQUVGQSxFQUFlLGlCQUFpQjtvQ0FBVTs0QkFBQyxFQUFFLFNBQUFDLENBQVEsS0FBTTt3QkFFdkRSLEVBREVRLElBQ2EsU0FFQSxPQUZNO29CQUl6QixDQUFDOztZQUNILFNBQVNqSixHQUFQO2dCQUVBZ0osRUFBZTtvQ0FBWTs0QkFBQyxFQUFFLFNBQUFDLENBQVEsS0FBTTt3QkFDMUMsSUFBSTs0QkFFQVIsRUFERVEsSUFDYSxTQUVBLE9BRk07d0JBSXpCLFNBQVNDLEdBQVA7NEJBQ0EsUUFBUSxNQUFNQSxDQUFDO3dCQUNqQjtvQkFDRixDQUFDOztZQUNIO1FBQ0Y7dUJBQUc7UUFBQ3BCLENBQUs7S0FBQyxHQUVWdEQsNENBQU07d0JBQVUsSUFBTTtZQUVoQjdCLEVBQU8sVUFBVSxLQUNuQjJGLEVBQVksRUFBSztRQUVyQjt1QkFBRztRQUFDM0YsQ0FBTTtLQUFDLEdBRVg2Qiw0Q0FBTTt3QkFBVSxJQUFNO1lBQ3BCLElBQU0yRTttQ0FBaUJ4QyxHQUF5QjtvQkFsbUJwRCxJQUFBMUgsR0FBQTBDO29CQW1tQjhCaUcsRUFBTzsyQ0FBT3dCLElBQVN6QyxDQUFBQSxDQUFjeUMsQ0FBRyxLQUFLekMsRUFBTSxTQUFTeUMsQ0FBRzs2Q0FHckZkLEVBQVksRUFBSSxJQUNoQnJKLElBQUF5SixFQUFRLFlBQVIsUUFBQXpKLEVBQWlCLFVBSWpCMEgsRUFBTSxTQUFTLGFBQ2QsU0FBUyxrQkFBa0IrQixFQUFRLFlBQVcvRyxJQUFBK0csRUFBUSxZQUFSLFFBQUEvRyxFQUFpQixTQUFTLFNBQVMsbUJBRWxGMkcsRUFBWSxFQUFLO2dCQUVyQjs7WUFDQSxnQkFBUyxpQkFBaUIsV0FBV2EsQ0FBYTtnQ0FFM0MsSUFBTSxTQUFTLG9CQUFvQixXQUFXQSxDQUFhOztRQUNwRTt1QkFBRztRQUFDdkIsQ0FBTTtLQUFDLEdBRVhwRCw0Q0FBTTt3QkFBVSxJQUFNO1lBQ3BCLElBQUlrRSxFQUFRLFNBQ1Y7Z0NBQU8sSUFBTTtvQkFDUEUsRUFBc0IsV0FDeEJBLEdBQXNCLFFBQVEsTUFBTTt3QkFBRSxlQUFlO29CQUFLLENBQUMsR0FDM0RBLEVBQXNCLFVBQVUsTUFDaENDLEVBQWlCLFVBQVU7Z0JBRS9COztRQUVKO3VCQUFHO1FBQUNILEVBQVEsT0FBTztLQUFDLGlCQUlsQmxFLGdEQUFBLENBQUM7UUFDQyxjQUFZLFVBQUcyRCxJQUFBQSxLQUFzQlEsT0FBQUE7UUFDckMsVUFBVTtRQUNWLGFBQVU7UUFDVixpQkFBYztRQUNkLGVBQVk7SUFBQSxHQUVYTixFQUFrQixJQUFJLENBQUNqRixHQUFVckUsSUFBVTtRQTNvQmxELElBQUFFO1FBNG9CUSxJQUFNLENBQUMwRyxHQUFHQyxDQUFDLElBQUl4QyxFQUFTLE1BQU0sR0FBRztRQUVqQyxPQUFLVCxFQUFPLHVCQUdWNkIsZ0RBQUEsQ0FBQztZQUNDLEtBQUtwQjtZQUNMLEtBQUs2RSxNQUFRLFNBQVNoQixHQUFxQixJQUFJZ0I7WUFDL0MsVUFBVTtZQUNWLEtBQUtTO1lBQ0wsV0FBV3RLO1lBQ1gsdUJBQW1CO1lBQ25CLGNBQVlvSztZQUNaLG1CQUFpQjdDO1lBQ2pCLGVBQWEvQyxLQUFZRCxFQUFPLFNBQVMsS0FBSyxDQUFDa0Y7WUFDL0MsbUJBQWlCakM7WUFDakIsT0FDRTtnQkFDRSx3QkFBd0IsR0FBeUIsT0FBekIsTUFBR2xELENBQUFBLENBQVEsRUFBQyxLQUFULGdCQUFBekQsRUFBWSxXQUFVO2dCQUNqRCxZQUFZLE9BQU91RyxLQUFXLFdBQVcsR0FBR0EsT0FBQUEsR0FBQUEsUUFBYUEsS0FBVXZFO2dCQUNuRSxXQUFXLEdBQUdFLE9BQUFBLElBQUFBO2dCQUNkLFNBQVMsR0FBR2tDLE9BQUFBLEdBQUFBO2dCQUNaLEdBQUd4QztZQUNMO1lBRUYsU0FBUzhGLEdBQVU7Z0JBQ2JrQyxFQUFpQixXQUFXLENBQUNsQyxFQUFNLGNBQWMsU0FBU0EsRUFBTSxhQUFhLEtBQy9Fa0MsR0FBaUIsVUFBVSxJQUN2QkQsRUFBc0IsWUFDeEJBLEVBQXNCLFFBQVEsTUFBTTtvQkFBRSxlQUFlO2dCQUFLLENBQUMsR0FDM0RBLEVBQXNCLFVBQVU7WUFHdEM7WUFDQSxVQUFVakMsR0FBVTtnQkFFaEJBLEVBQU0sa0JBQWtCLGVBQWVBLEVBQU0sT0FBTyxRQUFRLGdCQUFnQixXQUl6RWtDLEVBQWlCLFlBQ3BCQSxFQUFpQixVQUFVLElBQzNCRCxFQUFzQixVQUFVakMsRUFBTTtZQUUxQztZQUNBLGNBQWMsSUFBTTJCLEVBQVksRUFBSTtZQUNwQyxhQUFhLElBQU1BLEVBQVksRUFBSTtZQUNuQyxjQUFjLElBQU07Z0JBRWIvRixLQUNIK0YsRUFBWSxFQUFLO1lBRXJCO1lBQ0EsZ0JBQWdCM0IsR0FBVTtnQkFFdEJBLEVBQU0sa0JBQWtCLGVBQWVBLEVBQU0sT0FBTyxRQUFRLGdCQUFnQixXQUc5RTRCLEVBQWUsRUFBSTtZQUNyQjtZQUNBLGFBQWEsSUFBTUEsRUFBZSxFQUFLO1FBQUEsR0FFdEM1RixFQUNFLFFBQVFyRCxJQUFXLENBQUNBLEVBQU0sWUFBWVAsTUFBVSxLQUFNTyxFQUFNLGFBQWE4RCxDQUFRLEVBQ2pGLElBQUksQ0FBQzlELEdBQU9QLElBQU87WUE1c0JsQyxJQUFBRSxJQUFBMEM7WUE2c0JnQixxQkFBQTZDLGdEQUFBLENBQUMvQyxJQUFBO2dCQUNDLEtBQUtuQyxFQUFNO2dCQUNYLE9BQU9tRTtnQkFDUCxPQUFPMUU7Z0JBQ1AsT0FBT087Z0JBQ1AsbUJBQW1CeUk7Z0JBQ25CLFdBQVU5SSxLQUFBK0ksS0FBQSxnQkFBQUEsRUFBYyxhQUFkLE9BQUEvSSxLQUEwQnFHO2dCQUNwQyxXQUFXMEMsS0FBQSxnQkFBQUEsRUFBYztnQkFDekIsc0JBQXNCQSxLQUFBLGdCQUFBQSxFQUFjO2dCQUNwQyxRQUFRL0I7Z0JBQ1IsZUFBZXhEO2dCQUNmLGNBQWFkLEtBQUFxRyxLQUFBLGdCQUFBQSxFQUFjLGdCQUFkLE9BQUFyRyxLQUE2QjBEO2dCQUMxQyxhQUFhOUM7Z0JBQ2IsVUFBVWE7Z0JBQ1YsT0FBTzRFLEtBQUEsZ0JBQUFBLEVBQWM7Z0JBQ3JCLFVBQVVBLEtBQUEsZ0JBQUFBLEVBQWM7Z0JBQ3hCLFlBQVlBLEtBQUEsZ0JBQUFBLEVBQWM7Z0JBQzFCLG1CQUFtQkEsS0FBQSxnQkFBQUEsRUFBYztnQkFDakMsbUJBQW1CQSxLQUFBLGdCQUFBQSxFQUFjO2dCQUNqQyxhQUFhbkY7Z0JBQ2IsUUFBUUYsRUFBTyxRQUFRNEUsSUFBTUEsRUFBRSxZQUFZakksRUFBTSxRQUFRO2dCQUN6RCxTQUFTb0QsRUFBUSxRQUFRMEQsSUFBTUEsRUFBRSxZQUFZOUcsRUFBTSxRQUFRO2dCQUMzRCxZQUFZa0Q7Z0JBQ1osaUJBQWlCcUY7Z0JBQ2pCLEtBQUt4RTtnQkFDTCxhQUFhNkU7Z0JBQ2IsVUFBVXRGO2dCQUNWLHVCQUF1QmU7Z0JBQ3ZCLElBQUlDO1lBQUFBLENBQ047UUFBQSxDQUNELENBQ0wsSUE5RnlCO0lBZ0c3QixDQUFDLENBQ0g7QUFFSixDQUFDOztBQUFBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL3NyYy9pbmRleC50c3giLCIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL3NyYy9hc3NldHMudHN4IiwiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvaG9va3MudHN4IiwiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvc3RhdGUudHMiLCIjc3R5bGUtaW5qZWN0OiNzdHlsZS1pbmplY3QiLCIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL3NyYy9zdHlsZXMuY3NzIiwiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9zcmMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuXG5pbXBvcnQgeyBDbG9zZUljb24sIGdldEFzc2V0LCBMb2FkZXIgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgeyB1c2VJc0RvY3VtZW50SGlkZGVuIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgeyB0b2FzdCwgVG9hc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0ICcuL3N0eWxlcy5jc3MnO1xuaW1wb3J0IHtcbiAgaXNBY3Rpb24sXG4gIHR5cGUgRXh0ZXJuYWxUb2FzdCxcbiAgdHlwZSBIZWlnaHRULFxuICB0eXBlIFRvYXN0ZXJQcm9wcyxcbiAgdHlwZSBUb2FzdFByb3BzLFxuICB0eXBlIFRvYXN0VCxcbiAgdHlwZSBUb2FzdFRvRGlzbWlzcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFZpc2libGUgdG9hc3RzIGFtb3VudFxuY29uc3QgVklTSUJMRV9UT0FTVFNfQU1PVU5UID0gMztcblxuLy8gVmlld3BvcnQgcGFkZGluZ1xuY29uc3QgVklFV1BPUlRfT0ZGU0VUID0gJzMycHgnO1xuXG4vLyBEZWZhdWx0IGxpZmV0aW1lIG9mIGEgdG9hc3RzIChpbiBtcylcbmNvbnN0IFRPQVNUX0xJRkVUSU1FID0gNDAwMDtcblxuLy8gRGVmYXVsdCB0b2FzdCB3aWR0aFxuY29uc3QgVE9BU1RfV0lEVEggPSAzNTY7XG5cbi8vIERlZmF1bHQgZ2FwIGJldHdlZW4gdG9hc3RzXG5jb25zdCBHQVAgPSAxNDtcblxuLy8gVGhyZXNob2xkIHRvIGRpc21pc3MgYSB0b2FzdFxuY29uc3QgU1dJUEVfVEhSRVNIT0xEID0gMjA7XG5cbi8vIEVxdWFsIHRvIGV4aXQgYW5pbWF0aW9uIGR1cmF0aW9uXG5jb25zdCBUSU1FX0JFRk9SRV9VTk1PVU5UID0gMjAwO1xuXG5mdW5jdGlvbiBfY24oLi4uY2xhc3NlczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICByZXR1cm4gY2xhc3Nlcy5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xufVxuXG5jb25zdCBUb2FzdCA9IChwcm9wczogVG9hc3RQcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgaW52ZXJ0OiBUb2FzdGVySW52ZXJ0LFxuICAgIHRvYXN0LFxuICAgIHVuc3R5bGVkLFxuICAgIGludGVyYWN0aW5nLFxuICAgIHNldEhlaWdodHMsXG4gICAgdmlzaWJsZVRvYXN0cyxcbiAgICBoZWlnaHRzLFxuICAgIGluZGV4LFxuICAgIHRvYXN0cyxcbiAgICBleHBhbmRlZCxcbiAgICByZW1vdmVUb2FzdCxcbiAgICBkZWZhdWx0UmljaENvbG9ycyxcbiAgICBjbG9zZUJ1dHRvbjogY2xvc2VCdXR0b25Gcm9tVG9hc3RlcixcbiAgICBzdHlsZSxcbiAgICBjYW5jZWxCdXR0b25TdHlsZSxcbiAgICBhY3Rpb25CdXR0b25TdHlsZSxcbiAgICBjbGFzc05hbWUgPSAnJyxcbiAgICBkZXNjcmlwdGlvbkNsYXNzTmFtZSA9ICcnLFxuICAgIGR1cmF0aW9uOiBkdXJhdGlvbkZyb21Ub2FzdGVyLFxuICAgIHBvc2l0aW9uLFxuICAgIGdhcCxcbiAgICBsb2FkaW5nSWNvbjogbG9hZGluZ0ljb25Qcm9wLFxuICAgIGV4cGFuZEJ5RGVmYXVsdCxcbiAgICBjbGFzc05hbWVzLFxuICAgIGljb25zLFxuICAgIGNsb3NlQnV0dG9uQXJpYUxhYmVsID0gJ0Nsb3NlIHRvYXN0JyxcbiAgICBwYXVzZVdoZW5QYWdlSXNIaWRkZW4sXG4gICAgY24sXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVtb3ZlZCwgc2V0UmVtb3ZlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzd2lwaW5nLCBzZXRTd2lwaW5nXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3N3aXBlT3V0LCBzZXRTd2lwZU91dF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc1N3aXBlZCwgc2V0SXNTd2lwZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb2Zmc2V0QmVmb3JlUmVtb3ZlLCBzZXRPZmZzZXRCZWZvcmVSZW1vdmVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtpbml0aWFsSGVpZ2h0LCBzZXRJbml0aWFsSGVpZ2h0XSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICBjb25zdCByZW1haW5pbmdUaW1lID0gUmVhY3QudXNlUmVmKHRvYXN0LmR1cmF0aW9uIHx8IGR1cmF0aW9uRnJvbVRvYXN0ZXIgfHwgVE9BU1RfTElGRVRJTUUpO1xuICBjb25zdCBkcmFnU3RhcnRUaW1lID0gUmVhY3QudXNlUmVmPERhdGUgfCBudWxsPihudWxsKTtcbiAgY29uc3QgdG9hc3RSZWYgPSBSZWFjdC51c2VSZWY8SFRNTExJRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGlzRnJvbnQgPSBpbmRleCA9PT0gMDtcbiAgY29uc3QgaXNWaXNpYmxlID0gaW5kZXggKyAxIDw9IHZpc2libGVUb2FzdHM7XG4gIGNvbnN0IHRvYXN0VHlwZSA9IHRvYXN0LnR5cGU7XG4gIGNvbnN0IGRpc21pc3NpYmxlID0gdG9hc3QuZGlzbWlzc2libGUgIT09IGZhbHNlO1xuICBjb25zdCB0b2FzdENsYXNzbmFtZSA9IHRvYXN0LmNsYXNzTmFtZSB8fCAnJztcbiAgY29uc3QgdG9hc3REZXNjcmlwdGlvbkNsYXNzbmFtZSA9IHRvYXN0LmRlc2NyaXB0aW9uQ2xhc3NOYW1lIHx8ICcnO1xuICAvLyBIZWlnaHQgaW5kZXggaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBhcyBpdCBnZXRzIHVwZGF0ZWQgYmVmb3JlIHRoZSB0b2FzdCBhcnJheSwgd2hpY2ggbWVhbnMgd2UgY2FuIGNhbGN1bGF0ZSB0aGUgbmV3IGxheW91dCBmYXN0ZXIuXG4gIGNvbnN0IGhlaWdodEluZGV4ID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiBoZWlnaHRzLmZpbmRJbmRleCgoaGVpZ2h0KSA9PiBoZWlnaHQudG9hc3RJZCA9PT0gdG9hc3QuaWQpIHx8IDAsXG4gICAgW2hlaWdodHMsIHRvYXN0LmlkXSxcbiAgKTtcbiAgY29uc3QgY2xvc2VCdXR0b24gPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IHRvYXN0LmNsb3NlQnV0dG9uID8/IGNsb3NlQnV0dG9uRnJvbVRvYXN0ZXIsXG4gICAgW3RvYXN0LmNsb3NlQnV0dG9uLCBjbG9zZUJ1dHRvbkZyb21Ub2FzdGVyXSxcbiAgKTtcbiAgY29uc3QgZHVyYXRpb24gPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IHRvYXN0LmR1cmF0aW9uIHx8IGR1cmF0aW9uRnJvbVRvYXN0ZXIgfHwgVE9BU1RfTElGRVRJTUUsXG4gICAgW3RvYXN0LmR1cmF0aW9uLCBkdXJhdGlvbkZyb21Ub2FzdGVyXSxcbiAgKTtcbiAgY29uc3QgY2xvc2VUaW1lclN0YXJ0VGltZVJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgY29uc3Qgb2Zmc2V0ID0gUmVhY3QudXNlUmVmKDApO1xuICBjb25zdCBsYXN0Q2xvc2VUaW1lclN0YXJ0VGltZVJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgY29uc3QgcG9pbnRlclN0YXJ0UmVmID0gUmVhY3QudXNlUmVmPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbeSwgeF0gPSBwb3NpdGlvbi5zcGxpdCgnLScpO1xuICBjb25zdCB0b2FzdHNIZWlnaHRCZWZvcmUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gaGVpZ2h0cy5yZWR1Y2UoKHByZXYsIGN1cnIsIHJlZHVjZXJJbmRleCkgPT4ge1xuICAgICAgLy8gQ2FsY3VsYXRlIG9mZnNldCB1cCB1bnRpbCBjdXJyZW50ICB0b2FzdFxuICAgICAgaWYgKHJlZHVjZXJJbmRleCA+PSBoZWlnaHRJbmRleCkge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXYgKyBjdXJyLmhlaWdodDtcbiAgICB9LCAwKTtcbiAgfSwgW2hlaWdodHMsIGhlaWdodEluZGV4XSk7XG4gIGNvbnN0IGlzRG9jdW1lbnRIaWRkZW4gPSB1c2VJc0RvY3VtZW50SGlkZGVuKCk7XG5cbiAgY29uc3QgaW52ZXJ0ID0gdG9hc3QuaW52ZXJ0IHx8IFRvYXN0ZXJJbnZlcnQ7XG4gIGNvbnN0IGRpc2FibGVkID0gdG9hc3RUeXBlID09PSAnbG9hZGluZyc7XG5cbiAgb2Zmc2V0LmN1cnJlbnQgPSBSZWFjdC51c2VNZW1vKCgpID0+IGhlaWdodEluZGV4ICogZ2FwICsgdG9hc3RzSGVpZ2h0QmVmb3JlLCBbaGVpZ2h0SW5kZXgsIHRvYXN0c0hlaWdodEJlZm9yZV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVHJpZ2dlciBlbnRlciBhbmltYXRpb24gd2l0aG91dCB1c2luZyBDU1MgYW5pbWF0aW9uXG4gICAgc2V0TW91bnRlZCh0cnVlKTtcbiAgfSwgW10pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdG9hc3ROb2RlID0gdG9hc3RSZWYuY3VycmVudDtcbiAgICBpZiAodG9hc3ROb2RlKSB7XG4gICAgICBjb25zdCBoZWlnaHQgPSB0b2FzdE5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgLy8gQWRkIHRvYXN0IGhlaWdodCB0byBoZWlnaHRzIGFycmF5IGFmdGVyIHRoZSB0b2FzdCBpcyBtb3VudGVkXG4gICAgICBzZXRJbml0aWFsSGVpZ2h0KGhlaWdodCk7XG4gICAgICBzZXRIZWlnaHRzKChoKSA9PiBbeyB0b2FzdElkOiB0b2FzdC5pZCwgaGVpZ2h0LCBwb3NpdGlvbjogdG9hc3QucG9zaXRpb24gfSwgLi4uaF0pO1xuICAgICAgcmV0dXJuICgpID0+IHNldEhlaWdodHMoKGgpID0+IGguZmlsdGVyKChoZWlnaHQpID0+IGhlaWdodC50b2FzdElkICE9PSB0b2FzdC5pZCkpO1xuICAgIH1cbiAgfSwgW3NldEhlaWdodHMsIHRvYXN0LmlkXSk7XG5cbiAgUmVhY3QudXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1vdW50ZWQpIHJldHVybjtcbiAgICBjb25zdCB0b2FzdE5vZGUgPSB0b2FzdFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsSGVpZ2h0ID0gdG9hc3ROb2RlLnN0eWxlLmhlaWdodDtcbiAgICB0b2FzdE5vZGUuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIGNvbnN0IG5ld0hlaWdodCA9IHRvYXN0Tm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgdG9hc3ROb2RlLnN0eWxlLmhlaWdodCA9IG9yaWdpbmFsSGVpZ2h0O1xuXG4gICAgc2V0SW5pdGlhbEhlaWdodChuZXdIZWlnaHQpO1xuXG4gICAgc2V0SGVpZ2h0cygoaGVpZ2h0cykgPT4ge1xuICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IGhlaWdodHMuZmluZCgoaGVpZ2h0KSA9PiBoZWlnaHQudG9hc3RJZCA9PT0gdG9hc3QuaWQpO1xuICAgICAgaWYgKCFhbHJlYWR5RXhpc3RzKSB7XG4gICAgICAgIHJldHVybiBbeyB0b2FzdElkOiB0b2FzdC5pZCwgaGVpZ2h0OiBuZXdIZWlnaHQsIHBvc2l0aW9uOiB0b2FzdC5wb3NpdGlvbiB9LCAuLi5oZWlnaHRzXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBoZWlnaHRzLm1hcCgoaGVpZ2h0KSA9PiAoaGVpZ2h0LnRvYXN0SWQgPT09IHRvYXN0LmlkID8geyAuLi5oZWlnaHQsIGhlaWdodDogbmV3SGVpZ2h0IH0gOiBoZWlnaHQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW21vdW50ZWQsIHRvYXN0LnRpdGxlLCB0b2FzdC5kZXNjcmlwdGlvbiwgc2V0SGVpZ2h0cywgdG9hc3QuaWRdKTtcblxuICBjb25zdCBkZWxldGVUb2FzdCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTYXZlIHRoZSBvZmZzZXQgZm9yIHRoZSBleGl0IHN3aXBlIGFuaW1hdGlvblxuICAgIHNldFJlbW92ZWQodHJ1ZSk7XG4gICAgc2V0T2Zmc2V0QmVmb3JlUmVtb3ZlKG9mZnNldC5jdXJyZW50KTtcbiAgICBzZXRIZWlnaHRzKChoKSA9PiBoLmZpbHRlcigoaGVpZ2h0KSA9PiBoZWlnaHQudG9hc3RJZCAhPT0gdG9hc3QuaWQpKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcmVtb3ZlVG9hc3QodG9hc3QpO1xuICAgIH0sIFRJTUVfQkVGT1JFX1VOTU9VTlQpO1xuICB9LCBbdG9hc3QsIHJlbW92ZVRvYXN0LCBzZXRIZWlnaHRzLCBvZmZzZXRdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgodG9hc3QucHJvbWlzZSAmJiB0b2FzdFR5cGUgPT09ICdsb2FkaW5nJykgfHwgdG9hc3QuZHVyYXRpb24gPT09IEluZmluaXR5IHx8IHRvYXN0LnR5cGUgPT09ICdsb2FkaW5nJykgcmV0dXJuO1xuICAgIGxldCB0aW1lb3V0SWQ6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgLy8gUGF1c2UgdGhlIHRpbWVyIG9uIGVhY2ggaG92ZXJcbiAgICBjb25zdCBwYXVzZVRpbWVyID0gKCkgPT4ge1xuICAgICAgaWYgKGxhc3RDbG9zZVRpbWVyU3RhcnRUaW1lUmVmLmN1cnJlbnQgPCBjbG9zZVRpbWVyU3RhcnRUaW1lUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBlbGFwc2VkIHRpbWUgc2luY2UgdGhlIHRpbWVyIHN0YXJ0ZWRcbiAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIGNsb3NlVGltZXJTdGFydFRpbWVSZWYuY3VycmVudDtcblxuICAgICAgICByZW1haW5pbmdUaW1lLmN1cnJlbnQgPSByZW1haW5pbmdUaW1lLmN1cnJlbnQgLSBlbGFwc2VkVGltZTtcbiAgICAgIH1cblxuICAgICAgbGFzdENsb3NlVGltZXJTdGFydFRpbWVSZWYuY3VycmVudCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBzdGFydFRpbWVyID0gKCkgPT4ge1xuICAgICAgLy8gc2V0VGltZW91dCgsIEluZmluaXR5KSBiZWhhdmVzIGFzIGlmIHRoZSBkZWxheSBpcyAwLlxuICAgICAgLy8gQXMgYSByZXN1bHQsIHRoZSB0b2FzdCB3b3VsZCBiZSBjbG9zZWQgaW1tZWRpYXRlbHksIGdpdmluZyB0aGUgYXBwZWFyYW5jZSB0aGF0IGl0IHdhcyBuZXZlciByZW5kZXJlZC5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RlbnlzZG92aGFuL3d0ZmpzP3RhYj1yZWFkbWUtb3YtZmlsZSNhbi1pbmZpbml0ZS10aW1lb3V0XG4gICAgICBpZiAocmVtYWluaW5nVGltZS5jdXJyZW50ID09PSBJbmZpbml0eSkgcmV0dXJuO1xuXG4gICAgICBjbG9zZVRpbWVyU3RhcnRUaW1lUmVmLmN1cnJlbnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgLy8gTGV0IHRoZSB0b2FzdCBrbm93IGl0IGhhcyBzdGFydGVkXG4gICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdG9hc3Qub25BdXRvQ2xvc2U/Lih0b2FzdCk7XG4gICAgICAgIGRlbGV0ZVRvYXN0KCk7XG4gICAgICB9LCByZW1haW5pbmdUaW1lLmN1cnJlbnQpO1xuICAgIH07XG5cbiAgICBpZiAoZXhwYW5kZWQgfHwgaW50ZXJhY3RpbmcgfHwgKHBhdXNlV2hlblBhZ2VJc0hpZGRlbiAmJiBpc0RvY3VtZW50SGlkZGVuKSkge1xuICAgICAgcGF1c2VUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFRpbWVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9LCBbZXhwYW5kZWQsIGludGVyYWN0aW5nLCB0b2FzdCwgdG9hc3RUeXBlLCBwYXVzZVdoZW5QYWdlSXNIaWRkZW4sIGlzRG9jdW1lbnRIaWRkZW4sIGRlbGV0ZVRvYXN0XSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodG9hc3QuZGVsZXRlKSB7XG4gICAgICBkZWxldGVUb2FzdCgpO1xuICAgIH1cbiAgfSwgW2RlbGV0ZVRvYXN0LCB0b2FzdC5kZWxldGVdKTtcblxuICBmdW5jdGlvbiBnZXRMb2FkaW5nSWNvbigpIHtcbiAgICBpZiAoaWNvbnM/LmxvYWRpbmcpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZXM/LmxvYWRlciwgdG9hc3Q/LmNsYXNzTmFtZXM/LmxvYWRlciwgJ3Nvbm5lci1sb2FkZXInKX1cbiAgICAgICAgICBkYXRhLXZpc2libGU9e3RvYXN0VHlwZSA9PT0gJ2xvYWRpbmcnfVxuICAgICAgICA+XG4gICAgICAgICAge2ljb25zLmxvYWRpbmd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZ0ljb25Qcm9wKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbihjbGFzc05hbWVzPy5sb2FkZXIsIHRvYXN0Py5jbGFzc05hbWVzPy5sb2FkZXIsICdzb25uZXItbG9hZGVyJyl9XG4gICAgICAgICAgZGF0YS12aXNpYmxlPXt0b2FzdFR5cGUgPT09ICdsb2FkaW5nJ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsb2FkaW5nSWNvblByb3B9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIDxMb2FkZXIgY2xhc3NOYW1lPXtjbihjbGFzc05hbWVzPy5sb2FkZXIsIHRvYXN0Py5jbGFzc05hbWVzPy5sb2FkZXIpfSB2aXNpYmxlPXt0b2FzdFR5cGUgPT09ICdsb2FkaW5nJ30gLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICByZWY9e3RvYXN0UmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICB0b2FzdENsYXNzbmFtZSxcbiAgICAgICAgY2xhc3NOYW1lcz8udG9hc3QsXG4gICAgICAgIHRvYXN0Py5jbGFzc05hbWVzPy50b2FzdCxcbiAgICAgICAgY2xhc3NOYW1lcz8uZGVmYXVsdCxcbiAgICAgICAgY2xhc3NOYW1lcz8uW3RvYXN0VHlwZV0sXG4gICAgICAgIHRvYXN0Py5jbGFzc05hbWVzPy5bdG9hc3RUeXBlXSxcbiAgICAgICl9XG4gICAgICBkYXRhLXNvbm5lci10b2FzdD1cIlwiXG4gICAgICBkYXRhLXJpY2gtY29sb3JzPXt0b2FzdC5yaWNoQ29sb3JzID8/IGRlZmF1bHRSaWNoQ29sb3JzfVxuICAgICAgZGF0YS1zdHlsZWQ9eyFCb29sZWFuKHRvYXN0LmpzeCB8fCB0b2FzdC51bnN0eWxlZCB8fCB1bnN0eWxlZCl9XG4gICAgICBkYXRhLW1vdW50ZWQ9e21vdW50ZWR9XG4gICAgICBkYXRhLXByb21pc2U9e0Jvb2xlYW4odG9hc3QucHJvbWlzZSl9XG4gICAgICBkYXRhLXN3aXBlZD17aXNTd2lwZWR9XG4gICAgICBkYXRhLXJlbW92ZWQ9e3JlbW92ZWR9XG4gICAgICBkYXRhLXZpc2libGU9e2lzVmlzaWJsZX1cbiAgICAgIGRhdGEteS1wb3NpdGlvbj17eX1cbiAgICAgIGRhdGEteC1wb3NpdGlvbj17eH1cbiAgICAgIGRhdGEtaW5kZXg9e2luZGV4fVxuICAgICAgZGF0YS1mcm9udD17aXNGcm9udH1cbiAgICAgIGRhdGEtc3dpcGluZz17c3dpcGluZ31cbiAgICAgIGRhdGEtZGlzbWlzc2libGU9e2Rpc21pc3NpYmxlfVxuICAgICAgZGF0YS10eXBlPXt0b2FzdFR5cGV9XG4gICAgICBkYXRhLWludmVydD17aW52ZXJ0fVxuICAgICAgZGF0YS1zd2lwZS1vdXQ9e3N3aXBlT3V0fVxuICAgICAgZGF0YS1leHBhbmRlZD17Qm9vbGVhbihleHBhbmRlZCB8fCAoZXhwYW5kQnlEZWZhdWx0ICYmIG1vdW50ZWQpKX1cbiAgICAgIHN0eWxlPXtcbiAgICAgICAge1xuICAgICAgICAgICctLWluZGV4JzogaW5kZXgsXG4gICAgICAgICAgJy0tdG9hc3RzLWJlZm9yZSc6IGluZGV4LFxuICAgICAgICAgICctLXotaW5kZXgnOiB0b2FzdHMubGVuZ3RoIC0gaW5kZXgsXG4gICAgICAgICAgJy0tb2Zmc2V0JzogYCR7cmVtb3ZlZCA/IG9mZnNldEJlZm9yZVJlbW92ZSA6IG9mZnNldC5jdXJyZW50fXB4YCxcbiAgICAgICAgICAnLS1pbml0aWFsLWhlaWdodCc6IGV4cGFuZEJ5RGVmYXVsdCA/ICdhdXRvJyA6IGAke2luaXRpYWxIZWlnaHR9cHhgLFxuICAgICAgICAgIC4uLnN0eWxlLFxuICAgICAgICAgIC4uLnRvYXN0LnN0eWxlLFxuICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgIH1cbiAgICAgIG9uUG9pbnRlckRvd249eyhldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgIWRpc21pc3NpYmxlKSByZXR1cm47XG4gICAgICAgIGRyYWdTdGFydFRpbWUuY3VycmVudCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHNldE9mZnNldEJlZm9yZVJlbW92ZShvZmZzZXQuY3VycmVudCk7XG4gICAgICAgIC8vIEVuc3VyZSB3ZSBtYWludGFpbiBjb3JyZWN0IHBvaW50ZXIgY2FwdHVyZSBldmVuIHdoZW4gZ29pbmcgb3V0c2lkZSBvZiB0aGUgdG9hc3QgKGUuZy4gd2hlbiBzd2lwaW5nKVxuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpO1xuICAgICAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PT0gJ0JVVFRPTicpIHJldHVybjtcbiAgICAgICAgc2V0U3dpcGluZyh0cnVlKTtcbiAgICAgICAgcG9pbnRlclN0YXJ0UmVmLmN1cnJlbnQgPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcbiAgICAgIH19XG4gICAgICBvblBvaW50ZXJVcD17KCkgPT4ge1xuICAgICAgICBpZiAoc3dpcGVPdXQgfHwgIWRpc21pc3NpYmxlKSByZXR1cm47XG5cbiAgICAgICAgcG9pbnRlclN0YXJ0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICBjb25zdCBzd2lwZUFtb3VudCA9IE51bWJlcih0b2FzdFJlZi5jdXJyZW50Py5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctLXN3aXBlLWFtb3VudCcpLnJlcGxhY2UoJ3B4JywgJycpIHx8IDApO1xuICAgICAgICBjb25zdCB0aW1lVGFrZW4gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIGRyYWdTdGFydFRpbWUuY3VycmVudD8uZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IE1hdGguYWJzKHN3aXBlQW1vdW50KSAvIHRpbWVUYWtlbjtcblxuICAgICAgICAvLyBSZW1vdmUgb25seSBpZiB0aHJlc2hvbGQgaXMgbWV0XG4gICAgICAgIGlmIChNYXRoLmFicyhzd2lwZUFtb3VudCkgPj0gU1dJUEVfVEhSRVNIT0xEIHx8IHZlbG9jaXR5ID4gMC4xMSkge1xuICAgICAgICAgIHNldE9mZnNldEJlZm9yZVJlbW92ZShvZmZzZXQuY3VycmVudCk7XG4gICAgICAgICAgdG9hc3Qub25EaXNtaXNzPy4odG9hc3QpO1xuICAgICAgICAgIGRlbGV0ZVRvYXN0KCk7XG4gICAgICAgICAgc2V0U3dpcGVPdXQodHJ1ZSk7XG4gICAgICAgICAgc2V0SXNTd2lwZWQoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvYXN0UmVmLmN1cnJlbnQ/LnN0eWxlLnNldFByb3BlcnR5KCctLXN3aXBlLWFtb3VudCcsICcwcHgnKTtcbiAgICAgICAgc2V0U3dpcGluZyhmYWxzZSk7XG4gICAgICB9fVxuICAgICAgb25Qb2ludGVyTW92ZT17KGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghcG9pbnRlclN0YXJ0UmVmLmN1cnJlbnQgfHwgIWRpc21pc3NpYmxlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeVBvc2l0aW9uID0gZXZlbnQuY2xpZW50WSAtIHBvaW50ZXJTdGFydFJlZi5jdXJyZW50Lnk7XG4gICAgICAgIGNvbnN0IGlzSGlnaGxpZ2h0ZWQgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3Qgc3dpcGVBbW91bnQgPSB5ID09PSAndG9wJyA/IE1hdGgubWluKDAsIHlQb3NpdGlvbikgOiBNYXRoLm1heCgwLCB5UG9zaXRpb24pO1xuXG4gICAgICAgIGlmIChNYXRoLmFicyhzd2lwZUFtb3VudCkgPiAwKSB7XG4gICAgICAgICAgc2V0SXNTd2lwZWQodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNIaWdobGlnaHRlZCkgcmV0dXJuO1xuXG4gICAgICAgIHRvYXN0UmVmLmN1cnJlbnQ/LnN0eWxlLnNldFByb3BlcnR5KCctLXN3aXBlLWFtb3VudCcsIGAke3N3aXBlQW1vdW50fXB4YCk7XG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjbG9zZUJ1dHRvbiAmJiAhdG9hc3QuanN4ID8gKFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgZGF0YS1jbG9zZS1idXR0b25cbiAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgIGRpc2FibGVkIHx8ICFkaXNtaXNzaWJsZVxuICAgICAgICAgICAgICA/ICgpID0+IHt9XG4gICAgICAgICAgICAgIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlVG9hc3QoKTtcbiAgICAgICAgICAgICAgICAgIHRvYXN0Lm9uRGlzbWlzcz8uKHRvYXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oY2xhc3NOYW1lcz8uY2xvc2VCdXR0b24sIHRvYXN0Py5jbGFzc05hbWVzPy5jbG9zZUJ1dHRvbil9XG4gICAgICAgID5cbiAgICAgICAgICB7aWNvbnM/LmNsb3NlID8/IENsb3NlSWNvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHsvKiBUT0RPOiBUaGlzIGNhbiBiZSBjbGVhbmVyICovfVxuICAgICAge3RvYXN0LmpzeCB8fCBSZWFjdC5pc1ZhbGlkRWxlbWVudCh0b2FzdC50aXRsZSkgPyAoXG4gICAgICAgIHRvYXN0LmpzeCA/IChcbiAgICAgICAgICB0b2FzdC5qc3hcbiAgICAgICAgKSA6IHR5cGVvZiB0b2FzdC50aXRsZSA9PT0gJ2Z1bmN0aW9uJyA/IChcbiAgICAgICAgICB0b2FzdC50aXRsZSgpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgdG9hc3QudGl0bGVcbiAgICAgICAgKVxuICAgICAgKSA6IChcbiAgICAgICAgPD5cbiAgICAgICAgICB7dG9hc3RUeXBlIHx8IHRvYXN0Lmljb24gfHwgdG9hc3QucHJvbWlzZSA/IChcbiAgICAgICAgICAgIDxkaXYgZGF0YS1pY29uPVwiXCIgY2xhc3NOYW1lPXtjbihjbGFzc05hbWVzPy5pY29uLCB0b2FzdD8uY2xhc3NOYW1lcz8uaWNvbil9PlxuICAgICAgICAgICAgICB7dG9hc3QucHJvbWlzZSB8fCAodG9hc3QudHlwZSA9PT0gJ2xvYWRpbmcnICYmICF0b2FzdC5pY29uKSA/IHRvYXN0Lmljb24gfHwgZ2V0TG9hZGluZ0ljb24oKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0b2FzdC50eXBlICE9PSAnbG9hZGluZycgPyB0b2FzdC5pY29uIHx8IGljb25zPy5bdG9hc3RUeXBlXSB8fCBnZXRBc3NldCh0b2FzdFR5cGUpIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgPGRpdiBkYXRhLWNvbnRlbnQ9XCJcIiBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZXM/LmNvbnRlbnQsIHRvYXN0Py5jbGFzc05hbWVzPy5jb250ZW50KX0+XG4gICAgICAgICAgICA8ZGl2IGRhdGEtdGl0bGU9XCJcIiBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZXM/LnRpdGxlLCB0b2FzdD8uY2xhc3NOYW1lcz8udGl0bGUpfT5cbiAgICAgICAgICAgICAge3R5cGVvZiB0b2FzdC50aXRsZSA9PT0gJ2Z1bmN0aW9uJyA/IHRvYXN0LnRpdGxlKCkgOiB0b2FzdC50aXRsZX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3RvYXN0LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgZGF0YS1kZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgdG9hc3REZXNjcmlwdGlvbkNsYXNzbmFtZSxcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXM/LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgdG9hc3Q/LmNsYXNzTmFtZXM/LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIHRvYXN0LmRlc2NyaXB0aW9uID09PSAnZnVuY3Rpb24nID8gdG9hc3QuZGVzY3JpcHRpb24oKSA6IHRvYXN0LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtSZWFjdC5pc1ZhbGlkRWxlbWVudCh0b2FzdC5jYW5jZWwpID8gKFxuICAgICAgICAgICAgdG9hc3QuY2FuY2VsXG4gICAgICAgICAgKSA6IHRvYXN0LmNhbmNlbCAmJiBpc0FjdGlvbih0b2FzdC5jYW5jZWwpID8gKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBkYXRhLWJ1dHRvblxuICAgICAgICAgICAgICBkYXRhLWNhbmNlbFxuICAgICAgICAgICAgICBzdHlsZT17dG9hc3QuY2FuY2VsQnV0dG9uU3R5bGUgfHwgY2FuY2VsQnV0dG9uU3R5bGV9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdHdpY2UgYmVjYXVzZSB0eXBlc2NyaXB0XG4gICAgICAgICAgICAgICAgaWYgKCFpc0FjdGlvbih0b2FzdC5jYW5jZWwpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKCFkaXNtaXNzaWJsZSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRvYXN0LmNhbmNlbC5vbkNsaWNrPy4oZXZlbnQpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZVRvYXN0KCk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oY2xhc3NOYW1lcz8uY2FuY2VsQnV0dG9uLCB0b2FzdD8uY2xhc3NOYW1lcz8uY2FuY2VsQnV0dG9uKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3RvYXN0LmNhbmNlbC5sYWJlbH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtSZWFjdC5pc1ZhbGlkRWxlbWVudCh0b2FzdC5hY3Rpb24pID8gKFxuICAgICAgICAgICAgdG9hc3QuYWN0aW9uXG4gICAgICAgICAgKSA6IHRvYXN0LmFjdGlvbiAmJiBpc0FjdGlvbih0b2FzdC5hY3Rpb24pID8gKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBkYXRhLWJ1dHRvblxuICAgICAgICAgICAgICBkYXRhLWFjdGlvblxuICAgICAgICAgICAgICBzdHlsZT17dG9hc3QuYWN0aW9uQnV0dG9uU3R5bGUgfHwgYWN0aW9uQnV0dG9uU3R5bGV9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdHdpY2UgYmVjYXVzZSB0eXBlc2NyaXB0XG4gICAgICAgICAgICAgICAgaWYgKCFpc0FjdGlvbih0b2FzdC5hY3Rpb24pKSByZXR1cm47XG4gICAgICAgICAgICAgICAgdG9hc3QuYWN0aW9uLm9uQ2xpY2s/LihldmVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICBkZWxldGVUb2FzdCgpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZXM/LmFjdGlvbkJ1dHRvbiwgdG9hc3Q/LmNsYXNzTmFtZXM/LmFjdGlvbkJ1dHRvbil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0b2FzdC5hY3Rpb24ubGFiZWx9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5mdW5jdGlvbiBnZXREb2N1bWVudERpcmVjdGlvbigpOiBUb2FzdGVyUHJvcHNbJ2RpciddIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gJ2x0cic7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gJ2x0cic7IC8vIEZvciBGcmVzaCBwdXJwb3NlXG5cbiAgY29uc3QgZGlyQXR0cmlidXRlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlyJyk7XG5cbiAgaWYgKGRpckF0dHJpYnV0ZSA9PT0gJ2F1dG8nIHx8ICFkaXJBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5kaXJlY3Rpb24gYXMgVG9hc3RlclByb3BzWydkaXInXTtcbiAgfVxuXG4gIHJldHVybiBkaXJBdHRyaWJ1dGUgYXMgVG9hc3RlclByb3BzWydkaXInXTtcbn1cblxuZnVuY3Rpb24gdXNlU29ubmVyKCkge1xuICBjb25zdCBbYWN0aXZlVG9hc3RzLCBzZXRBY3RpdmVUb2FzdHNdID0gUmVhY3QudXNlU3RhdGU8VG9hc3RUW10+KFtdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBUb2FzdFN0YXRlLnN1YnNjcmliZSgodG9hc3QpID0+IHtcbiAgICAgIHNldEFjdGl2ZVRvYXN0cygoY3VycmVudFRvYXN0cykgPT4ge1xuICAgICAgICBpZiAoJ2Rpc21pc3MnIGluIHRvYXN0ICYmIHRvYXN0LmRpc21pc3MpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudFRvYXN0cy5maWx0ZXIoKHQpID0+IHQuaWQgIT09IHRvYXN0LmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVG9hc3RJbmRleCA9IGN1cnJlbnRUb2FzdHMuZmluZEluZGV4KCh0KSA9PiB0LmlkID09PSB0b2FzdC5pZCk7XG4gICAgICAgIGlmIChleGlzdGluZ1RvYXN0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRvYXN0cyA9IFsuLi5jdXJyZW50VG9hc3RzXTtcbiAgICAgICAgICB1cGRhdGVkVG9hc3RzW2V4aXN0aW5nVG9hc3RJbmRleF0gPSB7IC4uLnVwZGF0ZWRUb2FzdHNbZXhpc3RpbmdUb2FzdEluZGV4XSwgLi4udG9hc3QgfTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFRvYXN0cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW3RvYXN0LCAuLi5jdXJyZW50VG9hc3RzXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIHRvYXN0czogYWN0aXZlVG9hc3RzLFxuICB9O1xufVxuXG5jb25zdCBUb2FzdGVyID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgVG9hc3RlclByb3BzPihmdW5jdGlvbiBUb2FzdGVyKHByb3BzLCByZWYpIHtcbiAgY29uc3Qge1xuICAgIGludmVydCxcbiAgICBwb3NpdGlvbiA9ICdib3R0b20tcmlnaHQnLFxuICAgIGhvdGtleSA9IFsnYWx0S2V5JywgJ0tleVQnXSxcbiAgICBleHBhbmQsXG4gICAgY2xvc2VCdXR0b24sXG4gICAgY2xhc3NOYW1lLFxuICAgIG9mZnNldCxcbiAgICB0aGVtZSA9ICdsaWdodCcsXG4gICAgcmljaENvbG9ycyxcbiAgICBkdXJhdGlvbixcbiAgICBzdHlsZSxcbiAgICB2aXNpYmxlVG9hc3RzID0gVklTSUJMRV9UT0FTVFNfQU1PVU5ULFxuICAgIHRvYXN0T3B0aW9ucyxcbiAgICBkaXIgPSBnZXREb2N1bWVudERpcmVjdGlvbigpLFxuICAgIGdhcCA9IEdBUCxcbiAgICBsb2FkaW5nSWNvbixcbiAgICBpY29ucyxcbiAgICBjb250YWluZXJBcmlhTGFiZWwgPSAnTm90aWZpY2F0aW9ucycsXG4gICAgcGF1c2VXaGVuUGFnZUlzSGlkZGVuLFxuICAgIGNuID0gX2NuLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFt0b2FzdHMsIHNldFRvYXN0c10gPSBSZWFjdC51c2VTdGF0ZTxUb2FzdFRbXT4oW10pO1xuICBjb25zdCBwb3NzaWJsZVBvc2l0aW9ucyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgbmV3IFNldChbcG9zaXRpb25dLmNvbmNhdCh0b2FzdHMuZmlsdGVyKCh0b2FzdCkgPT4gdG9hc3QucG9zaXRpb24pLm1hcCgodG9hc3QpID0+IHRvYXN0LnBvc2l0aW9uKSkpLFxuICAgICk7XG4gIH0sIFt0b2FzdHMsIHBvc2l0aW9uXSk7XG4gIGNvbnN0IFtoZWlnaHRzLCBzZXRIZWlnaHRzXSA9IFJlYWN0LnVzZVN0YXRlPEhlaWdodFRbXT4oW10pO1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ludGVyYWN0aW5nLCBzZXRJbnRlcmFjdGluZ10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthY3R1YWxUaGVtZSwgc2V0QWN0dWFsVGhlbWVdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgdGhlbWUgIT09ICdzeXN0ZW0nXG4gICAgICA/IHRoZW1lXG4gICAgICA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICA/IHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlc1xuICAgICAgICA/ICdkYXJrJ1xuICAgICAgICA6ICdsaWdodCdcbiAgICAgIDogJ2xpZ2h0JyxcbiAgKTtcblxuICBjb25zdCBsaXN0UmVmID0gUmVhY3QudXNlUmVmPEhUTUxPTGlzdEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBob3RrZXlMYWJlbCA9IGhvdGtleS5qb2luKCcrJykucmVwbGFjZSgvS2V5L2csICcnKS5yZXBsYWNlKC9EaWdpdC9nLCAnJyk7XG4gIGNvbnN0IGxhc3RGb2N1c2VkRWxlbWVudFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGlzRm9jdXNXaXRoaW5SZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IHJlbW92ZVRvYXN0ID0gUmVhY3QudXNlQ2FsbGJhY2soKHRvYXN0VG9SZW1vdmU6IFRvYXN0VCkgPT4ge1xuICAgIHNldFRvYXN0cygodG9hc3RzKSA9PiB7XG4gICAgICBpZiAoIXRvYXN0cy5maW5kKCh0b2FzdCkgPT4gdG9hc3QuaWQgPT09IHRvYXN0VG9SZW1vdmUuaWQpPy5kZWxldGUpIHtcbiAgICAgICAgVG9hc3RTdGF0ZS5kaXNtaXNzKHRvYXN0VG9SZW1vdmUuaWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9hc3RzLmZpbHRlcigoeyBpZCB9KSA9PiBpZCAhPT0gdG9hc3RUb1JlbW92ZS5pZCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBUb2FzdFN0YXRlLnN1YnNjcmliZSgodG9hc3QpID0+IHtcbiAgICAgIGlmICgodG9hc3QgYXMgVG9hc3RUb0Rpc21pc3MpLmRpc21pc3MpIHtcbiAgICAgICAgc2V0VG9hc3RzKCh0b2FzdHMpID0+IHRvYXN0cy5tYXAoKHQpID0+ICh0LmlkID09PSB0b2FzdC5pZCA/IHsgLi4udCwgZGVsZXRlOiB0cnVlIH0gOiB0KSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXZlbnQgYmF0Y2hpbmcsIHRlbXAgc29sdXRpb24uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICBzZXRUb2FzdHMoKHRvYXN0cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhPZkV4aXN0aW5nVG9hc3QgPSB0b2FzdHMuZmluZEluZGV4KCh0KSA9PiB0LmlkID09PSB0b2FzdC5pZCk7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdG9hc3QgaWYgaXQgYWxyZWFkeSBleGlzdHNcbiAgICAgICAgICAgIGlmIChpbmRleE9mRXhpc3RpbmdUb2FzdCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAuLi50b2FzdHMuc2xpY2UoMCwgaW5kZXhPZkV4aXN0aW5nVG9hc3QpLFxuICAgICAgICAgICAgICAgIHsgLi4udG9hc3RzW2luZGV4T2ZFeGlzdGluZ1RvYXN0XSwgLi4udG9hc3QgfSxcbiAgICAgICAgICAgICAgICAuLi50b2FzdHMuc2xpY2UoaW5kZXhPZkV4aXN0aW5nVG9hc3QgKyAxKSxcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIFt0b2FzdCwgLi4udG9hc3RzXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoZW1lICE9PSAnc3lzdGVtJykge1xuICAgICAgc2V0QWN0dWFsVGhlbWUodGhlbWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGVtZSA9PT0gJ3N5c3RlbScpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGN1cnJlbnQgcHJlZmVyZW5jZSBpcyBkYXJrXG4gICAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzKSB7XG4gICAgICAgIC8vIGl0J3MgY3VycmVudGx5IGRhcmtcbiAgICAgICAgc2V0QWN0dWFsVGhlbWUoJ2RhcmsnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGl0J3Mgbm90IGRhcmtcbiAgICAgICAgc2V0QWN0dWFsVGhlbWUoJ2xpZ2h0Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgY29uc3QgZGFya01lZGlhUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENocm9tZSAmIEZpcmVmb3hcbiAgICAgIGRhcmtNZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICh7IG1hdGNoZXMgfSkgPT4ge1xuICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgIHNldEFjdHVhbFRoZW1lKCdkYXJrJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0QWN0dWFsVGhlbWUoJ2xpZ2h0Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBTYWZhcmkgPCAxNFxuICAgICAgZGFya01lZGlhUXVlcnkuYWRkTGlzdGVuZXIoKHsgbWF0Y2hlcyB9KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIHNldEFjdHVhbFRoZW1lKCdkYXJrJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldEFjdHVhbFRoZW1lKCdsaWdodCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3RoZW1lXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBFbnN1cmUgZXhwYW5kZWQgaXMgYWx3YXlzIGZhbHNlIHdoZW4gbm8gdG9hc3RzIGFyZSBwcmVzZW50IC8gb25seSBvbmUgbGVmdFxuICAgIGlmICh0b2FzdHMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHNldEV4cGFuZGVkKGZhbHNlKTtcbiAgICB9XG4gIH0sIFt0b2FzdHNdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzSG90a2V5UHJlc3NlZCA9IGhvdGtleS5ldmVyeSgoa2V5KSA9PiAoZXZlbnQgYXMgYW55KVtrZXldIHx8IGV2ZW50LmNvZGUgPT09IGtleSk7XG5cbiAgICAgIGlmIChpc0hvdGtleVByZXNzZWQpIHtcbiAgICAgICAgc2V0RXhwYW5kZWQodHJ1ZSk7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBldmVudC5jb2RlID09PSAnRXNjYXBlJyAmJlxuICAgICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGlzdFJlZi5jdXJyZW50IHx8IGxpc3RSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpXG4gICAgICApIHtcbiAgICAgICAgc2V0RXhwYW5kZWQoZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pO1xuXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgfSwgW2hvdGtleV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbGFzdEZvY3VzZWRFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICBpc0ZvY3VzV2l0aGluUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH0sIFtsaXN0UmVmLmN1cnJlbnRdKTtcblxuICByZXR1cm4gKFxuICAgIC8vIFJlbW92ZSBpdGVtIGZyb20gbm9ybWFsIG5hdmlnYXRpb24gZmxvdywgb25seSBhdmFpbGFibGUgdmlhIGhvdGtleVxuICAgIDxzZWN0aW9uXG4gICAgICBhcmlhLWxhYmVsPXtgJHtjb250YWluZXJBcmlhTGFiZWx9ICR7aG90a2V5TGFiZWx9YH1cbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBhcmlhLXJlbGV2YW50PVwiYWRkaXRpb25zIHRleHRcIlxuICAgICAgYXJpYS1hdG9taWM9XCJmYWxzZVwiXG4gICAgPlxuICAgICAge3Bvc3NpYmxlUG9zaXRpb25zLm1hcCgocG9zaXRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IFt5LCB4XSA9IHBvc2l0aW9uLnNwbGl0KCctJyk7XG5cbiAgICAgICAgaWYgKCF0b2FzdHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxvbFxuICAgICAgICAgICAga2V5PXtwb3NpdGlvbn1cbiAgICAgICAgICAgIGRpcj17ZGlyID09PSAnYXV0bycgPyBnZXREb2N1bWVudERpcmVjdGlvbigpIDogZGlyfVxuICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgcmVmPXtsaXN0UmVmfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICBkYXRhLXNvbm5lci10b2FzdGVyXG4gICAgICAgICAgICBkYXRhLXRoZW1lPXthY3R1YWxUaGVtZX1cbiAgICAgICAgICAgIGRhdGEteS1wb3NpdGlvbj17eX1cbiAgICAgICAgICAgIGRhdGEtbGlmdGVkPXtleHBhbmRlZCAmJiB0b2FzdHMubGVuZ3RoID4gMSAmJiAhZXhwYW5kfVxuICAgICAgICAgICAgZGF0YS14LXBvc2l0aW9uPXt4fVxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJy0tZnJvbnQtdG9hc3QtaGVpZ2h0JzogYCR7aGVpZ2h0c1swXT8uaGVpZ2h0IHx8IDB9cHhgLFxuICAgICAgICAgICAgICAgICctLW9mZnNldCc6IHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInID8gYCR7b2Zmc2V0fXB4YCA6IG9mZnNldCB8fCBWSUVXUE9SVF9PRkZTRVQsXG4gICAgICAgICAgICAgICAgJy0td2lkdGgnOiBgJHtUT0FTVF9XSURUSH1weGAsXG4gICAgICAgICAgICAgICAgJy0tZ2FwJzogYCR7Z2FwfXB4YCxcbiAgICAgICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkJsdXI9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXNGb2N1c1dpdGhpblJlZi5jdXJyZW50ICYmICFldmVudC5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgaXNGb2N1c1dpdGhpblJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzTm90RGlzbWlzc2libGUgPVxuICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGV2ZW50LnRhcmdldC5kYXRhc2V0LmRpc21pc3NpYmxlID09PSAnZmFsc2UnO1xuXG4gICAgICAgICAgICAgIGlmIChpc05vdERpc21pc3NpYmxlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzV2l0aGluUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpc0ZvY3VzV2l0aGluUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gc2V0RXhwYW5kZWQodHJ1ZSl9XG4gICAgICAgICAgICBvbk1vdXNlTW92ZT17KCkgPT4gc2V0RXhwYW5kZWQodHJ1ZSl9XG4gICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHtcbiAgICAgICAgICAgICAgLy8gQXZvaWQgc2V0dGluZyBleHBhbmRlZCB0byBmYWxzZSB3aGVuIGludGVyYWN0aW5nIHdpdGggYSB0b2FzdCwgZS5nLiBzd2lwaW5nXG4gICAgICAgICAgICAgIGlmICghaW50ZXJhY3RpbmcpIHtcbiAgICAgICAgICAgICAgICBzZXRFeHBhbmRlZChmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvblBvaW50ZXJEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXNOb3REaXNtaXNzaWJsZSA9XG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgZXZlbnQudGFyZ2V0LmRhdGFzZXQuZGlzbWlzc2libGUgPT09ICdmYWxzZSc7XG5cbiAgICAgICAgICAgICAgaWYgKGlzTm90RGlzbWlzc2libGUpIHJldHVybjtcbiAgICAgICAgICAgICAgc2V0SW50ZXJhY3RpbmcodHJ1ZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Qb2ludGVyVXA9eygpID0+IHNldEludGVyYWN0aW5nKGZhbHNlKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dG9hc3RzXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHRvYXN0KSA9PiAoIXRvYXN0LnBvc2l0aW9uICYmIGluZGV4ID09PSAwKSB8fCB0b2FzdC5wb3NpdGlvbiA9PT0gcG9zaXRpb24pXG4gICAgICAgICAgICAgIC5tYXAoKHRvYXN0LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxUb2FzdFxuICAgICAgICAgICAgICAgICAga2V5PXt0b2FzdC5pZH1cbiAgICAgICAgICAgICAgICAgIGljb25zPXtpY29uc31cbiAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIHRvYXN0PXt0b2FzdH1cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRSaWNoQ29sb3JzPXtyaWNoQ29sb3JzfVxuICAgICAgICAgICAgICAgICAgZHVyYXRpb249e3RvYXN0T3B0aW9ucz8uZHVyYXRpb24gPz8gZHVyYXRpb259XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3RvYXN0T3B0aW9ucz8uY2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb25DbGFzc05hbWU9e3RvYXN0T3B0aW9ucz8uZGVzY3JpcHRpb25DbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICBpbnZlcnQ9e2ludmVydH1cbiAgICAgICAgICAgICAgICAgIHZpc2libGVUb2FzdHM9e3Zpc2libGVUb2FzdHN9XG4gICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbj17dG9hc3RPcHRpb25zPy5jbG9zZUJ1dHRvbiA/PyBjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgIGludGVyYWN0aW5nPXtpbnRlcmFjdGluZ31cbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbn1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt0b2FzdE9wdGlvbnM/LnN0eWxlfVxuICAgICAgICAgICAgICAgICAgdW5zdHlsZWQ9e3RvYXN0T3B0aW9ucz8udW5zdHlsZWR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWVzPXt0b2FzdE9wdGlvbnM/LmNsYXNzTmFtZXN9XG4gICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25TdHlsZT17dG9hc3RPcHRpb25zPy5jYW5jZWxCdXR0b25TdHlsZX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvblN0eWxlPXt0b2FzdE9wdGlvbnM/LmFjdGlvbkJ1dHRvblN0eWxlfVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlVG9hc3Q9e3JlbW92ZVRvYXN0fVxuICAgICAgICAgICAgICAgICAgdG9hc3RzPXt0b2FzdHMuZmlsdGVyKCh0KSA9PiB0LnBvc2l0aW9uID09IHRvYXN0LnBvc2l0aW9uKX1cbiAgICAgICAgICAgICAgICAgIGhlaWdodHM9e2hlaWdodHMuZmlsdGVyKChoKSA9PiBoLnBvc2l0aW9uID09IHRvYXN0LnBvc2l0aW9uKX1cbiAgICAgICAgICAgICAgICAgIHNldEhlaWdodHM9e3NldEhlaWdodHN9XG4gICAgICAgICAgICAgICAgICBleHBhbmRCeURlZmF1bHQ9e2V4cGFuZH1cbiAgICAgICAgICAgICAgICAgIGdhcD17Z2FwfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZ0ljb249e2xvYWRpbmdJY29ufVxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgcGF1c2VXaGVuUGFnZUlzSGlkZGVuPXtwYXVzZVdoZW5QYWdlSXNIaWRkZW59XG4gICAgICAgICAgICAgICAgICBjbj17Y259XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9vbD5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvc2VjdGlvbj5cbiAgKTtcbn0pO1xuZXhwb3J0IHsgdG9hc3QsIFRvYXN0ZXIsIHR5cGUgRXh0ZXJuYWxUb2FzdCwgdHlwZSBUb2FzdFQsIHR5cGUgVG9hc3RlclByb3BzLCB1c2VTb25uZXIgfTtcbmV4cG9ydCB7IHR5cGUgVG9hc3RDbGFzc25hbWVzLCB0eXBlIFRvYXN0VG9EaXNtaXNzLCB0eXBlIEFjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgVG9hc3RUeXBlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0QXNzZXQgPSAodHlwZTogVG9hc3RUeXBlcyk6IEpTWC5FbGVtZW50IHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgcmV0dXJuIFN1Y2Nlc3NJY29uO1xuXG4gICAgY2FzZSAnaW5mbyc6XG4gICAgICByZXR1cm4gSW5mb0ljb247XG5cbiAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgIHJldHVybiBXYXJuaW5nSWNvbjtcblxuICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgIHJldHVybiBFcnJvckljb247XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmNvbnN0IGJhcnMgPSBBcnJheSgxMikuZmlsbCgwKTtcblxuZXhwb3J0IGNvbnN0IExvYWRlciA9ICh7IHZpc2libGUsIGNsYXNzTmFtZSB9OiB7IHZpc2libGU6IGJvb2xlYW4sIGNsYXNzTmFtZT86IHN0cmluZyB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e1snc29ubmVyLWxvYWRpbmctd3JhcHBlcicsIGNsYXNzTmFtZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX0gZGF0YS12aXNpYmxlPXt2aXNpYmxlfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29ubmVyLXNwaW5uZXJcIj5cbiAgICAgICAge2JhcnMubWFwKChfLCBpKSA9PiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb25uZXItbG9hZGluZy1iYXJcIiBrZXk9e2BzcGlubmVyLWJhci0ke2l9YH0gLz5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IFN1Y2Nlc3NJY29uID0gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjg1Ny05LjgwOWEuNzUuNzUgMCAwMC0xLjIxNC0uODgybC0zLjQ4MyA0Ljc5LTEuODgtMS44OGEuNzUuNzUgMCAxMC0xLjA2IDEuMDYxbDIuNSAyLjVhLjc1Ljc1IDAgMDAxLjEzNy0uMDg5bDQtNS41elwiXG4gICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgV2FybmluZ0ljb24gPSAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTkuNDAxIDMuMDAzYzEuMTU1LTIgNC4wNDMtMiA1LjE5NyAwbDcuMzU1IDEyLjc0OGMxLjE1NCAyLS4yOSA0LjUtMi41OTkgNC41SDQuNjQ1Yy0yLjMwOSAwLTMuNzUyLTIuNS0yLjU5OC00LjVMOS40IDMuMDAzek0xMiA4LjI1YS43NS43NSAwIDAxLjc1Ljc1djMuNzVhLjc1Ljc1IDAgMDEtMS41IDBWOWEuNzUuNzUgMCAwMS43NS0uNzV6bTAgOC4yNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIlxuICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IEluZm9JY29uID0gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk0xOCAxMGE4IDggMCAxMS0xNiAwIDggOCAwIDAxMTYgMHptLTctNGExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6TTkgOWEuNzUuNzUgMCAwMDAgMS41aC4yNTNhLjI1LjI1IDAgMDEuMjQ0LjMwNGwtLjQ1OSAyLjA2NkExLjc1IDEuNzUgMCAwMDEwLjc0NyAxNUgxMWEuNzUuNzUgMCAwMDAtMS41aC0uMjUzYS4yNS4yNSAwIDAxLS4yNDQtLjMwNGwuNDU5LTIuMDY2QTEuNzUgMS43NSAwIDAwOS4yNTMgOUg5elwiXG4gICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgRXJyb3JJY29uID0gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk0xOCAxMGE4IDggMCAxMS0xNiAwIDggOCAwIDAxMTYgMHptLTgtNWEuNzUuNzUgMCAwMS43NS43NXY0LjVhLjc1Ljc1IDAgMDEtMS41IDB2LTQuNUEuNzUuNzUgMCAwMTEwIDV6bTAgMTBhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCJcbiAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgQ2xvc2VJY29uID0gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIxMlwiXG4gICAgaGVpZ2h0PVwiMTJcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICA+XG4gICAgPGxpbmUgeDE9XCIxOFwiIHkxPVwiNlwiIHgyPVwiNlwiIHkyPVwiMThcIj48L2xpbmU+XG4gICAgPGxpbmUgeDE9XCI2XCIgeTE9XCI2XCIgeDI9XCIxOFwiIHkyPVwiMThcIj48L2xpbmU+XG4gIDwvc3ZnPlxuKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjb25zdCB1c2VJc0RvY3VtZW50SGlkZGVuID0gKCkgPT4ge1xuICBjb25zdCBbaXNEb2N1bWVudEhpZGRlbiwgc2V0SXNEb2N1bWVudEhpZGRlbl0gPSBSZWFjdC51c2VTdGF0ZShkb2N1bWVudC5oaWRkZW4pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICBzZXRJc0RvY3VtZW50SGlkZGVuKGRvY3VtZW50LmhpZGRlbik7XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgY2FsbGJhY2spO1xuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIGNhbGxiYWNrKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBpc0RvY3VtZW50SGlkZGVuO1xufTtcbiIsImltcG9ydCB0eXBlIHsgRXh0ZXJuYWxUb2FzdCwgUHJvbWlzZURhdGEsIFByb21pc2VULCBUb2FzdFQsIFRvYXN0VG9EaXNtaXNzLCBUb2FzdFR5cGVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmxldCB0b2FzdHNDb3VudGVyID0gMTtcblxudHlwZSB0aXRsZVQgPSAoKCkgPT4gUmVhY3QuUmVhY3ROb2RlKSB8IFJlYWN0LlJlYWN0Tm9kZTtcblxuY2xhc3MgT2JzZXJ2ZXIge1xuICBzdWJzY3JpYmVyczogQXJyYXk8KHRvYXN0OiBFeHRlcm5hbFRvYXN0IHwgVG9hc3RUb0Rpc21pc3MpID0+IHZvaWQ+O1xuICB0b2FzdHM6IEFycmF5PFRvYXN0VCB8IFRvYXN0VG9EaXNtaXNzPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN1YnNjcmliZXJzID0gW107XG4gICAgdGhpcy50b2FzdHMgPSBbXTtcbiAgfVxuXG4gIC8vIFdlIHVzZSBhcnJvdyBmdW5jdGlvbnMgdG8gbWFpbnRhaW4gdGhlIGNvcnJlY3QgYHRoaXNgIHJlZmVyZW5jZVxuICBzdWJzY3JpYmUgPSAoc3Vic2NyaWJlcjogKHRvYXN0OiBUb2FzdFQgfCBUb2FzdFRvRGlzbWlzcykgPT4gdm9pZCkgPT4ge1xuICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzY3JpYmVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3Vic2NyaWJlcnMuaW5kZXhPZihzdWJzY3JpYmVyKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9O1xuICB9O1xuXG4gIHB1Ymxpc2ggPSAoZGF0YTogVG9hc3RUKSA9PiB7XG4gICAgdGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKChzdWJzY3JpYmVyKSA9PiBzdWJzY3JpYmVyKGRhdGEpKTtcbiAgfTtcblxuICBhZGRUb2FzdCA9IChkYXRhOiBUb2FzdFQpID0+IHtcbiAgICB0aGlzLnB1Ymxpc2goZGF0YSk7XG4gICAgdGhpcy50b2FzdHMgPSBbLi4udGhpcy50b2FzdHMsIGRhdGFdO1xuICB9O1xuXG4gIGNyZWF0ZSA9IChcbiAgICBkYXRhOiBFeHRlcm5hbFRvYXN0ICYge1xuICAgICAgbWVzc2FnZT86IHRpdGxlVDtcbiAgICAgIHR5cGU/OiBUb2FzdFR5cGVzO1xuICAgICAgcHJvbWlzZT86IFByb21pc2VUO1xuICAgICAganN4PzogUmVhY3QuUmVhY3RFbGVtZW50O1xuICAgIH0sXG4gICkgPT4ge1xuICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4ucmVzdCB9ID0gZGF0YTtcbiAgICBjb25zdCBpZCA9IHR5cGVvZiBkYXRhPy5pZCA9PT0gJ251bWJlcicgfHwgZGF0YS5pZD8ubGVuZ3RoID4gMCA/IGRhdGEuaWQgOiB0b2FzdHNDb3VudGVyKys7XG4gICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IHRoaXMudG9hc3RzLmZpbmQoKHRvYXN0KSA9PiB7XG4gICAgICByZXR1cm4gdG9hc3QuaWQgPT09IGlkO1xuICAgIH0pO1xuICAgIGNvbnN0IGRpc21pc3NpYmxlID0gZGF0YS5kaXNtaXNzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGRhdGEuZGlzbWlzc2libGU7XG5cbiAgICBpZiAoYWxyZWFkeUV4aXN0cykge1xuICAgICAgdGhpcy50b2FzdHMgPSB0aGlzLnRvYXN0cy5tYXAoKHRvYXN0KSA9PiB7XG4gICAgICAgIGlmICh0b2FzdC5pZCA9PT0gaWQpIHtcbiAgICAgICAgICB0aGlzLnB1Ymxpc2goeyAuLi50b2FzdCwgLi4uZGF0YSwgaWQsIHRpdGxlOiBtZXNzYWdlIH0pO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50b2FzdCxcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGRpc21pc3NpYmxlLFxuICAgICAgICAgICAgdGl0bGU6IG1lc3NhZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0b2FzdDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFRvYXN0KHsgdGl0bGU6IG1lc3NhZ2UsIC4uLnJlc3QsIGRpc21pc3NpYmxlLCBpZCB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWQ7XG4gIH07XG5cbiAgZGlzbWlzcyA9IChpZD86IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHRoaXMudG9hc3RzLmZvckVhY2goKHRvYXN0KSA9PiB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMuZm9yRWFjaCgoc3Vic2NyaWJlcikgPT4gc3Vic2NyaWJlcih7IGlkOiB0b2FzdC5pZCwgZGlzbWlzczogdHJ1ZSB9KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goKHN1YnNjcmliZXIpID0+IHN1YnNjcmliZXIoeyBpZCwgZGlzbWlzczogdHJ1ZSB9KSk7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xuXG4gIG1lc3NhZ2UgPSAobWVzc2FnZTogdGl0bGVUIHwgUmVhY3QuUmVhY3ROb2RlLCBkYXRhPzogRXh0ZXJuYWxUb2FzdCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh7IC4uLmRhdGEsIG1lc3NhZ2UgfSk7XG4gIH07XG5cbiAgZXJyb3IgPSAobWVzc2FnZTogdGl0bGVUIHwgUmVhY3QuUmVhY3ROb2RlLCBkYXRhPzogRXh0ZXJuYWxUb2FzdCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh7IC4uLmRhdGEsIG1lc3NhZ2UsIHR5cGU6ICdlcnJvcicgfSk7XG4gIH07XG5cbiAgc3VjY2VzcyA9IChtZXNzYWdlOiB0aXRsZVQgfCBSZWFjdC5SZWFjdE5vZGUsIGRhdGE/OiBFeHRlcm5hbFRvYXN0KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHsgLi4uZGF0YSwgdHlwZTogJ3N1Y2Nlc3MnLCBtZXNzYWdlIH0pO1xuICB9O1xuXG4gIGluZm8gPSAobWVzc2FnZTogdGl0bGVUIHwgUmVhY3QuUmVhY3ROb2RlLCBkYXRhPzogRXh0ZXJuYWxUb2FzdCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh7IC4uLmRhdGEsIHR5cGU6ICdpbmZvJywgbWVzc2FnZSB9KTtcbiAgfTtcblxuICB3YXJuaW5nID0gKG1lc3NhZ2U6IHRpdGxlVCB8IFJlYWN0LlJlYWN0Tm9kZSwgZGF0YT86IEV4dGVybmFsVG9hc3QpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoeyAuLi5kYXRhLCB0eXBlOiAnd2FybmluZycsIG1lc3NhZ2UgfSk7XG4gIH07XG5cbiAgbG9hZGluZyA9IChtZXNzYWdlOiB0aXRsZVQgfCBSZWFjdC5SZWFjdE5vZGUsIGRhdGE/OiBFeHRlcm5hbFRvYXN0KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHsgLi4uZGF0YSwgdHlwZTogJ2xvYWRpbmcnLCBtZXNzYWdlIH0pO1xuICB9O1xuXG4gIHByb21pc2UgPSA8VG9hc3REYXRhPihwcm9taXNlOiBQcm9taXNlVDxUb2FzdERhdGE+LCBkYXRhPzogUHJvbWlzZURhdGE8VG9hc3REYXRhPikgPT4ge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgLy8gTm90aGluZyB0byBzaG93XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGlkOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGRhdGEubG9hZGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZCA9IHRoaXMuY3JlYXRlKHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgcHJvbWlzZSxcbiAgICAgICAgdHlwZTogJ2xvYWRpbmcnLFxuICAgICAgICBtZXNzYWdlOiBkYXRhLmxvYWRpbmcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiAhPT0gJ2Z1bmN0aW9uJyA/IGRhdGEuZGVzY3JpcHRpb24gOiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwID0gcHJvbWlzZSBpbnN0YW5jZW9mIFByb21pc2UgPyBwcm9taXNlIDogcHJvbWlzZSgpO1xuXG4gICAgbGV0IHNob3VsZERpc21pc3MgPSBpZCAhPT0gdW5kZWZpbmVkO1xuICAgIGxldCByZXN1bHQ6IFsncmVzb2x2ZScsIFRvYXN0RGF0YV0gfCBbJ3JlamVjdCcsIHVua25vd25dO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxQcm9taXNlID0gcFxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJlc3VsdCA9IFsncmVzb2x2ZScsIHJlc3BvbnNlXTtcbiAgICAgICAgY29uc3QgaXNSZWFjdEVsZW1lbnRSZXNwb25zZSA9IFJlYWN0LmlzVmFsaWRFbGVtZW50KHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKGlzUmVhY3RFbGVtZW50UmVzcG9uc2UpIHtcbiAgICAgICAgICBzaG91bGREaXNtaXNzID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jcmVhdGUoeyBpZCwgdHlwZTogJ2RlZmF1bHQnLCBtZXNzYWdlOiByZXNwb25zZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0h0dHBSZXNwb25zZShyZXNwb25zZSkgJiYgIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgc2hvdWxkRGlzbWlzcyA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICAgICAgdHlwZW9mIGRhdGEuZXJyb3IgPT09ICdmdW5jdGlvbicgPyBhd2FpdCBkYXRhLmVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApIDogZGF0YS5lcnJvcjtcbiAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICA/IGF3YWl0IGRhdGEuZGVzY3JpcHRpb24oYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgICAgICAgICAgOiBkYXRhLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIHRoaXMuY3JlYXRlKHsgaWQsIHR5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGEuc3VjY2VzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2hvdWxkRGlzbWlzcyA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0eXBlb2YgZGF0YS5zdWNjZXNzID09PSAnZnVuY3Rpb24nID8gYXdhaXQgZGF0YS5zdWNjZXNzKHJlc3BvbnNlKSA6IGRhdGEuc3VjY2VzcztcbiAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGF3YWl0IGRhdGEuZGVzY3JpcHRpb24ocmVzcG9uc2UpIDogZGF0YS5kZXNjcmlwdGlvbjtcbiAgICAgICAgICB0aGlzLmNyZWF0ZSh7IGlkLCB0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgICByZXN1bHQgPSBbJ3JlamVjdCcsIGVycm9yXTtcbiAgICAgICAgaWYgKGRhdGEuZXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNob3VsZERpc21pc3MgPSBmYWxzZTtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdHlwZW9mIGRhdGEuZXJyb3IgPT09ICdmdW5jdGlvbicgPyBhd2FpdCBkYXRhLmVycm9yKGVycm9yKSA6IGRhdGEuZXJyb3I7XG4gICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGF3YWl0IGRhdGEuZGVzY3JpcHRpb24oZXJyb3IpIDogZGF0YS5kZXNjcmlwdGlvbjtcbiAgICAgICAgICB0aGlzLmNyZWF0ZSh7IGlkLCB0eXBlOiAnZXJyb3InLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgaWYgKHNob3VsZERpc21pc3MpIHtcbiAgICAgICAgICAvLyBUb2FzdCBpcyBzdGlsbCBpbiBsb2FkIHN0YXRlIChhbmQgd2lsbCBiZSBpbmRlZmluaXRlbHkg4oCUIGRpc21pc3MgaXQpXG4gICAgICAgICAgdGhpcy5kaXNtaXNzKGlkKTtcbiAgICAgICAgICBpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGEuZmluYWxseT8uKCk7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IHVud3JhcCA9ICgpID0+XG4gICAgICBuZXcgUHJvbWlzZTxUb2FzdERhdGE+KChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICAgIG9yaWdpbmFsUHJvbWlzZS50aGVuKCgpID0+IChyZXN1bHRbMF0gPT09ICdyZWplY3QnID8gcmVqZWN0KHJlc3VsdFsxXSkgOiByZXNvbHZlKHJlc3VsdFsxXSkpKS5jYXRjaChyZWplY3QpLFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlb2YgaWQgIT09ICdzdHJpbmcnICYmIHR5cGVvZiBpZCAhPT0gJ251bWJlcicpIHtcbiAgICAgIC8vIGNhbm5vdCBPYmplY3QuYXNzaWduIG9uIHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHsgdW53cmFwIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlkLCB7IHVud3JhcCB9KTtcbiAgICB9XG4gIH07XG5cbiAgY3VzdG9tID0gKGpzeDogKGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IFJlYWN0LlJlYWN0RWxlbWVudCwgZGF0YT86IEV4dGVybmFsVG9hc3QpID0+IHtcbiAgICBjb25zdCBpZCA9IGRhdGE/LmlkIHx8IHRvYXN0c0NvdW50ZXIrKztcbiAgICB0aGlzLmNyZWF0ZSh7IGpzeDoganN4KGlkKSwgaWQsIC4uLmRhdGEgfSk7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgVG9hc3RTdGF0ZSA9IG5ldyBPYnNlcnZlcigpO1xuXG4vLyBiaW5kIHRoaXMgdG8gdGhlIHRvYXN0IGZ1bmN0aW9uXG5jb25zdCB0b2FzdEZ1bmN0aW9uID0gKG1lc3NhZ2U6IHRpdGxlVCwgZGF0YT86IEV4dGVybmFsVG9hc3QpID0+IHtcbiAgY29uc3QgaWQgPSBkYXRhPy5pZCB8fCB0b2FzdHNDb3VudGVyKys7XG5cbiAgVG9hc3RTdGF0ZS5hZGRUb2FzdCh7XG4gICAgdGl0bGU6IG1lc3NhZ2UsXG4gICAgLi4uZGF0YSxcbiAgICBpZCxcbiAgfSk7XG4gIHJldHVybiBpZDtcbn07XG5cbmNvbnN0IGlzSHR0cFJlc3BvbnNlID0gKGRhdGE6IGFueSk6IGRhdGEgaXMgUmVzcG9uc2UgPT4ge1xuICByZXR1cm4gKFxuICAgIGRhdGEgJiZcbiAgICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAnb2snIGluIGRhdGEgJiZcbiAgICB0eXBlb2YgZGF0YS5vayA9PT0gJ2Jvb2xlYW4nICYmXG4gICAgJ3N0YXR1cycgaW4gZGF0YSAmJlxuICAgIHR5cGVvZiBkYXRhLnN0YXR1cyA9PT0gJ251bWJlcidcbiAgKTtcbn07XG5cbmNvbnN0IGJhc2ljVG9hc3QgPSB0b2FzdEZ1bmN0aW9uO1xuXG5jb25zdCBnZXRIaXN0b3J5ID0gKCkgPT4gVG9hc3RTdGF0ZS50b2FzdHM7XG5cbi8vIFdlIHVzZSBgT2JqZWN0LmFzc2lnbmAgdG8gbWFpbnRhaW4gdGhlIGNvcnJlY3QgdHlwZXMgYXMgd2Ugd291bGQgbG9zZSB0aGVtIG90aGVyd2lzZVxuZXhwb3J0IGNvbnN0IHRvYXN0ID0gT2JqZWN0LmFzc2lnbihcbiAgYmFzaWNUb2FzdCxcbiAge1xuICAgIHN1Y2Nlc3M6IFRvYXN0U3RhdGUuc3VjY2VzcyxcbiAgICBpbmZvOiBUb2FzdFN0YXRlLmluZm8sXG4gICAgd2FybmluZzogVG9hc3RTdGF0ZS53YXJuaW5nLFxuICAgIGVycm9yOiBUb2FzdFN0YXRlLmVycm9yLFxuICAgIGN1c3RvbTogVG9hc3RTdGF0ZS5jdXN0b20sXG4gICAgbWVzc2FnZTogVG9hc3RTdGF0ZS5tZXNzYWdlLFxuICAgIHByb21pc2U6IFRvYXN0U3RhdGUucHJvbWlzZSxcbiAgICBkaXNtaXNzOiBUb2FzdFN0YXRlLmRpc21pc3MsXG4gICAgbG9hZGluZzogVG9hc3RTdGF0ZS5sb2FkaW5nLFxuICB9LFxuICB7IGdldEhpc3RvcnkgfSxcbik7XG4iLCJcbiAgICAgICAgICBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdHlsZUluamVjdChjc3MsIHsgaW5zZXJ0QXQgfSA9IHt9KSB7XG4gICAgICAgICAgICBpZiAoIWNzcyB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm5cbiAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF1cbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICAgICAgICAgICAgc3R5bGUudHlwZSA9ICd0ZXh0L2NzcydcbiAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChpbnNlcnRBdCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgaWYgKGhlYWQuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgIGhlYWQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBoZWFkLmZpcnN0Q2hpbGQpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChzdHlsZS5zdHlsZVNoZWV0KSB7XG4gICAgICAgICAgICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgIiwiaW1wb3J0IHN0eWxlSW5qZWN0IGZyb20gJyNzdHlsZS1pbmplY3QnO3N0eWxlSW5qZWN0KFwiOndoZXJlKGh0bWxbZGlyPVxcXCJsdHJcXFwiXSksOndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkaXI9XFxcImx0clxcXCJdKXstLXRvYXN0LWljb24tbWFyZ2luLXN0YXJ0OiAtM3B4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOiA0cHg7LS10b2FzdC1zdmctbWFyZ2luLXN0YXJ0OiAtMXB4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1lbmQ6IDBweDstLXRvYXN0LWJ1dHRvbi1tYXJnaW4tc3RhcnQ6IGF1dG87LS10b2FzdC1idXR0b24tbWFyZ2luLWVuZDogMDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydDogMDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1lbmQ6IHVuc2V0Oy0tdG9hc3QtY2xvc2UtYnV0dG9uLXRyYW5zZm9ybTogdHJhbnNsYXRlKC0zNSUsIC0zNSUpfTp3aGVyZShodG1sW2Rpcj1cXFwicnRsXFxcIl0pLDp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGlyPVxcXCJydGxcXFwiXSl7LS10b2FzdC1pY29uLW1hcmdpbi1zdGFydDogNHB4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOiAtM3B4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1zdGFydDogMHB4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1lbmQ6IC0xcHg7LS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0OiAwOy0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQ6IGF1dG87LS10b2FzdC1jbG9zZS1idXR0b24tc3RhcnQ6IHVuc2V0Oy0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZDogMDstLXRvYXN0LWNsb3NlLWJ1dHRvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZSgzNSUsIC0zNSUpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl0pe3Bvc2l0aW9uOmZpeGVkO3dpZHRoOnZhcigtLXdpZHRoKTtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxSb2JvdG8sSGVsdmV0aWNhIE5ldWUsQXJpYWwsTm90byBTYW5zLHNhbnMtc2VyaWYsQXBwbGUgQ29sb3IgRW1vamksU2Vnb2UgVUkgRW1vamksU2Vnb2UgVUkgU3ltYm9sLE5vdG8gQ29sb3IgRW1vamk7LS1ncmF5MTogaHNsKDAsIDAlLCA5OSUpOy0tZ3JheTI6IGhzbCgwLCAwJSwgOTcuMyUpOy0tZ3JheTM6IGhzbCgwLCAwJSwgOTUuMSUpOy0tZ3JheTQ6IGhzbCgwLCAwJSwgOTMlKTstLWdyYXk1OiBoc2woMCwgMCUsIDkwLjklKTstLWdyYXk2OiBoc2woMCwgMCUsIDg4LjclKTstLWdyYXk3OiBoc2woMCwgMCUsIDg1LjglKTstLWdyYXk4OiBoc2woMCwgMCUsIDc4JSk7LS1ncmF5OTogaHNsKDAsIDAlLCA1Ni4xJSk7LS1ncmF5MTA6IGhzbCgwLCAwJSwgNTIuMyUpOy0tZ3JheTExOiBoc2woMCwgMCUsIDQzLjUlKTstLWdyYXkxMjogaHNsKDAsIDAlLCA5JSk7LS1ib3JkZXItcmFkaXVzOiA4cHg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MDttYXJnaW46MDtsaXN0LXN0eWxlOm5vbmU7b3V0bGluZTpub25lO3otaW5kZXg6OTk5OTk5OTk5O3RyYW5zaXRpb246dHJhbnNmb3JtIC40cyBlYXNlfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1saWZ0ZWQ9XFxcInRydWVcXFwiXSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpfUBtZWRpYSAoaG92ZXI6IG5vbmUpIGFuZCAocG9pbnRlcjogY29hcnNlKXs6d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtbGlmdGVkPVxcXCJ0cnVlXFxcIl0pe3RyYW5zZm9ybTpub25lfX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1cXFwicmlnaHRcXFwiXSl7cmlnaHQ6bWF4KHZhcigtLW9mZnNldCksZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS14LXBvc2l0aW9uPVxcXCJsZWZ0XFxcIl0pe2xlZnQ6bWF4KHZhcigtLW9mZnNldCksZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249XFxcImNlbnRlclxcXCJdKXtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPVxcXCJ0b3BcXFwiXSl7dG9wOm1heCh2YXIoLS1vZmZzZXQpLGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXktcG9zaXRpb249XFxcImJvdHRvbVxcXCJdKXtib3R0b206bWF4KHZhcigtLW9mZnNldCksZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSl7LS15OiB0cmFuc2xhdGVZKDEwMCUpOy0tbGlmdC1hbW91bnQ6IGNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1nYXApKTt6LWluZGV4OnZhcigtLXotaW5kZXgpO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDt0cmFuc2Zvcm06dmFyKC0teSk7ZmlsdGVyOmJsdXIoMCk7dG91Y2gtYWN0aW9uOm5vbmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjRzLG9wYWNpdHkgLjRzLGhlaWdodCAuNHMsYm94LXNoYWRvdyAuMnM7Ym94LXNpemluZzpib3JkZXItYm94O291dGxpbmU6bm9uZTtvdmVyZmxvdy13cmFwOmFueXdoZXJlfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPVxcXCJ0cnVlXFxcIl0pe3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC1iZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ub3JtYWwtYm9yZGVyKTtjb2xvcjp2YXIoLS1ub3JtYWwtdGV4dCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTtib3gtc2hhZG93OjAgNHB4IDEycHggIzAwMDAwMDFhO3dpZHRoOnZhcigtLXdpZHRoKTtmb250LXNpemU6MTNweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF06Zm9jdXMtdmlzaWJsZSl7Ym94LXNoYWRvdzowIDRweCAxMnB4ICMwMDAwMDAxYSwwIDAgMCAycHggIzAwMDN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPVxcXCJ0b3BcXFwiXSl7dG9wOjA7LS15OiB0cmFuc2xhdGVZKC0xMDAlKTstLWxpZnQ6IDE7LS1saWZ0LWFtb3VudDogY2FsYygxICogdmFyKC0tZ2FwKSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPVxcXCJib3R0b21cXFwiXSl7Ym90dG9tOjA7LS15OiB0cmFuc2xhdGVZKDEwMCUpOy0tbGlmdDogLTE7LS1saWZ0LWFtb3VudDogY2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLWdhcCkpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtZGVzY3JpcHRpb25dKXtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS40O2NvbG9yOmluaGVyaXR9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS10aXRsZV0pe2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6aW5oZXJpdH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWljb25dKXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtwb3NpdGlvbjpyZWxhdGl2ZTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1zaHJpbms6MDttYXJnaW4tbGVmdDp2YXIoLS10b2FzdC1pY29uLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LWljb24tbWFyZ2luLWVuZCl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1wcm9taXNlPVxcXCJ0cnVlXFxcIl0pIDp3aGVyZShbZGF0YS1pY29uXSk+c3Zne29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjgpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzb25uZXItZmFkZS1pbiAuM3MgZWFzZSBmb3J3YXJkc306d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWljb25dKT4qe2ZsZXgtc2hyaW5rOjB9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1pY29uXSkgc3Zne21hcmdpbi1sZWZ0OnZhcigtLXRvYXN0LXN2Zy1tYXJnaW4tc3RhcnQpO21hcmdpbi1yaWdodDp2YXIoLS10b2FzdC1zdmctbWFyZ2luLWVuZCl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1jb250ZW50XSl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtYnV0dG9uXXtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4O2hlaWdodDoyNHB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW5vcm1hbC1iZyk7YmFja2dyb3VuZDp2YXIoLS1ub3JtYWwtdGV4dCk7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kKTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246b3BhY2l0eSAuNHMsYm94LXNoYWRvdyAuMnN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1idXR0b25dKTpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4ICMwMDA2fTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtYnV0dG9uXSk6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tbGVmdDp2YXIoLS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0KTttYXJnaW4tcmlnaHQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtY2FuY2VsXSl7Y29sb3I6dmFyKC0tbm9ybWFsLXRleHQpO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDgpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdGhlbWU9XFxcImRhcmtcXFwiXSkgOndoZXJlKFtkYXRhLWNhbmNlbF0pe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1jbG9zZS1idXR0b25dKXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydCk7cmlnaHQ6dmFyKC0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZCk7dG9wOjA7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowO2NvbG9yOnZhcigtLWdyYXkxMik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ncmF5NCk7dHJhbnNmb3JtOnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi10cmFuc2Zvcm0pO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzLGJhY2tncm91bmQgLjJzLGJvcmRlci1jb2xvciAuMnN9W2RhdGEtc29ubmVyLXRvYXN0XSBbZGF0YS1jbG9zZS1idXR0b25de2JhY2tncm91bmQ6dmFyKC0tZ3JheTEpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtY2xvc2UtYnV0dG9uXSk6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgNHB4IDEycHggIzAwMDAwMDFhLDAgMCAwIDJweCAjMDAwM306d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWRpc2FibGVkPVxcXCJ0cnVlXFxcIl0pe2N1cnNvcjpub3QtYWxsb3dlZH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSk6aG92ZXIgOndoZXJlKFtkYXRhLWNsb3NlLWJ1dHRvbl0pOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tZ3JheTIpO2JvcmRlci1jb2xvcjp2YXIoLS1ncmF5NSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwaW5nPVxcXCJ0cnVlXFxcIl0pOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2hlaWdodDoxMDAlO3otaW5kZXg6LTF9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPVxcXCJ0b3BcXFwiXVtkYXRhLXN3aXBpbmc9XFxcInRydWVcXFwiXSk6YmVmb3Jle2JvdHRvbTo1MCU7dHJhbnNmb3JtOnNjYWxlWSgzKSB0cmFuc2xhdGVZKDUwJSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPVxcXCJib3R0b21cXFwiXVtkYXRhLXN3aXBpbmc9XFxcInRydWVcXFwiXSk6YmVmb3Jle3RvcDo1MCU7dHJhbnNmb3JtOnNjYWxlWSgzKSB0cmFuc2xhdGVZKC01MCUpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGluZz1cXFwiZmFsc2VcXFwiXVtkYXRhLXJlbW92ZWQ9XFxcInRydWVcXFwiXSk6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt0cmFuc2Zvcm06c2NhbGVZKDIpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKTphZnRlcntjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtoZWlnaHQ6Y2FsYyh2YXIoLS1nYXApICsgMXB4KTtib3R0b206MTAwJTt3aWR0aDoxMDAlfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtbW91bnRlZD1cXFwidHJ1ZVxcXCJdKXstLXk6IHRyYW5zbGF0ZVkoMCk7b3BhY2l0eToxfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtZXhwYW5kZWQ9XFxcImZhbHNlXFxcIl1bZGF0YS1mcm9udD1cXFwiZmFsc2VcXFwiXSl7LS1zY2FsZTogdmFyKC0tdG9hc3RzLWJlZm9yZSkgKiAuMDUgKyAxOy0teTogdHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQtYW1vdW50KSAqIHZhcigtLXRvYXN0cy1iZWZvcmUpKSkgc2NhbGUoY2FsYygtMSAqIHZhcigtLXNjYWxlKSkpO2hlaWdodDp2YXIoLS1mcm9udC10b2FzdC1oZWlnaHQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKT4qe3RyYW5zaXRpb246b3BhY2l0eSAuNHN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1leHBhbmRlZD1cXFwiZmFsc2VcXFwiXVtkYXRhLWZyb250PVxcXCJmYWxzZVxcXCJdW2RhdGEtc3R5bGVkPVxcXCJ0cnVlXFxcIl0pPip7b3BhY2l0eTowfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdmlzaWJsZT1cXFwiZmFsc2VcXFwiXSl7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1tb3VudGVkPVxcXCJ0cnVlXFxcIl1bZGF0YS1leHBhbmRlZD1cXFwidHJ1ZVxcXCJdKXstLXk6IHRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLW9mZnNldCkpKTtoZWlnaHQ6dmFyKC0taW5pdGlhbC1oZWlnaHQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcmVtb3ZlZD1cXFwidHJ1ZVxcXCJdW2RhdGEtZnJvbnQ9XFxcInRydWVcXFwiXVtkYXRhLXN3aXBlLW91dD1cXFwiZmFsc2VcXFwiXSl7LS15OiB0cmFuc2xhdGVZKGNhbGModmFyKC0tbGlmdCkgKiAtMTAwJSkpO29wYWNpdHk6MH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9XFxcInRydWVcXFwiXVtkYXRhLWZyb250PVxcXCJmYWxzZVxcXCJdW2RhdGEtc3dpcGUtb3V0PVxcXCJmYWxzZVxcXCJdW2RhdGEtZXhwYW5kZWQ9XFxcInRydWVcXFwiXSl7LS15OiB0cmFuc2xhdGVZKGNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1vZmZzZXQpICsgdmFyKC0tbGlmdCkgKiAtMTAwJSkpO29wYWNpdHk6MH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9XFxcInRydWVcXFwiXVtkYXRhLWZyb250PVxcXCJmYWxzZVxcXCJdW2RhdGEtc3dpcGUtb3V0PVxcXCJmYWxzZVxcXCJdW2RhdGEtZXhwYW5kZWQ9XFxcImZhbHNlXFxcIl0pey0teTogdHJhbnNsYXRlWSg0MCUpO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsb3BhY2l0eSAuMnN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1yZW1vdmVkPVxcXCJ0cnVlXFxcIl1bZGF0YS1mcm9udD1cXFwiZmFsc2VcXFwiXSk6YmVmb3Jle2hlaWdodDpjYWxjKHZhcigtLWluaXRpYWwtaGVpZ2h0KSArIDIwJSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBpbmc9dHJ1ZV17dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVkodmFyKC0tc3dpcGUtYW1vdW50LCAwcHgpKTt0cmFuc2l0aW9uOm5vbmV9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlZD10cnVlXXt1c2VyLXNlbGVjdDpub25lfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9dHJ1ZV1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV0sW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlLW91dD10cnVlXVtkYXRhLXktcG9zaXRpb249dG9wXXthbmltYXRpb246c3dpcGUtb3V0IC4ycyBlYXNlLW91dCBmb3J3YXJkc31Aa2V5ZnJhbWVzIHN3aXBlLW91dHswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tb2Zmc2V0KSArIHZhcigtLXN3aXBlLWFtb3VudCkpKTtvcGFjaXR5OjF9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLW9mZnNldCkgKyB2YXIoLS1zd2lwZS1hbW91bnQpICsgdmFyKC0tbGlmdCkgKiAtMTAwJSkpO29wYWNpdHk6MH19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXtbZGF0YS1zb25uZXItdG9hc3Rlcl17cG9zaXRpb246Zml4ZWQ7LS1tb2JpbGUtb2Zmc2V0OiAxNnB4O3JpZ2h0OnZhcigtLW1vYmlsZS1vZmZzZXQpO2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7d2lkdGg6MTAwJX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGlyPXJ0bF17bGVmdDpjYWxjKHZhcigtLW1vYmlsZS1vZmZzZXQpICogLTEpfVtkYXRhLXNvbm5lci10b2FzdGVyXSBbZGF0YS1zb25uZXItdG9hc3Rde2xlZnQ6MDtyaWdodDowO3dpZHRoOmNhbGMoMTAwJSAtIHZhcigtLW1vYmlsZS1vZmZzZXQpICogMil9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1sZWZ0XXtsZWZ0OnZhcigtLW1vYmlsZS1vZmZzZXQpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXktcG9zaXRpb249Ym90dG9tXXtib3R0b206MjBweH1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPXRvcF17dG9wOjIwcHh9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1jZW50ZXJde2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7cmlnaHQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7dHJhbnNmb3JtOm5vbmV9fVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXRoZW1lPWxpZ2h0XXstLW5vcm1hbC1iZzogI2ZmZjstLW5vcm1hbC1ib3JkZXI6IHZhcigtLWdyYXk0KTstLW5vcm1hbC10ZXh0OiB2YXIoLS1ncmF5MTIpOy0tc3VjY2Vzcy1iZzogaHNsKDE0MywgODUlLCA5NiUpOy0tc3VjY2Vzcy1ib3JkZXI6IGhzbCgxNDUsIDkyJSwgOTElKTstLXN1Y2Nlc3MtdGV4dDogaHNsKDE0MCwgMTAwJSwgMjclKTstLWluZm8tYmc6IGhzbCgyMDgsIDEwMCUsIDk3JSk7LS1pbmZvLWJvcmRlcjogaHNsKDIyMSwgOTElLCA5MSUpOy0taW5mby10ZXh0OiBoc2woMjEwLCA5MiUsIDQ1JSk7LS13YXJuaW5nLWJnOiBoc2woNDksIDEwMCUsIDk3JSk7LS13YXJuaW5nLWJvcmRlcjogaHNsKDQ5LCA5MSUsIDkxJSk7LS13YXJuaW5nLXRleHQ6IGhzbCgzMSwgOTIlLCA0NSUpOy0tZXJyb3ItYmc6IGhzbCgzNTksIDEwMCUsIDk3JSk7LS1lcnJvci1ib3JkZXI6IGhzbCgzNTksIDEwMCUsIDk0JSk7LS1lcnJvci10ZXh0OiBoc2woMzYwLCAxMDAlLCA0NSUpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXRoZW1lPWxpZ2h0XSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtaW52ZXJ0PXRydWVdey0tbm9ybWFsLWJnOiAjMDAwOy0tbm9ybWFsLWJvcmRlcjogaHNsKDAsIDAlLCAyMCUpOy0tbm9ybWFsLXRleHQ6IHZhcigtLWdyYXkxKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS10aGVtZT1kYXJrXSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtaW52ZXJ0PXRydWVdey0tbm9ybWFsLWJnOiAjZmZmOy0tbm9ybWFsLWJvcmRlcjogdmFyKC0tZ3JheTMpOy0tbm9ybWFsLXRleHQ6IHZhcigtLWdyYXkxMil9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtdGhlbWU9ZGFya117LS1ub3JtYWwtYmc6ICMwMDA7LS1ub3JtYWwtYm9yZGVyOiBoc2woMCwgMCUsIDIwJSk7LS1ub3JtYWwtdGV4dDogdmFyKC0tZ3JheTEpOy0tc3VjY2Vzcy1iZzogaHNsKDE1MCwgMTAwJSwgNiUpOy0tc3VjY2Vzcy1ib3JkZXI6IGhzbCgxNDcsIDEwMCUsIDEyJSk7LS1zdWNjZXNzLXRleHQ6IGhzbCgxNTAsIDg2JSwgNjUlKTstLWluZm8tYmc6IGhzbCgyMTUsIDEwMCUsIDYlKTstLWluZm8tYm9yZGVyOiBoc2woMjIzLCAxMDAlLCAxMiUpOy0taW5mby10ZXh0OiBoc2woMjE2LCA4NyUsIDY1JSk7LS13YXJuaW5nLWJnOiBoc2woNjQsIDEwMCUsIDYlKTstLXdhcm5pbmctYm9yZGVyOiBoc2woNjAsIDEwMCUsIDEyJSk7LS13YXJuaW5nLXRleHQ6IGhzbCg0NiwgODclLCA2NSUpOy0tZXJyb3ItYmc6IGhzbCgzNTgsIDc2JSwgMTAlKTstLWVycm9yLWJvcmRlcjogaHNsKDM1NywgODklLCAxNiUpOy0tZXJyb3ItdGV4dDogaHNsKDM1OCwgMTAwJSwgODElKX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXN1Y2Nlc3NdLFtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9c3VjY2Vzc10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzLWJvcmRlcik7Y29sb3I6dmFyKC0tc3VjY2Vzcy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWluZm9dLFtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9aW5mb10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvLWJvcmRlcik7Y29sb3I6dmFyKC0taW5mby10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXdhcm5pbmddLFtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9d2FybmluZ10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctYmcpO2JvcmRlci1jb2xvcjp2YXIoLS13YXJuaW5nLWJvcmRlcik7Y29sb3I6dmFyKC0td2FybmluZy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWVycm9yXSxbZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWVycm9yXSBbZGF0YS1jbG9zZS1idXR0b25de2JhY2tncm91bmQ6dmFyKC0tZXJyb3ItYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1lcnJvci1ib3JkZXIpO2NvbG9yOnZhcigtLWVycm9yLXRleHQpfS5zb25uZXItbG9hZGluZy13cmFwcGVyey0tc2l6ZTogMTZweDtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSk7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjEwfS5zb25uZXItbG9hZGluZy13cmFwcGVyW2RhdGEtdmlzaWJsZT1mYWxzZV17dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7YW5pbWF0aW9uOnNvbm5lci1mYWRlLW91dCAuMnMgZWFzZSBmb3J3YXJkc30uc29ubmVyLXNwaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7dG9wOjUwJTtsZWZ0OjUwJTtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSl9LnNvbm5lci1sb2FkaW5nLWJhcnthbmltYXRpb246c29ubmVyLXNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZDp2YXIoLS1ncmF5MTEpO2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDo4JTtsZWZ0Oi0xMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zLjklO3dpZHRoOjI0JX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxKXthbmltYXRpb24tZGVsYXk6LTEuMnM7dHJhbnNmb3JtOnJvdGF0ZSguMDAwMWRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDIpe2FuaW1hdGlvbi1kZWxheTotMS4xczt0cmFuc2Zvcm06cm90YXRlKDMwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi0xczt0cmFuc2Zvcm06cm90YXRlKDYwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNCl7YW5pbWF0aW9uLWRlbGF5Oi0uOXM7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDUpe2FuaW1hdGlvbi1kZWxheTotLjhzO3RyYW5zZm9ybTpyb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNil7YW5pbWF0aW9uLWRlbGF5Oi0uN3M7dHJhbnNmb3JtOnJvdGF0ZSgxNTBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg3KXthbmltYXRpb24tZGVsYXk6LS42czt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDgpe2FuaW1hdGlvbi1kZWxheTotLjVzO3RyYW5zZm9ybTpyb3RhdGUoMjEwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoOSl7YW5pbWF0aW9uLWRlbGF5Oi0uNHM7dHJhbnNmb3JtOnJvdGF0ZSgyNDBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxMCl7YW5pbWF0aW9uLWRlbGF5Oi0uM3M7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxMSl7YW5pbWF0aW9uLWRlbGF5Oi0uMnM7dHJhbnNmb3JtOnJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxMil7YW5pbWF0aW9uLWRlbGF5Oi0uMXM7dHJhbnNmb3JtOnJvdGF0ZSgzMzBkZWcpIHRyYW5zbGF0ZSgxNDYlKX1Aa2V5ZnJhbWVzIHNvbm5lci1mYWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc29ubmVyLWZhZGUtb3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCl9fUBrZXlmcmFtZXMgc29ubmVyLXNwaW57MCV7b3BhY2l0eToxfXRve29wYWNpdHk6LjE1fX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pe1tkYXRhLXNvbm5lci10b2FzdF0sW2RhdGEtc29ubmVyLXRvYXN0XT4qLC5zb25uZXItbG9hZGluZy1iYXJ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudDthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9fS5zb25uZXItbG9hZGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb246b3BhY2l0eSAuMnMsdHJhbnNmb3JtIC4yc30uc29ubmVyLWxvYWRlcltkYXRhLXZpc2libGU9ZmFsc2Vde29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZSgtNTAlLC01MCUpfVxcblwiKSIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIFRvYXN0VHlwZXMgPSAnbm9ybWFsJyB8ICdhY3Rpb24nIHwgJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJyB8ICdkZWZhdWx0JztcblxuZXhwb3J0IHR5cGUgUHJvbWlzZVQ8RGF0YSA9IGFueT4gPSBQcm9taXNlPERhdGE+IHwgKCgpID0+IFByb21pc2U8RGF0YT4pO1xuXG5leHBvcnQgdHlwZSBQcm9taXNlVFJlc3VsdDxEYXRhID0gYW55PiA9XG4gIHwgc3RyaW5nXG4gIHwgUmVhY3QuUmVhY3ROb2RlXG4gIHwgKChkYXRhOiBEYXRhKSA9PiBSZWFjdC5SZWFjdE5vZGUgfCBzdHJpbmcgfCBQcm9taXNlPFJlYWN0LlJlYWN0Tm9kZSB8IHN0cmluZz4pO1xuXG5leHBvcnQgdHlwZSBQcm9taXNlRXh0ZXJuYWxUb2FzdCA9IE9taXQ8RXh0ZXJuYWxUb2FzdCwgJ2Rlc2NyaXB0aW9uJz47XG5cbmV4cG9ydCB0eXBlIFByb21pc2VEYXRhPFRvYXN0RGF0YSA9IGFueT4gPSBQcm9taXNlRXh0ZXJuYWxUb2FzdCAmIHtcbiAgbG9hZGluZz86IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc3VjY2Vzcz86IFByb21pc2VUUmVzdWx0PFRvYXN0RGF0YT47XG4gIGVycm9yPzogUHJvbWlzZVRSZXN1bHQ7XG4gIGRlc2NyaXB0aW9uPzogUHJvbWlzZVRSZXN1bHQ7XG4gIGZpbmFsbHk/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RDbGFzc25hbWVzIHtcbiAgdG9hc3Q/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbG9hZGVyPzogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbj86IHN0cmluZztcbiAgY2FuY2VsQnV0dG9uPzogc3RyaW5nO1xuICBhY3Rpb25CdXR0b24/OiBzdHJpbmc7XG4gIHN1Y2Nlc3M/OiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xuICBpbmZvPzogc3RyaW5nO1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBsb2FkaW5nPzogc3RyaW5nO1xuICBkZWZhdWx0Pzogc3RyaW5nO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0SWNvbnMge1xuICBzdWNjZXNzPzogUmVhY3QuUmVhY3ROb2RlO1xuICBpbmZvPzogUmVhY3QuUmVhY3ROb2RlO1xuICB3YXJuaW5nPzogUmVhY3QuUmVhY3ROb2RlO1xuICBlcnJvcj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgbG9hZGluZz86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xvc2U/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgbGFiZWw6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50LCBNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgYWN0aW9uQnV0dG9uU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0VCB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIHRpdGxlPzogKCgpID0+IFJlYWN0LlJlYWN0Tm9kZSkgfCBSZWFjdC5SZWFjdE5vZGU7XG4gIHR5cGU/OiBUb2FzdFR5cGVzO1xuICBpY29uPzogUmVhY3QuUmVhY3ROb2RlO1xuICBqc3g/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJpY2hDb2xvcnM/OiBib29sZWFuO1xuICBpbnZlcnQ/OiBib29sZWFuO1xuICBjbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIGRpc21pc3NpYmxlPzogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiAoKCkgPT4gUmVhY3QuUmVhY3ROb2RlKSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGRlbGV0ZT86IGJvb2xlYW47XG4gIGFjdGlvbj86IEFjdGlvbiB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2FuY2VsPzogQWN0aW9uIHwgUmVhY3QuUmVhY3ROb2RlO1xuICBvbkRpc21pc3M/OiAodG9hc3Q6IFRvYXN0VCkgPT4gdm9pZDtcbiAgb25BdXRvQ2xvc2U/OiAodG9hc3Q6IFRvYXN0VCkgPT4gdm9pZDtcbiAgcHJvbWlzZT86IFByb21pc2VUO1xuICBjYW5jZWxCdXR0b25TdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGFjdGlvbkJ1dHRvblN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICB1bnN0eWxlZD86IGJvb2xlYW47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY2xhc3NOYW1lcz86IFRvYXN0Q2xhc3NuYW1lcztcbiAgZGVzY3JpcHRpb25DbGFzc05hbWU/OiBzdHJpbmc7XG4gIHBvc2l0aW9uPzogUG9zaXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGlvbihhY3Rpb246IEFjdGlvbiB8IFJlYWN0LlJlYWN0Tm9kZSk6IGFjdGlvbiBpcyBBY3Rpb24ge1xuICByZXR1cm4gKGFjdGlvbiBhcyBBY3Rpb24pLmxhYmVsICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uID0gJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tcmlnaHQnIHwgJ3RvcC1jZW50ZXInIHwgJ2JvdHRvbS1jZW50ZXInO1xuZXhwb3J0IGludGVyZmFjZSBIZWlnaHRUIHtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHRvYXN0SWQ6IG51bWJlciB8IHN0cmluZztcbiAgcG9zaXRpb246IFBvc2l0aW9uO1xufVxuXG5pbnRlcmZhY2UgVG9hc3RPcHRpb25zIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uQ2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNhbmNlbEJ1dHRvblN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgYWN0aW9uQnV0dG9uU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgdW5zdHlsZWQ/OiBib29sZWFuO1xuICBjbGFzc05hbWVzPzogVG9hc3RDbGFzc25hbWVzO1xufVxuXG50eXBlIENuRnVuY3Rpb24gPSAoLi4uY2xhc3NlczogQXJyYXk8c3RyaW5nIHwgdW5kZWZpbmVkPikgPT4gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0ZXJQcm9wcyB7XG4gIGludmVydD86IGJvb2xlYW47XG4gIHRoZW1lPzogJ2xpZ2h0JyB8ICdkYXJrJyB8ICdzeXN0ZW0nO1xuICBwb3NpdGlvbj86IFBvc2l0aW9uO1xuICBob3RrZXk/OiBzdHJpbmdbXTtcbiAgcmljaENvbG9ycz86IGJvb2xlYW47XG4gIGV4cGFuZD86IGJvb2xlYW47XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBnYXA/OiBudW1iZXI7XG4gIHZpc2libGVUb2FzdHM/OiBudW1iZXI7XG4gIGNsb3NlQnV0dG9uPzogYm9vbGVhbjtcbiAgdG9hc3RPcHRpb25zPzogVG9hc3RPcHRpb25zO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgb2Zmc2V0Pzogc3RyaW5nIHwgbnVtYmVyO1xuICBkaXI/OiAncnRsJyB8ICdsdHInIHwgJ2F1dG8nO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSB0aGUgYGljb25zYCBwcm9wIGluc3RlYWQ6XG4gICAqIGBgYGpzeFxuICAgKiA8VG9hc3RlclxuICAgKiAgIGljb25zPXt7IGxvYWRpbmc6IDxMb2FkaW5nSWNvbiAvPiB9fVxuICAgKiAvPlxuICAgKiBgYGBcbiAgICovXG4gIGxvYWRpbmdJY29uPzogUmVhY3QuUmVhY3ROb2RlO1xuICBpY29ucz86IFRvYXN0SWNvbnM7XG4gIGNvbnRhaW5lckFyaWFMYWJlbD86IHN0cmluZztcbiAgcGF1c2VXaGVuUGFnZUlzSGlkZGVuPzogYm9vbGVhbjtcbiAgY24/OiBDbkZ1bmN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0UHJvcHMge1xuICB0b2FzdDogVG9hc3RUO1xuICB0b2FzdHM6IFRvYXN0VFtdO1xuICBpbmRleDogbnVtYmVyO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgaW52ZXJ0OiBib29sZWFuO1xuICBoZWlnaHRzOiBIZWlnaHRUW107XG4gIHNldEhlaWdodHM6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPEhlaWdodFRbXT4+O1xuICByZW1vdmVUb2FzdDogKHRvYXN0OiBUb2FzdFQpID0+IHZvaWQ7XG4gIGdhcD86IG51bWJlcjtcbiAgcG9zaXRpb246IFBvc2l0aW9uO1xuICB2aXNpYmxlVG9hc3RzOiBudW1iZXI7XG4gIGV4cGFuZEJ5RGVmYXVsdDogYm9vbGVhbjtcbiAgY2xvc2VCdXR0b246IGJvb2xlYW47XG4gIGludGVyYWN0aW5nOiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNhbmNlbEJ1dHRvblN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgYWN0aW9uQnV0dG9uU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICB1bnN0eWxlZD86IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uQ2xhc3NOYW1lPzogc3RyaW5nO1xuICBsb2FkaW5nSWNvbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lcz86IFRvYXN0Q2xhc3NuYW1lcztcbiAgaWNvbnM/OiBUb2FzdEljb25zO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgcGF1c2VXaGVuUGFnZUlzSGlkZGVuOiBib29sZWFuO1xuICBjbjogQ25GdW5jdGlvbjtcbiAgZGVmYXVsdFJpY2hDb2xvcnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBTd2lwZVN0YXRlVHlwZXMge1xuICBTd2lwZWRPdXQgPSAnU3dpcGVkT3V0JyxcbiAgU3dpcGVkQmFjayA9ICdTd2lwZWRCYWNrJyxcbiAgTm90U3dpcGVkID0gJ05vdFN3aXBlZCcsXG59XG5cbmV4cG9ydCB0eXBlIFRoZW1lID0gJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IGludGVyZmFjZSBUb2FzdFRvRGlzbWlzcyB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIGRpc21pc3M6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEV4dGVybmFsVG9hc3QgPSBPbWl0PFRvYXN0VCwgJ2lkJyB8ICd0eXBlJyB8ICd0aXRsZScgfCAnanN4JyB8ICdkZWxldGUnIHwgJ3Byb21pc2UnPiAmIHtcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7XG59O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiZm9yd2FyZFJlZiIsIlJlYWN0RE9NIiwiZ2V0QXNzZXQiLCJ0eXBlIiwiU3VjY2Vzc0ljb24iLCJJbmZvSWNvbiIsIldhcm5pbmdJY29uIiwiRXJyb3JJY29uIiwiYmFycyIsIkxvYWRlciIsInZpc2libGUiLCJjbGFzc05hbWUiLCJfIiwiaSIsIkNsb3NlSWNvbiIsInVzZUlzRG9jdW1lbnRIaWRkZW4iLCJpc0RvY3VtZW50SGlkZGVuIiwic2V0SXNEb2N1bWVudEhpZGRlbiIsImNhbGxiYWNrIiwidG9hc3RzQ291bnRlciIsIk9ic2VydmVyIiwic3Vic2NyaWJlciIsImluZGV4IiwiZGF0YSIsIl9hIiwibWVzc2FnZSIsInJlc3QiLCJpZCIsImFscmVhZHlFeGlzdHMiLCJ0b2FzdCIsImRpc21pc3NpYmxlIiwicHJvbWlzZSIsInAiLCJzaG91bGREaXNtaXNzIiwicmVzdWx0Iiwib3JpZ2luYWxQcm9taXNlIiwicmVzcG9uc2UiLCJpc0h0dHBSZXNwb25zZSIsImRlc2NyaXB0aW9uIiwiZXJyb3IiLCJ1bndyYXAiLCJyZXNvbHZlIiwicmVqZWN0IiwianN4IiwiVG9hc3RTdGF0ZSIsInRvYXN0RnVuY3Rpb24iLCJiYXNpY1RvYXN0IiwiZ2V0SGlzdG9yeSIsInN0eWxlSW5qZWN0IiwiY3NzIiwiaW5zZXJ0QXQiLCJoZWFkIiwic3R5bGUiLCJpc0FjdGlvbiIsImFjdGlvbiIsIlZJU0lCTEVfVE9BU1RTX0FNT1VOVCIsIlZJRVdQT1JUX09GRlNFVCIsIlRPQVNUX0xJRkVUSU1FIiwiVE9BU1RfV0lEVEgiLCJHQVAiLCJTV0lQRV9USFJFU0hPTEQiLCJUSU1FX0JFRk9SRV9VTk1PVU5UIiwiX2NuIiwiY2xhc3NlcyIsIlRvYXN0IiwicHJvcHMiLCJfYiIsIl9jIiwiX2QiLCJfZSIsIl9mIiwiX2ciLCJfaCIsIl9pIiwiX2oiLCJfayIsIlRvYXN0ZXJJbnZlcnQiLCJ1bnN0eWxlZCIsImludGVyYWN0aW5nIiwic2V0SGVpZ2h0cyIsInZpc2libGVUb2FzdHMiLCJoZWlnaHRzIiwidG9hc3RzIiwiZXhwYW5kZWQiLCJyZW1vdmVUb2FzdCIsImRlZmF1bHRSaWNoQ29sb3JzIiwiY2xvc2VCdXR0b25Gcm9tVG9hc3RlciIsImNhbmNlbEJ1dHRvblN0eWxlIiwiYWN0aW9uQnV0dG9uU3R5bGUiLCJkZXNjcmlwdGlvbkNsYXNzTmFtZSIsImR1cmF0aW9uRnJvbVRvYXN0ZXIiLCJwb3NpdGlvbiIsImdhcCIsImxvYWRpbmdJY29uUHJvcCIsImV4cGFuZEJ5RGVmYXVsdCIsImNsYXNzTmFtZXMiLCJpY29ucyIsImNsb3NlQnV0dG9uQXJpYUxhYmVsIiwicGF1c2VXaGVuUGFnZUlzSGlkZGVuIiwiY24iLCJtb3VudGVkIiwic2V0TW91bnRlZCIsInJlbW92ZWQiLCJzZXRSZW1vdmVkIiwic3dpcGluZyIsInNldFN3aXBpbmciLCJzd2lwZU91dCIsInNldFN3aXBlT3V0IiwiaXNTd2lwZWQiLCJzZXRJc1N3aXBlZCIsIm9mZnNldEJlZm9yZVJlbW92ZSIsInNldE9mZnNldEJlZm9yZVJlbW92ZSIsImluaXRpYWxIZWlnaHQiLCJzZXRJbml0aWFsSGVpZ2h0IiwicmVtYWluaW5nVGltZSIsImRyYWdTdGFydFRpbWUiLCJ0b2FzdFJlZiIsImlzRnJvbnQiLCJpc1Zpc2libGUiLCJ0b2FzdFR5cGUiLCJ0b2FzdENsYXNzbmFtZSIsInRvYXN0RGVzY3JpcHRpb25DbGFzc25hbWUiLCJoZWlnaHRJbmRleCIsImhlaWdodCIsImNsb3NlQnV0dG9uIiwiZHVyYXRpb24iLCJjbG9zZVRpbWVyU3RhcnRUaW1lUmVmIiwib2Zmc2V0IiwibGFzdENsb3NlVGltZXJTdGFydFRpbWVSZWYiLCJwb2ludGVyU3RhcnRSZWYiLCJ5IiwieCIsInRvYXN0c0hlaWdodEJlZm9yZSIsInByZXYiLCJjdXJyIiwicmVkdWNlckluZGV4IiwiaW52ZXJ0IiwiZGlzYWJsZWQiLCJ0b2FzdE5vZGUiLCJoIiwib3JpZ2luYWxIZWlnaHQiLCJuZXdIZWlnaHQiLCJkZWxldGVUb2FzdCIsInRpbWVvdXRJZCIsImVsYXBzZWRUaW1lIiwiZ2V0TG9hZGluZ0ljb24iLCJldmVudCIsInN3aXBlQW1vdW50IiwidGltZVRha2VuIiwidmVsb2NpdHkiLCJ5UG9zaXRpb24iLCJpc0hpZ2hsaWdodGVkIiwiZ2V0RG9jdW1lbnREaXJlY3Rpb24iLCJkaXJBdHRyaWJ1dGUiLCJ1c2VTb25uZXIiLCJhY3RpdmVUb2FzdHMiLCJzZXRBY3RpdmVUb2FzdHMiLCJjdXJyZW50VG9hc3RzIiwidCIsImV4aXN0aW5nVG9hc3RJbmRleCIsInVwZGF0ZWRUb2FzdHMiLCJUb2FzdGVyIiwicmVmIiwiaG90a2V5IiwiZXhwYW5kIiwidGhlbWUiLCJyaWNoQ29sb3JzIiwidG9hc3RPcHRpb25zIiwiZGlyIiwibG9hZGluZ0ljb24iLCJjb250YWluZXJBcmlhTGFiZWwiLCJzZXRUb2FzdHMiLCJwb3NzaWJsZVBvc2l0aW9ucyIsInNldEV4cGFuZGVkIiwic2V0SW50ZXJhY3RpbmciLCJhY3R1YWxUaGVtZSIsInNldEFjdHVhbFRoZW1lIiwibGlzdFJlZiIsImhvdGtleUxhYmVsIiwibGFzdEZvY3VzZWRFbGVtZW50UmVmIiwiaXNGb2N1c1dpdGhpblJlZiIsInRvYXN0VG9SZW1vdmUiLCJpbmRleE9mRXhpc3RpbmdUb2FzdCIsImRhcmtNZWRpYVF1ZXJ5IiwibWF0Y2hlcyIsImUiLCJoYW5kbGVLZXlEb3duIiwia2V5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/sonner/dist/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/strict-event-emitter/lib/index.mjs": /*!*********************************************************!*\ !*** ./node_modules/strict-event-emitter/lib/index.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Emitter: () => (/* binding */ Emitter),\n/* harmony export */ MemoryLeakError: () => (/* binding */ MemoryLeakError)\n/* harmony export */ });\n// src/MemoryLeakError.ts\nvar MemoryLeakError = class extends Error {\n constructor(emitter, type, count) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n );\n this.emitter = emitter;\n this.type = type;\n this.count = count;\n this.name = \"MaxListenersExceededWarning\";\n }\n};\n\n// src/Emitter.ts\nvar _Emitter = class {\n static listenerCount(emitter, eventName) {\n return emitter.listenerCount(eventName);\n }\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.maxListeners = _Emitter.defaultMaxListeners;\n this.hasWarnedAboutPotentialMemoryLeak = false;\n }\n _emitInternalEvent(internalEventName, eventName, listener) {\n this.emit(\n internalEventName,\n ...[eventName, listener]\n );\n }\n _getListeners(eventName) {\n return Array.prototype.concat.apply([], this.events.get(eventName)) || [];\n }\n _removeListener(listeners, listener) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n return [];\n }\n _wrapOnceListener(eventName, listener) {\n const onceListener = (...data) => {\n this.removeListener(eventName, onceListener);\n return listener.apply(this, data);\n };\n Object.defineProperty(onceListener, \"name\", { value: listener.name });\n return onceListener;\n }\n setMaxListeners(maxListeners) {\n this.maxListeners = maxListeners;\n return this;\n }\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n getMaxListeners() {\n return this.maxListeners;\n }\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n eventNames() {\n return Array.from(this.events.keys());\n }\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n emit(eventName, ...data) {\n const listeners = this._getListeners(eventName);\n listeners.forEach((listener) => {\n listener.apply(this, data);\n });\n return listeners.length > 0;\n }\n addListener(eventName, listener) {\n this._emitInternalEvent(\"newListener\", eventName, listener);\n const nextListeners = this._getListeners(eventName).concat(listener);\n this.events.set(eventName, nextListeners);\n if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {\n this.hasWarnedAboutPotentialMemoryLeak = true;\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n );\n console.warn(memoryLeakWarning);\n }\n return this;\n }\n on(eventName, listener) {\n return this.addListener(eventName, listener);\n }\n once(eventName, listener) {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n prependListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners);\n this.events.set(eventName, nextListeners);\n } else {\n this.events.set(eventName, listeners.concat(listener));\n }\n return this;\n }\n prependOnceListener(eventName, listener) {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n removeListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n this._removeListener(listeners, listener);\n this.events.set(eventName, listeners);\n this._emitInternalEvent(\"removeListener\", eventName, listener);\n }\n return this;\n }\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n off(eventName, listener) {\n return this.removeListener(eventName, listener);\n }\n removeAllListeners(eventName) {\n if (eventName) {\n this.events.delete(eventName);\n } else {\n this.events.clear();\n }\n return this;\n }\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n listeners(eventName) {\n return Array.from(this._getListeners(eventName));\n }\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n listenerCount(eventName) {\n return this._getListeners(eventName).length;\n }\n rawListeners(eventName) {\n return this.listeners(eventName);\n }\n};\nvar Emitter = _Emitter;\nEmitter.defaultMaxListeners = 10;\n\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zdHJpY3QtZXZlbnQtZW1pdHRlci9saWIvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsT0FBTyxFQUFFLGlCQUFpQjtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCxzQkFBc0I7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGlCQUFpQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9zdHJpY3QtZXZlbnQtZW1pdHRlci9saWIvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9NZW1vcnlMZWFrRXJyb3IudHNcbnZhciBNZW1vcnlMZWFrRXJyb3IgPSBjbGFzcyBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoZW1pdHRlciwgdHlwZSwgY291bnQpIHtcbiAgICBzdXBlcihcbiAgICAgIGBQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICR7Y291bnR9ICR7dHlwZS50b1N0cmluZygpfSBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0YFxuICAgICk7XG4gICAgdGhpcy5lbWl0dGVyID0gZW1pdHRlcjtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuY291bnQgPSBjb3VudDtcbiAgICB0aGlzLm5hbWUgPSBcIk1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZ1wiO1xuICB9XG59O1xuXG4vLyBzcmMvRW1pdHRlci50c1xudmFyIF9FbWl0dGVyID0gY2xhc3Mge1xuICBzdGF0aWMgbGlzdGVuZXJDb3VudChlbWl0dGVyLCBldmVudE5hbWUpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KGV2ZW50TmFtZSk7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ldmVudHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXMubWF4TGlzdGVuZXJzID0gX0VtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgICB0aGlzLmhhc1dhcm5lZEFib3V0UG90ZW50aWFsTWVtb3J5TGVhayA9IGZhbHNlO1xuICB9XG4gIF9lbWl0SW50ZXJuYWxFdmVudChpbnRlcm5hbEV2ZW50TmFtZSwgZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHRoaXMuZW1pdChcbiAgICAgIGludGVybmFsRXZlbnROYW1lLFxuICAgICAgLi4uW2V2ZW50TmFtZSwgbGlzdGVuZXJdXG4gICAgKTtcbiAgfVxuICBfZ2V0TGlzdGVuZXJzKGV2ZW50TmFtZSkge1xuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCB0aGlzLmV2ZW50cy5nZXQoZXZlbnROYW1lKSkgfHwgW107XG4gIH1cbiAgX3JlbW92ZUxpc3RlbmVyKGxpc3RlbmVycywgbGlzdGVuZXIpIHtcbiAgICBjb25zdCBpbmRleCA9IGxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuICBfd3JhcE9uY2VMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgY29uc3Qgb25jZUxpc3RlbmVyID0gKC4uLmRhdGEpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lLCBvbmNlTGlzdGVuZXIpO1xuICAgICAgcmV0dXJuIGxpc3RlbmVyLmFwcGx5KHRoaXMsIGRhdGEpO1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9uY2VMaXN0ZW5lciwgXCJuYW1lXCIsIHsgdmFsdWU6IGxpc3RlbmVyLm5hbWUgfSk7XG4gICAgcmV0dXJuIG9uY2VMaXN0ZW5lcjtcbiAgfVxuICBzZXRNYXhMaXN0ZW5lcnMobWF4TGlzdGVuZXJzKSB7XG4gICAgdGhpcy5tYXhMaXN0ZW5lcnMgPSBtYXhMaXN0ZW5lcnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbWF4IGxpc3RlbmVyIHZhbHVlIGZvciB0aGUgYEVtaXR0ZXJgIHdoaWNoIGlzXG4gICAqIGVpdGhlciBzZXQgYnkgYGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKG4pYCBvciBkZWZhdWx0cyB0b1xuICAgKiBgRW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzYC5cbiAgICovXG4gIGdldE1heExpc3RlbmVycygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXhMaXN0ZW5lcnM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgbGlzdGluZyB0aGUgZXZlbnRzIGZvciB3aGljaCB0aGUgZW1pdHRlciBoYXMgcmVnaXN0ZXJlZCBsaXN0ZW5lcnMuXG4gICAqIFRoZSB2YWx1ZXMgaW4gdGhlIGFycmF5IHdpbGwgYmUgc3RyaW5ncyBvciBTeW1ib2xzLlxuICAgKi9cbiAgZXZlbnROYW1lcygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmV2ZW50cy5rZXlzKCkpO1xuICB9XG4gIC8qKlxuICAgKiBTeW5jaHJvbm91c2x5IGNhbGxzIGVhY2ggb2YgdGhlIGxpc3RlbmVycyByZWdpc3RlcmVkIGZvciB0aGUgZXZlbnQgbmFtZWQgYGV2ZW50TmFtZWAsXG4gICAqIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgcmVnaXN0ZXJlZCwgcGFzc2luZyB0aGUgc3VwcGxpZWQgYXJndW1lbnRzIHRvIGVhY2guXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBldmVudCBoYXMgbGlzdGVuZXJzLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgZW1pdHRlciA9IG5ldyBFbWl0dGVyPHsgaGVsbG86IFtzdHJpbmddIH0+KClcbiAgICogZW1pdHRlci5lbWl0KCdoZWxsbycsICdKb2huJylcbiAgICovXG4gIGVtaXQoZXZlbnROYW1lLCAuLi5kYXRhKSB7XG4gICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fZ2V0TGlzdGVuZXJzKGV2ZW50TmFtZSk7XG4gICAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiB7XG4gICAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBkYXRhKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGlzdGVuZXJzLmxlbmd0aCA+IDA7XG4gIH1cbiAgYWRkTGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHRoaXMuX2VtaXRJbnRlcm5hbEV2ZW50KFwibmV3TGlzdGVuZXJcIiwgZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgY29uc3QgbmV4dExpc3RlbmVycyA9IHRoaXMuX2dldExpc3RlbmVycyhldmVudE5hbWUpLmNvbmNhdChsaXN0ZW5lcik7XG4gICAgdGhpcy5ldmVudHMuc2V0KGV2ZW50TmFtZSwgbmV4dExpc3RlbmVycyk7XG4gICAgaWYgKHRoaXMubWF4TGlzdGVuZXJzID4gMCAmJiB0aGlzLmxpc3RlbmVyQ291bnQoZXZlbnROYW1lKSA+IHRoaXMubWF4TGlzdGVuZXJzICYmICF0aGlzLmhhc1dhcm5lZEFib3V0UG90ZW50aWFsTWVtb3J5TGVhaykge1xuICAgICAgdGhpcy5oYXNXYXJuZWRBYm91dFBvdGVudGlhbE1lbW9yeUxlYWsgPSB0cnVlO1xuICAgICAgY29uc3QgbWVtb3J5TGVha1dhcm5pbmcgPSBuZXcgTWVtb3J5TGVha0Vycm9yKFxuICAgICAgICB0aGlzLFxuICAgICAgICBldmVudE5hbWUsXG4gICAgICAgIHRoaXMubGlzdGVuZXJDb3VudChldmVudE5hbWUpXG4gICAgICApO1xuICAgICAgY29uc29sZS53YXJuKG1lbW9yeUxlYWtXYXJuaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb24oZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHJldHVybiB0aGlzLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9XG4gIG9uY2UoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHJldHVybiB0aGlzLmFkZExpc3RlbmVyKFxuICAgICAgZXZlbnROYW1lLFxuICAgICAgdGhpcy5fd3JhcE9uY2VMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKVxuICAgICk7XG4gIH1cbiAgcHJlcGVuZExpc3RlbmVyKGV2ZW50TmFtZSwgbGlzdGVuZXIpIHtcbiAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9nZXRMaXN0ZW5lcnMoZXZlbnROYW1lKTtcbiAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG5leHRMaXN0ZW5lcnMgPSBbbGlzdGVuZXJdLmNvbmNhdChsaXN0ZW5lcnMpO1xuICAgICAgdGhpcy5ldmVudHMuc2V0KGV2ZW50TmFtZSwgbmV4dExpc3RlbmVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXZlbnRzLnNldChldmVudE5hbWUsIGxpc3RlbmVycy5jb25jYXQobGlzdGVuZXIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlcGVuZExpc3RlbmVyKFxuICAgICAgZXZlbnROYW1lLFxuICAgICAgdGhpcy5fd3JhcE9uY2VMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKVxuICAgICk7XG4gIH1cbiAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2dldExpc3RlbmVycyhldmVudE5hbWUpO1xuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXJzLCBsaXN0ZW5lcik7XG4gICAgICB0aGlzLmV2ZW50cy5zZXQoZXZlbnROYW1lLCBsaXN0ZW5lcnMpO1xuICAgICAgdGhpcy5fZW1pdEludGVybmFsRXZlbnQoXCJyZW1vdmVMaXN0ZW5lclwiLCBldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFsaWFzIGZvciBgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcigpYC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZW1pdHRlci5vZmYoJ2hlbGxvJywgbGlzdGVuZXIpXG4gICAqL1xuICBvZmYoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9XG4gIHJlbW92ZUFsbExpc3RlbmVycyhldmVudE5hbWUpIHtcbiAgICBpZiAoZXZlbnROYW1lKSB7XG4gICAgICB0aGlzLmV2ZW50cy5kZWxldGUoZXZlbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ldmVudHMuY2xlYXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBhcnJheSBvZiBsaXN0ZW5lcnMgZm9yIHRoZSBldmVudCBuYW1lZCBgZXZlbnROYW1lYC5cbiAgICovXG4gIGxpc3RlbmVycyhldmVudE5hbWUpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9nZXRMaXN0ZW5lcnMoZXZlbnROYW1lKSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBsaXN0ZW5lcnMgbGlzdGVuaW5nIHRvIHRoZSBldmVudCBuYW1lZCBgZXZlbnROYW1lYC5cbiAgICovXG4gIGxpc3RlbmVyQ291bnQoZXZlbnROYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldExpc3RlbmVycyhldmVudE5hbWUpLmxlbmd0aDtcbiAgfVxuICByYXdMaXN0ZW5lcnMoZXZlbnROYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXJzKGV2ZW50TmFtZSk7XG4gIH1cbn07XG52YXIgRW1pdHRlciA9IF9FbWl0dGVyO1xuRW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5leHBvcnQge1xuICBFbWl0dGVyLFxuICBNZW1vcnlMZWFrRXJyb3Jcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/strict-event-emitter/lib/index.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs": /*!*********************************************************!*\ !*** ./node_modules/tailwind-merge/dist/bundle-mjs.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTailwindMerge: () => (/* binding */ createTailwindMerge),\n/* harmony export */ extendTailwindMerge: () => (/* binding */ extendTailwindMerge),\n/* harmony export */ fromTheme: () => (/* binding */ fromTheme),\n/* harmony export */ getDefaultConfig: () => (/* binding */ getDefaultConfig),\n/* harmony export */ mergeConfigs: () => (/* binding */ mergeConfigs),\n/* harmony export */ twJoin: () => (/* binding */ twJoin),\n/* harmony export */ twMerge: () => (/* binding */ twMerge),\n/* harmony export */ validators: () => (/* binding */ validators)\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\n\n//# sourceMappingURL=bundle-mjs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90YWlsd2luZC1tZXJnZS9kaXN0L2J1bmRsZS1tanMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMEJBQTBCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxPQUFPLG1CQUFtQixrQkFBa0IsYUFBYTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxZQUFZO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyQkFBMkI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEg7QUFDNUgiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ0xBU1NfUEFSVF9TRVBBUkFUT1IgPSAnLSc7XG5jb25zdCBjcmVhdGVDbGFzc0dyb3VwVXRpbHMgPSBjb25maWcgPT4ge1xuICBjb25zdCBjbGFzc01hcCA9IGNyZWF0ZUNsYXNzTWFwKGNvbmZpZyk7XG4gIGNvbnN0IHtcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBzLFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1xuICB9ID0gY29uZmlnO1xuICBjb25zdCBnZXRDbGFzc0dyb3VwSWQgPSBjbGFzc05hbWUgPT4ge1xuICAgIGNvbnN0IGNsYXNzUGFydHMgPSBjbGFzc05hbWUuc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpO1xuICAgIC8vIENsYXNzZXMgbGlrZSBgLWluc2V0LTFgIHByb2R1Y2UgYW4gZW1wdHkgc3RyaW5nIGFzIGZpcnN0IGNsYXNzUGFydC4gV2UgYXNzdW1lIHRoYXQgY2xhc3NlcyBmb3IgbmVnYXRpdmUgdmFsdWVzIGFyZSB1c2VkIGNvcnJlY3RseSBhbmQgcmVtb3ZlIGl0IGZyb20gY2xhc3NQYXJ0cy5cbiAgICBpZiAoY2xhc3NQYXJ0c1swXSA9PT0gJycgJiYgY2xhc3NQYXJ0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIGNsYXNzUGFydHMuc2hpZnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldEdyb3VwUmVjdXJzaXZlKGNsYXNzUGFydHMsIGNsYXNzTWFwKSB8fCBnZXRHcm91cElkRm9yQXJiaXRyYXJ5UHJvcGVydHkoY2xhc3NOYW1lKTtcbiAgfTtcbiAgY29uc3QgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzID0gKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9O1xufTtcbmNvbnN0IGdldEdyb3VwUmVjdXJzaXZlID0gKGNsYXNzUGFydHMsIGNsYXNzUGFydE9iamVjdCkgPT4ge1xuICBpZiAoY2xhc3NQYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gY2xhc3NQYXJ0T2JqZWN0LmNsYXNzR3JvdXBJZDtcbiAgfVxuICBjb25zdCBjdXJyZW50Q2xhc3NQYXJ0ID0gY2xhc3NQYXJ0c1swXTtcbiAgY29uc3QgbmV4dENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdC5uZXh0UGFydC5nZXQoY3VycmVudENsYXNzUGFydCk7XG4gIGNvbnN0IGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCA9IG5leHRDbGFzc1BhcnRPYmplY3QgPyBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLnNsaWNlKDEpLCBuZXh0Q2xhc3NQYXJ0T2JqZWN0KSA6IHVuZGVmaW5lZDtcbiAgaWYgKGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQ7XG4gIH1cbiAgaWYgKGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgY2xhc3NSZXN0ID0gY2xhc3NQYXJ0cy5qb2luKENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmZpbmQoKHtcbiAgICB2YWxpZGF0b3JcbiAgfSkgPT4gdmFsaWRhdG9yKGNsYXNzUmVzdCkpPy5jbGFzc0dyb3VwSWQ7XG59O1xuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuY29uc3QgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5ID0gY2xhc3NOYW1lID0+IHtcbiAgaWYgKGFyYml0cmFyeVByb3BlcnR5UmVnZXgudGVzdChjbGFzc05hbWUpKSB7XG4gICAgY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUgPSBhcmJpdHJhcnlQcm9wZXJ0eVJlZ2V4LmV4ZWMoY2xhc3NOYW1lKVsxXTtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGFyYml0cmFyeVByb3BlcnR5Q2xhc3NOYW1lPy5zdWJzdHJpbmcoMCwgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUuaW5kZXhPZignOicpKTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIC8vIEkgdXNlIHR3byBkb3RzIGhlcmUgYmVjYXVzZSBvbmUgZG90IGlzIHVzZWQgYXMgcHJlZml4IGZvciBjbGFzcyBncm91cHMgaW4gcGx1Z2luc1xuICAgICAgcmV0dXJuICdhcmJpdHJhcnkuLicgKyBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn07XG4vKipcbiAqIEV4cG9ydGVkIGZvciB0ZXN0aW5nIG9ubHlcbiAqL1xuY29uc3QgY3JlYXRlQ2xhc3NNYXAgPSBjb25maWcgPT4ge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufTtcbmNvbnN0IHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkgPSAoY2xhc3NHcm91cCwgY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0dyb3VwSWQsIHRoZW1lKSA9PiB7XG4gIGNsYXNzR3JvdXAuZm9yRWFjaChjbGFzc0RlZmluaXRpb24gPT4ge1xuICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0ID0gY2xhc3NEZWZpbml0aW9uID09PSAnJyA/IGNsYXNzUGFydE9iamVjdCA6IGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0RlZmluaXRpb24pO1xuICAgICAgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0LmNsYXNzR3JvdXBJZCA9IGNsYXNzR3JvdXBJZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpc1RoZW1lR2V0dGVyKGNsYXNzRGVmaW5pdGlvbikpIHtcbiAgICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0RlZmluaXRpb24odGhlbWUpLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgdmFsaWRhdG9yOiBjbGFzc0RlZmluaXRpb24sXG4gICAgICAgIGNsYXNzR3JvdXBJZFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikuZm9yRWFjaCgoW2tleSwgY2xhc3NHcm91cF0pID0+IHtcbiAgICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGtleSksIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgIH0pO1xuICB9KTtcbn07XG5jb25zdCBnZXRQYXJ0ID0gKGNsYXNzUGFydE9iamVjdCwgcGF0aCkgPT4ge1xuICBsZXQgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdDtcbiAgcGF0aC5zcGxpdChDTEFTU19QQVJUX1NFUEFSQVRPUikuZm9yRWFjaChwYXRoUGFydCA9PiB7XG4gICAgaWYgKCFjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmhhcyhwYXRoUGFydCkpIHtcbiAgICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuc2V0KHBhdGhQYXJ0LCB7XG4gICAgICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgICAgIHZhbGlkYXRvcnM6IFtdXG4gICAgICB9KTtcbiAgICB9XG4gICAgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KHBhdGhQYXJ0KTtcbiAgfSk7XG4gIHJldHVybiBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0O1xufTtcbmNvbnN0IGlzVGhlbWVHZXR0ZXIgPSBmdW5jID0+IGZ1bmMuaXNUaGVtZUdldHRlcjtcbmNvbnN0IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMgPSAoY2xhc3NHcm91cEVudHJpZXMsIHByZWZpeCkgPT4ge1xuICBpZiAoIXByZWZpeCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRW50cmllcztcbiAgfVxuICByZXR1cm4gY2xhc3NHcm91cEVudHJpZXMubWFwKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cCA9IGNsYXNzR3JvdXAubWFwKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGNsYXNzRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikubWFwKChba2V5LCB2YWx1ZV0pID0+IFtwcmVmaXggKyBrZXksIHZhbHVlXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzRGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXNzR3JvdXBJZCwgcHJlZml4ZWRDbGFzc0dyb3VwXTtcbiAgfSk7XG59O1xuXG4vLyBMUlUgY2FjaGUgaW5zcGlyZWQgZnJvbSBoYXNobHJ1IChodHRwczovL2dpdGh1Yi5jb20vZG9taW5pY3RhcnIvaGFzaGxydS9ibG9iL3YxLjAuNC9pbmRleC5qcykgYnV0IG9iamVjdCByZXBsYWNlZCB3aXRoIE1hcCB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG5jb25zdCBjcmVhdGVMcnVDYWNoZSA9IG1heENhY2hlU2l6ZSA9PiB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IHVwZGF0ZSA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSkge1xuICAgICAgbGV0IHZhbHVlID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoKHZhbHVlID0gcHJldmlvdXNDYWNoZS5nZXQoa2V5KSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5jb25zdCBJTVBPUlRBTlRfTU9ESUZJRVIgPSAnISc7XG5jb25zdCBjcmVhdGVQYXJzZUNsYXNzTmFtZSA9IGNvbmZpZyA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZXBhcmF0b3IsXG4gICAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWVcbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgPSBzZXBhcmF0b3IubGVuZ3RoID09PSAxO1xuICBjb25zdCBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRvclswXTtcbiAgY29uc3Qgc2VwYXJhdG9yTGVuZ3RoID0gc2VwYXJhdG9yLmxlbmd0aDtcbiAgLy8gcGFyc2VDbGFzc05hbWUgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL3YzLjIuMi9zcmMvdXRpbC9zcGxpdEF0VG9wTGV2ZWxPbmx5LmpzXG4gIGNvbnN0IHBhcnNlQ2xhc3NOYW1lID0gY2xhc3NOYW1lID0+IHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBbXTtcbiAgICBsZXQgYnJhY2tldERlcHRoID0gMDtcbiAgICBsZXQgbW9kaWZpZXJTdGFydCA9IDA7XG4gICAgbGV0IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjbGFzc05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBsZXQgY3VycmVudENoYXJhY3RlciA9IGNsYXNzTmFtZVtpbmRleF07XG4gICAgICBpZiAoYnJhY2tldERlcHRoID09PSAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciAmJiAoaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgfHwgY2xhc3NOYW1lLnNsaWNlKGluZGV4LCBpbmRleCArIHNlcGFyYXRvckxlbmd0aCkgPT09IHNlcGFyYXRvcikpIHtcbiAgICAgICAgICBtb2RpZmllcnMucHVzaChjbGFzc05hbWUuc2xpY2UobW9kaWZpZXJTdGFydCwgaW5kZXgpKTtcbiAgICAgICAgICBtb2RpZmllclN0YXJ0ID0gaW5kZXggKyBzZXBhcmF0b3JMZW5ndGg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICcvJykge1xuICAgICAgICAgIHBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gaW5kZXg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnWycpIHtcbiAgICAgICAgYnJhY2tldERlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICddJykge1xuICAgICAgICBicmFja2V0RGVwdGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllciA9IG1vZGlmaWVycy5sZW5ndGggPT09IDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWUuc3Vic3RyaW5nKG1vZGlmaWVyU3RhcnQpO1xuICAgIGNvbnN0IGhhc0ltcG9ydGFudE1vZGlmaWVyID0gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdGFydHNXaXRoKElNUE9SVEFOVF9NT0RJRklFUik7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGhhc0ltcG9ydGFudE1vZGlmaWVyID8gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdWJzdHJpbmcoMSkgOiBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyO1xuICAgIGNvbnN0IG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAmJiBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA+IG1vZGlmaWVyU3RhcnQgPyBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAtIG1vZGlmaWVyU3RhcnQgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVycyxcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb25cbiAgICB9O1xuICB9O1xuICBpZiAoZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpIHtcbiAgICByZXR1cm4gY2xhc3NOYW1lID0+IGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHBhcnNlQ2xhc3NOYW1lXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2xhc3NOYW1lO1xufTtcbi8qKlxuICogU29ydHMgbW9kaWZpZXJzIGFjY29yZGluZyB0byBmb2xsb3dpbmcgc2NoZW1hOlxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XG4gKiAtIFdoZW4gYW4gYXJiaXRyYXJ5IHZhcmlhbnQgYXBwZWFycywgaXQgbXVzdCBiZSBwcmVzZXJ2ZWQgd2hpY2ggbW9kaWZpZXJzIGFyZSBiZWZvcmUgYW5kIGFmdGVyIGl0XG4gKi9cbmNvbnN0IHNvcnRNb2RpZmllcnMgPSBtb2RpZmllcnMgPT4ge1xuICBpZiAobW9kaWZpZXJzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVycztcbiAgfVxuICBjb25zdCBzb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbGV0IHVuc29ydGVkTW9kaWZpZXJzID0gW107XG4gIG1vZGlmaWVycy5mb3JFYWNoKG1vZGlmaWVyID0+IHtcbiAgICBjb25zdCBpc0FyYml0cmFyeVZhcmlhbnQgPSBtb2RpZmllclswXSA9PT0gJ1snO1xuICAgIGlmIChpc0FyYml0cmFyeVZhcmlhbnQpIHtcbiAgICAgIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSwgbW9kaWZpZXIpO1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMucHVzaChtb2RpZmllcik7XG4gICAgfVxuICB9KTtcbiAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpKTtcbiAgcmV0dXJuIHNvcnRlZE1vZGlmaWVycztcbn07XG5jb25zdCBjcmVhdGVDb25maWdVdGlscyA9IGNvbmZpZyA9PiAoe1xuICBjYWNoZTogY3JlYXRlTHJ1Q2FjaGUoY29uZmlnLmNhY2hlU2l6ZSksXG4gIHBhcnNlQ2xhc3NOYW1lOiBjcmVhdGVQYXJzZUNsYXNzTmFtZShjb25maWcpLFxuICAuLi5jcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKVxufSk7XG5jb25zdCBTUExJVF9DTEFTU0VTX1JFR0VYID0gL1xccysvO1xuY29uc3QgbWVyZ2VDbGFzc0xpc3QgPSAoY2xhc3NMaXN0LCBjb25maWdVdGlscykgPT4ge1xuICBjb25zdCB7XG4gICAgcGFyc2VDbGFzc05hbWUsXG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9ID0gY29uZmlnVXRpbHM7XG4gIC8qKlxuICAgKiBTZXQgb2YgY2xhc3NHcm91cElkcyBpbiBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKiBge2ltcG9ydGFudE1vZGlmaWVyfXt2YXJpYW50TW9kaWZpZXJzfXtjbGFzc0dyb3VwSWR9YFxuICAgKiBAZXhhbXBsZSAnZmxvYXQnXG4gICAqIEBleGFtcGxlICdob3Zlcjpmb2N1czpiZy1jb2xvcidcbiAgICogQGV4YW1wbGUgJ21kOiFwcidcbiAgICovXG4gIGNvbnN0IGNsYXNzR3JvdXBzSW5Db25mbGljdCA9IFtdO1xuICBjb25zdCBjbGFzc05hbWVzID0gY2xhc3NMaXN0LnRyaW0oKS5zcGxpdChTUExJVF9DTEFTU0VTX1JFR0VYKTtcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBmb3IgKGxldCBpbmRleCA9IGNsYXNzTmFtZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGNvbnN0IG9yaWdpbmFsQ2xhc3NOYW1lID0gY2xhc3NOYW1lc1tpbmRleF07XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBwYXJzZUNsYXNzTmFtZShvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGhhc1Bvc3RmaXhNb2RpZmllciA9IEJvb2xlYW4obWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbik7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChoYXNQb3N0Zml4TW9kaWZpZXIgPyBiYXNlQ2xhc3NOYW1lLnN1YnN0cmluZygwLCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSA6IGJhc2VDbGFzc05hbWUpO1xuICAgIGlmICghY2xhc3NHcm91cElkKSB7XG4gICAgICBpZiAoIWhhc1Bvc3RmaXhNb2RpZmllcikge1xuICAgICAgICAvLyBOb3QgYSBUYWlsd2luZCBjbGFzc1xuICAgICAgICByZXN1bHQgPSBvcmlnaW5hbENsYXNzTmFtZSArIChyZXN1bHQubGVuZ3RoID4gMCA/ICcgJyArIHJlc3VsdCA6IHJlc3VsdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGJhc2VDbGFzc05hbWUpO1xuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcbiAgICAgICAgLy8gTm90IGEgVGFpbHdpbmQgY2xhc3NcbiAgICAgICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllciA9IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YXJpYW50TW9kaWZpZXIgPSBzb3J0TW9kaWZpZXJzKG1vZGlmaWVycykuam9pbignOicpO1xuICAgIGNvbnN0IG1vZGlmaWVySWQgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IHZhcmlhbnRNb2RpZmllciArIElNUE9SVEFOVF9NT0RJRklFUiA6IHZhcmlhbnRNb2RpZmllcjtcbiAgICBjb25zdCBjbGFzc0lkID0gbW9kaWZpZXJJZCArIGNsYXNzR3JvdXBJZDtcbiAgICBpZiAoY2xhc3NHcm91cHNJbkNvbmZsaWN0LmluY2x1ZGVzKGNsYXNzSWQpKSB7XG4gICAgICAvLyBUYWlsd2luZCBjbGFzcyBvbWl0dGVkIGR1ZSB0byBjb25mbGljdFxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNsYXNzR3JvdXBzSW5Db25mbGljdC5wdXNoKGNsYXNzSWQpO1xuICAgIGNvbnN0IGNvbmZsaWN0R3JvdXBzID0gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZsaWN0R3JvdXBzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBncm91cCA9IGNvbmZsaWN0R3JvdXBzW2ldO1xuICAgICAgY2xhc3NHcm91cHNJbkNvbmZsaWN0LnB1c2gobW9kaWZpZXJJZCArIGdyb3VwKTtcbiAgICB9XG4gICAgLy8gVGFpbHdpbmQgY2xhc3Mgbm90IGluIGNvbmZsaWN0XG4gICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cbiAqXG4gKiBTcGVjaWZpY2FsbHk6XG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcbiAqIC0gVHlwZVNjcmlwdCB0eXBlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9jbHN4LmQudHNcbiAqXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKi9cbmZ1bmN0aW9uIHR3Sm9pbigpIHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IGFyZ3VtZW50O1xuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICB3aGlsZSAoaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgaWYgKGFyZ3VtZW50ID0gYXJndW1lbnRzW2luZGV4KytdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuY29uc3QgdG9WYWx1ZSA9IG1peCA9PiB7XG4gIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBtaXg7XG4gIH1cbiAgbGV0IHJlc29sdmVkVmFsdWU7XG4gIGxldCBzdHJpbmcgPSAnJztcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBtaXgubGVuZ3RoOyBrKyspIHtcbiAgICBpZiAobWl4W2tdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUobWl4W2tdKSkge1xuICAgICAgICBzdHJpbmcgJiYgKHN0cmluZyArPSAnICcpO1xuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cmluZztcbn07XG5mdW5jdGlvbiBjcmVhdGVUYWlsd2luZE1lcmdlKGNyZWF0ZUNvbmZpZ0ZpcnN0LCAuLi5jcmVhdGVDb25maWdSZXN0KSB7XG4gIGxldCBjb25maWdVdGlscztcbiAgbGV0IGNhY2hlR2V0O1xuICBsZXQgY2FjaGVTZXQ7XG4gIGxldCBmdW5jdGlvblRvQ2FsbCA9IGluaXRUYWlsd2luZE1lcmdlO1xuICBmdW5jdGlvbiBpbml0VGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjb25maWcgPSBjcmVhdGVDb25maWdSZXN0LnJlZHVjZSgocHJldmlvdXNDb25maWcsIGNyZWF0ZUNvbmZpZ0N1cnJlbnQpID0+IGNyZWF0ZUNvbmZpZ0N1cnJlbnQocHJldmlvdXNDb25maWcpLCBjcmVhdGVDb25maWdGaXJzdCgpKTtcbiAgICBjb25maWdVdGlscyA9IGNyZWF0ZUNvbmZpZ1V0aWxzKGNvbmZpZyk7XG4gICAgY2FjaGVHZXQgPSBjb25maWdVdGlscy5jYWNoZS5nZXQ7XG4gICAgY2FjaGVTZXQgPSBjb25maWdVdGlscy5jYWNoZS5zZXQ7XG4gICAgZnVuY3Rpb25Ub0NhbGwgPSB0YWlsd2luZE1lcmdlO1xuICAgIHJldHVybiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCk7XG4gIH1cbiAgZnVuY3Rpb24gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZUdldChjbGFzc0xpc3QpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpO1xuICAgIGNhY2hlU2V0KGNsYXNzTGlzdCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBjYWxsVGFpbHdpbmRNZXJnZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NhbGwodHdKb2luLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuY29uc3QgZnJvbVRoZW1lID0ga2V5ID0+IHtcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xuICB0aGVtZUdldHRlci5pc1RoZW1lR2V0dGVyID0gdHJ1ZTtcbiAgcmV0dXJuIHRoZW1lR2V0dGVyO1xufTtcbmNvbnN0IGFyYml0cmFyeVZhbHVlUmVnZXggPSAvXlxcWyg/OihbYS16LV0rKTopPyguKylcXF0kL2k7XG5jb25zdCBmcmFjdGlvblJlZ2V4ID0gL15cXGQrXFwvXFxkKyQvO1xuY29uc3Qgc3RyaW5nTGVuZ3RocyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsncHgnLCAnZnVsbCcsICdzY3JlZW4nXSk7XG5jb25zdCB0c2hpcnRVbml0UmVnZXggPSAvXihcXGQrKFxcLlxcZCspPyk/KHhzfHNtfG1kfGxnfHhsKSQvO1xuY29uc3QgbGVuZ3RoVW5pdFJlZ2V4ID0gL1xcZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxcYihjYWxjfG1pbnxtYXh8Y2xhbXApXFwoLitcXCl8XjAkLztcbmNvbnN0IGNvbG9yRnVuY3Rpb25SZWdleCA9IC9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvO1xuLy8gU2hhZG93IGFsd2F5cyBiZWdpbnMgd2l0aCB4IGFuZCB5IG9mZnNldCBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZSBvcHRpb25hbGx5IHByZXBlbmRlZCBieSBpbnNldFxuY29uc3Qgc2hhZG93UmVnZXggPSAvXihpbnNldF8pPy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApXy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApLztcbmNvbnN0IGltYWdlUmVnZXggPSAvXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC87XG5jb25zdCBpc0xlbmd0aCA9IHZhbHVlID0+IGlzTnVtYmVyKHZhbHVlKSB8fCBzdHJpbmdMZW5ndGhzLmhhcyh2YWx1ZSkgfHwgZnJhY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5TGVuZ3RoID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ2xlbmd0aCcsIGlzTGVuZ3RoT25seSk7XG5jb25zdCBpc051bWJlciA9IHZhbHVlID0+IEJvb2xlYW4odmFsdWUpICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG5jb25zdCBpc0FyYml0cmFyeU51bWJlciA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdudW1iZXInLCBpc051bWJlcik7XG5jb25zdCBpc0ludGVnZXIgPSB2YWx1ZSA9PiBCb29sZWFuKHZhbHVlKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpO1xuY29uc3QgaXNQZXJjZW50ID0gdmFsdWUgPT4gdmFsdWUuZW5kc1dpdGgoJyUnKSAmJiBpc051bWJlcih2YWx1ZS5zbGljZSgwLCAtMSkpO1xuY29uc3QgaXNBcmJpdHJhcnlWYWx1ZSA9IHZhbHVlID0+IGFyYml0cmFyeVZhbHVlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc1RzaGlydFNpemUgPSB2YWx1ZSA9PiB0c2hpcnRVbml0UmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlTaXplID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgc2l6ZUxhYmVscywgaXNOZXZlcik7XG5jb25zdCBpc0FyYml0cmFyeVBvc2l0aW9uID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ3Bvc2l0aW9uJywgaXNOZXZlcik7XG5jb25zdCBpbWFnZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnaW1hZ2UnLCAndXJsJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlJbWFnZSA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGltYWdlTGFiZWxzLCBpc0ltYWdlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5U2hhZG93ID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJycsIGlzU2hhZG93KTtcbmNvbnN0IGlzQW55ID0gKCkgPT4gdHJ1ZTtcbmNvbnN0IGdldElzQXJiaXRyYXJ5VmFsdWUgPSAodmFsdWUsIGxhYmVsLCB0ZXN0VmFsdWUpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXJiaXRyYXJ5VmFsdWVSZWdleC5leGVjKHZhbHVlKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHRbMV0pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnID8gcmVzdWx0WzFdID09PSBsYWJlbCA6IGxhYmVsLmhhcyhyZXN1bHRbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGVzdFZhbHVlKHJlc3VsdFsyXSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbmNvbnN0IGlzTGVuZ3RoT25seSA9IHZhbHVlID0+XG4vLyBgY29sb3JGdW5jdGlvblJlZ2V4YCBjaGVjayBpcyBuZWNlc3NhcnkgYmVjYXVzZSBjb2xvciBmdW5jdGlvbnMgY2FuIGhhdmUgcGVyY2VudGFnZXMgaW4gdGhlbSB3aGljaCB3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjbGFzc2lmaWVkIGFzIGxlbmd0aHMuXG4vLyBGb3IgZXhhbXBsZSwgYGhzbCgwIDAlIDAlKWAgd291bGQgYmUgY2xhc3NpZmllZCBhcyBhIGxlbmd0aCB3aXRob3V0IHRoaXMgY2hlY2suXG4vLyBJIGNvdWxkIGFsc28gdXNlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIGluIGBsZW5ndGhVbml0UmVnZXhgIGJ1dCB0aGF0IGlzbid0IHN1cHBvcnRlZCB3aWRlbHkgZW5vdWdoLlxubGVuZ3RoVW5pdFJlZ2V4LnRlc3QodmFsdWUpICYmICFjb2xvckZ1bmN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc05ldmVyID0gKCkgPT4gZmFsc2U7XG5jb25zdCBpc1NoYWRvdyA9IHZhbHVlID0+IHNoYWRvd1JlZ2V4LnRlc3QodmFsdWUpO1xuY29uc3QgaXNJbWFnZSA9IHZhbHVlID0+IGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCB2YWxpZGF0b3JzID0gLyojX19QVVJFX18qL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgaXNBbnksXG4gIGlzQXJiaXRyYXJ5SW1hZ2UsXG4gIGlzQXJiaXRyYXJ5TGVuZ3RoLFxuICBpc0FyYml0cmFyeU51bWJlcixcbiAgaXNBcmJpdHJhcnlQb3NpdGlvbixcbiAgaXNBcmJpdHJhcnlTaGFkb3csXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcbiAgaXNBcmJpdHJhcnlWYWx1ZSxcbiAgaXNJbnRlZ2VyLFxuICBpc0xlbmd0aCxcbiAgaXNOdW1iZXIsXG4gIGlzUGVyY2VudCxcbiAgaXNUc2hpcnRTaXplXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcbiAgdmFsdWU6ICdNb2R1bGUnXG59KTtcbmNvbnN0IGdldERlZmF1bHRDb25maWcgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbG9ycyA9IGZyb21UaGVtZSgnY29sb3JzJyk7XG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcbiAgY29uc3QgYmx1ciA9IGZyb21UaGVtZSgnYmx1cicpO1xuICBjb25zdCBicmlnaHRuZXNzID0gZnJvbVRoZW1lKCdicmlnaHRuZXNzJyk7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xuICBjb25zdCBib3JkZXJSYWRpdXMgPSBmcm9tVGhlbWUoJ2JvcmRlclJhZGl1cycpO1xuICBjb25zdCBib3JkZXJTcGFjaW5nID0gZnJvbVRoZW1lKCdib3JkZXJTcGFjaW5nJyk7XG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xuICBjb25zdCBjb250cmFzdCA9IGZyb21UaGVtZSgnY29udHJhc3QnKTtcbiAgY29uc3QgZ3JheXNjYWxlID0gZnJvbVRoZW1lKCdncmF5c2NhbGUnKTtcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcbiAgY29uc3QgaW52ZXJ0ID0gZnJvbVRoZW1lKCdpbnZlcnQnKTtcbiAgY29uc3QgZ2FwID0gZnJvbVRoZW1lKCdnYXAnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zJyk7XG4gIGNvbnN0IGluc2V0ID0gZnJvbVRoZW1lKCdpbnNldCcpO1xuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xuICBjb25zdCBvcGFjaXR5ID0gZnJvbVRoZW1lKCdvcGFjaXR5Jyk7XG4gIGNvbnN0IHBhZGRpbmcgPSBmcm9tVGhlbWUoJ3BhZGRpbmcnKTtcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XG4gIGNvbnN0IHNjYWxlID0gZnJvbVRoZW1lKCdzY2FsZScpO1xuICBjb25zdCBzZXBpYSA9IGZyb21UaGVtZSgnc2VwaWEnKTtcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xuICBjb25zdCBzcGFjZSA9IGZyb21UaGVtZSgnc3BhY2UnKTtcbiAgY29uc3QgdHJhbnNsYXRlID0gZnJvbVRoZW1lKCd0cmFuc2xhdGUnKTtcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0T3ZlcmZsb3cgPSAoKSA9PiBbJ2F1dG8nLCAnaGlkZGVuJywgJ2NsaXAnLCAndmlzaWJsZScsICdzY3JvbGwnXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkgPSAoKSA9PiBbJycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF07XG4gIGNvbnN0IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xuICBjb25zdCBnZXRMaW5lU3R5bGVzID0gKCkgPT4gWydzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScsICdub25lJ107XG4gIGNvbnN0IGdldEJsZW5kTW9kZXMgPSAoKSA9PiBbJ25vcm1hbCcsICdtdWx0aXBseScsICdzY3JlZW4nLCAnb3ZlcmxheScsICdkYXJrZW4nLCAnbGlnaHRlbicsICdjb2xvci1kb2RnZScsICdjb2xvci1idXJuJywgJ2hhcmQtbGlnaHQnLCAnc29mdC1saWdodCcsICdkaWZmZXJlbmNlJywgJ2V4Y2x1c2lvbicsICdodWUnLCAnc2F0dXJhdGlvbicsICdjb2xvcicsICdsdW1pbm9zaXR5J107XG4gIGNvbnN0IGdldEFsaWduID0gKCkgPT4gWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2JldHdlZW4nLCAnYXJvdW5kJywgJ2V2ZW5seScsICdzdHJldGNoJ107XG4gIGNvbnN0IGdldFplcm9BbmRFbXB0eSA9ICgpID0+IFsnJywgJzAnLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgY29uc3QgZ2V0QnJlYWtzID0gKCkgPT4gWydhdXRvJywgJ2F2b2lkJywgJ2FsbCcsICdhdm9pZC1wYWdlJywgJ3BhZ2UnLCAnbGVmdCcsICdyaWdodCcsICdjb2x1bW4nXTtcbiAgY29uc3QgZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5ID0gKCkgPT4gW2lzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgcmV0dXJuIHtcbiAgICBjYWNoZVNpemU6IDUwMCxcbiAgICBzZXBhcmF0b3I6ICc6JyxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzOiBbaXNBbnldLFxuICAgICAgc3BhY2luZzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBibHVyOiBbJ25vbmUnLCAnJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeVZhbHVlXSxcbiAgICAgIGJyaWdodG5lc3M6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyQ29sb3I6IFtjb2xvcnNdLFxuICAgICAgYm9yZGVyUmFkaXVzOiBbJ25vbmUnLCAnJywgJ2Z1bGwnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYm9yZGVyU3BhY2luZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGJvcmRlcldpZHRoOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGNvbnRyYXN0OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGdyYXlzY2FsZTogZ2V0WmVyb0FuZEVtcHR5KCksXG4gICAgICBodWVSb3RhdGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgaW52ZXJ0OiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGdhcDogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wczogW2NvbG9yc10sXG4gICAgICBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uczogW2lzUGVyY2VudCwgaXNBcmJpdHJhcnlMZW5ndGhdLFxuICAgICAgaW5zZXQ6IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgbWFyZ2luOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcbiAgICAgIG9wYWNpdHk6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgcGFkZGluZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHNhdHVyYXRlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNjYWxlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNlcGlhOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIHNrZXc6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgc3BhY2U6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXG4gICAgICB0cmFuc2xhdGU6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICB9LFxuICAgIGNsYXNzR3JvdXBzOiB7XG4gICAgICAvLyBMYXlvdXRcbiAgICAgIC8qKlxuICAgICAgICogQXNwZWN0IFJhdGlvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXNwZWN0LXJhdGlvXG4gICAgICAgKi9cbiAgICAgIGFzcGVjdDogW3tcbiAgICAgICAgYXNwZWN0OiBbJ2F1dG8nLCAnc3F1YXJlJywgJ3ZpZGVvJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250YWluZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250YWluZXJcbiAgICAgICAqL1xuICAgICAgY29udGFpbmVyOiBbJ2NvbnRhaW5lciddLFxuICAgICAgLyoqXG4gICAgICAgKiBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29sdW1uc1xuICAgICAgICovXG4gICAgICBjb2x1bW5zOiBbe1xuICAgICAgICBjb2x1bW5zOiBbaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEFmdGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstYWZ0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWFmdGVyJzogW3tcbiAgICAgICAgJ2JyZWFrLWFmdGVyJzogZ2V0QnJlYWtzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmVhayBCZWZvcmVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1iZWZvcmVcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWJlZm9yZSc6IFt7XG4gICAgICAgICdicmVhay1iZWZvcmUnOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEluc2lkZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWluc2lkZVxuICAgICAgICovXG4gICAgICAnYnJlYWstaW5zaWRlJzogW3tcbiAgICAgICAgJ2JyZWFrLWluc2lkZSc6IFsnYXV0bycsICdhdm9pZCcsICdhdm9pZC1wYWdlJywgJ2F2b2lkLWNvbHVtbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IERlY29yYXRpb24gQnJlYWtcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtZGVjb3JhdGlvbi1icmVha1xuICAgICAgICovXG4gICAgICAnYm94LWRlY29yYXRpb24nOiBbe1xuICAgICAgICAnYm94LWRlY29yYXRpb24nOiBbJ3NsaWNlJywgJ2Nsb25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2l6aW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNpemluZ1xuICAgICAgICovXG4gICAgICBib3g6IFt7XG4gICAgICAgIGJveDogWydib3JkZXInLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGlzcGxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Rpc3BsYXlcbiAgICAgICAqL1xuICAgICAgZGlzcGxheTogWydibG9jaycsICdpbmxpbmUtYmxvY2snLCAnaW5saW5lJywgJ2ZsZXgnLCAnaW5saW5lLWZsZXgnLCAndGFibGUnLCAnaW5saW5lLXRhYmxlJywgJ3RhYmxlLWNhcHRpb24nLCAndGFibGUtY2VsbCcsICd0YWJsZS1jb2x1bW4nLCAndGFibGUtY29sdW1uLWdyb3VwJywgJ3RhYmxlLWZvb3Rlci1ncm91cCcsICd0YWJsZS1oZWFkZXItZ3JvdXAnLCAndGFibGUtcm93LWdyb3VwJywgJ3RhYmxlLXJvdycsICdmbG93LXJvb3QnLCAnZ3JpZCcsICdpbmxpbmUtZ3JpZCcsICdjb250ZW50cycsICdsaXN0LWl0ZW0nLCAnaGlkZGVuJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZsb2F0c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Zsb2F0XG4gICAgICAgKi9cbiAgICAgIGZsb2F0OiBbe1xuICAgICAgICBmbG9hdDogWydyaWdodCcsICdsZWZ0JywgJ25vbmUnLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDbGVhclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NsZWFyXG4gICAgICAgKi9cbiAgICAgIGNsZWFyOiBbe1xuICAgICAgICBjbGVhcjogWydsZWZ0JywgJ3JpZ2h0JywgJ2JvdGgnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIElzb2xhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2lzb2xhdGlvblxuICAgICAgICovXG4gICAgICBpc29sYXRpb246IFsnaXNvbGF0ZScsICdpc29sYXRpb24tYXV0byddLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgRml0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb2JqZWN0LWZpdFxuICAgICAgICovXG4gICAgICAnb2JqZWN0LWZpdCc6IFt7XG4gICAgICAgIG9iamVjdDogWydjb250YWluJywgJ2NvdmVyJywgJ2ZpbGwnLCAnbm9uZScsICdzY2FsZS1kb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ29iamVjdC1wb3NpdGlvbic6IFt7XG4gICAgICAgIG9iamVjdDogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgb3ZlcmZsb3c6IFt7XG4gICAgICAgIG92ZXJmbG93OiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy14JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXgnOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy15JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXknOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgb3ZlcnNjcm9sbDogW3tcbiAgICAgICAgb3ZlcnNjcm9sbDogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC14JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteCc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJzY3JvbGwgQmVoYXZpb3IgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ292ZXJzY3JvbGwteSc6IFt7XG4gICAgICAgICdvdmVyc2Nyb2xsLXknOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Bvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgIHBvc2l0aW9uOiBbJ3N0YXRpYycsICdmaXhlZCcsICdhYnNvbHV0ZScsICdyZWxhdGl2ZScsICdzdGlja3knXSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gUmlnaHQgLyBCb3R0b20gLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGluc2V0OiBbe1xuICAgICAgICBpbnNldDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0IC8gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteCc6IFt7XG4gICAgICAgICdpbnNldC14JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcCAvIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteSc6IFt7XG4gICAgICAgICdpbnNldC15JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHN0YXJ0OiBbe1xuICAgICAgICBzdGFydDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBlbmQ6IFt7XG4gICAgICAgIGVuZDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICB0b3A6IFt7XG4gICAgICAgIHRvcDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHJpZ2h0OiBbe1xuICAgICAgICByaWdodDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBib3R0b206IFt7XG4gICAgICAgIGJvdHRvbTogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgbGVmdDogW3tcbiAgICAgICAgbGVmdDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFZpc2liaWxpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92aXNpYmlsaXR5XG4gICAgICAgKi9cbiAgICAgIHZpc2liaWxpdHk6IFsndmlzaWJsZScsICdpbnZpc2libGUnLCAnY29sbGFwc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogWi1JbmRleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3otaW5kZXhcbiAgICAgICAqL1xuICAgICAgejogW3tcbiAgICAgICAgejogWydhdXRvJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBGbGV4Ym94IGFuZCBHcmlkXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggQmFzaXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWJhc2lzXG4gICAgICAgKi9cbiAgICAgIGJhc2lzOiBbe1xuICAgICAgICBiYXNpczogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IERpcmVjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZGlyZWN0aW9uXG4gICAgICAgKi9cbiAgICAgICdmbGV4LWRpcmVjdGlvbic6IFt7XG4gICAgICAgIGZsZXg6IFsncm93JywgJ3Jvdy1yZXZlcnNlJywgJ2NvbCcsICdjb2wtcmV2ZXJzZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC13cmFwXG4gICAgICAgKi9cbiAgICAgICdmbGV4LXdyYXAnOiBbe1xuICAgICAgICBmbGV4OiBbJ3dyYXAnLCAnd3JhcC1yZXZlcnNlJywgJ25vd3JhcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXhcbiAgICAgICAqL1xuICAgICAgZmxleDogW3tcbiAgICAgICAgZmxleDogWycxJywgJ2F1dG8nLCAnaW5pdGlhbCcsICdub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IEdyb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWdyb3dcbiAgICAgICAqL1xuICAgICAgZ3JvdzogW3tcbiAgICAgICAgZ3JvdzogZ2V0WmVyb0FuZEVtcHR5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFNocmlua1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtc2hyaW5rXG4gICAgICAgKi9cbiAgICAgIHNocmluazogW3tcbiAgICAgICAgc2hyaW5rOiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9yZGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3JkZXJcbiAgICAgICAqL1xuICAgICAgb3JkZXI6IFt7XG4gICAgICAgIG9yZGVyOiBbJ2ZpcnN0JywgJ2xhc3QnLCAnbm9uZScsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtY29scyc6IFt7XG4gICAgICAgICdncmlkLWNvbHMnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWNvbHVtblxuICAgICAgICovXG4gICAgICAnY29sLXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIGNvbDogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFsnZnVsbCcsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQnOiBbe1xuICAgICAgICAnY29sLXN0YXJ0JzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtZW5kJzogW3tcbiAgICAgICAgJ2NvbC1lbmQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBUZW1wbGF0ZSBSb3dzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC10ZW1wbGF0ZS1yb3dzXG4gICAgICAgKi9cbiAgICAgICdncmlkLXJvd3MnOiBbe1xuICAgICAgICAnZ3JpZC1yb3dzJzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0IC8gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydC1lbmQnOiBbe1xuICAgICAgICByb3c6IFsnYXV0bycsIHtcbiAgICAgICAgICBzcGFuOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydCc6IFt7XG4gICAgICAgICdyb3ctc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1lbmQnOiBbe1xuICAgICAgICAncm93LWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gRmxvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1mbG93XG4gICAgICAgKi9cbiAgICAgICdncmlkLWZsb3cnOiBbe1xuICAgICAgICAnZ3JpZC1mbG93JzogWydyb3cnLCAnY29sJywgJ2RlbnNlJywgJ3Jvdy1kZW5zZScsICdjb2wtZGVuc2UnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2F1dG8tY29scyc6IFt7XG4gICAgICAgICdhdXRvLWNvbHMnOiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmcicsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tcm93c1xuICAgICAgICovXG4gICAgICAnYXV0by1yb3dzJzogW3tcbiAgICAgICAgJ2F1dG8tcm93cyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgZ2FwOiBbe1xuICAgICAgICBnYXA6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR2FwIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgJ2dhcC14JzogW3tcbiAgICAgICAgJ2dhcC14JzogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXknOiBbe1xuICAgICAgICAnZ2FwLXknOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktY29udGVudFxuICAgICAgICovXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogW3tcbiAgICAgICAganVzdGlmeTogWydub3JtYWwnLCAuLi5nZXRBbGlnbigpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWl0ZW1zJzogW3tcbiAgICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBTZWxmXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LXNlbGYnOiBbe1xuICAgICAgICAnanVzdGlmeS1zZWxmJzogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLWNvbnRlbnQnOiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1pdGVtc1xuICAgICAgICovXG4gICAgICAnYWxpZ24taXRlbXMnOiBbe1xuICAgICAgICBpdGVtczogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFsaWduIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1zZWxmXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1zZWxmJzogW3tcbiAgICAgICAgc2VsZjogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCcsICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWNvbnRlbnQnOiBbe1xuICAgICAgICAncGxhY2UtY29udGVudCc6IFsuLi5nZXRBbGlnbigpLCAnYmFzZWxpbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIEl0ZW1zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWl0ZW1zJzogW3tcbiAgICAgICAgJ3BsYWNlLWl0ZW1zJzogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdwbGFjZS1zZWxmJzogW3tcbiAgICAgICAgJ3BsYWNlLXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLy8gU3BhY2luZ1xuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwOiBbe1xuICAgICAgICBwOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB4OiBbe1xuICAgICAgICBweDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBweTogW3tcbiAgICAgICAgcHk6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBzOiBbe1xuICAgICAgICBwczogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBlOiBbe1xuICAgICAgICBwZTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB0OiBbe1xuICAgICAgICBwdDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHI6IFt7XG4gICAgICAgIHByOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGI6IFt7XG4gICAgICAgIHBiOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBsOiBbe1xuICAgICAgICBwbDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG06IFt7XG4gICAgICAgIG06IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXg6IFt7XG4gICAgICAgIG14OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG15OiBbe1xuICAgICAgICBteTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXM6IFt7XG4gICAgICAgIG1zOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWU6IFt7XG4gICAgICAgIG1lOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXQ6IFt7XG4gICAgICAgIG10OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtcjogW3tcbiAgICAgICAgbXI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtYjogW3tcbiAgICAgICAgbWI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWw6IFt7XG4gICAgICAgIG1sOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14JzogW3tcbiAgICAgICAgJ3NwYWNlLXgnOiBbc3BhY2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteC1yZXZlcnNlJzogWydzcGFjZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXknOiBbe1xuICAgICAgICAnc3BhY2UteSc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFkgUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS15LXJldmVyc2UnOiBbJ3NwYWNlLXktcmV2ZXJzZSddLFxuICAgICAgLy8gU2l6aW5nXG4gICAgICAvKipcbiAgICAgICAqIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lkdGhcbiAgICAgICAqL1xuICAgICAgdzogW3tcbiAgICAgICAgdzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3N2dycsICdsdncnLCAnZHZ3JywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaW4tV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4td2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21pbi13JzogW3tcbiAgICAgICAgJ21pbi13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LVdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdtYXgtdyc6IFt7XG4gICAgICAgICdtYXgtdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbm9uZScsICdmdWxsJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3Byb3NlJywge1xuICAgICAgICAgIHNjcmVlbjogW2lzVHNoaXJ0U2l6ZV1cbiAgICAgICAgfSwgaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2hlaWdodFxuICAgICAgICovXG4gICAgICBoOiBbe1xuICAgICAgICBoOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4taGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtaW4taCc6IFt7XG4gICAgICAgICdtaW4taCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1heC1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtYXgtaCc6IFt7XG4gICAgICAgICdtYXgtaCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zaXplXG4gICAgICAgKi9cbiAgICAgIHNpemU6IFt7XG4gICAgICAgIHNpemU6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8vIFR5cG9ncmFwaHlcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zaXplXG4gICAgICAgKi9cbiAgICAgICdmb250LXNpemUnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2Jhc2UnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU21vb3RoaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zbW9vdGhpbmdcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc21vb3RoaW5nJzogWydhbnRpYWxpYXNlZCcsICdzdWJwaXhlbC1hbnRpYWxpYXNlZCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zdHlsZVxuICAgICAgICovXG4gICAgICAnZm9udC1zdHlsZSc6IFsnaXRhbGljJywgJ25vdC1pdGFsaWMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBXZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXdlaWdodFxuICAgICAgICovXG4gICAgICAnZm9udC13ZWlnaHQnOiBbe1xuICAgICAgICBmb250OiBbJ3RoaW4nLCAnZXh0cmFsaWdodCcsICdsaWdodCcsICdub3JtYWwnLCAnbWVkaXVtJywgJ3NlbWlib2xkJywgJ2JvbGQnLCAnZXh0cmFib2xkJywgJ2JsYWNrJywgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBGYW1pbHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LWZhbWlseVxuICAgICAgICovXG4gICAgICAnZm9udC1mYW1pbHknOiBbe1xuICAgICAgICBmb250OiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnbm9ybWFsLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW9yZGluYWwnOiBbJ29yZGluYWwnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnc2xhc2hlZC16ZXJvJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2xpbmluZy1udW1zJywgJ29sZHN0eWxlLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ3Byb3BvcnRpb25hbC1udW1zJywgJ3RhYnVsYXItbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2RpYWdvbmFsLWZyYWN0aW9ucycsICdzdGFja2VkLWZyYWN0aW9ucyddLFxuICAgICAgLyoqXG4gICAgICAgKiBMZXR0ZXIgU3BhY2luZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xldHRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgIHRyYWNraW5nOiBbe1xuICAgICAgICB0cmFja2luZzogWyd0aWdodGVyJywgJ3RpZ2h0JywgJ25vcm1hbCcsICd3aWRlJywgJ3dpZGVyJywgJ3dpZGVzdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBDbGFtcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtY2xhbXBcbiAgICAgICAqL1xuICAgICAgJ2xpbmUtY2xhbXAnOiBbe1xuICAgICAgICAnbGluZS1jbGFtcCc6IFsnbm9uZScsIGlzTnVtYmVyLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaW5lIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGxlYWRpbmc6IFt7XG4gICAgICAgIGxlYWRpbmc6IFsnbm9uZScsICd0aWdodCcsICdzbnVnJywgJ25vcm1hbCcsICdyZWxheGVkJywgJ2xvb3NlJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBJbWFnZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtaW1hZ2VcbiAgICAgICAqL1xuICAgICAgJ2xpc3QtaW1hZ2UnOiBbe1xuICAgICAgICAnbGlzdC1pbWFnZSc6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS10eXBlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LXN0eWxlLXR5cGUnOiBbe1xuICAgICAgICBsaXN0OiBbJ25vbmUnLCAnZGlzYycsICdkZWNpbWFsJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaXN0IFN0eWxlIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS1wb3NpdGlvbic6IFt7XG4gICAgICAgIGxpc3Q6IFsnaW5zaWRlJywgJ291dHNpZGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIENvbG9yXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2Vob2xkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLWNvbG9yJzogW3tcbiAgICAgICAgcGxhY2Vob2xkZXI6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2Vob2xkZXIgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAncGxhY2Vob2xkZXItb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1hbGlnblxuICAgICAgICovXG4gICAgICAndGV4dC1hbGlnbm1lbnQnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0JywgJ2p1c3RpZnknLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1jb2xvcic6IFt7XG4gICAgICAgIHRleHQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW9wYWNpdHknOiBbe1xuICAgICAgICAndGV4dC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiBbJ3VuZGVybGluZScsICdvdmVybGluZScsICdsaW5lLXRocm91Z2gnLCAnbm8tdW5kZXJsaW5lJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBTdHlsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1zdHlsZVxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXN0eWxlJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ3dhdnknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBUaGlja25lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWydhdXRvJywgJ2Zyb20tZm9udCcsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFVuZGVybGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXVuZGVybGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAndW5kZXJsaW5lLW9mZnNldCc6IFsnYXV0bycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXRyYW5zZm9ybSc6IFsndXBwZXJjYXNlJywgJ2xvd2VyY2FzZScsICdjYXBpdGFsaXplJywgJ25vcm1hbC1jYXNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LW92ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW92ZXJmbG93JzogWyd0cnVuY2F0ZScsICd0ZXh0LWVsbGlwc2lzJywgJ3RleHQtY2xpcCddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ3RleHQtd3JhcCc6IFt7XG4gICAgICAgIHRleHQ6IFsnd3JhcCcsICdub3dyYXAnLCAnYmFsYW5jZScsICdwcmV0dHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgSW5kZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1pbmRlbnRcbiAgICAgICAqL1xuICAgICAgaW5kZW50OiBbe1xuICAgICAgICBpbmRlbnQ6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBWZXJ0aWNhbCBBbGlnbm1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92ZXJ0aWNhbC1hbGlnblxuICAgICAgICovXG4gICAgICAndmVydGljYWwtYWxpZ24nOiBbe1xuICAgICAgICBhbGlnbjogWydiYXNlbGluZScsICd0b3AnLCAnbWlkZGxlJywgJ2JvdHRvbScsICd0ZXh0LXRvcCcsICd0ZXh0LWJvdHRvbScsICdzdWInLCAnc3VwZXInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdoaXRlc3BhY2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aGl0ZXNwYWNlXG4gICAgICAgKi9cbiAgICAgIHdoaXRlc3BhY2U6IFt7XG4gICAgICAgIHdoaXRlc3BhY2U6IFsnbm9ybWFsJywgJ25vd3JhcCcsICdwcmUnLCAncHJlLWxpbmUnLCAncHJlLXdyYXAnLCAnYnJlYWstc3BhY2VzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXb3JkIEJyZWFrXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd29yZC1icmVha1xuICAgICAgICovXG4gICAgICBicmVhazogW3tcbiAgICAgICAgYnJlYWs6IFsnbm9ybWFsJywgJ3dvcmRzJywgJ2FsbCcsICdrZWVwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBIeXBoZW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaHlwaGVuc1xuICAgICAgICovXG4gICAgICBoeXBoZW5zOiBbe1xuICAgICAgICBoeXBoZW5zOiBbJ25vbmUnLCAnbWFudWFsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRlbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50XG4gICAgICAgKi9cbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEJhY2tncm91bmRzXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQXR0YWNobWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtYXR0YWNobWVudFxuICAgICAgICovXG4gICAgICAnYmctYXR0YWNobWVudCc6IFt7XG4gICAgICAgIGJnOiBbJ2ZpeGVkJywgJ2xvY2FsJywgJ3Njcm9sbCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDbGlwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jbGlwXG4gICAgICAgKi9cbiAgICAgICdiZy1jbGlwJzogW3tcbiAgICAgICAgJ2JnLWNsaXAnOiBbJ2JvcmRlcicsICdwYWRkaW5nJywgJ2NvbnRlbnQnLCAndGV4dCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcGFjaXR5XG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdiZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JnLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICdiZy1vcmlnaW4nOiBbe1xuICAgICAgICAnYmctb3JpZ2luJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnYmctcG9zaXRpb24nOiBbe1xuICAgICAgICBiZzogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVBvc2l0aW9uXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgUmVwZWF0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1yZXBlYXRcbiAgICAgICAqL1xuICAgICAgJ2JnLXJlcGVhdCc6IFt7XG4gICAgICAgIGJnOiBbJ25vLXJlcGVhdCcsIHtcbiAgICAgICAgICByZXBlYXQ6IFsnJywgJ3gnLCAneScsICdyb3VuZCcsICdzcGFjZSddXG4gICAgICAgIH1dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1zaXplXG4gICAgICAgKi9cbiAgICAgICdiZy1zaXplJzogW3tcbiAgICAgICAgYmc6IFsnYXV0bycsICdjb3ZlcicsICdjb250YWluJywgaXNBcmJpdHJhcnlTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdiZy1pbWFnZSc6IFt7XG4gICAgICAgIGJnOiBbJ25vbmUnLCB7XG4gICAgICAgICAgJ2dyYWRpZW50LXRvJzogWyd0JywgJ3RyJywgJ3InLCAnYnInLCAnYicsICdibCcsICdsJywgJ3RsJ11cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlJbWFnZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jb2xvclxuICAgICAgICovXG4gICAgICAnYmctY29sb3InOiBbe1xuICAgICAgICBiZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20tcG9zJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEtcG9zJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG8gUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8tcG9zJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20nOiBbe1xuICAgICAgICBmcm9tOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEnOiBbe1xuICAgICAgICB2aWE6IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8nOiBbe1xuICAgICAgICB0bzogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLy8gQm9yZGVyc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICByb3VuZGVkOiBbe1xuICAgICAgICByb3VuZGVkOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXMnOiBbe1xuICAgICAgICAncm91bmRlZC1zJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10JzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtcic6IFt7XG4gICAgICAgICdyb3VuZGVkLXInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1iJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1sJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtbCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtc3MnOiBbe1xuICAgICAgICAncm91bmRlZC1zcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc2UnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lZSc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZXMnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXRsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdGwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10cic6IFt7XG4gICAgICAgICdyb3VuZGVkLXRyJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYnInOiBbe1xuICAgICAgICAncm91bmRlZC1icic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYmwnOiBbe1xuICAgICAgICAncm91bmRlZC1ibCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdyc6IFt7XG4gICAgICAgIGJvcmRlcjogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1lJzogW3tcbiAgICAgICAgJ2JvcmRlci1lJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWInOiBbe1xuICAgICAgICAnYm9yZGVyLWInOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYm9yZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAnYm9yZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zdHlsZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ2hpZGRlbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14JzogW3tcbiAgICAgICAgJ2RpdmlkZS14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14LXJldmVyc2UnOiBbJ2RpdmlkZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15JzogW3tcbiAgICAgICAgJ2RpdmlkZS15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15LXJldmVyc2UnOiBbJ2RpdmlkZS15LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnZGl2aWRlLW9wYWNpdHknOiBbe1xuICAgICAgICAnZGl2aWRlLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1zdHlsZSc6IFt7XG4gICAgICAgIGRpdmlkZTogZ2V0TGluZVN0eWxlcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3InOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXgnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBTXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgRVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWUnOiBbe1xuICAgICAgICAnYm9yZGVyLWUnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItYic6IFt7XG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtY29sb3InOiBbe1xuICAgICAgICBkaXZpZGU6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdXRsaW5lIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1zdHlsZVxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1zdHlsZSc6IFt7XG4gICAgICAgIG91dGxpbmU6IFsnJywgLi4uZ2V0TGluZVN0eWxlcygpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXcnOiBbe1xuICAgICAgICBvdXRsaW5lOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLWNvbG9yJzogW3tcbiAgICAgICAgb3V0bGluZTogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13JzogW3tcbiAgICAgICAgcmluZzogZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoIEluc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13LWluc2V0JzogWydyaW5nLWluc2V0J10sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLWNvbG9yJzogW3tcbiAgICAgICAgcmluZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdyaW5nLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC13JzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC1jb2xvcic6IFt7XG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8vIEVmZmVjdHNcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgc2hhZG93OiBbe1xuICAgICAgICBzaGFkb3c6IFsnJywgJ2lubmVyJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5U2hhZG93XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaGFkb3cgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdzaGFkb3ctY29sb3InOiBbe1xuICAgICAgICBzaGFkb3c6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3BhY2l0eVxuICAgICAgICovXG4gICAgICBvcGFjaXR5OiBbe1xuICAgICAgICBvcGFjaXR5OiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaXggQmxlbmQgTW9kZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21peC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdtaXgtYmxlbmQnOiBbe1xuICAgICAgICAnbWl4LWJsZW5kJzogWy4uLmdldEJsZW5kTW9kZXMoKSwgJ3BsdXMtbGlnaHRlcicsICdwbHVzLWRhcmtlciddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdiZy1ibGVuZCc6IFt7XG4gICAgICAgICdiZy1ibGVuZCc6IGdldEJsZW5kTW9kZXMoKVxuICAgICAgfV0sXG4gICAgICAvLyBGaWx0ZXJzXG4gICAgICAvKipcbiAgICAgICAqIEZpbHRlclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbHRlclxuICAgICAgICovXG4gICAgICBmaWx0ZXI6IFt7XG4gICAgICAgIGZpbHRlcjogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JsdXJcbiAgICAgICAqL1xuICAgICAgYmx1cjogW3tcbiAgICAgICAgYmx1cjogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgYnJpZ2h0bmVzczogW3tcbiAgICAgICAgYnJpZ2h0bmVzczogW2JyaWdodG5lc3NdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ29udHJhc3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250cmFzdFxuICAgICAgICovXG4gICAgICBjb250cmFzdDogW3tcbiAgICAgICAgY29udHJhc3Q6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEcm9wIFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Ryb3Atc2hhZG93XG4gICAgICAgKi9cbiAgICAgICdkcm9wLXNoYWRvdyc6IFt7XG4gICAgICAgICdkcm9wLXNoYWRvdyc6IFsnJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JheXNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JheXNjYWxlXG4gICAgICAgKi9cbiAgICAgIGdyYXlzY2FsZTogW3tcbiAgICAgICAgZ3JheXNjYWxlOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdodWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2h1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ludmVydFxuICAgICAgICovXG4gICAgICBpbnZlcnQ6IFt7XG4gICAgICAgIGludmVydDogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTYXR1cmF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NhdHVyYXRlXG4gICAgICAgKi9cbiAgICAgIHNhdHVyYXRlOiBbe1xuICAgICAgICBzYXR1cmF0ZTogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2VwaWFcbiAgICAgICAqL1xuICAgICAgc2VwaWE6IFt7XG4gICAgICAgIHNlcGlhOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtZmlsdGVyXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtZmlsdGVyJzogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJsdXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJsdXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYmx1cic6IFtibHVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEJyaWdodG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1icmlnaHRuZXNzXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1icmlnaHRuZXNzJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWNvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1odWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWludmVydFxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWludmVydCc6IFtpbnZlcnRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLW9wYWNpdHknOiBbe1xuICAgICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2VwaWFcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3NlcGlhXVxuICAgICAgfV0sXG4gICAgICAvLyBUYWJsZXNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbGxhcHNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbGxhcHNlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sbGFwc2UnOiBbe1xuICAgICAgICBib3JkZXI6IFsnY29sbGFwc2UnLCAnc2VwYXJhdGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3BhY2luZy14JzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXknOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRhYmxlIExheW91dFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RhYmxlLWxheW91dFxuICAgICAgICovXG4gICAgICAndGFibGUtbGF5b3V0JzogW3tcbiAgICAgICAgdGFibGU6IFsnYXV0bycsICdmaXhlZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FwdGlvbiBTaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2FwdGlvbi1zaWRlXG4gICAgICAgKi9cbiAgICAgIGNhcHRpb246IFt7XG4gICAgICAgIGNhcHRpb246IFsndG9wJywgJ2JvdHRvbSddXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zaXRpb25zIGFuZCBBbmltYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogVHJhbmlzaXRpb24gUHJvcGVydHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLXByb3BlcnR5XG4gICAgICAgKi9cbiAgICAgIHRyYW5zaXRpb246IFt7XG4gICAgICAgIHRyYW5zaXRpb246IFsnbm9uZScsICdhbGwnLCAnJywgJ2NvbG9ycycsICdvcGFjaXR5JywgJ3NoYWRvdycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWR1cmF0aW9uXG4gICAgICAgKi9cbiAgICAgIGR1cmF0aW9uOiBbe1xuICAgICAgICBkdXJhdGlvbjogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2l0aW9uIFRpbWluZyBGdW5jdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4gICAgICAgKi9cbiAgICAgIGVhc2U6IFt7XG4gICAgICAgIGVhc2U6IFsnbGluZWFyJywgJ2luJywgJ291dCcsICdpbi1vdXQnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRGVsYXlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWRlbGF5XG4gICAgICAgKi9cbiAgICAgIGRlbGF5OiBbe1xuICAgICAgICBkZWxheTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbmltYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbmltYXRpb25cbiAgICAgICAqL1xuICAgICAgYW5pbWF0ZTogW3tcbiAgICAgICAgYW5pbWF0ZTogWydub25lJywgJ3NwaW4nLCAncGluZycsICdwdWxzZScsICdib3VuY2UnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBUcmFuc2Zvcm1zXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybVxuICAgICAgICovXG4gICAgICB0cmFuc2Zvcm06IFt7XG4gICAgICAgIHRyYW5zZm9ybTogWycnLCAnZ3B1JywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgc2NhbGU6IFt7XG4gICAgICAgIHNjYWxlOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS14JzogW3tcbiAgICAgICAgJ3NjYWxlLXgnOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS15JzogW3tcbiAgICAgICAgJ3NjYWxlLXknOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUm90YXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvcm90YXRlXG4gICAgICAgKi9cbiAgICAgIHJvdGF0ZTogW3tcbiAgICAgICAgcm90YXRlOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zbGF0ZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNsYXRlXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2xhdGUteCc6IFt7XG4gICAgICAgICd0cmFuc2xhdGUteCc6IFt0cmFuc2xhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS15JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS15JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXgnOiBbe1xuICAgICAgICAnc2tldy14JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2tldyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2tld1xuICAgICAgICovXG4gICAgICAnc2tldy15JzogW3tcbiAgICAgICAgJ3NrZXcteSc6IFtza2V3XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybSBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2Zvcm0tb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogW3tcbiAgICAgICAgb3JpZ2luOiBbJ2NlbnRlcicsICd0b3AnLCAndG9wLXJpZ2h0JywgJ3JpZ2h0JywgJ2JvdHRvbS1yaWdodCcsICdib3R0b20nLCAnYm90dG9tLWxlZnQnLCAnbGVmdCcsICd0b3AtbGVmdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEludGVyYWN0aXZpdHlcbiAgICAgIC8qKlxuICAgICAgICogQWNjZW50IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWNjZW50LWNvbG9yXG4gICAgICAgKi9cbiAgICAgIGFjY2VudDogW3tcbiAgICAgICAgYWNjZW50OiBbJ2F1dG8nLCBjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQXBwZWFyYW5jZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FwcGVhcmFuY2VcbiAgICAgICAqL1xuICAgICAgYXBwZWFyYW5jZTogW3tcbiAgICAgICAgYXBwZWFyYW5jZTogWydub25lJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEN1cnNvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1cnNvclxuICAgICAgICovXG4gICAgICBjdXJzb3I6IFt7XG4gICAgICAgIGN1cnNvcjogWydhdXRvJywgJ2RlZmF1bHQnLCAncG9pbnRlcicsICd3YWl0JywgJ3RleHQnLCAnbW92ZScsICdoZWxwJywgJ25vdC1hbGxvd2VkJywgJ25vbmUnLCAnY29udGV4dC1tZW51JywgJ3Byb2dyZXNzJywgJ2NlbGwnLCAnY3Jvc3NoYWlyJywgJ3ZlcnRpY2FsLXRleHQnLCAnYWxpYXMnLCAnY29weScsICduby1kcm9wJywgJ2dyYWInLCAnZ3JhYmJpbmcnLCAnYWxsLXNjcm9sbCcsICdjb2wtcmVzaXplJywgJ3Jvdy1yZXNpemUnLCAnbi1yZXNpemUnLCAnZS1yZXNpemUnLCAncy1yZXNpemUnLCAndy1yZXNpemUnLCAnbmUtcmVzaXplJywgJ253LXJlc2l6ZScsICdzZS1yZXNpemUnLCAnc3ctcmVzaXplJywgJ2V3LXJlc2l6ZScsICducy1yZXNpemUnLCAnbmVzdy1yZXNpemUnLCAnbndzZS1yZXNpemUnLCAnem9vbS1pbicsICd6b29tLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FyZXQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0LWluLXRpbWUtbW9kZSNjYXJldC1jb2xvci11dGlsaXRpZXNcbiAgICAgICAqL1xuICAgICAgJ2NhcmV0LWNvbG9yJzogW3tcbiAgICAgICAgY2FyZXQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUG9pbnRlciBFdmVudHNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wb2ludGVyLWV2ZW50c1xuICAgICAgICovXG4gICAgICAncG9pbnRlci1ldmVudHMnOiBbe1xuICAgICAgICAncG9pbnRlci1ldmVudHMnOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmVzaXplXG4gICAgICAgKi9cbiAgICAgIHJlc2l6ZTogW3tcbiAgICAgICAgcmVzaXplOiBbJ25vbmUnLCAneScsICd4JywgJyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtYmVoYXZpb3InOiBbe1xuICAgICAgICBzY3JvbGw6IFsnYXV0bycsICdzbW9vdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbSc6IFt7XG4gICAgICAgICdzY3JvbGwtbSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXgnOiBbe1xuICAgICAgICAnc2Nyb2xsLW14JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teSc6IFt7XG4gICAgICAgICdzY3JvbGwtbXknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tcyc6IFt7XG4gICAgICAgICdzY3JvbGwtbXMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWUnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1lJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW10JzogW3tcbiAgICAgICAgJ3Njcm9sbC1tdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1yJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tYic6IFt7XG4gICAgICAgICdzY3JvbGwtbWInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1sJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcCc6IFt7XG4gICAgICAgICdzY3JvbGwtcCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHknOiBbe1xuICAgICAgICAnc2Nyb2xsLXB5JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wcyc6IFt7XG4gICAgICAgICdzY3JvbGwtcHMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wZSc6IFt7XG4gICAgICAgICdzY3JvbGwtcGUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wdCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHQnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXByJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBiJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wbCc6IFt7XG4gICAgICAgICdzY3JvbGwtcGwnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFNuYXAgQWxpZ25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1hbGlnblxuICAgICAgICovXG4gICAgICAnc25hcC1hbGlnbic6IFt7XG4gICAgICAgIHNuYXA6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdhbGlnbi1ub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBTdG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtc3RvcFxuICAgICAgICovXG4gICAgICAnc25hcC1zdG9wJzogW3tcbiAgICAgICAgc25hcDogWydub3JtYWwnLCAnYWx3YXlzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtdHlwZVxuICAgICAgICovXG4gICAgICAnc25hcC10eXBlJzogW3tcbiAgICAgICAgc25hcDogWydub25lJywgJ3gnLCAneScsICdib3RoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlIFN0cmljdG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0cmljdG5lc3MnOiBbe1xuICAgICAgICBzbmFwOiBbJ21hbmRhdG9yeScsICdwcm94aW1pdHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICB0b3VjaDogW3tcbiAgICAgICAgdG91Y2g6IFsnYXV0bycsICdub25lJywgJ21hbmlwdWxhdGlvbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXgnOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd4JywgJ2xlZnQnLCAncmlnaHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC15JzogW3tcbiAgICAgICAgJ3RvdWNoLXBhbic6IFsneScsICd1cCcsICdkb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gUGluY2ggWm9vbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoLXBpbmNoLXpvb20nXSxcbiAgICAgIC8qKlxuICAgICAgICogVXNlciBTZWxlY3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2VyLXNlbGVjdFxuICAgICAgICovXG4gICAgICBzZWxlY3Q6IFt7XG4gICAgICAgIHNlbGVjdDogWydub25lJywgJ3RleHQnLCAnYWxsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdpbGwgQ2hhbmdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lsbC1jaGFuZ2VcbiAgICAgICAqL1xuICAgICAgJ3dpbGwtY2hhbmdlJzogW3tcbiAgICAgICAgJ3dpbGwtY2hhbmdlJzogWydhdXRvJywgJ3Njcm9sbCcsICdjb250ZW50cycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBTVkdcbiAgICAgIC8qKlxuICAgICAgICogRmlsbFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbGxcbiAgICAgICAqL1xuICAgICAgZmlsbDogW3tcbiAgICAgICAgZmlsbDogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZS13aWR0aFxuICAgICAgICovXG4gICAgICAnc3Ryb2tlLXcnOiBbe1xuICAgICAgICBzdHJva2U6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGgsIGlzQXJiaXRyYXJ5TnVtYmVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZVxuICAgICAgICovXG4gICAgICBzdHJva2U6IFt7XG4gICAgICAgIHN0cm9rZTogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvLyBBY2Nlc3NpYmlsaXR5XG4gICAgICAvKipcbiAgICAgICAqIFNjcmVlbiBSZWFkZXJzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NyZWVuLXJlYWRlcnNcbiAgICAgICAqL1xuICAgICAgc3I6IFsnc3Itb25seScsICdub3Qtc3Itb25seSddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb3JjZWQgQ29sb3IgQWRqdXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9yY2VkLWNvbG9yLWFkanVzdFxuICAgICAgICovXG4gICAgICAnZm9yY2VkLWNvbG9yLWFkanVzdCc6IFt7XG4gICAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogWydhdXRvJywgJ25vbmUnXVxuICAgICAgfV1cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6IHtcbiAgICAgIG92ZXJmbG93OiBbJ292ZXJmbG93LXgnLCAnb3ZlcmZsb3cteSddLFxuICAgICAgb3ZlcnNjcm9sbDogWydvdmVyc2Nyb2xsLXgnLCAnb3ZlcnNjcm9sbC15J10sXG4gICAgICBpbnNldDogWydpbnNldC14JywgJ2luc2V0LXknLCAnc3RhcnQnLCAnZW5kJywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXgnOiBbJ3JpZ2h0JywgJ2xlZnQnXSxcbiAgICAgICdpbnNldC15JzogWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICBmbGV4OiBbJ2Jhc2lzJywgJ2dyb3cnLCAnc2hyaW5rJ10sXG4gICAgICBnYXA6IFsnZ2FwLXgnLCAnZ2FwLXknXSxcbiAgICAgIHA6IFsncHgnLCAncHknLCAncHMnLCAncGUnLCAncHQnLCAncHInLCAncGInLCAncGwnXSxcbiAgICAgIHB4OiBbJ3ByJywgJ3BsJ10sXG4gICAgICBweTogWydwdCcsICdwYiddLFxuICAgICAgbTogWydteCcsICdteScsICdtcycsICdtZScsICdtdCcsICdtcicsICdtYicsICdtbCddLFxuICAgICAgbXg6IFsnbXInLCAnbWwnXSxcbiAgICAgIG15OiBbJ210JywgJ21iJ10sXG4gICAgICBzaXplOiBbJ3cnLCAnaCddLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddLFxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ2Z2bi1vcmRpbmFsJywgJ2Z2bi1zbGFzaGVkLXplcm8nLCAnZnZuLWZpZ3VyZScsICdmdm4tc3BhY2luZycsICdmdm4tZnJhY3Rpb24nXSxcbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1zbGFzaGVkLXplcm8nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZmlndXJlJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdsaW5lLWNsYW1wJzogWydkaXNwbGF5JywgJ292ZXJmbG93J10sXG4gICAgICByb3VuZGVkOiBbJ3JvdW5kZWQtcycsICdyb3VuZGVkLWUnLCAncm91bmRlZC10JywgJ3JvdW5kZWQtcicsICdyb3VuZGVkLWInLCAncm91bmRlZC1sJywgJ3JvdW5kZWQtc3MnLCAncm91bmRlZC1zZScsICdyb3VuZGVkLWVlJywgJ3JvdW5kZWQtZXMnLCAncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtcyc6IFsncm91bmRlZC1zcycsICdyb3VuZGVkLWVzJ10sXG4gICAgICAncm91bmRlZC1lJzogWydyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnXSxcbiAgICAgICdyb3VuZGVkLXQnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC10ciddLFxuICAgICAgJ3JvdW5kZWQtcic6IFsncm91bmRlZC10cicsICdyb3VuZGVkLWJyJ10sXG4gICAgICAncm91bmRlZC1iJzogWydyb3VuZGVkLWJyJywgJ3JvdW5kZWQtYmwnXSxcbiAgICAgICdyb3VuZGVkLWwnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC1ibCddLFxuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogWydib3JkZXItc3BhY2luZy14JywgJ2JvcmRlci1zcGFjaW5nLXknXSxcbiAgICAgICdib3JkZXItdyc6IFsnYm9yZGVyLXctcycsICdib3JkZXItdy1lJywgJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctcicsICdib3JkZXItdy1iJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy14JzogWydib3JkZXItdy1yJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy15JzogWydib3JkZXItdy10JywgJ2JvcmRlci13LWInXSxcbiAgICAgICdib3JkZXItY29sb3InOiBbJ2JvcmRlci1jb2xvci1zJywgJ2JvcmRlci1jb2xvci1lJywgJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1iJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXknOiBbJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1iJ10sXG4gICAgICAnc2Nyb2xsLW0nOiBbJ3Njcm9sbC1teCcsICdzY3JvbGwtbXknLCAnc2Nyb2xsLW1zJywgJ3Njcm9sbC1tZScsICdzY3JvbGwtbXQnLCAnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tYicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXgnOiBbJ3Njcm9sbC1tcicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXknOiBbJ3Njcm9sbC1tdCcsICdzY3JvbGwtbWInXSxcbiAgICAgICdzY3JvbGwtcCc6IFsnc2Nyb2xsLXB4JywgJ3Njcm9sbC1weScsICdzY3JvbGwtcHMnLCAnc2Nyb2xsLXBlJywgJ3Njcm9sbC1wdCcsICdzY3JvbGwtcHInLCAnc2Nyb2xsLXBiJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weCc6IFsnc2Nyb2xsLXByJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weSc6IFsnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wYiddLFxuICAgICAgdG91Y2g6IFsndG91Y2gteCcsICd0b3VjaC15JywgJ3RvdWNoLXB6J10sXG4gICAgICAndG91Y2gteCc6IFsndG91Y2gnXSxcbiAgICAgICd0b3VjaC15JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaCddXG4gICAgfSxcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnM6IHtcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGJhc2VDb25maWcgQ29uZmlnIHdoZXJlIG90aGVyIGNvbmZpZyB3aWxsIGJlIG1lcmdlZCBpbnRvLiBUaGlzIG9iamVjdCB3aWxsIGJlIG11dGF0ZWQuXG4gKiBAcGFyYW0gY29uZmlnRXh0ZW5zaW9uIFBhcnRpYWwgY29uZmlnIHRvIG1lcmdlIGludG8gdGhlIGBiYXNlQ29uZmlnYC5cbiAqL1xuY29uc3QgbWVyZ2VDb25maWdzID0gKGJhc2VDb25maWcsIHtcbiAgY2FjaGVTaXplLFxuICBwcmVmaXgsXG4gIHNlcGFyYXRvcixcbiAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUsXG4gIGV4dGVuZCA9IHt9LFxuICBvdmVycmlkZSA9IHt9XG59KSA9PiB7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2NhY2hlU2l6ZScsIGNhY2hlU2l6ZSk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2V4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lJywgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpO1xuICBmb3IgKGNvbnN0IGNvbmZpZ0tleSBpbiBvdmVycmlkZSkge1xuICAgIG92ZXJyaWRlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2NvbmZpZ0tleV0sIG92ZXJyaWRlW2NvbmZpZ0tleV0pO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGV4dGVuZCkge1xuICAgIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2tleV0sIGV4dGVuZFtrZXldKTtcbiAgfVxuICByZXR1cm4gYmFzZUNvbmZpZztcbn07XG5jb25zdCBvdmVycmlkZVByb3BlcnR5ID0gKGJhc2VPYmplY3QsIG92ZXJyaWRlS2V5LCBvdmVycmlkZVZhbHVlKSA9PiB7XG4gIGlmIChvdmVycmlkZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBiYXNlT2JqZWN0W292ZXJyaWRlS2V5XSA9IG92ZXJyaWRlVmFsdWU7XG4gIH1cbn07XG5jb25zdCBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpID0+IHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCBtZXJnZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgbWVyZ2VPYmplY3QpID0+IHtcbiAgaWYgKG1lcmdlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbWVyZ2VPYmplY3QpIHtcbiAgICAgIGNvbnN0IG1lcmdlVmFsdWUgPSBtZXJnZU9iamVjdFtrZXldO1xuICAgICAgaWYgKG1lcmdlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBiYXNlT2JqZWN0W2tleV0gPSAoYmFzZU9iamVjdFtrZXldIHx8IFtdKS5jb25jYXQobWVyZ2VWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuY29uc3QgZXh0ZW5kVGFpbHdpbmRNZXJnZSA9IChjb25maWdFeHRlbnNpb24sIC4uLmNyZWF0ZUNvbmZpZykgPT4gdHlwZW9mIGNvbmZpZ0V4dGVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZywgY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIDogY3JlYXRlVGFpbHdpbmRNZXJnZSgoKSA9PiBtZXJnZUNvbmZpZ3MoZ2V0RGVmYXVsdENvbmZpZygpLCBjb25maWdFeHRlbnNpb24pLCAuLi5jcmVhdGVDb25maWcpO1xuY29uc3QgdHdNZXJnZSA9IC8qI19fUFVSRV9fKi9jcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcpO1xuZXhwb3J0IHsgY3JlYXRlVGFpbHdpbmRNZXJnZSwgZXh0ZW5kVGFpbHdpbmRNZXJnZSwgZnJvbVRoZW1lLCBnZXREZWZhdWx0Q29uZmlnLCBtZXJnZUNvbmZpZ3MsIHR3Sm9pbiwgdHdNZXJnZSwgdmFsaWRhdG9ycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLW1qcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs": /*!******************************************!*\ !*** ./node_modules/tslib/tslib.es6.mjs ***! \******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),\n/* harmony export */ __assign: () => (/* binding */ __assign),\n/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),\n/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),\n/* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),\n/* harmony export */ __await: () => (/* binding */ __await),\n/* harmony export */ __awaiter: () => (/* binding */ __awaiter),\n/* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),\n/* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn),\n/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),\n/* harmony export */ __createBinding: () => (/* binding */ __createBinding),\n/* harmony export */ __decorate: () => (/* binding */ __decorate),\n/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),\n/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),\n/* harmony export */ __exportStar: () => (/* binding */ __exportStar),\n/* harmony export */ __extends: () => (/* binding */ __extends),\n/* harmony export */ __generator: () => (/* binding */ __generator),\n/* harmony export */ __importDefault: () => (/* binding */ __importDefault),\n/* harmony export */ __importStar: () => (/* binding */ __importStar),\n/* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),\n/* harmony export */ __metadata: () => (/* binding */ __metadata),\n/* harmony export */ __param: () => (/* binding */ __param),\n/* harmony export */ __propKey: () => (/* binding */ __propKey),\n/* harmony export */ __read: () => (/* binding */ __read),\n/* harmony export */ __rest: () => (/* binding */ __rest),\n/* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension),\n/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),\n/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),\n/* harmony export */ __spread: () => (/* binding */ __spread),\n/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),\n/* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),\n/* harmony export */ __values: () => (/* binding */ __values),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nfunction __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nfunction __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nfunction __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nfunction __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nfunction __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nfunction __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nfunction __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nfunction __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nfunction __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nfunction __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nfunction __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nfunction __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nfunction __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nfunction __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nfunction __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nfunction __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nfunction __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nfunction __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVMsZ0JBQWdCLHNDQUFzQyxrQkFBa0I7QUFDakYsd0JBQXdCO0FBQ3hCO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTs7QUFFTztBQUNQO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxjQUFjO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0EsMkNBQTJDLFFBQVE7QUFDbkQ7QUFDQTs7QUFFTztBQUNQLGtDQUFrQztBQUNsQzs7QUFFTztBQUNQLHVCQUF1Qix1RkFBdUY7QUFDOUc7QUFDQTtBQUNBLHlHQUF5RztBQUN6RztBQUNBLHNDQUFzQyxRQUFRO0FBQzlDO0FBQ0EsZ0VBQWdFO0FBQ2hFO0FBQ0EsOENBQThDLHlGQUF5RjtBQUN2SSw4REFBOEQsMkNBQTJDO0FBQ3pHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0Esa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7O0FBRU87QUFDUDtBQUNBLDRDQUE0Qyx5RUFBeUU7QUFDckg7O0FBRU87QUFDUDtBQUNBOztBQUVPO0FBQ1AsMEJBQTBCLCtEQUErRCxpQkFBaUI7QUFDMUc7QUFDQSxrQ0FBa0MsTUFBTSwrQkFBK0IsWUFBWTtB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUZBQXVGLFNBQVMsZ0JBQWdCO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUEsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gYXdhaXRSZXR1cm4oZikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGYsIHJlamVjdCk7IH07IH1cbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XG4gIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cbiAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XG4gIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcbiAgdmFyIGksIHA7XG4gIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IGZhbHNlIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcbiAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XG4gIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XG4gIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gIHJldHVybiBjb29rZWQ7XG59O1xuXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59O1xuXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgdmFyIGFyID0gW107XG4gICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICByZXR1cm4gYXI7XG4gIH07XG4gIHJldHVybiBvd25LZXlzKG8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICB2YXIgciwgcyA9IDA7XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKHIgPSBlbnYuc3RhY2sucG9wKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpO1xuICAgICAgICBpZiAoci5kaXNwb3NlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xuICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBzIHw9IDE7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZSkge1xuICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uKHBhdGgsIHByZXNlcnZlSnN4KSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XG4gICAgICAgICAgcmV0dXJuIHRzeCA/IHByZXNlcnZlSnN4ID8gXCIuanN4XCIgOiBcIi5qc1wiIDogZCAmJiAoIWV4dCB8fCAhY20pID8gbSA6IChkICsgZXh0ICsgXCIuXCIgKyBjbS50b0xvd2VyQ2FzZSgpICsgXCJqc1wiKTtcbiAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIF9fZXh0ZW5kcyxcbiAgX19hc3NpZ24sXG4gIF9fcmVzdCxcbiAgX19kZWNvcmF0ZSxcbiAgX19wYXJhbSxcbiAgX19lc0RlY29yYXRlLFxuICBfX3J1bkluaXRpYWxpemVycyxcbiAgX19wcm9wS2V5LFxuICBfX3NldEZ1bmN0aW9uTmFtZSxcbiAgX19tZXRhZGF0YSxcbiAgX19hd2FpdGVyLFxuICBfX2dlbmVyYXRvcixcbiAgX19jcmVhdGVCaW5kaW5nLFxuICBfX2V4cG9ydFN0YXIsXG4gIF9fdmFsdWVzLFxuICBfX3JlYWQsXG4gIF9fc3ByZWFkLFxuICBfX3NwcmVhZEFycmF5cyxcbiAgX19zcHJlYWRBcnJheSxcbiAgX19hd2FpdCxcbiAgX19hc3luY0dlbmVyYXRvcixcbiAgX19hc3luY0RlbGVnYXRvcixcbiAgX19hc3luY1ZhbHVlcyxcbiAgX19tYWtlVGVtcGxhdGVPYmplY3QsXG4gIF9faW1wb3J0U3RhcixcbiAgX19pbXBvcnREZWZhdWx0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXG4gIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxuICBfX2Rpc3Bvc2VSZXNvdXJjZXMsXG4gIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/box.js": /*!*********************************************!*\ !*** ./node_modules/ui-box/dist/src/box.js ***! \*********************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst react_1 = __importDefault(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst enhancers_1 = __webpack_require__(/*! ./enhancers */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nconst enhance_props_1 = __importDefault(__webpack_require__(/*! ./enhance-props */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhance-props.js\"));\nconst safeHref_1 = __webpack_require__(/*! ./utils/safeHref */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/safeHref.js\");\nconst Box = react_1.default.forwardRef((_a, ref) => {\n var { is, children, allowUnsafeHref } = _a, props = __rest(_a, [\"is\", \"children\", \"allowUnsafeHref\"]);\n const { className, enhancedProps: parsedProps } = (0, enhance_props_1.default)(props);\n parsedProps.className = className;\n if (ref) {\n parsedProps.ref = ref;\n }\n const safeHrefEnabled = (typeof allowUnsafeHref === 'boolean' ? !allowUnsafeHref : (0, safeHref_1.getUseSafeHref)()) && is === 'a' && parsedProps.href;\n if (safeHrefEnabled) {\n const { safeHref, safeRel } = (0, safeHref_1.extractAnchorProps)(parsedProps.href, parsedProps.rel);\n parsedProps.href = safeHref;\n parsedProps.rel = safeRel;\n }\n return react_1.default.createElement(is || 'div', parsedProps, children);\n});\nBox.displayName = 'Box';\nBox.propTypes = Object.assign(Object.assign({}, enhancers_1.propTypes), { is: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.func, prop_types_1.default.elementType]), allowUnsafeHref: prop_types_1.default.bool });\nBox.defaultProps = {\n is: 'div',\n boxSizing: 'border-box'\n};\nexports[\"default\"] = Box;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvYm94LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxjQUFjO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQ0FBZ0MsbUJBQU8sQ0FBQyxtRkFBTztBQUMvQyxxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxvQkFBb0IsbUJBQU8sQ0FBQywwRkFBYTtBQUN6Qyx3Q0FBd0MsbUJBQU8sQ0FBQyw0RkFBaUI7QUFDakUsbUJBQW1CLG1CQUFPLENBQUMsOEZBQWtCO0FBQzdDO0FBQ0EsVUFBVSxnQ0FBZ0M7QUFDMUMsWUFBWSx3Q0FBd0M7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDhDQUE4Qyw0QkFBNEIsNEtBQTRLO0FBQ3RQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9ib3guanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCByZWFjdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZW5oYW5jZXJzXzEgPSByZXF1aXJlKFwiLi9lbmhhbmNlcnNcIik7XG5jb25zdCBlbmhhbmNlX3Byb3BzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vZW5oYW5jZS1wcm9wc1wiKSk7XG5jb25zdCBzYWZlSHJlZl8xID0gcmVxdWlyZShcIi4vdXRpbHMvc2FmZUhyZWZcIik7XG5jb25zdCBCb3ggPSByZWFjdF8xLmRlZmF1bHQuZm9yd2FyZFJlZigoX2EsIHJlZikgPT4ge1xuICAgIHZhciB7IGlzLCBjaGlsZHJlbiwgYWxsb3dVbnNhZmVIcmVmIH0gPSBfYSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImlzXCIsIFwiY2hpbGRyZW5cIiwgXCJhbGxvd1Vuc2FmZUhyZWZcIl0pO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBlbmhhbmNlZFByb3BzOiBwYXJzZWRQcm9wcyB9ID0gKDAsIGVuaGFuY2VfcHJvcHNfMS5kZWZhdWx0KShwcm9wcyk7XG4gICAgcGFyc2VkUHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgIGlmIChyZWYpIHtcbiAgICAgICAgcGFyc2VkUHJvcHMucmVmID0gcmVmO1xuICAgIH1cbiAgICBjb25zdCBzYWZlSHJlZkVuYWJsZWQgPSAodHlwZW9mIGFsbG93VW5zYWZlSHJlZiA9PT0gJ2Jvb2xlYW4nID8gIWFsbG93VW5zYWZlSHJlZiA6ICgwLCBzYWZlSHJlZl8xLmdldFVzZVNhZmVIcmVmKSgpKSAmJiBpcyA9PT0gJ2EnICYmIHBhcnNlZFByb3BzLmhyZWY7XG4gICAgaWYgKHNhZmVIcmVmRW5hYmxlZCkge1xuICAgICAgICBjb25zdCB7IHNhZmVIcmVmLCBzYWZlUmVsIH0gPSAoMCwgc2FmZUhyZWZfMS5leHRyYWN0QW5jaG9yUHJvcHMpKHBhcnNlZFByb3BzLmhyZWYsIHBhcnNlZFByb3BzLnJlbCk7XG4gICAgICAgIHBhcnNlZFByb3BzLmhyZWYgPSBzYWZlSHJlZjtcbiAgICAgICAgcGFyc2VkUHJvcHMucmVsID0gc2FmZVJlbDtcbiAgICB9XG4gICAgcmV0dXJuIHJlYWN0XzEuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGlzIHx8ICdkaXYnLCBwYXJzZWRQcm9wcywgY2hpbGRyZW4pO1xufSk7XG5Cb3guZGlzcGxheU5hbWUgPSAnQm94JztcbkJveC5wcm9wVHlwZXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGVuaGFuY2Vyc18xLnByb3BUeXBlcyksIHsgaXM6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5mdW5jLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5lbGVtZW50VHlwZV0pLCBhbGxvd1Vuc2FmZUhyZWY6IHByb3BfdHlwZXNfMS5kZWZhdWx0LmJvb2wgfSk7XG5Cb3guZGVmYXVsdFByb3BzID0ge1xuICAgIGlzOiAnZGl2JyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94J1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IEJveDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/box.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/cache.js": /*!***********************************************!*\ !*** ./node_modules/ui-box/dist/src/cache.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.clear = exports.hydrate = exports.entries = exports.set = exports.get = void 0;\nlet cache = new Map();\nfunction get(property, value, selectorHead = '') {\n return cache.get(selectorHead + property + value);\n}\nexports.get = get;\nfunction set(property, value, className, selectorHead = '') {\n if (true) {\n const valueType = typeof value;\n if (valueType !== 'boolean' &&\n valueType !== 'number' &&\n valueType !== 'string') {\n const encodedValue = JSON.stringify(value);\n throw new TypeError(`📦 ui-box: invalid cache value “${encodedValue}”. Only booleans, numbers and strings are supported.`);\n }\n }\n cache.set(selectorHead + property + value, className);\n}\nexports.set = set;\nfunction entries() {\n return [...cache];\n}\nexports.entries = entries;\nfunction hydrate(newEntries) {\n cache = new Map([...cache, ...newEntries]);\n}\nexports.hydrate = hydrate;\nfunction clear() {\n cache.clear();\n}\nexports.clear = clear;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvY2FjaGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxHQUFHLGVBQWUsR0FBRyxlQUFlLEdBQUcsV0FBVyxHQUFHLFdBQVc7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsYUFBYTtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9jYWNoZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY2xlYXIgPSBleHBvcnRzLmh5ZHJhdGUgPSBleHBvcnRzLmVudHJpZXMgPSBleHBvcnRzLnNldCA9IGV4cG9ydHMuZ2V0ID0gdm9pZCAwO1xubGV0IGNhY2hlID0gbmV3IE1hcCgpO1xuZnVuY3Rpb24gZ2V0KHByb3BlcnR5LCB2YWx1ZSwgc2VsZWN0b3JIZWFkID0gJycpIHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KHNlbGVjdG9ySGVhZCArIHByb3BlcnR5ICsgdmFsdWUpO1xufVxuZXhwb3J0cy5nZXQgPSBnZXQ7XG5mdW5jdGlvbiBzZXQocHJvcGVydHksIHZhbHVlLCBjbGFzc05hbWUsIHNlbGVjdG9ySGVhZCA9ICcnKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgICBpZiAodmFsdWVUeXBlICE9PSAnYm9vbGVhbicgJiZcbiAgICAgICAgICAgIHZhbHVlVHlwZSAhPT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgIHZhbHVlVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuY29kZWRWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYPCfk6YgdWktYm94OiBpbnZhbGlkIGNhY2hlIHZhbHVlIOKAnCR7ZW5jb2RlZFZhbHVlfeKAnS4gT25seSBib29sZWFucywgbnVtYmVycyBhbmQgc3RyaW5ncyBhcmUgc3VwcG9ydGVkLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhY2hlLnNldChzZWxlY3RvckhlYWQgKyBwcm9wZXJ0eSArIHZhbHVlLCBjbGFzc05hbWUpO1xufVxuZXhwb3J0cy5zZXQgPSBzZXQ7XG5mdW5jdGlvbiBlbnRyaWVzKCkge1xuICAgIHJldHVybiBbLi4uY2FjaGVdO1xufVxuZXhwb3J0cy5lbnRyaWVzID0gZW50cmllcztcbmZ1bmN0aW9uIGh5ZHJhdGUobmV3RW50cmllcykge1xuICAgIGNhY2hlID0gbmV3IE1hcChbLi4uY2FjaGUsIC4uLm5ld0VudHJpZXNdKTtcbn1cbmV4cG9ydHMuaHlkcmF0ZSA9IGh5ZHJhdGU7XG5mdW5jdGlvbiBjbGVhcigpIHtcbiAgICBjYWNoZS5jbGVhcigpO1xufVxuZXhwb3J0cy5jbGVhciA9IGNsZWFyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/cache.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhance-props.js": /*!*******************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhance-props.js ***! \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst enhancers_1 = __webpack_require__(/*! ./enhancers */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nconst expand_aliases_1 = __importDefault(__webpack_require__(/*! ./expand-aliases */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/expand-aliases.js\"));\nconst cache = __importStar(__webpack_require__(/*! ./cache */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/cache.js\"));\nconst styles = __importStar(__webpack_require__(/*! ./styles */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/styles.js\"));\nconst SELECTORS_PROP = 'selectors';\nfunction enhanceProps(props, selectorHead = '', parentProperty = '') {\n const propsMap = (0, expand_aliases_1.default)(props);\n const preservedProps = {};\n let className = props.className || '';\n for (const [property, value] of propsMap) {\n const isSelectorOrChildProp = property === SELECTORS_PROP || parentProperty.length > 0;\n if (isObject(value) && isSelectorOrChildProp) {\n const prop = property === SELECTORS_PROP ? '' : property;\n const newSelectorHead = selectorHead.includes(',')\n ? selectorHead\n .split(',')\n .map(selector => `${selector}${prop}`)\n .join(',')\n : `${selectorHead}${prop}`;\n const parsed = enhanceProps(value, noAnd(newSelectorHead), property);\n className = `${className} ${parsed.className}`;\n continue;\n }\n const enhancer = enhancers_1.propEnhancers[property];\n if (!enhancer) {\n preservedProps[property] = value;\n continue;\n }\n if (value === null || value === undefined || value === false) {\n continue;\n }\n const cachedClassName = cache.get(property, value, selectorHead);\n if (cachedClassName) {\n className = `${className} ${cachedClassName}`;\n continue;\n }\n const newCss = enhancer(value, selectorHead);\n if (newCss) {\n styles.add(newCss.styles);\n cache.set(property, value, newCss.className, selectorHead);\n className = `${className} ${newCss.className}`;\n }\n }\n className = className.trim();\n return { className, enhancedProps: preservedProps };\n}\nexports[\"default\"] = enhanceProps;\nconst isObject = (value) => value != null && typeof value === 'object';\nconst noAnd = (value) => value.replace(/&/g, '');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZS1wcm9wcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxvQ0FBb0M7QUFDbkQ7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0IsbUJBQU8sQ0FBQywwRkFBYTtBQUN6Qyx5Q0FBeUMsbUJBQU8sQ0FBQyw4RkFBa0I7QUFDbkUsMkJBQTJCLG1CQUFPLENBQUMsNEVBQVM7QUFDNUMsNEJBQTRCLG1CQUFPLENBQUMsOEVBQVU7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLFNBQVMsRUFBRSxLQUFLO0FBQ3hEO0FBQ0EscUJBQXFCLGFBQWEsRUFBRSxLQUFLO0FBQ3pDO0FBQ0EsMkJBQTJCLFdBQVcsRUFBRSxpQkFBaUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLFdBQVcsRUFBRSxnQkFBZ0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLFdBQVcsRUFBRSxpQkFBaUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esa0JBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZS1wcm9wcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgZW5oYW5jZXJzXzEgPSByZXF1aXJlKFwiLi9lbmhhbmNlcnNcIik7XG5jb25zdCBleHBhbmRfYWxpYXNlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2V4cGFuZC1hbGlhc2VzXCIpKTtcbmNvbnN0IGNhY2hlID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2NhY2hlXCIpKTtcbmNvbnN0IHN0eWxlcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9zdHlsZXNcIikpO1xuY29uc3QgU0VMRUNUT1JTX1BST1AgPSAnc2VsZWN0b3JzJztcbmZ1bmN0aW9uIGVuaGFuY2VQcm9wcyhwcm9wcywgc2VsZWN0b3JIZWFkID0gJycsIHBhcmVudFByb3BlcnR5ID0gJycpIHtcbiAgICBjb25zdCBwcm9wc01hcCA9ICgwLCBleHBhbmRfYWxpYXNlc18xLmRlZmF1bHQpKHByb3BzKTtcbiAgICBjb25zdCBwcmVzZXJ2ZWRQcm9wcyA9IHt9O1xuICAgIGxldCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUgfHwgJyc7XG4gICAgZm9yIChjb25zdCBbcHJvcGVydHksIHZhbHVlXSBvZiBwcm9wc01hcCkge1xuICAgICAgICBjb25zdCBpc1NlbGVjdG9yT3JDaGlsZFByb3AgPSBwcm9wZXJ0eSA9PT0gU0VMRUNUT1JTX1BST1AgfHwgcGFyZW50UHJvcGVydHkubGVuZ3RoID4gMDtcbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBpc1NlbGVjdG9yT3JDaGlsZFByb3ApIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBwcm9wZXJ0eSA9PT0gU0VMRUNUT1JTX1BST1AgPyAnJyA6IHByb3BlcnR5O1xuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0b3JIZWFkID0gc2VsZWN0b3JIZWFkLmluY2x1ZGVzKCcsJylcbiAgICAgICAgICAgICAgICA/IHNlbGVjdG9ySGVhZFxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKHNlbGVjdG9yID0+IGAke3NlbGVjdG9yfSR7cHJvcH1gKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCcpXG4gICAgICAgICAgICAgICAgOiBgJHtzZWxlY3RvckhlYWR9JHtwcm9wfWA7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBlbmhhbmNlUHJvcHModmFsdWUsIG5vQW5kKG5ld1NlbGVjdG9ySGVhZCksIHByb3BlcnR5KTtcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZX0gJHtwYXJzZWQuY2xhc3NOYW1lfWA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmhhbmNlciA9IGVuaGFuY2Vyc18xLnByb3BFbmhhbmNlcnNbcHJvcGVydHldO1xuICAgICAgICBpZiAoIWVuaGFuY2VyKSB7XG4gICAgICAgICAgICBwcmVzZXJ2ZWRQcm9wc1twcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkQ2xhc3NOYW1lID0gY2FjaGUuZ2V0KHByb3BlcnR5LCB2YWx1ZSwgc2VsZWN0b3JIZWFkKTtcbiAgICAgICAgaWYgKGNhY2hlZENsYXNzTmFtZSkge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lfSAke2NhY2hlZENsYXNzTmFtZX1gO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Q3NzID0gZW5oYW5jZXIodmFsdWUsIHNlbGVjdG9ySGVhZCk7XG4gICAgICAgIGlmIChuZXdDc3MpIHtcbiAgICAgICAgICAgIHN0eWxlcy5hZGQobmV3Q3NzLnN0eWxlcyk7XG4gICAgICAgICAgICBjYWNoZS5zZXQocHJvcGVydHksIHZhbHVlLCBuZXdDc3MuY2xhc3NOYW1lLCBzZWxlY3RvckhlYWQpO1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lfSAke25ld0Nzcy5jbGFzc05hbWV9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUudHJpbSgpO1xuICAgIHJldHVybiB7IGNsYXNzTmFtZSwgZW5oYW5jZWRQcm9wczogcHJlc2VydmVkUHJvcHMgfTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGVuaGFuY2VQcm9wcztcbmNvbnN0IGlzT2JqZWN0ID0gKHZhbHVlKSA9PiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XG5jb25zdCBub0FuZCA9ICh2YWx1ZSkgPT4gdmFsdWUucmVwbGFjZSgvJi9nLCAnJyk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhance-props.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/animation.js": /*!*************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/animation.js ***! \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n animation: prop_types_1.default.string,\n animationDelay: prop_types_1.default.string,\n animationDirection: prop_types_1.default.string,\n animationDuration: prop_types_1.default.string,\n animationFillMode: prop_types_1.default.string,\n animationIterationCount: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n animationName: prop_types_1.default.string,\n animationPlayState: prop_types_1.default.string,\n animationTimingFunction: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst animation = {\n className: 'a',\n cssName: 'animation',\n jsName: 'animation',\n complexValue: true\n};\nconst animationDelay = {\n className: 'a-dly',\n cssName: 'animation-delay',\n jsName: 'animationDelay',\n defaultUnit: 'ms'\n};\nconst animationDirection = {\n className: 'a-dir',\n cssName: 'animation-direction',\n jsName: 'animationDirection',\n safeValue: true\n};\nconst animationDuration = {\n className: 'a-dur',\n cssName: 'animation-duration',\n jsName: 'animationDuration',\n defaultUnit: 'ms'\n};\nconst animationFillMode = {\n className: 'a-fill-md',\n cssName: 'animation-fill-mode',\n jsName: 'animationFillMode',\n safeValue: true\n};\nconst animationIterationCount = {\n className: 'a-itr-ct',\n cssName: 'animation-iteration-count',\n jsName: 'animationIterationCount',\n defaultUnit: ''\n};\nconst animationName = {\n className: 'a-nm',\n cssName: 'animation-name',\n jsName: 'animationName'\n};\nconst animationPlayState = {\n className: 'a-ply-ste',\n cssName: 'animation-play-state',\n jsName: 'animationPlayState',\n safeValue: true\n};\nconst animationTimingFunction = {\n className: 'a-tmng-fn',\n cssName: 'animation-timing-function',\n jsName: 'animationTimingFunction',\n complexValue: true\n};\nexports.propEnhancers = {\n animation: (value, selector) => (0, get_css_1.default)(animation, value, selector),\n animationDelay: (value, selector) => (0, get_css_1.default)(animationDelay, value, selector),\n animationDirection: (value, selector) => (0, get_css_1.default)(animationDirection, value, selector),\n animationDuration: (value, selector) => (0, get_css_1.default)(animationDuration, value, selector),\n animationFillMode: (value, selector) => (0, get_css_1.default)(animationFillMode, value, selector),\n animationIterationCount: (value, selector) => (0, get_css_1.default)(animationIterationCount, value, selector),\n animationName: (value, selector) => (0, get_css_1.default)(animationName, value, selector),\n animationPlayState: (value, selector) => (0, get_css_1.default)(animationPlayState, value, selector),\n animationTimingFunction: (value, selector) => (0, get_css_1.default)(animationTimingFunction, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2FuaW1hdGlvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxrQ0FBa0MsbUJBQU8sQ0FBQyxpRkFBWTtBQUN0RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvYW5pbWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgYW5pbWF0aW9uOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYW5pbWF0aW9uRGVsYXk6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBhbmltYXRpb25EaXJlY3Rpb246IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBhbmltYXRpb25EdXJhdGlvbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGFuaW1hdGlvbkZpbGxNb2RlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBhbmltYXRpb25OYW1lOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYW5pbWF0aW9uUGxheVN0YXRlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZ1xufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7fTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmNvbnN0IGFuaW1hdGlvbiA9IHtcbiAgICBjbGFzc05hbWU6ICdhJyxcbiAgICBjc3NOYW1lOiAnYW5pbWF0aW9uJyxcbiAgICBqc05hbWU6ICdhbmltYXRpb24nLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGFuaW1hdGlvbkRlbGF5ID0ge1xuICAgIGNsYXNzTmFtZTogJ2EtZGx5JyxcbiAgICBjc3NOYW1lOiAnYW5pbWF0aW9uLWRlbGF5JyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25EZWxheScsXG4gICAgZGVmYXVsdFVuaXQ6ICdtcydcbn07XG5jb25zdCBhbmltYXRpb25EaXJlY3Rpb24gPSB7XG4gICAgY2xhc3NOYW1lOiAnYS1kaXInLFxuICAgIGNzc05hbWU6ICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25EaXJlY3Rpb24nLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID0ge1xuICAgIGNsYXNzTmFtZTogJ2EtZHVyJyxcbiAgICBjc3NOYW1lOiAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25EdXJhdGlvbicsXG4gICAgZGVmYXVsdFVuaXQ6ICdtcydcbn07XG5jb25zdCBhbmltYXRpb25GaWxsTW9kZSA9IHtcbiAgICBjbGFzc05hbWU6ICdhLWZpbGwtbWQnLFxuICAgIGNzc05hbWU6ICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25GaWxsTW9kZScsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnYS1pdHItY3QnLFxuICAgIGNzc05hbWU6ICdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25JdGVyYXRpb25Db3VudCcsXG4gICAgZGVmYXVsdFVuaXQ6ICcnXG59O1xuY29uc3QgYW5pbWF0aW9uTmFtZSA9IHtcbiAgICBjbGFzc05hbWU6ICdhLW5tJyxcbiAgICBjc3NOYW1lOiAnYW5pbWF0aW9uLW5hbWUnLFxuICAgIGpzTmFtZTogJ2FuaW1hdGlvbk5hbWUnXG59O1xuY29uc3QgYW5pbWF0aW9uUGxheVN0YXRlID0ge1xuICAgIGNsYXNzTmFtZTogJ2EtcGx5LXN0ZScsXG4gICAgY3NzTmFtZTogJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJyxcbiAgICBqc05hbWU6ICdhbmltYXRpb25QbGF5U3RhdGUnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uID0ge1xuICAgIGNsYXNzTmFtZTogJ2EtdG1uZy1mbicsXG4gICAgY3NzTmFtZTogJ2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAgIGpzTmFtZTogJ2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uJyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgYW5pbWF0aW9uOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFuaW1hdGlvbiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBhbmltYXRpb25EZWxheTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShhbmltYXRpb25EZWxheSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBhbmltYXRpb25EaXJlY3Rpb246ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYW5pbWF0aW9uRGlyZWN0aW9uLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGFuaW1hdGlvbkR1cmF0aW9uOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFuaW1hdGlvbkR1cmF0aW9uLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGFuaW1hdGlvbkZpbGxNb2RlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFuaW1hdGlvbkZpbGxNb2RlLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGFuaW1hdGlvbk5hbWU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYW5pbWF0aW9uTmFtZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBhbmltYXRpb25QbGF5U3RhdGU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYW5pbWF0aW9uUGxheVN0YXRlLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/animation.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/background.js": /*!**************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/background.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n background: prop_types_1.default.string,\n backgroundBlendMode: prop_types_1.default.string,\n backgroundClip: prop_types_1.default.string,\n backgroundColor: prop_types_1.default.string,\n backgroundImage: prop_types_1.default.string,\n backgroundOrigin: prop_types_1.default.string,\n backgroundPosition: prop_types_1.default.string,\n backgroundRepeat: prop_types_1.default.string,\n backgroundSize: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst background = {\n className: 'bg',\n cssName: 'background',\n jsName: 'background',\n isPrefixed: true,\n complexValue: true\n};\nconst backgroundColor = {\n className: 'bg-clr',\n cssName: 'background-color',\n jsName: 'backgroundColor'\n};\nconst backgroundImage = {\n className: 'bg-img',\n cssName: 'background-image',\n jsName: 'backgroundImage',\n isPrefixed: true,\n complexValue: true\n};\nconst backgroundPosition = {\n className: 'bg-pos',\n cssName: 'background-position',\n jsName: 'backgroundPosition'\n};\nconst backgroundSize = {\n className: 'bg-siz',\n cssName: 'background-size',\n jsName: 'backgroundSize'\n};\nconst backgroundOrigin = {\n className: 'bg-orgn',\n cssName: 'background-origin',\n jsName: 'backgroundOrigin'\n};\nconst backgroundRepeat = {\n className: 'bg-rpt',\n cssName: 'background-repeat',\n jsName: 'backgroundRepeat'\n};\nconst backgroundClip = {\n className: 'bg-clp',\n cssName: 'background-clip',\n jsName: 'backgroundClip'\n};\nconst backgroundBlendMode = {\n className: 'bg-blnd-md',\n cssName: 'background-blend-mode',\n jsName: 'backgroundBlendMode'\n};\nexports.propEnhancers = {\n background: (value, selector) => (0, get_css_1.default)(background, value, selector),\n backgroundBlendMode: (value, selector) => (0, get_css_1.default)(backgroundBlendMode, value, selector),\n backgroundClip: (value, selector) => (0, get_css_1.default)(backgroundClip, value, selector),\n backgroundColor: (value, selector) => (0, get_css_1.default)(backgroundColor, value, selector),\n backgroundImage: (value, selector) => (0, get_css_1.default)(backgroundImage, value, selector),\n backgroundOrigin: (value, selector) => (0, get_css_1.default)(backgroundOrigin, value, selector),\n backgroundPosition: (value, selector) => (0, get_css_1.default)(backgroundPosition, value, selector),\n backgroundRepeat: (value, selector) => (0, get_css_1.default)(backgroundRepeat, value, selector),\n backgroundSize: (value, selector) => (0, get_css_1.default)(backgroundSize, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JhY2tncm91bmQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9iYWNrZ3JvdW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgYmFja2dyb3VuZDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJhY2tncm91bmRCbGVuZE1vZGU6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBiYWNrZ3JvdW5kQ2xpcDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJhY2tncm91bmRDb2xvcjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJhY2tncm91bmRJbWFnZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJhY2tncm91bmRPcmlnaW46IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBiYWNrZ3JvdW5kUG9zaXRpb246IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBiYWNrZ3JvdW5kUmVwZWF0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYmFja2dyb3VuZFNpemU6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZ1xufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7fTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmNvbnN0IGJhY2tncm91bmQgPSB7XG4gICAgY2xhc3NOYW1lOiAnYmcnLFxuICAgIGNzc05hbWU6ICdiYWNrZ3JvdW5kJyxcbiAgICBqc05hbWU6ICdiYWNrZ3JvdW5kJyxcbiAgICBpc1ByZWZpeGVkOiB0cnVlLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGJhY2tncm91bmRDb2xvciA9IHtcbiAgICBjbGFzc05hbWU6ICdiZy1jbHInLFxuICAgIGNzc05hbWU6ICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICBqc05hbWU6ICdiYWNrZ3JvdW5kQ29sb3InXG59O1xuY29uc3QgYmFja2dyb3VuZEltYWdlID0ge1xuICAgIGNsYXNzTmFtZTogJ2JnLWltZycsXG4gICAgY3NzTmFtZTogJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAgIGpzTmFtZTogJ2JhY2tncm91bmRJbWFnZScsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZSxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5jb25zdCBiYWNrZ3JvdW5kUG9zaXRpb24gPSB7XG4gICAgY2xhc3NOYW1lOiAnYmctcG9zJyxcbiAgICBjc3NOYW1lOiAnYmFja2dyb3VuZC1wb3NpdGlvbicsXG4gICAganNOYW1lOiAnYmFja2dyb3VuZFBvc2l0aW9uJ1xufTtcbmNvbnN0IGJhY2tncm91bmRTaXplID0ge1xuICAgIGNsYXNzTmFtZTogJ2JnLXNpeicsXG4gICAgY3NzTmFtZTogJ2JhY2tncm91bmQtc2l6ZScsXG4gICAganNOYW1lOiAnYmFja2dyb3VuZFNpemUnXG59O1xuY29uc3QgYmFja2dyb3VuZE9yaWdpbiA9IHtcbiAgICBjbGFzc05hbWU6ICdiZy1vcmduJyxcbiAgICBjc3NOYW1lOiAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAgIGpzTmFtZTogJ2JhY2tncm91bmRPcmlnaW4nXG59O1xuY29uc3QgYmFja2dyb3VuZFJlcGVhdCA9IHtcbiAgICBjbGFzc05hbWU6ICdiZy1ycHQnLFxuICAgIGNzc05hbWU6ICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICAganNOYW1lOiAnYmFja2dyb3VuZFJlcGVhdCdcbn07XG5jb25zdCBiYWNrZ3JvdW5kQ2xpcCA9IHtcbiAgICBjbGFzc05hbWU6ICdiZy1jbHAnLFxuICAgIGNzc05hbWU6ICdiYWNrZ3JvdW5kLWNsaXAnLFxuICAgIGpzTmFtZTogJ2JhY2tncm91bmRDbGlwJ1xufTtcbmNvbnN0IGJhY2tncm91bmRCbGVuZE1vZGUgPSB7XG4gICAgY2xhc3NOYW1lOiAnYmctYmxuZC1tZCcsXG4gICAgY3NzTmFtZTogJ2JhY2tncm91bmQtYmxlbmQtbW9kZScsXG4gICAganNOYW1lOiAnYmFja2dyb3VuZEJsZW5kTW9kZSdcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgYmFja2dyb3VuZDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJhY2tncm91bmRCbGVuZE1vZGU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYmFja2dyb3VuZEJsZW5kTW9kZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBiYWNrZ3JvdW5kQ2xpcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kQ2xpcCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYmFja2dyb3VuZENvbG9yLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJhY2tncm91bmRJbWFnZTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kSW1hZ2UsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYmFja2dyb3VuZE9yaWdpbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kT3JpZ2luLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJhY2tncm91bmRQb3NpdGlvbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kUG9zaXRpb24sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYmFja2dyb3VuZFJlcGVhdDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShiYWNrZ3JvdW5kUmVwZWF0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJhY2tncm91bmRTaXplOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJhY2tncm91bmRTaXplLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/background.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/border-radius.js": /*!*****************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/border-radius.js ***! \*****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nconst regex_1 = __webpack_require__(/*! ../utils/regex */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js\");\nexports.propTypes = {\n borderBottomLeftRadius: prop_types_1.default.oneOfType([\n prop_types_1.default.string,\n prop_types_1.default.number\n ]),\n borderBottomRightRadius: prop_types_1.default.oneOfType([\n prop_types_1.default.string,\n prop_types_1.default.number\n ]),\n borderRadius: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n borderTopLeftRadius: prop_types_1.default.oneOfType([\n prop_types_1.default.string,\n prop_types_1.default.number\n ]),\n borderTopRightRadius: prop_types_1.default.oneOfType([\n prop_types_1.default.string,\n prop_types_1.default.number\n ])\n};\nexports.propAliases = {\n borderRadius: [\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderTopLeftRadius',\n 'borderTopRightRadius'\n ]\n};\nexports.propValidators = {};\nif (true) {\n exports.propValidators.borderRadius = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “borderRadius”. Use “borderBottomLeftRadius”, “borderBottomRightRadius” “borderTopLeftRadius” and “borderTopRightRadius” instead.`;\n }\n return;\n };\n}\nconst borderTopLeftRadius = {\n className: 'btlr',\n cssName: 'border-top-left-radius',\n jsName: 'borderTopLeftRadius'\n};\nconst borderTopRightRadius = {\n className: 'btrr',\n cssName: 'border-top-right-radius',\n jsName: 'borderTopRightRadius'\n};\nconst borderBottomLeftRadius = {\n className: 'bblr',\n cssName: 'border-bottom-left-radius',\n jsName: 'borderBottomLeftRadius'\n};\nconst borderBottomRightRadius = {\n className: 'bbrr',\n cssName: 'border-bottom-right-radius',\n jsName: 'borderBottomRightRadius'\n};\nexports.propEnhancers = {\n borderBottomLeftRadius: (value, selector) => (0, get_css_1.default)(borderBottomLeftRadius, value, selector),\n borderBottomRightRadius: (value, selector) => (0, get_css_1.default)(borderBottomRightRadius, value, selector),\n borderTopLeftRadius: (value, selector) => (0, get_css_1.default)(borderTopLeftRadius, value, selector),\n borderTopRightRadius: (value, selector) => (0, get_css_1.default)(borderTopRightRadius, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JvcmRlci1yYWRpdXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMseUZBQWdCO0FBQ3hDLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsSUFBSSxJQUFxQztBQUN6QyxJQUFJLG1DQUFtQztBQUN2QztBQUNBLHdDQUF3QyxNQUFNO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JvcmRlci1yYWRpdXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5jb25zdCByZWdleF8xID0gcmVxdWlyZShcIi4uL3V0aWxzL3JlZ2V4XCIpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtcbiAgICAgICAgcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgICAgICBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJcbiAgICBdKSxcbiAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtcbiAgICAgICAgcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgICAgICBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJcbiAgICBdKSxcbiAgICBib3JkZXJSYWRpdXM6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW1xuICAgICAgICBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgICAgIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlclxuICAgIF0pLFxuICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW1xuICAgICAgICBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgICAgIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlclxuICAgIF0pXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHtcbiAgICBib3JkZXJSYWRpdXM6IFtcbiAgICAgICAgJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnLFxuICAgICAgICAnYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMnLFxuICAgICAgICAnYm9yZGVyVG9wTGVmdFJhZGl1cycsXG4gICAgICAgICdib3JkZXJUb3BSaWdodFJhZGl1cydcbiAgICBdXG59O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBleHBvcnRzLnByb3BWYWxpZGF0b3JzLmJvcmRlclJhZGl1cyA9IHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHJlZ2V4XzEuc3BhY2VzT3V0c2lkZVBhcmVudGhlc2VzLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYG11bHRpcGxlIHZhbHVlcyAo4oCcJHt2YWx1ZX3igJ0pIGFyZW7VmnQgc3VwcG9ydGVkIHdpdGgg4oCcYm9yZGVyUmFkaXVz4oCdLiBVc2Ug4oCcYm9yZGVyQm90dG9tTGVmdFJhZGl1c+KAnSwg4oCcYm9yZGVyQm90dG9tUmlnaHRSYWRpdXPigJ0g4oCcYm9yZGVyVG9wTGVmdFJhZGl1c+KAnSBhbmQg4oCcYm9yZGVyVG9wUmlnaHRSYWRpdXPigJ0gaW5zdGVhZC5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xufVxuY29uc3QgYm9yZGVyVG9wTGVmdFJhZGl1cyA9IHtcbiAgICBjbGFzc05hbWU6ICdidGxyJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICAganNOYW1lOiAnYm9yZGVyVG9wTGVmdFJhZGl1cydcbn07XG5jb25zdCBib3JkZXJUb3BSaWdodFJhZGl1cyA9IHtcbiAgICBjbGFzc05hbWU6ICdidHJyJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAgIGpzTmFtZTogJ2JvcmRlclRvcFJpZ2h0UmFkaXVzJ1xufTtcbmNvbnN0IGJvcmRlckJvdHRvbUxlZnRSYWRpdXMgPSB7XG4gICAgY2xhc3NOYW1lOiAnYmJscicsXG4gICAgY3NzTmFtZTogJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAgIGpzTmFtZTogJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnXG59O1xuY29uc3QgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMgPSB7XG4gICAgY2xhc3NOYW1lOiAnYmJycicsXG4gICAgY3NzTmFtZTogJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgICBqc05hbWU6ICdib3JkZXJCb3R0b21SaWdodFJhZGl1cydcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJCb3R0b21MZWZ0UmFkaXVzLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyVG9wTGVmdFJhZGl1cywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBib3JkZXJUb3BSaWdodFJhZGl1czogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJUb3BSaWdodFJhZGl1cywgdmFsdWUsIHNlbGVjdG9yKVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/border-radius.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/borders.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/borders.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nconst regex_1 = __webpack_require__(/*! ../utils/regex */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js\");\nexports.propTypes = {\n border: prop_types_1.default.string,\n borderBottom: prop_types_1.default.string,\n borderBottomColor: prop_types_1.default.string,\n borderBottomStyle: prop_types_1.default.string,\n borderBottomWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n borderColor: prop_types_1.default.string,\n borderLeft: prop_types_1.default.string,\n borderLeftColor: prop_types_1.default.string,\n borderLeftStyle: prop_types_1.default.string,\n borderLeftWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n borderRight: prop_types_1.default.string,\n borderRightColor: prop_types_1.default.string,\n borderRightStyle: prop_types_1.default.string,\n borderRightWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n borderStyle: prop_types_1.default.string,\n borderTop: prop_types_1.default.string,\n borderTopColor: prop_types_1.default.string,\n borderTopStyle: prop_types_1.default.string,\n borderTopWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n borderWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {\n border: ['borderBottom', 'borderLeft', 'borderRight', 'borderTop'],\n borderColor: [\n 'borderBottomColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor'\n ],\n borderStyle: [\n 'borderBottomStyle',\n 'borderLeftStyle',\n 'borderRightStyle',\n 'borderTopStyle'\n ],\n borderWidth: [\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth'\n ]\n};\nexports.propValidators = {};\nif (true) {\n exports.propValidators.borderColor = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “borderColor”. Use “borderBottomColor”, “borderLeftColor” “borderRightColor” and “borderTopColor” instead.`;\n }\n return;\n };\n exports.propValidators.borderStyle = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “borderStyle”. Use “borderBottomStyle”, “borderLeftStyle” “borderRightStyle” and “borderTopStyle” instead.`;\n }\n return;\n };\n exports.propValidators.borderWidth = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “borderWidth”. Use “borderBottomWidth”, “borderLeftWidth” “borderRightWidth” and “borderTopWidth” instead.`;\n }\n return;\n };\n}\nconst borderLeft = {\n className: 'b-lft',\n cssName: 'border-left',\n jsName: 'borderLeft'\n};\nconst borderLeftColor = {\n className: 'b-lft-clr',\n cssName: 'border-left-color',\n jsName: 'borderLeftColor'\n};\nconst borderLeftStyle = {\n className: 'b-lft-stl',\n cssName: 'border-left-style',\n jsName: 'borderLeftStyle',\n safeValue: true\n};\nconst borderLeftWidth = {\n className: 'b-lft-wdt',\n cssName: 'border-left-width',\n jsName: 'borderLeftWidth'\n};\nconst borderRight = {\n className: 'b-rgt',\n cssName: 'border-right',\n jsName: 'borderRight'\n};\nconst borderRightColor = {\n className: 'b-rgt-clr',\n cssName: 'border-right-color',\n jsName: 'borderRightColor'\n};\nconst borderRightStyle = {\n className: 'b-rgt-stl',\n cssName: 'border-right-style',\n jsName: 'borderRightStyle',\n safeValue: true\n};\nconst borderRightWidth = {\n className: 'b-rgt-wdt',\n cssName: 'border-right-width',\n jsName: 'borderRightWidth'\n};\nconst borderTop = {\n className: 'b-top',\n cssName: 'border-top',\n jsName: 'borderTop'\n};\nconst borderTopColor = {\n className: 'b-top-clr',\n cssName: 'border-top-color',\n jsName: 'borderTopColor'\n};\nconst borderTopStyle = {\n className: 'b-top-stl',\n cssName: 'border-top-style',\n jsName: 'borderTopStyle',\n safeValue: true\n};\nconst borderTopWidth = {\n className: 'b-top-wdt',\n cssName: 'border-top-width',\n jsName: 'borderTopWidth'\n};\nconst borderBottom = {\n className: 'b-btm',\n cssName: 'border-bottom',\n jsName: 'borderBottom'\n};\nconst borderBottomColor = {\n className: 'b-btm-clr',\n cssName: 'border-bottom-color',\n jsName: 'borderBottomColor'\n};\nconst borderBottomStyle = {\n className: 'b-btm-stl',\n cssName: 'border-bottom-style',\n jsName: 'borderBottomStyle',\n safeValue: true\n};\nconst borderBottomWidth = {\n className: 'b-btm-wdt',\n cssName: 'border-bottom-width',\n jsName: 'borderBottomWidth'\n};\nexports.propEnhancers = {\n borderBottom: (value, selector) => (0, get_css_1.default)(borderBottom, value, selector),\n borderBottomColor: (value, selector) => (0, get_css_1.default)(borderBottomColor, value, selector),\n borderBottomStyle: (value, selector) => (0, get_css_1.default)(borderBottomStyle, value, selector),\n borderBottomWidth: (value, selector) => (0, get_css_1.default)(borderBottomWidth, value, selector),\n borderLeft: (value, selector) => (0, get_css_1.default)(borderLeft, value, selector),\n borderLeftColor: (value, selector) => (0, get_css_1.default)(borderLeftColor, value, selector),\n borderLeftStyle: (value, selector) => (0, get_css_1.default)(borderLeftStyle, value, selector),\n borderLeftWidth: (value, selector) => (0, get_css_1.default)(borderLeftWidth, value, selector),\n borderRight: (value, selector) => (0, get_css_1.default)(borderRight, value, selector),\n borderRightColor: (value, selector) => (0, get_css_1.default)(borderRightColor, value, selector),\n borderRightStyle: (value, selector) => (0, get_css_1.default)(borderRightStyle, value, selector),\n borderRightWidth: (value, selector) => (0, get_css_1.default)(borderRightWidth, value, selector),\n borderTop: (value, selector) => (0, get_css_1.default)(borderTop, value, selector),\n borderTopColor: (value, selector) => (0, get_css_1.default)(borderTopColor, value, selector),\n borderTopStyle: (value, selector) => (0, get_css_1.default)(borderTopStyle, value, selector),\n borderTopWidth: (value, selector) => (0, get_css_1.default)(borderTopWidth, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JvcmRlcnMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMseUZBQWdCO0FBQ3hDLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixJQUFJLElBQXFDO0FBQ3pDLElBQUksa0NBQWtDO0FBQ3RDO0FBQ0Esd0NBQXdDLE1BQU07QUFDOUM7QUFDQTtBQUNBO0FBQ0EsSUFBSSxrQ0FBa0M7QUFDdEM7QUFDQSx3Q0FBd0MsTUFBTTtBQUM5QztBQUNBO0FBQ0E7QUFDQSxJQUFJLGtDQUFrQztBQUN0QztBQUNBLHdDQUF3QyxNQUFNO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvYm9yZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmNvbnN0IHJlZ2V4XzEgPSByZXF1aXJlKFwiLi4vdXRpbHMvcmVnZXhcIik7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBib3JkZXI6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJCb3R0b206IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJCb3R0b21Db2xvcjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJvcmRlckJvdHRvbVN0eWxlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYm9yZGVyQm90dG9tV2lkdGg6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBib3JkZXJDb2xvcjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJvcmRlckxlZnQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJMZWZ0Q29sb3I6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJMZWZ0U3R5bGU6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJMZWZ0V2lkdGg6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBib3JkZXJSaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJvcmRlclJpZ2h0Q29sb3I6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJSaWdodFN0eWxlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYm9yZGVyUmlnaHRXaWR0aDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIGJvcmRlclN0eWxlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYm9yZGVyVG9wOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgYm9yZGVyVG9wQ29sb3I6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBib3JkZXJUb3BTdHlsZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGJvcmRlclRvcFdpZHRoOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgYm9yZGVyV2lkdGg6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKVxufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7XG4gICAgYm9yZGVyOiBbJ2JvcmRlckJvdHRvbScsICdib3JkZXJMZWZ0JywgJ2JvcmRlclJpZ2h0JywgJ2JvcmRlclRvcCddLFxuICAgIGJvcmRlckNvbG9yOiBbXG4gICAgICAgICdib3JkZXJCb3R0b21Db2xvcicsXG4gICAgICAgICdib3JkZXJMZWZ0Q29sb3InLFxuICAgICAgICAnYm9yZGVyUmlnaHRDb2xvcicsXG4gICAgICAgICdib3JkZXJUb3BDb2xvcidcbiAgICBdLFxuICAgIGJvcmRlclN0eWxlOiBbXG4gICAgICAgICdib3JkZXJCb3R0b21TdHlsZScsXG4gICAgICAgICdib3JkZXJMZWZ0U3R5bGUnLFxuICAgICAgICAnYm9yZGVyUmlnaHRTdHlsZScsXG4gICAgICAgICdib3JkZXJUb3BTdHlsZSdcbiAgICBdLFxuICAgIGJvcmRlcldpZHRoOiBbXG4gICAgICAgICdib3JkZXJCb3R0b21XaWR0aCcsXG4gICAgICAgICdib3JkZXJMZWZ0V2lkdGgnLFxuICAgICAgICAnYm9yZGVyUmlnaHRXaWR0aCcsXG4gICAgICAgICdib3JkZXJUb3BXaWR0aCdcbiAgICBdXG59O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBleHBvcnRzLnByb3BWYWxpZGF0b3JzLmJvcmRlckNvbG9yID0gdmFsdWUgPT4ge1xuICAgICAgICBpZiAocmVnZXhfMS5zcGFjZXNPdXRzaWRlUGFyZW50aGVzZXMudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBgbXVsdGlwbGUgdmFsdWVzICjigJwke3ZhbHVlfeKAnSkgYXJlbtWadCBzdXBwb3J0ZWQgd2l0aCDigJxib3JkZXJDb2xvcuKAnS4gVXNlIOKAnGJvcmRlckJvdHRvbUNvbG9y4oCdLCDigJxib3JkZXJMZWZ0Q29sb3LigJ0g4oCcYm9yZGVyUmlnaHRDb2xvcuKAnSBhbmQg4oCcYm9yZGVyVG9wQ29sb3LigJ0gaW5zdGVhZC5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xuICAgIGV4cG9ydHMucHJvcFZhbGlkYXRvcnMuYm9yZGVyU3R5bGUgPSB2YWx1ZSA9PiB7XG4gICAgICAgIGlmIChyZWdleF8xLnNwYWNlc091dHNpZGVQYXJlbnRoZXNlcy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBtdWx0aXBsZSB2YWx1ZXMgKOKAnCR7dmFsdWV94oCdKSBhcmVu1Zp0IHN1cHBvcnRlZCB3aXRoIOKAnGJvcmRlclN0eWxl4oCdLiBVc2Ug4oCcYm9yZGVyQm90dG9tU3R5bGXigJ0sIOKAnGJvcmRlckxlZnRTdHlsZeKAnSDigJxib3JkZXJSaWdodFN0eWxl4oCdIGFuZCDigJxib3JkZXJUb3BTdHlsZeKAnSBpbnN0ZWFkLmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG4gICAgZXhwb3J0cy5wcm9wVmFsaWRhdG9ycy5ib3JkZXJXaWR0aCA9IHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHJlZ2V4XzEuc3BhY2VzT3V0c2lkZVBhcmVudGhlc2VzLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYG11bHRpcGxlIHZhbHVlcyAo4oCcJHt2YWx1ZX3igJ0pIGFyZW7VmnQgc3VwcG9ydGVkIHdpdGgg4oCcYm9yZGVyV2lkdGjigJ0uIFVzZSDigJxib3JkZXJCb3R0b21XaWR0aOKAnSwg4oCcYm9yZGVyTGVmdFdpZHRo4oCdIOKAnGJvcmRlclJpZ2h0V2lkdGjigJ0gYW5kIOKAnGJvcmRlclRvcFdpZHRo4oCdIGluc3RlYWQuYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfTtcbn1cbmNvbnN0IGJvcmRlckxlZnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1sZnQnLFxuICAgIGNzc05hbWU6ICdib3JkZXItbGVmdCcsXG4gICAganNOYW1lOiAnYm9yZGVyTGVmdCdcbn07XG5jb25zdCBib3JkZXJMZWZ0Q29sb3IgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1sZnQtY2xyJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLWxlZnQtY29sb3InLFxuICAgIGpzTmFtZTogJ2JvcmRlckxlZnRDb2xvcidcbn07XG5jb25zdCBib3JkZXJMZWZ0U3R5bGUgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1sZnQtc3RsJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLWxlZnQtc3R5bGUnLFxuICAgIGpzTmFtZTogJ2JvcmRlckxlZnRTdHlsZScsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgYm9yZGVyTGVmdFdpZHRoID0ge1xuICAgIGNsYXNzTmFtZTogJ2ItbGZ0LXdkdCcsXG4gICAgY3NzTmFtZTogJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgICBqc05hbWU6ICdib3JkZXJMZWZ0V2lkdGgnXG59O1xuY29uc3QgYm9yZGVyUmlnaHQgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1yZ3QnLFxuICAgIGNzc05hbWU6ICdib3JkZXItcmlnaHQnLFxuICAgIGpzTmFtZTogJ2JvcmRlclJpZ2h0J1xufTtcbmNvbnN0IGJvcmRlclJpZ2h0Q29sb3IgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1yZ3QtY2xyJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgICBqc05hbWU6ICdib3JkZXJSaWdodENvbG9yJ1xufTtcbmNvbnN0IGJvcmRlclJpZ2h0U3R5bGUgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1yZ3Qtc3RsJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgICBqc05hbWU6ICdib3JkZXJSaWdodFN0eWxlJyxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5jb25zdCBib3JkZXJSaWdodFdpZHRoID0ge1xuICAgIGNsYXNzTmFtZTogJ2Itcmd0LXdkdCcsXG4gICAgY3NzTmFtZTogJ2JvcmRlci1yaWdodC13aWR0aCcsXG4gICAganNOYW1lOiAnYm9yZGVyUmlnaHRXaWR0aCdcbn07XG5jb25zdCBib3JkZXJUb3AgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi10b3AnLFxuICAgIGNzc05hbWU6ICdib3JkZXItdG9wJyxcbiAgICBqc05hbWU6ICdib3JkZXJUb3AnXG59O1xuY29uc3QgYm9yZGVyVG9wQ29sb3IgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi10b3AtY2xyJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXRvcC1jb2xvcicsXG4gICAganNOYW1lOiAnYm9yZGVyVG9wQ29sb3InXG59O1xuY29uc3QgYm9yZGVyVG9wU3R5bGUgPSB7XG4gICAgY2xhc3NOYW1lOiAnYi10b3Atc3RsJyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLXRvcC1zdHlsZScsXG4gICAganNOYW1lOiAnYm9yZGVyVG9wU3R5bGUnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGJvcmRlclRvcFdpZHRoID0ge1xuICAgIGNsYXNzTmFtZTogJ2ItdG9wLXdkdCcsXG4gICAgY3NzTmFtZTogJ2JvcmRlci10b3Atd2lkdGgnLFxuICAgIGpzTmFtZTogJ2JvcmRlclRvcFdpZHRoJ1xufTtcbmNvbnN0IGJvcmRlckJvdHRvbSA9IHtcbiAgICBjbGFzc05hbWU6ICdiLWJ0bScsXG4gICAgY3NzTmFtZTogJ2JvcmRlci1ib3R0b20nLFxuICAgIGpzTmFtZTogJ2JvcmRlckJvdHRvbSdcbn07XG5jb25zdCBib3JkZXJCb3R0b21Db2xvciA9IHtcbiAgICBjbGFzc05hbWU6ICdiLWJ0bS1jbHInLFxuICAgIGNzc05hbWU6ICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgICBqc05hbWU6ICdib3JkZXJCb3R0b21Db2xvcidcbn07XG5jb25zdCBib3JkZXJCb3R0b21TdHlsZSA9IHtcbiAgICBjbGFzc05hbWU6ICdiLWJ0bS1zdGwnLFxuICAgIGNzc05hbWU6ICdib3JkZXItYm90dG9tLXN0eWxlJyxcbiAgICBqc05hbWU6ICdib3JkZXJCb3R0b21TdHlsZScsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgYm9yZGVyQm90dG9tV2lkdGggPSB7XG4gICAgY2xhc3NOYW1lOiAnYi1idG0td2R0JyxcbiAgICBjc3NOYW1lOiAnYm9yZGVyLWJvdHRvbS13aWR0aCcsXG4gICAganNOYW1lOiAnYm9yZGVyQm90dG9tV2lkdGgnXG59O1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0ge1xuICAgIGJvcmRlckJvdHRvbTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJCb3R0b20sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyQm90dG9tQ29sb3I6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyQm90dG9tQ29sb3IsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyQm90dG9tU3R5bGU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyQm90dG9tU3R5bGUsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyQm90dG9tV2lkdGg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyQm90dG9tV2lkdGgsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyTGVmdDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJMZWZ0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlckxlZnRDb2xvcjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJMZWZ0Q29sb3IsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyTGVmdFN0eWxlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJvcmRlckxlZnRTdHlsZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBib3JkZXJMZWZ0V2lkdGg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyTGVmdFdpZHRoLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlclJpZ2h0OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJvcmRlclJpZ2h0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlclJpZ2h0Q29sb3I6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyUmlnaHRDb2xvciwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBib3JkZXJSaWdodFN0eWxlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJvcmRlclJpZ2h0U3R5bGUsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyUmlnaHRXaWR0aDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJSaWdodFdpZHRoLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGJvcmRlclRvcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3JkZXJUb3AsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyVG9wQ29sb3I6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyVG9wQ29sb3IsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyVG9wU3R5bGU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyVG9wU3R5bGUsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYm9yZGVyVG9wV2lkdGg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoYm9yZGVyVG9wV2lkdGgsIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/borders.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/box-shadow.js": /*!**************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/box-shadow.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n boxShadow: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst boxShadow = {\n className: 'bs',\n cssName: 'box-shadow',\n jsName: 'boxShadow',\n complexValue: true\n};\nexports.propEnhancers = {\n boxShadow: (value, selector) => (0, get_css_1.default)(boxShadow, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JveC1zaGFkb3cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2JveC1zaGFkb3cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBib3hTaGFkb3c6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZ1xufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7fTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmNvbnN0IGJveFNoYWRvdyA9IHtcbiAgICBjbGFzc05hbWU6ICdicycsXG4gICAgY3NzTmFtZTogJ2JveC1zaGFkb3cnLFxuICAgIGpzTmFtZTogJ2JveFNoYWRvdycsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0ge1xuICAgIGJveFNoYWRvdzogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3hTaGFkb3csIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/box-shadow.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/dimensions.js": /*!**************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/dimensions.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n height: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n maxHeight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n maxWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n minHeight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n minWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n width: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst width = {\n className: 'w',\n cssName: 'width',\n jsName: 'width'\n};\nconst height = {\n className: 'h',\n cssName: 'height',\n jsName: 'height'\n};\nconst minWidth = {\n className: 'min-w',\n cssName: 'min-width',\n jsName: 'minWidth'\n};\nconst minHeight = {\n className: 'min-h',\n cssName: 'min-height',\n jsName: 'minHeight'\n};\nconst maxWidth = {\n className: 'max-w',\n cssName: 'max-width',\n jsName: 'maxWidth'\n};\nconst maxHeight = {\n className: 'max-h',\n cssName: 'max-height',\n jsName: 'maxHeight'\n};\nexports.propEnhancers = {\n height: (value, selector) => (0, get_css_1.default)(height, value, selector),\n maxHeight: (value, selector) => (0, get_css_1.default)(maxHeight, value, selector),\n maxWidth: (value, selector) => (0, get_css_1.default)(maxWidth, value, selector),\n minHeight: (value, selector) => (0, get_css_1.default)(minHeight, value, selector),\n minWidth: (value, selector) => (0, get_css_1.default)(minWidth, value, selector),\n width: (value, selector) => (0, get_css_1.default)(width, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2RpbWVuc2lvbnMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvZGltZW5zaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIGhlaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1heEhlaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1heFdpZHRoOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgbWluSGVpZ2h0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgbWluV2lkdGg6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICB3aWR0aDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3Qgd2lkdGggPSB7XG4gICAgY2xhc3NOYW1lOiAndycsXG4gICAgY3NzTmFtZTogJ3dpZHRoJyxcbiAgICBqc05hbWU6ICd3aWR0aCdcbn07XG5jb25zdCBoZWlnaHQgPSB7XG4gICAgY2xhc3NOYW1lOiAnaCcsXG4gICAgY3NzTmFtZTogJ2hlaWdodCcsXG4gICAganNOYW1lOiAnaGVpZ2h0J1xufTtcbmNvbnN0IG1pbldpZHRoID0ge1xuICAgIGNsYXNzTmFtZTogJ21pbi13JyxcbiAgICBjc3NOYW1lOiAnbWluLXdpZHRoJyxcbiAgICBqc05hbWU6ICdtaW5XaWR0aCdcbn07XG5jb25zdCBtaW5IZWlnaHQgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWluLWgnLFxuICAgIGNzc05hbWU6ICdtaW4taGVpZ2h0JyxcbiAgICBqc05hbWU6ICdtaW5IZWlnaHQnXG59O1xuY29uc3QgbWF4V2lkdGggPSB7XG4gICAgY2xhc3NOYW1lOiAnbWF4LXcnLFxuICAgIGNzc05hbWU6ICdtYXgtd2lkdGgnLFxuICAgIGpzTmFtZTogJ21heFdpZHRoJ1xufTtcbmNvbnN0IG1heEhlaWdodCA9IHtcbiAgICBjbGFzc05hbWU6ICdtYXgtaCcsXG4gICAgY3NzTmFtZTogJ21heC1oZWlnaHQnLFxuICAgIGpzTmFtZTogJ21heEhlaWdodCdcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgaGVpZ2h0OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGhlaWdodCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBtYXhIZWlnaHQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobWF4SGVpZ2h0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIG1heFdpZHRoOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKG1heFdpZHRoLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIG1pbkhlaWdodDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShtaW5IZWlnaHQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgbWluV2lkdGg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobWluV2lkdGgsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgd2lkdGg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkod2lkdGgsIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/dimensions.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/flex.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/flex.js ***! \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n alignContent: prop_types_1.default.string,\n alignItems: prop_types_1.default.string,\n alignSelf: prop_types_1.default.string,\n flex: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n flexBasis: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n flexDirection: prop_types_1.default.string,\n flexFlow: prop_types_1.default.string,\n flexGrow: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n flexShrink: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n flexWrap: prop_types_1.default.string,\n justifyContent: prop_types_1.default.string,\n justifyItems: prop_types_1.default.string,\n justifySelf: prop_types_1.default.string,\n order: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n placeContent: prop_types_1.default.string,\n placeItems: prop_types_1.default.string,\n placeSelf: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst flex = {\n className: 'flx',\n cssName: 'flex',\n jsName: 'flex',\n isPrefixed: true,\n defaultUnit: ''\n};\nconst alignItems = {\n className: 'algn-itms',\n cssName: 'align-items',\n jsName: 'alignItems',\n isPrefixed: true\n};\nconst alignSelf = {\n className: 'algn-slf',\n cssName: 'align-self',\n jsName: 'alignSelf',\n isPrefixed: true\n};\nconst alignContent = {\n className: 'algn-cnt',\n cssName: 'align-content',\n jsName: 'alignContent',\n isPrefixed: true\n};\nconst justifyContent = {\n className: 'just-cnt',\n cssName: 'justify-content',\n jsName: 'justifyContent',\n isPrefixed: true\n};\nconst justifyItems = {\n className: 'just-items',\n cssName: 'justify-items',\n jsName: 'justifyItems',\n isPrefixed: true\n};\nconst justifySelf = {\n className: 'just-self',\n cssName: 'justify-self',\n jsName: 'justifySelf',\n isPrefixed: true\n};\nconst flexDirection = {\n className: 'flx-drct',\n cssName: 'flex-direction',\n jsName: 'flexDirection',\n isPrefixed: true,\n safeValue: true\n};\nconst flexWrap = {\n className: 'flx-wrap',\n cssName: 'flex-wrap',\n jsName: 'flexWrap',\n isPrefixed: true,\n safeValue: true\n};\nconst flexGrow = {\n className: 'flx-grow',\n cssName: 'flex-grow',\n jsName: 'flexGrow',\n isPrefixed: true,\n defaultUnit: ''\n};\nconst flexShrink = {\n className: 'flx-srnk',\n cssName: 'flex-shrink',\n jsName: 'flexShrink',\n isPrefixed: true,\n defaultUnit: ''\n};\nconst flexBasis = {\n className: 'flx-basis',\n cssName: 'flex-basis',\n jsName: 'flexBasis',\n isPrefixed: true\n};\nconst order = {\n className: 'order',\n cssName: 'order',\n jsName: 'order',\n isPrefixed: true,\n defaultUnit: '',\n safeValue: true\n};\nconst flexFlow = {\n className: 'flx-flow',\n cssName: 'flex-flow',\n jsName: 'flexFlow',\n isPrefixed: true,\n defaultUnit: ''\n};\nconst placeContent = {\n className: 'plc-cnt',\n cssName: 'place-content',\n jsName: 'placeContent'\n};\nconst placeItems = {\n className: 'plc-items',\n cssName: 'place-items',\n jsName: 'placeItems'\n};\nconst placeSelf = {\n className: 'plc-self',\n cssName: 'place-self',\n jsName: 'placeSelf'\n};\nexports.propEnhancers = {\n alignContent: (value, selector) => (0, get_css_1.default)(alignContent, value, selector),\n alignItems: (value, selector) => (0, get_css_1.default)(alignItems, value, selector),\n alignSelf: (value, selector) => (0, get_css_1.default)(alignSelf, value, selector),\n flex: (value, selector) => (0, get_css_1.default)(flex, value, selector),\n flexBasis: (value, selector) => (0, get_css_1.default)(flexBasis, value, selector),\n flexDirection: (value, selector) => (0, get_css_1.default)(flexDirection, value, selector),\n flexFlow: (value, selector) => (0, get_css_1.default)(flexFlow, value, selector),\n flexGrow: (value, selector) => (0, get_css_1.default)(flexGrow, value, selector),\n flexShrink: (value, selector) => (0, get_css_1.default)(flexShrink, value, selector),\n flexWrap: (value, selector) => (0, get_css_1.default)(flexWrap, value, selector),\n justifyContent: (value, selector) => (0, get_css_1.default)(justifyContent, value, selector),\n justifyItems: (value, selector) => (0, get_css_1.default)(justifyItems, value, selector),\n justifySelf: (value, selector) => (0, get_css_1.default)(justifySelf, value, selector),\n order: (value, selector) => (0, get_css_1.default)(order, value, selector),\n placeContent: (value, selector) => (0, get_css_1.default)(placeContent, value, selector),\n placeItems: (value, selector) => (0, get_css_1.default)(placeItems, value, selector),\n placeSelf: (value, selector) => (0, get_css_1.default)(placeSelf, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2ZsZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvZmxleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIGFsaWduQ29udGVudDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGFsaWduSXRlbXM6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBhbGlnblNlbGY6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBmbGV4OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZmxleEJhc2lzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZmxleERpcmVjdGlvbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGZsZXhGbG93OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZmxleEdyb3c6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBmbGV4U2hyaW5rOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZmxleFdyYXA6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBqdXN0aWZ5Q29udGVudDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGp1c3RpZnlJdGVtczogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGp1c3RpZnlTZWxmOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgb3JkZXI6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBwbGFjZUNvbnRlbnQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBwbGFjZUl0ZW1zOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgcGxhY2VTZWxmOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmdcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCBmbGV4ID0ge1xuICAgIGNsYXNzTmFtZTogJ2ZseCcsXG4gICAgY3NzTmFtZTogJ2ZsZXgnLFxuICAgIGpzTmFtZTogJ2ZsZXgnLFxuICAgIGlzUHJlZml4ZWQ6IHRydWUsXG4gICAgZGVmYXVsdFVuaXQ6ICcnXG59O1xuY29uc3QgYWxpZ25JdGVtcyA9IHtcbiAgICBjbGFzc05hbWU6ICdhbGduLWl0bXMnLFxuICAgIGNzc05hbWU6ICdhbGlnbi1pdGVtcycsXG4gICAganNOYW1lOiAnYWxpZ25JdGVtcycsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGFsaWduU2VsZiA9IHtcbiAgICBjbGFzc05hbWU6ICdhbGduLXNsZicsXG4gICAgY3NzTmFtZTogJ2FsaWduLXNlbGYnLFxuICAgIGpzTmFtZTogJ2FsaWduU2VsZicsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGFsaWduQ29udGVudCA9IHtcbiAgICBjbGFzc05hbWU6ICdhbGduLWNudCcsXG4gICAgY3NzTmFtZTogJ2FsaWduLWNvbnRlbnQnLFxuICAgIGpzTmFtZTogJ2FsaWduQ29udGVudCcsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGp1c3RpZnlDb250ZW50ID0ge1xuICAgIGNsYXNzTmFtZTogJ2p1c3QtY250JyxcbiAgICBjc3NOYW1lOiAnanVzdGlmeS1jb250ZW50JyxcbiAgICBqc05hbWU6ICdqdXN0aWZ5Q29udGVudCcsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGp1c3RpZnlJdGVtcyA9IHtcbiAgICBjbGFzc05hbWU6ICdqdXN0LWl0ZW1zJyxcbiAgICBjc3NOYW1lOiAnanVzdGlmeS1pdGVtcycsXG4gICAganNOYW1lOiAnanVzdGlmeUl0ZW1zJyxcbiAgICBpc1ByZWZpeGVkOiB0cnVlXG59O1xuY29uc3QganVzdGlmeVNlbGYgPSB7XG4gICAgY2xhc3NOYW1lOiAnanVzdC1zZWxmJyxcbiAgICBjc3NOYW1lOiAnanVzdGlmeS1zZWxmJyxcbiAgICBqc05hbWU6ICdqdXN0aWZ5U2VsZicsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGZsZXhEaXJlY3Rpb24gPSB7XG4gICAgY2xhc3NOYW1lOiAnZmx4LWRyY3QnLFxuICAgIGNzc05hbWU6ICdmbGV4LWRpcmVjdGlvbicsXG4gICAganNOYW1lOiAnZmxleERpcmVjdGlvbicsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZSxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5jb25zdCBmbGV4V3JhcCA9IHtcbiAgICBjbGFzc05hbWU6ICdmbHgtd3JhcCcsXG4gICAgY3NzTmFtZTogJ2ZsZXgtd3JhcCcsXG4gICAganNOYW1lOiAnZmxleFdyYXAnLFxuICAgIGlzUHJlZml4ZWQ6IHRydWUsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgZmxleEdyb3cgPSB7XG4gICAgY2xhc3NOYW1lOiAnZmx4LWdyb3cnLFxuICAgIGNzc05hbWU6ICdmbGV4LWdyb3cnLFxuICAgIGpzTmFtZTogJ2ZsZXhHcm93JyxcbiAgICBpc1ByZWZpeGVkOiB0cnVlLFxuICAgIGRlZmF1bHRVbml0OiAnJ1xufTtcbmNvbnN0IGZsZXhTaHJpbmsgPSB7XG4gICAgY2xhc3NOYW1lOiAnZmx4LXNybmsnLFxuICAgIGNzc05hbWU6ICdmbGV4LXNocmluaycsXG4gICAganNOYW1lOiAnZmxleFNocmluaycsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZSxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBmbGV4QmFzaXMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZmx4LWJhc2lzJyxcbiAgICBjc3NOYW1lOiAnZmxleC1iYXNpcycsXG4gICAganNOYW1lOiAnZmxleEJhc2lzJyxcbiAgICBpc1ByZWZpeGVkOiB0cnVlXG59O1xuY29uc3Qgb3JkZXIgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3JkZXInLFxuICAgIGNzc05hbWU6ICdvcmRlcicsXG4gICAganNOYW1lOiAnb3JkZXInLFxuICAgIGlzUHJlZml4ZWQ6IHRydWUsXG4gICAgZGVmYXVsdFVuaXQ6ICcnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGZsZXhGbG93ID0ge1xuICAgIGNsYXNzTmFtZTogJ2ZseC1mbG93JyxcbiAgICBjc3NOYW1lOiAnZmxleC1mbG93JyxcbiAgICBqc05hbWU6ICdmbGV4RmxvdycsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZSxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBwbGFjZUNvbnRlbnQgPSB7XG4gICAgY2xhc3NOYW1lOiAncGxjLWNudCcsXG4gICAgY3NzTmFtZTogJ3BsYWNlLWNvbnRlbnQnLFxuICAgIGpzTmFtZTogJ3BsYWNlQ29udGVudCdcbn07XG5jb25zdCBwbGFjZUl0ZW1zID0ge1xuICAgIGNsYXNzTmFtZTogJ3BsYy1pdGVtcycsXG4gICAgY3NzTmFtZTogJ3BsYWNlLWl0ZW1zJyxcbiAgICBqc05hbWU6ICdwbGFjZUl0ZW1zJ1xufTtcbmNvbnN0IHBsYWNlU2VsZiA9IHtcbiAgICBjbGFzc05hbWU6ICdwbGMtc2VsZicsXG4gICAgY3NzTmFtZTogJ3BsYWNlLXNlbGYnLFxuICAgIGpzTmFtZTogJ3BsYWNlU2VsZidcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgYWxpZ25Db250ZW50OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFsaWduQ29udGVudCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBhbGlnbkl0ZW1zOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFsaWduSXRlbXMsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgYWxpZ25TZWxmOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGFsaWduU2VsZiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBmbGV4OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZsZXgsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZmxleEJhc2lzOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZsZXhCYXNpcywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBmbGV4RGlyZWN0aW9uOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZsZXhEaXJlY3Rpb24sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZmxleEZsb3c6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZmxleEZsb3csIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZmxleEdyb3c6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZmxleEdyb3csIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZmxleFNocmluazogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShmbGV4U2hyaW5rLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGZsZXhXcmFwOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZsZXhXcmFwLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGp1c3RpZnlDb250ZW50OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGp1c3RpZnlDb250ZW50LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGp1c3RpZnlJdGVtczogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShqdXN0aWZ5SXRlbXMsIHZhbHVlLCBzZWxlY3RvciksXG4gICAganVzdGlmeVNlbGY6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoanVzdGlmeVNlbGYsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgb3JkZXI6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkob3JkZXIsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgcGxhY2VDb250ZW50OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHBsYWNlQ29udGVudCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBwbGFjZUl0ZW1zOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHBsYWNlSXRlbXMsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgcGxhY2VTZWxmOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHBsYWNlU2VsZiwgdmFsdWUsIHNlbGVjdG9yKVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/flex.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/grid.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/grid.js ***! \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n columnGap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n grid: prop_types_1.default.string,\n gridArea: prop_types_1.default.string,\n gridAutoColumns: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridAutoFlow: prop_types_1.default.string,\n gridAutoRows: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridColumn: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridColumnEnd: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridColumnGap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridColumnStart: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridGap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridRow: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridRowEnd: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridRowGap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridRowStart: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n gridTemplate: prop_types_1.default.string,\n gridTemplateAreas: prop_types_1.default.string,\n gridTemplateColumns: prop_types_1.default.string,\n gridTemplateRows: prop_types_1.default.string,\n rowGap: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst columnGap = {\n className: 'col-gap',\n cssName: 'column-gap',\n jsName: 'columnGap'\n};\nconst gap = {\n className: 'gap',\n cssName: 'gap',\n jsName: 'gap'\n};\nconst grid = {\n className: 'grd',\n cssName: 'grid',\n jsName: 'grid',\n complexValue: true\n};\nconst gridArea = {\n className: 'grd-ara',\n cssName: 'grid-area',\n jsName: 'gridArea',\n complexValue: true\n};\nconst gridAutoColumns = {\n className: 'grd-ato-col',\n cssName: 'grid-auto-columns',\n jsName: 'gridAutoColumns',\n complexValue: true\n};\nconst gridAutoFlow = {\n className: 'grd-ato-flw',\n cssName: 'grid-auto-flow',\n jsName: 'gridAutoFlow'\n};\nconst gridAutoRows = {\n className: 'grd-ato-row',\n cssName: 'grid-auto-rows',\n jsName: 'gridAutoRows',\n complexValue: true\n};\nconst gridColumn = {\n className: 'grd-col',\n cssName: 'grid-column',\n jsName: 'gridColumn',\n defaultUnit: '',\n complexValue: true\n};\nconst gridColumnEnd = {\n className: 'grd-col-end',\n cssName: 'grid-column-end',\n jsName: 'gridColumnEnd',\n defaultUnit: ''\n};\nconst gridColumnGap = {\n className: 'grd-col-gap',\n cssName: 'grid-column-gap',\n jsName: 'gridColumnGap'\n};\nconst gridColumnStart = {\n className: 'grd-col-str',\n cssName: 'grid-column-start',\n jsName: 'gridColumnStart',\n defaultUnit: ''\n};\nconst gridGap = {\n className: 'grd-gap',\n cssName: 'grid-gap',\n jsName: 'gridGap'\n};\nconst gridRow = {\n className: 'grd-row',\n cssName: 'grid-row',\n jsName: 'gridRow',\n defaultUnit: '',\n complexValue: true\n};\nconst gridRowEnd = {\n className: 'grd-row-end',\n cssName: 'grid-row-end',\n jsName: 'gridRowEnd',\n defaultUnit: ''\n};\nconst gridRowGap = {\n className: 'grd-row-gap',\n cssName: 'grid-row-gap',\n jsName: 'gridRowGap'\n};\nconst gridRowStart = {\n className: 'grd-row-str',\n cssName: 'grid-row-start',\n jsName: 'gridRowStart',\n defaultUnit: ''\n};\nconst gridTemplate = {\n className: 'grd-tmp',\n cssName: 'grid-template',\n jsName: 'gridTemplate',\n complexValue: true\n};\nconst gridTemplateAreas = {\n className: 'grd-tmp-ara',\n cssName: 'grid-template-areas',\n jsName: 'gridTemplateAreas',\n complexValue: true\n};\nconst gridTemplateColumns = {\n className: 'grd-tmp-col',\n cssName: 'grid-template-columns',\n jsName: 'gridTemplateColumns',\n complexValue: true\n};\nconst gridTemplateRows = {\n className: 'grd-tmp-row',\n cssName: 'grid-template-rows',\n jsName: 'gridTemplateRows',\n complexValue: true\n};\nconst rowGap = {\n className: 'row-gap',\n cssName: 'row-gap',\n jsName: 'rowGap'\n};\nexports.propEnhancers = {\n columnGap: (value, selector) => (0, get_css_1.default)(columnGap, value, selector),\n gap: (value, selector) => (0, get_css_1.default)(gap, value, selector),\n grid: (value, selector) => (0, get_css_1.default)(grid, value, selector),\n gridArea: (value, selector) => (0, get_css_1.default)(gridArea, value, selector),\n gridAutoColumns: (value, selector) => (0, get_css_1.default)(gridAutoColumns, value, selector),\n gridAutoFlow: (value, selector) => (0, get_css_1.default)(gridAutoFlow, value, selector),\n gridAutoRows: (value, selector) => (0, get_css_1.default)(gridAutoRows, value, selector),\n gridColumn: (value, selector) => (0, get_css_1.default)(gridColumn, value, selector),\n gridColumnEnd: (value, selector) => (0, get_css_1.default)(gridColumnEnd, value, selector),\n gridColumnGap: (value, selector) => (0, get_css_1.default)(gridColumnGap, value, selector),\n gridColumnStart: (value, selector) => (0, get_css_1.default)(gridColumnStart, value, selector),\n gridGap: (value, selector) => (0, get_css_1.default)(gridGap, value, selector),\n gridRow: (value, selector) => (0, get_css_1.default)(gridRow, value, selector),\n gridRowEnd: (value, selector) => (0, get_css_1.default)(gridRowEnd, value, selector),\n gridRowGap: (value, selector) => (0, get_css_1.default)(gridRowGap, value, selector),\n gridRowStart: (value, selector) => (0, get_css_1.default)(gridRowStart, value, selector),\n gridTemplate: (value, selector) => (0, get_css_1.default)(gridTemplate, value, selector),\n gridTemplateAreas: (value, selector) => (0, get_css_1.default)(gridTemplateAreas, value, selector),\n gridTemplateColumns: (value, selector) => (0, get_css_1.default)(gridTemplateColumns, value, selector),\n gridTemplateRows: (value, selector) => (0, get_css_1.default)(gridTemplateRows, value, selector),\n rowGap: (value, selector) => (0, get_css_1.default)(rowGap, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2dyaWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9ncmlkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgY29sdW1uR2FwOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ2FwOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGdyaWRBcmVhOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZ3JpZEF1dG9Db2x1bW5zOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZEF1dG9GbG93OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZ3JpZEF1dG9Sb3dzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZENvbHVtbjogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIGdyaWRDb2x1bW5FbmQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBncmlkQ29sdW1uR2FwOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZENvbHVtblN0YXJ0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZEdhcDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIGdyaWRSb3c6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBncmlkUm93RW5kOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgZ3JpZFJvd0dhcDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIGdyaWRSb3dTdGFydDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIGdyaWRUZW1wbGF0ZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGdyaWRUZW1wbGF0ZUFyZWFzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGdyaWRUZW1wbGF0ZVJvd3M6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICByb3dHYXA6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKVxufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7fTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmNvbnN0IGNvbHVtbkdhcCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb2wtZ2FwJyxcbiAgICBjc3NOYW1lOiAnY29sdW1uLWdhcCcsXG4gICAganNOYW1lOiAnY29sdW1uR2FwJ1xufTtcbmNvbnN0IGdhcCA9IHtcbiAgICBjbGFzc05hbWU6ICdnYXAnLFxuICAgIGNzc05hbWU6ICdnYXAnLFxuICAgIGpzTmFtZTogJ2dhcCdcbn07XG5jb25zdCBncmlkID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZCcsXG4gICAgY3NzTmFtZTogJ2dyaWQnLFxuICAgIGpzTmFtZTogJ2dyaWQnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRBcmVhID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC1hcmEnLFxuICAgIGNzc05hbWU6ICdncmlkLWFyZWEnLFxuICAgIGpzTmFtZTogJ2dyaWRBcmVhJyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5jb25zdCBncmlkQXV0b0NvbHVtbnMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLWF0by1jb2wnLFxuICAgIGNzc05hbWU6ICdncmlkLWF1dG8tY29sdW1ucycsXG4gICAganNOYW1lOiAnZ3JpZEF1dG9Db2x1bW5zJyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5jb25zdCBncmlkQXV0b0Zsb3cgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLWF0by1mbHcnLFxuICAgIGNzc05hbWU6ICdncmlkLWF1dG8tZmxvdycsXG4gICAganNOYW1lOiAnZ3JpZEF1dG9GbG93J1xufTtcbmNvbnN0IGdyaWRBdXRvUm93cyA9IHtcbiAgICBjbGFzc05hbWU6ICdncmQtYXRvLXJvdycsXG4gICAgY3NzTmFtZTogJ2dyaWQtYXV0by1yb3dzJyxcbiAgICBqc05hbWU6ICdncmlkQXV0b1Jvd3MnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRDb2x1bW4gPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLWNvbCcsXG4gICAgY3NzTmFtZTogJ2dyaWQtY29sdW1uJyxcbiAgICBqc05hbWU6ICdncmlkQ29sdW1uJyxcbiAgICBkZWZhdWx0VW5pdDogJycsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgZ3JpZENvbHVtbkVuZCA9IHtcbiAgICBjbGFzc05hbWU6ICdncmQtY29sLWVuZCcsXG4gICAgY3NzTmFtZTogJ2dyaWQtY29sdW1uLWVuZCcsXG4gICAganNOYW1lOiAnZ3JpZENvbHVtbkVuZCcsXG4gICAgZGVmYXVsdFVuaXQ6ICcnXG59O1xuY29uc3QgZ3JpZENvbHVtbkdhcCA9IHtcbiAgICBjbGFzc05hbWU6ICdncmQtY29sLWdhcCcsXG4gICAgY3NzTmFtZTogJ2dyaWQtY29sdW1uLWdhcCcsXG4gICAganNOYW1lOiAnZ3JpZENvbHVtbkdhcCdcbn07XG5jb25zdCBncmlkQ29sdW1uU3RhcnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLWNvbC1zdHInLFxuICAgIGNzc05hbWU6ICdncmlkLWNvbHVtbi1zdGFydCcsXG4gICAganNOYW1lOiAnZ3JpZENvbHVtblN0YXJ0JyxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBncmlkR2FwID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC1nYXAnLFxuICAgIGNzc05hbWU6ICdncmlkLWdhcCcsXG4gICAganNOYW1lOiAnZ3JpZEdhcCdcbn07XG5jb25zdCBncmlkUm93ID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC1yb3cnLFxuICAgIGNzc05hbWU6ICdncmlkLXJvdycsXG4gICAganNOYW1lOiAnZ3JpZFJvdycsXG4gICAgZGVmYXVsdFVuaXQ6ICcnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRSb3dFbmQgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLXJvdy1lbmQnLFxuICAgIGNzc05hbWU6ICdncmlkLXJvdy1lbmQnLFxuICAgIGpzTmFtZTogJ2dyaWRSb3dFbmQnLFxuICAgIGRlZmF1bHRVbml0OiAnJ1xufTtcbmNvbnN0IGdyaWRSb3dHYXAgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLXJvdy1nYXAnLFxuICAgIGNzc05hbWU6ICdncmlkLXJvdy1nYXAnLFxuICAgIGpzTmFtZTogJ2dyaWRSb3dHYXAnXG59O1xuY29uc3QgZ3JpZFJvd1N0YXJ0ID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC1yb3ctc3RyJyxcbiAgICBjc3NOYW1lOiAnZ3JpZC1yb3ctc3RhcnQnLFxuICAgIGpzTmFtZTogJ2dyaWRSb3dTdGFydCcsXG4gICAgZGVmYXVsdFVuaXQ6ICcnXG59O1xuY29uc3QgZ3JpZFRlbXBsYXRlID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC10bXAnLFxuICAgIGNzc05hbWU6ICdncmlkLXRlbXBsYXRlJyxcbiAgICBqc05hbWU6ICdncmlkVGVtcGxhdGUnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRUZW1wbGF0ZUFyZWFzID0ge1xuICAgIGNsYXNzTmFtZTogJ2dyZC10bXAtYXJhJyxcbiAgICBjc3NOYW1lOiAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICAganNOYW1lOiAnZ3JpZFRlbXBsYXRlQXJlYXMnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLXRtcC1jb2wnLFxuICAgIGNzc05hbWU6ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAgIGpzTmFtZTogJ2dyaWRUZW1wbGF0ZUNvbHVtbnMnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGdyaWRUZW1wbGF0ZVJvd3MgPSB7XG4gICAgY2xhc3NOYW1lOiAnZ3JkLXRtcC1yb3cnLFxuICAgIGNzc05hbWU6ICdncmlkLXRlbXBsYXRlLXJvd3MnLFxuICAgIGpzTmFtZTogJ2dyaWRUZW1wbGF0ZVJvd3MnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IHJvd0dhcCA9IHtcbiAgICBjbGFzc05hbWU6ICdyb3ctZ2FwJyxcbiAgICBjc3NOYW1lOiAncm93LWdhcCcsXG4gICAganNOYW1lOiAncm93R2FwJ1xufTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICBjb2x1bW5HYXA6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoY29sdW1uR2FwLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdhcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShnYXAsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRBcmVhOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRBcmVhLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRBdXRvQ29sdW1uczogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkQXV0b0NvbHVtbnMsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZEF1dG9GbG93OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRBdXRvRmxvdywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBncmlkQXV0b1Jvd3M6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZ3JpZEF1dG9Sb3dzLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRDb2x1bW46ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZ3JpZENvbHVtbiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBncmlkQ29sdW1uRW5kOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRDb2x1bW5FbmQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZENvbHVtbkdhcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkQ29sdW1uR2FwLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRDb2x1bW5TdGFydDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkQ29sdW1uU3RhcnQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZEdhcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkR2FwLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRSb3c6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZ3JpZFJvdywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBncmlkUm93RW5kOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRSb3dFbmQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZFJvd0dhcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkUm93R2FwLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGdyaWRSb3dTdGFydDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkUm93U3RhcnQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZFRlbXBsYXRlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRUZW1wbGF0ZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBncmlkVGVtcGxhdGVBcmVhczogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkVGVtcGxhdGVBcmVhcywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBncmlkVGVtcGxhdGVDb2x1bW5zOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGdyaWRUZW1wbGF0ZUNvbHVtbnMsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZ3JpZFRlbXBsYXRlUm93czogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShncmlkVGVtcGxhdGVSb3dzLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHJvd0dhcDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShyb3dHYXAsIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/grid.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js": /*!*********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/index.js ***! \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propNames = exports.propTypes = exports.transition = exports.transform = exports.text = exports.svg = exports.spacing = exports.selectors = exports.resize = exports.position = exports.overflow = exports.outline = exports.opacity = exports.list = exports.layout = exports.interaction = exports.grid = exports.flex = exports.dimensions = exports.boxShadow = exports.borders = exports.borderRadius = exports.background = exports.animation = void 0;\nconst animation = __importStar(__webpack_require__(/*! ./animation */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/animation.js\"));\nexports.animation = animation;\nconst background = __importStar(__webpack_require__(/*! ./background */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/background.js\"));\nexports.background = background;\nconst borderRadius = __importStar(__webpack_require__(/*! ./border-radius */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/border-radius.js\"));\nexports.borderRadius = borderRadius;\nconst borders = __importStar(__webpack_require__(/*! ./borders */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/borders.js\"));\nexports.borders = borders;\nconst boxShadow = __importStar(__webpack_require__(/*! ./box-shadow */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/box-shadow.js\"));\nexports.boxShadow = boxShadow;\nconst dimensions = __importStar(__webpack_require__(/*! ./dimensions */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/dimensions.js\"));\nexports.dimensions = dimensions;\nconst flex = __importStar(__webpack_require__(/*! ./flex */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/flex.js\"));\nexports.flex = flex;\nconst grid = __importStar(__webpack_require__(/*! ./grid */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/grid.js\"));\nexports.grid = grid;\nconst interaction = __importStar(__webpack_require__(/*! ./interaction */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/interaction.js\"));\nexports.interaction = interaction;\nconst layout = __importStar(__webpack_require__(/*! ./layout */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/layout.js\"));\nexports.layout = layout;\nconst list = __importStar(__webpack_require__(/*! ./list */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/list.js\"));\nexports.list = list;\nconst opacity = __importStar(__webpack_require__(/*! ./opacity */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/opacity.js\"));\nexports.opacity = opacity;\nconst outline = __importStar(__webpack_require__(/*! ./outline */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/outline.js\"));\nexports.outline = outline;\nconst overflow = __importStar(__webpack_require__(/*! ./overflow */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/overflow.js\"));\nexports.overflow = overflow;\nconst position = __importStar(__webpack_require__(/*! ./position */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/position.js\"));\nexports.position = position;\nconst resize = __importStar(__webpack_require__(/*! ./resize */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/resize.js\"));\nexports.resize = resize;\nconst selectors = __importStar(__webpack_require__(/*! ./selectors */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/selectors.js\"));\nexports.selectors = selectors;\nconst spacing = __importStar(__webpack_require__(/*! ./spacing */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/spacing.js\"));\nexports.spacing = spacing;\nconst svg = __importStar(__webpack_require__(/*! ./svg */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/svg.js\"));\nexports.svg = svg;\nconst text = __importStar(__webpack_require__(/*! ./text */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/text.js\"));\nexports.text = text;\nconst transform = __importStar(__webpack_require__(/*! ./transform */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transform.js\"));\nexports.transform = transform;\nconst transition = __importStar(__webpack_require__(/*! ./transition */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transition.js\"));\nexports.transition = transition;\nexports.propTypes = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, animation.propTypes), background.propTypes), borderRadius.propTypes), borders.propTypes), boxShadow.propTypes), dimensions.propTypes), flex.propTypes), grid.propTypes), interaction.propTypes), layout.propTypes), list.propTypes), opacity.propTypes), outline.propTypes), overflow.propTypes), position.propTypes), resize.propTypes), selectors.propTypes), spacing.propTypes), svg.propTypes), text.propTypes), transform.propTypes), transition.propTypes);\nexports.propNames = Object.keys(exports.propTypes);\nexports.propAliases = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, animation.propAliases), background.propAliases), borderRadius.propAliases), borders.propAliases), boxShadow.propAliases), dimensions.propAliases), flex.propAliases), grid.propAliases), interaction.propAliases), layout.propAliases), list.propAliases), opacity.propAliases), outline.propAliases), overflow.propAliases), position.propAliases), resize.propAliases), selectors.propAliases), spacing.propAliases), svg.propAliases), text.propAliases), transform.propAliases), transition.propAliases);\nexports.propValidators = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, animation.propValidators), background.propValidators), borderRadius.propValidators), borders.propValidators), boxShadow.propValidators), dimensions.propValidators), flex.propValidators), grid.propValidators), interaction.propValidators), layout.propValidators), list.propValidators), opacity.propValidators), outline.propValidators), overflow.propValidators), position.propValidators), resize.propValidators), selectors.propValidators), spacing.propValidators), svg.propValidators), text.propValidators), transform.propValidators), transition.propValidators);\nexports.propEnhancers = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, animation.propEnhancers), background.propEnhancers), borderRadius.propEnhancers), borders.propEnhancers), boxShadow.propEnhancers), dimensions.propEnhancers), flex.propEnhancers), grid.propEnhancers), interaction.propEnhancers), layout.propEnhancers), list.propEnhancers), opacity.propEnhancers), outline.propEnhancers), overflow.propEnhancers), position.propEnhancers), resize.propEnhancers), selectors.propEnhancers), spacing.propEnhancers), svg.propEnhancers), text.propEnhancers), transform.propEnhancers), transition.propEnhancers);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9DQUFvQztBQUNuRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUIsR0FBRyxpQkFBaUIsR0FBRyxrQkFBa0IsR0FBRyxpQkFBaUIsR0FBRyxZQUFZLEdBQUcsV0FBVyxHQUFHLGVBQWUsR0FBRyxpQkFBaUIsR0FBRyxjQUFjLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLGVBQWUsR0FBRyxZQUFZLEdBQUcsY0FBYyxHQUFHLG1CQUFtQixHQUFHLFlBQVksR0FBRyxZQUFZLEdBQUcsa0JBQWtCLEdBQUcsaUJBQWlCLEdBQUcsZUFBZSxHQUFHLG9CQUFvQixHQUFHLGtCQUFrQixHQUFHLGlCQUFpQjtBQUNsZ0IsK0JBQStCLG1CQUFPLENBQUMsOEZBQWE7QUFDcEQsaUJBQWlCO0FBQ2pCLGdDQUFnQyxtQkFBTyxDQUFDLGdHQUFjO0FBQ3RELGtCQUFrQjtBQUNsQixrQ0FBa0MsbUJBQU8sQ0FBQyxzR0FBaUI7QUFDM0Qsb0JBQW9CO0FBQ3BCLDZCQUE2QixtQkFBTyxDQUFDLDBGQUFXO0FBQ2hELGVBQWU7QUFDZiwrQkFBK0IsbUJBQU8sQ0FBQyxnR0FBYztBQUNyRCxpQkFBaUI7QUFDakIsZ0NBQWdDLG1CQUFPLENBQUMsZ0dBQWM7QUFDdEQsa0JBQWtCO0FBQ2xCLDBCQUEwQixtQkFBTyxDQUFDLG9GQUFRO0FBQzFDLFlBQVk7QUFDWiwwQkFBMEIsbUJBQU8sQ0FBQyxvRkFBUTtBQUMxQyxZQUFZO0FBQ1osaUNBQWlDLG1CQUFPLENBQUMsa0dBQWU7QUFDeEQsbUJBQW1CO0FBQ25CLDRCQUE0QixtQkFBTyxDQUFDLHdGQUFVO0FBQzlDLGNBQWM7QUFDZCwwQkFBMEIsbUJBQU8sQ0FBQyxvRkFBUTtBQUMxQyxZQUFZO0FBQ1osNkJBQTZCLG1CQUFPLENBQUMsMEZBQVc7QUFDaEQsZUFBZTtBQUNmLDZCQUE2QixtQkFBTyxDQUFDLDBGQUFXO0FBQ2hELGVBQWU7QUFDZiw4QkFBOEIsbUJBQU8sQ0FBQyw0RkFBWTtBQUNsRCxnQkFBZ0I7QUFDaEIsOEJBQThCLG1CQUFPLENBQUMsNEZBQVk7QUFDbEQsZ0JBQWdCO0FBQ2hCLDRCQUE0QixtQkFBTyxDQUFDLHdGQUFVO0FBQzlDLGNBQWM7QUFDZCwrQkFBK0IsbUJBQU8sQ0FBQyw4RkFBYTtBQUNwRCxpQkFBaUI7QUFDakIsNkJBQTZCLG1CQUFPLENBQUMsMEZBQVc7QUFDaEQsZUFBZTtBQUNmLHlCQUF5QixtQkFBTyxDQUFDLGtGQUFPO0FBQ3hDLFdBQVc7QUFDWCwwQkFBMEIsbUJBQU8sQ0FBQyxvRkFBUTtBQUMxQyxZQUFZO0FBQ1osK0JBQStCLG1CQUFPLENBQUMsOEZBQWE7QUFDcEQsaUJBQWlCO0FBQ2pCLGdDQUFnQyxtQkFBTyxDQUFDLGdHQUFjO0FBQ3RELGtCQUFrQjtBQUNsQixpQkFBaUIseVRBQXlUO0FBQzFVLGlCQUFpQjtBQUNqQixtQkFBbUIseVRBQXlUO0FBQzVVLHNCQUFzQix5VEFBeVQ7QUFDL1UscUJBQXFCLHlUQUF5VCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BOYW1lcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gZXhwb3J0cy50cmFuc2l0aW9uID0gZXhwb3J0cy50cmFuc2Zvcm0gPSBleHBvcnRzLnRleHQgPSBleHBvcnRzLnN2ZyA9IGV4cG9ydHMuc3BhY2luZyA9IGV4cG9ydHMuc2VsZWN0b3JzID0gZXhwb3J0cy5yZXNpemUgPSBleHBvcnRzLnBvc2l0aW9uID0gZXhwb3J0cy5vdmVyZmxvdyA9IGV4cG9ydHMub3V0bGluZSA9IGV4cG9ydHMub3BhY2l0eSA9IGV4cG9ydHMubGlzdCA9IGV4cG9ydHMubGF5b3V0ID0gZXhwb3J0cy5pbnRlcmFjdGlvbiA9IGV4cG9ydHMuZ3JpZCA9IGV4cG9ydHMuZmxleCA9IGV4cG9ydHMuZGltZW5zaW9ucyA9IGV4cG9ydHMuYm94U2hhZG93ID0gZXhwb3J0cy5ib3JkZXJzID0gZXhwb3J0cy5ib3JkZXJSYWRpdXMgPSBleHBvcnRzLmJhY2tncm91bmQgPSBleHBvcnRzLmFuaW1hdGlvbiA9IHZvaWQgMDtcbmNvbnN0IGFuaW1hdGlvbiA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9hbmltYXRpb25cIikpO1xuZXhwb3J0cy5hbmltYXRpb24gPSBhbmltYXRpb247XG5jb25zdCBiYWNrZ3JvdW5kID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2JhY2tncm91bmRcIikpO1xuZXhwb3J0cy5iYWNrZ3JvdW5kID0gYmFja2dyb3VuZDtcbmNvbnN0IGJvcmRlclJhZGl1cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9ib3JkZXItcmFkaXVzXCIpKTtcbmV4cG9ydHMuYm9yZGVyUmFkaXVzID0gYm9yZGVyUmFkaXVzO1xuY29uc3QgYm9yZGVycyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9ib3JkZXJzXCIpKTtcbmV4cG9ydHMuYm9yZGVycyA9IGJvcmRlcnM7XG5jb25zdCBib3hTaGFkb3cgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vYm94LXNoYWRvd1wiKSk7XG5leHBvcnRzLmJveFNoYWRvdyA9IGJveFNoYWRvdztcbmNvbnN0IGRpbWVuc2lvbnMgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vZGltZW5zaW9uc1wiKSk7XG5leHBvcnRzLmRpbWVuc2lvbnMgPSBkaW1lbnNpb25zO1xuY29uc3QgZmxleCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9mbGV4XCIpKTtcbmV4cG9ydHMuZmxleCA9IGZsZXg7XG5jb25zdCBncmlkID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2dyaWRcIikpO1xuZXhwb3J0cy5ncmlkID0gZ3JpZDtcbmNvbnN0IGludGVyYWN0aW9uID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2ludGVyYWN0aW9uXCIpKTtcbmV4cG9ydHMuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcbmNvbnN0IGxheW91dCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9sYXlvdXRcIikpO1xuZXhwb3J0cy5sYXlvdXQgPSBsYXlvdXQ7XG5jb25zdCBsaXN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2xpc3RcIikpO1xuZXhwb3J0cy5saXN0ID0gbGlzdDtcbmNvbnN0IG9wYWNpdHkgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vb3BhY2l0eVwiKSk7XG5leHBvcnRzLm9wYWNpdHkgPSBvcGFjaXR5O1xuY29uc3Qgb3V0bGluZSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9vdXRsaW5lXCIpKTtcbmV4cG9ydHMub3V0bGluZSA9IG91dGxpbmU7XG5jb25zdCBvdmVyZmxvdyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9vdmVyZmxvd1wiKSk7XG5leHBvcnRzLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG5jb25zdCBwb3NpdGlvbiA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9wb3NpdGlvblwiKSk7XG5leHBvcnRzLnBvc2l0aW9uID0gcG9zaXRpb247XG5jb25zdCByZXNpemUgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vcmVzaXplXCIpKTtcbmV4cG9ydHMucmVzaXplID0gcmVzaXplO1xuY29uc3Qgc2VsZWN0b3JzID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL3NlbGVjdG9yc1wiKSk7XG5leHBvcnRzLnNlbGVjdG9ycyA9IHNlbGVjdG9ycztcbmNvbnN0IHNwYWNpbmcgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vc3BhY2luZ1wiKSk7XG5leHBvcnRzLnNwYWNpbmcgPSBzcGFjaW5nO1xuY29uc3Qgc3ZnID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL3N2Z1wiKSk7XG5leHBvcnRzLnN2ZyA9IHN2ZztcbmNvbnN0IHRleHQgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vdGV4dFwiKSk7XG5leHBvcnRzLnRleHQgPSB0ZXh0O1xuY29uc3QgdHJhbnNmb3JtID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL3RyYW5zZm9ybVwiKSk7XG5leHBvcnRzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbmNvbnN0IHRyYW5zaXRpb24gPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vdHJhbnNpdGlvblwiKSk7XG5leHBvcnRzLnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhbmltYXRpb24ucHJvcFR5cGVzKSwgYmFja2dyb3VuZC5wcm9wVHlwZXMpLCBib3JkZXJSYWRpdXMucHJvcFR5cGVzKSwgYm9yZGVycy5wcm9wVHlwZXMpLCBib3hTaGFkb3cucHJvcFR5cGVzKSwgZGltZW5zaW9ucy5wcm9wVHlwZXMpLCBmbGV4LnByb3BUeXBlcyksIGdyaWQucHJvcFR5cGVzKSwgaW50ZXJhY3Rpb24ucHJvcFR5cGVzKSwgbGF5b3V0LnByb3BUeXBlcyksIGxpc3QucHJvcFR5cGVzKSwgb3BhY2l0eS5wcm9wVHlwZXMpLCBvdXRsaW5lLnByb3BUeXBlcyksIG92ZXJmbG93LnByb3BUeXBlcyksIHBvc2l0aW9uLnByb3BUeXBlcyksIHJlc2l6ZS5wcm9wVHlwZXMpLCBzZWxlY3RvcnMucHJvcFR5cGVzKSwgc3BhY2luZy5wcm9wVHlwZXMpLCBzdmcucHJvcFR5cGVzKSwgdGV4dC5wcm9wVHlwZXMpLCB0cmFuc2Zvcm0ucHJvcFR5cGVzKSwgdHJhbnNpdGlvbi5wcm9wVHlwZXMpO1xuZXhwb3J0cy5wcm9wTmFtZXMgPSBPYmplY3Qua2V5cyhleHBvcnRzLnByb3BUeXBlcyk7XG5leHBvcnRzLnByb3BBbGlhc2VzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYW5pbWF0aW9uLnByb3BBbGlhc2VzKSwgYmFja2dyb3VuZC5wcm9wQWxpYXNlcyksIGJvcmRlclJhZGl1cy5wcm9wQWxpYXNlcyksIGJvcmRlcnMucHJvcEFsaWFzZXMpLCBib3hTaGFkb3cucHJvcEFsaWFzZXMpLCBkaW1lbnNpb25zLnByb3BBbGlhc2VzKSwgZmxleC5wcm9wQWxpYXNlcyksIGdyaWQucHJvcEFsaWFzZXMpLCBpbnRlcmFjdGlvbi5wcm9wQWxpYXNlcyksIGxheW91dC5wcm9wQWxpYXNlcyksIGxpc3QucHJvcEFsaWFzZXMpLCBvcGFjaXR5LnByb3BBbGlhc2VzKSwgb3V0bGluZS5wcm9wQWxpYXNlcyksIG92ZXJmbG93LnByb3BBbGlhc2VzKSwgcG9zaXRpb24ucHJvcEFsaWFzZXMpLCByZXNpemUucHJvcEFsaWFzZXMpLCBzZWxlY3RvcnMucHJvcEFsaWFzZXMpLCBzcGFjaW5nLnByb3BBbGlhc2VzKSwgc3ZnLnByb3BBbGlhc2VzKSwgdGV4dC5wcm9wQWxpYXNlcyksIHRyYW5zZm9ybS5wcm9wQWxpYXNlcyksIHRyYW5zaXRpb24ucHJvcEFsaWFzZXMpO1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFuaW1hdGlvbi5wcm9wVmFsaWRhdG9ycyksIGJhY2tncm91bmQucHJvcFZhbGlkYXRvcnMpLCBib3JkZXJSYWRpdXMucHJvcFZhbGlkYXRvcnMpLCBib3JkZXJzLnByb3BWYWxpZGF0b3JzKSwgYm94U2hhZG93LnByb3BWYWxpZGF0b3JzKSwgZGltZW5zaW9ucy5wcm9wVmFsaWRhdG9ycyksIGZsZXgucHJvcFZhbGlkYXRvcnMpLCBncmlkLnByb3BWYWxpZGF0b3JzKSwgaW50ZXJhY3Rpb24ucHJvcFZhbGlkYXRvcnMpLCBsYXlvdXQucHJvcFZhbGlkYXRvcnMpLCBsaXN0LnByb3BWYWxpZGF0b3JzKSwgb3BhY2l0eS5wcm9wVmFsaWRhdG9ycyksIG91dGxpbmUucHJvcFZhbGlkYXRvcnMpLCBvdmVyZmxvdy5wcm9wVmFsaWRhdG9ycyksIHBvc2l0aW9uLnByb3BWYWxpZGF0b3JzKSwgcmVzaXplLnByb3BWYWxpZGF0b3JzKSwgc2VsZWN0b3JzLnByb3BWYWxpZGF0b3JzKSwgc3BhY2luZy5wcm9wVmFsaWRhdG9ycyksIHN2Zy5wcm9wVmFsaWRhdG9ycyksIHRleHQucHJvcFZhbGlkYXRvcnMpLCB0cmFuc2Zvcm0ucHJvcFZhbGlkYXRvcnMpLCB0cmFuc2l0aW9uLnByb3BWYWxpZGF0b3JzKTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFuaW1hdGlvbi5wcm9wRW5oYW5jZXJzKSwgYmFja2dyb3VuZC5wcm9wRW5oYW5jZXJzKSwgYm9yZGVyUmFkaXVzLnByb3BFbmhhbmNlcnMpLCBib3JkZXJzLnByb3BFbmhhbmNlcnMpLCBib3hTaGFkb3cucHJvcEVuaGFuY2VycyksIGRpbWVuc2lvbnMucHJvcEVuaGFuY2VycyksIGZsZXgucHJvcEVuaGFuY2VycyksIGdyaWQucHJvcEVuaGFuY2VycyksIGludGVyYWN0aW9uLnByb3BFbmhhbmNlcnMpLCBsYXlvdXQucHJvcEVuaGFuY2VycyksIGxpc3QucHJvcEVuaGFuY2VycyksIG9wYWNpdHkucHJvcEVuaGFuY2VycyksIG91dGxpbmUucHJvcEVuaGFuY2VycyksIG92ZXJmbG93LnByb3BFbmhhbmNlcnMpLCBwb3NpdGlvbi5wcm9wRW5oYW5jZXJzKSwgcmVzaXplLnByb3BFbmhhbmNlcnMpLCBzZWxlY3RvcnMucHJvcEVuaGFuY2VycyksIHNwYWNpbmcucHJvcEVuaGFuY2VycyksIHN2Zy5wcm9wRW5oYW5jZXJzKSwgdGV4dC5wcm9wRW5oYW5jZXJzKSwgdHJhbnNmb3JtLnByb3BFbmhhbmNlcnMpLCB0cmFuc2l0aW9uLnByb3BFbmhhbmNlcnMpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/interaction.js": /*!***************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/interaction.js ***! \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n cursor: prop_types_1.default.string,\n pointerEvents: prop_types_1.default.string,\n userSelect: prop_types_1.default.string,\n visibility: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst cursor = {\n className: 'crsr',\n cssName: 'cursor',\n jsName: 'cursor'\n};\nconst userSelect = {\n className: 'usr-slct',\n cssName: 'user-select',\n jsName: 'userSelect',\n safeValue: true,\n isPrefixed: true\n};\nconst visibility = {\n className: 'vsblt',\n cssName: 'visibility',\n jsName: 'visibility',\n safeValue: true\n};\nconst pointerEvents = {\n className: 'ptr-evts',\n cssName: 'pointer-events',\n jsName: 'pointerEvents',\n safeValue: true\n};\nexports.propEnhancers = {\n cursor: (value, selector) => (0, get_css_1.default)(cursor, value, selector),\n pointerEvents: (value, selector) => (0, get_css_1.default)(pointerEvents, value, selector),\n userSelect: (value, selector) => (0, get_css_1.default)(userSelect, value, selector),\n visibility: (value, selector) => (0, get_css_1.default)(visibility, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2ludGVyYWN0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCLEdBQUcsc0JBQXNCLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCO0FBQ3hGLHFDQUFxQyxtQkFBTyxDQUFDLDBFQUFZO0FBQ3pELGtDQUFrQyxtQkFBTyxDQUFDLGlGQUFZO0FBQ3RELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9pbnRlcmFjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIGN1cnNvcjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHBvaW50ZXJFdmVudHM6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICB1c2VyU2VsZWN0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgdmlzaWJpbGl0eTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgY3Vyc29yID0ge1xuICAgIGNsYXNzTmFtZTogJ2Nyc3InLFxuICAgIGNzc05hbWU6ICdjdXJzb3InLFxuICAgIGpzTmFtZTogJ2N1cnNvcidcbn07XG5jb25zdCB1c2VyU2VsZWN0ID0ge1xuICAgIGNsYXNzTmFtZTogJ3Vzci1zbGN0JyxcbiAgICBjc3NOYW1lOiAndXNlci1zZWxlY3QnLFxuICAgIGpzTmFtZTogJ3VzZXJTZWxlY3QnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZSxcbiAgICBpc1ByZWZpeGVkOiB0cnVlXG59O1xuY29uc3QgdmlzaWJpbGl0eSA9IHtcbiAgICBjbGFzc05hbWU6ICd2c2JsdCcsXG4gICAgY3NzTmFtZTogJ3Zpc2liaWxpdHknLFxuICAgIGpzTmFtZTogJ3Zpc2liaWxpdHknLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IHBvaW50ZXJFdmVudHMgPSB7XG4gICAgY2xhc3NOYW1lOiAncHRyLWV2dHMnLFxuICAgIGNzc05hbWU6ICdwb2ludGVyLWV2ZW50cycsXG4gICAganNOYW1lOiAncG9pbnRlckV2ZW50cycsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0ge1xuICAgIGN1cnNvcjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShjdXJzb3IsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgcG9pbnRlckV2ZW50czogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShwb2ludGVyRXZlbnRzLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHVzZXJTZWxlY3Q6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkodXNlclNlbGVjdCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB2aXNpYmlsaXR5OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHZpc2liaWxpdHksIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/interaction.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/layout.js": /*!**********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/layout.js ***! \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nconst get_class_name_1 = __webpack_require__(/*! ../get-class-name */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-class-name.js\");\nexports.propTypes = {\n boxSizing: prop_types_1.default.string,\n clear: prop_types_1.default.string,\n clearfix: prop_types_1.default.bool,\n content: prop_types_1.default.string,\n display: prop_types_1.default.string,\n float: prop_types_1.default.string,\n zIndex: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst display = {\n className: 'dspl',\n cssName: 'display',\n jsName: 'display',\n safeValue: true,\n isPrefixed: true\n};\nconst float = {\n className: 'flt',\n cssName: 'float',\n jsName: 'float',\n safeValue: true\n};\nconst clear = {\n className: 'clr',\n cssName: 'clear',\n jsName: 'clear',\n safeValue: true\n};\nconst zIndex = {\n className: 'z-idx',\n cssName: 'z-index',\n jsName: 'zIndex',\n safeValue: true,\n defaultUnit: ''\n};\nconst boxSizing = {\n className: 'box-szg',\n cssName: 'box-sizing',\n jsName: 'boxSizing',\n safeValue: true\n};\nconst clearfix = () => {\n const className = `${(0, get_class_name_1.getClassNamePrefix)()}clearfix`;\n const rules = [\n { property: 'display', value: 'table' },\n { property: 'clear', value: 'both' },\n { property: 'content', value: '\"\"' }\n ];\n const concatenatedRules = rules.map(rule => ` ${rule.property}: ${rule.value};`).join('\\n');\n const styles = `\\n.${className}:before, .${className}:after {\\n${concatenatedRules}\\n}`;\n return { className, rules, styles };\n};\nconst content = {\n className: 'cnt',\n cssName: 'content',\n jsName: 'content',\n complexValue: true\n};\nexports.propEnhancers = {\n boxSizing: (value, selector) => (0, get_css_1.default)(boxSizing, value, selector),\n clear: (value, selector) => (0, get_css_1.default)(clear, value, selector),\n clearfix,\n content: (value, selector) => (0, get_css_1.default)(content, value, selector),\n display: (value, selector) => (0, get_css_1.default)(display, value, selector),\n float: (value, selector) => (0, get_css_1.default)(float, value, selector),\n zIndex: (value, selector) => (0, get_css_1.default)(zIndex, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2xheW91dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxrQ0FBa0MsbUJBQU8sQ0FBQyxpRkFBWTtBQUN0RCx5QkFBeUIsbUJBQU8sQ0FBQywrRkFBbUI7QUFDcEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwyQ0FBMkM7QUFDcEU7QUFDQSxVQUFVLHFDQUFxQztBQUMvQyxVQUFVLGtDQUFrQztBQUM1QyxVQUFVO0FBQ1Y7QUFDQSxxREFBcUQsY0FBYyxJQUFJLFlBQVk7QUFDbkYseUJBQXlCLFVBQVUsWUFBWSxVQUFVLFFBQVEsSUFBSSxrQkFBa0IsR0FBRztBQUMxRixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9sYXlvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5jb25zdCBnZXRfY2xhc3NfbmFtZV8xID0gcmVxdWlyZShcIi4uL2dldC1jbGFzcy1uYW1lXCIpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgYm94U2l6aW5nOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgY2xlYXI6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBjbGVhcmZpeDogcHJvcF90eXBlc18xLmRlZmF1bHQuYm9vbCxcbiAgICBjb250ZW50OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZGlzcGxheTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGZsb2F0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgekluZGV4OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSlcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCBkaXNwbGF5ID0ge1xuICAgIGNsYXNzTmFtZTogJ2RzcGwnLFxuICAgIGNzc05hbWU6ICdkaXNwbGF5JyxcbiAgICBqc05hbWU6ICdkaXNwbGF5JyxcbiAgICBzYWZlVmFsdWU6IHRydWUsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IGZsb2F0ID0ge1xuICAgIGNsYXNzTmFtZTogJ2ZsdCcsXG4gICAgY3NzTmFtZTogJ2Zsb2F0JyxcbiAgICBqc05hbWU6ICdmbG9hdCcsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgY2xlYXIgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xyJyxcbiAgICBjc3NOYW1lOiAnY2xlYXInLFxuICAgIGpzTmFtZTogJ2NsZWFyJyxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5jb25zdCB6SW5kZXggPSB7XG4gICAgY2xhc3NOYW1lOiAnei1pZHgnLFxuICAgIGNzc05hbWU6ICd6LWluZGV4JyxcbiAgICBqc05hbWU6ICd6SW5kZXgnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZSxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBib3hTaXppbmcgPSB7XG4gICAgY2xhc3NOYW1lOiAnYm94LXN6ZycsXG4gICAgY3NzTmFtZTogJ2JveC1zaXppbmcnLFxuICAgIGpzTmFtZTogJ2JveFNpemluZycsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgY2xlYXJmaXggPSAoKSA9PiB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gYCR7KDAsIGdldF9jbGFzc19uYW1lXzEuZ2V0Q2xhc3NOYW1lUHJlZml4KSgpfWNsZWFyZml4YDtcbiAgICBjb25zdCBydWxlcyA9IFtcbiAgICAgICAgeyBwcm9wZXJ0eTogJ2Rpc3BsYXknLCB2YWx1ZTogJ3RhYmxlJyB9LFxuICAgICAgICB7IHByb3BlcnR5OiAnY2xlYXInLCB2YWx1ZTogJ2JvdGgnIH0sXG4gICAgICAgIHsgcHJvcGVydHk6ICdjb250ZW50JywgdmFsdWU6ICdcIlwiJyB9XG4gICAgXTtcbiAgICBjb25zdCBjb25jYXRlbmF0ZWRSdWxlcyA9IHJ1bGVzLm1hcChydWxlID0+IGAgICR7cnVsZS5wcm9wZXJ0eX06ICR7cnVsZS52YWx1ZX07YCkuam9pbignXFxuJyk7XG4gICAgY29uc3Qgc3R5bGVzID0gYFxcbi4ke2NsYXNzTmFtZX06YmVmb3JlLCAuJHtjbGFzc05hbWV9OmFmdGVyIHtcXG4ke2NvbmNhdGVuYXRlZFJ1bGVzfVxcbn1gO1xuICAgIHJldHVybiB7IGNsYXNzTmFtZSwgcnVsZXMsIHN0eWxlcyB9O1xufTtcbmNvbnN0IGNvbnRlbnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnY250JyxcbiAgICBjc3NOYW1lOiAnY29udGVudCcsXG4gICAganNOYW1lOiAnY29udGVudCcsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0ge1xuICAgIGJveFNpemluZzogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShib3hTaXppbmcsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgY2xlYXI6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoY2xlYXIsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgY2xlYXJmaXgsXG4gICAgY29udGVudDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShjb250ZW50LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGRpc3BsYXk6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZGlzcGxheSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBmbG9hdDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShmbG9hdCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB6SW5kZXg6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoekluZGV4LCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/layout.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/list.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/list.js ***! \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n listStyle: prop_types_1.default.string,\n listStyleType: prop_types_1.default.string,\n listStyleImage: prop_types_1.default.string,\n listStylePosition: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst listStyle = {\n className: 'ls',\n cssName: 'list-style',\n jsName: 'listStyle',\n complexValue: true\n};\nconst listStyleType = {\n className: 'ls-typ',\n cssName: 'list-style-type',\n jsName: 'listStyleType'\n};\nconst listStyleImage = {\n className: 'ls-img',\n cssName: 'list-style-image',\n jsName: 'listStyleImage',\n complexValue: true\n};\nconst listStylePosition = {\n className: 'ls-pos',\n cssName: 'list-style-position',\n jsName: 'listStylePosition',\n safeValue: true\n};\nexports.propEnhancers = {\n listStyle: (value, selector) => (0, get_css_1.default)(listStyle, value, selector),\n listStyleType: (value, selector) => (0, get_css_1.default)(listStyleType, value, selector),\n listStyleImage: (value, selector) => (0, get_css_1.default)(listStyleImage, value, selector),\n listStylePosition: (value, selector) => (0, get_css_1.default)(listStylePosition, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL2xpc3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9saXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgbGlzdFN0eWxlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgbGlzdFN0eWxlVHlwZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGxpc3RTdHlsZUltYWdlOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgbGlzdFN0eWxlUG9zaXRpb246IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZ1xufTtcbmV4cG9ydHMucHJvcEFsaWFzZXMgPSB7fTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICBjbGFzc05hbWU6ICdscycsXG4gICAgY3NzTmFtZTogJ2xpc3Qtc3R5bGUnLFxuICAgIGpzTmFtZTogJ2xpc3RTdHlsZScsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgbGlzdFN0eWxlVHlwZSA9IHtcbiAgICBjbGFzc05hbWU6ICdscy10eXAnLFxuICAgIGNzc05hbWU6ICdsaXN0LXN0eWxlLXR5cGUnLFxuICAgIGpzTmFtZTogJ2xpc3RTdHlsZVR5cGUnXG59O1xuY29uc3QgbGlzdFN0eWxlSW1hZ2UgPSB7XG4gICAgY2xhc3NOYW1lOiAnbHMtaW1nJyxcbiAgICBjc3NOYW1lOiAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICAganNOYW1lOiAnbGlzdFN0eWxlSW1hZ2UnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGxpc3RTdHlsZVBvc2l0aW9uID0ge1xuICAgIGNsYXNzTmFtZTogJ2xzLXBvcycsXG4gICAgY3NzTmFtZTogJ2xpc3Qtc3R5bGUtcG9zaXRpb24nLFxuICAgIGpzTmFtZTogJ2xpc3RTdHlsZVBvc2l0aW9uJyxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgbGlzdFN0eWxlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGxpc3RTdHlsZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBsaXN0U3R5bGVUeXBlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGxpc3RTdHlsZVR5cGUsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgbGlzdFN0eWxlSW1hZ2U6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobGlzdFN0eWxlSW1hZ2UsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgbGlzdFN0eWxlUG9zaXRpb246ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobGlzdFN0eWxlUG9zaXRpb24sIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/list.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/opacity.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/opacity.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n opacity: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst opacity = {\n className: 'opct',\n cssName: 'opacity',\n jsName: 'opacity',\n defaultUnit: ''\n};\nexports.propEnhancers = {\n opacity: (value, selector) => (0, get_css_1.default)(opacity, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL29wYWNpdHkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL29wYWNpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBvcGFjaXR5OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSlcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCBvcGFjaXR5ID0ge1xuICAgIGNsYXNzTmFtZTogJ29wY3QnLFxuICAgIGNzc05hbWU6ICdvcGFjaXR5JyxcbiAgICBqc05hbWU6ICdvcGFjaXR5JyxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgb3BhY2l0eTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShvcGFjaXR5LCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/opacity.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/outline.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/outline.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n outline: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst outline = {\n className: 'otln',\n cssName: 'outline',\n jsName: 'outline',\n complexValue: true\n};\nexports.propEnhancers = {\n outline: (value, selector) => (0, get_css_1.default)(outline, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL291dGxpbmUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL291dGxpbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBvdXRsaW5lOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmdcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCBvdXRsaW5lID0ge1xuICAgIGNsYXNzTmFtZTogJ290bG4nLFxuICAgIGNzc05hbWU6ICdvdXRsaW5lJyxcbiAgICBqc05hbWU6ICdvdXRsaW5lJyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgb3V0bGluZTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShvdXRsaW5lLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/outline.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/overflow.js": /*!************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/overflow.js ***! \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n overflow: prop_types_1.default.string,\n overflowX: prop_types_1.default.string,\n overflowY: prop_types_1.default.string\n};\nexports.propAliases = {\n overflow: ['overflowX', 'overflowY']\n};\nexports.propValidators = {};\nconst overflowY = {\n className: 'ovflw-y',\n cssName: 'overflow-y',\n jsName: 'overflowY',\n safeValue: true\n};\nconst overflowX = {\n className: 'ovflw-x',\n cssName: 'overflow-x',\n jsName: 'overflowX',\n safeValue: true\n};\nexports.propEnhancers = {\n overflowX: (value, selector) => (0, get_css_1.default)(overflowX, value, selector),\n overflowY: (value, selector) => (0, get_css_1.default)(overflowY, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL292ZXJmbG93LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCLEdBQUcsc0JBQXNCLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCO0FBQ3hGLHFDQUFxQyxtQkFBTyxDQUFDLDBFQUFZO0FBQ3pELGtDQUFrQyxtQkFBTyxDQUFDLGlGQUFZO0FBQ3RELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvb3ZlcmZsb3cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBvdmVyZmxvdzogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIG92ZXJmbG93WDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIG92ZXJmbG93WTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHtcbiAgICBvdmVyZmxvdzogWydvdmVyZmxvd1gnLCAnb3ZlcmZsb3dZJ11cbn07XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCBvdmVyZmxvd1kgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3ZmbHcteScsXG4gICAgY3NzTmFtZTogJ292ZXJmbG93LXknLFxuICAgIGpzTmFtZTogJ292ZXJmbG93WScsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3Qgb3ZlcmZsb3dYID0ge1xuICAgIGNsYXNzTmFtZTogJ292Zmx3LXgnLFxuICAgIGNzc05hbWU6ICdvdmVyZmxvdy14JyxcbiAgICBqc05hbWU6ICdvdmVyZmxvd1gnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICBvdmVyZmxvd1g6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkob3ZlcmZsb3dYLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIG92ZXJmbG93WTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShvdmVyZmxvd1ksIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/overflow.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/position.js": /*!************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/position.js ***! \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n bottom: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n left: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n position: prop_types_1.default.string,\n right: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n top: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst position = {\n className: 'pst',\n cssName: 'position',\n jsName: 'position',\n safeValue: true,\n isPrefixed: true\n};\nconst top = {\n className: 'top',\n cssName: 'top',\n jsName: 'top'\n};\nconst right = {\n className: 'rgt',\n cssName: 'right',\n jsName: 'right'\n};\nconst bottom = {\n className: 'btm',\n cssName: 'bottom',\n jsName: 'bottom'\n};\nconst left = {\n className: 'lft',\n cssName: 'left',\n jsName: 'left'\n};\nexports.propEnhancers = {\n bottom: (value, selector) => (0, get_css_1.default)(bottom, value, selector),\n left: (value, selector) => (0, get_css_1.default)(left, value, selector),\n position: (value, selector) => (0, get_css_1.default)(position, value, selector),\n right: (value, selector) => (0, get_css_1.default)(right, value, selector),\n top: (value, selector) => (0, get_css_1.default)(top, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3Bvc2l0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCLEdBQUcsc0JBQXNCLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCO0FBQ3hGLHFDQUFxQyxtQkFBTyxDQUFDLDBFQUFZO0FBQ3pELGtDQUFrQyxtQkFBTyxDQUFDLGlGQUFZO0FBQ3RELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9lbmhhbmNlcnMvcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBib3R0b206IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBsZWZ0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgcG9zaXRpb246IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICByaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHRvcDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgcG9zaXRpb24gPSB7XG4gICAgY2xhc3NOYW1lOiAncHN0JyxcbiAgICBjc3NOYW1lOiAncG9zaXRpb24nLFxuICAgIGpzTmFtZTogJ3Bvc2l0aW9uJyxcbiAgICBzYWZlVmFsdWU6IHRydWUsXG4gICAgaXNQcmVmaXhlZDogdHJ1ZVxufTtcbmNvbnN0IHRvcCA9IHtcbiAgICBjbGFzc05hbWU6ICd0b3AnLFxuICAgIGNzc05hbWU6ICd0b3AnLFxuICAgIGpzTmFtZTogJ3RvcCdcbn07XG5jb25zdCByaWdodCA9IHtcbiAgICBjbGFzc05hbWU6ICdyZ3QnLFxuICAgIGNzc05hbWU6ICdyaWdodCcsXG4gICAganNOYW1lOiAncmlnaHQnXG59O1xuY29uc3QgYm90dG9tID0ge1xuICAgIGNsYXNzTmFtZTogJ2J0bScsXG4gICAgY3NzTmFtZTogJ2JvdHRvbScsXG4gICAganNOYW1lOiAnYm90dG9tJ1xufTtcbmNvbnN0IGxlZnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGZ0JyxcbiAgICBjc3NOYW1lOiAnbGVmdCcsXG4gICAganNOYW1lOiAnbGVmdCdcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgYm90dG9tOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGJvdHRvbSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBsZWZ0OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGxlZnQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgcG9zaXRpb246ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocG9zaXRpb24sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgcmlnaHQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocmlnaHQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgdG9wOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHRvcCwgdmFsdWUsIHNlbGVjdG9yKVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/position.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/resize.js": /*!**********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/resize.js ***! \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n resize: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst resize = {\n className: 'rsz',\n cssName: 'resize',\n jsName: 'resize'\n};\nexports.propEnhancers = {\n resize: (value, selector) => (0, get_css_1.default)(resize, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3Jlc2l6ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxrQ0FBa0MsbUJBQU8sQ0FBQyxpRkFBWTtBQUN0RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3Jlc2l6ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIHJlc2l6ZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgcmVzaXplID0ge1xuICAgIGNsYXNzTmFtZTogJ3JzeicsXG4gICAgY3NzTmFtZTogJ3Jlc2l6ZScsXG4gICAganNOYW1lOiAncmVzaXplJ1xufTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICByZXNpemU6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocmVzaXplLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/resize.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/selectors.js": /*!*************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/selectors.js ***! \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nexports.propTypes = {\n selectors: prop_types_1.default.object\n};\nexports.propAliases = {};\nexports.propValidators = {};\nexports.propEnhancers = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3NlbGVjdG9ycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEIscUJBQXFCIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3NlbGVjdG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgc2VsZWN0b3JzOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vYmplY3Rcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7fTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/selectors.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/spacing.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/spacing.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nconst regex_1 = __webpack_require__(/*! ../utils/regex */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js\");\nexports.propTypes = {\n margin: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginBottom: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginLeft: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginRight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginTop: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginX: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n marginY: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n padding: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingBottom: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingLeft: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingRight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingTop: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingX: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n paddingY: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginBottom', 'marginTop'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingBottom', 'paddingTop']\n};\nexports.propValidators = {};\nif (true) {\n exports.propValidators.margin = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “margin”. Use “marginX”, “marginY” “marginBottom”, “marginLeft”, “marginRight” and “marginTop” instead.`;\n }\n return;\n };\n exports.propValidators.marginX = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “marginX”. Use “marginLeft” and “marginRight” instead.`;\n }\n return;\n };\n exports.propValidators.marginY = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “marginY”. Use “marginBottom” and “marginTop” instead.`;\n }\n return;\n };\n exports.propValidators.padding = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “padding”. Use “paddingX”, “paddingY” “paddingBottom”, “paddingLeft”, “paddingRight” and “paddingTop” instead.`;\n }\n return;\n };\n exports.propValidators.paddingX = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “paddingX”. Use “paddingLeft” and “paddingRight” instead.`;\n }\n return;\n };\n exports.propValidators.paddingY = value => {\n if (regex_1.spacesOutsideParentheses.test(value)) {\n return `multiple values (“${value}”) aren՚t supported with “paddingY”. Use “paddingBottom” and “paddingTop” instead.`;\n }\n return;\n };\n}\nconst marginTop = {\n className: 'mt',\n cssName: 'margin-top',\n jsName: 'marginTop'\n};\nconst marginRight = {\n className: 'mr',\n cssName: 'margin-right',\n jsName: 'marginRight'\n};\nconst marginBottom = {\n className: 'mb',\n cssName: 'margin-bottom',\n jsName: 'marginBottom'\n};\nconst marginLeft = {\n className: 'ml',\n cssName: 'margin-left',\n jsName: 'marginLeft'\n};\nconst paddingTop = {\n className: 'pt',\n cssName: 'padding-top',\n jsName: 'paddingTop'\n};\nconst paddingRight = {\n className: 'pr',\n cssName: 'padding-right',\n jsName: 'paddingRight'\n};\nconst paddingBottom = {\n className: 'pb',\n cssName: 'padding-bottom',\n jsName: 'paddingBottom'\n};\nconst paddingLeft = {\n className: 'pl',\n cssName: 'padding-left',\n jsName: 'paddingLeft'\n};\nexports.propEnhancers = {\n marginBottom: (value, selector) => (0, get_css_1.default)(marginBottom, value, selector),\n marginLeft: (value, selector) => (0, get_css_1.default)(marginLeft, value, selector),\n marginRight: (value, selector) => (0, get_css_1.default)(marginRight, value, selector),\n marginTop: (value, selector) => (0, get_css_1.default)(marginTop, value, selector),\n paddingBottom: (value, selector) => (0, get_css_1.default)(paddingBottom, value, selector),\n paddingLeft: (value, selector) => (0, get_css_1.default)(paddingLeft, value, selector),\n paddingRight: (value, selector) => (0, get_css_1.default)(paddingRight, value, selector),\n paddingTop: (value, selector) => (0, get_css_1.default)(paddingTop, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3NwYWNpbmcuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMseUZBQWdCO0FBQ3hDLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsSUFBSSxJQUFxQztBQUN6QyxJQUFJLDZCQUE2QjtBQUNqQztBQUNBLHdDQUF3QyxNQUFNO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLElBQUksOEJBQThCO0FBQ2xDO0FBQ0Esd0NBQXdDLE1BQU07QUFDOUM7QUFDQTtBQUNBO0FBQ0EsSUFBSSw4QkFBOEI7QUFDbEM7QUFDQSx3Q0FBd0MsTUFBTTtBQUM5QztBQUNBO0FBQ0E7QUFDQSxJQUFJLDhCQUE4QjtBQUNsQztBQUNBLHdDQUF3QyxNQUFNO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLElBQUksK0JBQStCO0FBQ25DO0FBQ0Esd0NBQXdDLE1BQU07QUFDOUM7QUFDQTtBQUNBO0FBQ0EsSUFBSSwrQkFBK0I7QUFDbkM7QUFDQSx3Q0FBd0MsTUFBTTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy9zcGFjaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuY29uc3QgcmVnZXhfMSA9IHJlcXVpcmUoXCIuLi91dGlscy9yZWdleFwiKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIG1hcmdpbjogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1hcmdpbkJvdHRvbTogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1hcmdpbkxlZnQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBtYXJnaW5SaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1hcmdpblRvcDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIG1hcmdpblg6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBtYXJnaW5ZOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgcGFkZGluZzogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHBhZGRpbmdCb3R0b206IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBwYWRkaW5nTGVmdDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHBhZGRpbmdSaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHBhZGRpbmdUb3A6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBwYWRkaW5nWDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHBhZGRpbmdZOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSlcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge1xuICAgIG1hcmdpbjogWydtYXJnaW5Cb3R0b20nLCAnbWFyZ2luTGVmdCcsICdtYXJnaW5SaWdodCcsICdtYXJnaW5Ub3AnXSxcbiAgICBtYXJnaW5YOiBbJ21hcmdpbkxlZnQnLCAnbWFyZ2luUmlnaHQnXSxcbiAgICBtYXJnaW5ZOiBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnXSxcbiAgICBwYWRkaW5nOiBbJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ0xlZnQnLCAncGFkZGluZ1JpZ2h0JywgJ3BhZGRpbmdUb3AnXSxcbiAgICBwYWRkaW5nWDogWydwYWRkaW5nTGVmdCcsICdwYWRkaW5nUmlnaHQnXSxcbiAgICBwYWRkaW5nWTogWydwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnXVxufTtcbmV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSB7fTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgZXhwb3J0cy5wcm9wVmFsaWRhdG9ycy5tYXJnaW4gPSB2YWx1ZSA9PiB7XG4gICAgICAgIGlmIChyZWdleF8xLnNwYWNlc091dHNpZGVQYXJlbnRoZXNlcy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBtdWx0aXBsZSB2YWx1ZXMgKOKAnCR7dmFsdWV94oCdKSBhcmVu1Zp0IHN1cHBvcnRlZCB3aXRoIOKAnG1hcmdpbuKAnS4gVXNlIOKAnG1hcmdpbljigJ0sIOKAnG1hcmdpblnigJ0g4oCcbWFyZ2luQm90dG9t4oCdLCDigJxtYXJnaW5MZWZ04oCdLCDigJxtYXJnaW5SaWdodOKAnSBhbmQg4oCcbWFyZ2luVG9w4oCdIGluc3RlYWQuYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfTtcbiAgICBleHBvcnRzLnByb3BWYWxpZGF0b3JzLm1hcmdpblggPSB2YWx1ZSA9PiB7XG4gICAgICAgIGlmIChyZWdleF8xLnNwYWNlc091dHNpZGVQYXJlbnRoZXNlcy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBtdWx0aXBsZSB2YWx1ZXMgKOKAnCR7dmFsdWV94oCdKSBhcmVu1Zp0IHN1cHBvcnRlZCB3aXRoIOKAnG1hcmdpbljigJ0uIFVzZSDigJxtYXJnaW5MZWZ04oCdIGFuZCDigJxtYXJnaW5SaWdodOKAnSBpbnN0ZWFkLmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG4gICAgZXhwb3J0cy5wcm9wVmFsaWRhdG9ycy5tYXJnaW5ZID0gdmFsdWUgPT4ge1xuICAgICAgICBpZiAocmVnZXhfMS5zcGFjZXNPdXRzaWRlUGFyZW50aGVzZXMudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBgbXVsdGlwbGUgdmFsdWVzICjigJwke3ZhbHVlfeKAnSkgYXJlbtWadCBzdXBwb3J0ZWQgd2l0aCDigJxtYXJnaW5Z4oCdLiBVc2Ug4oCcbWFyZ2luQm90dG9t4oCdIGFuZCDigJxtYXJnaW5Ub3DigJ0gaW5zdGVhZC5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xuICAgIGV4cG9ydHMucHJvcFZhbGlkYXRvcnMucGFkZGluZyA9IHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHJlZ2V4XzEuc3BhY2VzT3V0c2lkZVBhcmVudGhlc2VzLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYG11bHRpcGxlIHZhbHVlcyAo4oCcJHt2YWx1ZX3igJ0pIGFyZW7VmnQgc3VwcG9ydGVkIHdpdGgg4oCccGFkZGluZ+KAnS4gVXNlIOKAnHBhZGRpbmdY4oCdLCDigJxwYWRkaW5nWeKAnSDigJxwYWRkaW5nQm90dG9t4oCdLCDigJxwYWRkaW5nTGVmdOKAnSwg4oCccGFkZGluZ1JpZ2h04oCdIGFuZCDigJxwYWRkaW5nVG9w4oCdIGluc3RlYWQuYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfTtcbiAgICBleHBvcnRzLnByb3BWYWxpZGF0b3JzLnBhZGRpbmdYID0gdmFsdWUgPT4ge1xuICAgICAgICBpZiAocmVnZXhfMS5zcGFjZXNPdXRzaWRlUGFyZW50aGVzZXMudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBgbXVsdGlwbGUgdmFsdWVzICjigJwke3ZhbHVlfeKAnSkgYXJlbtWadCBzdXBwb3J0ZWQgd2l0aCDigJxwYWRkaW5nWOKAnS4gVXNlIOKAnHBhZGRpbmdMZWZ04oCdIGFuZCDigJxwYWRkaW5nUmlnaHTigJ0gaW5zdGVhZC5gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xuICAgIGV4cG9ydHMucHJvcFZhbGlkYXRvcnMucGFkZGluZ1kgPSB2YWx1ZSA9PiB7XG4gICAgICAgIGlmIChyZWdleF8xLnNwYWNlc091dHNpZGVQYXJlbnRoZXNlcy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBtdWx0aXBsZSB2YWx1ZXMgKOKAnCR7dmFsdWV94oCdKSBhcmVu1Zp0IHN1cHBvcnRlZCB3aXRoIOKAnHBhZGRpbmdZ4oCdLiBVc2Ug4oCccGFkZGluZ0JvdHRvbeKAnSBhbmQg4oCccGFkZGluZ1RvcOKAnSBpbnN0ZWFkLmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG59XG5jb25zdCBtYXJnaW5Ub3AgPSB7XG4gICAgY2xhc3NOYW1lOiAnbXQnLFxuICAgIGNzc05hbWU6ICdtYXJnaW4tdG9wJyxcbiAgICBqc05hbWU6ICdtYXJnaW5Ub3AnXG59O1xuY29uc3QgbWFyZ2luUmlnaHQgPSB7XG4gICAgY2xhc3NOYW1lOiAnbXInLFxuICAgIGNzc05hbWU6ICdtYXJnaW4tcmlnaHQnLFxuICAgIGpzTmFtZTogJ21hcmdpblJpZ2h0J1xufTtcbmNvbnN0IG1hcmdpbkJvdHRvbSA9IHtcbiAgICBjbGFzc05hbWU6ICdtYicsXG4gICAgY3NzTmFtZTogJ21hcmdpbi1ib3R0b20nLFxuICAgIGpzTmFtZTogJ21hcmdpbkJvdHRvbSdcbn07XG5jb25zdCBtYXJnaW5MZWZ0ID0ge1xuICAgIGNsYXNzTmFtZTogJ21sJyxcbiAgICBjc3NOYW1lOiAnbWFyZ2luLWxlZnQnLFxuICAgIGpzTmFtZTogJ21hcmdpbkxlZnQnXG59O1xuY29uc3QgcGFkZGluZ1RvcCA9IHtcbiAgICBjbGFzc05hbWU6ICdwdCcsXG4gICAgY3NzTmFtZTogJ3BhZGRpbmctdG9wJyxcbiAgICBqc05hbWU6ICdwYWRkaW5nVG9wJ1xufTtcbmNvbnN0IHBhZGRpbmdSaWdodCA9IHtcbiAgICBjbGFzc05hbWU6ICdwcicsXG4gICAgY3NzTmFtZTogJ3BhZGRpbmctcmlnaHQnLFxuICAgIGpzTmFtZTogJ3BhZGRpbmdSaWdodCdcbn07XG5jb25zdCBwYWRkaW5nQm90dG9tID0ge1xuICAgIGNsYXNzTmFtZTogJ3BiJyxcbiAgICBjc3NOYW1lOiAncGFkZGluZy1ib3R0b20nLFxuICAgIGpzTmFtZTogJ3BhZGRpbmdCb3R0b20nXG59O1xuY29uc3QgcGFkZGluZ0xlZnQgPSB7XG4gICAgY2xhc3NOYW1lOiAncGwnLFxuICAgIGNzc05hbWU6ICdwYWRkaW5nLWxlZnQnLFxuICAgIGpzTmFtZTogJ3BhZGRpbmdMZWZ0J1xufTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICBtYXJnaW5Cb3R0b206ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobWFyZ2luQm90dG9tLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIG1hcmdpbkxlZnQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobWFyZ2luTGVmdCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBtYXJnaW5SaWdodDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShtYXJnaW5SaWdodCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBtYXJnaW5Ub3A6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobWFyZ2luVG9wLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHBhZGRpbmdCb3R0b206ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocGFkZGluZ0JvdHRvbSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBwYWRkaW5nTGVmdDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShwYWRkaW5nTGVmdCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBwYWRkaW5nUmlnaHQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocGFkZGluZ1JpZ2h0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHBhZGRpbmdUb3A6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkocGFkZGluZ1RvcCwgdmFsdWUsIHNlbGVjdG9yKVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/spacing.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/svg.js": /*!*******************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/svg.js ***! \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n fill: prop_types_1.default.string,\n stroke: prop_types_1.default.string,\n strokeDasharray: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n strokeDashoffset: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n strokeLinecap: prop_types_1.default.string,\n strokeMiterlimit: prop_types_1.default.number,\n strokeWidth: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst fill = {\n className: 'fill',\n cssName: 'fill',\n jsName: 'fill'\n};\nconst stroke = { className: 'strk', cssName: 'stroke', jsName: 'stroke' };\nconst strokeDasharray = {\n className: 'strk-dshary',\n cssName: 'stroke-dasharray',\n jsName: 'strokeDasharray',\n defaultUnit: ''\n};\nconst strokeDashoffset = {\n className: 'strk-dshofst',\n cssName: 'stroke-dashoffset',\n jsName: 'strokeDashoffset',\n defaultUnit: ''\n};\nconst strokeLinecap = { className: 'strk-lncp', cssName: 'stroke-linecap', jsName: 'strokeLinecap', safeValue: true };\nconst strokeMiterlimit = {\n className: 'strk-mtrlmt',\n cssName: 'stroke-miterlimit',\n jsName: 'strokeMiterlimit',\n defaultUnit: ''\n};\nconst strokeWidth = { className: 'strk-w', cssName: 'stroke-width', jsName: 'strokeWidth', defaultUnit: '' };\nexports.propEnhancers = {\n fill: (value, selector) => (0, get_css_1.default)(fill, value, selector),\n stroke: (value, selector) => (0, get_css_1.default)(stroke, value, selector),\n strokeDasharray: (value, selector) => (0, get_css_1.default)(strokeDasharray, value, selector),\n strokeDashoffset: (value, selector) => (0, get_css_1.default)(strokeDashoffset, value, selector),\n strokeLinecap: (value, selector) => (0, get_css_1.default)(strokeLinecap, value, selector),\n strokeMiterlimit: (value, selector) => (0, get_css_1.default)(strokeMiterlimit, value, selector),\n strokeWidth: (value, selector) => (0, get_css_1.default)(strokeWidth, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3N2Zy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxrQ0FBa0MsbUJBQU8sQ0FBQyxpRkFBWTtBQUN0RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3N2Zy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIGZpbGw6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBzdHJva2U6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBzdHJva2VEYXNoYXJyYXk6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBzdHJva2VEYXNob2Zmc2V0OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgc3Ryb2tlTGluZWNhcDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHN0cm9rZU1pdGVybGltaXQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcixcbiAgICBzdHJva2VXaWR0aDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgZmlsbCA9IHtcbiAgICBjbGFzc05hbWU6ICdmaWxsJyxcbiAgICBjc3NOYW1lOiAnZmlsbCcsXG4gICAganNOYW1lOiAnZmlsbCdcbn07XG5jb25zdCBzdHJva2UgPSB7IGNsYXNzTmFtZTogJ3N0cmsnLCBjc3NOYW1lOiAnc3Ryb2tlJywganNOYW1lOiAnc3Ryb2tlJyB9O1xuY29uc3Qgc3Ryb2tlRGFzaGFycmF5ID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmstZHNoYXJ5JyxcbiAgICBjc3NOYW1lOiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAganNOYW1lOiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBzdHJva2VEYXNob2Zmc2V0ID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmstZHNob2ZzdCcsXG4gICAgY3NzTmFtZTogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBqc05hbWU6ICdzdHJva2VEYXNob2Zmc2V0JyxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCBzdHJva2VMaW5lY2FwID0geyBjbGFzc05hbWU6ICdzdHJrLWxuY3AnLCBjc3NOYW1lOiAnc3Ryb2tlLWxpbmVjYXAnLCBqc05hbWU6ICdzdHJva2VMaW5lY2FwJywgc2FmZVZhbHVlOiB0cnVlIH07XG5jb25zdCBzdHJva2VNaXRlcmxpbWl0ID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmstbXRybG10JyxcbiAgICBjc3NOYW1lOiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIGpzTmFtZTogJ3N0cm9rZU1pdGVybGltaXQnLFxuICAgIGRlZmF1bHRVbml0OiAnJ1xufTtcbmNvbnN0IHN0cm9rZVdpZHRoID0geyBjbGFzc05hbWU6ICdzdHJrLXcnLCBjc3NOYW1lOiAnc3Ryb2tlLXdpZHRoJywganNOYW1lOiAnc3Ryb2tlV2lkdGgnLCBkZWZhdWx0VW5pdDogJycgfTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICBmaWxsOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZpbGwsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgc3Ryb2tlOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHN0cm9rZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBzdHJva2VEYXNoYXJyYXk6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoc3Ryb2tlRGFzaGFycmF5LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHN0cm9rZURhc2hvZmZzZXQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoc3Ryb2tlRGFzaG9mZnNldCwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBzdHJva2VMaW5lY2FwOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHN0cm9rZUxpbmVjYXAsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgc3Ryb2tlTWl0ZXJsaW1pdDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShzdHJva2VNaXRlcmxpbWl0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHN0cm9rZVdpZHRoOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHN0cm9rZVdpZHRoLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/svg.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/text.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/text.js ***! \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n color: prop_types_1.default.string,\n font: prop_types_1.default.string,\n fontFamily: prop_types_1.default.string,\n fontSize: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n fontStyle: prop_types_1.default.string,\n fontVariant: prop_types_1.default.string,\n fontWeight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n letterSpacing: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n lineHeight: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n textAlign: prop_types_1.default.string,\n textDecoration: prop_types_1.default.string,\n textOverflow: prop_types_1.default.string,\n textShadow: prop_types_1.default.string,\n textTransform: prop_types_1.default.string,\n verticalAlign: prop_types_1.default.string,\n whiteSpace: prop_types_1.default.string,\n wordBreak: prop_types_1.default.string,\n wordWrap: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst textAlign = {\n className: 'txt-algn',\n safeValue: true,\n cssName: 'text-align',\n jsName: 'textAlign'\n};\nconst textDecoration = {\n className: 'txt-deco',\n cssName: 'text-decoration',\n jsName: 'textDecoration'\n};\nconst textTransform = {\n className: 'txt-trns',\n cssName: 'text-transform',\n jsName: 'textTransform',\n safeValue: true\n};\nconst textShadow = {\n className: 'txt-shdw',\n cssName: 'text-shadow',\n jsName: 'textShadow',\n complexValue: true\n};\nconst textOverflow = {\n className: 'txt-ovrf',\n cssName: 'text-overflow',\n jsName: 'textOverflow',\n safeValue: true\n};\nconst color = {\n className: 'color',\n cssName: 'color',\n jsName: 'color'\n};\nconst font = {\n className: 'fnt',\n cssName: 'font',\n jsName: 'font',\n complexValue: true\n};\nconst fontFamily = {\n className: 'fnt-fam',\n cssName: 'font-family',\n jsName: 'fontFamily',\n complexValue: true\n};\nconst fontSize = {\n className: 'fnt-sze',\n cssName: 'font-size',\n jsName: 'fontSize'\n};\nconst fontStyle = {\n className: 'fnt-stl',\n cssName: 'font-style',\n jsName: 'fontStyle',\n safeValue: true\n};\nconst fontVariant = {\n className: 'f-vari',\n cssName: 'font-variant',\n jsName: 'fontVariant'\n};\nconst fontWeight = {\n className: 'f-wght',\n cssName: 'font-weight',\n jsName: 'fontWeight',\n safeValue: true,\n defaultUnit: ''\n};\nconst lineHeight = {\n className: 'ln-ht',\n cssName: 'line-height',\n jsName: 'lineHeight',\n defaultUnit: ''\n};\nconst verticalAlign = {\n className: 'ver-algn',\n cssName: 'vertical-align',\n jsName: 'verticalAlign',\n safeValue: true\n};\nconst wordBreak = {\n className: 'wrd-brk',\n cssName: 'word-break',\n jsName: 'wordBreak',\n safeValue: true\n};\nconst wordWrap = {\n className: 'wrd-wrp',\n cssName: 'word-wrap',\n jsName: 'wordWrap',\n safeValue: true\n};\nconst whiteSpace = {\n className: 'wht-spc',\n cssName: 'white-space',\n jsName: 'whiteSpace',\n safeValue: true\n};\nconst letterSpacing = {\n className: 'ltr-spc',\n cssName: 'letter-spacing',\n jsName: 'letterSpacing'\n};\nexports.propEnhancers = {\n color: (value, selector) => (0, get_css_1.default)(color, value, selector),\n font: (value, selector) => (0, get_css_1.default)(font, value, selector),\n fontFamily: (value, selector) => (0, get_css_1.default)(fontFamily, value, selector),\n fontSize: (value, selector) => (0, get_css_1.default)(fontSize, value, selector),\n fontStyle: (value, selector) => (0, get_css_1.default)(fontStyle, value, selector),\n fontVariant: (value, selector) => (0, get_css_1.default)(fontVariant, value, selector),\n fontWeight: (value, selector) => (0, get_css_1.default)(fontWeight, value, selector),\n letterSpacing: (value, selector) => (0, get_css_1.default)(letterSpacing, value, selector),\n lineHeight: (value, selector) => (0, get_css_1.default)(lineHeight, value, selector),\n textAlign: (value, selector) => (0, get_css_1.default)(textAlign, value, selector),\n textDecoration: (value, selector) => (0, get_css_1.default)(textDecoration, value, selector),\n textOverflow: (value, selector) => (0, get_css_1.default)(textOverflow, value, selector),\n textShadow: (value, selector) => (0, get_css_1.default)(textShadow, value, selector),\n textTransform: (value, selector) => (0, get_css_1.default)(textTransform, value, selector),\n verticalAlign: (value, selector) => (0, get_css_1.default)(verticalAlign, value, selector),\n whiteSpace: (value, selector) => (0, get_css_1.default)(whiteSpace, value, selector),\n wordBreak: (value, selector) => (0, get_css_1.default)(wordBreak, value, selector),\n wordWrap: (value, selector) => (0, get_css_1.default)(wordWrap, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3RleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3RleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSBleHBvcnRzLnByb3BWYWxpZGF0b3JzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcFR5cGVzID0gdm9pZCAwO1xuY29uc3QgcHJvcF90eXBlc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcbmNvbnN0IGdldF9jc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZ2V0LWNzc1wiKSk7XG5leHBvcnRzLnByb3BUeXBlcyA9IHtcbiAgICBjb2xvcjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGZvbnQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBmb250RmFtaWx5OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgZm9udFNpemU6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBmb250U3R5bGU6IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICBmb250VmFyaWFudDogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIGZvbnRXZWlnaHQ6IHByb3BfdHlwZXNfMS5kZWZhdWx0Lm9uZU9mVHlwZShbcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLCBwcm9wX3R5cGVzXzEuZGVmYXVsdC5udW1iZXJdKSxcbiAgICBsZXR0ZXJTcGFjaW5nOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5vbmVPZlR5cGUoW3Byb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZywgcHJvcF90eXBlc18xLmRlZmF1bHQubnVtYmVyXSksXG4gICAgbGluZUhlaWdodDogcHJvcF90eXBlc18xLmRlZmF1bHQub25lT2ZUeXBlKFtwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsIHByb3BfdHlwZXNfMS5kZWZhdWx0Lm51bWJlcl0pLFxuICAgIHRleHRBbGlnbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRleHREZWNvcmF0aW9uOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgdGV4dE92ZXJmbG93OiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgdGV4dFNoYWRvdzogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRleHRUcmFuc2Zvcm06IHByb3BfdHlwZXNfMS5kZWZhdWx0LnN0cmluZyxcbiAgICB2ZXJ0aWNhbEFsaWduOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmcsXG4gICAgd2hpdGVTcGFjZTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHdvcmRCcmVhazogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHdvcmRXcmFwOiBwcm9wX3R5cGVzXzEuZGVmYXVsdC5zdHJpbmdcbn07XG5leHBvcnRzLnByb3BBbGlhc2VzID0ge307XG5leHBvcnRzLnByb3BWYWxpZGF0b3JzID0ge307XG5jb25zdCB0ZXh0QWxpZ24gPSB7XG4gICAgY2xhc3NOYW1lOiAndHh0LWFsZ24nLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZSxcbiAgICBjc3NOYW1lOiAndGV4dC1hbGlnbicsXG4gICAganNOYW1lOiAndGV4dEFsaWduJ1xufTtcbmNvbnN0IHRleHREZWNvcmF0aW9uID0ge1xuICAgIGNsYXNzTmFtZTogJ3R4dC1kZWNvJyxcbiAgICBjc3NOYW1lOiAndGV4dC1kZWNvcmF0aW9uJyxcbiAgICBqc05hbWU6ICd0ZXh0RGVjb3JhdGlvbidcbn07XG5jb25zdCB0ZXh0VHJhbnNmb3JtID0ge1xuICAgIGNsYXNzTmFtZTogJ3R4dC10cm5zJyxcbiAgICBjc3NOYW1lOiAndGV4dC10cmFuc2Zvcm0nLFxuICAgIGpzTmFtZTogJ3RleHRUcmFuc2Zvcm0nLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IHRleHRTaGFkb3cgPSB7XG4gICAgY2xhc3NOYW1lOiAndHh0LXNoZHcnLFxuICAgIGNzc05hbWU6ICd0ZXh0LXNoYWRvdycsXG4gICAganNOYW1lOiAndGV4dFNoYWRvdycsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgdGV4dE92ZXJmbG93ID0ge1xuICAgIGNsYXNzTmFtZTogJ3R4dC1vdnJmJyxcbiAgICBjc3NOYW1lOiAndGV4dC1vdmVyZmxvdycsXG4gICAganNOYW1lOiAndGV4dE92ZXJmbG93JyxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5jb25zdCBjb2xvciA9IHtcbiAgICBjbGFzc05hbWU6ICdjb2xvcicsXG4gICAgY3NzTmFtZTogJ2NvbG9yJyxcbiAgICBqc05hbWU6ICdjb2xvcidcbn07XG5jb25zdCBmb250ID0ge1xuICAgIGNsYXNzTmFtZTogJ2ZudCcsXG4gICAgY3NzTmFtZTogJ2ZvbnQnLFxuICAgIGpzTmFtZTogJ2ZvbnQnLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGZvbnRGYW1pbHkgPSB7XG4gICAgY2xhc3NOYW1lOiAnZm50LWZhbScsXG4gICAgY3NzTmFtZTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBqc05hbWU6ICdmb250RmFtaWx5JyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5jb25zdCBmb250U2l6ZSA9IHtcbiAgICBjbGFzc05hbWU6ICdmbnQtc3plJyxcbiAgICBjc3NOYW1lOiAnZm9udC1zaXplJyxcbiAgICBqc05hbWU6ICdmb250U2l6ZSdcbn07XG5jb25zdCBmb250U3R5bGUgPSB7XG4gICAgY2xhc3NOYW1lOiAnZm50LXN0bCcsXG4gICAgY3NzTmFtZTogJ2ZvbnQtc3R5bGUnLFxuICAgIGpzTmFtZTogJ2ZvbnRTdHlsZScsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3QgZm9udFZhcmlhbnQgPSB7XG4gICAgY2xhc3NOYW1lOiAnZi12YXJpJyxcbiAgICBjc3NOYW1lOiAnZm9udC12YXJpYW50JyxcbiAgICBqc05hbWU6ICdmb250VmFyaWFudCdcbn07XG5jb25zdCBmb250V2VpZ2h0ID0ge1xuICAgIGNsYXNzTmFtZTogJ2Ytd2dodCcsXG4gICAgY3NzTmFtZTogJ2ZvbnQtd2VpZ2h0JyxcbiAgICBqc05hbWU6ICdmb250V2VpZ2h0JyxcbiAgICBzYWZlVmFsdWU6IHRydWUsXG4gICAgZGVmYXVsdFVuaXQ6ICcnXG59O1xuY29uc3QgbGluZUhlaWdodCA9IHtcbiAgICBjbGFzc05hbWU6ICdsbi1odCcsXG4gICAgY3NzTmFtZTogJ2xpbmUtaGVpZ2h0JyxcbiAgICBqc05hbWU6ICdsaW5lSGVpZ2h0JyxcbiAgICBkZWZhdWx0VW5pdDogJydcbn07XG5jb25zdCB2ZXJ0aWNhbEFsaWduID0ge1xuICAgIGNsYXNzTmFtZTogJ3Zlci1hbGduJyxcbiAgICBjc3NOYW1lOiAndmVydGljYWwtYWxpZ24nLFxuICAgIGpzTmFtZTogJ3ZlcnRpY2FsQWxpZ24nLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IHdvcmRCcmVhayA9IHtcbiAgICBjbGFzc05hbWU6ICd3cmQtYnJrJyxcbiAgICBjc3NOYW1lOiAnd29yZC1icmVhaycsXG4gICAganNOYW1lOiAnd29yZEJyZWFrJyxcbiAgICBzYWZlVmFsdWU6IHRydWVcbn07XG5jb25zdCB3b3JkV3JhcCA9IHtcbiAgICBjbGFzc05hbWU6ICd3cmQtd3JwJyxcbiAgICBjc3NOYW1lOiAnd29yZC13cmFwJyxcbiAgICBqc05hbWU6ICd3b3JkV3JhcCcsXG4gICAgc2FmZVZhbHVlOiB0cnVlXG59O1xuY29uc3Qgd2hpdGVTcGFjZSA9IHtcbiAgICBjbGFzc05hbWU6ICd3aHQtc3BjJyxcbiAgICBjc3NOYW1lOiAnd2hpdGUtc3BhY2UnLFxuICAgIGpzTmFtZTogJ3doaXRlU3BhY2UnLFxuICAgIHNhZmVWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IGxldHRlclNwYWNpbmcgPSB7XG4gICAgY2xhc3NOYW1lOiAnbHRyLXNwYycsXG4gICAgY3NzTmFtZTogJ2xldHRlci1zcGFjaW5nJyxcbiAgICBqc05hbWU6ICdsZXR0ZXJTcGFjaW5nJ1xufTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IHtcbiAgICBjb2xvcjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShjb2xvciwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBmb250OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZvbnQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZm9udEZhbWlseTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShmb250RmFtaWx5LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGZvbnRTaXplOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGZvbnRTaXplLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGZvbnRTdHlsZTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShmb250U3R5bGUsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZm9udFZhcmlhbnQ6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkoZm9udFZhcmlhbnQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgZm9udFdlaWdodDogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KShmb250V2VpZ2h0LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIGxldHRlclNwYWNpbmc6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkobGV0dGVyU3BhY2luZywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICBsaW5lSGVpZ2h0OiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKGxpbmVIZWlnaHQsIHZhbHVlLCBzZWxlY3RvciksXG4gICAgdGV4dEFsaWduOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHRleHRBbGlnbiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB0ZXh0RGVjb3JhdGlvbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh0ZXh0RGVjb3JhdGlvbiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkodGV4dE92ZXJmbG93LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHRleHRTaGFkb3c6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkodGV4dFNoYWRvdywgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB0ZXh0VHJhbnNmb3JtOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHRleHRUcmFuc2Zvcm0sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgdmVydGljYWxBbGlnbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh2ZXJ0aWNhbEFsaWduLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHdoaXRlU3BhY2U6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkod2hpdGVTcGFjZSwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB3b3JkQnJlYWs6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkod29yZEJyZWFrLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHdvcmRXcmFwOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHdvcmRXcmFwLCB2YWx1ZSwgc2VsZWN0b3IpXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/text.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transform.js": /*!*************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/transform.js ***! \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n transform: prop_types_1.default.string,\n transformOrigin: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst transform = {\n className: 'tfrm',\n cssName: 'transform',\n jsName: 'transform',\n complexValue: true\n};\nconst transformOrigin = {\n className: 'tfrm-orgn',\n cssName: 'transform-origin',\n jsName: 'transformOrigin',\n complexValue: true\n};\nexports.propEnhancers = {\n transform: (value, selector) => (0, get_css_1.default)(transform, value, selector),\n transformOrigin: (value, selector) => (0, get_css_1.default)(transformOrigin, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3RyYW5zZm9ybS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQjtBQUN4RixxQ0FBcUMsbUJBQU8sQ0FBQywwRUFBWTtBQUN6RCxrQ0FBa0MsbUJBQU8sQ0FBQyxpRkFBWTtBQUN0RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3RyYW5zZm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJvcEVuaGFuY2VycyA9IGV4cG9ydHMucHJvcFZhbGlkYXRvcnMgPSBleHBvcnRzLnByb3BBbGlhc2VzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBwcm9wX3R5cGVzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuY29uc3QgZ2V0X2Nzc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9nZXQtY3NzXCIpKTtcbmV4cG9ydHMucHJvcFR5cGVzID0ge1xuICAgIHRyYW5zZm9ybTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRyYW5zZm9ybU9yaWdpbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgdHJhbnNmb3JtID0ge1xuICAgIGNsYXNzTmFtZTogJ3Rmcm0nLFxuICAgIGNzc05hbWU6ICd0cmFuc2Zvcm0nLFxuICAgIGpzTmFtZTogJ3RyYW5zZm9ybScsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgdHJhbnNmb3JtT3JpZ2luID0ge1xuICAgIGNsYXNzTmFtZTogJ3Rmcm0tb3JnbicsXG4gICAgY3NzTmFtZTogJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAgIGpzTmFtZTogJ3RyYW5zZm9ybU9yaWdpbicsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0ge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh0cmFuc2Zvcm0sIHZhbHVlLCBzZWxlY3RvciksXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHRyYW5zZm9ybU9yaWdpbiwgdmFsdWUsIHNlbGVjdG9yKVxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transform.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transition.js": /*!**************************************************************!*\ !*** ./node_modules/ui-box/dist/src/enhancers/transition.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.propEnhancers = exports.propValidators = exports.propAliases = exports.propTypes = void 0;\nconst prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"(app-pages-browser)/./node_modules/prop-types/index.js\"));\nconst get_css_1 = __importDefault(__webpack_require__(/*! ../get-css */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\"));\nexports.propTypes = {\n transition: prop_types_1.default.string,\n transitionDelay: prop_types_1.default.string,\n transitionDuration: prop_types_1.default.string,\n transitionProperty: prop_types_1.default.string,\n transitionTimingFunction: prop_types_1.default.string\n};\nexports.propAliases = {};\nexports.propValidators = {};\nconst transition = {\n className: 'tstn',\n cssName: 'transition',\n jsName: 'transition',\n complexValue: true\n};\nconst transitionDelay = {\n className: 'tstn-dly',\n cssName: 'transition-delay',\n jsName: 'transitionDelay',\n complexValue: true\n};\nconst transitionDuration = {\n className: 'tstn-drn',\n cssName: 'transition-duration',\n jsName: 'transitionDuration',\n complexValue: true\n};\nconst transitionProperty = {\n className: 'tstn-pty',\n cssName: 'transition-property',\n jsName: 'transitionProperty',\n complexValue: true\n};\nconst transitionTimingFunction = {\n className: 'tstn-tf',\n cssName: 'transition-timing-function',\n jsName: 'transitionTimingFunction',\n complexValue: true\n};\nexports.propEnhancers = {\n transition: (value, selector) => (0, get_css_1.default)(transition, value, selector),\n transitionDelay: (value, selector) => (0, get_css_1.default)(transitionDelay, value, selector),\n transitionDuration: (value, selector) => (0, get_css_1.default)(transitionDuration, value, selector),\n transitionProperty: (value, selector) => (0, get_css_1.default)(transitionProperty, value, selector),\n transitionTimingFunction: (value, selector) => (0, get_css_1.default)(transitionTimingFunction, value, selector)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZW5oYW5jZXJzL3RyYW5zaXRpb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUI7QUFDeEYscUNBQXFDLG1CQUFPLENBQUMsMEVBQVk7QUFDekQsa0NBQWtDLG1CQUFPLENBQUMsaUZBQVk7QUFDdEQsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2VuaGFuY2Vycy90cmFuc2l0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IGV4cG9ydHMucHJvcEFsaWFzZXMgPSBleHBvcnRzLnByb3BUeXBlcyA9IHZvaWQgMDtcbmNvbnN0IHByb3BfdHlwZXNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5jb25zdCBnZXRfY3NzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2dldC1jc3NcIikpO1xuZXhwb3J0cy5wcm9wVHlwZXMgPSB7XG4gICAgdHJhbnNpdGlvbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRyYW5zaXRpb25EZWxheTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogcHJvcF90eXBlc18xLmRlZmF1bHQuc3RyaW5nXG59O1xuZXhwb3J0cy5wcm9wQWxpYXNlcyA9IHt9O1xuZXhwb3J0cy5wcm9wVmFsaWRhdG9ycyA9IHt9O1xuY29uc3QgdHJhbnNpdGlvbiA9IHtcbiAgICBjbGFzc05hbWU6ICd0c3RuJyxcbiAgICBjc3NOYW1lOiAndHJhbnNpdGlvbicsXG4gICAganNOYW1lOiAndHJhbnNpdGlvbicsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgdHJhbnNpdGlvbkRlbGF5ID0ge1xuICAgIGNsYXNzTmFtZTogJ3RzdG4tZGx5JyxcbiAgICBjc3NOYW1lOiAndHJhbnNpdGlvbi1kZWxheScsXG4gICAganNOYW1lOiAndHJhbnNpdGlvbkRlbGF5JyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5jb25zdCB0cmFuc2l0aW9uRHVyYXRpb24gPSB7XG4gICAgY2xhc3NOYW1lOiAndHN0bi1kcm4nLFxuICAgIGNzc05hbWU6ICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgICBqc05hbWU6ICd0cmFuc2l0aW9uRHVyYXRpb24nLFxuICAgIGNvbXBsZXhWYWx1ZTogdHJ1ZVxufTtcbmNvbnN0IHRyYW5zaXRpb25Qcm9wZXJ0eSA9IHtcbiAgICBjbGFzc05hbWU6ICd0c3RuLXB0eScsXG4gICAgY3NzTmFtZTogJ3RyYW5zaXRpb24tcHJvcGVydHknLFxuICAgIGpzTmFtZTogJ3RyYW5zaXRpb25Qcm9wZXJ0eScsXG4gICAgY29tcGxleFZhbHVlOiB0cnVlXG59O1xuY29uc3QgdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uID0ge1xuICAgIGNsYXNzTmFtZTogJ3RzdG4tdGYnLFxuICAgIGNzc05hbWU6ICd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICAganNOYW1lOiAndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJyxcbiAgICBjb21wbGV4VmFsdWU6IHRydWVcbn07XG5leHBvcnRzLnByb3BFbmhhbmNlcnMgPSB7XG4gICAgdHJhbnNpdGlvbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh0cmFuc2l0aW9uLCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHRyYW5zaXRpb25EZWxheTogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh0cmFuc2l0aW9uRGVsYXksIHZhbHVlLCBzZWxlY3RvciksXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiAodmFsdWUsIHNlbGVjdG9yKSA9PiAoMCwgZ2V0X2Nzc18xLmRlZmF1bHQpKHRyYW5zaXRpb25EdXJhdGlvbiwgdmFsdWUsIHNlbGVjdG9yKSxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6ICh2YWx1ZSwgc2VsZWN0b3IpID0+ICgwLCBnZXRfY3NzXzEuZGVmYXVsdCkodHJhbnNpdGlvblByb3BlcnR5LCB2YWx1ZSwgc2VsZWN0b3IpLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogKHZhbHVlLCBzZWxlY3RvcikgPT4gKDAsIGdldF9jc3NfMS5kZWZhdWx0KSh0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24sIHZhbHVlLCBzZWxlY3Rvcilcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/transition.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/expand-aliases.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/expand-aliases.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst index_1 = __webpack_require__(/*! ./enhancers/index */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nfunction expandAliases(props) {\n const propNames = Object.keys(props);\n const newProps = new Map();\n propNames.forEach(propName => {\n const propValue = props[propName];\n const aliases = index_1.propAliases[propName] || [propName];\n if (true) {\n const validator = index_1.propValidators[propName];\n if (validator) {\n const result = validator(propValue);\n if (result) {\n throw new Error(`📦 ui-box: ${result}`);\n }\n }\n }\n aliases.forEach(alias => {\n newProps.set(alias, propValue);\n });\n });\n return newProps;\n}\nexports[\"default\"] = expandAliases;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZXhwYW5kLWFsaWFzZXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCLG1CQUFPLENBQUMsZ0dBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksSUFBcUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsT0FBTztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9leHBhbmQtYWxpYXNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGluZGV4XzEgPSByZXF1aXJlKFwiLi9lbmhhbmNlcnMvaW5kZXhcIik7XG5mdW5jdGlvbiBleHBhbmRBbGlhc2VzKHByb3BzKSB7XG4gICAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmtleXMocHJvcHMpO1xuICAgIGNvbnN0IG5ld1Byb3BzID0gbmV3IE1hcCgpO1xuICAgIHByb3BOYW1lcy5mb3JFYWNoKHByb3BOYW1lID0+IHtcbiAgICAgICAgY29uc3QgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBhbGlhc2VzID0gaW5kZXhfMS5wcm9wQWxpYXNlc1twcm9wTmFtZV0gfHwgW3Byb3BOYW1lXTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGluZGV4XzEucHJvcFZhbGlkYXRvcnNbcHJvcE5hbWVdO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRvcihwcm9wVmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDwn5OmIHVpLWJveDogJHtyZXN1bHR9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFsaWFzZXMuZm9yRWFjaChhbGlhcyA9PiB7XG4gICAgICAgICAgICBuZXdQcm9wcy5zZXQoYWxpYXMsIHByb3BWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdQcm9wcztcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGV4cGFuZEFsaWFzZXM7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/expand-aliases.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/get-class-name.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/get-class-name.js ***! \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.setClassNamePrefix = exports.getClassNamePrefix = void 0;\nconst hash_1 = __importDefault(__webpack_require__(/*! @emotion/hash */ \"(app-pages-browser)/./node_modules/@emotion/hash/dist/hash.browser.esm.js\"));\nconst get_safe_value_1 = __importDefault(__webpack_require__(/*! ./get-safe-value */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-safe-value.js\"));\nlet PREFIX = 'ub-';\nfunction getClassNamePrefix() {\n return PREFIX;\n}\nexports.getClassNamePrefix = getClassNamePrefix;\nfunction setClassNamePrefix(prefix) {\n PREFIX = prefix;\n}\nexports.setClassNamePrefix = setClassNamePrefix;\nfunction getClassName(propertyInfo, value, selector = '') {\n const { className, safeValue = false, complexValue = false } = propertyInfo;\n let valueKey;\n if (value === 'inherit' || value === 'initial' || value === 'unset') {\n valueKey = value;\n }\n else if (complexValue || value.includes('calc(')) {\n valueKey = (0, hash_1.default)(value);\n }\n else if (safeValue) {\n valueKey = value;\n }\n else {\n valueKey = (0, get_safe_value_1.default)(value);\n }\n if (selector) {\n valueKey = `${valueKey}_${(0, hash_1.default)(selector)}`;\n }\n return `${PREFIX}${className}_${valueKey}`;\n}\nexports[\"default\"] = getClassName;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZ2V0LWNsYXNzLW5hbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwwQkFBMEIsR0FBRywwQkFBMEI7QUFDdkQsK0JBQStCLG1CQUFPLENBQUMsZ0dBQWU7QUFDdEQseUNBQXlDLG1CQUFPLENBQUMsOEZBQWtCO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBLFlBQVkscURBQXFEO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsU0FBUyxHQUFHLDhCQUE4QjtBQUNoRTtBQUNBLGNBQWMsT0FBTyxFQUFFLFVBQVUsR0FBRyxTQUFTO0FBQzdDO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9nZXQtY2xhc3MtbmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuc2V0Q2xhc3NOYW1lUHJlZml4ID0gZXhwb3J0cy5nZXRDbGFzc05hbWVQcmVmaXggPSB2b2lkIDA7XG5jb25zdCBoYXNoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBlbW90aW9uL2hhc2hcIikpO1xuY29uc3QgZ2V0X3NhZmVfdmFsdWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9nZXQtc2FmZS12YWx1ZVwiKSk7XG5sZXQgUFJFRklYID0gJ3ViLSc7XG5mdW5jdGlvbiBnZXRDbGFzc05hbWVQcmVmaXgoKSB7XG4gICAgcmV0dXJuIFBSRUZJWDtcbn1cbmV4cG9ydHMuZ2V0Q2xhc3NOYW1lUHJlZml4ID0gZ2V0Q2xhc3NOYW1lUHJlZml4O1xuZnVuY3Rpb24gc2V0Q2xhc3NOYW1lUHJlZml4KHByZWZpeCkge1xuICAgIFBSRUZJWCA9IHByZWZpeDtcbn1cbmV4cG9ydHMuc2V0Q2xhc3NOYW1lUHJlZml4ID0gc2V0Q2xhc3NOYW1lUHJlZml4O1xuZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKHByb3BlcnR5SW5mbywgdmFsdWUsIHNlbGVjdG9yID0gJycpIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc2FmZVZhbHVlID0gZmFsc2UsIGNvbXBsZXhWYWx1ZSA9IGZhbHNlIH0gPSBwcm9wZXJ0eUluZm87XG4gICAgbGV0IHZhbHVlS2V5O1xuICAgIGlmICh2YWx1ZSA9PT0gJ2luaGVyaXQnIHx8IHZhbHVlID09PSAnaW5pdGlhbCcgfHwgdmFsdWUgPT09ICd1bnNldCcpIHtcbiAgICAgICAgdmFsdWVLZXkgPSB2YWx1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29tcGxleFZhbHVlIHx8IHZhbHVlLmluY2x1ZGVzKCdjYWxjKCcpKSB7XG4gICAgICAgIHZhbHVlS2V5ID0gKDAsIGhhc2hfMS5kZWZhdWx0KSh2YWx1ZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNhZmVWYWx1ZSkge1xuICAgICAgICB2YWx1ZUtleSA9IHZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFsdWVLZXkgPSAoMCwgZ2V0X3NhZmVfdmFsdWVfMS5kZWZhdWx0KSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICB2YWx1ZUtleSA9IGAke3ZhbHVlS2V5fV8keygwLCBoYXNoXzEuZGVmYXVsdCkoc2VsZWN0b3IpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHtQUkVGSVh9JHtjbGFzc05hbWV9XyR7dmFsdWVLZXl9YDtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGdldENsYXNzTmFtZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/get-class-name.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js": /*!*************************************************!*\ !*** ./node_modules/ui-box/dist/src/get-css.js ***! \*************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst prefixer_1 = __importDefault(__webpack_require__(/*! ./prefixer */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/prefixer.js\"));\nconst value_to_string_1 = __importDefault(__webpack_require__(/*! ./value-to-string */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/value-to-string.js\"));\nconst get_class_name_1 = __importDefault(__webpack_require__(/*! ./get-class-name */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-class-name.js\"));\nconst is_production_1 = __importDefault(__webpack_require__(/*! ./utils/is-production */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/is-production.js\"));\nfunction getCss(propertyInfo, value, selector = '') {\n let rules;\n const valueType = typeof value;\n if (valueType !== 'string' && valueType !== 'number') {\n if (true) {\n const name = propertyInfo.jsName;\n const encodedValue = JSON.stringify(value);\n console.error(`📦 ui-box: property “${name}” was passed invalid value “${encodedValue}”. Only numbers and strings are supported.`);\n }\n return null;\n }\n const valueString = (0, value_to_string_1.default)(value, propertyInfo.defaultUnit);\n const className = (0, get_class_name_1.default)(propertyInfo, valueString, selector);\n if (propertyInfo.isPrefixed) {\n rules = (0, prefixer_1.default)(propertyInfo.jsName || '', valueString);\n }\n else {\n rules = [{ property: propertyInfo.cssName || '', value: valueString }];\n }\n let styles;\n if ((0, is_production_1.default)()) {\n const rulesString = rules.map(rule => `${rule.property}:${rule.value}`).join(';');\n styles = `${expandSelectors(className, selector)}{${rulesString}}`;\n }\n else {\n const rulesString = rules.map(rule => ` ${rule.property}: ${rule.value};`).join('\\n');\n styles = `\n${expandSelectors(className, selector)} {\n${rulesString}\n}`;\n }\n return { className, styles, rules };\n}\nexports[\"default\"] = getCss;\nconst expandSelectors = (className, selector) => {\n if (!selector.includes(',')) {\n return `.${className}${selector}`;\n }\n return selector\n .split(',')\n .map(selectorPart => `.${className}${selectorPart}`)\n .join(', ');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZ2V0LWNzcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1DQUFtQyxtQkFBTyxDQUFDLGtGQUFZO0FBQ3ZELDBDQUEwQyxtQkFBTyxDQUFDLGdHQUFtQjtBQUNyRSx5Q0FBeUMsbUJBQU8sQ0FBQyw4RkFBa0I7QUFDbkUsd0NBQXdDLG1CQUFPLENBQUMsd0dBQXVCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFxQztBQUNqRDtBQUNBO0FBQ0Esa0RBQWtELEtBQUssOEJBQThCLGFBQWE7QUFDbEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBEQUEwRDtBQUM3RTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsY0FBYyxHQUFHLFdBQVcsVUFBVTtBQUN2RixvQkFBb0Isc0NBQXNDLEVBQUUsYUFBYTtBQUN6RTtBQUNBO0FBQ0EsbURBQW1ELGNBQWMsSUFBSSxZQUFZO0FBQ2pGO0FBQ0EsRUFBRTtBQUNGLEVBQUU7QUFDRixDQUFDO0FBQ0Q7QUFDQSxhQUFhO0FBQ2I7QUFDQSxrQkFBZTtBQUNmO0FBQ0E7QUFDQSxtQkFBbUIsVUFBVSxFQUFFLFNBQVM7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLFVBQVUsRUFBRSxhQUFhO0FBQzFEO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9nZXQtY3NzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgcHJlZml4ZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9wcmVmaXhlclwiKSk7XG5jb25zdCB2YWx1ZV90b19zdHJpbmdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92YWx1ZS10by1zdHJpbmdcIikpO1xuY29uc3QgZ2V0X2NsYXNzX25hbWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9nZXQtY2xhc3MtbmFtZVwiKSk7XG5jb25zdCBpc19wcm9kdWN0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvaXMtcHJvZHVjdGlvblwiKSk7XG5mdW5jdGlvbiBnZXRDc3MocHJvcGVydHlJbmZvLCB2YWx1ZSwgc2VsZWN0b3IgPSAnJykge1xuICAgIGxldCBydWxlcztcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gJ3N0cmluZycgJiYgdmFsdWVUeXBlICE9PSAnbnVtYmVyJykge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHByb3BlcnR5SW5mby5qc05hbWU7XG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkVmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGDwn5OmIHVpLWJveDogcHJvcGVydHkg4oCcJHtuYW1lfeKAnSB3YXMgcGFzc2VkIGludmFsaWQgdmFsdWUg4oCcJHtlbmNvZGVkVmFsdWV94oCdLiBPbmx5IG51bWJlcnMgYW5kIHN0cmluZ3MgYXJlIHN1cHBvcnRlZC5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSAoMCwgdmFsdWVfdG9fc3RyaW5nXzEuZGVmYXVsdCkodmFsdWUsIHByb3BlcnR5SW5mby5kZWZhdWx0VW5pdCk7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gKDAsIGdldF9jbGFzc19uYW1lXzEuZGVmYXVsdCkocHJvcGVydHlJbmZvLCB2YWx1ZVN0cmluZywgc2VsZWN0b3IpO1xuICAgIGlmIChwcm9wZXJ0eUluZm8uaXNQcmVmaXhlZCkge1xuICAgICAgICBydWxlcyA9ICgwLCBwcmVmaXhlcl8xLmRlZmF1bHQpKHByb3BlcnR5SW5mby5qc05hbWUgfHwgJycsIHZhbHVlU3RyaW5nKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJ1bGVzID0gW3sgcHJvcGVydHk6IHByb3BlcnR5SW5mby5jc3NOYW1lIHx8ICcnLCB2YWx1ZTogdmFsdWVTdHJpbmcgfV07XG4gICAgfVxuICAgIGxldCBzdHlsZXM7XG4gICAgaWYgKCgwLCBpc19wcm9kdWN0aW9uXzEuZGVmYXVsdCkoKSkge1xuICAgICAgICBjb25zdCBydWxlc1N0cmluZyA9IHJ1bGVzLm1hcChydWxlID0+IGAke3J1bGUucHJvcGVydHl9OiR7cnVsZS52YWx1ZX1gKS5qb2luKCc7Jyk7XG4gICAgICAgIHN0eWxlcyA9IGAke2V4cGFuZFNlbGVjdG9ycyhjbGFzc05hbWUsIHNlbGVjdG9yKX17JHtydWxlc1N0cmluZ319YDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJ1bGVzU3RyaW5nID0gcnVsZXMubWFwKHJ1bGUgPT4gYCAgJHtydWxlLnByb3BlcnR5fTogJHtydWxlLnZhbHVlfTtgKS5qb2luKCdcXG4nKTtcbiAgICAgICAgc3R5bGVzID0gYFxuJHtleHBhbmRTZWxlY3RvcnMoY2xhc3NOYW1lLCBzZWxlY3Rvcil9IHtcbiR7cnVsZXNTdHJpbmd9XG59YDtcbiAgICB9XG4gICAgcmV0dXJuIHsgY2xhc3NOYW1lLCBzdHlsZXMsIHJ1bGVzIH07XG59XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRDc3M7XG5jb25zdCBleHBhbmRTZWxlY3RvcnMgPSAoY2xhc3NOYW1lLCBzZWxlY3RvcikgPT4ge1xuICAgIGlmICghc2VsZWN0b3IuaW5jbHVkZXMoJywnKSkge1xuICAgICAgICByZXR1cm4gYC4ke2NsYXNzTmFtZX0ke3NlbGVjdG9yfWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RvclxuICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAubWFwKHNlbGVjdG9yUGFydCA9PiBgLiR7Y2xhc3NOYW1lfSR7c2VsZWN0b3JQYXJ0fWApXG4gICAgICAgIC5qb2luKCcsICcpO1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/get-css.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/get-safe-value.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/get-safe-value.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst regex_1 = __webpack_require__(/*! ./utils/regex */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js\");\nconst dashRegex = /[ .]/g;\nconst percentRegex = /%/g;\nfunction getSafeValue(value) {\n return value\n .replace(dashRegex, '-')\n .replace(percentRegex, 'prcnt')\n .replace(regex_1.unsafeClassNameCharacters, '');\n}\nexports[\"default\"] = getSafeValue;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZ2V0LXNhZmUtdmFsdWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCLG1CQUFPLENBQUMsd0ZBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvZ2V0LXNhZmUtdmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCByZWdleF8xID0gcmVxdWlyZShcIi4vdXRpbHMvcmVnZXhcIik7XG5jb25zdCBkYXNoUmVnZXggPSAvWyAuXS9nO1xuY29uc3QgcGVyY2VudFJlZ2V4ID0gLyUvZztcbmZ1bmN0aW9uIGdldFNhZmVWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZShkYXNoUmVnZXgsICctJylcbiAgICAgICAgLnJlcGxhY2UocGVyY2VudFJlZ2V4LCAncHJjbnQnKVxuICAgICAgICAucmVwbGFjZShyZWdleF8xLnVuc2FmZUNsYXNzTmFtZUNoYXJhY3RlcnMsICcnKTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGdldFNhZmVWYWx1ZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/get-safe-value.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/index.js": /*!***********************************************!*\ !*** ./node_modules/ui-box/dist/src/index.js ***! \***********************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.clearStyles = exports.extractStyles = exports.hydrate = exports.propEnhancers = exports.propAliases = exports.propNames = exports.propTypes = exports.transform = exports.text = exports.spacing = exports.position = exports.overflow = exports.opacity = exports.list = exports.layout = exports.interaction = exports.flex = exports.dimensions = exports.boxShadow = exports.borders = exports.borderRadius = exports.background = exports.configureSafeHref = exports.setClassNamePrefix = exports.splitBoxProps = exports.splitProps = exports.keyframes = exports[\"default\"] = void 0;\nconst cache = __importStar(__webpack_require__(/*! ./cache */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/cache.js\"));\nconst styles = __importStar(__webpack_require__(/*! ./styles */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/styles.js\"));\nvar box_1 = __webpack_require__(/*! ./box */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/box.js\");\nObject.defineProperty(exports, \"default\", ({ enumerable: true, get: function () { return __importDefault(box_1).default; } }));\nvar keyframes_1 = __webpack_require__(/*! ./keyframes */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/keyframes.js\");\nObject.defineProperty(exports, \"keyframes\", ({ enumerable: true, get: function () { return __importDefault(keyframes_1).default; } }));\nvar split_props_1 = __webpack_require__(/*! ./utils/split-props */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-props.js\");\nObject.defineProperty(exports, \"splitProps\", ({ enumerable: true, get: function () { return __importDefault(split_props_1).default; } }));\nvar split_box_props_1 = __webpack_require__(/*! ./utils/split-box-props */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-box-props.js\");\nObject.defineProperty(exports, \"splitBoxProps\", ({ enumerable: true, get: function () { return __importDefault(split_box_props_1).default; } }));\nvar get_class_name_1 = __webpack_require__(/*! ./get-class-name */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/get-class-name.js\");\nObject.defineProperty(exports, \"setClassNamePrefix\", ({ enumerable: true, get: function () { return get_class_name_1.setClassNamePrefix; } }));\nvar safeHref_1 = __webpack_require__(/*! ./utils/safeHref */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/safeHref.js\");\nObject.defineProperty(exports, \"configureSafeHref\", ({ enumerable: true, get: function () { return safeHref_1.configureSafeHref; } }));\nvar index_1 = __webpack_require__(/*! ./enhancers/index */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nObject.defineProperty(exports, \"background\", ({ enumerable: true, get: function () { return index_1.background; } }));\nObject.defineProperty(exports, \"borderRadius\", ({ enumerable: true, get: function () { return index_1.borderRadius; } }));\nObject.defineProperty(exports, \"borders\", ({ enumerable: true, get: function () { return index_1.borders; } }));\nObject.defineProperty(exports, \"boxShadow\", ({ enumerable: true, get: function () { return index_1.boxShadow; } }));\nObject.defineProperty(exports, \"dimensions\", ({ enumerable: true, get: function () { return index_1.dimensions; } }));\nObject.defineProperty(exports, \"flex\", ({ enumerable: true, get: function () { return index_1.flex; } }));\nObject.defineProperty(exports, \"interaction\", ({ enumerable: true, get: function () { return index_1.interaction; } }));\nObject.defineProperty(exports, \"layout\", ({ enumerable: true, get: function () { return index_1.layout; } }));\nObject.defineProperty(exports, \"list\", ({ enumerable: true, get: function () { return index_1.list; } }));\nObject.defineProperty(exports, \"opacity\", ({ enumerable: true, get: function () { return index_1.opacity; } }));\nObject.defineProperty(exports, \"overflow\", ({ enumerable: true, get: function () { return index_1.overflow; } }));\nObject.defineProperty(exports, \"position\", ({ enumerable: true, get: function () { return index_1.position; } }));\nObject.defineProperty(exports, \"spacing\", ({ enumerable: true, get: function () { return index_1.spacing; } }));\nObject.defineProperty(exports, \"text\", ({ enumerable: true, get: function () { return index_1.text; } }));\nObject.defineProperty(exports, \"transform\", ({ enumerable: true, get: function () { return index_1.transform; } }));\nObject.defineProperty(exports, \"propTypes\", ({ enumerable: true, get: function () { return index_1.propTypes; } }));\nObject.defineProperty(exports, \"propNames\", ({ enumerable: true, get: function () { return index_1.propNames; } }));\nObject.defineProperty(exports, \"propAliases\", ({ enumerable: true, get: function () { return index_1.propAliases; } }));\nObject.defineProperty(exports, \"propEnhancers\", ({ enumerable: true, get: function () { return index_1.propEnhancers; } }));\nexports.hydrate = cache.hydrate;\nfunction extractStyles() {\n const output = {\n cache: cache.entries(),\n styles: styles.getAll()\n };\n clearStyles();\n return output;\n}\nexports.extractStyles = extractStyles;\nfunction clearStyles() {\n cache.clear();\n styles.clear();\n}\nexports.clearStyles = clearStyles;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0NBQW9DO0FBQ25EO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CLEdBQUcscUJBQXFCLEdBQUcsZUFBZSxHQUFHLHFCQUFxQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQixHQUFHLGlCQUFpQixHQUFHLGlCQUFpQixHQUFHLFlBQVksR0FBRyxlQUFlLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLFlBQVksR0FBRyxjQUFjLEdBQUcsbUJBQW1CLEdBQUcsWUFBWSxHQUFHLGtCQUFrQixHQUFHLGlCQUFpQixHQUFHLGVBQWUsR0FBRyxvQkFBb0IsR0FBRyxrQkFBa0IsR0FBRyx5QkFBeUIsR0FBRywwQkFBMEIsR0FBRyxxQkFBcUIsR0FBRyxrQkFBa0IsR0FBRyxpQkFBaUIsR0FBRyxrQkFBZTtBQUN4akIsMkJBQTJCLG1CQUFPLENBQUMsNEVBQVM7QUFDNUMsNEJBQTRCLG1CQUFPLENBQUMsOEVBQVU7QUFDOUMsWUFBWSxtQkFBTyxDQUFDLHdFQUFPO0FBQzNCLDJDQUEwQyxFQUFFLHFDQUFxQywwQ0FBMEMsRUFBQztBQUM1SCxrQkFBa0IsbUJBQU8sQ0FBQyxvRkFBYTtBQUN2Qyw2Q0FBNEMsRUFBRSxxQ0FBcUMsZ0RBQWdELEVBQUM7QUFDcEksb0JBQW9CLG1CQUFPLENBQUMsb0dBQXFCO0FBQ2pELDhDQUE2QyxFQUFFLHFDQUFxQyxrREFBa0QsRUFBQztBQUN2SSx3QkFBd0IsbUJBQU8sQ0FBQyw0R0FBeUI7QUFDekQsaURBQWdELEVBQUUscUNBQXFDLHNEQUFzRCxFQUFDO0FBQzlJLHVCQUF1QixtQkFBTyxDQUFDLDhGQUFrQjtBQUNqRCxzREFBcUQsRUFBRSxxQ0FBcUMsK0NBQStDLEVBQUM7QUFDNUksaUJBQWlCLG1CQUFPLENBQUMsOEZBQWtCO0FBQzNDLHFEQUFvRCxFQUFFLHFDQUFxQyx3Q0FBd0MsRUFBQztBQUNwSSxjQUFjLG1CQUFPLENBQUMsZ0dBQW1CO0FBQ3pDLDhDQUE2QyxFQUFFLHFDQUFxQyw4QkFBOEIsRUFBQztBQUNuSCxnREFBK0MsRUFBRSxxQ0FBcUMsZ0NBQWdDLEVBQUM7QUFDdkgsMkNBQTBDLEVBQUUscUNBQXFDLDJCQUEyQixFQUFDO0FBQzdHLDZDQUE0QyxFQUFFLHFDQUFxQyw2QkFBNkIsRUFBQztBQUNqSCw4Q0FBNkMsRUFBRSxxQ0FBcUMsOEJBQThCLEVBQUM7QUFDbkgsd0NBQXVDLEVBQUUscUNBQXFDLHdCQUF3QixFQUFDO0FBQ3ZHLCtDQUE4QyxFQUFFLHFDQUFxQywrQkFBK0IsRUFBQztBQUNySCwwQ0FBeUMsRUFBRSxxQ0FBcUMsMEJBQTBCLEVBQUM7QUFDM0csd0NBQXVDLEVBQUUscUNBQXFDLHdCQUF3QixFQUFDO0FBQ3ZHLDJDQUEwQyxFQUFFLHFDQUFxQywyQkFBMkIsRUFBQztBQUM3Ryw0Q0FBMkMsRUFBRSxxQ0FBcUMsNEJBQTRCLEVBQUM7QUFDL0csNENBQTJDLEVBQUUscUNBQXFDLDRCQUE0QixFQUFDO0FBQy9HLDJDQUEwQyxFQUFFLHFDQUFxQywyQkFBMkIsRUFBQztBQUM3Ryx3Q0FBdUMsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUM7QUFDdkcsNkNBQTRDLEVBQUUscUNBQXFDLDZCQUE2QixFQUFDO0FBQ2pILDZDQUE0QyxFQUFFLHFDQUFxQyw2QkFBNkIsRUFBQztBQUNqSCw2Q0FBNEMsRUFBRSxxQ0FBcUMsNkJBQTZCLEVBQUM7QUFDakgsK0NBQThDLEVBQUUscUNBQXFDLCtCQUErQixFQUFDO0FBQ3JILGlEQUFnRCxFQUFFLHFDQUFxQyxpQ0FBaUMsRUFBQztBQUN6SCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XG4gICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNsZWFyU3R5bGVzID0gZXhwb3J0cy5leHRyYWN0U3R5bGVzID0gZXhwb3J0cy5oeWRyYXRlID0gZXhwb3J0cy5wcm9wRW5oYW5jZXJzID0gZXhwb3J0cy5wcm9wQWxpYXNlcyA9IGV4cG9ydHMucHJvcE5hbWVzID0gZXhwb3J0cy5wcm9wVHlwZXMgPSBleHBvcnRzLnRyYW5zZm9ybSA9IGV4cG9ydHMudGV4dCA9IGV4cG9ydHMuc3BhY2luZyA9IGV4cG9ydHMucG9zaXRpb24gPSBleHBvcnRzLm92ZXJmbG93ID0gZXhwb3J0cy5vcGFjaXR5ID0gZXhwb3J0cy5saXN0ID0gZXhwb3J0cy5sYXlvdXQgPSBleHBvcnRzLmludGVyYWN0aW9uID0gZXhwb3J0cy5mbGV4ID0gZXhwb3J0cy5kaW1lbnNpb25zID0gZXhwb3J0cy5ib3hTaGFkb3cgPSBleHBvcnRzLmJvcmRlcnMgPSBleHBvcnRzLmJvcmRlclJhZGl1cyA9IGV4cG9ydHMuYmFja2dyb3VuZCA9IGV4cG9ydHMuY29uZmlndXJlU2FmZUhyZWYgPSBleHBvcnRzLnNldENsYXNzTmFtZVByZWZpeCA9IGV4cG9ydHMuc3BsaXRCb3hQcm9wcyA9IGV4cG9ydHMuc3BsaXRQcm9wcyA9IGV4cG9ydHMua2V5ZnJhbWVzID0gZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuY29uc3QgY2FjaGUgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vY2FjaGVcIikpO1xuY29uc3Qgc3R5bGVzID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL3N0eWxlc1wiKSk7XG52YXIgYm94XzEgPSByZXF1aXJlKFwiLi9ib3hcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoYm94XzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIga2V5ZnJhbWVzXzEgPSByZXF1aXJlKFwiLi9rZXlmcmFtZXNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJrZXlmcmFtZXNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChrZXlmcmFtZXNfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBzcGxpdF9wcm9wc18xID0gcmVxdWlyZShcIi4vdXRpbHMvc3BsaXQtcHJvcHNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzcGxpdFByb3BzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoc3BsaXRfcHJvcHNfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBzcGxpdF9ib3hfcHJvcHNfMSA9IHJlcXVpcmUoXCIuL3V0aWxzL3NwbGl0LWJveC1wcm9wc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInNwbGl0Qm94UHJvcHNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChzcGxpdF9ib3hfcHJvcHNfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBnZXRfY2xhc3NfbmFtZV8xID0gcmVxdWlyZShcIi4vZ2V0LWNsYXNzLW5hbWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzZXRDbGFzc05hbWVQcmVmaXhcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGdldF9jbGFzc19uYW1lXzEuc2V0Q2xhc3NOYW1lUHJlZml4OyB9IH0pO1xudmFyIHNhZmVIcmVmXzEgPSByZXF1aXJlKFwiLi91dGlscy9zYWZlSHJlZlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNvbmZpZ3VyZVNhZmVIcmVmXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzYWZlSHJlZl8xLmNvbmZpZ3VyZVNhZmVIcmVmOyB9IH0pO1xudmFyIGluZGV4XzEgPSByZXF1aXJlKFwiLi9lbmhhbmNlcnMvaW5kZXhcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJiYWNrZ3JvdW5kXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLmJhY2tncm91bmQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJib3JkZXJSYWRpdXNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEuYm9yZGVyUmFkaXVzOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYm9yZGVyc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gaW5kZXhfMS5ib3JkZXJzOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYm94U2hhZG93XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLmJveFNoYWRvdzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRpbWVuc2lvbnNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEuZGltZW5zaW9uczsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImZsZXhcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEuZmxleDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyYWN0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLmludGVyYWN0aW9uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibGF5b3V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLmxheW91dDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImxpc3RcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEubGlzdDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm9wYWNpdHlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEub3BhY2l0eTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm92ZXJmbG93XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLm92ZXJmbG93OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicG9zaXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEucG9zaXRpb247IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzcGFjaW5nXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLnNwYWNpbmc7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ0ZXh0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLnRleHQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ0cmFuc2Zvcm1cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEudHJhbnNmb3JtOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicHJvcFR5cGVzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF8xLnByb3BUeXBlczsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInByb3BOYW1lc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gaW5kZXhfMS5wcm9wTmFtZXM7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwcm9wQWxpYXNlc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gaW5kZXhfMS5wcm9wQWxpYXNlczsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInByb3BFbmhhbmNlcnNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGluZGV4XzEucHJvcEVuaGFuY2VyczsgfSB9KTtcbmV4cG9ydHMuaHlkcmF0ZSA9IGNhY2hlLmh5ZHJhdGU7XG5mdW5jdGlvbiBleHRyYWN0U3R5bGVzKCkge1xuICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgY2FjaGU6IGNhY2hlLmVudHJpZXMoKSxcbiAgICAgICAgc3R5bGVzOiBzdHlsZXMuZ2V0QWxsKClcbiAgICB9O1xuICAgIGNsZWFyU3R5bGVzKCk7XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cbmV4cG9ydHMuZXh0cmFjdFN0eWxlcyA9IGV4dHJhY3RTdHlsZXM7XG5mdW5jdGlvbiBjbGVhclN0eWxlcygpIHtcbiAgICBjYWNoZS5jbGVhcigpO1xuICAgIHN0eWxlcy5jbGVhcigpO1xufVxuZXhwb3J0cy5jbGVhclN0eWxlcyA9IGNsZWFyU3R5bGVzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/keyframes.js": /*!***************************************************!*\ !*** ./node_modules/ui-box/dist/src/keyframes.js ***! \***************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst hash_1 = __importDefault(__webpack_require__(/*! @emotion/hash */ \"(app-pages-browser)/./node_modules/@emotion/hash/dist/hash.browser.esm.js\"));\nconst flatten_object_1 = __importDefault(__webpack_require__(/*! ./utils/flatten-object */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/flatten-object.js\"));\nconst enhancers_1 = __webpack_require__(/*! ./enhancers */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nconst is_production_1 = __importDefault(__webpack_require__(/*! ./utils/is-production */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/is-production.js\"));\nconst stylesheet = __importStar(__webpack_require__(/*! ./styles */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/styles.js\"));\nconst cache = __importStar(__webpack_require__(/*! ./cache */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/cache.js\"));\nconst keyframes = (friendlyName, timeline) => {\n const hashedValue = (0, hash_1.default)((0, flatten_object_1.default)(timeline));\n const name = `${friendlyName}_${hashedValue}`;\n const cachedStyles = cache.get(friendlyName, hashedValue, 'keyframe');\n if (cachedStyles != null) {\n return name;\n }\n const keys = Object.keys(timeline);\n const timelineStyles = keys.map(key => getStylesForTimelineKey(key, timeline[key] || {}));\n const styles = getKeyframesStyles(name, timelineStyles);\n cache.set(friendlyName, hashedValue, styles, 'keyframe');\n stylesheet.add(styles);\n return name;\n};\nconst flatten = (values) => {\n const flattenedValues = [];\n return flattenedValues.concat(...values);\n};\nconst getStylesForTimelineKey = (timelineKey, cssProps) => {\n const cssPropKeys = Object.keys(cssProps);\n const rules = flatten(cssPropKeys.map(cssPropKey => getRulesForKey(cssPropKey, cssProps)));\n const key = timelineKeyToString(timelineKey);\n const rulesString = rules\n .map(rule => {\n const { property, value } = rule;\n if ((0, is_production_1.default)()) {\n return `${property}:${value};`;\n }\n return ` ${property}: ${value};`;\n })\n .join((0, is_production_1.default)() ? '' : '\\n');\n if ((0, is_production_1.default)()) {\n return `${key} {${rulesString}}`;\n }\n return ` ${key} {\\n${rulesString}\\n }`;\n};\nconst getRulesForKey = (key, cssProps) => {\n const value = cssProps[key];\n const enhancer = enhancers_1.propEnhancers[key];\n if (enhancer == null || value == null || value === false) {\n return [];\n }\n const enhancedProp = enhancer(value, '');\n if (enhancedProp == null) {\n return [];\n }\n return enhancedProp.rules;\n};\nconst getKeyframesStyles = (name, rules) => {\n const separator = (0, is_production_1.default)() ? '' : '\\n';\n const openBrace = `{${separator}`;\n const closeBrace = `${separator}}`;\n const concatenatedRules = rules.join(separator);\n return `@keyframes ${name} ${openBrace}${concatenatedRules}${closeBrace}`;\n};\nconst timelineKeyToString = (timelineKey) => {\n const isNumber = !isNaN(Number(timelineKey));\n return isNumber ? `${timelineKey}%` : timelineKey.toString();\n};\nexports[\"default\"] = keyframes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMva2V5ZnJhbWVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9DQUFvQztBQUNuRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELCtCQUErQixtQkFBTyxDQUFDLGdHQUFlO0FBQ3RELHlDQUF5QyxtQkFBTyxDQUFDLDBHQUF3QjtBQUN6RSxvQkFBb0IsbUJBQU8sQ0FBQywwRkFBYTtBQUN6Qyx3Q0FBd0MsbUJBQU8sQ0FBQyx3R0FBdUI7QUFDdkUsZ0NBQWdDLG1CQUFPLENBQUMsOEVBQVU7QUFDbEQsMkJBQTJCLG1CQUFPLENBQUMsNEVBQVM7QUFDNUM7QUFDQTtBQUNBLG9CQUFvQixhQUFhLEdBQUcsWUFBWTtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxzQkFBc0IsU0FBUyxHQUFHLE9BQU87QUFDekM7QUFDQSxzQkFBc0IsU0FBUyxJQUFJLE9BQU87QUFDMUMsS0FBSztBQUNMO0FBQ0E7QUFDQSxrQkFBa0IsTUFBTSxFQUFFLGFBQWE7QUFDdkM7QUFDQSxnQkFBZ0IsTUFBTSxJQUFJLFlBQVksS0FBSztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsRUFBRSxVQUFVO0FBQ3BDLDBCQUEwQixXQUFXO0FBQ3JDO0FBQ0EseUJBQXlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsV0FBVztBQUM1RTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsWUFBWTtBQUNyQztBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMva2V5ZnJhbWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XG4gICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBoYXNoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBlbW90aW9uL2hhc2hcIikpO1xuY29uc3QgZmxhdHRlbl9vYmplY3RfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi91dGlscy9mbGF0dGVuLW9iamVjdFwiKSk7XG5jb25zdCBlbmhhbmNlcnNfMSA9IHJlcXVpcmUoXCIuL2VuaGFuY2Vyc1wiKTtcbmNvbnN0IGlzX3Byb2R1Y3Rpb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi91dGlscy9pcy1wcm9kdWN0aW9uXCIpKTtcbmNvbnN0IHN0eWxlc2hlZXQgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vc3R5bGVzXCIpKTtcbmNvbnN0IGNhY2hlID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2NhY2hlXCIpKTtcbmNvbnN0IGtleWZyYW1lcyA9IChmcmllbmRseU5hbWUsIHRpbWVsaW5lKSA9PiB7XG4gICAgY29uc3QgaGFzaGVkVmFsdWUgPSAoMCwgaGFzaF8xLmRlZmF1bHQpKCgwLCBmbGF0dGVuX29iamVjdF8xLmRlZmF1bHQpKHRpbWVsaW5lKSk7XG4gICAgY29uc3QgbmFtZSA9IGAke2ZyaWVuZGx5TmFtZX1fJHtoYXNoZWRWYWx1ZX1gO1xuICAgIGNvbnN0IGNhY2hlZFN0eWxlcyA9IGNhY2hlLmdldChmcmllbmRseU5hbWUsIGhhc2hlZFZhbHVlLCAna2V5ZnJhbWUnKTtcbiAgICBpZiAoY2FjaGVkU3R5bGVzICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aW1lbGluZSk7XG4gICAgY29uc3QgdGltZWxpbmVTdHlsZXMgPSBrZXlzLm1hcChrZXkgPT4gZ2V0U3R5bGVzRm9yVGltZWxpbmVLZXkoa2V5LCB0aW1lbGluZVtrZXldIHx8IHt9KSk7XG4gICAgY29uc3Qgc3R5bGVzID0gZ2V0S2V5ZnJhbWVzU3R5bGVzKG5hbWUsIHRpbWVsaW5lU3R5bGVzKTtcbiAgICBjYWNoZS5zZXQoZnJpZW5kbHlOYW1lLCBoYXNoZWRWYWx1ZSwgc3R5bGVzLCAna2V5ZnJhbWUnKTtcbiAgICBzdHlsZXNoZWV0LmFkZChzdHlsZXMpO1xuICAgIHJldHVybiBuYW1lO1xufTtcbmNvbnN0IGZsYXR0ZW4gPSAodmFsdWVzKSA9PiB7XG4gICAgY29uc3QgZmxhdHRlbmVkVmFsdWVzID0gW107XG4gICAgcmV0dXJuIGZsYXR0ZW5lZFZhbHVlcy5jb25jYXQoLi4udmFsdWVzKTtcbn07XG5jb25zdCBnZXRTdHlsZXNGb3JUaW1lbGluZUtleSA9ICh0aW1lbGluZUtleSwgY3NzUHJvcHMpID0+IHtcbiAgICBjb25zdCBjc3NQcm9wS2V5cyA9IE9iamVjdC5rZXlzKGNzc1Byb3BzKTtcbiAgICBjb25zdCBydWxlcyA9IGZsYXR0ZW4oY3NzUHJvcEtleXMubWFwKGNzc1Byb3BLZXkgPT4gZ2V0UnVsZXNGb3JLZXkoY3NzUHJvcEtleSwgY3NzUHJvcHMpKSk7XG4gICAgY29uc3Qga2V5ID0gdGltZWxpbmVLZXlUb1N0cmluZyh0aW1lbGluZUtleSk7XG4gICAgY29uc3QgcnVsZXNTdHJpbmcgPSBydWxlc1xuICAgICAgICAubWFwKHJ1bGUgPT4ge1xuICAgICAgICBjb25zdCB7IHByb3BlcnR5LCB2YWx1ZSB9ID0gcnVsZTtcbiAgICAgICAgaWYgKCgwLCBpc19wcm9kdWN0aW9uXzEuZGVmYXVsdCkoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3Byb3BlcnR5fToke3ZhbHVlfTtgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgICAgICR7cHJvcGVydHl9OiAke3ZhbHVlfTtgO1xuICAgIH0pXG4gICAgICAgIC5qb2luKCgwLCBpc19wcm9kdWN0aW9uXzEuZGVmYXVsdCkoKSA/ICcnIDogJ1xcbicpO1xuICAgIGlmICgoMCwgaXNfcHJvZHVjdGlvbl8xLmRlZmF1bHQpKCkpIHtcbiAgICAgICAgcmV0dXJuIGAke2tleX0geyR7cnVsZXNTdHJpbmd9fWA7XG4gICAgfVxuICAgIHJldHVybiBgICAke2tleX0ge1xcbiR7cnVsZXNTdHJpbmd9XFxuICB9YDtcbn07XG5jb25zdCBnZXRSdWxlc0ZvcktleSA9IChrZXksIGNzc1Byb3BzKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBjc3NQcm9wc1trZXldO1xuICAgIGNvbnN0IGVuaGFuY2VyID0gZW5oYW5jZXJzXzEucHJvcEVuaGFuY2Vyc1trZXldO1xuICAgIGlmIChlbmhhbmNlciA9PSBudWxsIHx8IHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgZW5oYW5jZWRQcm9wID0gZW5oYW5jZXIodmFsdWUsICcnKTtcbiAgICBpZiAoZW5oYW5jZWRQcm9wID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZW5oYW5jZWRQcm9wLnJ1bGVzO1xufTtcbmNvbnN0IGdldEtleWZyYW1lc1N0eWxlcyA9IChuYW1lLCBydWxlcykgPT4ge1xuICAgIGNvbnN0IHNlcGFyYXRvciA9ICgwLCBpc19wcm9kdWN0aW9uXzEuZGVmYXVsdCkoKSA/ICcnIDogJ1xcbic7XG4gICAgY29uc3Qgb3BlbkJyYWNlID0gYHske3NlcGFyYXRvcn1gO1xuICAgIGNvbnN0IGNsb3NlQnJhY2UgPSBgJHtzZXBhcmF0b3J9fWA7XG4gICAgY29uc3QgY29uY2F0ZW5hdGVkUnVsZXMgPSBydWxlcy5qb2luKHNlcGFyYXRvcik7XG4gICAgcmV0dXJuIGBAa2V5ZnJhbWVzICR7bmFtZX0gJHtvcGVuQnJhY2V9JHtjb25jYXRlbmF0ZWRSdWxlc30ke2Nsb3NlQnJhY2V9YDtcbn07XG5jb25zdCB0aW1lbGluZUtleVRvU3RyaW5nID0gKHRpbWVsaW5lS2V5KSA9PiB7XG4gICAgY29uc3QgaXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKHRpbWVsaW5lS2V5KSk7XG4gICAgcmV0dXJuIGlzTnVtYmVyID8gYCR7dGltZWxpbmVLZXl9JWAgOiB0aW1lbGluZUtleS50b1N0cmluZygpO1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IGtleWZyYW1lcztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/keyframes.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/prefixer.js": /*!**************************************************!*\ !*** ./node_modules/ui-box/dist/src/prefixer.js ***! \**************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst inline_style_prefixer_1 = __webpack_require__(/*! inline-style-prefixer */ \"(app-pages-browser)/./node_modules/inline-style-prefixer/es/index.js\");\nconst decamelize_1 = __importDefault(__webpack_require__(/*! ./utils/decamelize */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/decamelize.js\"));\nconst prefixRegex = /^(Webkit|ms|Moz|O)/;\nfunction prefixer(property, value) {\n const rules = (0, inline_style_prefixer_1.prefix)({ [property]: value });\n const rulesArray = [];\n const propertyNames = Object.keys(rules);\n for (let i = 0; i < propertyNames.length; i++) {\n const propertyName = propertyNames[i];\n const prefixedProp = propertyName.match(prefixRegex)\n ? `-${propertyName}`\n : propertyName;\n const prop = (0, decamelize_1.default)(prefixedProp);\n const values = rules[propertyName];\n if (Array.isArray(values)) {\n for (let j = 0; j < values.length; j++) {\n rulesArray.push({ property: prop, value: values[j] });\n }\n }\n else {\n rulesArray.push({ property: prop, value: values });\n }\n }\n return rulesArray;\n}\nexports[\"default\"] = prefixer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvcHJlZml4ZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQ0FBZ0MsbUJBQU8sQ0FBQyxtR0FBdUI7QUFDL0QscUNBQXFDLG1CQUFPLENBQUMsa0dBQW9CO0FBQ2pFO0FBQ0E7QUFDQSx3REFBd0QsbUJBQW1CO0FBQzNFO0FBQ0E7QUFDQSxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQSxrQkFBa0IsYUFBYTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixtQkFBbUI7QUFDL0Msa0NBQWtDLGtDQUFrQztBQUNwRTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0JBQStCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9wcmVmaXhlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGlubGluZV9zdHlsZV9wcmVmaXhlcl8xID0gcmVxdWlyZShcImlubGluZS1zdHlsZS1wcmVmaXhlclwiKTtcbmNvbnN0IGRlY2FtZWxpemVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi91dGlscy9kZWNhbWVsaXplXCIpKTtcbmNvbnN0IHByZWZpeFJlZ2V4ID0gL14oV2Via2l0fG1zfE1venxPKS87XG5mdW5jdGlvbiBwcmVmaXhlcihwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICBjb25zdCBydWxlcyA9ICgwLCBpbmxpbmVfc3R5bGVfcHJlZml4ZXJfMS5wcmVmaXgpKHsgW3Byb3BlcnR5XTogdmFsdWUgfSk7XG4gICAgY29uc3QgcnVsZXNBcnJheSA9IFtdO1xuICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBPYmplY3Qua2V5cyhydWxlcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZXNbaV07XG4gICAgICAgIGNvbnN0IHByZWZpeGVkUHJvcCA9IHByb3BlcnR5TmFtZS5tYXRjaChwcmVmaXhSZWdleClcbiAgICAgICAgICAgID8gYC0ke3Byb3BlcnR5TmFtZX1gXG4gICAgICAgICAgICA6IHByb3BlcnR5TmFtZTtcbiAgICAgICAgY29uc3QgcHJvcCA9ICgwLCBkZWNhbWVsaXplXzEuZGVmYXVsdCkocHJlZml4ZWRQcm9wKTtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gcnVsZXNbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBydWxlc0FycmF5LnB1c2goeyBwcm9wZXJ0eTogcHJvcCwgdmFsdWU6IHZhbHVlc1tqXSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJ1bGVzQXJyYXkucHVzaCh7IHByb3BlcnR5OiBwcm9wLCB2YWx1ZTogdmFsdWVzIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBydWxlc0FycmF5O1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gcHJlZml4ZXI7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/prefixer.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/styles.js": /*!************************************************!*\ !*** ./node_modules/ui-box/dist/src/styles.js ***! \************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.clear = exports.getAll = exports.add = void 0;\nconst style_sheet_1 = __importDefault(__webpack_require__(/*! ./utils/style-sheet */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/style-sheet.js\"));\nconst styleSheet = new style_sheet_1.default({});\nstyleSheet.inject();\nfunction add(styles) {\n styleSheet.insert(styles);\n}\nexports.add = add;\nfunction getAll() {\n return styleSheet\n .rules()\n .reduce((combinedRules, rule) => combinedRules + rule.cssText, '');\n}\nexports.getAll = getAll;\nfunction clear() {\n styleSheet.flush();\n styleSheet.inject();\n}\nexports.clear = clear;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxHQUFHLGNBQWMsR0FBRyxXQUFXO0FBQzVDLHNDQUFzQyxtQkFBTyxDQUFDLG9HQUFxQjtBQUNuRSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy9zdHlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNsZWFyID0gZXhwb3J0cy5nZXRBbGwgPSBleHBvcnRzLmFkZCA9IHZvaWQgMDtcbmNvbnN0IHN0eWxlX3NoZWV0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvc3R5bGUtc2hlZXRcIikpO1xuY29uc3Qgc3R5bGVTaGVldCA9IG5ldyBzdHlsZV9zaGVldF8xLmRlZmF1bHQoe30pO1xuc3R5bGVTaGVldC5pbmplY3QoKTtcbmZ1bmN0aW9uIGFkZChzdHlsZXMpIHtcbiAgICBzdHlsZVNoZWV0Lmluc2VydChzdHlsZXMpO1xufVxuZXhwb3J0cy5hZGQgPSBhZGQ7XG5mdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgcmV0dXJuIHN0eWxlU2hlZXRcbiAgICAgICAgLnJ1bGVzKClcbiAgICAgICAgLnJlZHVjZSgoY29tYmluZWRSdWxlcywgcnVsZSkgPT4gY29tYmluZWRSdWxlcyArIHJ1bGUuY3NzVGV4dCwgJycpO1xufVxuZXhwb3J0cy5nZXRBbGwgPSBnZXRBbGw7XG5mdW5jdGlvbiBjbGVhcigpIHtcbiAgICBzdHlsZVNoZWV0LmZsdXNoKCk7XG4gICAgc3R5bGVTaGVldC5pbmplY3QoKTtcbn1cbmV4cG9ydHMuY2xlYXIgPSBjbGVhcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/styles.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/decamelize.js": /*!**********************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/decamelize.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst separator = '-';\nconst regex1 = /([a-z\\d])([A-Z])/g;\nconst regex2 = /([a-z]+)([A-Z][a-z\\d]+)/g;\nfunction decamelize(text) {\n return text\n .replace(regex1, `$1${separator}$2`)\n .replace(regex2, `$1${separator}$2`)\n .toLowerCase();\n}\nexports[\"default\"] = decamelize;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvZGVjYW1lbGl6ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLFVBQVU7QUFDeEMsOEJBQThCLFVBQVU7QUFDeEM7QUFDQTtBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvZGVjYW1lbGl6ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHNlcGFyYXRvciA9ICctJztcbmNvbnN0IHJlZ2V4MSA9IC8oW2EtelxcZF0pKFtBLVpdKS9nO1xuY29uc3QgcmVnZXgyID0gLyhbYS16XSspKFtBLVpdW2EtelxcZF0rKS9nO1xuZnVuY3Rpb24gZGVjYW1lbGl6ZSh0ZXh0KSB7XG4gICAgcmV0dXJuIHRleHRcbiAgICAgICAgLnJlcGxhY2UocmVnZXgxLCBgJDEke3NlcGFyYXRvcn0kMmApXG4gICAgICAgIC5yZXBsYWNlKHJlZ2V4MiwgYCQxJHtzZXBhcmF0b3J9JDJgKVxuICAgICAgICAudG9Mb3dlckNhc2UoKTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGRlY2FtZWxpemU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/decamelize.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/flatten-object.js": /*!**************************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/flatten-object.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst flattenObject = (object) => {\n const keys = Object.keys(object);\n return keys\n .map(key => {\n const value = object[key];\n const type = typeof value;\n if (Array.isArray(value)) {\n return `${key}:array:[${value.map((value, index) => flattenObject({ [index]: value }))}]`;\n }\n if (value != null && type === 'object') {\n return `${key}:${type}:${flattenObject(value)}`;\n }\n return `${key}:${type}:${value}`;\n })\n .join(';');\n};\nexports[\"default\"] = flattenObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvZmxhdHRlbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsSUFBSSxVQUFVLDRDQUE0QyxnQkFBZ0IsR0FBRztBQUNuRztBQUNBO0FBQ0Esc0JBQXNCLElBQUksR0FBRyxLQUFLLEdBQUcscUJBQXFCO0FBQzFEO0FBQ0Esa0JBQWtCLElBQUksR0FBRyxLQUFLLEdBQUcsTUFBTTtBQUN2QyxLQUFLO0FBQ0wsZ0JBQWdCO0FBQ2hCO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy91dGlscy9mbGF0dGVuLW9iamVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGZsYXR0ZW5PYmplY3QgPSAob2JqZWN0KSA9PiB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgcmV0dXJuIGtleXNcbiAgICAgICAgLm1hcChrZXkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtrZXl9OmFycmF5Olske3ZhbHVlLm1hcCgodmFsdWUsIGluZGV4KSA9PiBmbGF0dGVuT2JqZWN0KHsgW2luZGV4XTogdmFsdWUgfSkpfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7a2V5fToke3R5cGV9OiR7ZmxhdHRlbk9iamVjdCh2YWx1ZSl9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7a2V5fToke3R5cGV9OiR7dmFsdWV9YDtcbiAgICB9KVxuICAgICAgICAuam9pbignOycpO1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IGZsYXR0ZW5PYmplY3Q7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/flatten-object.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/is-production.js": /*!*************************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/is-production.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst isProduction = () => \"development\" === 'production';\nexports[\"default\"] = isProduction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvaXMtcHJvZHVjdGlvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwyQkFBMkIsYUFBb0I7QUFDL0Msa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy91dGlscy9pcy1wcm9kdWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaXNQcm9kdWN0aW9uID0gKCkgPT4gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbmV4cG9ydHMuZGVmYXVsdCA9IGlzUHJvZHVjdGlvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/is-production.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js": /*!*****************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/regex.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.unsafeClassNameCharacters = exports.spacesOutsideParentheses = void 0;\nexports.spacesOutsideParentheses = / (?=([^()]*\\([^()]*\\))*[^()]*$)/g;\nexports.unsafeClassNameCharacters = /[^_a-zA-Z0-9-]/g;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvcmVnZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUNBQWlDLEdBQUcsZ0NBQWdDO0FBQ3BFLGdDQUFnQztBQUNoQyxpQ0FBaUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy91dGlscy9yZWdleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMudW5zYWZlQ2xhc3NOYW1lQ2hhcmFjdGVycyA9IGV4cG9ydHMuc3BhY2VzT3V0c2lkZVBhcmVudGhlc2VzID0gdm9pZCAwO1xuZXhwb3J0cy5zcGFjZXNPdXRzaWRlUGFyZW50aGVzZXMgPSAvICg/PShbXigpXSpcXChbXigpXSpcXCkpKlteKCldKiQpL2c7XG5leHBvcnRzLnVuc2FmZUNsYXNzTmFtZUNoYXJhY3RlcnMgPSAvW15fYS16QS1aMC05LV0vZztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/regex.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/safeHref.js": /*!********************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/safeHref.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.extractAnchorProps = exports.getURLInfo = exports.getUseSafeHref = exports.configureSafeHref = void 0;\nconst PROTOCOL_REGEX = /^[a-z]+:/;\nconst ORIGIN_REGEX = /^(?:[a-z]+:?:)?(?:\\/\\/)?([^\\/\\?]+)/;\nlet useSafeHref = true;\nlet globalOrigin = typeof window !== 'undefined' ? window.location.origin : false;\nfunction configureSafeHref(configObject) {\n if (typeof configObject.enabled === 'boolean') {\n useSafeHref = configObject.enabled;\n }\n if (configObject.origin) {\n globalOrigin = configObject.origin;\n }\n}\nexports.configureSafeHref = configureSafeHref;\nfunction getUseSafeHref() {\n return useSafeHref;\n}\nexports.getUseSafeHref = getUseSafeHref;\nfunction getURLInfo(url) {\n const safeProtocols = ['http:', 'https:', 'mailto:', 'tel:', 'data:'];\n const protocolResult = url.match(PROTOCOL_REGEX);\n const originResult = url.match(ORIGIN_REGEX);\n const urlProtocol = protocolResult ? protocolResult[0] : 'relative';\n let sameOrigin = urlProtocol === 'relative';\n if (!sameOrigin && globalOrigin) {\n sameOrigin = globalOrigin === (originResult && originResult[0]);\n }\n const isSafeProtocol = sameOrigin ? true : safeProtocols.includes(urlProtocol);\n if (!isSafeProtocol) {\n console.error('📦 `href` passed to anchor tag is unsafe. Because of this, the `href` on the element was not set. Please review the safe href documentation if you have questions.', 'https://www.github.com/segmentio/ui-box');\n return {\n url: undefined,\n sameOrigin\n };\n }\n return {\n url,\n sameOrigin\n };\n}\nexports.getURLInfo = getURLInfo;\nfunction extractAnchorProps(href, rel) {\n const urlInfo = getURLInfo(href);\n const safeHref = urlInfo.url;\n let safeRel = rel || '';\n if (urlInfo.url) {\n if (!safeRel.includes('noopener')) {\n safeRel += `${safeRel.length > 0 ? ' ' : ''}noopener`;\n }\n if (!safeRel.includes('noreferrer') && !urlInfo.sameOrigin) {\n safeRel += `${safeRel.length > 0 ? ' ' : ''}noreferrer`;\n }\n }\n return {\n safeHref,\n safeRel\n };\n}\nexports.extractAnchorProps = extractAnchorProps;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc2FmZUhyZWYuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMEJBQTBCLEdBQUcsa0JBQWtCLEdBQUcsc0JBQXNCLEdBQUcseUJBQXlCO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDhCQUE4QjtBQUN4RDtBQUNBO0FBQ0EsMEJBQTBCLDhCQUE4QjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdWktYm94L2Rpc3Qvc3JjL3V0aWxzL3NhZmVIcmVmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5leHRyYWN0QW5jaG9yUHJvcHMgPSBleHBvcnRzLmdldFVSTEluZm8gPSBleHBvcnRzLmdldFVzZVNhZmVIcmVmID0gZXhwb3J0cy5jb25maWd1cmVTYWZlSHJlZiA9IHZvaWQgMDtcbmNvbnN0IFBST1RPQ09MX1JFR0VYID0gL15bYS16XSs6LztcbmNvbnN0IE9SSUdJTl9SRUdFWCA9IC9eKD86W2Etel0rOj86KT8oPzpcXC9cXC8pPyhbXlxcL1xcP10rKS87XG5sZXQgdXNlU2FmZUhyZWYgPSB0cnVlO1xubGV0IGdsb2JhbE9yaWdpbiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLm9yaWdpbiA6IGZhbHNlO1xuZnVuY3Rpb24gY29uZmlndXJlU2FmZUhyZWYoY29uZmlnT2JqZWN0KSB7XG4gICAgaWYgKHR5cGVvZiBjb25maWdPYmplY3QuZW5hYmxlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHVzZVNhZmVIcmVmID0gY29uZmlnT2JqZWN0LmVuYWJsZWQ7XG4gICAgfVxuICAgIGlmIChjb25maWdPYmplY3Qub3JpZ2luKSB7XG4gICAgICAgIGdsb2JhbE9yaWdpbiA9IGNvbmZpZ09iamVjdC5vcmlnaW47XG4gICAgfVxufVxuZXhwb3J0cy5jb25maWd1cmVTYWZlSHJlZiA9IGNvbmZpZ3VyZVNhZmVIcmVmO1xuZnVuY3Rpb24gZ2V0VXNlU2FmZUhyZWYoKSB7XG4gICAgcmV0dXJuIHVzZVNhZmVIcmVmO1xufVxuZXhwb3J0cy5nZXRVc2VTYWZlSHJlZiA9IGdldFVzZVNhZmVIcmVmO1xuZnVuY3Rpb24gZ2V0VVJMSW5mbyh1cmwpIHtcbiAgICBjb25zdCBzYWZlUHJvdG9jb2xzID0gWydodHRwOicsICdodHRwczonLCAnbWFpbHRvOicsICd0ZWw6JywgJ2RhdGE6J107XG4gICAgY29uc3QgcHJvdG9jb2xSZXN1bHQgPSB1cmwubWF0Y2goUFJPVE9DT0xfUkVHRVgpO1xuICAgIGNvbnN0IG9yaWdpblJlc3VsdCA9IHVybC5tYXRjaChPUklHSU5fUkVHRVgpO1xuICAgIGNvbnN0IHVybFByb3RvY29sID0gcHJvdG9jb2xSZXN1bHQgPyBwcm90b2NvbFJlc3VsdFswXSA6ICdyZWxhdGl2ZSc7XG4gICAgbGV0IHNhbWVPcmlnaW4gPSB1cmxQcm90b2NvbCA9PT0gJ3JlbGF0aXZlJztcbiAgICBpZiAoIXNhbWVPcmlnaW4gJiYgZ2xvYmFsT3JpZ2luKSB7XG4gICAgICAgIHNhbWVPcmlnaW4gPSBnbG9iYWxPcmlnaW4gPT09IChvcmlnaW5SZXN1bHQgJiYgb3JpZ2luUmVzdWx0WzBdKTtcbiAgICB9XG4gICAgY29uc3QgaXNTYWZlUHJvdG9jb2wgPSBzYW1lT3JpZ2luID8gdHJ1ZSA6IHNhZmVQcm90b2NvbHMuaW5jbHVkZXModXJsUHJvdG9jb2wpO1xuICAgIGlmICghaXNTYWZlUHJvdG9jb2wpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcign8J+TpiBgaHJlZmAgcGFzc2VkIHRvIGFuY2hvciB0YWcgaXMgdW5zYWZlLiBCZWNhdXNlIG9mIHRoaXMsIHRoZSBgaHJlZmAgb24gdGhlIGVsZW1lbnQgd2FzIG5vdCBzZXQuIFBsZWFzZSByZXZpZXcgdGhlIHNhZmUgaHJlZiBkb2N1bWVudGF0aW9uIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucy4nLCAnaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9zZWdtZW50aW8vdWktYm94Jyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cmw6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNhbWVPcmlnaW5cbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBzYW1lT3JpZ2luXG4gICAgfTtcbn1cbmV4cG9ydHMuZ2V0VVJMSW5mbyA9IGdldFVSTEluZm87XG5mdW5jdGlvbiBleHRyYWN0QW5jaG9yUHJvcHMoaHJlZiwgcmVsKSB7XG4gICAgY29uc3QgdXJsSW5mbyA9IGdldFVSTEluZm8oaHJlZik7XG4gICAgY29uc3Qgc2FmZUhyZWYgPSB1cmxJbmZvLnVybDtcbiAgICBsZXQgc2FmZVJlbCA9IHJlbCB8fCAnJztcbiAgICBpZiAodXJsSW5mby51cmwpIHtcbiAgICAgICAgaWYgKCFzYWZlUmVsLmluY2x1ZGVzKCdub29wZW5lcicpKSB7XG4gICAgICAgICAgICBzYWZlUmVsICs9IGAke3NhZmVSZWwubGVuZ3RoID4gMCA/ICcgJyA6ICcnfW5vb3BlbmVyYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNhZmVSZWwuaW5jbHVkZXMoJ25vcmVmZXJyZXInKSAmJiAhdXJsSW5mby5zYW1lT3JpZ2luKSB7XG4gICAgICAgICAgICBzYWZlUmVsICs9IGAke3NhZmVSZWwubGVuZ3RoID4gMCA/ICcgJyA6ICcnfW5vcmVmZXJyZXJgO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHNhZmVIcmVmLFxuICAgICAgICBzYWZlUmVsXG4gICAgfTtcbn1cbmV4cG9ydHMuZXh0cmFjdEFuY2hvclByb3BzID0gZXh0cmFjdEFuY2hvclByb3BzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/safeHref.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-box-props.js": /*!***************************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/split-box-props.js ***! \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst index_1 = __webpack_require__(/*! ../enhancers/index */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/enhancers/index.js\");\nconst split_props_1 = __importDefault(__webpack_require__(/*! ./split-props */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-props.js\"));\nfunction splitBoxProps(props) {\n return (0, split_props_1.default)(props, index_1.propNames);\n}\nexports[\"default\"] = splitBoxProps;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3BsaXQtYm94LXByb3BzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCLG1CQUFPLENBQUMsaUdBQW9CO0FBQzVDLHNDQUFzQyxtQkFBTyxDQUFDLDhGQUFlO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3BsaXQtYm94LXByb3BzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW5kZXhfMSA9IHJlcXVpcmUoXCIuLi9lbmhhbmNlcnMvaW5kZXhcIik7XG5jb25zdCBzcGxpdF9wcm9wc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3NwbGl0LXByb3BzXCIpKTtcbmZ1bmN0aW9uIHNwbGl0Qm94UHJvcHMocHJvcHMpIHtcbiAgICByZXR1cm4gKDAsIHNwbGl0X3Byb3BzXzEuZGVmYXVsdCkocHJvcHMsIGluZGV4XzEucHJvcE5hbWVzKTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IHNwbGl0Qm94UHJvcHM7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-box-props.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-props.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/split-props.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction splitProps(props, keys) {\n const matchedProps = {};\n const remainingProps = {};\n const propKeys = Object.keys(props);\n for (let i = 0; i < propKeys.length; i++) {\n const propKey = propKeys[i];\n const propValue = props[propKey];\n if (keys.includes(propKey)) {\n matchedProps[propKey] = propValue;\n }\n else {\n remainingProps[propKey] = propValue;\n }\n }\n return { matchedProps, remainingProps };\n}\nexports[\"default\"] = splitProps;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3BsaXQtcHJvcHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3BsaXQtcHJvcHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5mdW5jdGlvbiBzcGxpdFByb3BzKHByb3BzLCBrZXlzKSB7XG4gICAgY29uc3QgbWF0Y2hlZFByb3BzID0ge307XG4gICAgY29uc3QgcmVtYWluaW5nUHJvcHMgPSB7fTtcbiAgICBjb25zdCBwcm9wS2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHByb3BLZXkgPSBwcm9wS2V5c1tpXTtcbiAgICAgICAgY29uc3QgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG4gICAgICAgIGlmIChrZXlzLmluY2x1ZGVzKHByb3BLZXkpKSB7XG4gICAgICAgICAgICBtYXRjaGVkUHJvcHNbcHJvcEtleV0gPSBwcm9wVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZW1haW5pbmdQcm9wc1twcm9wS2V5XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBtYXRjaGVkUHJvcHMsIHJlbWFpbmluZ1Byb3BzIH07XG59XG5leHBvcnRzLmRlZmF1bHQgPSBzcGxpdFByb3BzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/split-props.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/utils/style-sheet.js": /*!***********************************************************!*\ !*** ./node_modules/ui-box/dist/src/utils/style-sheet.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst is_production_1 = __importDefault(__webpack_require__(/*! ./is-production */ \"(app-pages-browser)/./node_modules/ui-box/dist/src/utils/is-production.js\"));\nconst isBrowser = typeof window !== 'undefined';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n for (let i = 0; i < document.styleSheets.length; i += 1) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n return;\n}\nfunction makeStyleTag() {\n const tag = document.createElement('style');\n tag.type = 'text/css';\n tag.setAttribute('data-ui-box', '');\n tag.append(document.createTextNode(''));\n (document.head || document.querySelector('head')).append(tag);\n return tag;\n}\nclass CustomStyleSheet {\n constructor(options = {}) {\n this.tags = [];\n this.ctr = 0;\n this.injected = false;\n this.isSpeedy = options.speedy === undefined ? (0, is_production_1.default)() : options.speedy;\n this.maxLength = options.maxLength || 65000;\n }\n getSheet() {\n return sheetForTag(last(this.tags));\n }\n inject() {\n if (this.injected) {\n throw new Error('StyleSheet has already been injected.');\n }\n if (isBrowser) {\n this.tags[0] = makeStyleTag();\n }\n else {\n this.sheet = {\n cssRules: [],\n insertRule: (rule) => {\n ;\n this.sheet.cssRules.push({ cssText: rule });\n }\n };\n }\n this.injected = true;\n }\n speedy(bool) {\n if (this.ctr !== 0) {\n throw new Error(`StyleSheet cannot change speedy mode after inserting any rule to sheet. Either call speedy(${bool}) earlier in your app, or call flush() before speedy(${bool})`);\n }\n this.isSpeedy = Boolean(bool);\n }\n _insert(sheet, rule) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n insert(rule) {\n if (isBrowser) {\n const sheet = this.getSheet();\n if (this.isSpeedy && sheet != null) {\n this._insert(sheet, rule);\n }\n else {\n last(this.tags).append(document.createTextNode(rule));\n }\n }\n else if (this.sheet) {\n this.sheet.insertRule(rule, this.sheet.cssRules.length);\n }\n this.ctr += 1;\n if (isBrowser && this.ctr % this.maxLength === 0) {\n this.tags.push(makeStyleTag());\n }\n return this.ctr - 1;\n }\n flush() {\n if (isBrowser) {\n this.tags.forEach(tag => tag.parentNode.removeChild(tag));\n this.tags = [];\n this.sheet = null;\n this.ctr = 0;\n }\n else if (this.sheet) {\n this.sheet.cssRules = [];\n }\n this.injected = false;\n }\n rules() {\n if (!isBrowser) {\n return (this.sheet ? this.sheet.cssRules : []);\n }\n const arr = [];\n this.tags.forEach(tag => {\n const sheet = sheetForTag(tag);\n if (sheet) {\n const rules = Array.from(sheet.cssRules);\n arr.splice(arr.length, 0, ...[...rules]);\n }\n });\n return arr;\n }\n}\nexports[\"default\"] = CustomStyleSheet;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3R5bGUtc2hlZXQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx3Q0FBd0MsbUJBQU8sQ0FBQyxrR0FBaUI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQ0FBaUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxlQUFlO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEhBQTBILEtBQUssdURBQXVELEtBQUs7QUFDM0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGtCQUFlIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdXRpbHMvc3R5bGUtc2hlZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpc19wcm9kdWN0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vaXMtcHJvZHVjdGlvblwiKSk7XG5jb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIGxhc3QoYXJyKSB7XG4gICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07XG59XG5mdW5jdGlvbiBzaGVldEZvclRhZyh0YWcpIHtcbiAgICBpZiAodGFnLnNoZWV0KSB7XG4gICAgICAgIHJldHVybiB0YWcuc2hlZXQ7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldLm93bmVyTm9kZSA9PT0gdGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuc3R5bGVTaGVldHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuO1xufVxuZnVuY3Rpb24gbWFrZVN0eWxlVGFnKCkge1xuICAgIGNvbnN0IHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgdGFnLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtdWktYm94JywgJycpO1xuICAgIHRhZy5hcHBlbmQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpKTtcbiAgICAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkJykpLmFwcGVuZCh0YWcpO1xuICAgIHJldHVybiB0YWc7XG59XG5jbGFzcyBDdXN0b21TdHlsZVNoZWV0IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy50YWdzID0gW107XG4gICAgICAgIHRoaXMuY3RyID0gMDtcbiAgICAgICAgdGhpcy5pbmplY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU3BlZWR5ID0gb3B0aW9ucy5zcGVlZHkgPT09IHVuZGVmaW5lZCA/ICgwLCBpc19wcm9kdWN0aW9uXzEuZGVmYXVsdCkoKSA6IG9wdGlvbnMuc3BlZWR5O1xuICAgICAgICB0aGlzLm1heExlbmd0aCA9IG9wdGlvbnMubWF4TGVuZ3RoIHx8IDY1MDAwO1xuICAgIH1cbiAgICBnZXRTaGVldCgpIHtcbiAgICAgICAgcmV0dXJuIHNoZWV0Rm9yVGFnKGxhc3QodGhpcy50YWdzKSk7XG4gICAgfVxuICAgIGluamVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5qZWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3R5bGVTaGVldCBoYXMgYWxyZWFkeSBiZWVuIGluamVjdGVkLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGFnc1swXSA9IG1ha2VTdHlsZVRhZygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaGVldCA9IHtcbiAgICAgICAgICAgICAgICBjc3NSdWxlczogW10sXG4gICAgICAgICAgICAgICAgaW5zZXJ0UnVsZTogKHJ1bGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoZWV0LmNzc1J1bGVzLnB1c2goeyBjc3NUZXh0OiBydWxlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbmplY3RlZCA9IHRydWU7XG4gICAgfVxuICAgIHNwZWVkeShib29sKSB7XG4gICAgICAgIGlmICh0aGlzLmN0ciAhPT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdHlsZVNoZWV0IGNhbm5vdCBjaGFuZ2Ugc3BlZWR5IG1vZGUgYWZ0ZXIgaW5zZXJ0aW5nIGFueSBydWxlIHRvIHNoZWV0LiBFaXRoZXIgY2FsbCBzcGVlZHkoJHtib29sfSkgZWFybGllciBpbiB5b3VyIGFwcCwgb3IgY2FsbCBmbHVzaCgpIGJlZm9yZSBzcGVlZHkoJHtib29sfSlgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzU3BlZWR5ID0gQm9vbGVhbihib29sKTtcbiAgICB9XG4gICAgX2luc2VydChzaGVldCwgcnVsZSkge1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIHNoZWV0LmNzc1J1bGVzLmxlbmd0aCk7XG4gICAgfVxuICAgIGluc2VydChydWxlKSB7XG4gICAgICAgIGlmIChpc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0ID0gdGhpcy5nZXRTaGVldCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTcGVlZHkgJiYgc2hlZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydChzaGVldCwgcnVsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0KHRoaXMudGFncykuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJ1bGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnNoZWV0KSB7XG4gICAgICAgICAgICB0aGlzLnNoZWV0Lmluc2VydFJ1bGUocnVsZSwgdGhpcy5zaGVldC5jc3NSdWxlcy5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3RyICs9IDE7XG4gICAgICAgIGlmIChpc0Jyb3dzZXIgJiYgdGhpcy5jdHIgJSB0aGlzLm1heExlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy50YWdzLnB1c2gobWFrZVN0eWxlVGFnKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN0ciAtIDE7XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAoaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ3MuZm9yRWFjaCh0YWcgPT4gdGFnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGFnKSk7XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2hlZXQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jdHIgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc2hlZXQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hlZXQuY3NzUnVsZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluamVjdGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHJ1bGVzKCkge1xuICAgICAgICBpZiAoIWlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNoZWV0ID8gdGhpcy5zaGVldC5jc3NSdWxlcyA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgdGhpcy50YWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0ID0gc2hlZXRGb3JUYWcodGFnKTtcbiAgICAgICAgICAgIGlmIChzaGVldCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbShzaGVldC5jc3NSdWxlcyk7XG4gICAgICAgICAgICAgICAgYXJyLnNwbGljZShhcnIubGVuZ3RoLCAwLCAuLi5bLi4ucnVsZXNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gQ3VzdG9tU3R5bGVTaGVldDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/utils/style-sheet.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/ui-box/dist/src/value-to-string.js": /*!*********************************************************!*\ !*** ./node_modules/ui-box/dist/src/value-to-string.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction valueToString(value, unit = 'px') {\n return typeof value === 'number' ? `${value}${unit}` : value;\n}\nexports[\"default\"] = valueToString;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91aS1ib3gvZGlzdC9zcmMvdmFsdWUtdG8tc3RyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdEO0FBQ0EsMENBQTBDLE1BQU0sRUFBRSxLQUFLO0FBQ3ZEO0FBQ0Esa0JBQWUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VpLWJveC9kaXN0L3NyYy92YWx1ZS10by1zdHJpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5mdW5jdGlvbiB2YWx1ZVRvU3RyaW5nKHZhbHVlLCB1bml0ID0gJ3B4Jykge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gYCR7dmFsdWV9JHt1bml0fWAgOiB2YWx1ZTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IHZhbHVlVG9TdHJpbmc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/ui-box/dist/src/value-to-string.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js": /*!****************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/assignRef.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assignRef: () => (/* binding */ assignRef)\n/* harmony export */ });\n/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nfunction assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvaGVjdG9yemVhL2Rldi9mcm9udGJ1aWxkL2Zyb250ZW5kL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFzc2lnbnMgYSB2YWx1ZSBmb3IgYSBnaXZlbiByZWYsIG5vIG1hdHRlciBvZiB0aGUgcmVmIGZvcm1hdFxuICogQHBhcmFtIHtSZWZPYmplY3R9IHJlZiAtIGEgY2FsbGJhY2sgZnVuY3Rpb24gb3IgcmVmIG9iamVjdFxuICogQHBhcmFtIHZhbHVlIC0gYSBuZXcgdmFsdWVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVLYXNoZXkvdXNlLWNhbGxiYWNrLXJlZiNhc3NpZ25yZWZcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZWZPYmplY3QgPSB1c2VSZWYoKTtcbiAqIGNvbnN0IHJlZkZuID0gKHJlZikgPT4gey4uLi59XG4gKlxuICogYXNzaWduUmVmKHJlZk9iamVjdCwgXCJyZWZWYWx1ZVwiKTtcbiAqIGFzc2lnblJlZihyZWZGbiwgXCJyZWZWYWx1ZVwiKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVmKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js": /*!******************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/useMergeRef.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMergeRefs: () => (/* binding */ useMergeRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assignRef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./assignRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\");\n/* harmony import */ var _useRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\");\n\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nfunction useMergeRefs(refs, defaultValue) {\n var callbackRef = (0,_useRef__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZU1lcmdlUmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStCO0FBQ1M7QUFDRTtBQUMxQyxnRUFBZ0Usa0RBQXFCLEdBQUcsNENBQWU7QUFDdkc7QUFDQTtBQUNBO0FBQ0EsV0FBVyxlQUFlO0FBQzFCLGFBQWEsa0JBQWtCLDhDQUE4QztBQUM3RTtBQUNBLFNBQVMsaUJBQWlCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pELHNCQUFzQixPQUFPO0FBQzdCO0FBQ0E7QUFDTztBQUNQLHNCQUFzQix1REFBYztBQUNwQyw2Q0FBNkMsT0FBTyxxREFBUyxrQkFBa0I7QUFDL0UsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxREFBUztBQUM3QjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0Esb0JBQW9CLHFEQUFTO0FBQzdCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2VzMjAxNS91c2VNZXJnZVJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhc3NpZ25SZWYgfSBmcm9tICcuL2Fzc2lnblJlZic7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJy4vdXNlUmVmJztcbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiBSZWFjdC51c2VFZmZlY3Q7XG52YXIgY3VycmVudFZhbHVlcyA9IG5ldyBXZWFrTWFwKCk7XG4vKipcbiAqIE1lcmdlcyB0d28gb3IgbW9yZSByZWZzIHRvZ2V0aGVyIHByb3ZpZGluZyBhIHNpbmdsZSBpbnRlcmZhY2UgdG8gc2V0IHRoZWlyIHZhbHVlXG4gKiBAcGFyYW0ge1JlZk9iamVjdHxSZWZ9IHJlZnNcbiAqIEByZXR1cm5zIHtNdXRhYmxlUmVmT2JqZWN0fSAtIGEgbmV3IHJlZiwgd2hpY2ggdHJhbnNsYXRlcyBhbGwgY2hhbmdlcyB0byB7cmVmc31cbiAqXG4gKiBAc2VlIHtAbGluayBtZXJnZVJlZnN9IGEgdmVyc2lvbiB3aXRob3V0IGJ1aXQtaW4gbWVtb2l6YXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZW1lcmdlcmVmc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IENvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAqICAgY29uc3Qgb3duUmVmID0gdXNlUmVmKCk7XG4gKiAgIGNvbnN0IGRvbVJlZiA9IHVzZU1lcmdlUmVmcyhbcmVmLCBvd25SZWZdKTsgLy8g8J+RiCBtZXJnZSB0b2dldGhlclxuICogICByZXR1cm4gPGRpdiByZWY9e2RvbVJlZn0+Li4uPC9kaXY+XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXJnZVJlZnMocmVmcywgZGVmYXVsdFZhbHVlKSB7XG4gICAgdmFyIGNhbGxiYWNrUmVmID0gdXNlQ2FsbGJhY2tSZWYoZGVmYXVsdFZhbHVlIHx8IG51bGwsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgICByZXR1cm4gcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHsgcmV0dXJuIGFzc2lnblJlZihyZWYsIG5ld1ZhbHVlKTsgfSk7XG4gICAgfSk7XG4gICAgLy8gaGFuZGxlIHJlZnMgY2hhbmdlcyAtIGFkZGVkIG9yIHJlbW92ZWRcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9sZFZhbHVlID0gY3VycmVudFZhbHVlcy5nZXQoY2FsbGJhY2tSZWYpO1xuICAgICAgICBpZiAob2xkVmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UmVmc18xID0gbmV3IFNldChvbGRWYWx1ZSk7XG4gICAgICAgICAgICB2YXIgbmV4dFJlZnNfMSA9IG5ldyBTZXQocmVmcyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudF8xID0gY2FsbGJhY2tSZWYuY3VycmVudDtcbiAgICAgICAgICAgIHByZXZSZWZzXzEuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0UmVmc18xLmhhcyhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFzc2lnblJlZihyZWYsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbmV4dFJlZnNfMS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXZSZWZzXzEuaGFzKHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduUmVmKHJlZiwgY3VycmVudF8xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50VmFsdWVzLnNldChjYWxsYmFja1JlZiwgcmVmcyk7XG4gICAgfSwgW3JlZnNdKTtcbiAgICByZXR1cm4gY2FsbGJhY2tSZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js": /*!*************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/useRef.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nfunction useCallbackRef(initialValue, callback) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZVJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQLGNBQWMsK0NBQVEsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSyxJQUFJO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VzZS1jYWxsYmFjay1yZWYvZGlzdC9lczIwMTUvdXNlUmVmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBjcmVhdGVzIGEgTXV0YWJsZVJlZiB3aXRoIHJlZiBjaGFuZ2UgY2FsbGJhY2tcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHJlZiB2YWx1ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBhIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHZhbHVlIGNoYW5nZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVmID0gdXNlQ2FsbGJhY2tSZWYoMCwgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gY29uc29sZS5sb2cob2xkVmFsdWUsICctPicsIG5ld1ZhbHVlKTtcbiAqIHJlZi5jdXJyZW50ID0gMTtcbiAqIC8vIHByaW50cyAwIC0+IDFcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VyZWZcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZWNhbGxiYWNrcmVmLS0tdG8tcmVwbGFjZS1yZWFjdHVzZXJlZlxuICogQHJldHVybnMge011dGFibGVSZWZPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFja1JlZihpbml0aWFsVmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHJlZiA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgIC8vIHZhbHVlXG4gICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXG4gICAgICAgIC8vIGxhc3QgY2FsbGJhY2tcbiAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICAvLyBcIm1lbW9pemVkXCIgcHVibGljIGludGVyZmFjZVxuICAgICAgICBmYWNhZGU6IHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWYudmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IHJlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5jYWxsYmFjayh2YWx1ZSwgbGFzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9KTsgfSlbMF07XG4gICAgLy8gdXBkYXRlIGNhbGxiYWNrXG4gICAgcmVmLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHJlZi5mYWNhZGU7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js": /*!*********************************************************!*\ !*** ./node_modules/use-sidecar/dist/es2015/exports.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ exportSidecar: () => (/* binding */ exportSidecar)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__rest)(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Target, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({}, rest));\n};\nSideCar.isSideCarExport = true;\nfunction exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9leHBvcnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDVjtBQUMvQjtBQUNBLHFDQUFxQyw2Q0FBTTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsZ0RBQW1CLFNBQVMsK0NBQVEsR0FBRztBQUNsRDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VzZS1zaWRlY2FyL2Rpc3QvZXMyMDE1L2V4cG9ydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19hc3NpZ24sIF9fcmVzdCB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFNpZGVDYXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2lkZUNhciA9IF9hLnNpZGVDYXIsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInNpZGVDYXJcIl0pO1xuICAgIGlmICghc2lkZUNhcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IHBsZWFzZSBwcm92aWRlIGBzaWRlQ2FyYCBwcm9wZXJ0eSB0byBpbXBvcnQgdGhlIHJpZ2h0IGNhcicpO1xuICAgIH1cbiAgICB2YXIgVGFyZ2V0ID0gc2lkZUNhci5yZWFkKCk7XG4gICAgaWYgKCFUYXJnZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWRlY2FyIG1lZGl1bSBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFyZ2V0LCBfX2Fzc2lnbih7fSwgcmVzdCkpO1xufTtcblNpZGVDYXIuaXNTaWRlQ2FyRXhwb3J0ID0gdHJ1ZTtcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTaWRlY2FyKG1lZGl1bSwgZXhwb3J0ZWQpIHtcbiAgICBtZWRpdW0udXNlTWVkaXVtKGV4cG9ydGVkKTtcbiAgICByZXR1cm4gU2lkZUNhcjtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js": /*!********************************************************!*\ !*** ./node_modules/use-sidecar/dist/es2015/medium.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMedium: () => (/* binding */ createMedium),\n/* harmony export */ createSidecarMedium: () => (/* binding */ createSidecarMedium)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nfunction createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({ async: true, ssr: false }, options);\n return medium;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9tZWRpdW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Qsb0JBQW9CO0FBQzFFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZUFBZTtBQUNwRCxzQ0FBc0MsZ0JBQWdCO0FBQ3REO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ087QUFDUCw4QkFBOEI7QUFDOUI7QUFDQSxxQkFBcUIsK0NBQVEsR0FBRyx5QkFBeUI7QUFDekQ7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdXNlLXNpZGVjYXIvZGlzdC9lczIwMTUvbWVkaXVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5mdW5jdGlvbiBJdG9JKGEpIHtcbiAgICByZXR1cm4gYTtcbn1cbmZ1bmN0aW9uIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKSB7XG4gICAgaWYgKG1pZGRsZXdhcmUgPT09IHZvaWQgMCkgeyBtaWRkbGV3YXJlID0gSXRvSTsgfVxuICAgIHZhciBidWZmZXIgPSBbXTtcbiAgICB2YXIgYXNzaWduZWQgPSBmYWxzZTtcbiAgICB2YXIgbWVkaXVtID0ge1xuICAgICAgICByZWFkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoYXNzaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IGNvdWxkIG5vdCBgcmVhZGAgZnJvbSBhbiBgYXNzaWduZWRgIG1lZGl1bS4gYHJlYWRgIGNvdWxkIGJlIHVzZWQgb25seSB3aXRoIGB1c2VNZWRpdW1gLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZmZlci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgICAgfSxcbiAgICAgICAgdXNlTWVkaXVtOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSBtaWRkbGV3YXJlKGRhdGEsIGFzc2lnbmVkKTtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBidWZmZXIuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICE9PSBpdGVtOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGFzc2lnblN5bmNNZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgd2hpbGUgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZmZlciA9IHtcbiAgICAgICAgICAgICAgICBwdXNoOiBmdW5jdGlvbiAoeCkgeyByZXR1cm4gY2IoeCk7IH0sXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbiAoKSB7IHJldHVybiBidWZmZXI7IH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBhc3NpZ25NZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIHBlbmRpbmdRdWV1ZSA9IFtdO1xuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nUXVldWUgPSBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZXhlY3V0ZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBjYnMgPSBwZW5kaW5nUXVldWU7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gW107XG4gICAgICAgICAgICAgICAgY2JzLmZvckVhY2goY2IpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBjeWNsZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZXhlY3V0ZVF1ZXVlKTsgfTtcbiAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICBidWZmZXIgPSB7XG4gICAgICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlLnB1c2goeCk7XG4gICAgICAgICAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gcGVuZGluZ1F1ZXVlLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIG1lZGl1bTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZWRpdW0oZGVmYXVsdHMsIG1pZGRsZXdhcmUpIHtcbiAgICBpZiAobWlkZGxld2FyZSA9PT0gdm9pZCAwKSB7IG1pZGRsZXdhcmUgPSBJdG9JOyB9XG4gICAgcmV0dXJuIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKTtcbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2lkZWNhck1lZGl1bShvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgbWVkaXVtID0gaW5uZXJDcmVhdGVNZWRpdW0obnVsbCk7XG4gICAgbWVkaXVtLm9wdGlvbnMgPSBfX2Fzc2lnbih7IGFzeW5jOiB0cnVlLCBzc3I6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgIHJldHVybiBtZWRpdW07XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js": /*!*******************************************************************************************************!*\ !*** ./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js ***! \*******************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/**\n * @license React\n * use-sync-external-store-with-selector.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\n exports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n ) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot))\n return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS9janMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUtd2l0aC1zZWxlY3Rvci5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFPLENBQUMsbUZBQU87QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSx3Q0FBd0M7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvY2pzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXdpdGgtc2VsZWN0b3IuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUtd2l0aC1zZWxlY3Rvci5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgICByZXR1cm4gKHggPT09IHkgJiYgKDAgIT09IHggfHwgMSAvIHggPT09IDEgLyB5KSkgfHwgKHggIT09IHggJiYgeSAhPT0geSk7XG4gICAgfVxuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQoRXJyb3IoKSk7XG4gICAgdmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpLFxuICAgICAgb2JqZWN0SXMgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBPYmplY3QuaXMgPyBPYmplY3QuaXMgOiBpcyxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlID0gUmVhY3QudXNlU3luY0V4dGVybmFsU3RvcmUsXG4gICAgICB1c2VSZWYgPSBSZWFjdC51c2VSZWYsXG4gICAgICB1c2VFZmZlY3QgPSBSZWFjdC51c2VFZmZlY3QsXG4gICAgICB1c2VNZW1vID0gUmVhY3QudXNlTWVtbyxcbiAgICAgIHVzZURlYnVnVmFsdWUgPSBSZWFjdC51c2VEZWJ1Z1ZhbHVlO1xuICAgIGV4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3IgPSBmdW5jdGlvbiAoXG4gICAgICBzdWJzY3JpYmUsXG4gICAgICBnZXRTbmFwc2hvdCxcbiAgICAgIGdldFNlcnZlclNuYXBzaG90LFxuICAgICAgc2VsZWN0b3IsXG4gICAgICBpc0VxdWFsXG4gICAgKSB7XG4gICAgICB2YXIgaW5zdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAgIGlmIChudWxsID09PSBpbnN0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgdmFyIGluc3QgPSB7IGhhc1ZhbHVlOiAhMSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgaW5zdFJlZi5jdXJyZW50ID0gaW5zdDtcbiAgICAgIH0gZWxzZSBpbnN0ID0gaW5zdFJlZi5jdXJyZW50O1xuICAgICAgaW5zdFJlZiA9IHVzZU1lbW8oXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmdW5jdGlvbiBtZW1vaXplZFNlbGVjdG9yKG5leHRTbmFwc2hvdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNNZW1vKSB7XG4gICAgICAgICAgICAgIGhhc01lbW8gPSAhMDtcbiAgICAgICAgICAgICAgbWVtb2l6ZWRTbmFwc2hvdCA9IG5leHRTbmFwc2hvdDtcbiAgICAgICAgICAgICAgbmV4dFNuYXBzaG90ID0gc2VsZWN0b3IobmV4dFNuYXBzaG90KTtcbiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gaXNFcXVhbCAmJiBpbnN0Lmhhc1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBpbnN0LnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChpc0VxdWFsKGN1cnJlbnRTZWxlY3Rpb24sIG5leHRTbmFwc2hvdCkpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKG1lbW9pemVkU2VsZWN0aW9uID0gY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIChtZW1vaXplZFNlbGVjdGlvbiA9IG5leHRTbmFwc2hvdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50U2VsZWN0aW9uID0gbWVtb2l6ZWRTZWxlY3Rpb247XG4gICAgICAgICAgICBpZiAob2JqZWN0SXMobWVtb2l6ZWRTbmFwc2hvdCwgbmV4dFNuYXBzaG90KSlcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTZWxlY3Rpb247XG4gICAgICAgICAgICB2YXIgbmV4dFNlbGVjdGlvbiA9IHNlbGVjdG9yKG5leHRTbmFwc2hvdCk7XG4gICAgICAgICAgICBpZiAodm9pZCAwICE9PSBpc0VxdWFsICYmIGlzRXF1YWwoY3VycmVudFNlbGVjdGlvbiwgbmV4dFNlbGVjdGlvbikpXG4gICAgICAgICAgICAgIHJldHVybiAobWVtb2l6ZWRTbmFwc2hvdCA9IG5leHRTbmFwc2hvdCksIGN1cnJlbnRTZWxlY3Rpb247XG4gICAgICAgICAgICBtZW1vaXplZFNuYXBzaG90ID0gbmV4dFNuYXBzaG90O1xuICAgICAgICAgICAgcmV0dXJuIChtZW1vaXplZFNlbGVjdGlvbiA9IG5leHRTZWxlY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaGFzTWVtbyA9ICExLFxuICAgICAgICAgICAgbWVtb2l6ZWRTbmFwc2hvdCxcbiAgICAgICAgICAgIG1lbW9pemVkU2VsZWN0aW9uLFxuICAgICAgICAgICAgbWF5YmVHZXRTZXJ2ZXJTbmFwc2hvdCA9XG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gZ2V0U2VydmVyU25hcHNob3QgPyBudWxsIDogZ2V0U2VydmVyU25hcHNob3Q7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG1lbW9pemVkU2VsZWN0b3IoZ2V0U25hcHNob3QoKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbnVsbCA9PT0gbWF5YmVHZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgICAgICAgICA/IHZvaWQgMFxuICAgICAgICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBtZW1vaXplZFNlbGVjdG9yKG1heWJlR2V0U2VydmVyU25hcHNob3QoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgIF07XG4gICAgICAgIH0sXG4gICAgICAgIFtnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QsIHNlbGVjdG9yLCBpc0VxdWFsXVxuICAgICAgKTtcbiAgICAgIHZhciB2YWx1ZSA9IHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgaW5zdFJlZlswXSwgaW5zdFJlZlsxXSk7XG4gICAgICB1c2VFZmZlY3QoXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpbnN0Lmhhc1ZhbHVlID0gITA7XG4gICAgICAgICAgaW5zdC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBbdmFsdWVdXG4gICAgICApO1xuICAgICAgdXNlRGVidWdWYWx1ZSh2YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChFcnJvcigpKTtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sync-external-store/with-selector.js": /*!***************************************************************!*\ !*** ./node_modules/use-sync-external-store/with-selector.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/use-sync-external-store-with-selector.development.js */ \"(app-pages-browser)/./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS93aXRoLXNlbGVjdG9yLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw2TkFBc0Y7QUFDeEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9oZWN0b3J6ZWEvZGV2L2Zyb250YnVpbGQvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3dpdGgtc2VsZWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXdpdGgtc2VsZWN0b3IucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS13aXRoLXNlbGVjdG9yLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sync-external-store/with-selector.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/zod/lib/index.mjs": /*!****************************************!*\ !*** ./node_modules/zod/lib/index.mjs ***! \****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BRAND: () => (/* binding */ BRAND),\n/* harmony export */ DIRTY: () => (/* binding */ DIRTY),\n/* harmony export */ EMPTY_PATH: () => (/* binding */ EMPTY_PATH),\n/* harmony export */ INVALID: () => (/* binding */ INVALID),\n/* harmony export */ NEVER: () => (/* binding */ NEVER),\n/* harmony export */ OK: () => (/* binding */ OK),\n/* harmony export */ ParseStatus: () => (/* binding */ ParseStatus),\n/* harmony export */ Schema: () => (/* binding */ ZodType),\n/* harmony export */ ZodAny: () => (/* binding */ ZodAny),\n/* harmony export */ ZodArray: () => (/* binding */ ZodArray),\n/* harmony export */ ZodBigInt: () => (/* binding */ ZodBigInt),\n/* harmony export */ ZodBoolean: () => (/* binding */ ZodBoolean),\n/* harmony export */ ZodBranded: () => (/* binding */ ZodBranded),\n/* harmony export */ ZodCatch: () => (/* binding */ ZodCatch),\n/* harmony export */ ZodDate: () => (/* binding */ ZodDate),\n/* harmony export */ ZodDefault: () => (/* binding */ ZodDefault),\n/* harmony export */ ZodDiscriminatedUnion: () => (/* binding */ ZodDiscriminatedUnion),\n/* harmony export */ ZodEffects: () => (/* binding */ ZodEffects),\n/* harmony export */ ZodEnum: () => (/* binding */ ZodEnum),\n/* harmony export */ ZodError: () => (/* binding */ ZodError),\n/* harmony export */ ZodFirstPartyTypeKind: () => (/* binding */ ZodFirstPartyTypeKind),\n/* harmony export */ ZodFunction: () => (/* binding */ ZodFunction),\n/* harmony export */ ZodIntersection: () => (/* binding */ ZodIntersection),\n/* harmony export */ ZodIssueCode: () => (/* binding */ ZodIssueCode),\n/* harmony export */ ZodLazy: () => (/* binding */ ZodLazy),\n/* harmony export */ ZodLiteral: () => (/* binding */ ZodLiteral),\n/* harmony export */ ZodMap: () => (/* binding */ ZodMap),\n/* harmony export */ ZodNaN: () => (/* binding */ ZodNaN),\n/* harmony export */ ZodNativeEnum: () => (/* binding */ ZodNativeEnum),\n/* harmony export */ ZodNever: () => (/* binding */ ZodNever),\n/* harmony export */ ZodNull: () => (/* binding */ ZodNull),\n/* harmony export */ ZodNullable: () => (/* binding */ ZodNullable),\n/* harmony export */ ZodNumber: () => (/* binding */ ZodNumber),\n/* harmony export */ ZodObject: () => (/* binding */ ZodObject),\n/* harmony export */ ZodOptional: () => (/* binding */ ZodOptional),\n/* harmony export */ ZodParsedType: () => (/* binding */ ZodParsedType),\n/* harmony export */ ZodPipeline: () => (/* binding */ ZodPipeline),\n/* harmony export */ ZodPromise: () => (/* binding */ ZodPromise),\n/* harmony export */ ZodReadonly: () => (/* binding */ ZodReadonly),\n/* harmony export */ ZodRecord: () => (/* binding */ ZodRecord),\n/* harmony export */ ZodSchema: () => (/* binding */ ZodType),\n/* harmony export */ ZodSet: () => (/* binding */ ZodSet),\n/* harmony export */ ZodString: () => (/* binding */ ZodString),\n/* harmony export */ ZodSymbol: () => (/* binding */ ZodSymbol),\n/* harmony export */ ZodTransformer: () => (/* binding */ ZodEffects),\n/* harmony export */ ZodTuple: () => (/* binding */ ZodTuple),\n/* harmony export */ ZodType: () => (/* binding */ ZodType),\n/* harmony export */ ZodUndefined: () => (/* binding */ ZodUndefined),\n/* harmony export */ ZodUnion: () => (/* binding */ ZodUnion),\n/* harmony export */ ZodUnknown: () => (/* binding */ ZodUnknown),\n/* harmony export */ ZodVoid: () => (/* binding */ ZodVoid),\n/* harmony export */ addIssueToContext: () => (/* binding */ addIssueToContext),\n/* harmony export */ any: () => (/* binding */ anyType),\n/* harmony export */ array: () => (/* binding */ arrayType),\n/* harmony export */ bigint: () => (/* binding */ bigIntType),\n/* harmony export */ boolean: () => (/* binding */ booleanType),\n/* harmony export */ coerce: () => (/* binding */ coerce),\n/* harmony export */ custom: () => (/* binding */ custom),\n/* harmony export */ date: () => (/* binding */ dateType),\n/* harmony export */ datetimeRegex: () => (/* binding */ datetimeRegex),\n/* harmony export */ \"default\": () => (/* binding */ z),\n/* harmony export */ defaultErrorMap: () => (/* binding */ errorMap),\n/* harmony export */ discriminatedUnion: () => (/* binding */ discriminatedUnionType),\n/* harmony export */ effect: () => (/* binding */ effectsType),\n/* harmony export */ \"enum\": () => (/* binding */ enumType),\n/* harmony export */ \"function\": () => (/* binding */ functionType),\n/* harmony export */ getErrorMap: () => (/* binding */ getErrorMap),\n/* harmony export */ getParsedType: () => (/* binding */ getParsedType),\n/* harmony export */ \"instanceof\": () => (/* binding */ instanceOfType),\n/* harmony export */ intersection: () => (/* binding */ intersectionType),\n/* harmony export */ isAborted: () => (/* binding */ isAborted),\n/* harmony export */ isAsync: () => (/* binding */ isAsync),\n/* harmony export */ isDirty: () => (/* binding */ isDirty),\n/* harmony export */ isValid: () => (/* binding */ isValid),\n/* harmony export */ late: () => (/* binding */ late),\n/* harmony export */ lazy: () => (/* binding */ lazyType),\n/* harmony export */ literal: () => (/* binding */ literalType),\n/* harmony export */ makeIssue: () => (/* binding */ makeIssue),\n/* harmony export */ map: () => (/* binding */ mapType),\n/* harmony export */ nan: () => (/* binding */ nanType),\n/* harmony export */ nativeEnum: () => (/* binding */ nativeEnumType),\n/* harmony export */ never: () => (/* binding */ neverType),\n/* harmony export */ \"null\": () => (/* binding */ nullType),\n/* harmony export */ nullable: () => (/* binding */ nullableType),\n/* harmony export */ number: () => (/* binding */ numberType),\n/* harmony export */ object: () => (/* binding */ objectType),\n/* harmony export */ objectUtil: () => (/* binding */ objectUtil),\n/* harmony export */ oboolean: () => (/* binding */ oboolean),\n/* harmony export */ onumber: () => (/* binding */ onumber),\n/* harmony export */ optional: () => (/* binding */ optionalType),\n/* harmony export */ ostring: () => (/* binding */ ostring),\n/* harmony export */ pipeline: () => (/* binding */ pipelineType),\n/* harmony export */ preprocess: () => (/* binding */ preprocessType),\n/* harmony export */ promise: () => (/* binding */ promiseType),\n/* harmony export */ quotelessJson: () => (/* binding */ quotelessJson),\n/* harmony export */ record: () => (/* binding */ recordType),\n/* harmony export */ set: () => (/* binding */ setType),\n/* harmony export */ setErrorMap: () => (/* binding */ setErrorMap),\n/* harmony export */ strictObject: () => (/* binding */ strictObjectType),\n/* harmony export */ string: () => (/* binding */ stringType),\n/* harmony export */ symbol: () => (/* binding */ symbolType),\n/* harmony export */ transformer: () => (/* binding */ effectsType),\n/* harmony export */ tuple: () => (/* binding */ tupleType),\n/* harmony export */ undefined: () => (/* binding */ undefinedType),\n/* harmony export */ union: () => (/* binding */ unionType),\n/* harmony export */ unknown: () => (/* binding */ unknownType),\n/* harmony export */ util: () => (/* binding */ util),\n/* harmony export */ \"void\": () => (/* binding */ voidType),\n/* harmony export */ z: () => (/* binding */ z)\n/* harmony export */ });\nvar util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nfunction custom(check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy96b2QvbGliL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxJQUFJO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0JBQW9CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsaURBQWlEO0FBQ3ZGO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MseUJBQXlCO0FBQy9EO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsdUJBQXVCO0FBQzdEO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixlQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixNQUFNO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRTJyRCIsInNvdXJjZXMiOlsiL1VzZXJzL2hlY3RvcnplYS9kZXYvZnJvbnRidWlsZC9mcm9udGVuZC9ub2RlX21vZHVsZXMvem9kL2xpYi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHV0aWw7XG4oZnVuY3Rpb24gKHV0aWwpIHtcbiAgICB1dGlsLmFzc2VydEVxdWFsID0gKHZhbCkgPT4gdmFsO1xuICAgIGZ1bmN0aW9uIGFzc2VydElzKF9hcmcpIHsgfVxuICAgIHV0aWwuYXNzZXJ0SXMgPSBhc3NlcnRJcztcbiAgICBmdW5jdGlvbiBhc3NlcnROZXZlcihfeCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gICAgdXRpbC5hc3NlcnROZXZlciA9IGFzc2VydE5ldmVyO1xuICAgIHV0aWwuYXJyYXlUb0VudW0gPSAoaXRlbXMpID0+IHtcbiAgICAgICAgY29uc3Qgb2JqID0ge307XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgb2JqW2l0ZW1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG4gICAgdXRpbC5nZXRWYWxpZEVudW1WYWx1ZXMgPSAob2JqKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkS2V5cyA9IHV0aWwub2JqZWN0S2V5cyhvYmopLmZpbHRlcigoaykgPT4gdHlwZW9mIG9ialtvYmpba11dICE9PSBcIm51bWJlclwiKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIHZhbGlkS2V5cykge1xuICAgICAgICAgICAgZmlsdGVyZWRba10gPSBvYmpba107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHV0aWwub2JqZWN0VmFsdWVzKGZpbHRlcmVkKTtcbiAgICB9O1xuICAgIHV0aWwub2JqZWN0VmFsdWVzID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gdXRpbC5vYmplY3RLZXlzKG9iaikubWFwKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqW2VdO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHV0aWwub2JqZWN0S2V5cyA9IHR5cGVvZiBPYmplY3Qua2V5cyA9PT0gXCJmdW5jdGlvblwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgYmFuL2JhblxuICAgICAgICA/IChvYmopID0+IE9iamVjdC5rZXlzKG9iaikgLy8gZXNsaW50LWRpc2FibGUtbGluZSBiYW4vYmFuXG4gICAgICAgIDogKG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH07XG4gICAgdXRpbC5maW5kID0gKGFyciwgY2hlY2tlcikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2tlcihpdGVtKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgdXRpbC5pc0ludGVnZXIgPSB0eXBlb2YgTnVtYmVyLmlzSW50ZWdlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gKHZhbCkgPT4gTnVtYmVyLmlzSW50ZWdlcih2YWwpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgYmFuL2JhblxuICAgICAgICA6ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgJiYgaXNGaW5pdGUodmFsKSAmJiBNYXRoLmZsb29yKHZhbCkgPT09IHZhbDtcbiAgICBmdW5jdGlvbiBqb2luVmFsdWVzKGFycmF5LCBzZXBhcmF0b3IgPSBcIiB8IFwiKSB7XG4gICAgICAgIHJldHVybiBhcnJheVxuICAgICAgICAgICAgLm1hcCgodmFsKSA9PiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiA/IGAnJHt2YWx9J2AgOiB2YWwpKVxuICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG4gICAgdXRpbC5qb2luVmFsdWVzID0gam9pblZhbHVlcztcbiAgICB1dGlsLmpzb25TdHJpbmdpZnlSZXBsYWNlciA9IChfLCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbn0pKHV0aWwgfHwgKHV0aWwgPSB7fSkpO1xudmFyIG9iamVjdFV0aWw7XG4oZnVuY3Rpb24gKG9iamVjdFV0aWwpIHtcbiAgICBvYmplY3RVdGlsLm1lcmdlU2hhcGVzID0gKGZpcnN0LCBzZWNvbmQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmZpcnN0LFxuICAgICAgICAgICAgLi4uc2Vjb25kLCAvLyBzZWNvbmQgb3ZlcndyaXRlcyBmaXJzdFxuICAgICAgICB9O1xuICAgIH07XG59KShvYmplY3RVdGlsIHx8IChvYmplY3RVdGlsID0ge30pKTtcbmNvbnN0IFpvZFBhcnNlZFR5cGUgPSB1dGlsLmFycmF5VG9FbnVtKFtcbiAgICBcInN0cmluZ1wiLFxuICAgIFwibmFuXCIsXG4gICAgXCJudW1iZXJcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJkYXRlXCIsXG4gICAgXCJiaWdpbnRcIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInVuZGVmaW5lZFwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwidW5rbm93blwiLFxuICAgIFwicHJvbWlzZVwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwibmV2ZXJcIixcbiAgICBcIm1hcFwiLFxuICAgIFwic2V0XCIsXG5dKTtcbmNvbnN0IGdldFBhcnNlZFR5cGUgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHQgPSB0eXBlb2YgZGF0YTtcbiAgICBzd2l0Y2ggKHQpIHtcbiAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkO1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5zdHJpbmc7XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBpc05hTihkYXRhKSA/IFpvZFBhcnNlZFR5cGUubmFuIDogWm9kUGFyc2VkVHlwZS5udW1iZXI7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5ib29sZWFuO1xuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uO1xuICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5iaWdpbnQ7XG4gICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnN5bWJvbDtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5hcnJheTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnRoZW4gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZGF0YS50aGVuID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgICAgICBkYXRhLmNhdGNoICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGRhdGEuY2F0Y2ggPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnByb21pc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBTZXQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgRGF0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5vYmplY3Q7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS51bmtub3duO1xuICAgIH1cbn07XG5cbmNvbnN0IFpvZElzc3VlQ29kZSA9IHV0aWwuYXJyYXlUb0VudW0oW1xuICAgIFwiaW52YWxpZF90eXBlXCIsXG4gICAgXCJpbnZhbGlkX2xpdGVyYWxcIixcbiAgICBcImN1c3RvbVwiLFxuICAgIFwiaW52YWxpZF91bmlvblwiLFxuICAgIFwiaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yXCIsXG4gICAgXCJpbnZhbGlkX2VudW1fdmFsdWVcIixcbiAgICBcInVucmVjb2duaXplZF9rZXlzXCIsXG4gICAgXCJpbnZhbGlkX2FyZ3VtZW50c1wiLFxuICAgIFwiaW52YWxpZF9yZXR1cm5fdHlwZVwiLFxuICAgIFwiaW52YWxpZF9kYXRlXCIsXG4gICAgXCJpbnZhbGlkX3N0cmluZ1wiLFxuICAgIFwidG9vX3NtYWxsXCIsXG4gICAgXCJ0b29fYmlnXCIsXG4gICAgXCJpbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlc1wiLFxuICAgIFwibm90X211bHRpcGxlX29mXCIsXG4gICAgXCJub3RfZmluaXRlXCIsXG5dKTtcbmNvbnN0IHF1b3RlbGVzc0pzb24gPSAob2JqKSA9PiB7XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMik7XG4gICAgcmV0dXJuIGpzb24ucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLCBcIiQxOlwiKTtcbn07XG5jbGFzcyBab2RFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBnZXQgZXJyb3JzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc3N1ZXM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGlzc3Vlcykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlzc3VlcyA9IFtdO1xuICAgICAgICB0aGlzLmFkZElzc3VlID0gKHN1YikgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSBbLi4udGhpcy5pc3N1ZXMsIHN1Yl07XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkSXNzdWVzID0gKHN1YnMgPSBbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSBbLi4udGhpcy5pc3N1ZXMsIC4uLnN1YnNdO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhY3R1YWxQcm90byA9IG5ldy50YXJnZXQucHJvdG90eXBlO1xuICAgICAgICBpZiAoT2JqZWN0LnNldFByb3RvdHlwZU9mKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYmFuL2JhblxuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIGFjdHVhbFByb3RvKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX19wcm90b19fID0gYWN0dWFsUHJvdG87XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYW1lID0gXCJab2RFcnJvclwiO1xuICAgICAgICB0aGlzLmlzc3VlcyA9IGlzc3VlcztcbiAgICB9XG4gICAgZm9ybWF0KF9tYXBwZXIpIHtcbiAgICAgICAgY29uc3QgbWFwcGVyID0gX21hcHBlciB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGlzc3VlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzc3VlLm1lc3NhZ2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaWVsZEVycm9ycyA9IHsgX2Vycm9yczogW10gfTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc0Vycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGlzc3VlIG9mIGVycm9yLmlzc3Vlcykge1xuICAgICAgICAgICAgICAgIGlmIChpc3N1ZS5jb2RlID09PSBcImludmFsaWRfdW5pb25cIikge1xuICAgICAgICAgICAgICAgICAgICBpc3N1ZS51bmlvbkVycm9ycy5tYXAocHJvY2Vzc0Vycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUuY29kZSA9PT0gXCJpbnZhbGlkX3JldHVybl90eXBlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0Vycm9yKGlzc3VlLnJldHVyblR5cGVFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLmNvZGUgPT09IFwiaW52YWxpZF9hcmd1bWVudHNcIikge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRXJyb3IoaXNzdWUuYXJndW1lbnRzRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc3N1ZS5wYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZEVycm9ycy5fZXJyb3JzLnB1c2gobWFwcGVyKGlzc3VlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VyciA9IGZpZWxkRXJyb3JzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgaXNzdWUucGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gaXNzdWUucGF0aFtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlcm1pbmFsID0gaSA9PT0gaXNzdWUucGF0aC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXJtaW5hbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmICh0eXBlb2YgZWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH0gZWxzZSBpZiAodHlwZW9mIGVsID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zdCBlcnJvckFycmF5OiBhbnkgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGVycm9yQXJyYXkuX2Vycm9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCBlcnJvckFycmF5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdLl9lcnJvcnMucHVzaChtYXBwZXIoaXNzdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnIgPSBjdXJyW2VsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcHJvY2Vzc0Vycm9yKHRoaXMpO1xuICAgICAgICByZXR1cm4gZmllbGRFcnJvcnM7XG4gICAgfVxuICAgIHN0YXRpYyBhc3NlcnQodmFsdWUpIHtcbiAgICAgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBab2RFcnJvcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm90IGEgWm9kRXJyb3I6ICR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7XG4gICAgfVxuICAgIGdldCBtZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5pc3N1ZXMsIHV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyLCAyKTtcbiAgICB9XG4gICAgZ2V0IGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzc3Vlcy5sZW5ndGggPT09IDA7XG4gICAgfVxuICAgIGZsYXR0ZW4obWFwcGVyID0gKGlzc3VlKSA9PiBpc3N1ZS5tZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0ge307XG4gICAgICAgIGNvbnN0IGZvcm1FcnJvcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5pc3N1ZXMpIHtcbiAgICAgICAgICAgIGlmIChzdWIucGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dID0gZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dIHx8IFtdO1xuICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzW3N1Yi5wYXRoWzBdXS5wdXNoKG1hcHBlcihzdWIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1FcnJvcnMucHVzaChtYXBwZXIoc3ViKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZm9ybUVycm9ycywgZmllbGRFcnJvcnMgfTtcbiAgICB9XG4gICAgZ2V0IGZvcm1FcnJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsYXR0ZW4oKTtcbiAgICB9XG59XG5ab2RFcnJvci5jcmVhdGUgPSAoaXNzdWVzKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoaXNzdWVzKTtcbiAgICByZXR1cm4gZXJyb3I7XG59O1xuXG5jb25zdCBlcnJvck1hcCA9IChpc3N1ZSwgX2N0eCkgPT4ge1xuICAgIGxldCBtZXNzYWdlO1xuICAgIHN3aXRjaCAoaXNzdWUuY29kZSkge1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGU6XG4gICAgICAgICAgICBpZiAoaXNzdWUucmVjZWl2ZWQgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiUmVxdWlyZWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRXhwZWN0ZWQgJHtpc3N1ZS5leHBlY3RlZH0sIHJlY2VpdmVkICR7aXNzdWUucmVjZWl2ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWw6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgbGl0ZXJhbCB2YWx1ZSwgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5leHBlY3RlZCwgdXRpbC5qc29uU3RyaW5naWZ5UmVwbGFjZXIpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXM6XG4gICAgICAgICAgICBtZXNzYWdlID0gYFVucmVjb2duaXplZCBrZXkocykgaW4gb2JqZWN0OiAke3V0aWwuam9pblZhbHVlcyhpc3N1ZS5rZXlzLCBcIiwgXCIpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbjpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dGA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWUuIEV4cGVjdGVkICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLm9wdGlvbnMpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGVudW0gdmFsdWUuIEV4cGVjdGVkICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7aXNzdWUucmVjZWl2ZWR9J2A7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHM6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZnVuY3Rpb24gYXJndW1lbnRzYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3JldHVybl90eXBlOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGZ1bmN0aW9uIHJldHVybiB0eXBlYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2RhdGU6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZGF0ZWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmc6XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlzc3VlLnZhbGlkYXRpb24gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoXCJpbmNsdWRlc1wiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgXCIke2lzc3VlLnZhbGlkYXRpb24uaW5jbHVkZXN9XCJgO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGlzc3VlLnZhbGlkYXRpb24ucG9zaXRpb24gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgJHttZXNzYWdlfSBhdCBvbmUgb3IgbW9yZSBwb3NpdGlvbnMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7aXNzdWUudmFsaWRhdGlvbi5wb3NpdGlvbn1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFwic3RhcnRzV2l0aFwiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IHN0YXJ0IHdpdGggXCIke2lzc3VlLnZhbGlkYXRpb24uc3RhcnRzV2l0aH1cImA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFwiZW5kc1dpdGhcIiBpbiBpc3N1ZS52YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dDogbXVzdCBlbmQgd2l0aCBcIiR7aXNzdWUudmFsaWRhdGlvbi5lbmRzV2l0aH1cImA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGlzc3VlLnZhbGlkYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnZhbGlkYXRpb24gIT09IFwicmVnZXhcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCAke2lzc3VlLnZhbGlkYXRpb259YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS50b29fc21hbGw6XG4gICAgICAgICAgICBpZiAoaXNzdWUudHlwZSA9PT0gXCJhcnJheVwiKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgQXJyYXkgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBcImV4YWN0bHlcIiA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBsZWFzdGAgOiBgbW9yZSB0aGFuYH0gJHtpc3N1ZS5taW5pbXVtfSBlbGVtZW50KHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBTdHJpbmcgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBcImV4YWN0bHlcIiA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBsZWFzdGAgOiBgb3ZlcmB9ICR7aXNzdWUubWluaW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHkgZXF1YWwgdG8gYFxuICAgICAgICAgICAgICAgICAgICA6IGlzc3VlLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGdyZWF0ZXIgdGhhbiBgfSR7aXNzdWUubWluaW11bX1gO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJkYXRlXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBEYXRlIG11c3QgYmUgJHtpc3N1ZS5leGFjdFxuICAgICAgICAgICAgICAgICAgICA/IGBleGFjdGx5IGVxdWFsIHRvIGBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBncmVhdGVyIHRoYW4gYH0ke25ldyBEYXRlKE51bWJlcihpc3N1ZS5taW5pbXVtKSl9YDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gXCJJbnZhbGlkIGlucHV0XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUudG9vX2JpZzpcbiAgICAgICAgICAgIGlmIChpc3N1ZS50eXBlID09PSBcImFycmF5XCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBBcnJheSBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBtb3N0YCA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19IGVsZW1lbnQocylgO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFN0cmluZyBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBtb3N0YCA6IGB1bmRlcmB9ICR7aXNzdWUubWF4aW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHlgXG4gICAgICAgICAgICAgICAgICAgIDogaXNzdWUuaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGBsZXNzIHRoYW4gb3IgZXF1YWwgdG9gXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19YDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiYmlnaW50XCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBCaWdJbnQgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHlgXG4gICAgICAgICAgICAgICAgICAgIDogaXNzdWUuaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGBsZXNzIHRoYW4gb3IgZXF1YWwgdG9gXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19YDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiZGF0ZVwiKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRGF0ZSBtdXN0IGJlICR7aXNzdWUuZXhhY3RcbiAgICAgICAgICAgICAgICAgICAgPyBgZXhhY3RseWBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0b2BcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYHNtYWxsZXIgdGhhbmB9ICR7bmV3IERhdGUoTnVtYmVyKGlzc3VlLm1heGltdW0pKX1gO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5jdXN0b206XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXRgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnRlcnNlY3Rpb24gcmVzdWx0cyBjb3VsZCBub3QgYmUgbWVyZ2VkYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2Y6XG4gICAgICAgICAgICBtZXNzYWdlID0gYE51bWJlciBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgJHtpc3N1ZS5tdWx0aXBsZU9mfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUubm90X2Zpbml0ZTpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIk51bWJlciBtdXN0IGJlIGZpbml0ZVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBtZXNzYWdlID0gX2N0eC5kZWZhdWx0RXJyb3I7XG4gICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGlzc3VlKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgbWVzc2FnZSB9O1xufTtcblxubGV0IG92ZXJyaWRlRXJyb3JNYXAgPSBlcnJvck1hcDtcbmZ1bmN0aW9uIHNldEVycm9yTWFwKG1hcCkge1xuICAgIG92ZXJyaWRlRXJyb3JNYXAgPSBtYXA7XG59XG5mdW5jdGlvbiBnZXRFcnJvck1hcCgpIHtcbiAgICByZXR1cm4gb3ZlcnJpZGVFcnJvck1hcDtcbn1cblxuY29uc3QgbWFrZUlzc3VlID0gKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgcGF0aCwgZXJyb3JNYXBzLCBpc3N1ZURhdGEgfSA9IHBhcmFtcztcbiAgICBjb25zdCBmdWxsUGF0aCA9IFsuLi5wYXRoLCAuLi4oaXNzdWVEYXRhLnBhdGggfHwgW10pXTtcbiAgICBjb25zdCBmdWxsSXNzdWUgPSB7XG4gICAgICAgIC4uLmlzc3VlRGF0YSxcbiAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgfTtcbiAgICBpZiAoaXNzdWVEYXRhLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaXNzdWVEYXRhLFxuICAgICAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgICAgICAgICBtZXNzYWdlOiBpc3N1ZURhdGEubWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG4gICAgY29uc3QgbWFwcyA9IGVycm9yTWFwc1xuICAgICAgICAuZmlsdGVyKChtKSA9PiAhIW0pXG4gICAgICAgIC5zbGljZSgpXG4gICAgICAgIC5yZXZlcnNlKCk7XG4gICAgZm9yIChjb25zdCBtYXAgb2YgbWFwcykge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBtYXAoZnVsbElzc3VlLCB7IGRhdGEsIGRlZmF1bHRFcnJvcjogZXJyb3JNZXNzYWdlIH0pLm1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlzc3VlRGF0YSxcbiAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICB9O1xufTtcbmNvbnN0IEVNUFRZX1BBVEggPSBbXTtcbmZ1bmN0aW9uIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgaXNzdWVEYXRhKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGVNYXAgPSBnZXRFcnJvck1hcCgpO1xuICAgIGNvbnN0IGlzc3VlID0gbWFrZUlzc3VlKHtcbiAgICAgICAgaXNzdWVEYXRhOiBpc3N1ZURhdGEsXG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgZXJyb3JNYXBzOiBbXG4gICAgICAgICAgICBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCwgLy8gY29udGV4dHVhbCBlcnJvciBtYXAgaXMgZmlyc3QgcHJpb3JpdHlcbiAgICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCwgLy8gdGhlbiBzY2hlbWEtYm91bmQgbWFwIGlmIGF2YWlsYWJsZVxuICAgICAgICAgICAgb3ZlcnJpZGVNYXAsIC8vIHRoZW4gZ2xvYmFsIG92ZXJyaWRlIG1hcFxuICAgICAgICAgICAgb3ZlcnJpZGVNYXAgPT09IGVycm9yTWFwID8gdW5kZWZpbmVkIDogZXJyb3JNYXAsIC8vIHRoZW4gZ2xvYmFsIGRlZmF1bHQgbWFwXG4gICAgICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpLFxuICAgIH0pO1xuICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goaXNzdWUpO1xufVxuY2xhc3MgUGFyc2VTdGF0dXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gXCJ2YWxpZFwiO1xuICAgIH1cbiAgICBkaXJ0eSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IFwidmFsaWRcIilcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBcImRpcnR5XCI7XG4gICAgfVxuICAgIGFib3J0KCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gXCJhYm9ydGVkXCI7XG4gICAgfVxuICAgIHN0YXRpYyBtZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0cykge1xuICAgICAgICBjb25zdCBhcnJheVZhbHVlID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpZiAocy5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKHMuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICBhcnJheVZhbHVlLnB1c2gocy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBhcnJheVZhbHVlIH07XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKHN0YXR1cywgcGFpcnMpIHtcbiAgICAgICAgY29uc3Qgc3luY1BhaXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgcGFpci5rZXk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhaXIudmFsdWU7XG4gICAgICAgICAgICBzeW5jUGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHN5bmNQYWlycyk7XG4gICAgfVxuICAgIHN0YXRpYyBtZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycykge1xuICAgICAgICBjb25zdCBmaW5hbE9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsga2V5LCB2YWx1ZSB9ID0gcGFpcjtcbiAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIGlmIChrZXkudmFsdWUgIT09IFwiX19wcm90b19fXCIgJiZcbiAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlLnZhbHVlICE9PSBcInVuZGVmaW5lZFwiIHx8IHBhaXIuYWx3YXlzU2V0KSkge1xuICAgICAgICAgICAgICAgIGZpbmFsT2JqZWN0W2tleS52YWx1ZV0gPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsT2JqZWN0IH07XG4gICAgfVxufVxuY29uc3QgSU5WQUxJRCA9IE9iamVjdC5mcmVlemUoe1xuICAgIHN0YXR1czogXCJhYm9ydGVkXCIsXG59KTtcbmNvbnN0IERJUlRZID0gKHZhbHVlKSA9PiAoeyBzdGF0dXM6IFwiZGlydHlcIiwgdmFsdWUgfSk7XG5jb25zdCBPSyA9ICh2YWx1ZSkgPT4gKHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlIH0pO1xuY29uc3QgaXNBYm9ydGVkID0gKHgpID0+IHguc3RhdHVzID09PSBcImFib3J0ZWRcIjtcbmNvbnN0IGlzRGlydHkgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwiZGlydHlcIjtcbmNvbnN0IGlzVmFsaWQgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwidmFsaWRcIjtcbmNvbnN0IGlzQXN5bmMgPSAoeCkgPT4gdHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIgJiYgeCBpbnN0YW5jZW9mIFByb21pc2U7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cclxuZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuXHJcbnR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xuXG52YXIgZXJyb3JVdGlsO1xuKGZ1bmN0aW9uIChlcnJvclV0aWwpIHtcbiAgICBlcnJvclV0aWwuZXJyVG9PYmogPSAobWVzc2FnZSkgPT4gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyB7IG1lc3NhZ2UgfSA6IG1lc3NhZ2UgfHwge307XG4gICAgZXJyb3JVdGlsLnRvU3RyaW5nID0gKG1lc3NhZ2UpID0+IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiID8gbWVzc2FnZSA6IG1lc3NhZ2UgPT09IG51bGwgfHwgbWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWVzc2FnZS5tZXNzYWdlO1xufSkoZXJyb3JVdGlsIHx8IChlcnJvclV0aWwgPSB7fSkpO1xuXG52YXIgX1pvZEVudW1fY2FjaGUsIF9ab2ROYXRpdmVFbnVtX2NhY2hlO1xuY2xhc3MgUGFyc2VJbnB1dExhenlQYXRoIHtcbiAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHZhbHVlLCBwYXRoLCBrZXkpIHtcbiAgICAgICAgdGhpcy5fY2FjaGVkUGF0aCA9IFtdO1xuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgdGhpcy5kYXRhID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLl9rZXkgPSBrZXk7XG4gICAgfVxuICAgIGdldCBwYXRoKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2NhY2hlZFBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fa2V5IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCwgLi4udGhpcy5fa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZFBhdGgucHVzaCguLi50aGlzLl9wYXRoLCB0aGlzLl9rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jYWNoZWRQYXRoO1xuICAgIH1cbn1cbmNvbnN0IGhhbmRsZVJlc3VsdCA9IChjdHgsIHJlc3VsdCkgPT4ge1xuICAgIGlmIChpc1ZhbGlkKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LnZhbHVlIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoIWN0eC5jb21tb24uaXNzdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVmFsaWRhdGlvbiBmYWlsZWQgYnV0IG5vIGlzc3VlcyBkZXRlY3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZ2V0IGVycm9yKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9lcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKGN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufTtcbmZ1bmN0aW9uIHByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSB7XG4gICAgaWYgKCFwYXJhbXMpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCB7IGVycm9yTWFwLCBpbnZhbGlkX3R5cGVfZXJyb3IsIHJlcXVpcmVkX2Vycm9yLCBkZXNjcmlwdGlvbiB9ID0gcGFyYW1zO1xuICAgIGlmIChlcnJvck1hcCAmJiAoaW52YWxpZF90eXBlX2Vycm9yIHx8IHJlcXVpcmVkX2Vycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IHVzZSBcImludmFsaWRfdHlwZV9lcnJvclwiIG9yIFwicmVxdWlyZWRfZXJyb3JcIiBpbiBjb25qdW5jdGlvbiB3aXRoIGN1c3RvbSBlcnJvciBtYXAuYCk7XG4gICAgfVxuICAgIGlmIChlcnJvck1hcClcbiAgICAgICAgcmV0dXJuIHsgZXJyb3JNYXA6IGVycm9yTWFwLCBkZXNjcmlwdGlvbiB9O1xuICAgIGNvbnN0IGN1c3RvbU1hcCA9IChpc3MsIGN0eCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IHBhcmFtcztcbiAgICAgICAgaWYgKGlzcy5jb2RlID09PSBcImludmFsaWRfZW51bV92YWx1ZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlOiBtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCA/IG1lc3NhZ2UgOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZGF0YSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgbWVzc2FnZTogKF9hID0gbWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgPyBtZXNzYWdlIDogcmVxdWlyZWRfZXJyb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNzLmNvZGUgIT09IFwiaW52YWxpZF90eXBlXCIpXG4gICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgICAgIHJldHVybiB7IG1lc3NhZ2U6IChfYiA9IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IGludmFsaWRfdHlwZV9lcnJvcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogY3R4LmRlZmF1bHRFcnJvciB9O1xuICAgIH07XG4gICAgcmV0dXJuIHsgZXJyb3JNYXA6IGN1c3RvbU1hcCwgZGVzY3JpcHRpb24gfTtcbn1cbmNsYXNzIFpvZFR5cGUge1xuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgX2dldFR5cGUoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIF9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KSB7XG4gICAgICAgIHJldHVybiAoY3R4IHx8IHtcbiAgICAgICAgICAgIGNvbW1vbjogaW5wdXQucGFyZW50LmNvbW1vbixcbiAgICAgICAgICAgIGRhdGE6IGlucHV0LmRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhdGg6IGlucHV0LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGlucHV0LnBhcmVudCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXR1czogbmV3IFBhcnNlU3RhdHVzKCksXG4gICAgICAgICAgICBjdHg6IHtcbiAgICAgICAgICAgICAgICBjb21tb246IGlucHV0LnBhcmVudC5jb21tb24sXG4gICAgICAgICAgICAgICAgZGF0YTogaW5wdXQuZGF0YSxcbiAgICAgICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpLFxuICAgICAgICAgICAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgcGF0aDogaW5wdXQucGF0aCxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGlucHV0LnBhcmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9wYXJzZVN5bmMoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2UoaW5wdXQpO1xuICAgICAgICBpZiAoaXNBc3luYyhyZXN1bHQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTeW5jaHJvbm91cyBwYXJzZSBlbmNvdW50ZXJlZCBwcm9taXNlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfcGFyc2VBc3luYyhpbnB1dCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZShpbnB1dCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICB9XG4gICAgcGFyc2UoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2FmZVBhcnNlKGRhdGEsIHBhcmFtcyk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2VzcylcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgIH1cbiAgICBzYWZlUGFyc2UoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luYzogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmFzeW5jKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZXh0dWFsRXJyb3JNYXA6IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5lcnJvck1hcCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXRoOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhdGgpIHx8IFtdLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZVN5bmMoeyBkYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgIH1cbiAgICBcIn52YWxpZGF0ZVwiKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luYzogISF0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2VTeW5jKHsgZGF0YSwgcGF0aDogW10sIHBhcmVudDogY3R4IH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkKHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBjdHguY29tbW9uLmlzc3VlcyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKF9iID0gKF9hID0gZXJyID09PSBudWxsIHx8IGVyciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyLm1lc3NhZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b0xvd2VyQ2FzZSgpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoXCJlbmNvdW50ZXJlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3R4LmNvbW1vbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VBc3luYyh7IGRhdGEsIHBhdGg6IFtdLCBwYXJlbnQ6IGN0eCB9KS50aGVuKChyZXN1bHQpID0+IGlzVmFsaWQocmVzdWx0KVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIGlzc3VlczogY3R4LmNvbW1vbi5pc3N1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zYWZlUGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpO1xuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgICAgIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgICB9XG4gICAgYXN5bmMgc2FmZVBhcnNlQXN5bmMoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgICAgIGlzc3VlczogW10sXG4gICAgICAgICAgICAgICAgY29udGV4dHVhbEVycm9yTWFwOiBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF0aDogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5wYXRoKSB8fCBbXSxcbiAgICAgICAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShkYXRhKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWF5YmVBc3luY1Jlc3VsdCA9IHRoaXMuX3BhcnNlKHsgZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoaXNBc3luYyhtYXliZUFzeW5jUmVzdWx0KVxuICAgICAgICAgICAgPyBtYXliZUFzeW5jUmVzdWx0XG4gICAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShtYXliZUFzeW5jUmVzdWx0KSk7XG4gICAgICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgIH1cbiAgICByZWZpbmUoY2hlY2ssIG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgZ2V0SXNzdWVQcm9wZXJ0aWVzID0gKHZhbCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbWVzc2FnZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZmluZW1lbnQoKHZhbCwgY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjaGVjayh2YWwpO1xuICAgICAgICAgICAgY29uc3Qgc2V0RXJyb3IgPSAoKSA9PiBjdHguYWRkSXNzdWUoe1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5jdXN0b20sXG4gICAgICAgICAgICAgICAgLi4uZ2V0SXNzdWVQcm9wZXJ0aWVzKHZhbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgUHJvbWlzZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiByZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZWZpbmVtZW50KGNoZWNrLCByZWZpbmVtZW50RGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgodmFsLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGlmICghY2hlY2sodmFsKSkge1xuICAgICAgICAgICAgICAgIGN0eC5hZGRJc3N1ZSh0eXBlb2YgcmVmaW5lbWVudERhdGEgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IHJlZmluZW1lbnREYXRhKHZhbCwgY3R4KVxuICAgICAgICAgICAgICAgICAgICA6IHJlZmluZW1lbnREYXRhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9yZWZpbmVtZW50KHJlZmluZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcyxcbiAgICAgICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgICAgIGVmZmVjdDogeyB0eXBlOiBcInJlZmluZW1lbnRcIiwgcmVmaW5lbWVudCB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3VwZXJSZWZpbmUocmVmaW5lbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudChyZWZpbmVtZW50KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoZGVmKSB7XG4gICAgICAgIC8qKiBBbGlhcyBvZiBzYWZlUGFyc2VBc3luYyAqL1xuICAgICAgICB0aGlzLnNwYSA9IHRoaXMuc2FmZVBhcnNlQXN5bmM7XG4gICAgICAgIHRoaXMuX2RlZiA9IGRlZjtcbiAgICAgICAgdGhpcy5wYXJzZSA9IHRoaXMucGFyc2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zYWZlUGFyc2UgPSB0aGlzLnNhZmVQYXJzZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBhcnNlQXN5bmMgPSB0aGlzLnBhcnNlQXN5bmMuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zYWZlUGFyc2VBc3luYyA9IHRoaXMuc2FmZVBhcnNlQXN5bmMuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zcGEgPSB0aGlzLnNwYS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnJlZmluZSA9IHRoaXMucmVmaW5lLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVmaW5lbWVudCA9IHRoaXMucmVmaW5lbWVudC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnN1cGVyUmVmaW5lID0gdGhpcy5zdXBlclJlZmluZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9wdGlvbmFsID0gdGhpcy5vcHRpb25hbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm51bGxhYmxlID0gdGhpcy5udWxsYWJsZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm51bGxpc2ggPSB0aGlzLm51bGxpc2guYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5hcnJheSA9IHRoaXMuYXJyYXkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5wcm9taXNlID0gdGhpcy5wcm9taXNlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub3IgPSB0aGlzLm9yLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuYW5kID0gdGhpcy5hbmQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmJyYW5kID0gdGhpcy5icmFuZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSB0aGlzLmRlZmF1bHQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5jYXRjaCA9IHRoaXMuY2F0Y2guYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5kZXNjcmliZSA9IHRoaXMuZGVzY3JpYmUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5waXBlID0gdGhpcy5waXBlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaXNOdWxsYWJsZSA9IHRoaXMuaXNOdWxsYWJsZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmlzT3B0aW9uYWwgPSB0aGlzLmlzT3B0aW9uYWwuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpc1tcIn5zdGFuZGFyZFwiXSA9IHtcbiAgICAgICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgICAgICB2ZW5kb3I6IFwiem9kXCIsXG4gICAgICAgICAgICB2YWxpZGF0ZTogKGRhdGEpID0+IHRoaXNbXCJ+dmFsaWRhdGVcIl0oZGF0YSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIG9wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIG51bGxhYmxlKCkge1xuICAgICAgICByZXR1cm4gWm9kTnVsbGFibGUuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIG51bGxpc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm51bGxhYmxlKCkub3B0aW9uYWwoKTtcbiAgICB9XG4gICAgYXJyYXkoKSB7XG4gICAgICAgIHJldHVybiBab2RBcnJheS5jcmVhdGUodGhpcyk7XG4gICAgfVxuICAgIHByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiBab2RQcm9taXNlLmNyZWF0ZSh0aGlzLCB0aGlzLl9kZWYpO1xuICAgIH1cbiAgICBvcihvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIFpvZFVuaW9uLmNyZWF0ZShbdGhpcywgb3B0aW9uXSwgdGhpcy5fZGVmKTtcbiAgICB9XG4gICAgYW5kKGluY29taW5nKSB7XG4gICAgICAgIHJldHVybiBab2RJbnRlcnNlY3Rpb24uY3JlYXRlKHRoaXMsIGluY29taW5nLCB0aGlzLl9kZWYpO1xuICAgIH1cbiAgICB0cmFuc2Zvcm0odHJhbnNmb3JtKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRWZmZWN0cyh7XG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZiksXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgICAgICAgICBlZmZlY3Q6IHsgdHlwZTogXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkZWZhdWx0KGRlZikge1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgICAgICByZXR1cm4gbmV3IFpvZERlZmF1bHQoe1xuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgICAgICAgaW5uZXJUeXBlOiB0aGlzLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWVGdW5jLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REZWZhdWx0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYnJhbmQoKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQnJhbmRlZCh7XG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLFxuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2F0Y2goZGVmKSB7XG4gICAgICAgIGNvbnN0IGNhdGNoVmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgICAgICByZXR1cm4gbmV3IFpvZENhdGNoKHtcbiAgICAgICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKSxcbiAgICAgICAgICAgIGlubmVyVHlwZTogdGhpcyxcbiAgICAgICAgICAgIGNhdGNoVmFsdWU6IGNhdGNoVmFsdWVGdW5jLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RDYXRjaCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRlc2NyaWJlKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvbnN0IFRoaXMgPSB0aGlzLmNvbnN0cnVjdG9yO1xuICAgICAgICByZXR1cm4gbmV3IFRoaXMoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwaXBlKHRhcmdldCkge1xuICAgICAgICByZXR1cm4gWm9kUGlwZWxpbmUuY3JlYXRlKHRoaXMsIHRhcmdldCk7XG4gICAgfVxuICAgIHJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gWm9kUmVhZG9ubHkuY3JlYXRlKHRoaXMpO1xuICAgIH1cbiAgICBpc09wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlUGFyc2UodW5kZWZpbmVkKS5zdWNjZXNzO1xuICAgIH1cbiAgICBpc051bGxhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlUGFyc2UobnVsbCkuc3VjY2VzcztcbiAgICB9XG59XG5jb25zdCBjdWlkUmVnZXggPSAvXmNbXlxccy1dezgsfSQvaTtcbmNvbnN0IGN1aWQyUmVnZXggPSAvXlswLTlhLXpdKyQvO1xuY29uc3QgdWxpZFJlZ2V4ID0gL15bMC05QS1ISktNTlAtVFYtWl17MjZ9JC9pO1xuLy8gY29uc3QgdXVpZFJlZ2V4ID1cbi8vICAgL14oW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tWzEtNV1bYS1mMC05XXszfS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn18MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwKSQvaTtcbmNvbnN0IHV1aWRSZWdleCA9IC9eWzAtOWEtZkEtRl17OH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17MTJ9JC9pO1xuY29uc3QgbmFub2lkUmVnZXggPSAvXlthLXowLTlfLV17MjF9JC9pO1xuY29uc3Qgand0UmVnZXggPSAvXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvO1xuY29uc3QgZHVyYXRpb25SZWdleCA9IC9eWy0rXT9QKD8hJCkoPzooPzpbLStdP1xcZCtZKXwoPzpbLStdP1xcZCtbLixdXFxkK1kkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/Oig/OlstK10/XFxkK1cpfCg/OlstK10/XFxkK1suLF1cXGQrVyQpKT8oPzooPzpbLStdP1xcZCtEKXwoPzpbLStdP1xcZCtbLixdXFxkK0QkKSk/KD86VCg/PVtcXGQrLV0pKD86KD86Wy0rXT9cXGQrSCl8KD86Wy0rXT9cXGQrWy4sXVxcZCtIJCkpPyg/Oig/OlstK10/XFxkK00pfCg/OlstK10/XFxkK1suLF1cXGQrTSQpKT8oPzpbLStdP1xcZCsoPzpbLixdXFxkKyk/Uyk/KT8/JC87XG4vLyBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80NjE4MS8xNTUwMTU1XG4vLyBvbGQgdmVyc2lvbjogdG9vIHNsb3csIGRpZG4ndCBzdXBwb3J0IHVuaWNvZGVcbi8vIGNvbnN0IGVtYWlsUmVnZXggPSAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2k7XG4vL29sZCBlbWFpbCByZWdleFxuLy8gY29uc3QgZW1haWxSZWdleCA9IC9eKChbXjw+KClbXFxdLiw7Olxcc0BcIl0rKFxcLltePD4oKVtcXF0uLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoPyEtKShbXjw+KClbXFxdLiw7Olxcc0BcIl0rXFwuKStbXjw+KClbXFxdLiw7Olxcc0BcIl17MSx9KVteLTw+KClbXFxdLiw7Olxcc0BcIl0kL2k7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXigoW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKSopfChcXFwiLitcXFwiKSlAKChcXFsoKCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXC4pezN9KCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXF0pfChcXFtJUHY2OigoW2EtZjAtOV17MSw0fTopezd9fDo6KFthLWYwLTldezEsNH06KXswLDZ9fChbYS1mMC05XXsxLDR9Oil7MX06KFthLWYwLTldezEsNH06KXswLDV9fChbYS1mMC05XXsxLDR9Oil7Mn06KFthLWYwLTldezEsNH06KXswLDR9fChbYS1mMC05XXsxLDR9Oil7M306KFthLWYwLTldezEsNH06KXswLDN9fChbYS1mMC05XXsxLDR9Oil7NH06KFthLWYwLTldezEsNH06KXswLDJ9fChbYS1mMC05XXsxLDR9Oil7NX06KFthLWYwLTldezEsNH06KXswLDF9KShbYS1mMC05XXsxLDR9fCgoKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVxcLil7M30oKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKSlcXF0pfChbQS1aYS16MC05XShbQS1aYS16MC05LV0qW0EtWmEtejAtOV0pKihcXC5bQS1aYS16XXsyLH0pKykpJC87XG4vLyBjb25zdCBlbWFpbFJlZ2V4ID1cbi8vICAgL15bYS16QS1aMC05XFwuXFwhXFwjXFwkXFwlXFwmXFwnXFwqXFwrXFwvXFw9XFw/XFxeXFxfXFxgXFx7XFx8XFx9XFx+XFwtXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLztcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXig/OlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSp8XCIoPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMVxceDIzLVxceDViXFx4NWQtXFx4N2ZdfFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSpcIilAKD86KD86W2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP1xcLikrW2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP3xcXFsoPzooPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldP3xbYS16MC05LV0qW2EtejAtOV06KD86W1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4MjEtXFx4NWFcXHg1My1cXHg3Zl18XFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKylcXF0pJC9pO1xuY29uc3QgZW1haWxSZWdleCA9IC9eKD8hXFwuKSg/IS4qXFwuXFwuKShbQS1aMC05XycrXFwtXFwuXSopW0EtWjAtOV8rLV1AKFtBLVowLTldW0EtWjAtOVxcLV0qXFwuKStbQS1aXXsyLH0kL2k7XG4vLyBjb25zdCBlbWFpbFJlZ2V4ID1cbi8vICAgL15bYS16MC05LiEjJCUm4oCZKisvPT9eX2B7fH1+LV0rQFthLXowLTktXSsoPzpcXC5bYS16MC05XFwtXSspKiQvaTtcbi8vIGZyb20gaHR0cHM6Ly90aGVrZXZpbnNjb3R0LmNvbS9lbW9qaXMtaW4tamF2YXNjcmlwdC8jd3JpdGluZy1hLXJlZ3VsYXItZXhwcmVzc2lvblxuY29uc3QgX2Vtb2ppUmVnZXggPSBgXihcXFxccHtFeHRlbmRlZF9QaWN0b2dyYXBoaWN9fFxcXFxwe0Vtb2ppX0NvbXBvbmVudH0pKyRgO1xubGV0IGVtb2ppUmVnZXg7XG4vLyBmYXN0ZXIsIHNpbXBsZXIsIHNhZmVyXG5jb25zdCBpcHY0UmVnZXggPSAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvO1xuY29uc3QgaXB2NENpZHJSZWdleCA9IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwvKDNbMC0yXXxbMTJdP1swLTldKSQvO1xuLy8gY29uc3QgaXB2NlJlZ2V4ID1cbi8vIC9eKChbYS1mMC05XXsxLDR9Oil7N318OjooW2EtZjAtOV17MSw0fTopezAsNn18KFthLWYwLTldezEsNH06KXsxfTooW2EtZjAtOV17MSw0fTopezAsNX18KFthLWYwLTldezEsNH06KXsyfTooW2EtZjAtOV17MSw0fTopezAsNH18KFthLWYwLTldezEsNH06KXszfTooW2EtZjAtOV17MSw0fTopezAsM318KFthLWYwLTldezEsNH06KXs0fTooW2EtZjAtOV17MSw0fTopezAsMn18KFthLWYwLTldezEsNH06KXs1fTooW2EtZjAtOV17MSw0fTopezAsMX0pKFthLWYwLTldezEsNH18KCgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpXFwuKXszfSgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpKSQvO1xuY29uc3QgaXB2NlJlZ2V4ID0gL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpJC87XG5jb25zdCBpcHY2Q2lkclJlZ2V4ID0gL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpXFwvKDEyWzAtOF18MVswMV1bMC05XXxbMS05XT9bMC05XSkkLztcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc4NjAzOTIvZGV0ZXJtaW5lLWlmLXN0cmluZy1pcy1pbi1iYXNlNjQtdXNpbmctamF2YXNjcmlwdFxuY29uc3QgYmFzZTY0UmVnZXggPSAvXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC87XG4vLyBodHRwczovL2Jhc2U2NC5ndXJ1L3N0YW5kYXJkcy9iYXNlNjR1cmxcbmNvbnN0IGJhc2U2NHVybFJlZ2V4ID0gL14oWzAtOWEtekEtWi1fXXs0fSkqKChbMC05YS16QS1aLV9dezJ9KD09KT8pfChbMC05YS16QS1aLV9dezN9KD0pPykpPyQvO1xuLy8gc2ltcGxlXG4vLyBjb25zdCBkYXRlUmVnZXhTb3VyY2UgPSBgXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn1gO1xuLy8gbm8gbGVhcCB5ZWFyIHZhbGlkYXRpb25cbi8vIGNvbnN0IGRhdGVSZWdleFNvdXJjZSA9IGBcXFxcZHs0fS0oKDBbMTM1NzhdfDEwfDEyKS0zMXwoMFsxMy05XXwxWzAtMl0pLTMwfCgwWzEtOV18MVswLTJdKS0oMFsxLTldfDFcXFxcZHwyXFxcXGQpKWA7XG4vLyB3aXRoIGxlYXAgeWVhciB2YWxpZGF0aW9uXG5jb25zdCBkYXRlUmVnZXhTb3VyY2UgPSBgKChcXFxcZFxcXFxkWzI0NjhdWzA0OF18XFxcXGRcXFxcZFsxMzU3OV1bMjZdfFxcXFxkXFxcXGQwWzQ4XXxbMDI0NjhdWzA0OF0wMHxbMTM1NzldWzI2XTAwKS0wMi0yOXxcXFxcZHs0fS0oKDBbMTM1NzhdfDFbMDJdKS0oMFsxLTldfFsxMl1cXFxcZHwzWzAxXSl8KDBbNDY5XXwxMSktKDBbMS05XXxbMTJdXFxcXGR8MzApfCgwMiktKDBbMS05XXwxXFxcXGR8MlswLThdKSkpYDtcbmNvbnN0IGRhdGVSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2RhdGVSZWdleFNvdXJjZX0kYCk7XG5mdW5jdGlvbiB0aW1lUmVnZXhTb3VyY2UoYXJncykge1xuICAgIC8vIGxldCByZWdleCA9IGBcXFxcZHsyfTpcXFxcZHsyfTpcXFxcZHsyfWA7XG4gICAgbGV0IHJlZ2V4ID0gYChbMDFdXFxcXGR8MlswLTNdKTpbMC01XVxcXFxkOlswLTVdXFxcXGRgO1xuICAgIGlmIChhcmdzLnByZWNpc2lvbikge1xuICAgICAgICByZWdleCA9IGAke3JlZ2V4fVxcXFwuXFxcXGR7JHthcmdzLnByZWNpc2lvbn19YDtcbiAgICB9XG4gICAgZWxzZSBpZiAoYXJncy5wcmVjaXNpb24gPT0gbnVsbCkge1xuICAgICAgICByZWdleCA9IGAke3JlZ2V4fShcXFxcLlxcXFxkKyk/YDtcbiAgICB9XG4gICAgcmV0dXJuIHJlZ2V4O1xufVxuZnVuY3Rpb24gdGltZVJlZ2V4KGFyZ3MpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgXiR7dGltZVJlZ2V4U291cmNlKGFyZ3MpfSRgKTtcbn1cbi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzE0MzIzMVxuZnVuY3Rpb24gZGF0ZXRpbWVSZWdleChhcmdzKSB7XG4gICAgbGV0IHJlZ2V4ID0gYCR7ZGF0ZVJlZ2V4U291cmNlfVQke3RpbWVSZWdleFNvdXJjZShhcmdzKX1gO1xuICAgIGNvbnN0IG9wdHMgPSBbXTtcbiAgICBvcHRzLnB1c2goYXJncy5sb2NhbCA/IGBaP2AgOiBgWmApO1xuICAgIGlmIChhcmdzLm9mZnNldClcbiAgICAgICAgb3B0cy5wdXNoKGAoWystXVxcXFxkezJ9Oj9cXFxcZHsyfSlgKTtcbiAgICByZWdleCA9IGAke3JlZ2V4fSgke29wdHMuam9pbihcInxcIil9KWA7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3JlZ2V4fSRgKTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRJUChpcCwgdmVyc2lvbikge1xuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NFwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY0UmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2UmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRKV1Qoand0LCBhbGcpIHtcbiAgICBpZiAoIWp3dFJlZ2V4LnRlc3Qoand0KSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IFtoZWFkZXJdID0gand0LnNwbGl0KFwiLlwiKTtcbiAgICAgICAgLy8gQ29udmVydCBiYXNlNjR1cmwgdG8gYmFzZTY0XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGhlYWRlclxuICAgICAgICAgICAgLnJlcGxhY2UoLy0vZywgXCIrXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXy9nLCBcIi9cIilcbiAgICAgICAgICAgIC5wYWRFbmQoaGVhZGVyLmxlbmd0aCArICgoNCAtIChoZWFkZXIubGVuZ3RoICUgNCkpICUgNCksIFwiPVwiKTtcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IEpTT04ucGFyc2UoYXRvYihiYXNlNjQpKTtcbiAgICAgICAgaWYgKHR5cGVvZiBkZWNvZGVkICE9PSBcIm9iamVjdFwiIHx8IGRlY29kZWQgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGVjb2RlZC50eXAgfHwgIWRlY29kZWQuYWxnKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoYWxnICYmIGRlY29kZWQuYWxnICE9PSBhbGcpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzVmFsaWRDaWRyKGlwLCB2ZXJzaW9uKSB7XG4gICAgaWYgKCh2ZXJzaW9uID09PSBcInY0XCIgfHwgIXZlcnNpb24pICYmIGlwdjRDaWRyUmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2Q2lkclJlZ2V4LnRlc3QoaXApKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5jbGFzcyBab2RTdHJpbmcgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGEgPSBTdHJpbmcoaW5wdXQuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zdHJpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc3RyaW5nLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGxldCBjdHggPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5sZW5ndGggPCBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImxlbmd0aFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGlucHV0LmRhdGEubGVuZ3RoIDwgY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb0JpZyB8fCB0b29TbWFsbCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb0JpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVtYWlsXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWVtYWlsUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbW9qaVwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbW9qaVJlZ2V4KSB7XG4gICAgICAgICAgICAgICAgICAgIGVtb2ppUmVnZXggPSBuZXcgUmVnRXhwKF9lbW9qaVJlZ2V4LCBcInVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZW1vamlSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZW1vamlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInV1aWRcIikge1xuICAgICAgICAgICAgICAgIGlmICghdXVpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1dWlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJuYW5vaWRcIikge1xuICAgICAgICAgICAgICAgIGlmICghbmFub2lkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcIm5hbm9pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY3VpZFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjdWlkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImN1aWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImN1aWQyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN1aWQyUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImN1aWQyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ1bGlkXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXVsaWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwidWxpZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidXJsXCIpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBuZXcgVVJMKGlucHV0LmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInJlZ2V4XCIpIHtcbiAgICAgICAgICAgICAgICBjaGVjay5yZWdleC5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RSZXN1bHQgPSBjaGVjay5yZWdleC50ZXN0KGlucHV0LmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcInJlZ2V4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0cmltXCIpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImluY2x1ZGVzXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0LmRhdGEuaW5jbHVkZXMoY2hlY2sudmFsdWUsIGNoZWNrLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IGluY2x1ZGVzOiBjaGVjay52YWx1ZSwgcG9zaXRpb246IGNoZWNrLnBvc2l0aW9uIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0b0xvd2VyQ2FzZVwiKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZGF0YSA9IGlucHV0LmRhdGEudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidG9VcHBlckNhc2VcIikge1xuICAgICAgICAgICAgICAgIGlucHV0LmRhdGEgPSBpbnB1dC5kYXRhLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInN0YXJ0c1dpdGhcIikge1xuICAgICAgICAgICAgICAgIGlmICghaW5wdXQuZGF0YS5zdGFydHNXaXRoKGNoZWNrLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IHN0YXJ0c1dpdGg6IGNoZWNrLnZhbHVlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbmRzV2l0aFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kYXRhLmVuZHNXaXRoKGNoZWNrLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IGVuZHNXaXRoOiBjaGVjay52YWx1ZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZGF0ZXRpbWVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZXRpbWVSZWdleChjaGVjayk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZGF0ZXRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImRhdGVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZVJlZ2V4O1xuICAgICAgICAgICAgICAgIGlmICghcmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRpbWVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gdGltZVJlZ2V4KGNoZWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ0aW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJkdXJhdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkdXJhdGlvblJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiaXBcIikge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZElQKGlucHV0LmRhdGEsIGNoZWNrLnZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiaXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImp3dFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSldUKGlucHV0LmRhdGEsIGNoZWNrLmFsZykpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJqd3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImNpZHJcIikge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZENpZHIoaW5wdXQuZGF0YSwgY2hlY2sudmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJjaWRyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJiYXNlNjRcIikge1xuICAgICAgICAgICAgICAgIGlmICghYmFzZTY0UmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImJhc2U2NFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiYmFzZTY0dXJsXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWJhc2U2NHVybFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJiYXNlNjR1cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGNoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgICB9XG4gICAgX3JlZ2V4KHJlZ2V4LCB2YWxpZGF0aW9uLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmluZW1lbnQoKGRhdGEpID0+IHJlZ2V4LnRlc3QoZGF0YSksIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb24sXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZW1haWwobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImVtYWlsXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgdXJsKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1cmxcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBlbW9qaShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZW1vamlcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICB1dWlkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1dWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgbmFub2lkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJuYW5vaWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBjdWlkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJjdWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgY3VpZDIobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImN1aWQyXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgdWxpZChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwidWxpZFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gICAgfVxuICAgIGJhc2U2NChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiYmFzZTY0XCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgYmFzZTY0dXJsKG1lc3NhZ2UpIHtcbiAgICAgICAgLy8gYmFzZTY0dXJsIGVuY29kaW5nIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGJhc2U2NCB0aGF0IGNhbiBzYWZlbHkgYmUgdXNlZCBpbiBVUkxzIGFuZCBmaWxlbmFtZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwiYmFzZTY0dXJsXCIsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBqd3Qob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImp3dFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gICAgfVxuICAgIGlwKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJpcFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gICAgfVxuICAgIGNpZHIob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImNpZHJcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMpIH0pO1xuICAgIH1cbiAgICBkYXRldGltZShvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgICAgICBraW5kOiBcImRhdGV0aW1lXCIsXG4gICAgICAgICAgICAgICAgcHJlY2lzaW9uOiBudWxsLFxuICAgICAgICAgICAgICAgIG9mZnNldDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9jYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJkYXRldGltZVwiLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICBvZmZzZXQ6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5vZmZzZXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLFxuICAgICAgICAgICAgbG9jYWw6IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5sb2NhbCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGF0ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZGF0ZVwiLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgICB0aW1lKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAgICAgIGtpbmQ6IFwidGltZVwiLFxuICAgICAgICAgICAgICAgIHByZWNpc2lvbjogbnVsbCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBvcHRpb25zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwidGltZVwiLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZHVyYXRpb24obWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImR1cmF0aW9uXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgcmVnZXgocmVnZXgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwicmVnZXhcIixcbiAgICAgICAgICAgIHJlZ2V4OiByZWdleCxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGluY2x1ZGVzKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImluY2x1ZGVzXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvc2l0aW9uLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwic3RhcnRzV2l0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZW5kc1dpdGgodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwiZW5kc1dpdGhcIixcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1pbihtaW5MZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogbWluTGVuZ3RoLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWF4KG1heExlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGgsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImxlbmd0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IGxlbixcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVxdWl2YWxlbnQgdG8gYC5taW4oMSlgXG4gICAgICovXG4gICAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4oMSwgZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgdHJpbSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgeyBraW5kOiBcInRyaW1cIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRvTG93ZXJDYXNlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9Mb3dlckNhc2VcIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRvVXBwZXJDYXNlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9VcHBlckNhc2VcIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBpc0RhdGV0aW1lKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGV0aW1lXCIpO1xuICAgIH1cbiAgICBnZXQgaXNEYXRlKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGVcIik7XG4gICAgfVxuICAgIGdldCBpc1RpbWUoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidGltZVwiKTtcbiAgICB9XG4gICAgZ2V0IGlzRHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZHVyYXRpb25cIik7XG4gICAgfVxuICAgIGdldCBpc0VtYWlsKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImVtYWlsXCIpO1xuICAgIH1cbiAgICBnZXQgaXNVUkwoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidXJsXCIpO1xuICAgIH1cbiAgICBnZXQgaXNFbW9qaSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJlbW9qaVwiKTtcbiAgICB9XG4gICAgZ2V0IGlzVVVJRCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1dWlkXCIpO1xuICAgIH1cbiAgICBnZXQgaXNOQU5PSUQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwibmFub2lkXCIpO1xuICAgIH1cbiAgICBnZXQgaXNDVUlEKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWRcIik7XG4gICAgfVxuICAgIGdldCBpc0NVSUQyKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWQyXCIpO1xuICAgIH1cbiAgICBnZXQgaXNVTElEKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcInVsaWRcIik7XG4gICAgfVxuICAgIGdldCBpc0lQKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImlwXCIpO1xuICAgIH1cbiAgICBnZXQgaXNDSURSKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImNpZHJcIik7XG4gICAgfVxuICAgIGdldCBpc0Jhc2U2NCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJiYXNlNjRcIik7XG4gICAgfVxuICAgIGdldCBpc0Jhc2U2NHVybCgpIHtcbiAgICAgICAgLy8gYmFzZTY0dXJsIGVuY29kaW5nIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGJhc2U2NCB0aGF0IGNhbiBzYWZlbHkgYmUgdXNlZCBpbiBVUkxzIGFuZCBmaWxlbmFtZXNcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJiYXNlNjR1cmxcIik7XG4gICAgfVxuICAgIGdldCBtaW5MZW5ndGgoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZ2V0IG1heExlbmd0aCgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH1cbn1cblpvZFN0cmluZy5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiBuZXcgWm9kU3RyaW5nKHtcbiAgICAgICAgY2hlY2tzOiBbXSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcsXG4gICAgICAgIGNvZXJjZTogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zOTY2NDg0L3doeS1kb2VzLW1vZHVsdXMtb3BlcmF0b3ItcmV0dXJuLWZyYWN0aW9uYWwtbnVtYmVyLWluLWphdmFzY3JpcHQvMzE3MTEwMzQjMzE3MTEwMzRcbmZ1bmN0aW9uIGZsb2F0U2FmZVJlbWFpbmRlcih2YWwsIHN0ZXApIHtcbiAgICBjb25zdCB2YWxEZWNDb3VudCA9ICh2YWwudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xuICAgIGNvbnN0IHN0ZXBEZWNDb3VudCA9IChzdGVwLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdIHx8IFwiXCIpLmxlbmd0aDtcbiAgICBjb25zdCBkZWNDb3VudCA9IHZhbERlY0NvdW50ID4gc3RlcERlY0NvdW50ID8gdmFsRGVjQ291bnQgOiBzdGVwRGVjQ291bnQ7XG4gICAgY29uc3QgdmFsSW50ID0gcGFyc2VJbnQodmFsLnRvRml4ZWQoZGVjQ291bnQpLnJlcGxhY2UoXCIuXCIsIFwiXCIpKTtcbiAgICBjb25zdCBzdGVwSW50ID0gcGFyc2VJbnQoc3RlcC50b0ZpeGVkKGRlY0NvdW50KS5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XG4gICAgcmV0dXJuICh2YWxJbnQgJSBzdGVwSW50KSAvIE1hdGgucG93KDEwLCBkZWNDb3VudCk7XG59XG5jbGFzcyBab2ROdW1iZXIgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5taW4gPSB0aGlzLmd0ZTtcbiAgICAgICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgICAgICAgdGhpcy5zdGVwID0gdGhpcy5tdWx0aXBsZU9mO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGEgPSBOdW1iZXIoaW5wdXQuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubnVtYmVyLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwiaW50XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXV0aWwuaXNJbnRlZ2VyKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZDogXCJmbG9hdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGNoZWNrLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICA/IGlucHV0LmRhdGEgPCBjaGVjay52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LmRhdGEgPD0gY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA+IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA+PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmxvYXRTYWZlUmVtYWluZGVyKGlucHV0LmRhdGEsIGNoZWNrLnZhbHVlKSAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVPZjogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJmaW5pdGVcIikge1xuICAgICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5ub3RfZmluaXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICAgIH1cbiAgICBndGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGd0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgbHRlKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCB0cnVlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBsdCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgZmFsc2UsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIHNldExpbWl0KGtpbmQsIHZhbHVlLCBpbmNsdXNpdmUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2ROdW1iZXIoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmLmNoZWNrcyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9hZGRDaGVjayhjaGVjaykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE51bWJlcih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja10sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnQobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJpbnRcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ucG9zaXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbXVsdGlwbGVPZih2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtdWx0aXBsZU9mXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaW5pdGUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJmaW5pdGVcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNhZmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSkuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgbWluVmFsdWUoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZ2V0IG1heFZhbHVlKCkge1xuICAgICAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIGdldCBpc0ludCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJpbnRcIiB8fFxuICAgICAgICAgICAgKGNoLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiICYmIHV0aWwuaXNJbnRlZ2VyKGNoLnZhbHVlKSkpO1xuICAgIH1cbiAgICBnZXQgaXNGaW5pdGUoKSB7XG4gICAgICAgIGxldCBtYXggPSBudWxsLCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcImZpbml0ZVwiIHx8XG4gICAgICAgICAgICAgICAgY2gua2luZCA9PT0gXCJpbnRcIiB8fFxuICAgICAgICAgICAgICAgIGNoLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICAgICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShtaW4pICYmIE51bWJlci5pc0Zpbml0ZShtYXgpO1xuICAgIH1cbn1cblpvZE51bWJlci5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdW1iZXIoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bWJlcixcbiAgICAgICAgY29lcmNlOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgfHwgZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RCaWdJbnQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5taW4gPSB0aGlzLmd0ZTtcbiAgICAgICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlucHV0LmRhdGEgPSBCaWdJbnQoaW5wdXQuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGlucHV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJpZ2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldEludmFsaWRJbnB1dChpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGNoZWNrLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICA/IGlucHV0LmRhdGEgPCBjaGVjay52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LmRhdGEgPD0gY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJpZ2ludFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA+IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA+PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJiaWdpbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YSAlIGNoZWNrLnZhbHVlICE9PSBCaWdJbnQoMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlT2Y6IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICAgIH1cbiAgICBfZ2V0SW52YWxpZElucHV0KGlucHV0KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYmlnaW50LFxuICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGd0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgZ3QodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBsdGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGx0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgc2V0TGltaXQoa2luZCwgdmFsdWUsIGluY2x1c2l2ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEJpZ0ludCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuY2hlY2tzLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQmlnSW50KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5lZ2F0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5vbnBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtdWx0aXBsZU9mKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm11bHRpcGxlT2ZcIixcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IG1pblZhbHVlKCkge1xuICAgICAgICBsZXQgbWluID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGdldCBtYXhWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH1cbn1cblpvZEJpZ0ludC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiBuZXcgWm9kQmlnSW50KHtcbiAgICAgICAgY2hlY2tzOiBbXSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCaWdJbnQsXG4gICAgICAgIGNvZXJjZTogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RCb29sZWFuIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICAgICAgICBpbnB1dC5kYXRhID0gQm9vbGVhbihpbnB1dC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJvb2xlYW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYm9vbGVhbixcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RCb29sZWFuLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEJvb2xlYW4oe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJvb2xlYW4sXG4gICAgICAgIGNvZXJjZTogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb2VyY2UpIHx8IGZhbHNlLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kRGF0ZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgICAgICAgaW5wdXQuZGF0YSA9IG5ldyBEYXRlKGlucHV0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5kYXRlLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmFOKGlucHV0LmRhdGEuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGxldCBjdHggPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5nZXRUaW1lKCkgPCBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LmRhdGEuZ2V0VGltZSgpID4gY2hlY2sudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cy52YWx1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShpbnB1dC5kYXRhLmdldFRpbWUoKSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9hZGRDaGVjayhjaGVjaykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZERhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWluKG1pbkRhdGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogbWluRGF0ZS5nZXRUaW1lKCksXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtYXgobWF4RGF0ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBtYXhEYXRlLmdldFRpbWUoKSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBtaW5EYXRlKCkge1xuICAgICAgICBsZXQgbWluID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW4gIT0gbnVsbCA/IG5ldyBEYXRlKG1pbikgOiBudWxsO1xuICAgIH1cbiAgICBnZXQgbWF4RGF0ZSgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4ICE9IG51bGwgPyBuZXcgRGF0ZShtYXgpIDogbnVsbDtcbiAgICB9XG59XG5ab2REYXRlLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZERhdGUoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REYXRlLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kU3ltYm9sIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuc3ltYm9sKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnN5bWJvbCxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RTeW1ib2wuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kU3ltYm9sKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTeW1ib2wsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RVbmRlZmluZWQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFVuZGVmaW5lZC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RVbmRlZmluZWQoe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVuZGVmaW5lZCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE51bGwgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm51bGwsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kTnVsbC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdWxsKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kQW55IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8vIHRvIHByZXZlbnQgaW5zdGFuY2VzIG9mIG90aGVyIGNsYXNzZXMgZnJvbSBleHRlbmRpbmcgWm9kQW55LiB0aGlzIGNhdXNlcyBpc3N1ZXMgd2l0aCBjYXRjaGFsbCBpbiBab2RPYmplY3QuXG4gICAgICAgIHRoaXMuX2FueSA9IHRydWU7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kQW55LmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEFueSh7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVW5rbm93biBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICAvLyByZXF1aXJlZFxuICAgICAgICB0aGlzLl91bmtub3duID0gdHJ1ZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RVbmtub3duLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFVua25vd24oe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVua25vd24sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2ROZXZlciBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm5ldmVyLFxuICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxufVxuWm9kTmV2ZXIuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kTmV2ZXIoe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5ldmVyLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVm9pZCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS52b2lkLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFZvaWQuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kVm9pZCh7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVm9pZCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEFycmF5IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBzdGF0dXMgfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGRlZiA9IHRoaXMuX2RlZjtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmFycmF5LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZi5leGFjdExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY3R4LmRhdGEubGVuZ3RoID4gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdG9vU21hbGwgPSBjdHguZGF0YS5sZW5ndGggPCBkZWYuZXhhY3RMZW5ndGgudmFsdWU7XG4gICAgICAgICAgICBpZiAodG9vQmlnIHx8IHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IHRvb0JpZyA/IFpvZElzc3VlQ29kZS50b29fYmlnIDogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogKHRvb1NtYWxsID8gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogKHRvb0JpZyA/IGRlZi5leGFjdExlbmd0aC52YWx1ZSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmLmV4YWN0TGVuZ3RoLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZi5taW5MZW5ndGggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChjdHguZGF0YS5sZW5ndGggPCBkZWYubWluTGVuZ3RoLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGRlZi5taW5MZW5ndGgudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5taW5MZW5ndGgubWVzc2FnZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVmLm1heExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA+IGRlZi5tYXhMZW5ndGgudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgIG1heGltdW06IGRlZi5tYXhMZW5ndGgudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5tYXhMZW5ndGgubWVzc2FnZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZi50eXBlLl9wYXJzZUFzeW5jKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpO1xuICAgICAgICAgICAgfSkpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGVmLnR5cGUuX3BhcnNlU3luYyhuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0KTtcbiAgICB9XG4gICAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgICB9XG4gICAgbWluKG1pbkxlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1pbkxlbmd0aDogeyB2YWx1ZTogbWluTGVuZ3RoLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1heChtYXhMZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RBcnJheSh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBtYXhMZW5ndGg6IHsgdmFsdWU6IG1heExlbmd0aCwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgZXhhY3RMZW5ndGg6IHsgdmFsdWU6IGxlbiwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbigxLCBtZXNzYWdlKTtcbiAgICB9XG59XG5ab2RBcnJheS5jcmVhdGUgPSAoc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgICAgdHlwZTogc2NoZW1hLFxuICAgICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgICAgZXhhY3RMZW5ndGg6IG51bGwsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQXJyYXksXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5mdW5jdGlvbiBkZWVwUGFydGlhbGlmeShzY2hlbWEpIHtcbiAgICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kT2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYS5zaGFwZSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSBzY2hlbWEuc2hhcGVba2V5XTtcbiAgICAgICAgICAgIG5ld1NoYXBlW2tleV0gPSBab2RPcHRpb25hbC5jcmVhdGUoZGVlcFBhcnRpYWxpZnkoZmllbGRTY2hlbWEpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi5zY2hlbWEuX2RlZixcbiAgICAgICAgICAgIHNoYXBlOiAoKSA9PiBuZXdTaGFwZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZEFycmF5KSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICAgICAgLi4uc2NoZW1hLl9kZWYsXG4gICAgICAgICAgICB0eXBlOiBkZWVwUGFydGlhbGlmeShzY2hlbWEuZWxlbWVudCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS51bndyYXAoKSkpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2ROdWxsYWJsZSkge1xuICAgICAgICByZXR1cm4gWm9kTnVsbGFibGUuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS51bndyYXAoKSkpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RUdXBsZSkge1xuICAgICAgICByZXR1cm4gWm9kVHVwbGUuY3JlYXRlKHNjaGVtYS5pdGVtcy5tYXAoKGl0ZW0pID0+IGRlZXBQYXJ0aWFsaWZ5KGl0ZW0pKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cbn1cbmNsYXNzIFpvZE9iamVjdCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLl9jYWNoZWQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgSW4gbW9zdCBjYXNlcywgdGhpcyBpcyBubyBsb25nZXIgbmVlZGVkIC0gdW5rbm93biBwcm9wZXJ0aWVzIGFyZSBub3cgc2lsZW50bHkgc3RyaXBwZWQuXG4gICAgICAgICAqIElmIHlvdSB3YW50IHRvIHBhc3MgdGhyb3VnaCB1bmtub3duIHByb3BlcnRpZXMsIHVzZSBgLnBhc3N0aHJvdWdoKClgIGluc3RlYWQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5vbnN0cmljdCA9IHRoaXMucGFzc3Rocm91Z2g7XG4gICAgICAgIC8vIGV4dGVuZDxcbiAgICAgICAgLy8gICBBdWdtZW50YXRpb24gZXh0ZW5kcyBab2RSYXdTaGFwZSxcbiAgICAgICAgLy8gICBOZXdPdXRwdXQgZXh0ZW5kcyB1dGlsLmZsYXR0ZW48e1xuICAgICAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgT3V0cHV0XTogayBleHRlbmRzIGtleW9mIEF1Z21lbnRhdGlvblxuICAgICAgICAvLyAgICAgICA/IEF1Z21lbnRhdGlvbltrXVtcIl9vdXRwdXRcIl1cbiAgICAgICAgLy8gICAgICAgOiBrIGV4dGVuZHMga2V5b2YgT3V0cHV0XG4gICAgICAgIC8vICAgICAgID8gT3V0cHV0W2tdXG4gICAgICAgIC8vICAgICAgIDogbmV2ZXI7XG4gICAgICAgIC8vICAgfT4sXG4gICAgICAgIC8vICAgTmV3SW5wdXQgZXh0ZW5kcyB1dGlsLmZsYXR0ZW48e1xuICAgICAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgSW5wdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgICAgIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX2lucHV0XCJdXG4gICAgICAgIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIElucHV0XG4gICAgICAgIC8vICAgICAgID8gSW5wdXRba11cbiAgICAgICAgLy8gICAgICAgOiBuZXZlcjtcbiAgICAgICAgLy8gICB9PlxuICAgICAgICAvLyA+KFxuICAgICAgICAvLyAgIGF1Z21lbnRhdGlvbjogQXVnbWVudGF0aW9uXG4gICAgICAgIC8vICk6IFpvZE9iamVjdDxcbiAgICAgICAgLy8gICBleHRlbmRTaGFwZTxULCBBdWdtZW50YXRpb24+LFxuICAgICAgICAvLyAgIFVua25vd25LZXlzLFxuICAgICAgICAvLyAgIENhdGNoYWxsLFxuICAgICAgICAvLyAgIE5ld091dHB1dCxcbiAgICAgICAgLy8gICBOZXdJbnB1dFxuICAgICAgICAvLyA+IHtcbiAgICAgICAgLy8gICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIC8vICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgIC8vICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgLy8gICAgICAgLi4udGhpcy5fZGVmLnNoYXBlKCksXG4gICAgICAgIC8vICAgICAgIC4uLmF1Z21lbnRhdGlvbixcbiAgICAgICAgLy8gICAgIH0pLFxuICAgICAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgVXNlIGAuZXh0ZW5kYCBpbnN0ZWFkXG4gICAgICAgICAqICAqL1xuICAgICAgICB0aGlzLmF1Z21lbnQgPSB0aGlzLmV4dGVuZDtcbiAgICB9XG4gICAgX2dldENhY2hlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NhY2hlZCAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWNoZWQ7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fZGVmLnNoYXBlKCk7XG4gICAgICAgIGNvbnN0IGtleXMgPSB1dGlsLm9iamVjdEtleXMoc2hhcGUpO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2NhY2hlZCA9IHsgc2hhcGUsIGtleXMgfSk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCB7IHNoYXBlLCBrZXlzOiBzaGFwZUtleXMgfSA9IHRoaXMuX2dldENhY2hlZCgpO1xuICAgICAgICBjb25zdCBleHRyYUtleXMgPSBbXTtcbiAgICAgICAgaWYgKCEodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgWm9kTmV2ZXIgJiZcbiAgICAgICAgICAgIHRoaXMuX2RlZi51bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gY3R4LmRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNoYXBlS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhS2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhaXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNoYXBlS2V5cykge1xuICAgICAgICAgICAgY29uc3Qga2V5VmFsaWRhdG9yID0gc2hhcGVba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY3R4LmRhdGFba2V5XTtcbiAgICAgICAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIGtleTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGtleSB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBrZXlWYWxpZGF0b3IuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCB2YWx1ZSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICAgICAgICAgIGFsd2F5c1NldDoga2V5IGluIGN0eC5kYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jYXRjaGFsbCBpbnN0YW5jZW9mIFpvZE5ldmVyKSB7XG4gICAgICAgICAgICBjb25zdCB1bmtub3duS2V5cyA9IHRoaXMuX2RlZi51bmtub3duS2V5cztcbiAgICAgICAgICAgIGlmICh1bmtub3duS2V5cyA9PT0gXCJwYXNzdGhyb3VnaFwiKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGN0eC5kYXRhW2tleV0gfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodW5rbm93bktleXMgPT09IFwic3RyaWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmFLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzOiBleHRyYUtleXMsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh1bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSA7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJ1biBjYXRjaGFsbCB2YWxpZGF0aW9uXG4gICAgICAgICAgICBjb25zdCBjYXRjaGFsbCA9IHRoaXMuX2RlZi5jYXRjaGFsbDtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGV4dHJhS2V5cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY3R4LmRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYXRjaGFsbC5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwga2V5KSAvLywgY3R4LmNoaWxkKGtleSksIHZhbHVlLCBnZXRQYXJzZWRUeXBlKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgICAgICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN5bmNQYWlycyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzeW5jUGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsd2F5c1NldDogcGFpci5hbHdheXNTZXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc3luY1BhaXJzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoc3luY1BhaXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHN5bmNQYWlycyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHNoYXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNoYXBlKCk7XG4gICAgfVxuICAgIHN0cmljdChtZXNzYWdlKSB7XG4gICAgICAgIGVycm9yVXRpbC5lcnJUb09iajtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgdW5rbm93bktleXM6IFwic3RyaWN0XCIsXG4gICAgICAgICAgICAuLi4obWVzc2FnZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWFwOiAoaXNzdWUsIGN0eCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdEVycm9yID0gKF9jID0gKF9iID0gKF9hID0gdGhpcy5fZGVmKS5lcnJvck1hcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGlzc3VlLCBjdHgpLm1lc3NhZ2UpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGN0eC5kZWZhdWx0RXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNzdWUuY29kZSA9PT0gXCJ1bnJlY29nbml6ZWRfa2V5c1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IChfZCA9IGVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKS5tZXNzYWdlKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBkZWZhdWx0RXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmYXVsdEVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdHJpcCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBhc3N0aHJvdWdoKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICB1bmtub3duS2V5czogXCJwYXNzdGhyb3VnaFwiLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gY29uc3QgQXVnbWVudEZhY3RvcnkgPVxuICAgIC8vICAgPERlZiBleHRlbmRzIFpvZE9iamVjdERlZj4oZGVmOiBEZWYpID0+XG4gICAgLy8gICA8QXVnbWVudGF0aW9uIGV4dGVuZHMgWm9kUmF3U2hhcGU+KFxuICAgIC8vICAgICBhdWdtZW50YXRpb246IEF1Z21lbnRhdGlvblxuICAgIC8vICAgKTogWm9kT2JqZWN0PFxuICAgIC8vICAgICBleHRlbmRTaGFwZTxSZXR1cm5UeXBlPERlZltcInNoYXBlXCJdPiwgQXVnbWVudGF0aW9uPixcbiAgICAvLyAgICAgRGVmW1widW5rbm93bktleXNcIl0sXG4gICAgLy8gICAgIERlZltcImNhdGNoYWxsXCJdXG4gICAgLy8gICA+ID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgIC8vICAgICAgIC4uLmRlZixcbiAgICAvLyAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAvLyAgICAgICAgIC4uLmRlZi5zaGFwZSgpLFxuICAgIC8vICAgICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAgIC8vICAgICAgIH0pLFxuICAgIC8vICAgICB9KSBhcyBhbnk7XG4gICAgLy8gICB9O1xuICAgIGV4dGVuZChhdWdtZW50YXRpb24pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmLnNoYXBlKCksXG4gICAgICAgICAgICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcmlvciB0byB6b2RAMS4wLjEyIHRoZXJlIHdhcyBhIGJ1ZyBpbiB0aGVcbiAgICAgKiBpbmZlcnJlZCB0eXBlIG9mIG1lcmdlZCBvYmplY3RzLiBQbGVhc2VcbiAgICAgKiB1cGdyYWRlIGlmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGlzc3Vlcy5cbiAgICAgKi9cbiAgICBtZXJnZShtZXJnaW5nKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAgICAgICAgIGNhdGNoYWxsOiBtZXJnaW5nLl9kZWYuY2F0Y2hhbGwsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgICAgICAgICAuLi5tZXJnaW5nLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH1cbiAgICAvLyBtZXJnZTxcbiAgICAvLyAgIEluY29taW5nIGV4dGVuZHMgQW55Wm9kT2JqZWN0LFxuICAgIC8vICAgQXVnbWVudGF0aW9uIGV4dGVuZHMgSW5jb21pbmdbXCJzaGFwZVwiXSxcbiAgICAvLyAgIE5ld091dHB1dCBleHRlbmRzIHtcbiAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgT3V0cHV0XTogayBleHRlbmRzIGtleW9mIEF1Z21lbnRhdGlvblxuICAgIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX291dHB1dFwiXVxuICAgIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIE91dHB1dFxuICAgIC8vICAgICAgID8gT3V0cHV0W2tdXG4gICAgLy8gICAgICAgOiBuZXZlcjtcbiAgICAvLyAgIH0sXG4gICAgLy8gICBOZXdJbnB1dCBleHRlbmRzIHtcbiAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgSW5wdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfaW5wdXRcIl1cbiAgICAvLyAgICAgICA6IGsgZXh0ZW5kcyBrZXlvZiBJbnB1dFxuICAgIC8vICAgICAgID8gSW5wdXRba11cbiAgICAvLyAgICAgICA6IG5ldmVyO1xuICAgIC8vICAgfVxuICAgIC8vID4oXG4gICAgLy8gICBtZXJnaW5nOiBJbmNvbWluZ1xuICAgIC8vICk6IFpvZE9iamVjdDxcbiAgICAvLyAgIGV4dGVuZFNoYXBlPFQsIFJldHVyblR5cGU8SW5jb21pbmdbXCJfZGVmXCJdW1wic2hhcGVcIl0+PixcbiAgICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1wiY2F0Y2hhbGxcIl0sXG4gICAgLy8gICBOZXdPdXRwdXQsXG4gICAgLy8gICBOZXdJbnB1dFxuICAgIC8vID4ge1xuICAgIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgICAvLyAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAvLyAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgICAvLyAgICAgc2hhcGU6ICgpID0+XG4gICAgLy8gICAgICAgb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyh0aGlzLl9kZWYuc2hhcGUoKSwgbWVyZ2luZy5fZGVmLnNoYXBlKCkpLFxuICAgIC8vICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAvLyAgIHJldHVybiBtZXJnZWQ7XG4gICAgLy8gfVxuICAgIHNldEtleShrZXksIHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hdWdtZW50KHsgW2tleV06IHNjaGVtYSB9KTtcbiAgICB9XG4gICAgLy8gbWVyZ2U8SW5jb21pbmcgZXh0ZW5kcyBBbnlab2RPYmplY3Q+KFxuICAgIC8vICAgbWVyZ2luZzogSW5jb21pbmdcbiAgICAvLyApOiAvL1pvZE9iamVjdDxUICYgSW5jb21pbmdbXCJfc2hhcGVcIl0sIFVua25vd25LZXlzLCBDYXRjaGFsbD4gPSAobWVyZ2luZykgPT4ge1xuICAgIC8vIFpvZE9iamVjdDxcbiAgICAvLyAgIGV4dGVuZFNoYXBlPFQsIFJldHVyblR5cGU8SW5jb21pbmdbXCJfZGVmXCJdW1wic2hhcGVcIl0+PixcbiAgICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1wiY2F0Y2hhbGxcIl1cbiAgICAvLyA+IHtcbiAgICAvLyAgIC8vIGNvbnN0IG1lcmdlZFNoYXBlID0gb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyhcbiAgICAvLyAgIC8vICAgdGhpcy5fZGVmLnNoYXBlKCksXG4gICAgLy8gICAvLyAgIG1lcmdpbmcuX2RlZi5zaGFwZSgpXG4gICAgLy8gICAvLyApO1xuICAgIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgICAvLyAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAvLyAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgICAvLyAgICAgc2hhcGU6ICgpID0+XG4gICAgLy8gICAgICAgb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyh0aGlzLl9kZWYuc2hhcGUoKSwgbWVyZ2luZy5fZGVmLnNoYXBlKCkpLFxuICAgIC8vICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAvLyAgIHJldHVybiBtZXJnZWQ7XG4gICAgLy8gfVxuICAgIGNhdGNoYWxsKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNhdGNoYWxsOiBpbmRleCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBpY2sobWFzaykge1xuICAgICAgICBjb25zdCBzaGFwZSA9IHt9O1xuICAgICAgICB1dGlsLm9iamVjdEtleXMobWFzaykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAobWFza1trZXldICYmIHRoaXMuc2hhcGVba2V5XSkge1xuICAgICAgICAgICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbWl0KG1hc2spIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSB7fTtcbiAgICAgICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtYXNrW2tleV0pIHtcbiAgICAgICAgICAgICAgICBzaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+IHNoYXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBkZWVwUGFydGlhbCgpIHtcbiAgICAgICAgcmV0dXJuIGRlZXBQYXJ0aWFsaWZ5KHRoaXMpO1xuICAgIH1cbiAgICBwYXJ0aWFsKG1hc2spIHtcbiAgICAgICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICAgICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICBpZiAobWFzayAmJiAhbWFza1trZXldKSB7XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hLm9wdGlvbmFsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gbmV3U2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXF1aXJlZChtYXNrKSB7XG4gICAgICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgICAgIHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChtYXNrICYmICFtYXNrW2tleV0pIHtcbiAgICAgICAgICAgICAgICBuZXdTaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICAgICAgbGV0IG5ld0ZpZWxkID0gZmllbGRTY2hlbWE7XG4gICAgICAgICAgICAgICAgd2hpbGUgKG5ld0ZpZWxkIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC5fZGVmLmlubmVyVHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IG5ld0ZpZWxkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAga2V5b2YoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVab2RFbnVtKHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSk7XG4gICAgfVxufVxuWm9kT2JqZWN0LmNyZWF0ZSA9IChzaGFwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgICAgIHVua25vd25LZXlzOiBcInN0cmlwXCIsXG4gICAgICAgIGNhdGNoYWxsOiBab2ROZXZlci5jcmVhdGUoKSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5ab2RPYmplY3Quc3RyaWN0Q3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIHNoYXBlOiAoKSA9PiBzaGFwZSxcbiAgICAgICAgdW5rbm93bktleXM6IFwic3RyaWN0XCIsXG4gICAgICAgIGNhdGNoYWxsOiBab2ROZXZlci5jcmVhdGUoKSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5ab2RPYmplY3QubGF6eWNyZWF0ZSA9IChzaGFwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICBzaGFwZSxcbiAgICAgICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICAgICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFVuaW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZGVmLm9wdGlvbnM7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZVJlc3VsdHMocmVzdWx0cykge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGZpcnN0IGlzc3VlLWZyZWUgdmFsaWRhdGlvbiBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGlzc3VlcyBmcm9tIGRpcnR5IG9wdGlvblxuICAgICAgICAgICAgICAgICAgICBjdHguY29tbW9uLmlzc3Vlcy5wdXNoKC4uLnJlc3VsdC5jdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldHVybiBpbnZhbGlkXG4gICAgICAgICAgICBjb25zdCB1bmlvbkVycm9ycyA9IHJlc3VsdHMubWFwKChyZXN1bHQpID0+IG5ldyBab2RFcnJvcihyZXN1bHQuY3R4LmNvbW1vbi5pc3N1ZXMpKTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLFxuICAgICAgICAgICAgICAgIHVuaW9uRXJyb3JzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKG9wdGlvbnMubWFwKGFzeW5jIChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEN0eCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgICAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGF3YWl0IG9wdGlvbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjaGlsZEN0eCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGN0eDogY2hpbGRDdHgsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKS50aGVuKGhhbmRsZVJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IGRpcnR5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDdHggPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jdHguY29tbW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gb3B0aW9uLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY2hpbGRDdHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIgJiYgIWRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpcnR5ID0geyByZXN1bHQsIGN0eDogY2hpbGRDdHggfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkQ3R4LmNvbW1vbi5pc3N1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzc3Vlcy5wdXNoKGNoaWxkQ3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goLi4uZGlydHkuY3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXJ0eS5yZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1bmlvbkVycm9ycyA9IGlzc3Vlcy5tYXAoKGlzc3VlcykgPT4gbmV3IFpvZEVycm9yKGlzc3VlcykpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb24sXG4gICAgICAgICAgICAgICAgdW5pb25FcnJvcnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLm9wdGlvbnM7XG4gICAgfVxufVxuWm9kVW5pb24uY3JlYXRlID0gKHR5cGVzLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFVuaW9uKHtcbiAgICAgICAgb3B0aW9uczogdHlwZXMsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5pb24sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgWm9kRGlzY3JpbWluYXRlZFVuaW9uICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuY29uc3QgZ2V0RGlzY3JpbWluYXRvciA9ICh0eXBlKSA9PiB7XG4gICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RMYXp5KSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuc2NoZW1hKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZEVmZmVjdHMpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5pbm5lclR5cGUoKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RMaXRlcmFsKSB7XG4gICAgICAgIHJldHVybiBbdHlwZS52YWx1ZV07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RFbnVtKSB7XG4gICAgICAgIHJldHVybiB0eXBlLm9wdGlvbnM7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROYXRpdmVFbnVtKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBiYW4vYmFuXG4gICAgICAgIHJldHVybiB1dGlsLm9iamVjdFZhbHVlcyh0eXBlLmVudW0pO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRGVmYXVsdCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLl9kZWYuaW5uZXJUeXBlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZFVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW3VuZGVmaW5lZF07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROdWxsKSB7XG4gICAgICAgIHJldHVybiBbbnVsbF07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gW3VuZGVmaW5lZCwgLi4uZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKV07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROdWxsYWJsZSkge1xuICAgICAgICByZXR1cm4gW251bGwsIC4uLmdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSldO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kQnJhbmRlZCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZFJlYWRvbmx5KSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kQ2F0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5fZGVmLmlubmVyVHlwZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufTtcbmNsYXNzIFpvZERpc2NyaW1pbmF0ZWRVbmlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yID0gdGhpcy5kaXNjcmltaW5hdG9yO1xuICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWUgPSBjdHguZGF0YVtkaXNjcmltaW5hdG9yXTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zTWFwLmdldChkaXNjcmltaW5hdG9yVmFsdWUpO1xuICAgICAgICBpZiAoIW9wdGlvbikge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcixcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBBcnJheS5mcm9tKHRoaXMub3B0aW9uc01hcC5rZXlzKCkpLFxuICAgICAgICAgICAgICAgIHBhdGg6IFtkaXNjcmltaW5hdG9yXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGRpc2NyaW1pbmF0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuZGlzY3JpbWluYXRvcjtcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9ucztcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnNNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9uc01hcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBkaXNjcmltaW5hdGVkIHVuaW9uIHNjaGVtYS4gSXRzIGJlaGF2aW91ciBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiB0aGUgbm9ybWFsIHoudW5pb24oKSBjb25zdHJ1Y3Rvci5cbiAgICAgKiBIb3dldmVyLCBpdCBvbmx5IGFsbG93cyBhIHVuaW9uIG9mIG9iamVjdHMsIGFsbCBvZiB3aGljaCBuZWVkIHRvIHNoYXJlIGEgZGlzY3JpbWluYXRvciBwcm9wZXJ0eS4gVGhpcyBwcm9wZXJ0eSBtdXN0XG4gICAgICogaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgZWFjaCBvYmplY3QgaW4gdGhlIHVuaW9uLlxuICAgICAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIHRoZSBuYW1lIG9mIHRoZSBkaXNjcmltaW5hdG9yIHByb3BlcnR5XG4gICAgICogQHBhcmFtIHR5cGVzIGFuIGFycmF5IG9mIG9iamVjdCBzY2hlbWFzXG4gICAgICogQHBhcmFtIHBhcmFtc1xuICAgICAqL1xuICAgIHN0YXRpYyBjcmVhdGUoZGlzY3JpbWluYXRvciwgb3B0aW9ucywgcGFyYW1zKSB7XG4gICAgICAgIC8vIEdldCBhbGwgdGhlIHZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWVzXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8vIHRyeSB7XG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWVzID0gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnNoYXBlW2Rpc2NyaW1pbmF0b3JdKTtcbiAgICAgICAgICAgIGlmICghZGlzY3JpbWluYXRvclZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgZGlzY3JpbWluYXRvciB2YWx1ZSBmb3Iga2V5IFxcYCR7ZGlzY3JpbWluYXRvcn1cXGAgY291bGQgbm90IGJlIGV4dHJhY3RlZCBmcm9tIGFsbCBzY2hlbWEgb3B0aW9uc2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBkaXNjcmltaW5hdG9yVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnNNYXAuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcoZGlzY3JpbWluYXRvcil9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcodmFsdWUpfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zTWFwLnNldCh2YWx1ZSwgdHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBab2REaXNjcmltaW5hdGVkVW5pb24oe1xuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REaXNjcmltaW5hdGVkVW5pb24sXG4gICAgICAgICAgICBkaXNjcmltaW5hdG9yLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnNNYXAsXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG1lcmdlVmFsdWVzKGEsIGIpIHtcbiAgICBjb25zdCBhVHlwZSA9IGdldFBhcnNlZFR5cGUoYSk7XG4gICAgY29uc3QgYlR5cGUgPSBnZXRQYXJzZWRUeXBlKGIpO1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBhIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLm9iamVjdCAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgICAgY29uc3QgYktleXMgPSB1dGlsLm9iamVjdEtleXMoYik7XG4gICAgICAgIGNvbnN0IHNoYXJlZEtleXMgPSB1dGlsXG4gICAgICAgICAgICAub2JqZWN0S2V5cyhhKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBiS2V5cy5pbmRleE9mKGtleSkgIT09IC0xKTtcbiAgICAgICAgY29uc3QgbmV3T2JqID0geyAuLi5hLCAuLi5iIH07XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNoYXJlZEtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoYVtrZXldLCBiW2tleV0pO1xuICAgICAgICAgICAgaWYgKCFzaGFyZWRWYWx1ZS52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBzaGFyZWRWYWx1ZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBuZXdPYmogfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUuYXJyYXkgJiYgYlR5cGUgPT09IFpvZFBhcnNlZFR5cGUuYXJyYXkpIHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3QXJyYXkgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGEubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtQSA9IGFbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgaXRlbUIgPSBiW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoaXRlbUEsIGl0ZW1CKTtcbiAgICAgICAgICAgIGlmICghc2hhcmVkVmFsdWUudmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0FycmF5LnB1c2goc2hhcmVkVmFsdWUuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IG5ld0FycmF5IH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLmRhdGUgJiZcbiAgICAgICAgYlR5cGUgPT09IFpvZFBhcnNlZFR5cGUuZGF0ZSAmJlxuICAgICAgICArYSA9PT0gK2IpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IGEgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgIH1cbn1cbmNsYXNzIFpvZEludGVyc2VjdGlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBoYW5kbGVQYXJzZWQgPSAocGFyc2VkTGVmdCwgcGFyc2VkUmlnaHQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0Fib3J0ZWQocGFyc2VkTGVmdCkgfHwgaXNBYm9ydGVkKHBhcnNlZFJpZ2h0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gbWVyZ2VWYWx1ZXMocGFyc2VkTGVmdC52YWx1ZSwgcGFyc2VkUmlnaHQudmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFtZXJnZWQudmFsaWQpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRGlydHkocGFyc2VkTGVmdCkgfHwgaXNEaXJ0eShwYXJzZWRSaWdodCkpIHtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogbWVyZ2VkLmRhdGEgfTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmLmxlZnQuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRoaXMuX2RlZi5yaWdodC5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKS50aGVuKChbbGVmdCwgcmlnaHRdKSA9PiBoYW5kbGVQYXJzZWQobGVmdCwgcmlnaHQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVQYXJzZWQodGhpcy5fZGVmLmxlZnQuX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KSwgdGhpcy5fZGVmLnJpZ2h0Ll9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZSA9IChsZWZ0LCByaWdodCwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RJbnRlcnNlY3Rpb24oe1xuICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICByaWdodDogcmlnaHQsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kSW50ZXJzZWN0aW9uLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVHVwbGUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmFycmF5LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA8IHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgbWluaW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdCA9IHRoaXMuX2RlZi5yZXN0O1xuICAgICAgICBpZiAoIXJlc3QgJiYgY3R4LmRhdGEubGVuZ3RoID4gdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgbWF4aW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSBbLi4uY3R4LmRhdGFdXG4gICAgICAgICAgICAubWFwKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuX2RlZi5pdGVtc1tpdGVtSW5kZXhdIHx8IHRoaXMuX2RlZi5yZXN0O1xuICAgICAgICAgICAgaWYgKCFzY2hlbWEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICByZXR1cm4gc2NoZW1hLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGl0ZW1JbmRleCkpO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gISF4KTsgLy8gZmlsdGVyIG51bGxzXG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaXRlbXMpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIGl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaXRlbXM7XG4gICAgfVxuICAgIHJlc3QocmVzdCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFR1cGxlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHJlc3QsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblpvZFR1cGxlLmNyZWF0ZSA9IChzY2hlbWFzLCBwYXJhbXMpID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgcGFzcyBhbiBhcnJheSBvZiBzY2hlbWFzIHRvIHoudHVwbGUoWyAuLi4gXSlcIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgWm9kVHVwbGUoe1xuICAgICAgICBpdGVtczogc2NoZW1hcyxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RUdXBsZSxcbiAgICAgICAgcmVzdDogbnVsbCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFJlY29yZCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGdldCBrZXlTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUub2JqZWN0LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFpcnMgPSBbXTtcbiAgICAgICAgY29uc3Qga2V5VHlwZSA9IHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjdHguZGF0YSkge1xuICAgICAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAga2V5OiBrZXlUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwga2V5LCBjdHgucGF0aCwga2V5KSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlVHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGN0eC5kYXRhW2tleV0sIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RBc3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKGZpcnN0LCBzZWNvbmQsIHRoaXJkKSB7XG4gICAgICAgIGlmIChzZWNvbmQgaW5zdGFuY2VvZiBab2RUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFpvZFJlY29yZCh7XG4gICAgICAgICAgICAgICAga2V5VHlwZTogZmlyc3QsXG4gICAgICAgICAgICAgICAgdmFsdWVUeXBlOiBzZWNvbmQsXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQsXG4gICAgICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlyZCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFpvZFJlY29yZCh7XG4gICAgICAgICAgICBrZXlUeXBlOiBab2RTdHJpbmcuY3JlYXRlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGU6IGZpcnN0LFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQsXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHNlY29uZCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNsYXNzIFpvZE1hcCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGdldCBrZXlTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5tYXApIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubWFwLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5VHlwZSA9IHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgICAgICBjb25zdCBwYWlycyA9IFsuLi5jdHguZGF0YS5lbnRyaWVzKCldLm1hcCgoW2tleSwgdmFsdWVdLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBrZXksIGN0eC5wYXRoLCBbaW5kZXgsIFwia2V5XCJdKSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlVHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwgW2luZGV4LCBcInZhbHVlXCJdKSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImFib3J0ZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiZGlydHlcIiB8fCB2YWx1ZS5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmluYWxNYXAuc2V0KGtleS52YWx1ZSwgdmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsTWFwIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcGFpci5rZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImFib3J0ZWRcIiB8fCB2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaW5hbE1hcC5zZXQoa2V5LnZhbHVlLCB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsTWFwIH07XG4gICAgICAgIH1cbiAgICB9XG59XG5ab2RNYXAuY3JlYXRlID0gKGtleVR5cGUsIHZhbHVlVHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RNYXAoe1xuICAgICAgICB2YWx1ZVR5cGUsXG4gICAgICAgIGtleVR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTWFwLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kU2V0IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zZXQpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc2V0LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmID0gdGhpcy5fZGVmO1xuICAgICAgICBpZiAoZGVmLm1pblNpemUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChjdHguZGF0YS5zaXplIDwgZGVmLm1pblNpemUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogZGVmLm1pblNpemUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWYubWluU2l6ZS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkZWYubWF4U2l6ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLnNpemUgPiBkZWYubWF4U2l6ZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogZGVmLm1heFNpemUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWYubWF4U2l6ZS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgICAgIGZ1bmN0aW9uIGZpbmFsaXplU2V0KGVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRTZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgcGFyc2VkU2V0LmFkZChlbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogcGFyc2VkU2V0IH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbLi4uY3R4LmRhdGEudmFsdWVzKCldLm1hcCgoaXRlbSwgaSkgPT4gdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKSk7XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZWxlbWVudHMpLnRoZW4oKGVsZW1lbnRzKSA9PiBmaW5hbGl6ZVNldChlbGVtZW50cykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZpbmFsaXplU2V0KGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtaW4obWluU2l6ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFNldCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBtaW5TaXplOiB7IHZhbHVlOiBtaW5TaXplLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1heChtYXhTaXplLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kU2V0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1heFNpemU6IHsgdmFsdWU6IG1heFNpemUsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2l6ZShzaXplLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbihzaXplLCBtZXNzYWdlKS5tYXgoc2l6ZSwgbWVzc2FnZSk7XG4gICAgfVxuICAgIG5vbmVtcHR5KG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluKDEsIG1lc3NhZ2UpO1xuICAgIH1cbn1cblpvZFNldC5jcmVhdGUgPSAodmFsdWVUeXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFNldCh7XG4gICAgICAgIHZhbHVlVHlwZSxcbiAgICAgICAgbWluU2l6ZTogbnVsbCxcbiAgICAgICAgbWF4U2l6ZTogbnVsbCxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTZXQsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RGdW5jdGlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLnZhbGlkYXRlID0gdGhpcy5pbXBsZW1lbnQ7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFrZUFyZ3NJc3N1ZShhcmdzLCBlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG1ha2VJc3N1ZSh7XG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICBlcnJvck1hcHM6IFtcbiAgICAgICAgICAgICAgICAgICAgY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCxcbiAgICAgICAgICAgICAgICAgICAgZ2V0RXJyb3JNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgXS5maWx0ZXIoKHgpID0+ICEheCksXG4gICAgICAgICAgICAgICAgaXNzdWVEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2FyZ3VtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzRXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYWtlUmV0dXJuc0lzc3VlKHJldHVybnMsIGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFrZUlzc3VlKHtcbiAgICAgICAgICAgICAgICBkYXRhOiByZXR1cm5zLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIGVycm9yTWFwczogW1xuICAgICAgICAgICAgICAgICAgICBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxcbiAgICAgICAgICAgICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgICAgICAgICAgICAgICBnZXRFcnJvck1hcCgpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvck1hcCxcbiAgICAgICAgICAgICAgICBdLmZpbHRlcigoeCkgPT4gISF4KSxcbiAgICAgICAgICAgICAgICBpc3N1ZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfcmV0dXJuX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVFcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgZXJyb3JNYXA6IGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwIH07XG4gICAgICAgIGNvbnN0IGZuID0gY3R4LmRhdGE7XG4gICAgICAgIGlmICh0aGlzLl9kZWYucmV0dXJucyBpbnN0YW5jZW9mIFpvZFByb21pc2UpIHtcbiAgICAgICAgICAgIC8vIFdvdWxkIGxvdmUgYSB3YXkgdG8gYXZvaWQgZGlzYWJsaW5nIHRoaXMgcnVsZSwgYnV0IHdlIG5lZWRcbiAgICAgICAgICAgIC8vIGFuIGFsaWFzICh1c2luZyBhbiBhcnJvdyBmdW5jdGlvbiB3YXMgd2hhdCBjYXVzZWQgMjY1MSkuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICAgICAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgICAgICAgIHJldHVybiBPSyhhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKFtdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gYXdhaXQgbWUuX2RlZi5hcmdzXG4gICAgICAgICAgICAgICAgICAgIC5wYXJzZUFzeW5jKGFyZ3MsIHBhcmFtcylcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmFkZElzc3VlKG1ha2VBcmdzSXNzdWUoYXJncywgZSkpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRSZXR1cm5zID0gYXdhaXQgbWUuX2RlZi5yZXR1cm5zLl9kZWYudHlwZVxuICAgICAgICAgICAgICAgICAgICAucGFyc2VBc3luYyhyZXN1bHQsIHBhcmFtcylcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmFkZElzc3VlKG1ha2VSZXR1cm5zSXNzdWUocmVzdWx0LCBlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRSZXR1cm5zO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBXb3VsZCBsb3ZlIGEgd2F5IHRvIGF2b2lkIGRpc2FibGluZyB0aGlzIHJ1bGUsIGJ1dCB3ZSBuZWVkXG4gICAgICAgICAgICAvLyBhbiBhbGlhcyAodXNpbmcgYW4gYXJyb3cgZnVuY3Rpb24gd2FzIHdoYXQgY2F1c2VkIDI2NTEpLlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICAgICAgICBjb25zdCBtZSA9IHRoaXM7XG4gICAgICAgICAgICByZXR1cm4gT0soZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gbWUuX2RlZi5hcmdzLnNhZmVQYXJzZShhcmdzLCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghcGFyc2VkQXJncy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBab2RFcnJvcihbbWFrZUFyZ3NJc3N1ZShhcmdzLCBwYXJzZWRBcmdzLmVycm9yKV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzLmRhdGEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZFJldHVybnMgPSBtZS5fZGVmLnJldHVybnMuc2FmZVBhcnNlKHJlc3VsdCwgcGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnNlZFJldHVybnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgWm9kRXJyb3IoW21ha2VSZXR1cm5zSXNzdWUocmVzdWx0LCBwYXJzZWRSZXR1cm5zLmVycm9yKV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VkUmV0dXJucy5kYXRhO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFyYW1ldGVycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5hcmdzO1xuICAgIH1cbiAgICByZXR1cm5UeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnJldHVybnM7XG4gICAgfVxuICAgIGFyZ3MoLi4uaXRlbXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RGdW5jdGlvbih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBhcmdzOiBab2RUdXBsZS5jcmVhdGUoaXRlbXMpLnJlc3QoWm9kVW5rbm93bi5jcmVhdGUoKSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm5zKHJldHVyblR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RGdW5jdGlvbih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICByZXR1cm5zOiByZXR1cm5UeXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW1wbGVtZW50KGZ1bmMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRnVuYyA9IHRoaXMucGFyc2UoZnVuYyk7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZWRGdW5jO1xuICAgIH1cbiAgICBzdHJpY3RJbXBsZW1lbnQoZnVuYykge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWRGdW5jID0gdGhpcy5wYXJzZShmdW5jKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlZEZ1bmM7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoYXJncywgcmV0dXJucywgcGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRnVuY3Rpb24oe1xuICAgICAgICAgICAgYXJnczogKGFyZ3NcbiAgICAgICAgICAgICAgICA/IGFyZ3NcbiAgICAgICAgICAgICAgICA6IFpvZFR1cGxlLmNyZWF0ZShbXSkucmVzdChab2RVbmtub3duLmNyZWF0ZSgpKSksXG4gICAgICAgICAgICByZXR1cm5zOiByZXR1cm5zIHx8IFpvZFVua25vd24uY3JlYXRlKCksXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEZ1bmN0aW9uLFxuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBab2RMYXp5IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgZ2V0IHNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5nZXR0ZXIoKTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBsYXp5U2NoZW1hID0gdGhpcy5fZGVmLmdldHRlcigpO1xuICAgICAgICByZXR1cm4gbGF6eVNjaGVtYS5fcGFyc2UoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICAgIH1cbn1cblpvZExhenkuY3JlYXRlID0gKGdldHRlciwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RMYXp5KHtcbiAgICAgICAgZ2V0dGVyOiBnZXR0ZXIsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTGF6eSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZExpdGVyYWwgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0LmRhdGEgIT09IHRoaXMuX2RlZi52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWwsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHRoaXMuX2RlZi52YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZTtcbiAgICB9XG59XG5ab2RMaXRlcmFsLmNyZWF0ZSA9ICh2YWx1ZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RMaXRlcmFsKHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZExpdGVyYWwsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5mdW5jdGlvbiBjcmVhdGVab2RFbnVtKHZhbHVlcywgcGFyYW1zKSB7XG4gICAgcmV0dXJuIG5ldyBab2RFbnVtKHtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW0sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn1cbmNsYXNzIFpvZEVudW0gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgX1pvZEVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0LmRhdGEgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gdGhpcy5fZGVmLnZhbHVlcztcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB1dGlsLmpvaW5WYWx1ZXMoZXhwZWN0ZWRWYWx1ZXMpLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX1pvZEVudW1fY2FjaGUsIFwiZlwiKSkge1xuICAgICAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgbmV3IFNldCh0aGlzLl9kZWYudmFsdWVzKSwgXCJmXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgXCJmXCIpLmhhcyhpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB0aGlzLl9kZWYudmFsdWVzO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2VudW1fdmFsdWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogZXhwZWN0ZWRWYWx1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVzO1xuICAgIH1cbiAgICBnZXQgZW51bSgpIHtcbiAgICAgICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICAgICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gICAgfVxuICAgIGdldCBWYWx1ZXMoKSB7XG4gICAgICAgIGNvbnN0IGVudW1WYWx1ZXMgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCB2YWwgb2YgdGhpcy5fZGVmLnZhbHVlcykge1xuICAgICAgICAgICAgZW51bVZhbHVlc1t2YWxdID0gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnVtVmFsdWVzO1xuICAgIH1cbiAgICBnZXQgRW51bSgpIHtcbiAgICAgICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICAgICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gICAgfVxuICAgIGV4dHJhY3QodmFsdWVzLCBuZXdEZWYgPSB0aGlzLl9kZWYpIHtcbiAgICAgICAgcmV0dXJuIFpvZEVudW0uY3JlYXRlKHZhbHVlcywge1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgLi4ubmV3RGVmLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZXhjbHVkZSh2YWx1ZXMsIG5ld0RlZiA9IHRoaXMuX2RlZikge1xuICAgICAgICByZXR1cm4gWm9kRW51bS5jcmVhdGUodGhpcy5vcHRpb25zLmZpbHRlcigob3B0KSA9PiAhdmFsdWVzLmluY2x1ZGVzKG9wdCkpLCB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICAuLi5uZXdEZWYsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbl9ab2RFbnVtX2NhY2hlID0gbmV3IFdlYWtNYXAoKTtcblpvZEVudW0uY3JlYXRlID0gY3JlYXRlWm9kRW51bTtcbmNsYXNzIFpvZE5hdGl2ZUVudW0gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgX1pvZE5hdGl2ZUVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBuYXRpdmVFbnVtVmFsdWVzID0gdXRpbC5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnN0cmluZyAmJlxuICAgICAgICAgICAgY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubnVtYmVyKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHV0aWwub2JqZWN0VmFsdWVzKG5hdGl2ZUVudW1WYWx1ZXMpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHV0aWwuam9pblZhbHVlcyhleHBlY3RlZFZhbHVlcyksXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBuZXcgU2V0KHV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSwgXCJmXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgXCJmXCIpLmhhcyhpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB1dGlsLm9iamVjdFZhbHVlcyhuYXRpdmVFbnVtVmFsdWVzKTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IGV4cGVjdGVkVmFsdWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIGdldCBlbnVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlcztcbiAgICB9XG59XG5fWm9kTmF0aXZlRW51bV9jYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5ab2ROYXRpdmVFbnVtLmNyZWF0ZSA9ICh2YWx1ZXMsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kTmF0aXZlRW51bSh7XG4gICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5hdGl2ZUVudW0sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RQcm9taXNlIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgdW53cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnR5cGU7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnByb21pc2UgJiZcbiAgICAgICAgICAgIGN0eC5jb21tb24uYXN5bmMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnByb21pc2UsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9taXNpZmllZCA9IGN0eC5wYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnByb21pc2VcbiAgICAgICAgICAgID8gY3R4LmRhdGFcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKGN0eC5kYXRhKTtcbiAgICAgICAgcmV0dXJuIE9LKHByb21pc2lmaWVkLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5wYXJzZUFzeW5jKGRhdGEsIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICBlcnJvck1hcDogY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cblpvZFByb21pc2UuY3JlYXRlID0gKHNjaGVtYSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RQcm9taXNlKHtcbiAgICAgICAgdHlwZTogc2NoZW1hLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFByb21pc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RFZmZlY3RzIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgaW5uZXJUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYTtcbiAgICB9XG4gICAgc291cmNlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHNcbiAgICAgICAgICAgID8gdGhpcy5fZGVmLnNjaGVtYS5zb3VyY2VUeXBlKClcbiAgICAgICAgICAgIDogdGhpcy5fZGVmLnNjaGVtYTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGVmZmVjdCA9IHRoaXMuX2RlZi5lZmZlY3QgfHwgbnVsbDtcbiAgICAgICAgY29uc3QgY2hlY2tDdHggPSB7XG4gICAgICAgICAgICBhZGRJc3N1ZTogKGFyZykgPT4ge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgYXJnKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnLmZhdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5hYm9ydCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBwYXRoKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGF0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNoZWNrQ3R4LmFkZElzc3VlID0gY2hlY2tDdHguYWRkSXNzdWUuYmluZChjaGVja0N0eCk7XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gXCJwcmVwcm9jZXNzXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGVmZmVjdC50cmFuc2Zvcm0oY3R4LmRhdGEsIGNoZWNrQ3R4KTtcbiAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcm9jZXNzZWQpLnRoZW4oYXN5bmMgKHByb2Nlc3NlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHByb2Nlc3NlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09IFwicmVmaW5lbWVudFwiKSB7XG4gICAgICAgICAgICBjb25zdCBleGVjdXRlUmVmaW5lbWVudCA9IChhY2MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBlZmZlY3QucmVmaW5lbWVudChhY2MsIGNoZWNrQ3R4KTtcbiAgICAgICAgICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFzeW5jIHJlZmluZW1lbnQgZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlubmVyID0gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgaWYgKGlubmVyLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZFxuICAgICAgICAgICAgICAgIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlubmVyLnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAuX3BhcnNlQXN5bmMoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChpbm5lcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5uZXIudmFsdWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVmZmVjdC50eXBlID09PSBcInRyYW5zZm9ybVwiKSB7XG4gICAgICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlID0gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQoYmFzZSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGVmZmVjdC50cmFuc2Zvcm0oYmFzZS52YWx1ZSwgY2hlY2tDdHgpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQXN5bmNocm9ub3VzIHRyYW5zZm9ybSBlbmNvdW50ZXJlZCBkdXJpbmcgc3luY2hyb25vdXMgcGFyc2Ugb3BlcmF0aW9uLiBVc2UgLnBhcnNlQXN5bmMgaW5zdGVhZC5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIC5fcGFyc2VBc3luYyh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKGJhc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZWZmZWN0LnRyYW5zZm9ybShiYXNlLnZhbHVlLCBjaGVja0N0eCkpLnRoZW4oKHJlc3VsdCkgPT4gKHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiByZXN1bHQgfSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoZWZmZWN0KTtcbiAgICB9XG59XG5ab2RFZmZlY3RzLmNyZWF0ZSA9IChzY2hlbWEsIGVmZmVjdCwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgICAgc2NoZW1hLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgICAgIGVmZmVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcblpvZEVmZmVjdHMuY3JlYXRlV2l0aFByZXByb2Nlc3MgPSAocHJlcHJvY2Vzcywgc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGVmZmVjdDogeyB0eXBlOiBcInByZXByb2Nlc3NcIiwgdHJhbnNmb3JtOiBwcmVwcm9jZXNzIH0sXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE9wdGlvbmFsIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gT0sodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZE9wdGlvbmFsLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9wdGlvbmFsKHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9wdGlvbmFsLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kTnVsbGFibGUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5udWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT0sobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGlucHV0KTtcbiAgICB9XG4gICAgdW53cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgICB9XG59XG5ab2ROdWxsYWJsZS5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdWxsYWJsZSh7XG4gICAgICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsYWJsZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZERlZmF1bHQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGxldCBkYXRhID0gY3R4LmRhdGE7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLl9kZWYuZGVmYXVsdFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVtb3ZlRGVmYXVsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gICAgfVxufVxuWm9kRGVmYXVsdC5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2REZWZhdWx0KHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHQsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHlwZW9mIHBhcmFtcy5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gcGFyYW1zLmRlZmF1bHRcbiAgICAgICAgICAgIDogKCkgPT4gcGFyYW1zLmRlZmF1bHQsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RDYXRjaCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgLy8gbmV3Q3R4IGlzIHVzZWQgdG8gbm90IGNvbGxlY3QgaXNzdWVzIGZyb20gaW5uZXIgdHlwZXMgaW4gY3R4XG4gICAgICAgIGNvbnN0IG5ld0N0eCA9IHtcbiAgICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgICAgICAgIGRhdGE6IG5ld0N0eC5kYXRhLFxuICAgICAgICAgICAgcGF0aDogbmV3Q3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IHtcbiAgICAgICAgICAgICAgICAuLi5uZXdDdHgsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzQXN5bmMocmVzdWx0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IFwidmFsaWRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZXN1bHQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZGVmLmNhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBab2RFcnJvcihuZXdDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogbmV3Q3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXR1czogXCJ2YWxpZFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiByZXN1bHQuc3RhdHVzID09PSBcInZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgPyByZXN1bHQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9kZWYuY2F0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQgZXJyb3IoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBab2RFcnJvcihuZXdDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IG5ld0N0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlQ2F0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZENhdGNoLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZENhdGNoKHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoLFxuICAgICAgICBjYXRjaFZhbHVlOiB0eXBlb2YgcGFyYW1zLmNhdGNoID09PSBcImZ1bmN0aW9uXCIgPyBwYXJhbXMuY2F0Y2ggOiAoKSA9PiBwYXJhbXMuY2F0Y2gsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2ROYU4gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5uYW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubmFuLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxufVxuWm9kTmFOLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE5hTih7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmFOLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY29uc3QgQlJBTkQgPSBTeW1ib2woXCJ6b2RfYnJhbmRcIik7XG5jbGFzcyBab2RCcmFuZGVkIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBkYXRhID0gY3R4LmRhdGE7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgICB9XG59XG5jbGFzcyBab2RQaXBlbGluZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlQXN5bmMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SZXN1bHQgPSBhd2FpdCB0aGlzLl9kZWYuaW4uX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBpZiAoaW5SZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShpblJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVmLm91dC5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBpblJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlQXN5bmMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluUmVzdWx0ID0gdGhpcy5fZGVmLmluLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaW5SZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogXCJkaXJ0eVwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW5SZXN1bHQudmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBpblJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoYSwgYikge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFBpcGVsaW5lKHtcbiAgICAgICAgICAgIGluOiBhLFxuICAgICAgICAgICAgb3V0OiBiLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQaXBlbGluZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY2xhc3MgWm9kUmVhZG9ubHkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgICAgICBjb25zdCBmcmVlemUgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnZhbHVlID0gT2JqZWN0LmZyZWV6ZShkYXRhLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNBc3luYyhyZXN1bHQpXG4gICAgICAgICAgICA/IHJlc3VsdC50aGVuKChkYXRhKSA9PiBmcmVlemUoZGF0YSkpXG4gICAgICAgICAgICA6IGZyZWV6ZShyZXN1bHQpO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZFJlYWRvbmx5LmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFJlYWRvbmx5KHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlYWRvbmx5LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuZnVuY3Rpb24gY3VzdG9tKGNoZWNrLCBwYXJhbXMgPSB7fSwgXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKlxuICogUGFzcyBgZmF0YWxgIGludG8gdGhlIHBhcmFtcyBvYmplY3QgaW5zdGVhZDpcbiAqXG4gKiBgYGB0c1xuICogei5zdHJpbmcoKS5jdXN0b20oKHZhbCkgPT4gdmFsLmxlbmd0aCA+IDUsIHsgZmF0YWw6IGZhbHNlIH0pXG4gKiBgYGBcbiAqXG4gKi9cbmZhdGFsKSB7XG4gICAgaWYgKGNoZWNrKVxuICAgICAgICByZXR1cm4gWm9kQW55LmNyZWF0ZSgpLnN1cGVyUmVmaW5lKChkYXRhLCBjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBpZiAoIWNoZWNrKGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHR5cGVvZiBwYXJhbXMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IHBhcmFtcyhkYXRhKVxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXJhbXMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID8geyBtZXNzYWdlOiBwYXJhbXMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwYXJhbXM7XG4gICAgICAgICAgICAgICAgY29uc3QgX2ZhdGFsID0gKF9iID0gKF9hID0gcC5mYXRhbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmF0YWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcDIgPSB0eXBlb2YgcCA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZTogcCB9IDogcDtcbiAgICAgICAgICAgICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiBcImN1c3RvbVwiLCAuLi5wMiwgZmF0YWw6IF9mYXRhbCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgcmV0dXJuIFpvZEFueS5jcmVhdGUoKTtcbn1cbmNvbnN0IGxhdGUgPSB7XG4gICAgb2JqZWN0OiBab2RPYmplY3QubGF6eWNyZWF0ZSxcbn07XG52YXIgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kO1xuKGZ1bmN0aW9uIChab2RGaXJzdFBhcnR5VHlwZUtpbmQpIHtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RTdHJpbmdcIl0gPSBcIlpvZFN0cmluZ1wiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE51bWJlclwiXSA9IFwiWm9kTnVtYmVyXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTmFOXCJdID0gXCJab2ROYU5cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RCaWdJbnRcIl0gPSBcIlpvZEJpZ0ludFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEJvb2xlYW5cIl0gPSBcIlpvZEJvb2xlYW5cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REYXRlXCJdID0gXCJab2REYXRlXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kU3ltYm9sXCJdID0gXCJab2RTeW1ib2xcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RVbmRlZmluZWRcIl0gPSBcIlpvZFVuZGVmaW5lZFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE51bGxcIl0gPSBcIlpvZE51bGxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RBbnlcIl0gPSBcIlpvZEFueVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFVua25vd25cIl0gPSBcIlpvZFVua25vd25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2ROZXZlclwiXSA9IFwiWm9kTmV2ZXJcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RWb2lkXCJdID0gXCJab2RWb2lkXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQXJyYXlcIl0gPSBcIlpvZEFycmF5XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kT2JqZWN0XCJdID0gXCJab2RPYmplY3RcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RVbmlvblwiXSA9IFwiWm9kVW5pb25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REaXNjcmltaW5hdGVkVW5pb25cIl0gPSBcIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEludGVyc2VjdGlvblwiXSA9IFwiWm9kSW50ZXJzZWN0aW9uXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kVHVwbGVcIl0gPSBcIlpvZFR1cGxlXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kUmVjb3JkXCJdID0gXCJab2RSZWNvcmRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RNYXBcIl0gPSBcIlpvZE1hcFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFNldFwiXSA9IFwiWm9kU2V0XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kRnVuY3Rpb25cIl0gPSBcIlpvZEZ1bmN0aW9uXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTGF6eVwiXSA9IFwiWm9kTGF6eVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZExpdGVyYWxcIl0gPSBcIlpvZExpdGVyYWxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RFbnVtXCJdID0gXCJab2RFbnVtXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kRWZmZWN0c1wiXSA9IFwiWm9kRWZmZWN0c1wiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE5hdGl2ZUVudW1cIl0gPSBcIlpvZE5hdGl2ZUVudW1cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RPcHRpb25hbFwiXSA9IFwiWm9kT3B0aW9uYWxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2ROdWxsYWJsZVwiXSA9IFwiWm9kTnVsbGFibGVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REZWZhdWx0XCJdID0gXCJab2REZWZhdWx0XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQ2F0Y2hcIl0gPSBcIlpvZENhdGNoXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kUHJvbWlzZVwiXSA9IFwiWm9kUHJvbWlzZVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEJyYW5kZWRcIl0gPSBcIlpvZEJyYW5kZWRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RQaXBlbGluZVwiXSA9IFwiWm9kUGlwZWxpbmVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RSZWFkb25seVwiXSA9IFwiWm9kUmVhZG9ubHlcIjtcbn0pKFpvZEZpcnN0UGFydHlUeXBlS2luZCB8fCAoWm9kRmlyc3RQYXJ0eVR5cGVLaW5kID0ge30pKTtcbmNvbnN0IGluc3RhbmNlT2ZUeXBlID0gKFxuLy8gY29uc3QgaW5zdGFuY2VPZlR5cGUgPSA8VCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG5jbHMsIHBhcmFtcyA9IHtcbiAgICBtZXNzYWdlOiBgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7Y2xzLm5hbWV9YCxcbn0pID0+IGN1c3RvbSgoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIGNscywgcGFyYW1zKTtcbmNvbnN0IHN0cmluZ1R5cGUgPSBab2RTdHJpbmcuY3JlYXRlO1xuY29uc3QgbnVtYmVyVHlwZSA9IFpvZE51bWJlci5jcmVhdGU7XG5jb25zdCBuYW5UeXBlID0gWm9kTmFOLmNyZWF0ZTtcbmNvbnN0IGJpZ0ludFR5cGUgPSBab2RCaWdJbnQuY3JlYXRlO1xuY29uc3QgYm9vbGVhblR5cGUgPSBab2RCb29sZWFuLmNyZWF0ZTtcbmNvbnN0IGRhdGVUeXBlID0gWm9kRGF0ZS5jcmVhdGU7XG5jb25zdCBzeW1ib2xUeXBlID0gWm9kU3ltYm9sLmNyZWF0ZTtcbmNvbnN0IHVuZGVmaW5lZFR5cGUgPSBab2RVbmRlZmluZWQuY3JlYXRlO1xuY29uc3QgbnVsbFR5cGUgPSBab2ROdWxsLmNyZWF0ZTtcbmNvbnN0IGFueVR5cGUgPSBab2RBbnkuY3JlYXRlO1xuY29uc3QgdW5rbm93blR5cGUgPSBab2RVbmtub3duLmNyZWF0ZTtcbmNvbnN0IG5ldmVyVHlwZSA9IFpvZE5ldmVyLmNyZWF0ZTtcbmNvbnN0IHZvaWRUeXBlID0gWm9kVm9pZC5jcmVhdGU7XG5jb25zdCBhcnJheVR5cGUgPSBab2RBcnJheS5jcmVhdGU7XG5jb25zdCBvYmplY3RUeXBlID0gWm9kT2JqZWN0LmNyZWF0ZTtcbmNvbnN0IHN0cmljdE9iamVjdFR5cGUgPSBab2RPYmplY3Quc3RyaWN0Q3JlYXRlO1xuY29uc3QgdW5pb25UeXBlID0gWm9kVW5pb24uY3JlYXRlO1xuY29uc3QgZGlzY3JpbWluYXRlZFVuaW9uVHlwZSA9IFpvZERpc2NyaW1pbmF0ZWRVbmlvbi5jcmVhdGU7XG5jb25zdCBpbnRlcnNlY3Rpb25UeXBlID0gWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZTtcbmNvbnN0IHR1cGxlVHlwZSA9IFpvZFR1cGxlLmNyZWF0ZTtcbmNvbnN0IHJlY29yZFR5cGUgPSBab2RSZWNvcmQuY3JlYXRlO1xuY29uc3QgbWFwVHlwZSA9IFpvZE1hcC5jcmVhdGU7XG5jb25zdCBzZXRUeXBlID0gWm9kU2V0LmNyZWF0ZTtcbmNvbnN0IGZ1bmN0aW9uVHlwZSA9IFpvZEZ1bmN0aW9uLmNyZWF0ZTtcbmNvbnN0IGxhenlUeXBlID0gWm9kTGF6eS5jcmVhdGU7XG5jb25zdCBsaXRlcmFsVHlwZSA9IFpvZExpdGVyYWwuY3JlYXRlO1xuY29uc3QgZW51bVR5cGUgPSBab2RFbnVtLmNyZWF0ZTtcbmNvbnN0IG5hdGl2ZUVudW1UeXBlID0gWm9kTmF0aXZlRW51bS5jcmVhdGU7XG5jb25zdCBwcm9taXNlVHlwZSA9IFpvZFByb21pc2UuY3JlYXRlO1xuY29uc3QgZWZmZWN0c1R5cGUgPSBab2RFZmZlY3RzLmNyZWF0ZTtcbmNvbnN0IG9wdGlvbmFsVHlwZSA9IFpvZE9wdGlvbmFsLmNyZWF0ZTtcbmNvbnN0IG51bGxhYmxlVHlwZSA9IFpvZE51bGxhYmxlLmNyZWF0ZTtcbmNvbnN0IHByZXByb2Nlc3NUeXBlID0gWm9kRWZmZWN0cy5jcmVhdGVXaXRoUHJlcHJvY2VzcztcbmNvbnN0IHBpcGVsaW5lVHlwZSA9IFpvZFBpcGVsaW5lLmNyZWF0ZTtcbmNvbnN0IG9zdHJpbmcgPSAoKSA9PiBzdHJpbmdUeXBlKCkub3B0aW9uYWwoKTtcbmNvbnN0IG9udW1iZXIgPSAoKSA9PiBudW1iZXJUeXBlKCkub3B0aW9uYWwoKTtcbmNvbnN0IG9ib29sZWFuID0gKCkgPT4gYm9vbGVhblR5cGUoKS5vcHRpb25hbCgpO1xuY29uc3QgY29lcmNlID0ge1xuICAgIHN0cmluZzogKChhcmcpID0+IFpvZFN0cmluZy5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSksXG4gICAgbnVtYmVyOiAoKGFyZykgPT4gWm9kTnVtYmVyLmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbiAgICBib29sZWFuOiAoKGFyZykgPT4gWm9kQm9vbGVhbi5jcmVhdGUoe1xuICAgICAgICAuLi5hcmcsXG4gICAgICAgIGNvZXJjZTogdHJ1ZSxcbiAgICB9KSksXG4gICAgYmlnaW50OiAoKGFyZykgPT4gWm9kQmlnSW50LmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbiAgICBkYXRlOiAoKGFyZykgPT4gWm9kRGF0ZS5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSksXG59O1xuY29uc3QgTkVWRVIgPSBJTlZBTElEO1xuXG52YXIgeiA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgICBfX3Byb3RvX186IG51bGwsXG4gICAgZGVmYXVsdEVycm9yTWFwOiBlcnJvck1hcCxcbiAgICBzZXRFcnJvck1hcDogc2V0RXJyb3JNYXAsXG4gICAgZ2V0RXJyb3JNYXA6IGdldEVycm9yTWFwLFxuICAgIG1ha2VJc3N1ZTogbWFrZUlzc3VlLFxuICAgIEVNUFRZX1BBVEg6IEVNUFRZX1BBVEgsXG4gICAgYWRkSXNzdWVUb0NvbnRleHQ6IGFkZElzc3VlVG9Db250ZXh0LFxuICAgIFBhcnNlU3RhdHVzOiBQYXJzZVN0YXR1cyxcbiAgICBJTlZBTElEOiBJTlZBTElELFxuICAgIERJUlRZOiBESVJUWSxcbiAgICBPSzogT0ssXG4gICAgaXNBYm9ydGVkOiBpc0Fib3J0ZWQsXG4gICAgaXNEaXJ0eTogaXNEaXJ0eSxcbiAgICBpc1ZhbGlkOiBpc1ZhbGlkLFxuICAgIGlzQXN5bmM6IGlzQXN5bmMsXG4gICAgZ2V0IHV0aWwgKCkgeyByZXR1cm4gdXRpbDsgfSxcbiAgICBnZXQgb2JqZWN0VXRpbCAoKSB7IHJldHVybiBvYmplY3RVdGlsOyB9LFxuICAgIFpvZFBhcnNlZFR5cGU6IFpvZFBhcnNlZFR5cGUsXG4gICAgZ2V0UGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZSxcbiAgICBab2RUeXBlOiBab2RUeXBlLFxuICAgIGRhdGV0aW1lUmVnZXg6IGRhdGV0aW1lUmVnZXgsXG4gICAgWm9kU3RyaW5nOiBab2RTdHJpbmcsXG4gICAgWm9kTnVtYmVyOiBab2ROdW1iZXIsXG4gICAgWm9kQmlnSW50OiBab2RCaWdJbnQsXG4gICAgWm9kQm9vbGVhbjogWm9kQm9vbGVhbixcbiAgICBab2REYXRlOiBab2REYXRlLFxuICAgIFpvZFN5bWJvbDogWm9kU3ltYm9sLFxuICAgIFpvZFVuZGVmaW5lZDogWm9kVW5kZWZpbmVkLFxuICAgIFpvZE51bGw6IFpvZE51bGwsXG4gICAgWm9kQW55OiBab2RBbnksXG4gICAgWm9kVW5rbm93bjogWm9kVW5rbm93bixcbiAgICBab2ROZXZlcjogWm9kTmV2ZXIsXG4gICAgWm9kVm9pZDogWm9kVm9pZCxcbiAgICBab2RBcnJheTogWm9kQXJyYXksXG4gICAgWm9kT2JqZWN0OiBab2RPYmplY3QsXG4gICAgWm9kVW5pb246IFpvZFVuaW9uLFxuICAgIFpvZERpc2NyaW1pbmF0ZWRVbmlvbjogWm9kRGlzY3JpbWluYXRlZFVuaW9uLFxuICAgIFpvZEludGVyc2VjdGlvbjogWm9kSW50ZXJzZWN0aW9uLFxuICAgIFpvZFR1cGxlOiBab2RUdXBsZSxcbiAgICBab2RSZWNvcmQ6IFpvZFJlY29yZCxcbiAgICBab2RNYXA6IFpvZE1hcCxcbiAgICBab2RTZXQ6IFpvZFNldCxcbiAgICBab2RGdW5jdGlvbjogWm9kRnVuY3Rpb24sXG4gICAgWm9kTGF6eTogWm9kTGF6eSxcbiAgICBab2RMaXRlcmFsOiBab2RMaXRlcmFsLFxuICAgIFpvZEVudW06IFpvZEVudW0sXG4gICAgWm9kTmF0aXZlRW51bTogWm9kTmF0aXZlRW51bSxcbiAgICBab2RQcm9taXNlOiBab2RQcm9taXNlLFxuICAgIFpvZEVmZmVjdHM6IFpvZEVmZmVjdHMsXG4gICAgWm9kVHJhbnNmb3JtZXI6IFpvZEVmZmVjdHMsXG4gICAgWm9kT3B0aW9uYWw6IFpvZE9wdGlvbmFsLFxuICAgIFpvZE51bGxhYmxlOiBab2ROdWxsYWJsZSxcbiAgICBab2REZWZhdWx0OiBab2REZWZhdWx0LFxuICAgIFpvZENhdGNoOiBab2RDYXRjaCxcbiAgICBab2ROYU46IFpvZE5hTixcbiAgICBCUkFORDogQlJBTkQsXG4gICAgWm9kQnJhbmRlZDogWm9kQnJhbmRlZCxcbiAgICBab2RQaXBlbGluZTogWm9kUGlwZWxpbmUsXG4gICAgWm9kUmVhZG9ubHk6IFpvZFJlYWRvbmx5LFxuICAgIGN1c3RvbTogY3VzdG9tLFxuICAgIFNjaGVtYTogWm9kVHlwZSxcbiAgICBab2RTY2hlbWE6IFpvZFR5cGUsXG4gICAgbGF0ZTogbGF0ZSxcbiAgICBnZXQgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kICgpIHsgcmV0dXJuIFpvZEZpcnN0UGFydHlUeXBlS2luZDsgfSxcbiAgICBjb2VyY2U6IGNvZXJjZSxcbiAgICBhbnk6IGFueVR5cGUsXG4gICAgYXJyYXk6IGFycmF5VHlwZSxcbiAgICBiaWdpbnQ6IGJpZ0ludFR5cGUsXG4gICAgYm9vbGVhbjogYm9vbGVhblR5cGUsXG4gICAgZGF0ZTogZGF0ZVR5cGUsXG4gICAgZGlzY3JpbWluYXRlZFVuaW9uOiBkaXNjcmltaW5hdGVkVW5pb25UeXBlLFxuICAgIGVmZmVjdDogZWZmZWN0c1R5cGUsXG4gICAgJ2VudW0nOiBlbnVtVHlwZSxcbiAgICAnZnVuY3Rpb24nOiBmdW5jdGlvblR5cGUsXG4gICAgJ2luc3RhbmNlb2YnOiBpbnN0YW5jZU9mVHlwZSxcbiAgICBpbnRlcnNlY3Rpb246IGludGVyc2VjdGlvblR5cGUsXG4gICAgbGF6eTogbGF6eVR5cGUsXG4gICAgbGl0ZXJhbDogbGl0ZXJhbFR5cGUsXG4gICAgbWFwOiBtYXBUeXBlLFxuICAgIG5hbjogbmFuVHlwZSxcbiAgICBuYXRpdmVFbnVtOiBuYXRpdmVFbnVtVHlwZSxcbiAgICBuZXZlcjogbmV2ZXJUeXBlLFxuICAgICdudWxsJzogbnVsbFR5cGUsXG4gICAgbnVsbGFibGU6IG51bGxhYmxlVHlwZSxcbiAgICBudW1iZXI6IG51bWJlclR5cGUsXG4gICAgb2JqZWN0OiBvYmplY3RUeXBlLFxuICAgIG9ib29sZWFuOiBvYm9vbGVhbixcbiAgICBvbnVtYmVyOiBvbnVtYmVyLFxuICAgIG9wdGlvbmFsOiBvcHRpb25hbFR5cGUsXG4gICAgb3N0cmluZzogb3N0cmluZyxcbiAgICBwaXBlbGluZTogcGlwZWxpbmVUeXBlLFxuICAgIHByZXByb2Nlc3M6IHByZXByb2Nlc3NUeXBlLFxuICAgIHByb21pc2U6IHByb21pc2VUeXBlLFxuICAgIHJlY29yZDogcmVjb3JkVHlwZSxcbiAgICBzZXQ6IHNldFR5cGUsXG4gICAgc3RyaWN0T2JqZWN0OiBzdHJpY3RPYmplY3RUeXBlLFxuICAgIHN0cmluZzogc3RyaW5nVHlwZSxcbiAgICBzeW1ib2w6IHN5bWJvbFR5cGUsXG4gICAgdHJhbnNmb3JtZXI6IGVmZmVjdHNUeXBlLFxuICAgIHR1cGxlOiB0dXBsZVR5cGUsXG4gICAgJ3VuZGVmaW5lZCc6IHVuZGVmaW5lZFR5cGUsXG4gICAgdW5pb246IHVuaW9uVHlwZSxcbiAgICB1bmtub3duOiB1bmtub3duVHlwZSxcbiAgICAndm9pZCc6IHZvaWRUeXBlLFxuICAgIE5FVkVSOiBORVZFUixcbiAgICBab2RJc3N1ZUNvZGU6IFpvZElzc3VlQ29kZSxcbiAgICBxdW90ZWxlc3NKc29uOiBxdW90ZWxlc3NKc29uLFxuICAgIFpvZEVycm9yOiBab2RFcnJvclxufSk7XG5cbmV4cG9ydCB7IEJSQU5ELCBESVJUWSwgRU1QVFlfUEFUSCwgSU5WQUxJRCwgTkVWRVIsIE9LLCBQYXJzZVN0YXR1cywgWm9kVHlwZSBhcyBTY2hlbWEsIFpvZEFueSwgWm9kQXJyYXksIFpvZEJpZ0ludCwgWm9kQm9vbGVhbiwgWm9kQnJhbmRlZCwgWm9kQ2F0Y2gsIFpvZERhdGUsIFpvZERlZmF1bHQsIFpvZERpc2NyaW1pbmF0ZWRVbmlvbiwgWm9kRWZmZWN0cywgWm9kRW51bSwgWm9kRXJyb3IsIFpvZEZpcnN0UGFydHlUeXBlS2luZCwgWm9kRnVuY3Rpb24sIFpvZEludGVyc2VjdGlvbiwgWm9kSXNzdWVDb2RlLCBab2RMYXp5LCBab2RMaXRlcmFsLCBab2RNYXAsIFpvZE5hTiwgWm9kTmF0aXZlRW51bSwgWm9kTmV2ZXIsIFpvZE51bGwsIFpvZE51bGxhYmxlLCBab2ROdW1iZXIsIFpvZE9iamVjdCwgWm9kT3B0aW9uYWwsIFpvZFBhcnNlZFR5cGUsIFpvZFBpcGVsaW5lLCBab2RQcm9taXNlLCBab2RSZWFkb25seSwgWm9kUmVjb3JkLCBab2RUeXBlIGFzIFpvZFNjaGVtYSwgWm9kU2V0LCBab2RTdHJpbmcsIFpvZFN5bWJvbCwgWm9kRWZmZWN0cyBhcyBab2RUcmFuc2Zvcm1lciwgWm9kVHVwbGUsIFpvZFR5cGUsIFpvZFVuZGVmaW5lZCwgWm9kVW5pb24sIFpvZFVua25vd24sIFpvZFZvaWQsIGFkZElzc3VlVG9Db250ZXh0LCBhbnlUeXBlIGFzIGFueSwgYXJyYXlUeXBlIGFzIGFycmF5LCBiaWdJbnRUeXBlIGFzIGJpZ2ludCwgYm9vbGVhblR5cGUgYXMgYm9vbGVhbiwgY29lcmNlLCBjdXN0b20sIGRhdGVUeXBlIGFzIGRhdGUsIGRhdGV0aW1lUmVnZXgsIHogYXMgZGVmYXVsdCwgZXJyb3JNYXAgYXMgZGVmYXVsdEVycm9yTWFwLCBkaXNjcmltaW5hdGVkVW5pb25UeXBlIGFzIGRpc2NyaW1pbmF0ZWRVbmlvbiwgZWZmZWN0c1R5cGUgYXMgZWZmZWN0LCBlbnVtVHlwZSBhcyBlbnVtLCBmdW5jdGlvblR5cGUgYXMgZnVuY3Rpb24sIGdldEVycm9yTWFwLCBnZXRQYXJzZWRUeXBlLCBpbnN0YW5jZU9mVHlwZSBhcyBpbnN0YW5jZW9mLCBpbnRlcnNlY3Rpb25UeXBlIGFzIGludGVyc2VjdGlvbiwgaXNBYm9ydGVkLCBpc0FzeW5jLCBpc0RpcnR5LCBpc1ZhbGlkLCBsYXRlLCBsYXp5VHlwZSBhcyBsYXp5LCBsaXRlcmFsVHlwZSBhcyBsaXRlcmFsLCBtYWtlSXNzdWUsIG1hcFR5cGUgYXMgbWFwLCBuYW5UeXBlIGFzIG5hbiwgbmF0aXZlRW51bVR5cGUgYXMgbmF0aXZlRW51bSwgbmV2ZXJUeXBlIGFzIG5ldmVyLCBudWxsVHlwZSBhcyBudWxsLCBudWxsYWJsZVR5cGUgYXMgbnVsbGFibGUsIG51bWJlclR5cGUgYXMgbnVtYmVyLCBvYmplY3RUeXBlIGFzIG9iamVjdCwgb2JqZWN0VXRpbCwgb2Jvb2xlYW4sIG9udW1iZXIsIG9wdGlvbmFsVHlwZSBhcyBvcHRpb25hbCwgb3N0cmluZywgcGlwZWxpbmVUeXBlIGFzIHBpcGVsaW5lLCBwcmVwcm9jZXNzVHlwZSBhcyBwcmVwcm9jZXNzLCBwcm9taXNlVHlwZSBhcyBwcm9taXNlLCBxdW90ZWxlc3NKc29uLCByZWNvcmRUeXBlIGFzIHJlY29yZCwgc2V0VHlwZSBhcyBzZXQsIHNldEVycm9yTWFwLCBzdHJpY3RPYmplY3RUeXBlIGFzIHN0cmljdE9iamVjdCwgc3RyaW5nVHlwZSBhcyBzdHJpbmcsIHN5bWJvbFR5cGUgYXMgc3ltYm9sLCBlZmZlY3RzVHlwZSBhcyB0cmFuc2Zvcm1lciwgdHVwbGVUeXBlIGFzIHR1cGxlLCB1bmRlZmluZWRUeXBlIGFzIHVuZGVmaW5lZCwgdW5pb25UeXBlIGFzIHVuaW9uLCB1bmtub3duVHlwZSBhcyB1bmtub3duLCB1dGlsLCB2b2lkVHlwZSBhcyB2b2lkLCB6IH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/zod/lib/index.mjs\n")); /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fhectorzea%2Fdev%2Ffrontbuild%2Ffrontend%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ _N_E = __webpack_exports__; /******/ } ]); |